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 #[prost(map="string, string", tag="5")]
92 pub room_tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
93}
94#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
104#[repr(i32)]
105pub enum MetricLabel {
106 AgentsLlmTtft = 0,
108 AgentsSttTtft = 1,
110 AgentsTtsTtfb = 2,
112 ClientVideoSubscriberFreezeCount = 3,
114 ClientVideoSubscriberTotalFreezeDuration = 4,
116 ClientVideoSubscriberPauseCount = 5,
118 ClientVideoSubscriberTotalPausesDuration = 6,
120 ClientAudioSubscriberConcealedSamples = 7,
122 ClientAudioSubscriberSilentConcealedSamples = 8,
124 ClientAudioSubscriberConcealmentEvents = 9,
126 ClientAudioSubscriberInterruptionCount = 10,
128 ClientAudioSubscriberTotalInterruptionDuration = 11,
130 ClientSubscriberJitterBufferDelay = 12,
132 ClientSubscriberJitterBufferEmittedCount = 13,
134 ClientVideoPublisherQualityLimitationDurationBandwidth = 14,
136 ClientVideoPublisherQualityLimitationDurationCpu = 15,
138 ClientVideoPublisherQualityLimitationDurationOther = 16,
140 PublisherRtt = 17,
142 ServerMeshRtt = 18,
144 SubscriberRtt = 19,
146 PredefinedMaxValue = 4096,
147}
148impl MetricLabel {
149 pub fn as_str_name(&self) -> &'static str {
154 match self {
155 MetricLabel::AgentsLlmTtft => "AGENTS_LLM_TTFT",
156 MetricLabel::AgentsSttTtft => "AGENTS_STT_TTFT",
157 MetricLabel::AgentsTtsTtfb => "AGENTS_TTS_TTFB",
158 MetricLabel::ClientVideoSubscriberFreezeCount => "CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT",
159 MetricLabel::ClientVideoSubscriberTotalFreezeDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION",
160 MetricLabel::ClientVideoSubscriberPauseCount => "CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT",
161 MetricLabel::ClientVideoSubscriberTotalPausesDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION",
162 MetricLabel::ClientAudioSubscriberConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES",
163 MetricLabel::ClientAudioSubscriberSilentConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES",
164 MetricLabel::ClientAudioSubscriberConcealmentEvents => "CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS",
165 MetricLabel::ClientAudioSubscriberInterruptionCount => "CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT",
166 MetricLabel::ClientAudioSubscriberTotalInterruptionDuration => "CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION",
167 MetricLabel::ClientSubscriberJitterBufferDelay => "CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY",
168 MetricLabel::ClientSubscriberJitterBufferEmittedCount => "CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT",
169 MetricLabel::ClientVideoPublisherQualityLimitationDurationBandwidth => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH",
170 MetricLabel::ClientVideoPublisherQualityLimitationDurationCpu => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU",
171 MetricLabel::ClientVideoPublisherQualityLimitationDurationOther => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER",
172 MetricLabel::PublisherRtt => "PUBLISHER_RTT",
173 MetricLabel::ServerMeshRtt => "SERVER_MESH_RTT",
174 MetricLabel::SubscriberRtt => "SUBSCRIBER_RTT",
175 MetricLabel::PredefinedMaxValue => "METRIC_LABEL_PREDEFINED_MAX_VALUE",
176 }
177 }
178 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
180 match value {
181 "AGENTS_LLM_TTFT" => Some(Self::AgentsLlmTtft),
182 "AGENTS_STT_TTFT" => Some(Self::AgentsSttTtft),
183 "AGENTS_TTS_TTFB" => Some(Self::AgentsTtsTtfb),
184 "CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT" => Some(Self::ClientVideoSubscriberFreezeCount),
185 "CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION" => Some(Self::ClientVideoSubscriberTotalFreezeDuration),
186 "CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT" => Some(Self::ClientVideoSubscriberPauseCount),
187 "CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION" => Some(Self::ClientVideoSubscriberTotalPausesDuration),
188 "CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberConcealedSamples),
189 "CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberSilentConcealedSamples),
190 "CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS" => Some(Self::ClientAudioSubscriberConcealmentEvents),
191 "CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT" => Some(Self::ClientAudioSubscriberInterruptionCount),
192 "CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION" => Some(Self::ClientAudioSubscriberTotalInterruptionDuration),
193 "CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY" => Some(Self::ClientSubscriberJitterBufferDelay),
194 "CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT" => Some(Self::ClientSubscriberJitterBufferEmittedCount),
195 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH" => Some(Self::ClientVideoPublisherQualityLimitationDurationBandwidth),
196 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU" => Some(Self::ClientVideoPublisherQualityLimitationDurationCpu),
197 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER" => Some(Self::ClientVideoPublisherQualityLimitationDurationOther),
198 "PUBLISHER_RTT" => Some(Self::PublisherRtt),
199 "SERVER_MESH_RTT" => Some(Self::ServerMeshRtt),
200 "SUBSCRIBER_RTT" => Some(Self::SubscriberRtt),
201 "METRIC_LABEL_PREDEFINED_MAX_VALUE" => Some(Self::PredefinedMaxValue),
202 _ => None,
203 }
204 }
205}
206#[allow(clippy::derive_partial_eq_without_eq)]
207#[derive(Clone, PartialEq, ::prost::Message)]
208pub struct Pagination {
209 #[prost(string, tag="1")]
211 pub after_id: ::prost::alloc::string::String,
212 #[prost(int32, tag="2")]
213 pub limit: i32,
214}
215#[allow(clippy::derive_partial_eq_without_eq)]
216#[derive(Clone, PartialEq, ::prost::Message)]
217pub struct TokenPagination {
218 #[prost(string, tag="1")]
219 pub token: ::prost::alloc::string::String,
220}
221#[allow(clippy::derive_partial_eq_without_eq)]
223#[derive(Clone, PartialEq, ::prost::Message)]
224pub struct ListUpdate {
225 #[prost(string, repeated, tag="1")]
227 pub set: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
228 #[prost(string, repeated, tag="2")]
230 pub add: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
231 #[prost(string, repeated, tag="3")]
233 pub remove: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
234 #[prost(bool, tag="4")]
236 pub clear: bool,
237}
238#[allow(clippy::derive_partial_eq_without_eq)]
239#[derive(Clone, PartialEq, ::prost::Message)]
240pub struct Room {
241 #[prost(string, tag="1")]
242 pub sid: ::prost::alloc::string::String,
243 #[prost(string, tag="2")]
244 pub name: ::prost::alloc::string::String,
245 #[prost(uint32, tag="3")]
246 pub empty_timeout: u32,
247 #[prost(uint32, tag="14")]
248 pub departure_timeout: u32,
249 #[prost(uint32, tag="4")]
250 pub max_participants: u32,
251 #[prost(int64, tag="5")]
252 pub creation_time: i64,
253 #[prost(int64, tag="15")]
254 pub creation_time_ms: i64,
255 #[prost(string, tag="6")]
256 pub turn_password: ::prost::alloc::string::String,
257 #[prost(message, repeated, tag="7")]
258 pub enabled_codecs: ::prost::alloc::vec::Vec<Codec>,
259 #[prost(string, tag="8")]
260 pub metadata: ::prost::alloc::string::String,
261 #[prost(uint32, tag="9")]
262 pub num_participants: u32,
263 #[prost(uint32, tag="11")]
264 pub num_publishers: u32,
265 #[prost(bool, tag="10")]
266 pub active_recording: bool,
267 #[prost(message, optional, tag="13")]
268 pub version: ::core::option::Option<TimedVersion>,
269}
270#[allow(clippy::derive_partial_eq_without_eq)]
271#[derive(Clone, PartialEq, ::prost::Message)]
272pub struct Codec {
273 #[prost(string, tag="1")]
274 pub mime: ::prost::alloc::string::String,
275 #[prost(string, tag="2")]
276 pub fmtp_line: ::prost::alloc::string::String,
277}
278#[allow(clippy::derive_partial_eq_without_eq)]
279#[derive(Clone, PartialEq, ::prost::Message)]
280pub struct PlayoutDelay {
281 #[prost(bool, tag="1")]
282 pub enabled: bool,
283 #[prost(uint32, tag="2")]
284 pub min: u32,
285 #[prost(uint32, tag="3")]
286 pub max: u32,
287}
288#[allow(clippy::derive_partial_eq_without_eq)]
289#[derive(Clone, PartialEq, ::prost::Message)]
290pub struct ParticipantPermission {
291 #[prost(bool, tag="1")]
293 pub can_subscribe: bool,
294 #[prost(bool, tag="2")]
296 pub can_publish: bool,
297 #[prost(bool, tag="3")]
299 pub can_publish_data: bool,
300 #[prost(enumeration="TrackSource", repeated, tag="9")]
302 pub can_publish_sources: ::prost::alloc::vec::Vec<i32>,
303 #[prost(bool, tag="7")]
305 pub hidden: bool,
306 #[deprecated]
309 #[prost(bool, tag="8")]
310 pub recorder: bool,
311 #[prost(bool, tag="10")]
313 pub can_update_metadata: bool,
314 #[deprecated]
317 #[prost(bool, tag="11")]
318 pub agent: bool,
319 #[prost(bool, tag="12")]
321 pub can_subscribe_metrics: bool,
322 #[prost(bool, tag="13")]
324 pub can_manage_agent_session: bool,
325}
326#[allow(clippy::derive_partial_eq_without_eq)]
327#[derive(Clone, PartialEq, ::prost::Message)]
328pub struct ParticipantInfo {
329 #[prost(string, tag="1")]
330 pub sid: ::prost::alloc::string::String,
331 #[prost(string, tag="2")]
332 pub identity: ::prost::alloc::string::String,
333 #[prost(enumeration="participant_info::State", tag="3")]
334 pub state: i32,
335 #[prost(message, repeated, tag="4")]
336 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
337 #[prost(string, tag="5")]
338 pub metadata: ::prost::alloc::string::String,
339 #[prost(int64, tag="6")]
341 pub joined_at: i64,
342 #[prost(int64, tag="17")]
344 pub joined_at_ms: i64,
345 #[prost(string, tag="9")]
346 pub name: ::prost::alloc::string::String,
347 #[prost(uint32, tag="10")]
348 pub version: u32,
349 #[prost(message, optional, tag="11")]
350 pub permission: ::core::option::Option<ParticipantPermission>,
351 #[prost(string, tag="12")]
352 pub region: ::prost::alloc::string::String,
353 #[prost(bool, tag="13")]
356 pub is_publisher: bool,
357 #[prost(enumeration="participant_info::Kind", tag="14")]
358 pub kind: i32,
359 #[prost(map="string, string", tag="15")]
360 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
361 #[prost(enumeration="DisconnectReason", tag="16")]
362 pub disconnect_reason: i32,
363 #[prost(enumeration="participant_info::KindDetail", repeated, tag="18")]
364 pub kind_details: ::prost::alloc::vec::Vec<i32>,
365 #[prost(message, repeated, tag="19")]
366 pub data_tracks: ::prost::alloc::vec::Vec<DataTrackInfo>,
367 #[prost(int32, tag="20")]
369 pub client_protocol: i32,
370}
371pub mod participant_info {
373 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
374 #[repr(i32)]
375 pub enum State {
376 Joining = 0,
378 Joined = 1,
380 Active = 2,
382 Disconnected = 3,
384 }
385 impl State {
386 pub fn as_str_name(&self) -> &'static str {
391 match self {
392 State::Joining => "JOINING",
393 State::Joined => "JOINED",
394 State::Active => "ACTIVE",
395 State::Disconnected => "DISCONNECTED",
396 }
397 }
398 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
400 match value {
401 "JOINING" => Some(Self::Joining),
402 "JOINED" => Some(Self::Joined),
403 "ACTIVE" => Some(Self::Active),
404 "DISCONNECTED" => Some(Self::Disconnected),
405 _ => None,
406 }
407 }
408 }
409 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
410 #[repr(i32)]
411 pub enum Kind {
412 Standard = 0,
414 Ingress = 1,
416 Egress = 2,
418 Sip = 3,
420 Agent = 4,
422 Connector = 7,
424 Bridge = 8,
428 }
429 impl Kind {
430 pub fn as_str_name(&self) -> &'static str {
435 match self {
436 Kind::Standard => "STANDARD",
437 Kind::Ingress => "INGRESS",
438 Kind::Egress => "EGRESS",
439 Kind::Sip => "SIP",
440 Kind::Agent => "AGENT",
441 Kind::Connector => "CONNECTOR",
442 Kind::Bridge => "BRIDGE",
443 }
444 }
445 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
447 match value {
448 "STANDARD" => Some(Self::Standard),
449 "INGRESS" => Some(Self::Ingress),
450 "EGRESS" => Some(Self::Egress),
451 "SIP" => Some(Self::Sip),
452 "AGENT" => Some(Self::Agent),
453 "CONNECTOR" => Some(Self::Connector),
454 "BRIDGE" => Some(Self::Bridge),
455 _ => None,
456 }
457 }
458 }
459 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
460 #[repr(i32)]
461 pub enum KindDetail {
462 CloudAgent = 0,
463 Forwarded = 1,
464 ConnectorWhatsapp = 2,
465 ConnectorTwilio = 3,
466 BridgeRtsp = 4,
468 }
469 impl KindDetail {
470 pub fn as_str_name(&self) -> &'static str {
475 match self {
476 KindDetail::CloudAgent => "CLOUD_AGENT",
477 KindDetail::Forwarded => "FORWARDED",
478 KindDetail::ConnectorWhatsapp => "CONNECTOR_WHATSAPP",
479 KindDetail::ConnectorTwilio => "CONNECTOR_TWILIO",
480 KindDetail::BridgeRtsp => "BRIDGE_RTSP",
481 }
482 }
483 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
485 match value {
486 "CLOUD_AGENT" => Some(Self::CloudAgent),
487 "FORWARDED" => Some(Self::Forwarded),
488 "CONNECTOR_WHATSAPP" => Some(Self::ConnectorWhatsapp),
489 "CONNECTOR_TWILIO" => Some(Self::ConnectorTwilio),
490 "BRIDGE_RTSP" => Some(Self::BridgeRtsp),
491 _ => None,
492 }
493 }
494 }
495}
496#[allow(clippy::derive_partial_eq_without_eq)]
497#[derive(Clone, PartialEq, ::prost::Message)]
498pub struct Encryption {
499}
500pub mod encryption {
502 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
503 #[repr(i32)]
504 pub enum Type {
505 None = 0,
506 Gcm = 1,
507 Custom = 2,
508 }
509 impl Type {
510 pub fn as_str_name(&self) -> &'static str {
515 match self {
516 Type::None => "NONE",
517 Type::Gcm => "GCM",
518 Type::Custom => "CUSTOM",
519 }
520 }
521 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
523 match value {
524 "NONE" => Some(Self::None),
525 "GCM" => Some(Self::Gcm),
526 "CUSTOM" => Some(Self::Custom),
527 _ => None,
528 }
529 }
530 }
531}
532#[allow(clippy::derive_partial_eq_without_eq)]
533#[derive(Clone, PartialEq, ::prost::Message)]
534pub struct SimulcastCodecInfo {
535 #[prost(string, tag="1")]
536 pub mime_type: ::prost::alloc::string::String,
537 #[prost(string, tag="2")]
538 pub mid: ::prost::alloc::string::String,
539 #[prost(string, tag="3")]
540 pub cid: ::prost::alloc::string::String,
541 #[prost(message, repeated, tag="4")]
542 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
543 #[prost(enumeration="video_layer::Mode", tag="5")]
544 pub video_layer_mode: i32,
545 #[prost(string, tag="6")]
550 pub sdp_cid: ::prost::alloc::string::String,
551}
552#[allow(clippy::derive_partial_eq_without_eq)]
553#[derive(Clone, PartialEq, ::prost::Message)]
554pub struct TrackInfo {
555 #[prost(string, tag="1")]
556 pub sid: ::prost::alloc::string::String,
557 #[prost(enumeration="TrackType", tag="2")]
558 pub r#type: i32,
559 #[prost(string, tag="3")]
560 pub name: ::prost::alloc::string::String,
561 #[prost(bool, tag="4")]
562 pub muted: bool,
563 #[prost(uint32, tag="5")]
566 pub width: u32,
567 #[prost(uint32, tag="6")]
569 pub height: u32,
570 #[deprecated]
574 #[prost(bool, tag="7")]
575 pub simulcast: bool,
576 #[deprecated]
580 #[prost(bool, tag="8")]
581 pub disable_dtx: bool,
582 #[prost(enumeration="TrackSource", tag="9")]
584 pub source: i32,
585 #[deprecated]
587 #[prost(message, repeated, tag="10")]
588 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
589 #[prost(string, tag="11")]
591 pub mime_type: ::prost::alloc::string::String,
592 #[prost(string, tag="12")]
593 pub mid: ::prost::alloc::string::String,
594 #[prost(message, repeated, tag="13")]
595 pub codecs: ::prost::alloc::vec::Vec<SimulcastCodecInfo>,
596 #[deprecated]
598 #[prost(bool, tag="14")]
599 pub stereo: bool,
600 #[prost(bool, tag="15")]
602 pub disable_red: bool,
603 #[prost(enumeration="encryption::Type", tag="16")]
604 pub encryption: i32,
605 #[prost(string, tag="17")]
606 pub stream: ::prost::alloc::string::String,
607 #[prost(message, optional, tag="18")]
608 pub version: ::core::option::Option<TimedVersion>,
609 #[prost(enumeration="AudioTrackFeature", repeated, tag="19")]
610 pub audio_features: ::prost::alloc::vec::Vec<i32>,
611 #[prost(enumeration="BackupCodecPolicy", tag="20")]
612 pub backup_codec_policy: i32,
613 #[prost(enumeration="PacketTrailerFeature", repeated, tag="21")]
614 pub packet_trailer_features: ::prost::alloc::vec::Vec<i32>,
615}
616#[allow(clippy::derive_partial_eq_without_eq)]
617#[derive(Clone, PartialEq, ::prost::Message)]
618pub struct DataTrackInfo {
619 #[prost(uint32, tag="1")]
621 pub pub_handle: u32,
622 #[prost(string, tag="2")]
624 pub sid: ::prost::alloc::string::String,
625 #[prost(string, tag="3")]
627 pub name: ::prost::alloc::string::String,
628 #[prost(enumeration="encryption::Type", tag="4")]
630 pub encryption: i32,
631}
632#[allow(clippy::derive_partial_eq_without_eq)]
633#[derive(Clone, PartialEq, ::prost::Message)]
634pub struct DataTrackExtensionParticipantSid {
635 #[prost(enumeration="DataTrackExtensionId", tag="1")]
636 pub id: i32,
637 #[prost(string, tag="2")]
638 pub participant_sid: ::prost::alloc::string::String,
639}
640#[allow(clippy::derive_partial_eq_without_eq)]
641#[derive(Clone, PartialEq, ::prost::Message)]
642pub struct DataTrackSubscriptionOptions {
643 #[prost(uint32, optional, tag="1")]
646 pub target_fps: ::core::option::Option<u32>,
647}
648#[allow(clippy::derive_partial_eq_without_eq)]
650#[derive(Clone, PartialEq, ::prost::Message)]
651pub struct VideoLayer {
652 #[prost(enumeration="VideoQuality", tag="1")]
654 pub quality: i32,
655 #[prost(uint32, tag="2")]
656 pub width: u32,
657 #[prost(uint32, tag="3")]
658 pub height: u32,
659 #[prost(uint32, tag="4")]
661 pub bitrate: u32,
662 #[prost(uint32, tag="5")]
663 pub ssrc: u32,
664 #[prost(int32, tag="6")]
665 pub spatial_layer: i32,
666 #[prost(string, tag="7")]
667 pub rid: ::prost::alloc::string::String,
668 #[prost(uint32, tag="8")]
669 pub repair_ssrc: u32,
670}
671pub mod video_layer {
673 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
674 #[repr(i32)]
675 pub enum Mode {
676 Unused = 0,
677 OneSpatialLayerPerStream = 1,
678 MultipleSpatialLayersPerStream = 2,
679 OneSpatialLayerPerStreamIncompleteRtcpSr = 3,
680 }
681 impl Mode {
682 pub fn as_str_name(&self) -> &'static str {
687 match self {
688 Mode::Unused => "MODE_UNUSED",
689 Mode::OneSpatialLayerPerStream => "ONE_SPATIAL_LAYER_PER_STREAM",
690 Mode::MultipleSpatialLayersPerStream => "MULTIPLE_SPATIAL_LAYERS_PER_STREAM",
691 Mode::OneSpatialLayerPerStreamIncompleteRtcpSr => "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR",
692 }
693 }
694 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
696 match value {
697 "MODE_UNUSED" => Some(Self::Unused),
698 "ONE_SPATIAL_LAYER_PER_STREAM" => Some(Self::OneSpatialLayerPerStream),
699 "MULTIPLE_SPATIAL_LAYERS_PER_STREAM" => Some(Self::MultipleSpatialLayersPerStream),
700 "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR" => Some(Self::OneSpatialLayerPerStreamIncompleteRtcpSr),
701 _ => None,
702 }
703 }
704 }
705}
706#[allow(clippy::derive_partial_eq_without_eq)]
708#[derive(Clone, PartialEq, ::prost::Message)]
709pub struct DataPacket {
710 #[deprecated]
711 #[prost(enumeration="data_packet::Kind", tag="1")]
712 pub kind: i32,
713 #[prost(string, tag="4")]
715 pub participant_identity: ::prost::alloc::string::String,
716 #[prost(string, repeated, tag="5")]
718 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
719 #[prost(uint32, tag="16")]
721 pub sequence: u32,
722 #[prost(string, tag="17")]
724 pub participant_sid: ::prost::alloc::string::String,
725 #[prost(oneof="data_packet::Value", tags="2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18")]
726 pub value: ::core::option::Option<data_packet::Value>,
727}
728pub mod data_packet {
730 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
731 #[repr(i32)]
732 pub enum Kind {
733 Reliable = 0,
734 Lossy = 1,
735 }
736 impl Kind {
737 pub fn as_str_name(&self) -> &'static str {
742 match self {
743 Kind::Reliable => "RELIABLE",
744 Kind::Lossy => "LOSSY",
745 }
746 }
747 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
749 match value {
750 "RELIABLE" => Some(Self::Reliable),
751 "LOSSY" => Some(Self::Lossy),
752 _ => None,
753 }
754 }
755 }
756 #[allow(clippy::derive_partial_eq_without_eq)]
757#[derive(Clone, PartialEq, ::prost::Oneof)]
758 pub enum Value {
759 #[prost(message, tag="2")]
760 User(super::UserPacket),
761 #[prost(message, tag="3")]
762 Speaker(super::ActiveSpeakerUpdate),
763 #[prost(message, tag="6")]
764 SipDtmf(super::SipDtmf),
765 #[prost(message, tag="7")]
766 Transcription(super::Transcription),
767 #[prost(message, tag="8")]
768 Metrics(super::MetricsBatch),
769 #[prost(message, tag="9")]
770 ChatMessage(super::ChatMessage),
771 #[prost(message, tag="10")]
772 RpcRequest(super::RpcRequest),
773 #[prost(message, tag="11")]
774 RpcAck(super::RpcAck),
775 #[prost(message, tag="12")]
776 RpcResponse(super::RpcResponse),
777 #[prost(message, tag="13")]
778 StreamHeader(super::data_stream::Header),
779 #[prost(message, tag="14")]
780 StreamChunk(super::data_stream::Chunk),
781 #[prost(message, tag="15")]
782 StreamTrailer(super::data_stream::Trailer),
783 #[prost(message, tag="18")]
784 EncryptedPacket(super::EncryptedPacket),
785 }
786}
787#[allow(clippy::derive_partial_eq_without_eq)]
788#[derive(Clone, PartialEq, ::prost::Message)]
789pub struct EncryptedPacket {
790 #[prost(enumeration="encryption::Type", tag="1")]
791 pub encryption_type: i32,
792 #[prost(bytes="vec", tag="2")]
793 pub iv: ::prost::alloc::vec::Vec<u8>,
794 #[prost(uint32, tag="3")]
795 pub key_index: u32,
796 #[prost(bytes="vec", tag="4")]
798 pub encrypted_value: ::prost::alloc::vec::Vec<u8>,
799}
800#[allow(clippy::derive_partial_eq_without_eq)]
801#[derive(Clone, PartialEq, ::prost::Message)]
802pub struct EncryptedPacketPayload {
803 #[prost(oneof="encrypted_packet_payload::Value", tags="1, 3, 4, 5, 6, 7, 8, 9")]
804 pub value: ::core::option::Option<encrypted_packet_payload::Value>,
805}
806pub mod encrypted_packet_payload {
808 #[allow(clippy::derive_partial_eq_without_eq)]
809#[derive(Clone, PartialEq, ::prost::Oneof)]
810 pub enum Value {
811 #[prost(message, tag="1")]
812 User(super::UserPacket),
813 #[prost(message, tag="3")]
814 ChatMessage(super::ChatMessage),
815 #[prost(message, tag="4")]
816 RpcRequest(super::RpcRequest),
817 #[prost(message, tag="5")]
818 RpcAck(super::RpcAck),
819 #[prost(message, tag="6")]
820 RpcResponse(super::RpcResponse),
821 #[prost(message, tag="7")]
822 StreamHeader(super::data_stream::Header),
823 #[prost(message, tag="8")]
824 StreamChunk(super::data_stream::Chunk),
825 #[prost(message, tag="9")]
826 StreamTrailer(super::data_stream::Trailer),
827 }
828}
829#[allow(clippy::derive_partial_eq_without_eq)]
830#[derive(Clone, PartialEq, ::prost::Message)]
831pub struct ActiveSpeakerUpdate {
832 #[prost(message, repeated, tag="1")]
833 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
834}
835#[allow(clippy::derive_partial_eq_without_eq)]
836#[derive(Clone, PartialEq, ::prost::Message)]
837pub struct SpeakerInfo {
838 #[prost(string, tag="1")]
839 pub sid: ::prost::alloc::string::String,
840 #[prost(float, tag="2")]
842 pub level: f32,
843 #[prost(bool, tag="3")]
845 pub active: bool,
846}
847#[allow(clippy::derive_partial_eq_without_eq)]
848#[derive(Clone, PartialEq, ::prost::Message)]
849pub struct UserPacket {
850 #[deprecated]
852 #[prost(string, tag="1")]
853 pub participant_sid: ::prost::alloc::string::String,
854 #[deprecated]
855 #[prost(string, tag="5")]
856 pub participant_identity: ::prost::alloc::string::String,
857 #[prost(bytes="vec", tag="2")]
859 pub payload: ::prost::alloc::vec::Vec<u8>,
860 #[deprecated]
862 #[prost(string, repeated, tag="3")]
863 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
864 #[deprecated]
866 #[prost(string, repeated, tag="6")]
867 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
868 #[prost(string, optional, tag="4")]
870 pub topic: ::core::option::Option<::prost::alloc::string::String>,
871 #[prost(string, optional, tag="8")]
873 pub id: ::core::option::Option<::prost::alloc::string::String>,
874 #[prost(uint64, optional, tag="9")]
876 pub start_time: ::core::option::Option<u64>,
877 #[prost(uint64, optional, tag="10")]
878 pub end_time: ::core::option::Option<u64>,
879 #[prost(bytes="vec", tag="11")]
881 pub nonce: ::prost::alloc::vec::Vec<u8>,
882}
883#[allow(clippy::derive_partial_eq_without_eq)]
884#[derive(Clone, PartialEq, ::prost::Message)]
885pub struct SipDtmf {
886 #[prost(uint32, tag="3")]
887 pub code: u32,
888 #[prost(string, tag="4")]
889 pub digit: ::prost::alloc::string::String,
890}
891#[allow(clippy::derive_partial_eq_without_eq)]
892#[derive(Clone, PartialEq, ::prost::Message)]
893pub struct Transcription {
894 #[prost(string, tag="2")]
896 pub transcribed_participant_identity: ::prost::alloc::string::String,
897 #[prost(string, tag="3")]
898 pub track_id: ::prost::alloc::string::String,
899 #[prost(message, repeated, tag="4")]
900 pub segments: ::prost::alloc::vec::Vec<TranscriptionSegment>,
901}
902#[allow(clippy::derive_partial_eq_without_eq)]
903#[derive(Clone, PartialEq, ::prost::Message)]
904pub struct TranscriptionSegment {
905 #[prost(string, tag="1")]
906 pub id: ::prost::alloc::string::String,
907 #[prost(string, tag="2")]
908 pub text: ::prost::alloc::string::String,
909 #[prost(uint64, tag="3")]
910 pub start_time: u64,
911 #[prost(uint64, tag="4")]
912 pub end_time: u64,
913 #[prost(bool, tag="5")]
914 pub r#final: bool,
915 #[prost(string, tag="6")]
916 pub language: ::prost::alloc::string::String,
917}
918#[allow(clippy::derive_partial_eq_without_eq)]
919#[derive(Clone, PartialEq, ::prost::Message)]
920pub struct ChatMessage {
921 #[prost(string, tag="1")]
923 pub id: ::prost::alloc::string::String,
924 #[prost(int64, tag="2")]
925 pub timestamp: i64,
926 #[prost(int64, optional, tag="3")]
928 pub edit_timestamp: ::core::option::Option<i64>,
929 #[prost(string, tag="4")]
930 pub message: ::prost::alloc::string::String,
931 #[prost(bool, tag="5")]
933 pub deleted: bool,
934 #[prost(bool, tag="6")]
936 pub generated: bool,
937}
938#[allow(clippy::derive_partial_eq_without_eq)]
939#[derive(Clone, PartialEq, ::prost::Message)]
940pub struct RpcRequest {
941 #[prost(string, tag="1")]
942 pub id: ::prost::alloc::string::String,
943 #[prost(string, tag="2")]
944 pub method: ::prost::alloc::string::String,
945 #[prost(string, tag="3")]
946 pub payload: ::prost::alloc::string::String,
947 #[prost(uint32, tag="4")]
948 pub response_timeout_ms: u32,
949 #[prost(uint32, tag="5")]
950 pub version: u32,
951 #[prost(bytes="vec", tag="6")]
953 pub compressed_payload: ::prost::alloc::vec::Vec<u8>,
954}
955#[allow(clippy::derive_partial_eq_without_eq)]
956#[derive(Clone, PartialEq, ::prost::Message)]
957pub struct RpcAck {
958 #[prost(string, tag="1")]
959 pub request_id: ::prost::alloc::string::String,
960}
961#[allow(clippy::derive_partial_eq_without_eq)]
962#[derive(Clone, PartialEq, ::prost::Message)]
963pub struct RpcResponse {
964 #[prost(string, tag="1")]
965 pub request_id: ::prost::alloc::string::String,
966 #[prost(oneof="rpc_response::Value", tags="2, 3, 4")]
967 pub value: ::core::option::Option<rpc_response::Value>,
968}
969pub mod rpc_response {
971 #[allow(clippy::derive_partial_eq_without_eq)]
972#[derive(Clone, PartialEq, ::prost::Oneof)]
973 pub enum Value {
974 #[prost(string, tag="2")]
975 Payload(::prost::alloc::string::String),
976 #[prost(message, tag="3")]
977 Error(super::RpcError),
978 #[prost(bytes, tag="4")]
980 CompressedPayload(::prost::alloc::vec::Vec<u8>),
981 }
982}
983#[allow(clippy::derive_partial_eq_without_eq)]
984#[derive(Clone, PartialEq, ::prost::Message)]
985pub struct RpcError {
986 #[prost(uint32, tag="1")]
987 pub code: u32,
988 #[prost(string, tag="2")]
989 pub message: ::prost::alloc::string::String,
990 #[prost(string, tag="3")]
991 pub data: ::prost::alloc::string::String,
992}
993#[allow(clippy::derive_partial_eq_without_eq)]
994#[derive(Clone, PartialEq, ::prost::Message)]
995pub struct ParticipantTracks {
996 #[prost(string, tag="1")]
998 pub participant_sid: ::prost::alloc::string::String,
999 #[prost(string, repeated, tag="2")]
1000 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1001}
1002#[allow(clippy::derive_partial_eq_without_eq)]
1004#[derive(Clone, PartialEq, ::prost::Message)]
1005pub struct ServerInfo {
1006 #[prost(enumeration="server_info::Edition", tag="1")]
1007 pub edition: i32,
1008 #[prost(string, tag="2")]
1009 pub version: ::prost::alloc::string::String,
1010 #[prost(int32, tag="3")]
1011 pub protocol: i32,
1012 #[prost(string, tag="4")]
1013 pub region: ::prost::alloc::string::String,
1014 #[prost(string, tag="5")]
1015 pub node_id: ::prost::alloc::string::String,
1016 #[prost(string, tag="6")]
1018 pub debug_info: ::prost::alloc::string::String,
1019 #[prost(int32, tag="7")]
1020 pub agent_protocol: i32,
1021}
1022pub mod server_info {
1024 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1025 #[repr(i32)]
1026 pub enum Edition {
1027 Standard = 0,
1028 Cloud = 1,
1029 }
1030 impl Edition {
1031 pub fn as_str_name(&self) -> &'static str {
1036 match self {
1037 Edition::Standard => "Standard",
1038 Edition::Cloud => "Cloud",
1039 }
1040 }
1041 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1043 match value {
1044 "Standard" => Some(Self::Standard),
1045 "Cloud" => Some(Self::Cloud),
1046 _ => None,
1047 }
1048 }
1049 }
1050}
1051#[allow(clippy::derive_partial_eq_without_eq)]
1053#[derive(Clone, PartialEq, ::prost::Message)]
1054pub struct ClientInfo {
1055 #[prost(enumeration="client_info::Sdk", tag="1")]
1056 pub sdk: i32,
1057 #[prost(string, tag="2")]
1058 pub version: ::prost::alloc::string::String,
1059 #[prost(int32, tag="3")]
1060 pub protocol: i32,
1061 #[prost(string, tag="4")]
1062 pub os: ::prost::alloc::string::String,
1063 #[prost(string, tag="5")]
1064 pub os_version: ::prost::alloc::string::String,
1065 #[prost(string, tag="6")]
1066 pub device_model: ::prost::alloc::string::String,
1067 #[prost(string, tag="7")]
1068 pub browser: ::prost::alloc::string::String,
1069 #[prost(string, tag="8")]
1070 pub browser_version: ::prost::alloc::string::String,
1071 #[prost(string, tag="9")]
1072 pub address: ::prost::alloc::string::String,
1073 #[prost(string, tag="10")]
1075 pub network: ::prost::alloc::string::String,
1076 #[prost(string, tag="11")]
1079 pub other_sdks: ::prost::alloc::string::String,
1080 #[prost(int32, tag="12")]
1082 pub client_protocol: i32,
1083}
1084pub mod client_info {
1086 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1087 #[repr(i32)]
1088 pub enum Sdk {
1089 Unknown = 0,
1090 Js = 1,
1091 Swift = 2,
1092 Android = 3,
1093 Flutter = 4,
1094 Go = 5,
1095 Unity = 6,
1096 ReactNative = 7,
1097 Rust = 8,
1098 Python = 9,
1099 Cpp = 10,
1100 UnityWeb = 11,
1101 Node = 12,
1102 Unreal = 13,
1103 Esp32 = 14,
1104 }
1105 impl Sdk {
1106 pub fn as_str_name(&self) -> &'static str {
1111 match self {
1112 Sdk::Unknown => "UNKNOWN",
1113 Sdk::Js => "JS",
1114 Sdk::Swift => "SWIFT",
1115 Sdk::Android => "ANDROID",
1116 Sdk::Flutter => "FLUTTER",
1117 Sdk::Go => "GO",
1118 Sdk::Unity => "UNITY",
1119 Sdk::ReactNative => "REACT_NATIVE",
1120 Sdk::Rust => "RUST",
1121 Sdk::Python => "PYTHON",
1122 Sdk::Cpp => "CPP",
1123 Sdk::UnityWeb => "UNITY_WEB",
1124 Sdk::Node => "NODE",
1125 Sdk::Unreal => "UNREAL",
1126 Sdk::Esp32 => "ESP32",
1127 }
1128 }
1129 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1131 match value {
1132 "UNKNOWN" => Some(Self::Unknown),
1133 "JS" => Some(Self::Js),
1134 "SWIFT" => Some(Self::Swift),
1135 "ANDROID" => Some(Self::Android),
1136 "FLUTTER" => Some(Self::Flutter),
1137 "GO" => Some(Self::Go),
1138 "UNITY" => Some(Self::Unity),
1139 "REACT_NATIVE" => Some(Self::ReactNative),
1140 "RUST" => Some(Self::Rust),
1141 "PYTHON" => Some(Self::Python),
1142 "CPP" => Some(Self::Cpp),
1143 "UNITY_WEB" => Some(Self::UnityWeb),
1144 "NODE" => Some(Self::Node),
1145 "UNREAL" => Some(Self::Unreal),
1146 "ESP32" => Some(Self::Esp32),
1147 _ => None,
1148 }
1149 }
1150 }
1151}
1152#[allow(clippy::derive_partial_eq_without_eq)]
1154#[derive(Clone, PartialEq, ::prost::Message)]
1155pub struct ClientConfiguration {
1156 #[prost(message, optional, tag="1")]
1157 pub video: ::core::option::Option<VideoConfiguration>,
1158 #[prost(message, optional, tag="2")]
1159 pub screen: ::core::option::Option<VideoConfiguration>,
1160 #[prost(enumeration="ClientConfigSetting", tag="3")]
1161 pub resume_connection: i32,
1162 #[prost(message, optional, tag="4")]
1163 pub disabled_codecs: ::core::option::Option<DisabledCodecs>,
1164 #[prost(enumeration="ClientConfigSetting", tag="5")]
1165 pub force_relay: i32,
1166}
1167#[allow(clippy::derive_partial_eq_without_eq)]
1168#[derive(Clone, PartialEq, ::prost::Message)]
1169pub struct VideoConfiguration {
1170 #[prost(enumeration="ClientConfigSetting", tag="1")]
1171 pub hardware_encoder: i32,
1172}
1173#[allow(clippy::derive_partial_eq_without_eq)]
1174#[derive(Clone, PartialEq, ::prost::Message)]
1175pub struct DisabledCodecs {
1176 #[prost(message, repeated, tag="1")]
1178 pub codecs: ::prost::alloc::vec::Vec<Codec>,
1179 #[prost(message, repeated, tag="2")]
1181 pub publish: ::prost::alloc::vec::Vec<Codec>,
1182}
1183#[allow(clippy::derive_partial_eq_without_eq)]
1184#[derive(Clone, PartialEq, ::prost::Message)]
1185pub struct RtpDrift {
1186 #[prost(message, optional, tag="1")]
1187 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1188 #[prost(message, optional, tag="2")]
1189 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1190 #[prost(double, tag="3")]
1191 pub duration: f64,
1192 #[prost(uint64, tag="4")]
1193 pub start_timestamp: u64,
1194 #[prost(uint64, tag="5")]
1195 pub end_timestamp: u64,
1196 #[prost(uint64, tag="6")]
1197 pub rtp_clock_ticks: u64,
1198 #[prost(int64, tag="7")]
1199 pub drift_samples: i64,
1200 #[prost(double, tag="8")]
1201 pub drift_ms: f64,
1202 #[prost(double, tag="9")]
1203 pub clock_rate: f64,
1204}
1205#[allow(clippy::derive_partial_eq_without_eq)]
1206#[derive(Clone, PartialEq, ::prost::Message)]
1207pub struct RtpStats {
1208 #[prost(message, optional, tag="1")]
1209 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1210 #[prost(message, optional, tag="2")]
1211 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1212 #[prost(double, tag="3")]
1213 pub duration: f64,
1214 #[prost(uint32, tag="4")]
1215 pub packets: u32,
1216 #[prost(double, tag="5")]
1217 pub packet_rate: f64,
1218 #[prost(uint64, tag="6")]
1219 pub bytes: u64,
1220 #[prost(uint64, tag="39")]
1221 pub header_bytes: u64,
1222 #[prost(double, tag="7")]
1223 pub bitrate: f64,
1224 #[prost(uint32, tag="8")]
1225 pub packets_lost: u32,
1226 #[prost(double, tag="9")]
1227 pub packet_loss_rate: f64,
1228 #[prost(float, tag="10")]
1229 pub packet_loss_percentage: f32,
1230 #[prost(uint32, tag="11")]
1231 pub packets_duplicate: u32,
1232 #[prost(double, tag="12")]
1233 pub packet_duplicate_rate: f64,
1234 #[prost(uint64, tag="13")]
1235 pub bytes_duplicate: u64,
1236 #[prost(uint64, tag="40")]
1237 pub header_bytes_duplicate: u64,
1238 #[prost(double, tag="14")]
1239 pub bitrate_duplicate: f64,
1240 #[prost(uint32, tag="15")]
1241 pub packets_padding: u32,
1242 #[prost(double, tag="16")]
1243 pub packet_padding_rate: f64,
1244 #[prost(uint64, tag="17")]
1245 pub bytes_padding: u64,
1246 #[prost(uint64, tag="41")]
1247 pub header_bytes_padding: u64,
1248 #[prost(double, tag="18")]
1249 pub bitrate_padding: f64,
1250 #[prost(uint32, tag="19")]
1251 pub packets_out_of_order: u32,
1252 #[prost(uint32, tag="20")]
1253 pub frames: u32,
1254 #[prost(double, tag="21")]
1255 pub frame_rate: f64,
1256 #[prost(double, tag="22")]
1257 pub jitter_current: f64,
1258 #[prost(double, tag="23")]
1259 pub jitter_max: f64,
1260 #[prost(map="int32, uint32", tag="24")]
1261 pub gap_histogram: ::std::collections::HashMap<i32, u32>,
1262 #[prost(uint32, tag="25")]
1263 pub nacks: u32,
1264 #[prost(uint32, tag="37")]
1265 pub nack_acks: u32,
1266 #[prost(uint32, tag="26")]
1267 pub nack_misses: u32,
1268 #[prost(uint32, tag="38")]
1269 pub nack_repeated: u32,
1270 #[prost(uint32, tag="27")]
1271 pub plis: u32,
1272 #[prost(message, optional, tag="28")]
1273 pub last_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1274 #[prost(uint32, tag="29")]
1275 pub firs: u32,
1276 #[prost(message, optional, tag="30")]
1277 pub last_fir: ::core::option::Option<::pbjson_types::Timestamp>,
1278 #[prost(uint32, tag="31")]
1279 pub rtt_current: u32,
1280 #[prost(uint32, tag="32")]
1281 pub rtt_max: u32,
1282 #[prost(uint32, tag="33")]
1283 pub key_frames: u32,
1284 #[prost(message, optional, tag="34")]
1285 pub last_key_frame: ::core::option::Option<::pbjson_types::Timestamp>,
1286 #[prost(uint32, tag="35")]
1287 pub layer_lock_plis: u32,
1288 #[prost(message, optional, tag="36")]
1289 pub last_layer_lock_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1290 #[prost(message, optional, tag="44")]
1291 pub packet_drift: ::core::option::Option<RtpDrift>,
1292 #[prost(message, optional, tag="45")]
1293 pub ntp_report_drift: ::core::option::Option<RtpDrift>,
1294 #[prost(message, optional, tag="46")]
1295 pub rebased_report_drift: ::core::option::Option<RtpDrift>,
1296 #[prost(message, optional, tag="47")]
1298 pub received_report_drift: ::core::option::Option<RtpDrift>,
1299}
1300#[allow(clippy::derive_partial_eq_without_eq)]
1301#[derive(Clone, PartialEq, ::prost::Message)]
1302pub struct RtcpSenderReportState {
1303 #[prost(uint32, tag="1")]
1304 pub rtp_timestamp: u32,
1305 #[prost(uint64, tag="2")]
1306 pub rtp_timestamp_ext: u64,
1307 #[prost(uint64, tag="3")]
1308 pub ntp_timestamp: u64,
1309 #[prost(int64, tag="4")]
1311 pub at: i64,
1312 #[prost(int64, tag="5")]
1313 pub at_adjusted: i64,
1314 #[prost(uint32, tag="6")]
1315 pub packets: u32,
1316 #[prost(uint64, tag="7")]
1317 pub octets: u64,
1318}
1319#[allow(clippy::derive_partial_eq_without_eq)]
1320#[derive(Clone, PartialEq, ::prost::Message)]
1321pub struct RtpForwarderState {
1322 #[prost(bool, tag="1")]
1323 pub started: bool,
1324 #[prost(int32, tag="2")]
1325 pub reference_layer_spatial: i32,
1326 #[prost(int64, tag="3")]
1327 pub pre_start_time: i64,
1328 #[prost(uint64, tag="4")]
1329 pub ext_first_timestamp: u64,
1330 #[prost(uint64, tag="5")]
1331 pub dummy_start_timestamp_offset: u64,
1332 #[prost(message, optional, tag="6")]
1333 pub rtp_munger: ::core::option::Option<RtpMungerState>,
1334 #[prost(message, repeated, tag="8")]
1335 pub sender_report_state: ::prost::alloc::vec::Vec<RtcpSenderReportState>,
1336 #[prost(oneof="rtp_forwarder_state::CodecMunger", tags="7")]
1337 pub codec_munger: ::core::option::Option<rtp_forwarder_state::CodecMunger>,
1338}
1339pub mod rtp_forwarder_state {
1341 #[allow(clippy::derive_partial_eq_without_eq)]
1342#[derive(Clone, PartialEq, ::prost::Oneof)]
1343 pub enum CodecMunger {
1344 #[prost(message, tag="7")]
1345 Vp8Munger(super::Vp8MungerState),
1346 }
1347}
1348#[allow(clippy::derive_partial_eq_without_eq)]
1349#[derive(Clone, PartialEq, ::prost::Message)]
1350pub struct RtpMungerState {
1351 #[prost(uint64, tag="1")]
1352 pub ext_last_sequence_number: u64,
1353 #[prost(uint64, tag="2")]
1354 pub ext_second_last_sequence_number: u64,
1355 #[prost(uint64, tag="3")]
1356 pub ext_last_timestamp: u64,
1357 #[prost(uint64, tag="4")]
1358 pub ext_second_last_timestamp: u64,
1359 #[prost(bool, tag="5")]
1360 pub last_marker: bool,
1361 #[prost(bool, tag="6")]
1362 pub second_last_marker: bool,
1363}
1364#[allow(clippy::derive_partial_eq_without_eq)]
1365#[derive(Clone, PartialEq, ::prost::Message)]
1366pub struct Vp8MungerState {
1367 #[prost(int32, tag="1")]
1368 pub ext_last_picture_id: i32,
1369 #[prost(bool, tag="2")]
1370 pub picture_id_used: bool,
1371 #[prost(uint32, tag="3")]
1372 pub last_tl0_pic_idx: u32,
1373 #[prost(bool, tag="4")]
1374 pub tl0_pic_idx_used: bool,
1375 #[prost(bool, tag="5")]
1376 pub tid_used: bool,
1377 #[prost(uint32, tag="6")]
1378 pub last_key_idx: u32,
1379 #[prost(bool, tag="7")]
1380 pub key_idx_used: bool,
1381}
1382#[allow(clippy::derive_partial_eq_without_eq)]
1383#[derive(Clone, PartialEq, ::prost::Message)]
1384pub struct TimedVersion {
1385 #[prost(int64, tag="1")]
1386 pub unix_micro: i64,
1387 #[prost(int32, tag="2")]
1388 pub ticks: i32,
1389}
1390#[allow(clippy::derive_partial_eq_without_eq)]
1391#[derive(Clone, PartialEq, ::prost::Message)]
1392pub struct DataStream {
1393}
1394pub mod data_stream {
1396 #[allow(clippy::derive_partial_eq_without_eq)]
1398#[derive(Clone, PartialEq, ::prost::Message)]
1399 pub struct TextHeader {
1400 #[prost(enumeration="OperationType", tag="1")]
1401 pub operation_type: i32,
1402 #[prost(int32, tag="2")]
1404 pub version: i32,
1405 #[prost(string, tag="3")]
1407 pub reply_to_stream_id: ::prost::alloc::string::String,
1408 #[prost(string, repeated, tag="4")]
1410 pub attached_stream_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1411 #[prost(bool, tag="5")]
1413 pub generated: bool,
1414 }
1415 #[allow(clippy::derive_partial_eq_without_eq)]
1417#[derive(Clone, PartialEq, ::prost::Message)]
1418 pub struct ByteHeader {
1419 #[prost(string, tag="1")]
1420 pub name: ::prost::alloc::string::String,
1421 }
1422 #[allow(clippy::derive_partial_eq_without_eq)]
1424#[derive(Clone, PartialEq, ::prost::Message)]
1425 pub struct Header {
1426 #[prost(string, tag="1")]
1428 pub stream_id: ::prost::alloc::string::String,
1429 #[prost(int64, tag="2")]
1431 pub timestamp: i64,
1432 #[prost(string, tag="3")]
1433 pub topic: ::prost::alloc::string::String,
1434 #[prost(string, tag="4")]
1435 pub mime_type: ::prost::alloc::string::String,
1436 #[prost(uint64, optional, tag="5")]
1438 pub total_length: ::core::option::Option<u64>,
1439 #[deprecated]
1441 #[prost(enumeration="super::encryption::Type", tag="7")]
1442 pub encryption_type: i32,
1443 #[prost(map="string, string", tag="8")]
1445 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1446 #[prost(oneof="header::ContentHeader", tags="9, 10")]
1448 pub content_header: ::core::option::Option<header::ContentHeader>,
1449 }
1450 pub mod header {
1452 #[allow(clippy::derive_partial_eq_without_eq)]
1454#[derive(Clone, PartialEq, ::prost::Oneof)]
1455 pub enum ContentHeader {
1456 #[prost(message, tag="9")]
1457 TextHeader(super::TextHeader),
1458 #[prost(message, tag="10")]
1459 ByteHeader(super::ByteHeader),
1460 }
1461 }
1462 #[allow(clippy::derive_partial_eq_without_eq)]
1463#[derive(Clone, PartialEq, ::prost::Message)]
1464 pub struct Chunk {
1465 #[prost(string, tag="1")]
1467 pub stream_id: ::prost::alloc::string::String,
1468 #[prost(uint64, tag="2")]
1469 pub chunk_index: u64,
1470 #[prost(bytes="vec", tag="3")]
1472 pub content: ::prost::alloc::vec::Vec<u8>,
1473 #[prost(int32, tag="4")]
1475 pub version: i32,
1476 #[deprecated]
1478 #[prost(bytes="vec", optional, tag="5")]
1479 pub iv: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1480 }
1481 #[allow(clippy::derive_partial_eq_without_eq)]
1482#[derive(Clone, PartialEq, ::prost::Message)]
1483 pub struct Trailer {
1484 #[prost(string, tag="1")]
1486 pub stream_id: ::prost::alloc::string::String,
1487 #[prost(string, tag="2")]
1489 pub reason: ::prost::alloc::string::String,
1490 #[prost(map="string, string", tag="3")]
1492 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1493 }
1494 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1496 #[repr(i32)]
1497 pub enum OperationType {
1498 Create = 0,
1499 Update = 1,
1500 Delete = 2,
1501 Reaction = 3,
1502 }
1503 impl OperationType {
1504 pub fn as_str_name(&self) -> &'static str {
1509 match self {
1510 OperationType::Create => "CREATE",
1511 OperationType::Update => "UPDATE",
1512 OperationType::Delete => "DELETE",
1513 OperationType::Reaction => "REACTION",
1514 }
1515 }
1516 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1518 match value {
1519 "CREATE" => Some(Self::Create),
1520 "UPDATE" => Some(Self::Update),
1521 "DELETE" => Some(Self::Delete),
1522 "REACTION" => Some(Self::Reaction),
1523 _ => None,
1524 }
1525 }
1526 }
1527}
1528#[allow(clippy::derive_partial_eq_without_eq)]
1529#[derive(Clone, PartialEq, ::prost::Message)]
1530pub struct FilterParams {
1531 #[prost(string, repeated, tag="1")]
1532 pub include_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1533 #[prost(string, repeated, tag="2")]
1534 pub exclude_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1535}
1536#[allow(clippy::derive_partial_eq_without_eq)]
1537#[derive(Clone, PartialEq, ::prost::Message)]
1538pub struct WebhookConfig {
1539 #[prost(string, tag="1")]
1540 pub url: ::prost::alloc::string::String,
1541 #[prost(string, tag="2")]
1542 pub signing_key: ::prost::alloc::string::String,
1543 #[prost(message, optional, tag="3")]
1544 pub filter_params: ::core::option::Option<FilterParams>,
1545}
1546#[allow(clippy::derive_partial_eq_without_eq)]
1547#[derive(Clone, PartialEq, ::prost::Message)]
1548pub struct SubscribedAudioCodec {
1549 #[prost(string, tag="1")]
1550 pub codec: ::prost::alloc::string::String,
1551 #[prost(bool, tag="2")]
1552 pub enabled: bool,
1553}
1554#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1555#[repr(i32)]
1556pub enum AudioCodec {
1557 DefaultAc = 0,
1558 Opus = 1,
1559 Aac = 2,
1560 AcMp3 = 3,
1561}
1562impl AudioCodec {
1563 pub fn as_str_name(&self) -> &'static str {
1568 match self {
1569 AudioCodec::DefaultAc => "DEFAULT_AC",
1570 AudioCodec::Opus => "OPUS",
1571 AudioCodec::Aac => "AAC",
1572 AudioCodec::AcMp3 => "AC_MP3",
1573 }
1574 }
1575 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1577 match value {
1578 "DEFAULT_AC" => Some(Self::DefaultAc),
1579 "OPUS" => Some(Self::Opus),
1580 "AAC" => Some(Self::Aac),
1581 "AC_MP3" => Some(Self::AcMp3),
1582 _ => None,
1583 }
1584 }
1585}
1586#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1587#[repr(i32)]
1588pub enum VideoCodec {
1589 DefaultVc = 0,
1590 H264Baseline = 1,
1591 H264Main = 2,
1592 H264High = 3,
1593 Vp8 = 4,
1594}
1595impl VideoCodec {
1596 pub fn as_str_name(&self) -> &'static str {
1601 match self {
1602 VideoCodec::DefaultVc => "DEFAULT_VC",
1603 VideoCodec::H264Baseline => "H264_BASELINE",
1604 VideoCodec::H264Main => "H264_MAIN",
1605 VideoCodec::H264High => "H264_HIGH",
1606 VideoCodec::Vp8 => "VP8",
1607 }
1608 }
1609 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1611 match value {
1612 "DEFAULT_VC" => Some(Self::DefaultVc),
1613 "H264_BASELINE" => Some(Self::H264Baseline),
1614 "H264_MAIN" => Some(Self::H264Main),
1615 "H264_HIGH" => Some(Self::H264High),
1616 "VP8" => Some(Self::Vp8),
1617 _ => None,
1618 }
1619 }
1620}
1621#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1622#[repr(i32)]
1623pub enum ImageCodec {
1624 IcDefault = 0,
1625 IcJpeg = 1,
1626}
1627impl ImageCodec {
1628 pub fn as_str_name(&self) -> &'static str {
1633 match self {
1634 ImageCodec::IcDefault => "IC_DEFAULT",
1635 ImageCodec::IcJpeg => "IC_JPEG",
1636 }
1637 }
1638 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1640 match value {
1641 "IC_DEFAULT" => Some(Self::IcDefault),
1642 "IC_JPEG" => Some(Self::IcJpeg),
1643 _ => None,
1644 }
1645 }
1646}
1647#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1649#[repr(i32)]
1650pub enum BackupCodecPolicy {
1651 PreferRegression = 0,
1654 Simulcast = 1,
1656 Regression = 2,
1658}
1659impl BackupCodecPolicy {
1660 pub fn as_str_name(&self) -> &'static str {
1665 match self {
1666 BackupCodecPolicy::PreferRegression => "PREFER_REGRESSION",
1667 BackupCodecPolicy::Simulcast => "SIMULCAST",
1668 BackupCodecPolicy::Regression => "REGRESSION",
1669 }
1670 }
1671 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1673 match value {
1674 "PREFER_REGRESSION" => Some(Self::PreferRegression),
1675 "SIMULCAST" => Some(Self::Simulcast),
1676 "REGRESSION" => Some(Self::Regression),
1677 _ => None,
1678 }
1679 }
1680}
1681#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1682#[repr(i32)]
1683pub enum TrackType {
1684 Audio = 0,
1685 Video = 1,
1686 Data = 2,
1687}
1688impl TrackType {
1689 pub fn as_str_name(&self) -> &'static str {
1694 match self {
1695 TrackType::Audio => "AUDIO",
1696 TrackType::Video => "VIDEO",
1697 TrackType::Data => "DATA",
1698 }
1699 }
1700 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1702 match value {
1703 "AUDIO" => Some(Self::Audio),
1704 "VIDEO" => Some(Self::Video),
1705 "DATA" => Some(Self::Data),
1706 _ => None,
1707 }
1708 }
1709}
1710#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1711#[repr(i32)]
1712pub enum TrackSource {
1713 Unknown = 0,
1714 Camera = 1,
1715 Microphone = 2,
1716 ScreenShare = 3,
1717 ScreenShareAudio = 4,
1718}
1719impl TrackSource {
1720 pub fn as_str_name(&self) -> &'static str {
1725 match self {
1726 TrackSource::Unknown => "UNKNOWN",
1727 TrackSource::Camera => "CAMERA",
1728 TrackSource::Microphone => "MICROPHONE",
1729 TrackSource::ScreenShare => "SCREEN_SHARE",
1730 TrackSource::ScreenShareAudio => "SCREEN_SHARE_AUDIO",
1731 }
1732 }
1733 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1735 match value {
1736 "UNKNOWN" => Some(Self::Unknown),
1737 "CAMERA" => Some(Self::Camera),
1738 "MICROPHONE" => Some(Self::Microphone),
1739 "SCREEN_SHARE" => Some(Self::ScreenShare),
1740 "SCREEN_SHARE_AUDIO" => Some(Self::ScreenShareAudio),
1741 _ => None,
1742 }
1743 }
1744}
1745#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1746#[repr(i32)]
1747pub enum DataTrackExtensionId {
1748 DteiInvalid = 0,
1749 DteiParticipantSid = 1,
1750}
1751impl DataTrackExtensionId {
1752 pub fn as_str_name(&self) -> &'static str {
1757 match self {
1758 DataTrackExtensionId::DteiInvalid => "DTEI_INVALID",
1759 DataTrackExtensionId::DteiParticipantSid => "DTEI_PARTICIPANT_SID",
1760 }
1761 }
1762 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1764 match value {
1765 "DTEI_INVALID" => Some(Self::DteiInvalid),
1766 "DTEI_PARTICIPANT_SID" => Some(Self::DteiParticipantSid),
1767 _ => None,
1768 }
1769 }
1770}
1771#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1772#[repr(i32)]
1773pub enum VideoQuality {
1774 Low = 0,
1775 Medium = 1,
1776 High = 2,
1777 Off = 3,
1778}
1779impl VideoQuality {
1780 pub fn as_str_name(&self) -> &'static str {
1785 match self {
1786 VideoQuality::Low => "LOW",
1787 VideoQuality::Medium => "MEDIUM",
1788 VideoQuality::High => "HIGH",
1789 VideoQuality::Off => "OFF",
1790 }
1791 }
1792 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1794 match value {
1795 "LOW" => Some(Self::Low),
1796 "MEDIUM" => Some(Self::Medium),
1797 "HIGH" => Some(Self::High),
1798 "OFF" => Some(Self::Off),
1799 _ => None,
1800 }
1801 }
1802}
1803#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1804#[repr(i32)]
1805pub enum ConnectionQuality {
1806 Poor = 0,
1807 Good = 1,
1808 Excellent = 2,
1809 Lost = 3,
1810}
1811impl ConnectionQuality {
1812 pub fn as_str_name(&self) -> &'static str {
1817 match self {
1818 ConnectionQuality::Poor => "POOR",
1819 ConnectionQuality::Good => "GOOD",
1820 ConnectionQuality::Excellent => "EXCELLENT",
1821 ConnectionQuality::Lost => "LOST",
1822 }
1823 }
1824 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1826 match value {
1827 "POOR" => Some(Self::Poor),
1828 "GOOD" => Some(Self::Good),
1829 "EXCELLENT" => Some(Self::Excellent),
1830 "LOST" => Some(Self::Lost),
1831 _ => None,
1832 }
1833 }
1834}
1835#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1836#[repr(i32)]
1837pub enum ClientConfigSetting {
1838 Unset = 0,
1839 Disabled = 1,
1840 Enabled = 2,
1841}
1842impl ClientConfigSetting {
1843 pub fn as_str_name(&self) -> &'static str {
1848 match self {
1849 ClientConfigSetting::Unset => "UNSET",
1850 ClientConfigSetting::Disabled => "DISABLED",
1851 ClientConfigSetting::Enabled => "ENABLED",
1852 }
1853 }
1854 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1856 match value {
1857 "UNSET" => Some(Self::Unset),
1858 "DISABLED" => Some(Self::Disabled),
1859 "ENABLED" => Some(Self::Enabled),
1860 _ => None,
1861 }
1862 }
1863}
1864#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1865#[repr(i32)]
1866pub enum DisconnectReason {
1867 UnknownReason = 0,
1868 ClientInitiated = 1,
1870 DuplicateIdentity = 2,
1872 ServerShutdown = 3,
1874 ParticipantRemoved = 4,
1876 RoomDeleted = 5,
1878 StateMismatch = 6,
1880 JoinFailure = 7,
1882 Migration = 8,
1884 SignalClose = 9,
1886 RoomClosed = 10,
1888 UserUnavailable = 11,
1890 UserRejected = 12,
1892 SipTrunkFailure = 13,
1894 ConnectionTimeout = 14,
1896 MediaFailure = 15,
1898 AgentError = 16,
1900}
1901impl DisconnectReason {
1902 pub fn as_str_name(&self) -> &'static str {
1907 match self {
1908 DisconnectReason::UnknownReason => "UNKNOWN_REASON",
1909 DisconnectReason::ClientInitiated => "CLIENT_INITIATED",
1910 DisconnectReason::DuplicateIdentity => "DUPLICATE_IDENTITY",
1911 DisconnectReason::ServerShutdown => "SERVER_SHUTDOWN",
1912 DisconnectReason::ParticipantRemoved => "PARTICIPANT_REMOVED",
1913 DisconnectReason::RoomDeleted => "ROOM_DELETED",
1914 DisconnectReason::StateMismatch => "STATE_MISMATCH",
1915 DisconnectReason::JoinFailure => "JOIN_FAILURE",
1916 DisconnectReason::Migration => "MIGRATION",
1917 DisconnectReason::SignalClose => "SIGNAL_CLOSE",
1918 DisconnectReason::RoomClosed => "ROOM_CLOSED",
1919 DisconnectReason::UserUnavailable => "USER_UNAVAILABLE",
1920 DisconnectReason::UserRejected => "USER_REJECTED",
1921 DisconnectReason::SipTrunkFailure => "SIP_TRUNK_FAILURE",
1922 DisconnectReason::ConnectionTimeout => "CONNECTION_TIMEOUT",
1923 DisconnectReason::MediaFailure => "MEDIA_FAILURE",
1924 DisconnectReason::AgentError => "AGENT_ERROR",
1925 }
1926 }
1927 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1929 match value {
1930 "UNKNOWN_REASON" => Some(Self::UnknownReason),
1931 "CLIENT_INITIATED" => Some(Self::ClientInitiated),
1932 "DUPLICATE_IDENTITY" => Some(Self::DuplicateIdentity),
1933 "SERVER_SHUTDOWN" => Some(Self::ServerShutdown),
1934 "PARTICIPANT_REMOVED" => Some(Self::ParticipantRemoved),
1935 "ROOM_DELETED" => Some(Self::RoomDeleted),
1936 "STATE_MISMATCH" => Some(Self::StateMismatch),
1937 "JOIN_FAILURE" => Some(Self::JoinFailure),
1938 "MIGRATION" => Some(Self::Migration),
1939 "SIGNAL_CLOSE" => Some(Self::SignalClose),
1940 "ROOM_CLOSED" => Some(Self::RoomClosed),
1941 "USER_UNAVAILABLE" => Some(Self::UserUnavailable),
1942 "USER_REJECTED" => Some(Self::UserRejected),
1943 "SIP_TRUNK_FAILURE" => Some(Self::SipTrunkFailure),
1944 "CONNECTION_TIMEOUT" => Some(Self::ConnectionTimeout),
1945 "MEDIA_FAILURE" => Some(Self::MediaFailure),
1946 "AGENT_ERROR" => Some(Self::AgentError),
1947 _ => None,
1948 }
1949 }
1950}
1951#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1952#[repr(i32)]
1953pub enum ReconnectReason {
1954 RrUnknown = 0,
1955 RrSignalDisconnected = 1,
1956 RrPublisherFailed = 2,
1957 RrSubscriberFailed = 3,
1958 RrSwitchCandidate = 4,
1959}
1960impl ReconnectReason {
1961 pub fn as_str_name(&self) -> &'static str {
1966 match self {
1967 ReconnectReason::RrUnknown => "RR_UNKNOWN",
1968 ReconnectReason::RrSignalDisconnected => "RR_SIGNAL_DISCONNECTED",
1969 ReconnectReason::RrPublisherFailed => "RR_PUBLISHER_FAILED",
1970 ReconnectReason::RrSubscriberFailed => "RR_SUBSCRIBER_FAILED",
1971 ReconnectReason::RrSwitchCandidate => "RR_SWITCH_CANDIDATE",
1972 }
1973 }
1974 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1976 match value {
1977 "RR_UNKNOWN" => Some(Self::RrUnknown),
1978 "RR_SIGNAL_DISCONNECTED" => Some(Self::RrSignalDisconnected),
1979 "RR_PUBLISHER_FAILED" => Some(Self::RrPublisherFailed),
1980 "RR_SUBSCRIBER_FAILED" => Some(Self::RrSubscriberFailed),
1981 "RR_SWITCH_CANDIDATE" => Some(Self::RrSwitchCandidate),
1982 _ => None,
1983 }
1984 }
1985}
1986#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1987#[repr(i32)]
1988pub enum SubscriptionError {
1989 SeUnknown = 0,
1990 SeCodecUnsupported = 1,
1991 SeTrackNotfound = 2,
1992}
1993impl SubscriptionError {
1994 pub fn as_str_name(&self) -> &'static str {
1999 match self {
2000 SubscriptionError::SeUnknown => "SE_UNKNOWN",
2001 SubscriptionError::SeCodecUnsupported => "SE_CODEC_UNSUPPORTED",
2002 SubscriptionError::SeTrackNotfound => "SE_TRACK_NOTFOUND",
2003 }
2004 }
2005 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2007 match value {
2008 "SE_UNKNOWN" => Some(Self::SeUnknown),
2009 "SE_CODEC_UNSUPPORTED" => Some(Self::SeCodecUnsupported),
2010 "SE_TRACK_NOTFOUND" => Some(Self::SeTrackNotfound),
2011 _ => None,
2012 }
2013 }
2014}
2015#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2016#[repr(i32)]
2017pub enum AudioTrackFeature {
2018 TfStereo = 0,
2019 TfNoDtx = 1,
2020 TfAutoGainControl = 2,
2021 TfEchoCancellation = 3,
2022 TfNoiseSuppression = 4,
2023 TfEnhancedNoiseCancellation = 5,
2024 TfPreconnectBuffer = 6,
2026}
2027impl AudioTrackFeature {
2028 pub fn as_str_name(&self) -> &'static str {
2033 match self {
2034 AudioTrackFeature::TfStereo => "TF_STEREO",
2035 AudioTrackFeature::TfNoDtx => "TF_NO_DTX",
2036 AudioTrackFeature::TfAutoGainControl => "TF_AUTO_GAIN_CONTROL",
2037 AudioTrackFeature::TfEchoCancellation => "TF_ECHO_CANCELLATION",
2038 AudioTrackFeature::TfNoiseSuppression => "TF_NOISE_SUPPRESSION",
2039 AudioTrackFeature::TfEnhancedNoiseCancellation => "TF_ENHANCED_NOISE_CANCELLATION",
2040 AudioTrackFeature::TfPreconnectBuffer => "TF_PRECONNECT_BUFFER",
2041 }
2042 }
2043 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2045 match value {
2046 "TF_STEREO" => Some(Self::TfStereo),
2047 "TF_NO_DTX" => Some(Self::TfNoDtx),
2048 "TF_AUTO_GAIN_CONTROL" => Some(Self::TfAutoGainControl),
2049 "TF_ECHO_CANCELLATION" => Some(Self::TfEchoCancellation),
2050 "TF_NOISE_SUPPRESSION" => Some(Self::TfNoiseSuppression),
2051 "TF_ENHANCED_NOISE_CANCELLATION" => Some(Self::TfEnhancedNoiseCancellation),
2052 "TF_PRECONNECT_BUFFER" => Some(Self::TfPreconnectBuffer),
2053 _ => None,
2054 }
2055 }
2056}
2057#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2058#[repr(i32)]
2059pub enum PacketTrailerFeature {
2060 PtfUserTimestamp = 0,
2061}
2062impl PacketTrailerFeature {
2063 pub fn as_str_name(&self) -> &'static str {
2068 match self {
2069 PacketTrailerFeature::PtfUserTimestamp => "PTF_USER_TIMESTAMP",
2070 }
2071 }
2072 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2074 match value {
2075 "PTF_USER_TIMESTAMP" => Some(Self::PtfUserTimestamp),
2076 _ => None,
2077 }
2078 }
2079}
2080#[allow(clippy::derive_partial_eq_without_eq)]
2082#[derive(Clone, PartialEq, ::prost::Message)]
2083pub struct RoomCompositeEgressRequest {
2084 #[prost(string, tag="1")]
2086 pub room_name: ::prost::alloc::string::String,
2087 #[prost(string, tag="2")]
2089 pub layout: ::prost::alloc::string::String,
2090 #[prost(bool, tag="3")]
2092 pub audio_only: bool,
2093 #[prost(enumeration="AudioMixing", tag="15")]
2095 pub audio_mixing: i32,
2096 #[prost(bool, tag="4")]
2098 pub video_only: bool,
2099 #[prost(string, tag="5")]
2101 pub custom_base_url: ::prost::alloc::string::String,
2102 #[prost(message, repeated, tag="11")]
2103 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2104 #[prost(message, repeated, tag="12")]
2105 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2106 #[prost(message, repeated, tag="13")]
2107 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2108 #[prost(message, repeated, tag="14")]
2109 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2110 #[prost(message, repeated, tag="16")]
2112 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2113 #[prost(oneof="room_composite_egress_request::Output", tags="6, 7, 10")]
2115 pub output: ::core::option::Option<room_composite_egress_request::Output>,
2116 #[prost(oneof="room_composite_egress_request::Options", tags="8, 9")]
2117 pub options: ::core::option::Option<room_composite_egress_request::Options>,
2118}
2119pub mod room_composite_egress_request {
2121 #[allow(clippy::derive_partial_eq_without_eq)]
2123#[derive(Clone, PartialEq, ::prost::Oneof)]
2124 pub enum Output {
2125 #[prost(message, tag="6")]
2126 File(super::EncodedFileOutput),
2127 #[prost(message, tag="7")]
2128 Stream(super::StreamOutput),
2129 #[prost(message, tag="10")]
2130 Segments(super::SegmentedFileOutput),
2131 }
2132 #[allow(clippy::derive_partial_eq_without_eq)]
2133#[derive(Clone, PartialEq, ::prost::Oneof)]
2134 pub enum Options {
2135 #[prost(enumeration="super::EncodingOptionsPreset", tag="8")]
2137 Preset(i32),
2138 #[prost(message, tag="9")]
2140 Advanced(super::EncodingOptions),
2141 }
2142}
2143#[allow(clippy::derive_partial_eq_without_eq)]
2145#[derive(Clone, PartialEq, ::prost::Message)]
2146pub struct WebEgressRequest {
2147 #[prost(string, tag="1")]
2148 pub url: ::prost::alloc::string::String,
2149 #[prost(bool, tag="2")]
2150 pub audio_only: bool,
2151 #[prost(bool, tag="3")]
2152 pub video_only: bool,
2153 #[prost(bool, tag="12")]
2154 pub await_start_signal: bool,
2155 #[prost(message, repeated, tag="9")]
2156 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2157 #[prost(message, repeated, tag="10")]
2158 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2159 #[prost(message, repeated, tag="11")]
2160 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2161 #[prost(message, repeated, tag="13")]
2162 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2163 #[prost(message, repeated, tag="14")]
2165 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2166 #[prost(oneof="web_egress_request::Output", tags="4, 5, 6")]
2168 pub output: ::core::option::Option<web_egress_request::Output>,
2169 #[prost(oneof="web_egress_request::Options", tags="7, 8")]
2170 pub options: ::core::option::Option<web_egress_request::Options>,
2171}
2172pub mod web_egress_request {
2174 #[allow(clippy::derive_partial_eq_without_eq)]
2176#[derive(Clone, PartialEq, ::prost::Oneof)]
2177 pub enum Output {
2178 #[prost(message, tag="4")]
2179 File(super::EncodedFileOutput),
2180 #[prost(message, tag="5")]
2181 Stream(super::StreamOutput),
2182 #[prost(message, tag="6")]
2183 Segments(super::SegmentedFileOutput),
2184 }
2185 #[allow(clippy::derive_partial_eq_without_eq)]
2186#[derive(Clone, PartialEq, ::prost::Oneof)]
2187 pub enum Options {
2188 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
2189 Preset(i32),
2190 #[prost(message, tag="8")]
2191 Advanced(super::EncodingOptions),
2192 }
2193}
2194#[allow(clippy::derive_partial_eq_without_eq)]
2196#[derive(Clone, PartialEq, ::prost::Message)]
2197pub struct ParticipantEgressRequest {
2198 #[prost(string, tag="1")]
2200 pub room_name: ::prost::alloc::string::String,
2201 #[prost(string, tag="2")]
2203 pub identity: ::prost::alloc::string::String,
2204 #[prost(bool, tag="3")]
2206 pub screen_share: bool,
2207 #[prost(message, repeated, tag="6")]
2208 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2209 #[prost(message, repeated, tag="7")]
2210 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2211 #[prost(message, repeated, tag="8")]
2212 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2213 #[prost(message, repeated, tag="9")]
2214 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2215 #[prost(message, repeated, tag="10")]
2217 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2218 #[prost(oneof="participant_egress_request::Options", tags="4, 5")]
2219 pub options: ::core::option::Option<participant_egress_request::Options>,
2220}
2221pub mod participant_egress_request {
2223 #[allow(clippy::derive_partial_eq_without_eq)]
2224#[derive(Clone, PartialEq, ::prost::Oneof)]
2225 pub enum Options {
2226 #[prost(enumeration="super::EncodingOptionsPreset", tag="4")]
2228 Preset(i32),
2229 #[prost(message, tag="5")]
2231 Advanced(super::EncodingOptions),
2232 }
2233}
2234#[allow(clippy::derive_partial_eq_without_eq)]
2236#[derive(Clone, PartialEq, ::prost::Message)]
2237pub struct TrackCompositeEgressRequest {
2238 #[prost(string, tag="1")]
2240 pub room_name: ::prost::alloc::string::String,
2241 #[prost(string, tag="2")]
2243 pub audio_track_id: ::prost::alloc::string::String,
2244 #[prost(string, tag="3")]
2246 pub video_track_id: ::prost::alloc::string::String,
2247 #[prost(message, repeated, tag="11")]
2248 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2249 #[prost(message, repeated, tag="12")]
2250 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2251 #[prost(message, repeated, tag="13")]
2252 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2253 #[prost(message, repeated, tag="14")]
2254 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2255 #[prost(message, repeated, tag="15")]
2257 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2258 #[prost(oneof="track_composite_egress_request::Output", tags="4, 5, 8")]
2260 pub output: ::core::option::Option<track_composite_egress_request::Output>,
2261 #[prost(oneof="track_composite_egress_request::Options", tags="6, 7")]
2262 pub options: ::core::option::Option<track_composite_egress_request::Options>,
2263}
2264pub mod track_composite_egress_request {
2266 #[allow(clippy::derive_partial_eq_without_eq)]
2268#[derive(Clone, PartialEq, ::prost::Oneof)]
2269 pub enum Output {
2270 #[prost(message, tag="4")]
2271 File(super::EncodedFileOutput),
2272 #[prost(message, tag="5")]
2273 Stream(super::StreamOutput),
2274 #[prost(message, tag="8")]
2275 Segments(super::SegmentedFileOutput),
2276 }
2277 #[allow(clippy::derive_partial_eq_without_eq)]
2278#[derive(Clone, PartialEq, ::prost::Oneof)]
2279 pub enum Options {
2280 #[prost(enumeration="super::EncodingOptionsPreset", tag="6")]
2282 Preset(i32),
2283 #[prost(message, tag="7")]
2285 Advanced(super::EncodingOptions),
2286 }
2287}
2288#[allow(clippy::derive_partial_eq_without_eq)]
2290#[derive(Clone, PartialEq, ::prost::Message)]
2291pub struct TrackEgressRequest {
2292 #[prost(string, tag="1")]
2294 pub room_name: ::prost::alloc::string::String,
2295 #[prost(string, tag="2")]
2297 pub track_id: ::prost::alloc::string::String,
2298 #[prost(message, repeated, tag="5")]
2300 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2301 #[prost(oneof="track_egress_request::Output", tags="3, 4")]
2303 pub output: ::core::option::Option<track_egress_request::Output>,
2304}
2305pub mod track_egress_request {
2307 #[allow(clippy::derive_partial_eq_without_eq)]
2309#[derive(Clone, PartialEq, ::prost::Oneof)]
2310 pub enum Output {
2311 #[prost(message, tag="3")]
2312 File(super::DirectFileOutput),
2313 #[prost(string, tag="4")]
2314 WebsocketUrl(::prost::alloc::string::String),
2315 }
2316}
2317#[allow(clippy::derive_partial_eq_without_eq)]
2318#[derive(Clone, PartialEq, ::prost::Message)]
2319pub struct EncodedFileOutput {
2320 #[prost(enumeration="EncodedFileType", tag="1")]
2322 pub file_type: i32,
2323 #[prost(string, tag="2")]
2325 pub filepath: ::prost::alloc::string::String,
2326 #[prost(bool, tag="6")]
2328 pub disable_manifest: bool,
2329 #[prost(oneof="encoded_file_output::Output", tags="3, 4, 5, 7")]
2330 pub output: ::core::option::Option<encoded_file_output::Output>,
2331}
2332pub mod encoded_file_output {
2334 #[allow(clippy::derive_partial_eq_without_eq)]
2335#[derive(Clone, PartialEq, ::prost::Oneof)]
2336 pub enum Output {
2337 #[prost(message, tag="3")]
2338 S3(super::S3Upload),
2339 #[prost(message, tag="4")]
2340 Gcp(super::GcpUpload),
2341 #[prost(message, tag="5")]
2342 Azure(super::AzureBlobUpload),
2343 #[prost(message, tag="7")]
2344 AliOss(super::AliOssUpload),
2345 }
2346}
2347#[allow(clippy::derive_partial_eq_without_eq)]
2349#[derive(Clone, PartialEq, ::prost::Message)]
2350pub struct SegmentedFileOutput {
2351 #[prost(enumeration="SegmentedFileProtocol", tag="1")]
2353 pub protocol: i32,
2354 #[prost(string, tag="2")]
2356 pub filename_prefix: ::prost::alloc::string::String,
2357 #[prost(string, tag="3")]
2359 pub playlist_name: ::prost::alloc::string::String,
2360 #[prost(string, tag="11")]
2362 pub live_playlist_name: ::prost::alloc::string::String,
2363 #[prost(uint32, tag="4")]
2365 pub segment_duration: u32,
2366 #[prost(enumeration="SegmentedFileSuffix", tag="10")]
2368 pub filename_suffix: i32,
2369 #[prost(bool, tag="8")]
2371 pub disable_manifest: bool,
2372 #[prost(oneof="segmented_file_output::Output", tags="5, 6, 7, 9")]
2374 pub output: ::core::option::Option<segmented_file_output::Output>,
2375}
2376pub mod segmented_file_output {
2378 #[allow(clippy::derive_partial_eq_without_eq)]
2380#[derive(Clone, PartialEq, ::prost::Oneof)]
2381 pub enum Output {
2382 #[prost(message, tag="5")]
2383 S3(super::S3Upload),
2384 #[prost(message, tag="6")]
2385 Gcp(super::GcpUpload),
2386 #[prost(message, tag="7")]
2387 Azure(super::AzureBlobUpload),
2388 #[prost(message, tag="9")]
2389 AliOss(super::AliOssUpload),
2390 }
2391}
2392#[allow(clippy::derive_partial_eq_without_eq)]
2393#[derive(Clone, PartialEq, ::prost::Message)]
2394pub struct DirectFileOutput {
2395 #[prost(string, tag="1")]
2397 pub filepath: ::prost::alloc::string::String,
2398 #[prost(bool, tag="5")]
2400 pub disable_manifest: bool,
2401 #[prost(oneof="direct_file_output::Output", tags="2, 3, 4, 6")]
2402 pub output: ::core::option::Option<direct_file_output::Output>,
2403}
2404pub mod direct_file_output {
2406 #[allow(clippy::derive_partial_eq_without_eq)]
2407#[derive(Clone, PartialEq, ::prost::Oneof)]
2408 pub enum Output {
2409 #[prost(message, tag="2")]
2410 S3(super::S3Upload),
2411 #[prost(message, tag="3")]
2412 Gcp(super::GcpUpload),
2413 #[prost(message, tag="4")]
2414 Azure(super::AzureBlobUpload),
2415 #[prost(message, tag="6")]
2416 AliOss(super::AliOssUpload),
2417 }
2418}
2419#[allow(clippy::derive_partial_eq_without_eq)]
2420#[derive(Clone, PartialEq, ::prost::Message)]
2421pub struct ImageOutput {
2422 #[prost(uint32, tag="1")]
2424 pub capture_interval: u32,
2425 #[prost(int32, tag="2")]
2427 pub width: i32,
2428 #[prost(int32, tag="3")]
2430 pub height: i32,
2431 #[prost(string, tag="4")]
2433 pub filename_prefix: ::prost::alloc::string::String,
2434 #[prost(enumeration="ImageFileSuffix", tag="5")]
2436 pub filename_suffix: i32,
2437 #[prost(enumeration="ImageCodec", tag="6")]
2439 pub image_codec: i32,
2440 #[prost(bool, tag="7")]
2442 pub disable_manifest: bool,
2443 #[prost(oneof="image_output::Output", tags="8, 9, 10, 11")]
2445 pub output: ::core::option::Option<image_output::Output>,
2446}
2447pub mod image_output {
2449 #[allow(clippy::derive_partial_eq_without_eq)]
2451#[derive(Clone, PartialEq, ::prost::Oneof)]
2452 pub enum Output {
2453 #[prost(message, tag="8")]
2454 S3(super::S3Upload),
2455 #[prost(message, tag="9")]
2456 Gcp(super::GcpUpload),
2457 #[prost(message, tag="10")]
2458 Azure(super::AzureBlobUpload),
2459 #[prost(message, tag="11")]
2460 AliOss(super::AliOssUpload),
2461 }
2462}
2463#[allow(clippy::derive_partial_eq_without_eq)]
2464#[derive(Clone, PartialEq, ::prost::Message)]
2465pub struct S3Upload {
2466 #[prost(string, tag="1")]
2467 pub access_key: ::prost::alloc::string::String,
2468 #[prost(string, tag="2")]
2469 pub secret: ::prost::alloc::string::String,
2470 #[prost(string, tag="11")]
2471 pub session_token: ::prost::alloc::string::String,
2472 #[prost(string, tag="12")]
2474 pub assume_role_arn: ::prost::alloc::string::String,
2475 #[prost(string, tag="13")]
2477 pub assume_role_external_id: ::prost::alloc::string::String,
2478 #[prost(string, tag="3")]
2479 pub region: ::prost::alloc::string::String,
2480 #[prost(string, tag="4")]
2481 pub endpoint: ::prost::alloc::string::String,
2482 #[prost(string, tag="5")]
2483 pub bucket: ::prost::alloc::string::String,
2484 #[prost(bool, tag="6")]
2485 pub force_path_style: bool,
2486 #[prost(map="string, string", tag="7")]
2487 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2488 #[prost(string, tag="8")]
2489 pub tagging: ::prost::alloc::string::String,
2490 #[prost(string, tag="9")]
2492 pub content_disposition: ::prost::alloc::string::String,
2493 #[prost(message, optional, tag="10")]
2494 pub proxy: ::core::option::Option<ProxyConfig>,
2495}
2496#[allow(clippy::derive_partial_eq_without_eq)]
2497#[derive(Clone, PartialEq, ::prost::Message)]
2498pub struct GcpUpload {
2499 #[prost(string, tag="1")]
2501 pub credentials: ::prost::alloc::string::String,
2502 #[prost(string, tag="2")]
2503 pub bucket: ::prost::alloc::string::String,
2504 #[prost(message, optional, tag="3")]
2505 pub proxy: ::core::option::Option<ProxyConfig>,
2506}
2507#[allow(clippy::derive_partial_eq_without_eq)]
2508#[derive(Clone, PartialEq, ::prost::Message)]
2509pub struct AzureBlobUpload {
2510 #[prost(string, tag="1")]
2511 pub account_name: ::prost::alloc::string::String,
2512 #[prost(string, tag="2")]
2513 pub account_key: ::prost::alloc::string::String,
2514 #[prost(string, tag="3")]
2515 pub container_name: ::prost::alloc::string::String,
2516}
2517#[allow(clippy::derive_partial_eq_without_eq)]
2518#[derive(Clone, PartialEq, ::prost::Message)]
2519pub struct AliOssUpload {
2520 #[prost(string, tag="1")]
2521 pub access_key: ::prost::alloc::string::String,
2522 #[prost(string, tag="2")]
2523 pub secret: ::prost::alloc::string::String,
2524 #[prost(string, tag="3")]
2525 pub region: ::prost::alloc::string::String,
2526 #[prost(string, tag="4")]
2527 pub endpoint: ::prost::alloc::string::String,
2528 #[prost(string, tag="5")]
2529 pub bucket: ::prost::alloc::string::String,
2530}
2531#[allow(clippy::derive_partial_eq_without_eq)]
2532#[derive(Clone, PartialEq, ::prost::Message)]
2533pub struct ProxyConfig {
2534 #[prost(string, tag="1")]
2535 pub url: ::prost::alloc::string::String,
2536 #[prost(string, tag="2")]
2537 pub username: ::prost::alloc::string::String,
2538 #[prost(string, tag="3")]
2539 pub password: ::prost::alloc::string::String,
2540}
2541#[allow(clippy::derive_partial_eq_without_eq)]
2542#[derive(Clone, PartialEq, ::prost::Message)]
2543pub struct StreamOutput {
2544 #[prost(enumeration="StreamProtocol", tag="1")]
2546 pub protocol: i32,
2547 #[prost(string, repeated, tag="2")]
2549 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2550}
2551#[allow(clippy::derive_partial_eq_without_eq)]
2552#[derive(Clone, PartialEq, ::prost::Message)]
2553pub struct EncodingOptions {
2554 #[prost(int32, tag="1")]
2556 pub width: i32,
2557 #[prost(int32, tag="2")]
2559 pub height: i32,
2560 #[prost(int32, tag="3")]
2562 pub depth: i32,
2563 #[prost(int32, tag="4")]
2565 pub framerate: i32,
2566 #[prost(enumeration="AudioCodec", tag="5")]
2568 pub audio_codec: i32,
2569 #[prost(int32, tag="6")]
2571 pub audio_bitrate: i32,
2572 #[prost(int32, tag="11")]
2574 pub audio_quality: i32,
2575 #[prost(int32, tag="7")]
2577 pub audio_frequency: i32,
2578 #[prost(enumeration="VideoCodec", tag="8")]
2580 pub video_codec: i32,
2581 #[prost(int32, tag="9")]
2583 pub video_bitrate: i32,
2584 #[prost(int32, tag="12")]
2586 pub video_quality: i32,
2587 #[prost(double, tag="10")]
2589 pub key_frame_interval: f64,
2590}
2591#[allow(clippy::derive_partial_eq_without_eq)]
2592#[derive(Clone, PartialEq, ::prost::Message)]
2593pub struct UpdateLayoutRequest {
2594 #[prost(string, tag="1")]
2595 pub egress_id: ::prost::alloc::string::String,
2596 #[prost(string, tag="2")]
2597 pub layout: ::prost::alloc::string::String,
2598}
2599#[allow(clippy::derive_partial_eq_without_eq)]
2600#[derive(Clone, PartialEq, ::prost::Message)]
2601pub struct UpdateStreamRequest {
2602 #[prost(string, tag="1")]
2603 pub egress_id: ::prost::alloc::string::String,
2604 #[prost(string, repeated, tag="2")]
2605 pub add_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2606 #[prost(string, repeated, tag="3")]
2607 pub remove_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2608}
2609#[allow(clippy::derive_partial_eq_without_eq)]
2610#[derive(Clone, PartialEq, ::prost::Message)]
2611pub struct ListEgressRequest {
2612 #[prost(string, tag="1")]
2614 pub room_name: ::prost::alloc::string::String,
2615 #[prost(string, tag="2")]
2617 pub egress_id: ::prost::alloc::string::String,
2618 #[prost(bool, tag="3")]
2620 pub active: bool,
2621}
2622#[allow(clippy::derive_partial_eq_without_eq)]
2623#[derive(Clone, PartialEq, ::prost::Message)]
2624pub struct ListEgressResponse {
2625 #[prost(message, repeated, tag="1")]
2626 pub items: ::prost::alloc::vec::Vec<EgressInfo>,
2627}
2628#[allow(clippy::derive_partial_eq_without_eq)]
2629#[derive(Clone, PartialEq, ::prost::Message)]
2630pub struct StopEgressRequest {
2631 #[prost(string, tag="1")]
2632 pub egress_id: ::prost::alloc::string::String,
2633}
2634#[allow(clippy::derive_partial_eq_without_eq)]
2635#[derive(Clone, PartialEq, ::prost::Message)]
2636pub struct EgressInfo {
2637 #[prost(string, tag="1")]
2638 pub egress_id: ::prost::alloc::string::String,
2639 #[prost(string, tag="2")]
2640 pub room_id: ::prost::alloc::string::String,
2641 #[prost(string, tag="13")]
2642 pub room_name: ::prost::alloc::string::String,
2643 #[prost(enumeration="EgressSourceType", tag="26")]
2644 pub source_type: i32,
2645 #[prost(enumeration="EgressStatus", tag="3")]
2646 pub status: i32,
2647 #[prost(int64, tag="10")]
2648 pub started_at: i64,
2649 #[prost(int64, tag="11")]
2650 pub ended_at: i64,
2651 #[prost(int64, tag="18")]
2652 pub updated_at: i64,
2653 #[prost(string, tag="21")]
2654 pub details: ::prost::alloc::string::String,
2655 #[prost(string, tag="9")]
2656 pub error: ::prost::alloc::string::String,
2657 #[prost(int32, tag="22")]
2658 pub error_code: i32,
2659 #[prost(message, repeated, tag="15")]
2660 pub stream_results: ::prost::alloc::vec::Vec<StreamInfo>,
2661 #[prost(message, repeated, tag="16")]
2662 pub file_results: ::prost::alloc::vec::Vec<FileInfo>,
2663 #[prost(message, repeated, tag="17")]
2664 pub segment_results: ::prost::alloc::vec::Vec<SegmentsInfo>,
2665 #[prost(message, repeated, tag="20")]
2666 pub image_results: ::prost::alloc::vec::Vec<ImagesInfo>,
2667 #[prost(string, tag="23")]
2668 pub manifest_location: ::prost::alloc::string::String,
2669 #[prost(bool, tag="25")]
2670 pub backup_storage_used: bool,
2671 #[prost(int32, tag="27")]
2673 pub retry_count: i32,
2674 #[prost(oneof="egress_info::Request", tags="4, 14, 19, 5, 6")]
2675 pub request: ::core::option::Option<egress_info::Request>,
2676 #[prost(oneof="egress_info::Result", tags="7, 8, 12")]
2678 pub result: ::core::option::Option<egress_info::Result>,
2679}
2680pub mod egress_info {
2682 #[allow(clippy::derive_partial_eq_without_eq)]
2683#[derive(Clone, PartialEq, ::prost::Oneof)]
2684 pub enum Request {
2685 #[prost(message, tag="4")]
2686 RoomComposite(super::RoomCompositeEgressRequest),
2687 #[prost(message, tag="14")]
2688 Web(super::WebEgressRequest),
2689 #[prost(message, tag="19")]
2690 Participant(super::ParticipantEgressRequest),
2691 #[prost(message, tag="5")]
2692 TrackComposite(super::TrackCompositeEgressRequest),
2693 #[prost(message, tag="6")]
2694 Track(super::TrackEgressRequest),
2695 }
2696 #[allow(clippy::derive_partial_eq_without_eq)]
2698#[derive(Clone, PartialEq, ::prost::Oneof)]
2699 pub enum Result {
2700 #[prost(message, tag="7")]
2701 Stream(super::StreamInfoList),
2702 #[prost(message, tag="8")]
2703 File(super::FileInfo),
2704 #[prost(message, tag="12")]
2705 Segments(super::SegmentsInfo),
2706 }
2707}
2708#[allow(clippy::derive_partial_eq_without_eq)]
2709#[derive(Clone, PartialEq, ::prost::Message)]
2710pub struct StreamInfoList {
2711 #[prost(message, repeated, tag="1")]
2712 pub info: ::prost::alloc::vec::Vec<StreamInfo>,
2713}
2714#[allow(clippy::derive_partial_eq_without_eq)]
2715#[derive(Clone, PartialEq, ::prost::Message)]
2716pub struct StreamInfo {
2717 #[prost(string, tag="1")]
2718 pub url: ::prost::alloc::string::String,
2719 #[prost(int64, tag="2")]
2720 pub started_at: i64,
2721 #[prost(int64, tag="3")]
2722 pub ended_at: i64,
2723 #[prost(int64, tag="4")]
2724 pub duration: i64,
2725 #[prost(enumeration="stream_info::Status", tag="5")]
2726 pub status: i32,
2727 #[prost(string, tag="6")]
2728 pub error: ::prost::alloc::string::String,
2729 #[prost(int64, tag="7")]
2730 pub last_retry_at: i64,
2731 #[prost(uint32, tag="8")]
2732 pub retries: u32,
2733}
2734pub mod stream_info {
2736 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2737 #[repr(i32)]
2738 pub enum Status {
2739 Active = 0,
2740 Finished = 1,
2741 Failed = 2,
2742 }
2743 impl Status {
2744 pub fn as_str_name(&self) -> &'static str {
2749 match self {
2750 Status::Active => "ACTIVE",
2751 Status::Finished => "FINISHED",
2752 Status::Failed => "FAILED",
2753 }
2754 }
2755 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2757 match value {
2758 "ACTIVE" => Some(Self::Active),
2759 "FINISHED" => Some(Self::Finished),
2760 "FAILED" => Some(Self::Failed),
2761 _ => None,
2762 }
2763 }
2764 }
2765}
2766#[allow(clippy::derive_partial_eq_without_eq)]
2767#[derive(Clone, PartialEq, ::prost::Message)]
2768pub struct FileInfo {
2769 #[prost(string, tag="1")]
2770 pub filename: ::prost::alloc::string::String,
2771 #[prost(int64, tag="2")]
2772 pub started_at: i64,
2773 #[prost(int64, tag="3")]
2774 pub ended_at: i64,
2775 #[prost(int64, tag="6")]
2776 pub duration: i64,
2777 #[prost(int64, tag="4")]
2778 pub size: i64,
2779 #[prost(string, tag="5")]
2780 pub location: ::prost::alloc::string::String,
2781}
2782#[allow(clippy::derive_partial_eq_without_eq)]
2783#[derive(Clone, PartialEq, ::prost::Message)]
2784pub struct SegmentsInfo {
2785 #[prost(string, tag="1")]
2786 pub playlist_name: ::prost::alloc::string::String,
2787 #[prost(string, tag="8")]
2788 pub live_playlist_name: ::prost::alloc::string::String,
2789 #[prost(int64, tag="2")]
2790 pub duration: i64,
2791 #[prost(int64, tag="3")]
2792 pub size: i64,
2793 #[prost(string, tag="4")]
2794 pub playlist_location: ::prost::alloc::string::String,
2795 #[prost(string, tag="9")]
2796 pub live_playlist_location: ::prost::alloc::string::String,
2797 #[prost(int64, tag="5")]
2798 pub segment_count: i64,
2799 #[prost(int64, tag="6")]
2800 pub started_at: i64,
2801 #[prost(int64, tag="7")]
2802 pub ended_at: i64,
2803}
2804#[allow(clippy::derive_partial_eq_without_eq)]
2805#[derive(Clone, PartialEq, ::prost::Message)]
2806pub struct ImagesInfo {
2807 #[prost(string, tag="4")]
2808 pub filename_prefix: ::prost::alloc::string::String,
2809 #[prost(int64, tag="1")]
2810 pub image_count: i64,
2811 #[prost(int64, tag="2")]
2812 pub started_at: i64,
2813 #[prost(int64, tag="3")]
2814 pub ended_at: i64,
2815}
2816#[allow(clippy::derive_partial_eq_without_eq)]
2817#[derive(Clone, PartialEq, ::prost::Message)]
2818pub struct AutoParticipantEgress {
2819 #[prost(message, repeated, tag="3")]
2820 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2821 #[prost(message, repeated, tag="4")]
2822 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2823 #[prost(oneof="auto_participant_egress::Options", tags="1, 2")]
2824 pub options: ::core::option::Option<auto_participant_egress::Options>,
2825}
2826pub mod auto_participant_egress {
2828 #[allow(clippy::derive_partial_eq_without_eq)]
2829#[derive(Clone, PartialEq, ::prost::Oneof)]
2830 pub enum Options {
2831 #[prost(enumeration="super::EncodingOptionsPreset", tag="1")]
2833 Preset(i32),
2834 #[prost(message, tag="2")]
2836 Advanced(super::EncodingOptions),
2837 }
2838}
2839#[allow(clippy::derive_partial_eq_without_eq)]
2840#[derive(Clone, PartialEq, ::prost::Message)]
2841pub struct AutoTrackEgress {
2842 #[prost(string, tag="1")]
2844 pub filepath: ::prost::alloc::string::String,
2845 #[prost(bool, tag="5")]
2847 pub disable_manifest: bool,
2848 #[prost(oneof="auto_track_egress::Output", tags="2, 3, 4, 6")]
2849 pub output: ::core::option::Option<auto_track_egress::Output>,
2850}
2851pub mod auto_track_egress {
2853 #[allow(clippy::derive_partial_eq_without_eq)]
2854#[derive(Clone, PartialEq, ::prost::Oneof)]
2855 pub enum Output {
2856 #[prost(message, tag="2")]
2857 S3(super::S3Upload),
2858 #[prost(message, tag="3")]
2859 Gcp(super::GcpUpload),
2860 #[prost(message, tag="4")]
2861 Azure(super::AzureBlobUpload),
2862 #[prost(message, tag="6")]
2863 AliOss(super::AliOssUpload),
2864 }
2865}
2866#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2867#[repr(i32)]
2868pub enum EncodedFileType {
2869 DefaultFiletype = 0,
2871 Mp4 = 1,
2872 Ogg = 2,
2873 Mp3 = 3,
2874}
2875impl EncodedFileType {
2876 pub fn as_str_name(&self) -> &'static str {
2881 match self {
2882 EncodedFileType::DefaultFiletype => "DEFAULT_FILETYPE",
2883 EncodedFileType::Mp4 => "MP4",
2884 EncodedFileType::Ogg => "OGG",
2885 EncodedFileType::Mp3 => "MP3",
2886 }
2887 }
2888 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2890 match value {
2891 "DEFAULT_FILETYPE" => Some(Self::DefaultFiletype),
2892 "MP4" => Some(Self::Mp4),
2893 "OGG" => Some(Self::Ogg),
2894 "MP3" => Some(Self::Mp3),
2895 _ => None,
2896 }
2897 }
2898}
2899#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2900#[repr(i32)]
2901pub enum SegmentedFileProtocol {
2902 DefaultSegmentedFileProtocol = 0,
2903 HlsProtocol = 1,
2904}
2905impl SegmentedFileProtocol {
2906 pub fn as_str_name(&self) -> &'static str {
2911 match self {
2912 SegmentedFileProtocol::DefaultSegmentedFileProtocol => "DEFAULT_SEGMENTED_FILE_PROTOCOL",
2913 SegmentedFileProtocol::HlsProtocol => "HLS_PROTOCOL",
2914 }
2915 }
2916 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2918 match value {
2919 "DEFAULT_SEGMENTED_FILE_PROTOCOL" => Some(Self::DefaultSegmentedFileProtocol),
2920 "HLS_PROTOCOL" => Some(Self::HlsProtocol),
2921 _ => None,
2922 }
2923 }
2924}
2925#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2926#[repr(i32)]
2927pub enum SegmentedFileSuffix {
2928 Index = 0,
2929 Timestamp = 1,
2930}
2931impl SegmentedFileSuffix {
2932 pub fn as_str_name(&self) -> &'static str {
2937 match self {
2938 SegmentedFileSuffix::Index => "INDEX",
2939 SegmentedFileSuffix::Timestamp => "TIMESTAMP",
2940 }
2941 }
2942 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2944 match value {
2945 "INDEX" => Some(Self::Index),
2946 "TIMESTAMP" => Some(Self::Timestamp),
2947 _ => None,
2948 }
2949 }
2950}
2951#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2952#[repr(i32)]
2953pub enum ImageFileSuffix {
2954 ImageSuffixIndex = 0,
2955 ImageSuffixTimestamp = 1,
2956 ImageSuffixNoneOverwrite = 2,
2958}
2959impl ImageFileSuffix {
2960 pub fn as_str_name(&self) -> &'static str {
2965 match self {
2966 ImageFileSuffix::ImageSuffixIndex => "IMAGE_SUFFIX_INDEX",
2967 ImageFileSuffix::ImageSuffixTimestamp => "IMAGE_SUFFIX_TIMESTAMP",
2968 ImageFileSuffix::ImageSuffixNoneOverwrite => "IMAGE_SUFFIX_NONE_OVERWRITE",
2969 }
2970 }
2971 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2973 match value {
2974 "IMAGE_SUFFIX_INDEX" => Some(Self::ImageSuffixIndex),
2975 "IMAGE_SUFFIX_TIMESTAMP" => Some(Self::ImageSuffixTimestamp),
2976 "IMAGE_SUFFIX_NONE_OVERWRITE" => Some(Self::ImageSuffixNoneOverwrite),
2977 _ => None,
2978 }
2979 }
2980}
2981#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2982#[repr(i32)]
2983pub enum StreamProtocol {
2984 DefaultProtocol = 0,
2986 Rtmp = 1,
2987 Srt = 2,
2988}
2989impl StreamProtocol {
2990 pub fn as_str_name(&self) -> &'static str {
2995 match self {
2996 StreamProtocol::DefaultProtocol => "DEFAULT_PROTOCOL",
2997 StreamProtocol::Rtmp => "RTMP",
2998 StreamProtocol::Srt => "SRT",
2999 }
3000 }
3001 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3003 match value {
3004 "DEFAULT_PROTOCOL" => Some(Self::DefaultProtocol),
3005 "RTMP" => Some(Self::Rtmp),
3006 "SRT" => Some(Self::Srt),
3007 _ => None,
3008 }
3009 }
3010}
3011#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3012#[repr(i32)]
3013pub enum AudioMixing {
3014 DefaultMixing = 0,
3016 DualChannelAgent = 1,
3018 DualChannelAlternate = 2,
3020}
3021impl AudioMixing {
3022 pub fn as_str_name(&self) -> &'static str {
3027 match self {
3028 AudioMixing::DefaultMixing => "DEFAULT_MIXING",
3029 AudioMixing::DualChannelAgent => "DUAL_CHANNEL_AGENT",
3030 AudioMixing::DualChannelAlternate => "DUAL_CHANNEL_ALTERNATE",
3031 }
3032 }
3033 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3035 match value {
3036 "DEFAULT_MIXING" => Some(Self::DefaultMixing),
3037 "DUAL_CHANNEL_AGENT" => Some(Self::DualChannelAgent),
3038 "DUAL_CHANNEL_ALTERNATE" => Some(Self::DualChannelAlternate),
3039 _ => None,
3040 }
3041 }
3042}
3043#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3044#[repr(i32)]
3045pub enum EncodingOptionsPreset {
3046 H264720p30 = 0,
3048 H264720p60 = 1,
3050 H2641080p30 = 2,
3052 H2641080p60 = 3,
3054 PortraitH264720p30 = 4,
3056 PortraitH264720p60 = 5,
3058 PortraitH2641080p30 = 6,
3060 PortraitH2641080p60 = 7,
3062}
3063impl EncodingOptionsPreset {
3064 pub fn as_str_name(&self) -> &'static str {
3069 match self {
3070 EncodingOptionsPreset::H264720p30 => "H264_720P_30",
3071 EncodingOptionsPreset::H264720p60 => "H264_720P_60",
3072 EncodingOptionsPreset::H2641080p30 => "H264_1080P_30",
3073 EncodingOptionsPreset::H2641080p60 => "H264_1080P_60",
3074 EncodingOptionsPreset::PortraitH264720p30 => "PORTRAIT_H264_720P_30",
3075 EncodingOptionsPreset::PortraitH264720p60 => "PORTRAIT_H264_720P_60",
3076 EncodingOptionsPreset::PortraitH2641080p30 => "PORTRAIT_H264_1080P_30",
3077 EncodingOptionsPreset::PortraitH2641080p60 => "PORTRAIT_H264_1080P_60",
3078 }
3079 }
3080 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3082 match value {
3083 "H264_720P_30" => Some(Self::H264720p30),
3084 "H264_720P_60" => Some(Self::H264720p60),
3085 "H264_1080P_30" => Some(Self::H2641080p30),
3086 "H264_1080P_60" => Some(Self::H2641080p60),
3087 "PORTRAIT_H264_720P_30" => Some(Self::PortraitH264720p30),
3088 "PORTRAIT_H264_720P_60" => Some(Self::PortraitH264720p60),
3089 "PORTRAIT_H264_1080P_30" => Some(Self::PortraitH2641080p30),
3090 "PORTRAIT_H264_1080P_60" => Some(Self::PortraitH2641080p60),
3091 _ => None,
3092 }
3093 }
3094}
3095#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3096#[repr(i32)]
3097pub enum EgressStatus {
3098 EgressStarting = 0,
3099 EgressActive = 1,
3100 EgressEnding = 2,
3101 EgressComplete = 3,
3102 EgressFailed = 4,
3103 EgressAborted = 5,
3104 EgressLimitReached = 6,
3105}
3106impl EgressStatus {
3107 pub fn as_str_name(&self) -> &'static str {
3112 match self {
3113 EgressStatus::EgressStarting => "EGRESS_STARTING",
3114 EgressStatus::EgressActive => "EGRESS_ACTIVE",
3115 EgressStatus::EgressEnding => "EGRESS_ENDING",
3116 EgressStatus::EgressComplete => "EGRESS_COMPLETE",
3117 EgressStatus::EgressFailed => "EGRESS_FAILED",
3118 EgressStatus::EgressAborted => "EGRESS_ABORTED",
3119 EgressStatus::EgressLimitReached => "EGRESS_LIMIT_REACHED",
3120 }
3121 }
3122 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3124 match value {
3125 "EGRESS_STARTING" => Some(Self::EgressStarting),
3126 "EGRESS_ACTIVE" => Some(Self::EgressActive),
3127 "EGRESS_ENDING" => Some(Self::EgressEnding),
3128 "EGRESS_COMPLETE" => Some(Self::EgressComplete),
3129 "EGRESS_FAILED" => Some(Self::EgressFailed),
3130 "EGRESS_ABORTED" => Some(Self::EgressAborted),
3131 "EGRESS_LIMIT_REACHED" => Some(Self::EgressLimitReached),
3132 _ => None,
3133 }
3134 }
3135}
3136#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3137#[repr(i32)]
3138pub enum EgressSourceType {
3139 Web = 0,
3140 Sdk = 1,
3141}
3142impl EgressSourceType {
3143 pub fn as_str_name(&self) -> &'static str {
3148 match self {
3149 EgressSourceType::Web => "EGRESS_SOURCE_TYPE_WEB",
3150 EgressSourceType::Sdk => "EGRESS_SOURCE_TYPE_SDK",
3151 }
3152 }
3153 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3155 match value {
3156 "EGRESS_SOURCE_TYPE_WEB" => Some(Self::Web),
3157 "EGRESS_SOURCE_TYPE_SDK" => Some(Self::Sdk),
3158 _ => None,
3159 }
3160 }
3161}
3162#[allow(clippy::derive_partial_eq_without_eq)]
3163#[derive(Clone, PartialEq, ::prost::Message)]
3164pub struct SignalRequest {
3165 #[prost(oneof="signal_request::Message", tags="1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21")]
3166 pub message: ::core::option::Option<signal_request::Message>,
3167}
3168pub mod signal_request {
3170 #[allow(clippy::derive_partial_eq_without_eq)]
3171#[derive(Clone, PartialEq, ::prost::Oneof)]
3172 pub enum Message {
3173 #[prost(message, tag="1")]
3175 Offer(super::SessionDescription),
3176 #[prost(message, tag="2")]
3178 Answer(super::SessionDescription),
3179 #[prost(message, tag="3")]
3180 Trickle(super::TrickleRequest),
3181 #[prost(message, tag="4")]
3182 AddTrack(super::AddTrackRequest),
3183 #[prost(message, tag="5")]
3185 Mute(super::MuteTrackRequest),
3186 #[prost(message, tag="6")]
3188 Subscription(super::UpdateSubscription),
3189 #[prost(message, tag="7")]
3191 TrackSetting(super::UpdateTrackSettings),
3192 #[prost(message, tag="8")]
3194 Leave(super::LeaveRequest),
3195 #[prost(message, tag="10")]
3197 UpdateLayers(super::UpdateVideoLayers),
3198 #[prost(message, tag="11")]
3200 SubscriptionPermission(super::SubscriptionPermission),
3201 #[prost(message, tag="12")]
3203 SyncState(super::SyncState),
3204 #[prost(message, tag="13")]
3206 Simulate(super::SimulateScenario),
3207 #[prost(int64, tag="14")]
3211 Ping(i64),
3212 #[prost(message, tag="15")]
3215 UpdateMetadata(super::UpdateParticipantMetadata),
3216 #[prost(message, tag="16")]
3217 PingReq(super::Ping),
3218 #[prost(message, tag="17")]
3220 UpdateAudioTrack(super::UpdateLocalAudioTrack),
3221 #[prost(message, tag="18")]
3223 UpdateVideoTrack(super::UpdateLocalVideoTrack),
3224 #[prost(message, tag="19")]
3226 PublishDataTrackRequest(super::PublishDataTrackRequest),
3227 #[prost(message, tag="20")]
3229 UnpublishDataTrackRequest(super::UnpublishDataTrackRequest),
3230 #[prost(message, tag="21")]
3232 UpdateDataSubscription(super::UpdateDataSubscription),
3233 }
3234}
3235#[allow(clippy::derive_partial_eq_without_eq)]
3236#[derive(Clone, PartialEq, ::prost::Message)]
3237pub struct SignalResponse {
3238 #[prost(oneof="signal_response::Message", tags="1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29")]
3239 pub message: ::core::option::Option<signal_response::Message>,
3240}
3241pub mod signal_response {
3243 #[allow(clippy::derive_partial_eq_without_eq)]
3244#[derive(Clone, PartialEq, ::prost::Oneof)]
3245 pub enum Message {
3246 #[prost(message, tag="1")]
3248 Join(super::JoinResponse),
3249 #[prost(message, tag="2")]
3251 Answer(super::SessionDescription),
3252 #[prost(message, tag="3")]
3254 Offer(super::SessionDescription),
3255 #[prost(message, tag="4")]
3257 Trickle(super::TrickleRequest),
3258 #[prost(message, tag="5")]
3260 Update(super::ParticipantUpdate),
3261 #[prost(message, tag="6")]
3263 TrackPublished(super::TrackPublishedResponse),
3264 #[prost(message, tag="8")]
3266 Leave(super::LeaveRequest),
3267 #[prost(message, tag="9")]
3269 Mute(super::MuteTrackRequest),
3270 #[prost(message, tag="10")]
3272 SpeakersChanged(super::SpeakersChanged),
3273 #[prost(message, tag="11")]
3275 RoomUpdate(super::RoomUpdate),
3276 #[prost(message, tag="12")]
3278 ConnectionQuality(super::ConnectionQualityUpdate),
3279 #[prost(message, tag="13")]
3282 StreamStateUpdate(super::StreamStateUpdate),
3283 #[prost(message, tag="14")]
3285 SubscribedQualityUpdate(super::SubscribedQualityUpdate),
3286 #[prost(message, tag="15")]
3288 SubscriptionPermissionUpdate(super::SubscriptionPermissionUpdate),
3289 #[prost(string, tag="16")]
3291 RefreshToken(::prost::alloc::string::String),
3292 #[prost(message, tag="17")]
3294 TrackUnpublished(super::TrackUnpublishedResponse),
3295 #[prost(int64, tag="18")]
3299 Pong(i64),
3300 #[prost(message, tag="19")]
3302 Reconnect(super::ReconnectResponse),
3303 #[prost(message, tag="20")]
3305 PongResp(super::Pong),
3306 #[prost(message, tag="21")]
3308 SubscriptionResponse(super::SubscriptionResponse),
3309 #[prost(message, tag="22")]
3311 RequestResponse(super::RequestResponse),
3312 #[prost(message, tag="23")]
3314 TrackSubscribed(super::TrackSubscribed),
3315 #[prost(message, tag="24")]
3317 RoomMoved(super::RoomMovedResponse),
3318 #[prost(message, tag="25")]
3320 MediaSectionsRequirement(super::MediaSectionsRequirement),
3321 #[prost(message, tag="26")]
3323 SubscribedAudioCodecUpdate(super::SubscribedAudioCodecUpdate),
3324 #[prost(message, tag="27")]
3326 PublishDataTrackResponse(super::PublishDataTrackResponse),
3327 #[prost(message, tag="28")]
3329 UnpublishDataTrackResponse(super::UnpublishDataTrackResponse),
3330 #[prost(message, tag="29")]
3332 DataTrackSubscriberHandles(super::DataTrackSubscriberHandles),
3333 }
3334}
3335#[allow(clippy::derive_partial_eq_without_eq)]
3336#[derive(Clone, PartialEq, ::prost::Message)]
3337pub struct SimulcastCodec {
3338 #[prost(string, tag="1")]
3339 pub codec: ::prost::alloc::string::String,
3340 #[prost(string, tag="2")]
3341 pub cid: ::prost::alloc::string::String,
3342 #[prost(message, repeated, tag="4")]
3343 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3344 #[prost(enumeration="video_layer::Mode", tag="5")]
3345 pub video_layer_mode: i32,
3346}
3347#[allow(clippy::derive_partial_eq_without_eq)]
3348#[derive(Clone, PartialEq, ::prost::Message)]
3349pub struct AddTrackRequest {
3350 #[prost(string, tag="1")]
3352 pub cid: ::prost::alloc::string::String,
3353 #[prost(string, tag="2")]
3354 pub name: ::prost::alloc::string::String,
3355 #[prost(enumeration="TrackType", tag="3")]
3356 pub r#type: i32,
3357 #[prost(uint32, tag="4")]
3358 pub width: u32,
3359 #[prost(uint32, tag="5")]
3360 pub height: u32,
3361 #[prost(bool, tag="6")]
3363 pub muted: bool,
3364 #[deprecated]
3368 #[prost(bool, tag="7")]
3369 pub disable_dtx: bool,
3370 #[prost(enumeration="TrackSource", tag="8")]
3371 pub source: i32,
3372 #[prost(message, repeated, tag="9")]
3373 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3374 #[prost(message, repeated, tag="10")]
3375 pub simulcast_codecs: ::prost::alloc::vec::Vec<SimulcastCodec>,
3376 #[prost(string, tag="11")]
3378 pub sid: ::prost::alloc::string::String,
3379 #[deprecated]
3381 #[prost(bool, tag="12")]
3382 pub stereo: bool,
3383 #[prost(bool, tag="13")]
3385 pub disable_red: bool,
3386 #[prost(enumeration="encryption::Type", tag="14")]
3387 pub encryption: i32,
3388 #[prost(string, tag="15")]
3391 pub stream: ::prost::alloc::string::String,
3392 #[prost(enumeration="BackupCodecPolicy", tag="16")]
3393 pub backup_codec_policy: i32,
3394 #[prost(enumeration="AudioTrackFeature", repeated, tag="17")]
3395 pub audio_features: ::prost::alloc::vec::Vec<i32>,
3396 #[prost(enumeration="PacketTrailerFeature", repeated, tag="18")]
3397 pub packet_trailer_features: ::prost::alloc::vec::Vec<i32>,
3398}
3399#[allow(clippy::derive_partial_eq_without_eq)]
3400#[derive(Clone, PartialEq, ::prost::Message)]
3401pub struct PublishDataTrackRequest {
3402 #[prost(uint32, tag="1")]
3405 pub pub_handle: u32,
3406 #[prost(string, tag="2")]
3409 pub name: ::prost::alloc::string::String,
3410 #[prost(enumeration="encryption::Type", tag="3")]
3412 pub encryption: i32,
3413}
3414#[allow(clippy::derive_partial_eq_without_eq)]
3415#[derive(Clone, PartialEq, ::prost::Message)]
3416pub struct PublishDataTrackResponse {
3417 #[prost(message, optional, tag="1")]
3419 pub info: ::core::option::Option<DataTrackInfo>,
3420}
3421#[allow(clippy::derive_partial_eq_without_eq)]
3422#[derive(Clone, PartialEq, ::prost::Message)]
3423pub struct UnpublishDataTrackRequest {
3424 #[prost(uint32, tag="1")]
3426 pub pub_handle: u32,
3427}
3428#[allow(clippy::derive_partial_eq_without_eq)]
3429#[derive(Clone, PartialEq, ::prost::Message)]
3430pub struct UnpublishDataTrackResponse {
3431 #[prost(message, optional, tag="1")]
3433 pub info: ::core::option::Option<DataTrackInfo>,
3434}
3435#[allow(clippy::derive_partial_eq_without_eq)]
3436#[derive(Clone, PartialEq, ::prost::Message)]
3437pub struct DataTrackSubscriberHandles {
3438 #[prost(map="uint32, message", tag="1")]
3440 pub sub_handles: ::std::collections::HashMap<u32, data_track_subscriber_handles::PublishedDataTrack>,
3441}
3442pub mod data_track_subscriber_handles {
3444 #[allow(clippy::derive_partial_eq_without_eq)]
3445#[derive(Clone, PartialEq, ::prost::Message)]
3446 pub struct PublishedDataTrack {
3447 #[prost(string, tag="1")]
3448 pub publisher_identity: ::prost::alloc::string::String,
3449 #[prost(string, tag="2")]
3450 pub publisher_sid: ::prost::alloc::string::String,
3451 #[prost(string, tag="3")]
3452 pub track_sid: ::prost::alloc::string::String,
3453 }
3454}
3455#[allow(clippy::derive_partial_eq_without_eq)]
3456#[derive(Clone, PartialEq, ::prost::Message)]
3457pub struct TrickleRequest {
3458 #[prost(string, tag="1")]
3459 pub candidate_init: ::prost::alloc::string::String,
3460 #[prost(enumeration="SignalTarget", tag="2")]
3461 pub target: i32,
3462 #[prost(bool, tag="3")]
3463 pub r#final: bool,
3464}
3465#[allow(clippy::derive_partial_eq_without_eq)]
3466#[derive(Clone, PartialEq, ::prost::Message)]
3467pub struct MuteTrackRequest {
3468 #[prost(string, tag="1")]
3469 pub sid: ::prost::alloc::string::String,
3470 #[prost(bool, tag="2")]
3471 pub muted: bool,
3472}
3473#[allow(clippy::derive_partial_eq_without_eq)]
3474#[derive(Clone, PartialEq, ::prost::Message)]
3475pub struct JoinResponse {
3476 #[prost(message, optional, tag="1")]
3477 pub room: ::core::option::Option<Room>,
3478 #[prost(message, optional, tag="2")]
3479 pub participant: ::core::option::Option<ParticipantInfo>,
3480 #[prost(message, repeated, tag="3")]
3481 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3482 #[prost(string, tag="4")]
3484 pub server_version: ::prost::alloc::string::String,
3485 #[prost(message, repeated, tag="5")]
3486 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3487 #[prost(bool, tag="6")]
3489 pub subscriber_primary: bool,
3490 #[prost(string, tag="7")]
3493 pub alternative_url: ::prost::alloc::string::String,
3494 #[prost(message, optional, tag="8")]
3495 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3496 #[prost(string, tag="9")]
3498 pub server_region: ::prost::alloc::string::String,
3499 #[prost(int32, tag="10")]
3500 pub ping_timeout: i32,
3501 #[prost(int32, tag="11")]
3502 pub ping_interval: i32,
3503 #[prost(message, optional, tag="12")]
3504 pub server_info: ::core::option::Option<ServerInfo>,
3505 #[prost(bytes="vec", tag="13")]
3507 pub sif_trailer: ::prost::alloc::vec::Vec<u8>,
3508 #[prost(message, repeated, tag="14")]
3509 pub enabled_publish_codecs: ::prost::alloc::vec::Vec<Codec>,
3510 #[prost(bool, tag="15")]
3512 pub fast_publish: bool,
3513}
3514#[allow(clippy::derive_partial_eq_without_eq)]
3515#[derive(Clone, PartialEq, ::prost::Message)]
3516pub struct ReconnectResponse {
3517 #[prost(message, repeated, tag="1")]
3518 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3519 #[prost(message, optional, tag="2")]
3520 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3521 #[prost(message, optional, tag="3")]
3522 pub server_info: ::core::option::Option<ServerInfo>,
3523 #[prost(uint32, tag="4")]
3525 pub last_message_seq: u32,
3526}
3527#[allow(clippy::derive_partial_eq_without_eq)]
3528#[derive(Clone, PartialEq, ::prost::Message)]
3529pub struct TrackPublishedResponse {
3530 #[prost(string, tag="1")]
3531 pub cid: ::prost::alloc::string::String,
3532 #[prost(message, optional, tag="2")]
3533 pub track: ::core::option::Option<TrackInfo>,
3534}
3535#[allow(clippy::derive_partial_eq_without_eq)]
3536#[derive(Clone, PartialEq, ::prost::Message)]
3537pub struct TrackUnpublishedResponse {
3538 #[prost(string, tag="1")]
3539 pub track_sid: ::prost::alloc::string::String,
3540}
3541#[allow(clippy::derive_partial_eq_without_eq)]
3542#[derive(Clone, PartialEq, ::prost::Message)]
3543pub struct SessionDescription {
3544 #[prost(string, tag="1")]
3546 pub r#type: ::prost::alloc::string::String,
3547 #[prost(string, tag="2")]
3548 pub sdp: ::prost::alloc::string::String,
3549 #[prost(uint32, tag="3")]
3550 pub id: u32,
3551 #[prost(map="string, string", tag="4")]
3552 pub mid_to_track_id: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3553}
3554#[allow(clippy::derive_partial_eq_without_eq)]
3555#[derive(Clone, PartialEq, ::prost::Message)]
3556pub struct ParticipantUpdate {
3557 #[prost(message, repeated, tag="1")]
3558 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3559}
3560#[allow(clippy::derive_partial_eq_without_eq)]
3561#[derive(Clone, PartialEq, ::prost::Message)]
3562pub struct UpdateSubscription {
3563 #[prost(string, repeated, tag="1")]
3564 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3565 #[prost(bool, tag="2")]
3566 pub subscribe: bool,
3567 #[prost(message, repeated, tag="3")]
3568 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
3569}
3570#[allow(clippy::derive_partial_eq_without_eq)]
3571#[derive(Clone, PartialEq, ::prost::Message)]
3572pub struct UpdateDataSubscription {
3573 #[prost(message, repeated, tag="1")]
3574 pub updates: ::prost::alloc::vec::Vec<update_data_subscription::Update>,
3575}
3576pub mod update_data_subscription {
3578 #[allow(clippy::derive_partial_eq_without_eq)]
3579#[derive(Clone, PartialEq, ::prost::Message)]
3580 pub struct Update {
3581 #[prost(string, tag="1")]
3582 pub track_sid: ::prost::alloc::string::String,
3583 #[prost(bool, tag="2")]
3584 pub subscribe: bool,
3585 #[prost(message, optional, tag="3")]
3588 pub options: ::core::option::Option<super::DataTrackSubscriptionOptions>,
3589 }
3590}
3591#[allow(clippy::derive_partial_eq_without_eq)]
3592#[derive(Clone, PartialEq, ::prost::Message)]
3593pub struct UpdateTrackSettings {
3594 #[prost(string, repeated, tag="1")]
3595 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3596 #[prost(bool, tag="3")]
3598 pub disabled: bool,
3599 #[prost(enumeration="VideoQuality", tag="4")]
3601 pub quality: i32,
3602 #[prost(uint32, tag="5")]
3604 pub width: u32,
3605 #[prost(uint32, tag="6")]
3607 pub height: u32,
3608 #[prost(uint32, tag="7")]
3609 pub fps: u32,
3610 #[prost(uint32, tag="8")]
3618 pub priority: u32,
3619}
3620#[allow(clippy::derive_partial_eq_without_eq)]
3621#[derive(Clone, PartialEq, ::prost::Message)]
3622pub struct UpdateLocalAudioTrack {
3623 #[prost(string, tag="1")]
3624 pub track_sid: ::prost::alloc::string::String,
3625 #[prost(enumeration="AudioTrackFeature", repeated, tag="2")]
3626 pub features: ::prost::alloc::vec::Vec<i32>,
3627}
3628#[allow(clippy::derive_partial_eq_without_eq)]
3629#[derive(Clone, PartialEq, ::prost::Message)]
3630pub struct UpdateLocalVideoTrack {
3631 #[prost(string, tag="1")]
3632 pub track_sid: ::prost::alloc::string::String,
3633 #[prost(uint32, tag="2")]
3634 pub width: u32,
3635 #[prost(uint32, tag="3")]
3636 pub height: u32,
3637}
3638#[allow(clippy::derive_partial_eq_without_eq)]
3639#[derive(Clone, PartialEq, ::prost::Message)]
3640pub struct LeaveRequest {
3641 #[prost(bool, tag="1")]
3645 pub can_reconnect: bool,
3646 #[prost(enumeration="DisconnectReason", tag="2")]
3647 pub reason: i32,
3648 #[prost(enumeration="leave_request::Action", tag="3")]
3649 pub action: i32,
3650 #[prost(message, optional, tag="4")]
3651 pub regions: ::core::option::Option<RegionSettings>,
3652}
3653pub mod leave_request {
3655 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3657 #[repr(i32)]
3658 pub enum Action {
3659 Disconnect = 0,
3661 Resume = 1,
3663 Reconnect = 2,
3665 }
3666 impl Action {
3667 pub fn as_str_name(&self) -> &'static str {
3672 match self {
3673 Action::Disconnect => "DISCONNECT",
3674 Action::Resume => "RESUME",
3675 Action::Reconnect => "RECONNECT",
3676 }
3677 }
3678 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3680 match value {
3681 "DISCONNECT" => Some(Self::Disconnect),
3682 "RESUME" => Some(Self::Resume),
3683 "RECONNECT" => Some(Self::Reconnect),
3684 _ => None,
3685 }
3686 }
3687 }
3688}
3689#[allow(clippy::derive_partial_eq_without_eq)]
3691#[derive(Clone, PartialEq, ::prost::Message)]
3692pub struct UpdateVideoLayers {
3693 #[prost(string, tag="1")]
3694 pub track_sid: ::prost::alloc::string::String,
3695 #[prost(message, repeated, tag="2")]
3696 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3697}
3698#[allow(clippy::derive_partial_eq_without_eq)]
3699#[derive(Clone, PartialEq, ::prost::Message)]
3700pub struct UpdateParticipantMetadata {
3701 #[prost(string, tag="1")]
3702 pub metadata: ::prost::alloc::string::String,
3703 #[prost(string, tag="2")]
3704 pub name: ::prost::alloc::string::String,
3705 #[prost(map="string, string", tag="3")]
3708 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3709 #[prost(uint32, tag="4")]
3710 pub request_id: u32,
3711}
3712#[allow(clippy::derive_partial_eq_without_eq)]
3713#[derive(Clone, PartialEq, ::prost::Message)]
3714pub struct IceServer {
3715 #[prost(string, repeated, tag="1")]
3716 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3717 #[prost(string, tag="2")]
3718 pub username: ::prost::alloc::string::String,
3719 #[prost(string, tag="3")]
3720 pub credential: ::prost::alloc::string::String,
3721}
3722#[allow(clippy::derive_partial_eq_without_eq)]
3723#[derive(Clone, PartialEq, ::prost::Message)]
3724pub struct SpeakersChanged {
3725 #[prost(message, repeated, tag="1")]
3726 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
3727}
3728#[allow(clippy::derive_partial_eq_without_eq)]
3729#[derive(Clone, PartialEq, ::prost::Message)]
3730pub struct RoomUpdate {
3731 #[prost(message, optional, tag="1")]
3732 pub room: ::core::option::Option<Room>,
3733}
3734#[allow(clippy::derive_partial_eq_without_eq)]
3735#[derive(Clone, PartialEq, ::prost::Message)]
3736pub struct ConnectionQualityInfo {
3737 #[prost(string, tag="1")]
3738 pub participant_sid: ::prost::alloc::string::String,
3739 #[prost(enumeration="ConnectionQuality", tag="2")]
3740 pub quality: i32,
3741 #[prost(float, tag="3")]
3742 pub score: f32,
3743}
3744#[allow(clippy::derive_partial_eq_without_eq)]
3745#[derive(Clone, PartialEq, ::prost::Message)]
3746pub struct ConnectionQualityUpdate {
3747 #[prost(message, repeated, tag="1")]
3748 pub updates: ::prost::alloc::vec::Vec<ConnectionQualityInfo>,
3749}
3750#[allow(clippy::derive_partial_eq_without_eq)]
3751#[derive(Clone, PartialEq, ::prost::Message)]
3752pub struct StreamStateInfo {
3753 #[prost(string, tag="1")]
3754 pub participant_sid: ::prost::alloc::string::String,
3755 #[prost(string, tag="2")]
3756 pub track_sid: ::prost::alloc::string::String,
3757 #[prost(enumeration="StreamState", tag="3")]
3758 pub state: i32,
3759}
3760#[allow(clippy::derive_partial_eq_without_eq)]
3761#[derive(Clone, PartialEq, ::prost::Message)]
3762pub struct StreamStateUpdate {
3763 #[prost(message, repeated, tag="1")]
3764 pub stream_states: ::prost::alloc::vec::Vec<StreamStateInfo>,
3765}
3766#[allow(clippy::derive_partial_eq_without_eq)]
3767#[derive(Clone, PartialEq, ::prost::Message)]
3768pub struct SubscribedQuality {
3769 #[prost(enumeration="VideoQuality", tag="1")]
3770 pub quality: i32,
3771 #[prost(bool, tag="2")]
3772 pub enabled: bool,
3773}
3774#[allow(clippy::derive_partial_eq_without_eq)]
3775#[derive(Clone, PartialEq, ::prost::Message)]
3776pub struct SubscribedCodec {
3777 #[prost(string, tag="1")]
3778 pub codec: ::prost::alloc::string::String,
3779 #[prost(message, repeated, tag="2")]
3780 pub qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
3781}
3782#[allow(clippy::derive_partial_eq_without_eq)]
3783#[derive(Clone, PartialEq, ::prost::Message)]
3784pub struct SubscribedQualityUpdate {
3785 #[prost(string, tag="1")]
3786 pub track_sid: ::prost::alloc::string::String,
3787 #[deprecated]
3788 #[prost(message, repeated, tag="2")]
3789 pub subscribed_qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
3790 #[prost(message, repeated, tag="3")]
3791 pub subscribed_codecs: ::prost::alloc::vec::Vec<SubscribedCodec>,
3792}
3793#[allow(clippy::derive_partial_eq_without_eq)]
3794#[derive(Clone, PartialEq, ::prost::Message)]
3795pub struct SubscribedAudioCodecUpdate {
3796 #[prost(string, tag="1")]
3797 pub track_sid: ::prost::alloc::string::String,
3798 #[prost(message, repeated, tag="2")]
3799 pub subscribed_audio_codecs: ::prost::alloc::vec::Vec<SubscribedAudioCodec>,
3800}
3801#[allow(clippy::derive_partial_eq_without_eq)]
3802#[derive(Clone, PartialEq, ::prost::Message)]
3803pub struct TrackPermission {
3804 #[prost(string, tag="1")]
3806 pub participant_sid: ::prost::alloc::string::String,
3807 #[prost(bool, tag="2")]
3808 pub all_tracks: bool,
3809 #[prost(string, repeated, tag="3")]
3810 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3811 #[prost(string, tag="4")]
3812 pub participant_identity: ::prost::alloc::string::String,
3813}
3814#[allow(clippy::derive_partial_eq_without_eq)]
3815#[derive(Clone, PartialEq, ::prost::Message)]
3816pub struct SubscriptionPermission {
3817 #[prost(bool, tag="1")]
3818 pub all_participants: bool,
3819 #[prost(message, repeated, tag="2")]
3820 pub track_permissions: ::prost::alloc::vec::Vec<TrackPermission>,
3821}
3822#[allow(clippy::derive_partial_eq_without_eq)]
3823#[derive(Clone, PartialEq, ::prost::Message)]
3824pub struct SubscriptionPermissionUpdate {
3825 #[prost(string, tag="1")]
3826 pub participant_sid: ::prost::alloc::string::String,
3827 #[prost(string, tag="2")]
3828 pub track_sid: ::prost::alloc::string::String,
3829 #[prost(bool, tag="3")]
3830 pub allowed: bool,
3831}
3832#[allow(clippy::derive_partial_eq_without_eq)]
3833#[derive(Clone, PartialEq, ::prost::Message)]
3834pub struct RoomMovedResponse {
3835 #[prost(message, optional, tag="1")]
3837 pub room: ::core::option::Option<Room>,
3838 #[prost(string, tag="2")]
3840 pub token: ::prost::alloc::string::String,
3841 #[prost(message, optional, tag="3")]
3842 pub participant: ::core::option::Option<ParticipantInfo>,
3843 #[prost(message, repeated, tag="4")]
3844 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3845}
3846#[allow(clippy::derive_partial_eq_without_eq)]
3847#[derive(Clone, PartialEq, ::prost::Message)]
3848pub struct SyncState {
3849 #[prost(message, optional, tag="1")]
3853 pub answer: ::core::option::Option<SessionDescription>,
3854 #[prost(message, optional, tag="2")]
3855 pub subscription: ::core::option::Option<UpdateSubscription>,
3856 #[prost(message, repeated, tag="3")]
3857 pub publish_tracks: ::prost::alloc::vec::Vec<TrackPublishedResponse>,
3858 #[prost(message, repeated, tag="4")]
3859 pub data_channels: ::prost::alloc::vec::Vec<DataChannelInfo>,
3860 #[prost(message, optional, tag="5")]
3864 pub offer: ::core::option::Option<SessionDescription>,
3865 #[prost(string, repeated, tag="6")]
3866 pub track_sids_disabled: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3867 #[prost(message, repeated, tag="7")]
3868 pub datachannel_receive_states: ::prost::alloc::vec::Vec<DataChannelReceiveState>,
3869 #[prost(message, repeated, tag="8")]
3870 pub publish_data_tracks: ::prost::alloc::vec::Vec<PublishDataTrackResponse>,
3871}
3872#[allow(clippy::derive_partial_eq_without_eq)]
3873#[derive(Clone, PartialEq, ::prost::Message)]
3874pub struct DataChannelReceiveState {
3875 #[prost(string, tag="1")]
3876 pub publisher_sid: ::prost::alloc::string::String,
3877 #[prost(uint32, tag="2")]
3878 pub last_seq: u32,
3879}
3880#[allow(clippy::derive_partial_eq_without_eq)]
3881#[derive(Clone, PartialEq, ::prost::Message)]
3882pub struct DataChannelInfo {
3883 #[prost(string, tag="1")]
3884 pub label: ::prost::alloc::string::String,
3885 #[prost(uint32, tag="2")]
3886 pub id: u32,
3887 #[prost(enumeration="SignalTarget", tag="3")]
3888 pub target: i32,
3889}
3890#[allow(clippy::derive_partial_eq_without_eq)]
3891#[derive(Clone, PartialEq, ::prost::Message)]
3892pub struct SimulateScenario {
3893 #[prost(oneof="simulate_scenario::Scenario", tags="1, 2, 3, 4, 5, 6, 7, 8, 9")]
3894 pub scenario: ::core::option::Option<simulate_scenario::Scenario>,
3895}
3896pub mod simulate_scenario {
3898 #[allow(clippy::derive_partial_eq_without_eq)]
3899#[derive(Clone, PartialEq, ::prost::Oneof)]
3900 pub enum Scenario {
3901 #[prost(int32, tag="1")]
3903 SpeakerUpdate(i32),
3904 #[prost(bool, tag="2")]
3906 NodeFailure(bool),
3907 #[prost(bool, tag="3")]
3909 Migration(bool),
3910 #[prost(bool, tag="4")]
3912 ServerLeave(bool),
3913 #[prost(enumeration="super::CandidateProtocol", tag="5")]
3915 SwitchCandidateProtocol(i32),
3916 #[prost(int64, tag="6")]
3919 SubscriberBandwidth(i64),
3920 #[prost(bool, tag="7")]
3922 DisconnectSignalOnResume(bool),
3923 #[prost(bool, tag="8")]
3925 DisconnectSignalOnResumeNoMessages(bool),
3926 #[prost(bool, tag="9")]
3928 LeaveRequestFullReconnect(bool),
3929 }
3930}
3931#[allow(clippy::derive_partial_eq_without_eq)]
3932#[derive(Clone, PartialEq, ::prost::Message)]
3933pub struct Ping {
3934 #[prost(int64, tag="1")]
3935 pub timestamp: i64,
3936 #[prost(int64, tag="2")]
3938 pub rtt: i64,
3939}
3940#[allow(clippy::derive_partial_eq_without_eq)]
3941#[derive(Clone, PartialEq, ::prost::Message)]
3942pub struct Pong {
3943 #[prost(int64, tag="1")]
3945 pub last_ping_timestamp: i64,
3946 #[prost(int64, tag="2")]
3947 pub timestamp: i64,
3948}
3949#[allow(clippy::derive_partial_eq_without_eq)]
3950#[derive(Clone, PartialEq, ::prost::Message)]
3951pub struct RegionSettings {
3952 #[prost(message, repeated, tag="1")]
3953 pub regions: ::prost::alloc::vec::Vec<RegionInfo>,
3954}
3955#[allow(clippy::derive_partial_eq_without_eq)]
3956#[derive(Clone, PartialEq, ::prost::Message)]
3957pub struct RegionInfo {
3958 #[prost(string, tag="1")]
3959 pub region: ::prost::alloc::string::String,
3960 #[prost(string, tag="2")]
3961 pub url: ::prost::alloc::string::String,
3962 #[prost(int64, tag="3")]
3963 pub distance: i64,
3964}
3965#[allow(clippy::derive_partial_eq_without_eq)]
3966#[derive(Clone, PartialEq, ::prost::Message)]
3967pub struct SubscriptionResponse {
3968 #[prost(string, tag="1")]
3969 pub track_sid: ::prost::alloc::string::String,
3970 #[prost(enumeration="SubscriptionError", tag="2")]
3971 pub err: i32,
3972}
3973#[allow(clippy::derive_partial_eq_without_eq)]
3974#[derive(Clone, PartialEq, ::prost::Message)]
3975pub struct RequestResponse {
3976 #[prost(uint32, tag="1")]
3977 pub request_id: u32,
3978 #[prost(enumeration="request_response::Reason", tag="2")]
3979 pub reason: i32,
3980 #[prost(string, tag="3")]
3981 pub message: ::prost::alloc::string::String,
3982 #[prost(oneof="request_response::Request", tags="4, 5, 6, 7, 8, 9, 10, 11")]
3983 pub request: ::core::option::Option<request_response::Request>,
3984}
3985pub mod request_response {
3987 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3988 #[repr(i32)]
3989 pub enum Reason {
3990 Ok = 0,
3991 NotFound = 1,
3992 NotAllowed = 2,
3993 LimitExceeded = 3,
3994 Queued = 4,
3995 UnsupportedType = 5,
3996 UnclassifiedError = 6,
3997 InvalidHandle = 7,
3998 InvalidName = 8,
3999 DuplicateHandle = 9,
4000 DuplicateName = 10,
4001 }
4002 impl Reason {
4003 pub fn as_str_name(&self) -> &'static str {
4008 match self {
4009 Reason::Ok => "OK",
4010 Reason::NotFound => "NOT_FOUND",
4011 Reason::NotAllowed => "NOT_ALLOWED",
4012 Reason::LimitExceeded => "LIMIT_EXCEEDED",
4013 Reason::Queued => "QUEUED",
4014 Reason::UnsupportedType => "UNSUPPORTED_TYPE",
4015 Reason::UnclassifiedError => "UNCLASSIFIED_ERROR",
4016 Reason::InvalidHandle => "INVALID_HANDLE",
4017 Reason::InvalidName => "INVALID_NAME",
4018 Reason::DuplicateHandle => "DUPLICATE_HANDLE",
4019 Reason::DuplicateName => "DUPLICATE_NAME",
4020 }
4021 }
4022 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4024 match value {
4025 "OK" => Some(Self::Ok),
4026 "NOT_FOUND" => Some(Self::NotFound),
4027 "NOT_ALLOWED" => Some(Self::NotAllowed),
4028 "LIMIT_EXCEEDED" => Some(Self::LimitExceeded),
4029 "QUEUED" => Some(Self::Queued),
4030 "UNSUPPORTED_TYPE" => Some(Self::UnsupportedType),
4031 "UNCLASSIFIED_ERROR" => Some(Self::UnclassifiedError),
4032 "INVALID_HANDLE" => Some(Self::InvalidHandle),
4033 "INVALID_NAME" => Some(Self::InvalidName),
4034 "DUPLICATE_HANDLE" => Some(Self::DuplicateHandle),
4035 "DUPLICATE_NAME" => Some(Self::DuplicateName),
4036 _ => None,
4037 }
4038 }
4039 }
4040 #[allow(clippy::derive_partial_eq_without_eq)]
4041#[derive(Clone, PartialEq, ::prost::Oneof)]
4042 pub enum Request {
4043 #[prost(message, tag="4")]
4044 Trickle(super::TrickleRequest),
4045 #[prost(message, tag="5")]
4046 AddTrack(super::AddTrackRequest),
4047 #[prost(message, tag="6")]
4048 Mute(super::MuteTrackRequest),
4049 #[prost(message, tag="7")]
4050 UpdateMetadata(super::UpdateParticipantMetadata),
4051 #[prost(message, tag="8")]
4052 UpdateAudioTrack(super::UpdateLocalAudioTrack),
4053 #[prost(message, tag="9")]
4054 UpdateVideoTrack(super::UpdateLocalVideoTrack),
4055 #[prost(message, tag="10")]
4056 PublishDataTrack(super::PublishDataTrackRequest),
4057 #[prost(message, tag="11")]
4058 UnpublishDataTrack(super::UnpublishDataTrackRequest),
4059 }
4060}
4061#[allow(clippy::derive_partial_eq_without_eq)]
4062#[derive(Clone, PartialEq, ::prost::Message)]
4063pub struct TrackSubscribed {
4064 #[prost(string, tag="1")]
4065 pub track_sid: ::prost::alloc::string::String,
4066}
4067#[allow(clippy::derive_partial_eq_without_eq)]
4068#[derive(Clone, PartialEq, ::prost::Message)]
4069pub struct ConnectionSettings {
4070 #[prost(bool, tag="1")]
4071 pub auto_subscribe: bool,
4072 #[prost(bool, tag="2")]
4073 pub adaptive_stream: bool,
4074 #[prost(bool, optional, tag="3")]
4075 pub subscriber_allow_pause: ::core::option::Option<bool>,
4076 #[prost(bool, tag="4")]
4077 pub disable_ice_lite: bool,
4078 #[prost(bool, optional, tag="5")]
4079 pub auto_subscribe_data_track: ::core::option::Option<bool>,
4080}
4081#[allow(clippy::derive_partial_eq_without_eq)]
4082#[derive(Clone, PartialEq, ::prost::Message)]
4083pub struct JoinRequest {
4084 #[prost(message, optional, tag="1")]
4085 pub client_info: ::core::option::Option<ClientInfo>,
4086 #[prost(message, optional, tag="2")]
4087 pub connection_settings: ::core::option::Option<ConnectionSettings>,
4088 #[prost(string, tag="3")]
4090 pub metadata: ::prost::alloc::string::String,
4091 #[prost(map="string, string", tag="4")]
4095 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4096 #[prost(message, repeated, tag="5")]
4097 pub add_track_requests: ::prost::alloc::vec::Vec<AddTrackRequest>,
4098 #[prost(message, optional, tag="6")]
4099 pub publisher_offer: ::core::option::Option<SessionDescription>,
4100 #[prost(bool, tag="7")]
4101 pub reconnect: bool,
4102 #[prost(enumeration="ReconnectReason", tag="8")]
4103 pub reconnect_reason: i32,
4104 #[prost(string, tag="9")]
4105 pub participant_sid: ::prost::alloc::string::String,
4106 #[prost(message, optional, tag="10")]
4107 pub sync_state: ::core::option::Option<SyncState>,
4108}
4109#[allow(clippy::derive_partial_eq_without_eq)]
4110#[derive(Clone, PartialEq, ::prost::Message)]
4111pub struct WrappedJoinRequest {
4112 #[prost(enumeration="wrapped_join_request::Compression", tag="1")]
4113 pub compression: i32,
4114 #[prost(bytes="vec", tag="2")]
4116 pub join_request: ::prost::alloc::vec::Vec<u8>,
4117}
4118pub mod wrapped_join_request {
4120 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4121 #[repr(i32)]
4122 pub enum Compression {
4123 None = 0,
4124 Gzip = 1,
4125 }
4126 impl Compression {
4127 pub fn as_str_name(&self) -> &'static str {
4132 match self {
4133 Compression::None => "NONE",
4134 Compression::Gzip => "GZIP",
4135 }
4136 }
4137 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4139 match value {
4140 "NONE" => Some(Self::None),
4141 "GZIP" => Some(Self::Gzip),
4142 _ => None,
4143 }
4144 }
4145 }
4146}
4147#[allow(clippy::derive_partial_eq_without_eq)]
4148#[derive(Clone, PartialEq, ::prost::Message)]
4149pub struct MediaSectionsRequirement {
4150 #[prost(uint32, tag="1")]
4151 pub num_audios: u32,
4152 #[prost(uint32, tag="2")]
4153 pub num_videos: u32,
4154}
4155#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4156#[repr(i32)]
4157pub enum SignalTarget {
4158 Publisher = 0,
4159 Subscriber = 1,
4160}
4161impl SignalTarget {
4162 pub fn as_str_name(&self) -> &'static str {
4167 match self {
4168 SignalTarget::Publisher => "PUBLISHER",
4169 SignalTarget::Subscriber => "SUBSCRIBER",
4170 }
4171 }
4172 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4174 match value {
4175 "PUBLISHER" => Some(Self::Publisher),
4176 "SUBSCRIBER" => Some(Self::Subscriber),
4177 _ => None,
4178 }
4179 }
4180}
4181#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4182#[repr(i32)]
4183pub enum StreamState {
4184 Active = 0,
4185 Paused = 1,
4186}
4187impl StreamState {
4188 pub fn as_str_name(&self) -> &'static str {
4193 match self {
4194 StreamState::Active => "ACTIVE",
4195 StreamState::Paused => "PAUSED",
4196 }
4197 }
4198 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4200 match value {
4201 "ACTIVE" => Some(Self::Active),
4202 "PAUSED" => Some(Self::Paused),
4203 _ => None,
4204 }
4205 }
4206}
4207#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4208#[repr(i32)]
4209pub enum CandidateProtocol {
4210 Udp = 0,
4211 Tcp = 1,
4212 Tls = 2,
4213}
4214impl CandidateProtocol {
4215 pub fn as_str_name(&self) -> &'static str {
4220 match self {
4221 CandidateProtocol::Udp => "UDP",
4222 CandidateProtocol::Tcp => "TCP",
4223 CandidateProtocol::Tls => "TLS",
4224 }
4225 }
4226 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4228 match value {
4229 "UDP" => Some(Self::Udp),
4230 "TCP" => Some(Self::Tcp),
4231 "TLS" => Some(Self::Tls),
4232 _ => None,
4233 }
4234 }
4235}
4236#[allow(clippy::derive_partial_eq_without_eq)]
4237#[derive(Clone, PartialEq, ::prost::Message)]
4238pub struct Job {
4239 #[prost(string, tag="1")]
4240 pub id: ::prost::alloc::string::String,
4241 #[prost(string, tag="9")]
4242 pub dispatch_id: ::prost::alloc::string::String,
4243 #[prost(enumeration="JobType", tag="2")]
4244 pub r#type: i32,
4245 #[prost(message, optional, tag="3")]
4246 pub room: ::core::option::Option<Room>,
4247 #[prost(message, optional, tag="4")]
4248 pub participant: ::core::option::Option<ParticipantInfo>,
4249 #[deprecated]
4250 #[prost(string, tag="5")]
4251 pub namespace: ::prost::alloc::string::String,
4252 #[prost(string, tag="6")]
4253 pub metadata: ::prost::alloc::string::String,
4254 #[prost(string, tag="7")]
4255 pub agent_name: ::prost::alloc::string::String,
4256 #[prost(message, optional, tag="8")]
4257 pub state: ::core::option::Option<JobState>,
4258 #[prost(bool, tag="10")]
4259 pub enable_recording: bool,
4260}
4261#[allow(clippy::derive_partial_eq_without_eq)]
4262#[derive(Clone, PartialEq, ::prost::Message)]
4263pub struct JobState {
4264 #[prost(enumeration="JobStatus", tag="1")]
4265 pub status: i32,
4266 #[prost(string, tag="2")]
4267 pub error: ::prost::alloc::string::String,
4268 #[prost(int64, tag="3")]
4269 pub started_at: i64,
4270 #[prost(int64, tag="4")]
4271 pub ended_at: i64,
4272 #[prost(int64, tag="5")]
4273 pub updated_at: i64,
4274 #[prost(string, tag="6")]
4275 pub participant_identity: ::prost::alloc::string::String,
4276 #[prost(string, tag="7")]
4277 pub worker_id: ::prost::alloc::string::String,
4278 #[prost(string, tag="8")]
4279 pub agent_id: ::prost::alloc::string::String,
4280}
4281#[allow(clippy::derive_partial_eq_without_eq)]
4283#[derive(Clone, PartialEq, ::prost::Message)]
4284pub struct WorkerMessage {
4285 #[prost(oneof="worker_message::Message", tags="1, 2, 3, 4, 5, 6, 7")]
4286 pub message: ::core::option::Option<worker_message::Message>,
4287}
4288pub mod worker_message {
4290 #[allow(clippy::derive_partial_eq_without_eq)]
4291#[derive(Clone, PartialEq, ::prost::Oneof)]
4292 pub enum Message {
4293 #[prost(message, tag="1")]
4295 Register(super::RegisterWorkerRequest),
4296 #[prost(message, tag="2")]
4298 Availability(super::AvailabilityResponse),
4299 #[prost(message, tag="3")]
4301 UpdateWorker(super::UpdateWorkerStatus),
4302 #[prost(message, tag="4")]
4304 UpdateJob(super::UpdateJobStatus),
4305 #[prost(message, tag="5")]
4306 Ping(super::WorkerPing),
4307 #[prost(message, tag="6")]
4308 SimulateJob(super::SimulateJobRequest),
4309 #[prost(message, tag="7")]
4310 MigrateJob(super::MigrateJobRequest),
4311 }
4312}
4313#[allow(clippy::derive_partial_eq_without_eq)]
4315#[derive(Clone, PartialEq, ::prost::Message)]
4316pub struct ServerMessage {
4317 #[prost(oneof="server_message::Message", tags="1, 2, 3, 5, 4")]
4318 pub message: ::core::option::Option<server_message::Message>,
4319}
4320pub mod server_message {
4322 #[allow(clippy::derive_partial_eq_without_eq)]
4323#[derive(Clone, PartialEq, ::prost::Oneof)]
4324 pub enum Message {
4325 #[prost(message, tag="1")]
4327 Register(super::RegisterWorkerResponse),
4328 #[prost(message, tag="2")]
4330 Availability(super::AvailabilityRequest),
4331 #[prost(message, tag="3")]
4332 Assignment(super::JobAssignment),
4333 #[prost(message, tag="5")]
4334 Termination(super::JobTermination),
4335 #[prost(message, tag="4")]
4336 Pong(super::WorkerPong),
4337 }
4338}
4339#[allow(clippy::derive_partial_eq_without_eq)]
4340#[derive(Clone, PartialEq, ::prost::Message)]
4341pub struct SimulateJobRequest {
4342 #[prost(enumeration="JobType", tag="1")]
4343 pub r#type: i32,
4344 #[prost(message, optional, tag="2")]
4345 pub room: ::core::option::Option<Room>,
4346 #[prost(message, optional, tag="3")]
4347 pub participant: ::core::option::Option<ParticipantInfo>,
4348}
4349#[allow(clippy::derive_partial_eq_without_eq)]
4350#[derive(Clone, PartialEq, ::prost::Message)]
4351pub struct WorkerPing {
4352 #[prost(int64, tag="1")]
4353 pub timestamp: i64,
4354}
4355#[allow(clippy::derive_partial_eq_without_eq)]
4356#[derive(Clone, PartialEq, ::prost::Message)]
4357pub struct WorkerPong {
4358 #[prost(int64, tag="1")]
4359 pub last_timestamp: i64,
4360 #[prost(int64, tag="2")]
4361 pub timestamp: i64,
4362}
4363#[allow(clippy::derive_partial_eq_without_eq)]
4364#[derive(Clone, PartialEq, ::prost::Message)]
4365pub struct RegisterWorkerRequest {
4366 #[prost(enumeration="JobType", tag="1")]
4367 pub r#type: i32,
4368 #[prost(string, tag="8")]
4369 pub agent_name: ::prost::alloc::string::String,
4370 #[prost(string, tag="3")]
4372 pub version: ::prost::alloc::string::String,
4373 #[prost(uint32, tag="5")]
4375 pub ping_interval: u32,
4376 #[prost(string, optional, tag="6")]
4377 pub namespace: ::core::option::Option<::prost::alloc::string::String>,
4378 #[prost(message, optional, tag="7")]
4379 pub allowed_permissions: ::core::option::Option<ParticipantPermission>,
4380}
4381#[allow(clippy::derive_partial_eq_without_eq)]
4382#[derive(Clone, PartialEq, ::prost::Message)]
4383pub struct RegisterWorkerResponse {
4384 #[prost(string, tag="1")]
4385 pub worker_id: ::prost::alloc::string::String,
4386 #[prost(message, optional, tag="3")]
4387 pub server_info: ::core::option::Option<ServerInfo>,
4388}
4389#[allow(clippy::derive_partial_eq_without_eq)]
4390#[derive(Clone, PartialEq, ::prost::Message)]
4391pub struct MigrateJobRequest {
4392 #[prost(string, repeated, tag="2")]
4394 pub job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4395}
4396#[allow(clippy::derive_partial_eq_without_eq)]
4397#[derive(Clone, PartialEq, ::prost::Message)]
4398pub struct AvailabilityRequest {
4399 #[prost(message, optional, tag="1")]
4400 pub job: ::core::option::Option<Job>,
4401 #[prost(bool, tag="2")]
4404 pub resuming: bool,
4405}
4406#[allow(clippy::derive_partial_eq_without_eq)]
4407#[derive(Clone, PartialEq, ::prost::Message)]
4408pub struct AvailabilityResponse {
4409 #[prost(string, tag="1")]
4410 pub job_id: ::prost::alloc::string::String,
4411 #[prost(bool, tag="2")]
4412 pub available: bool,
4413 #[prost(bool, tag="3")]
4414 pub supports_resume: bool,
4415 #[prost(bool, tag="8")]
4416 pub terminate: bool,
4417 #[prost(string, tag="4")]
4418 pub participant_name: ::prost::alloc::string::String,
4419 #[prost(string, tag="5")]
4420 pub participant_identity: ::prost::alloc::string::String,
4421 #[prost(string, tag="6")]
4422 pub participant_metadata: ::prost::alloc::string::String,
4423 #[prost(map="string, string", tag="7")]
4425 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4426}
4427#[allow(clippy::derive_partial_eq_without_eq)]
4428#[derive(Clone, PartialEq, ::prost::Message)]
4429pub struct UpdateJobStatus {
4430 #[prost(string, tag="1")]
4431 pub job_id: ::prost::alloc::string::String,
4432 #[prost(enumeration="JobStatus", tag="2")]
4434 pub status: i32,
4435 #[prost(string, tag="3")]
4437 pub error: ::prost::alloc::string::String,
4438}
4439#[allow(clippy::derive_partial_eq_without_eq)]
4440#[derive(Clone, PartialEq, ::prost::Message)]
4441pub struct UpdateWorkerStatus {
4442 #[prost(enumeration="WorkerStatus", optional, tag="1")]
4443 pub status: ::core::option::Option<i32>,
4444 #[prost(float, tag="3")]
4446 pub load: f32,
4447 #[prost(uint32, tag="4")]
4448 pub job_count: u32,
4449}
4450#[allow(clippy::derive_partial_eq_without_eq)]
4451#[derive(Clone, PartialEq, ::prost::Message)]
4452pub struct JobAssignment {
4453 #[prost(message, optional, tag="1")]
4454 pub job: ::core::option::Option<Job>,
4455 #[prost(string, optional, tag="2")]
4456 pub url: ::core::option::Option<::prost::alloc::string::String>,
4457 #[prost(string, tag="3")]
4458 pub token: ::prost::alloc::string::String,
4459}
4460#[allow(clippy::derive_partial_eq_without_eq)]
4461#[derive(Clone, PartialEq, ::prost::Message)]
4462pub struct JobTermination {
4463 #[prost(string, tag="1")]
4464 pub job_id: ::prost::alloc::string::String,
4465}
4466#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4467#[repr(i32)]
4468pub enum JobType {
4469 JtRoom = 0,
4470 JtPublisher = 1,
4471 JtParticipant = 2,
4472}
4473impl JobType {
4474 pub fn as_str_name(&self) -> &'static str {
4479 match self {
4480 JobType::JtRoom => "JT_ROOM",
4481 JobType::JtPublisher => "JT_PUBLISHER",
4482 JobType::JtParticipant => "JT_PARTICIPANT",
4483 }
4484 }
4485 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4487 match value {
4488 "JT_ROOM" => Some(Self::JtRoom),
4489 "JT_PUBLISHER" => Some(Self::JtPublisher),
4490 "JT_PARTICIPANT" => Some(Self::JtParticipant),
4491 _ => None,
4492 }
4493 }
4494}
4495#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4496#[repr(i32)]
4497pub enum WorkerStatus {
4498 WsAvailable = 0,
4499 WsFull = 1,
4500}
4501impl WorkerStatus {
4502 pub fn as_str_name(&self) -> &'static str {
4507 match self {
4508 WorkerStatus::WsAvailable => "WS_AVAILABLE",
4509 WorkerStatus::WsFull => "WS_FULL",
4510 }
4511 }
4512 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4514 match value {
4515 "WS_AVAILABLE" => Some(Self::WsAvailable),
4516 "WS_FULL" => Some(Self::WsFull),
4517 _ => None,
4518 }
4519 }
4520}
4521#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4522#[repr(i32)]
4523pub enum JobStatus {
4524 JsPending = 0,
4525 JsRunning = 1,
4526 JsSuccess = 2,
4527 JsFailed = 3,
4528}
4529impl JobStatus {
4530 pub fn as_str_name(&self) -> &'static str {
4535 match self {
4536 JobStatus::JsPending => "JS_PENDING",
4537 JobStatus::JsRunning => "JS_RUNNING",
4538 JobStatus::JsSuccess => "JS_SUCCESS",
4539 JobStatus::JsFailed => "JS_FAILED",
4540 }
4541 }
4542 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4544 match value {
4545 "JS_PENDING" => Some(Self::JsPending),
4546 "JS_RUNNING" => Some(Self::JsRunning),
4547 "JS_SUCCESS" => Some(Self::JsSuccess),
4548 "JS_FAILED" => Some(Self::JsFailed),
4549 _ => None,
4550 }
4551 }
4552}
4553#[allow(clippy::derive_partial_eq_without_eq)]
4554#[derive(Clone, PartialEq, ::prost::Message)]
4555pub struct CreateAgentDispatchRequest {
4556 #[prost(string, tag="1")]
4557 pub agent_name: ::prost::alloc::string::String,
4558 #[prost(string, tag="2")]
4559 pub room: ::prost::alloc::string::String,
4560 #[prost(string, tag="3")]
4561 pub metadata: ::prost::alloc::string::String,
4562}
4563#[allow(clippy::derive_partial_eq_without_eq)]
4564#[derive(Clone, PartialEq, ::prost::Message)]
4565pub struct RoomAgentDispatch {
4566 #[prost(string, tag="1")]
4567 pub agent_name: ::prost::alloc::string::String,
4568 #[prost(string, tag="2")]
4569 pub metadata: ::prost::alloc::string::String,
4570}
4571#[allow(clippy::derive_partial_eq_without_eq)]
4572#[derive(Clone, PartialEq, ::prost::Message)]
4573pub struct DeleteAgentDispatchRequest {
4574 #[prost(string, tag="1")]
4575 pub dispatch_id: ::prost::alloc::string::String,
4576 #[prost(string, tag="2")]
4577 pub room: ::prost::alloc::string::String,
4578}
4579#[allow(clippy::derive_partial_eq_without_eq)]
4580#[derive(Clone, PartialEq, ::prost::Message)]
4581pub struct ListAgentDispatchRequest {
4582 #[prost(string, tag="1")]
4584 pub dispatch_id: ::prost::alloc::string::String,
4585 #[prost(string, tag="2")]
4587 pub room: ::prost::alloc::string::String,
4588}
4589#[allow(clippy::derive_partial_eq_without_eq)]
4590#[derive(Clone, PartialEq, ::prost::Message)]
4591pub struct ListAgentDispatchResponse {
4592 #[prost(message, repeated, tag="1")]
4593 pub agent_dispatches: ::prost::alloc::vec::Vec<AgentDispatch>,
4594}
4595#[allow(clippy::derive_partial_eq_without_eq)]
4596#[derive(Clone, PartialEq, ::prost::Message)]
4597pub struct AgentDispatch {
4598 #[prost(string, tag="1")]
4599 pub id: ::prost::alloc::string::String,
4600 #[prost(string, tag="2")]
4601 pub agent_name: ::prost::alloc::string::String,
4602 #[prost(string, tag="3")]
4603 pub room: ::prost::alloc::string::String,
4604 #[prost(string, tag="4")]
4605 pub metadata: ::prost::alloc::string::String,
4606 #[prost(message, optional, tag="5")]
4607 pub state: ::core::option::Option<AgentDispatchState>,
4608}
4609#[allow(clippy::derive_partial_eq_without_eq)]
4610#[derive(Clone, PartialEq, ::prost::Message)]
4611pub struct AgentDispatchState {
4612 #[prost(message, repeated, tag="1")]
4615 pub jobs: ::prost::alloc::vec::Vec<Job>,
4616 #[prost(int64, tag="2")]
4617 pub created_at: i64,
4618 #[prost(int64, tag="3")]
4619 pub deleted_at: i64,
4620}
4621#[allow(clippy::derive_partial_eq_without_eq)]
4622#[derive(Clone, PartialEq, ::prost::Message)]
4623pub struct CreateRoomRequest {
4624 #[prost(string, tag="1")]
4626 pub name: ::prost::alloc::string::String,
4627 #[prost(string, tag="12")]
4629 pub room_preset: ::prost::alloc::string::String,
4630 #[prost(uint32, tag="2")]
4632 pub empty_timeout: u32,
4633 #[prost(uint32, tag="10")]
4635 pub departure_timeout: u32,
4636 #[prost(uint32, tag="3")]
4638 pub max_participants: u32,
4639 #[prost(string, tag="4")]
4641 pub node_id: ::prost::alloc::string::String,
4642 #[prost(string, tag="5")]
4644 pub metadata: ::prost::alloc::string::String,
4645 #[prost(message, optional, tag="6")]
4647 pub egress: ::core::option::Option<RoomEgress>,
4648 #[prost(uint32, tag="7")]
4650 pub min_playout_delay: u32,
4651 #[prost(uint32, tag="8")]
4652 pub max_playout_delay: u32,
4653 #[prost(bool, tag="9")]
4656 pub sync_streams: bool,
4657 #[prost(bool, tag="13")]
4659 pub replay_enabled: bool,
4660 #[prost(message, repeated, tag="14")]
4664 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
4665}
4666#[allow(clippy::derive_partial_eq_without_eq)]
4667#[derive(Clone, PartialEq, ::prost::Message)]
4668pub struct RoomEgress {
4669 #[prost(message, optional, tag="1")]
4670 pub room: ::core::option::Option<RoomCompositeEgressRequest>,
4671 #[prost(message, optional, tag="3")]
4672 pub participant: ::core::option::Option<AutoParticipantEgress>,
4673 #[prost(message, optional, tag="2")]
4674 pub tracks: ::core::option::Option<AutoTrackEgress>,
4675}
4676#[allow(clippy::derive_partial_eq_without_eq)]
4677#[derive(Clone, PartialEq, ::prost::Message)]
4678pub struct RoomAgent {
4679 #[prost(message, repeated, tag="1")]
4680 pub dispatches: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
4681}
4682#[allow(clippy::derive_partial_eq_without_eq)]
4683#[derive(Clone, PartialEq, ::prost::Message)]
4684pub struct ListRoomsRequest {
4685 #[prost(string, repeated, tag="1")]
4687 pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4688}
4689#[allow(clippy::derive_partial_eq_without_eq)]
4690#[derive(Clone, PartialEq, ::prost::Message)]
4691pub struct ListRoomsResponse {
4692 #[prost(message, repeated, tag="1")]
4693 pub rooms: ::prost::alloc::vec::Vec<Room>,
4694}
4695#[allow(clippy::derive_partial_eq_without_eq)]
4696#[derive(Clone, PartialEq, ::prost::Message)]
4697pub struct DeleteRoomRequest {
4698 #[prost(string, tag="1")]
4700 pub room: ::prost::alloc::string::String,
4701}
4702#[allow(clippy::derive_partial_eq_without_eq)]
4703#[derive(Clone, PartialEq, ::prost::Message)]
4704pub struct DeleteRoomResponse {
4705}
4706#[allow(clippy::derive_partial_eq_without_eq)]
4707#[derive(Clone, PartialEq, ::prost::Message)]
4708pub struct ListParticipantsRequest {
4709 #[prost(string, tag="1")]
4711 pub room: ::prost::alloc::string::String,
4712}
4713#[allow(clippy::derive_partial_eq_without_eq)]
4714#[derive(Clone, PartialEq, ::prost::Message)]
4715pub struct ListParticipantsResponse {
4716 #[prost(message, repeated, tag="1")]
4717 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4718}
4719#[allow(clippy::derive_partial_eq_without_eq)]
4720#[derive(Clone, PartialEq, ::prost::Message)]
4721pub struct RoomParticipantIdentity {
4722 #[prost(string, tag="1")]
4724 pub room: ::prost::alloc::string::String,
4725 #[prost(string, tag="2")]
4727 pub identity: ::prost::alloc::string::String,
4728}
4729#[allow(clippy::derive_partial_eq_without_eq)]
4730#[derive(Clone, PartialEq, ::prost::Message)]
4731pub struct RemoveParticipantResponse {
4732}
4733#[allow(clippy::derive_partial_eq_without_eq)]
4734#[derive(Clone, PartialEq, ::prost::Message)]
4735pub struct MuteRoomTrackRequest {
4736 #[prost(string, tag="1")]
4738 pub room: ::prost::alloc::string::String,
4739 #[prost(string, tag="2")]
4740 pub identity: ::prost::alloc::string::String,
4741 #[prost(string, tag="3")]
4743 pub track_sid: ::prost::alloc::string::String,
4744 #[prost(bool, tag="4")]
4746 pub muted: bool,
4747}
4748#[allow(clippy::derive_partial_eq_without_eq)]
4749#[derive(Clone, PartialEq, ::prost::Message)]
4750pub struct MuteRoomTrackResponse {
4751 #[prost(message, optional, tag="1")]
4752 pub track: ::core::option::Option<TrackInfo>,
4753}
4754#[allow(clippy::derive_partial_eq_without_eq)]
4755#[derive(Clone, PartialEq, ::prost::Message)]
4756pub struct UpdateParticipantRequest {
4757 #[prost(string, tag="1")]
4758 pub room: ::prost::alloc::string::String,
4759 #[prost(string, tag="2")]
4760 pub identity: ::prost::alloc::string::String,
4761 #[prost(string, tag="3")]
4763 pub metadata: ::prost::alloc::string::String,
4764 #[prost(message, optional, tag="4")]
4766 pub permission: ::core::option::Option<ParticipantPermission>,
4767 #[prost(string, tag="5")]
4769 pub name: ::prost::alloc::string::String,
4770 #[prost(map="string, string", tag="6")]
4773 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4774}
4775#[allow(clippy::derive_partial_eq_without_eq)]
4776#[derive(Clone, PartialEq, ::prost::Message)]
4777pub struct UpdateSubscriptionsRequest {
4778 #[prost(string, tag="1")]
4779 pub room: ::prost::alloc::string::String,
4780 #[prost(string, tag="2")]
4781 pub identity: ::prost::alloc::string::String,
4782 #[prost(string, repeated, tag="3")]
4784 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4785 #[prost(bool, tag="4")]
4787 pub subscribe: bool,
4788 #[prost(message, repeated, tag="5")]
4790 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
4791}
4792#[allow(clippy::derive_partial_eq_without_eq)]
4794#[derive(Clone, PartialEq, ::prost::Message)]
4795pub struct UpdateSubscriptionsResponse {
4796}
4797#[allow(clippy::derive_partial_eq_without_eq)]
4798#[derive(Clone, PartialEq, ::prost::Message)]
4799pub struct SendDataRequest {
4800 #[prost(string, tag="1")]
4801 pub room: ::prost::alloc::string::String,
4802 #[prost(bytes="vec", tag="2")]
4803 pub data: ::prost::alloc::vec::Vec<u8>,
4804 #[prost(enumeration="data_packet::Kind", tag="3")]
4805 pub kind: i32,
4806 #[deprecated]
4808 #[prost(string, repeated, tag="4")]
4809 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4810 #[prost(string, repeated, tag="6")]
4812 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4813 #[prost(string, optional, tag="5")]
4814 pub topic: ::core::option::Option<::prost::alloc::string::String>,
4815 #[prost(bytes="vec", tag="7")]
4817 pub nonce: ::prost::alloc::vec::Vec<u8>,
4818}
4819#[allow(clippy::derive_partial_eq_without_eq)]
4821#[derive(Clone, PartialEq, ::prost::Message)]
4822pub struct SendDataResponse {
4823}
4824#[allow(clippy::derive_partial_eq_without_eq)]
4825#[derive(Clone, PartialEq, ::prost::Message)]
4826pub struct UpdateRoomMetadataRequest {
4827 #[prost(string, tag="1")]
4828 pub room: ::prost::alloc::string::String,
4829 #[prost(string, tag="2")]
4831 pub metadata: ::prost::alloc::string::String,
4832}
4833#[allow(clippy::derive_partial_eq_without_eq)]
4834#[derive(Clone, PartialEq, ::prost::Message)]
4835pub struct RoomConfiguration {
4836 #[prost(string, tag="1")]
4838 pub name: ::prost::alloc::string::String,
4839 #[prost(uint32, tag="2")]
4841 pub empty_timeout: u32,
4842 #[prost(uint32, tag="3")]
4844 pub departure_timeout: u32,
4845 #[prost(uint32, tag="4")]
4847 pub max_participants: u32,
4848 #[prost(string, tag="11")]
4850 pub metadata: ::prost::alloc::string::String,
4851 #[prost(message, optional, tag="5")]
4853 pub egress: ::core::option::Option<RoomEgress>,
4854 #[prost(uint32, tag="7")]
4856 pub min_playout_delay: u32,
4857 #[prost(uint32, tag="8")]
4858 pub max_playout_delay: u32,
4859 #[prost(bool, tag="9")]
4862 pub sync_streams: bool,
4863 #[prost(message, repeated, tag="10")]
4865 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
4866}
4867#[allow(clippy::derive_partial_eq_without_eq)]
4868#[derive(Clone, PartialEq, ::prost::Message)]
4869pub struct ForwardParticipantRequest {
4870 #[prost(string, tag="1")]
4872 pub room: ::prost::alloc::string::String,
4873 #[prost(string, tag="2")]
4875 pub identity: ::prost::alloc::string::String,
4876 #[prost(string, tag="3")]
4878 pub destination_room: ::prost::alloc::string::String,
4879}
4880#[allow(clippy::derive_partial_eq_without_eq)]
4881#[derive(Clone, PartialEq, ::prost::Message)]
4882pub struct ForwardParticipantResponse {
4883}
4884#[allow(clippy::derive_partial_eq_without_eq)]
4885#[derive(Clone, PartialEq, ::prost::Message)]
4886pub struct MoveParticipantRequest {
4887 #[prost(string, tag="1")]
4889 pub room: ::prost::alloc::string::String,
4890 #[prost(string, tag="2")]
4892 pub identity: ::prost::alloc::string::String,
4893 #[prost(string, tag="3")]
4895 pub destination_room: ::prost::alloc::string::String,
4896}
4897#[allow(clippy::derive_partial_eq_without_eq)]
4898#[derive(Clone, PartialEq, ::prost::Message)]
4899pub struct MoveParticipantResponse {
4900}
4901#[allow(clippy::derive_partial_eq_without_eq)]
4902#[derive(Clone, PartialEq, ::prost::Message)]
4903pub struct PerformRpcRequest {
4904 #[prost(string, tag="1")]
4905 pub room: ::prost::alloc::string::String,
4906 #[prost(string, tag="2")]
4907 pub destination_identity: ::prost::alloc::string::String,
4908 #[prost(string, tag="3")]
4909 pub method: ::prost::alloc::string::String,
4910 #[prost(string, tag="4")]
4911 pub payload: ::prost::alloc::string::String,
4912 #[prost(uint32, tag="5")]
4913 pub response_timeout_ms: u32,
4914}
4915#[allow(clippy::derive_partial_eq_without_eq)]
4916#[derive(Clone, PartialEq, ::prost::Message)]
4917pub struct PerformRpcResponse {
4918 #[prost(string, tag="1")]
4919 pub payload: ::prost::alloc::string::String,
4920}
4921#[allow(clippy::derive_partial_eq_without_eq)]
4922#[derive(Clone, PartialEq, ::prost::Message)]
4923pub struct CreateIngressRequest {
4924 #[prost(enumeration="IngressInput", tag="1")]
4925 pub input_type: i32,
4926 #[prost(string, tag="9")]
4928 pub url: ::prost::alloc::string::String,
4929 #[prost(string, tag="2")]
4931 pub name: ::prost::alloc::string::String,
4932 #[prost(string, tag="3")]
4934 pub room_name: ::prost::alloc::string::String,
4935 #[prost(string, tag="4")]
4937 pub participant_identity: ::prost::alloc::string::String,
4938 #[prost(string, tag="5")]
4940 pub participant_name: ::prost::alloc::string::String,
4941 #[prost(string, tag="10")]
4943 pub participant_metadata: ::prost::alloc::string::String,
4944 #[deprecated]
4946 #[prost(bool, tag="8")]
4947 pub bypass_transcoding: bool,
4948 #[prost(bool, optional, tag="11")]
4950 pub enable_transcoding: ::core::option::Option<bool>,
4951 #[prost(message, optional, tag="6")]
4952 pub audio: ::core::option::Option<IngressAudioOptions>,
4953 #[prost(message, optional, tag="7")]
4954 pub video: ::core::option::Option<IngressVideoOptions>,
4955 #[prost(bool, optional, tag="12")]
4957 pub enabled: ::core::option::Option<bool>,
4958}
4959#[allow(clippy::derive_partial_eq_without_eq)]
4960#[derive(Clone, PartialEq, ::prost::Message)]
4961pub struct IngressAudioOptions {
4962 #[prost(string, tag="1")]
4963 pub name: ::prost::alloc::string::String,
4964 #[prost(enumeration="TrackSource", tag="2")]
4965 pub source: i32,
4966 #[prost(oneof="ingress_audio_options::EncodingOptions", tags="3, 4")]
4967 pub encoding_options: ::core::option::Option<ingress_audio_options::EncodingOptions>,
4968}
4969pub mod ingress_audio_options {
4971 #[allow(clippy::derive_partial_eq_without_eq)]
4972#[derive(Clone, PartialEq, ::prost::Oneof)]
4973 pub enum EncodingOptions {
4974 #[prost(enumeration="super::IngressAudioEncodingPreset", tag="3")]
4975 Preset(i32),
4976 #[prost(message, tag="4")]
4977 Options(super::IngressAudioEncodingOptions),
4978 }
4979}
4980#[allow(clippy::derive_partial_eq_without_eq)]
4981#[derive(Clone, PartialEq, ::prost::Message)]
4982pub struct IngressVideoOptions {
4983 #[prost(string, tag="1")]
4984 pub name: ::prost::alloc::string::String,
4985 #[prost(enumeration="TrackSource", tag="2")]
4986 pub source: i32,
4987 #[prost(oneof="ingress_video_options::EncodingOptions", tags="3, 4")]
4988 pub encoding_options: ::core::option::Option<ingress_video_options::EncodingOptions>,
4989}
4990pub mod ingress_video_options {
4992 #[allow(clippy::derive_partial_eq_without_eq)]
4993#[derive(Clone, PartialEq, ::prost::Oneof)]
4994 pub enum EncodingOptions {
4995 #[prost(enumeration="super::IngressVideoEncodingPreset", tag="3")]
4996 Preset(i32),
4997 #[prost(message, tag="4")]
4998 Options(super::IngressVideoEncodingOptions),
4999 }
5000}
5001#[allow(clippy::derive_partial_eq_without_eq)]
5002#[derive(Clone, PartialEq, ::prost::Message)]
5003pub struct IngressAudioEncodingOptions {
5004 #[prost(enumeration="AudioCodec", tag="1")]
5006 pub audio_codec: i32,
5007 #[prost(uint32, tag="2")]
5008 pub bitrate: u32,
5009 #[prost(bool, tag="3")]
5010 pub disable_dtx: bool,
5011 #[prost(uint32, tag="4")]
5012 pub channels: u32,
5013}
5014#[allow(clippy::derive_partial_eq_without_eq)]
5015#[derive(Clone, PartialEq, ::prost::Message)]
5016pub struct IngressVideoEncodingOptions {
5017 #[prost(enumeration="VideoCodec", tag="1")]
5019 pub video_codec: i32,
5020 #[prost(double, tag="2")]
5021 pub frame_rate: f64,
5022 #[prost(message, repeated, tag="3")]
5024 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
5025}
5026#[allow(clippy::derive_partial_eq_without_eq)]
5027#[derive(Clone, PartialEq, ::prost::Message)]
5028pub struct IngressInfo {
5029 #[prost(string, tag="1")]
5030 pub ingress_id: ::prost::alloc::string::String,
5031 #[prost(string, tag="2")]
5032 pub name: ::prost::alloc::string::String,
5033 #[prost(string, tag="3")]
5034 pub stream_key: ::prost::alloc::string::String,
5035 #[prost(string, tag="4")]
5037 pub url: ::prost::alloc::string::String,
5038 #[prost(enumeration="IngressInput", tag="5")]
5042 pub input_type: i32,
5043 #[deprecated]
5044 #[prost(bool, tag="13")]
5045 pub bypass_transcoding: bool,
5046 #[prost(bool, optional, tag="15")]
5047 pub enable_transcoding: ::core::option::Option<bool>,
5048 #[prost(message, optional, tag="6")]
5049 pub audio: ::core::option::Option<IngressAudioOptions>,
5050 #[prost(message, optional, tag="7")]
5051 pub video: ::core::option::Option<IngressVideoOptions>,
5052 #[prost(string, tag="8")]
5053 pub room_name: ::prost::alloc::string::String,
5054 #[prost(string, tag="9")]
5055 pub participant_identity: ::prost::alloc::string::String,
5056 #[prost(string, tag="10")]
5057 pub participant_name: ::prost::alloc::string::String,
5058 #[prost(string, tag="14")]
5059 pub participant_metadata: ::prost::alloc::string::String,
5060 #[prost(bool, tag="11")]
5061 pub reusable: bool,
5062 #[prost(message, optional, tag="12")]
5064 pub state: ::core::option::Option<IngressState>,
5065 #[prost(bool, optional, tag="16")]
5067 pub enabled: ::core::option::Option<bool>,
5068}
5069#[allow(clippy::derive_partial_eq_without_eq)]
5070#[derive(Clone, PartialEq, ::prost::Message)]
5071pub struct IngressState {
5072 #[prost(enumeration="ingress_state::Status", tag="1")]
5073 pub status: i32,
5074 #[prost(string, tag="2")]
5076 pub error: ::prost::alloc::string::String,
5077 #[prost(message, optional, tag="3")]
5078 pub video: ::core::option::Option<InputVideoState>,
5079 #[prost(message, optional, tag="4")]
5080 pub audio: ::core::option::Option<InputAudioState>,
5081 #[prost(string, tag="5")]
5083 pub room_id: ::prost::alloc::string::String,
5084 #[prost(int64, tag="7")]
5085 pub started_at: i64,
5086 #[prost(int64, tag="8")]
5087 pub ended_at: i64,
5088 #[prost(int64, tag="10")]
5089 pub updated_at: i64,
5090 #[prost(string, tag="9")]
5091 pub resource_id: ::prost::alloc::string::String,
5092 #[prost(message, repeated, tag="6")]
5093 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
5094}
5095pub mod ingress_state {
5097 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5098 #[repr(i32)]
5099 pub enum Status {
5100 EndpointInactive = 0,
5101 EndpointBuffering = 1,
5102 EndpointPublishing = 2,
5103 EndpointError = 3,
5104 EndpointComplete = 4,
5105 }
5106 impl Status {
5107 pub fn as_str_name(&self) -> &'static str {
5112 match self {
5113 Status::EndpointInactive => "ENDPOINT_INACTIVE",
5114 Status::EndpointBuffering => "ENDPOINT_BUFFERING",
5115 Status::EndpointPublishing => "ENDPOINT_PUBLISHING",
5116 Status::EndpointError => "ENDPOINT_ERROR",
5117 Status::EndpointComplete => "ENDPOINT_COMPLETE",
5118 }
5119 }
5120 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5122 match value {
5123 "ENDPOINT_INACTIVE" => Some(Self::EndpointInactive),
5124 "ENDPOINT_BUFFERING" => Some(Self::EndpointBuffering),
5125 "ENDPOINT_PUBLISHING" => Some(Self::EndpointPublishing),
5126 "ENDPOINT_ERROR" => Some(Self::EndpointError),
5127 "ENDPOINT_COMPLETE" => Some(Self::EndpointComplete),
5128 _ => None,
5129 }
5130 }
5131 }
5132}
5133#[allow(clippy::derive_partial_eq_without_eq)]
5134#[derive(Clone, PartialEq, ::prost::Message)]
5135pub struct InputVideoState {
5136 #[prost(string, tag="1")]
5137 pub mime_type: ::prost::alloc::string::String,
5138 #[prost(uint32, tag="2")]
5139 pub average_bitrate: u32,
5140 #[prost(uint32, tag="3")]
5141 pub width: u32,
5142 #[prost(uint32, tag="4")]
5143 pub height: u32,
5144 #[prost(double, tag="5")]
5145 pub framerate: f64,
5146}
5147#[allow(clippy::derive_partial_eq_without_eq)]
5148#[derive(Clone, PartialEq, ::prost::Message)]
5149pub struct InputAudioState {
5150 #[prost(string, tag="1")]
5151 pub mime_type: ::prost::alloc::string::String,
5152 #[prost(uint32, tag="2")]
5153 pub average_bitrate: u32,
5154 #[prost(uint32, tag="3")]
5155 pub channels: u32,
5156 #[prost(uint32, tag="4")]
5157 pub sample_rate: u32,
5158}
5159#[allow(clippy::derive_partial_eq_without_eq)]
5160#[derive(Clone, PartialEq, ::prost::Message)]
5161pub struct UpdateIngressRequest {
5162 #[prost(string, tag="1")]
5163 pub ingress_id: ::prost::alloc::string::String,
5164 #[prost(string, tag="2")]
5165 pub name: ::prost::alloc::string::String,
5166 #[prost(string, tag="3")]
5167 pub room_name: ::prost::alloc::string::String,
5168 #[prost(string, tag="4")]
5169 pub participant_identity: ::prost::alloc::string::String,
5170 #[prost(string, tag="5")]
5171 pub participant_name: ::prost::alloc::string::String,
5172 #[prost(string, tag="9")]
5173 pub participant_metadata: ::prost::alloc::string::String,
5174 #[deprecated]
5175 #[prost(bool, optional, tag="8")]
5176 pub bypass_transcoding: ::core::option::Option<bool>,
5177 #[prost(bool, optional, tag="10")]
5178 pub enable_transcoding: ::core::option::Option<bool>,
5179 #[prost(message, optional, tag="6")]
5180 pub audio: ::core::option::Option<IngressAudioOptions>,
5181 #[prost(message, optional, tag="7")]
5182 pub video: ::core::option::Option<IngressVideoOptions>,
5183 #[prost(bool, optional, tag="11")]
5185 pub enabled: ::core::option::Option<bool>,
5186}
5187#[allow(clippy::derive_partial_eq_without_eq)]
5188#[derive(Clone, PartialEq, ::prost::Message)]
5189pub struct ListIngressRequest {
5190 #[prost(message, optional, tag="3")]
5191 pub page_token: ::core::option::Option<TokenPagination>,
5192 #[prost(string, tag="1")]
5196 pub room_name: ::prost::alloc::string::String,
5197 #[prost(string, tag="2")]
5199 pub ingress_id: ::prost::alloc::string::String,
5200}
5201#[allow(clippy::derive_partial_eq_without_eq)]
5202#[derive(Clone, PartialEq, ::prost::Message)]
5203pub struct ListIngressResponse {
5204 #[prost(message, optional, tag="2")]
5205 pub next_page_token: ::core::option::Option<TokenPagination>,
5206 #[prost(message, repeated, tag="1")]
5208 pub items: ::prost::alloc::vec::Vec<IngressInfo>,
5209}
5210#[allow(clippy::derive_partial_eq_without_eq)]
5211#[derive(Clone, PartialEq, ::prost::Message)]
5212pub struct DeleteIngressRequest {
5213 #[prost(string, tag="1")]
5214 pub ingress_id: ::prost::alloc::string::String,
5215}
5216#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5217#[repr(i32)]
5218pub enum IngressInput {
5219 RtmpInput = 0,
5220 WhipInput = 1,
5221 UrlInput = 2,
5223}
5224impl IngressInput {
5225 pub fn as_str_name(&self) -> &'static str {
5230 match self {
5231 IngressInput::RtmpInput => "RTMP_INPUT",
5232 IngressInput::WhipInput => "WHIP_INPUT",
5233 IngressInput::UrlInput => "URL_INPUT",
5234 }
5235 }
5236 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5238 match value {
5239 "RTMP_INPUT" => Some(Self::RtmpInput),
5240 "WHIP_INPUT" => Some(Self::WhipInput),
5241 "URL_INPUT" => Some(Self::UrlInput),
5242 _ => None,
5243 }
5244 }
5245}
5246#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5247#[repr(i32)]
5248pub enum IngressAudioEncodingPreset {
5249 OpusStereo96kbps = 0,
5251 OpusMono64kbs = 1,
5253}
5254impl IngressAudioEncodingPreset {
5255 pub fn as_str_name(&self) -> &'static str {
5260 match self {
5261 IngressAudioEncodingPreset::OpusStereo96kbps => "OPUS_STEREO_96KBPS",
5262 IngressAudioEncodingPreset::OpusMono64kbs => "OPUS_MONO_64KBS",
5263 }
5264 }
5265 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5267 match value {
5268 "OPUS_STEREO_96KBPS" => Some(Self::OpusStereo96kbps),
5269 "OPUS_MONO_64KBS" => Some(Self::OpusMono64kbs),
5270 _ => None,
5271 }
5272 }
5273}
5274#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5275#[repr(i32)]
5276pub enum IngressVideoEncodingPreset {
5277 H264720p30fps3Layers = 0,
5279 H2641080p30fps3Layers = 1,
5281 H264540p25fps2Layers = 2,
5283 H264720p30fps1Layer = 3,
5285 H2641080p30fps1Layer = 4,
5287 H264720p30fps3LayersHighMotion = 5,
5289 H2641080p30fps3LayersHighMotion = 6,
5291 H264540p25fps2LayersHighMotion = 7,
5293 H264720p30fps1LayerHighMotion = 8,
5295 H2641080p30fps1LayerHighMotion = 9,
5297}
5298impl IngressVideoEncodingPreset {
5299 pub fn as_str_name(&self) -> &'static str {
5304 match self {
5305 IngressVideoEncodingPreset::H264720p30fps3Layers => "H264_720P_30FPS_3_LAYERS",
5306 IngressVideoEncodingPreset::H2641080p30fps3Layers => "H264_1080P_30FPS_3_LAYERS",
5307 IngressVideoEncodingPreset::H264540p25fps2Layers => "H264_540P_25FPS_2_LAYERS",
5308 IngressVideoEncodingPreset::H264720p30fps1Layer => "H264_720P_30FPS_1_LAYER",
5309 IngressVideoEncodingPreset::H2641080p30fps1Layer => "H264_1080P_30FPS_1_LAYER",
5310 IngressVideoEncodingPreset::H264720p30fps3LayersHighMotion => "H264_720P_30FPS_3_LAYERS_HIGH_MOTION",
5311 IngressVideoEncodingPreset::H2641080p30fps3LayersHighMotion => "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION",
5312 IngressVideoEncodingPreset::H264540p25fps2LayersHighMotion => "H264_540P_25FPS_2_LAYERS_HIGH_MOTION",
5313 IngressVideoEncodingPreset::H264720p30fps1LayerHighMotion => "H264_720P_30FPS_1_LAYER_HIGH_MOTION",
5314 IngressVideoEncodingPreset::H2641080p30fps1LayerHighMotion => "H264_1080P_30FPS_1_LAYER_HIGH_MOTION",
5315 }
5316 }
5317 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5319 match value {
5320 "H264_720P_30FPS_3_LAYERS" => Some(Self::H264720p30fps3Layers),
5321 "H264_1080P_30FPS_3_LAYERS" => Some(Self::H2641080p30fps3Layers),
5322 "H264_540P_25FPS_2_LAYERS" => Some(Self::H264540p25fps2Layers),
5323 "H264_720P_30FPS_1_LAYER" => Some(Self::H264720p30fps1Layer),
5324 "H264_1080P_30FPS_1_LAYER" => Some(Self::H2641080p30fps1Layer),
5325 "H264_720P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H264720p30fps3LayersHighMotion),
5326 "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H2641080p30fps3LayersHighMotion),
5327 "H264_540P_25FPS_2_LAYERS_HIGH_MOTION" => Some(Self::H264540p25fps2LayersHighMotion),
5328 "H264_720P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H264720p30fps1LayerHighMotion),
5329 "H264_1080P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H2641080p30fps1LayerHighMotion),
5330 _ => None,
5331 }
5332 }
5333}
5334#[allow(clippy::derive_partial_eq_without_eq)]
5335#[derive(Clone, PartialEq, ::prost::Message)]
5336pub struct WebhookEvent {
5337 #[prost(string, tag="1")]
5341 pub event: ::prost::alloc::string::String,
5342 #[prost(message, optional, tag="2")]
5343 pub room: ::core::option::Option<Room>,
5344 #[prost(message, optional, tag="3")]
5346 pub participant: ::core::option::Option<ParticipantInfo>,
5347 #[prost(message, optional, tag="9")]
5349 pub egress_info: ::core::option::Option<EgressInfo>,
5350 #[prost(message, optional, tag="10")]
5352 pub ingress_info: ::core::option::Option<IngressInfo>,
5353 #[prost(message, optional, tag="8")]
5355 pub track: ::core::option::Option<TrackInfo>,
5356 #[prost(string, tag="6")]
5358 pub id: ::prost::alloc::string::String,
5359 #[prost(int64, tag="7")]
5361 pub created_at: i64,
5362 #[deprecated]
5363 #[prost(int32, tag="11")]
5364 pub num_dropped: i32,
5365}
5366#[allow(clippy::derive_partial_eq_without_eq)]
5368#[derive(Clone, PartialEq, ::prost::Message)]
5369pub struct SipStatus {
5370 #[prost(enumeration="SipStatusCode", tag="1")]
5371 pub code: i32,
5372 #[prost(string, tag="2")]
5373 pub status: ::prost::alloc::string::String,
5374}
5375#[allow(clippy::derive_partial_eq_without_eq)]
5376#[derive(Clone, PartialEq, ::prost::Message)]
5377pub struct CreateSipTrunkRequest {
5378 #[prost(string, repeated, tag="1")]
5381 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5382 #[prost(string, tag="2")]
5384 pub outbound_address: ::prost::alloc::string::String,
5385 #[prost(string, tag="3")]
5387 pub outbound_number: ::prost::alloc::string::String,
5388 #[deprecated]
5389 #[prost(string, repeated, tag="4")]
5390 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5391 #[prost(string, repeated, tag="9")]
5395 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5396 #[prost(string, tag="5")]
5399 pub inbound_username: ::prost::alloc::string::String,
5400 #[prost(string, tag="6")]
5401 pub inbound_password: ::prost::alloc::string::String,
5402 #[prost(string, tag="7")]
5403 pub outbound_username: ::prost::alloc::string::String,
5404 #[prost(string, tag="8")]
5405 pub outbound_password: ::prost::alloc::string::String,
5406 #[prost(string, tag="10")]
5408 pub name: ::prost::alloc::string::String,
5409 #[prost(string, tag="11")]
5411 pub metadata: ::prost::alloc::string::String,
5412}
5413#[allow(clippy::derive_partial_eq_without_eq)]
5414#[derive(Clone, PartialEq, ::prost::Message)]
5415pub struct ProviderInfo {
5416 #[prost(string, tag="1")]
5417 pub id: ::prost::alloc::string::String,
5418 #[prost(string, tag="2")]
5419 pub name: ::prost::alloc::string::String,
5420 #[prost(enumeration="ProviderType", tag="3")]
5421 pub r#type: i32,
5422 #[prost(bool, tag="4")]
5423 pub prevent_transfer: bool,
5424}
5425#[allow(clippy::derive_partial_eq_without_eq)]
5426#[derive(Clone, PartialEq, ::prost::Message)]
5427pub struct SipTrunkInfo {
5428 #[prost(string, tag="1")]
5429 pub sip_trunk_id: ::prost::alloc::string::String,
5430 #[prost(enumeration="sip_trunk_info::TrunkKind", tag="14")]
5431 pub kind: i32,
5432 #[prost(string, repeated, tag="2")]
5435 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5436 #[prost(string, tag="3")]
5438 pub outbound_address: ::prost::alloc::string::String,
5439 #[prost(string, tag="4")]
5441 pub outbound_number: ::prost::alloc::string::String,
5442 #[prost(enumeration="SipTransport", tag="13")]
5444 pub transport: i32,
5445 #[deprecated]
5446 #[prost(string, repeated, tag="5")]
5447 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5448 #[prost(string, repeated, tag="10")]
5452 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5453 #[prost(string, tag="6")]
5456 pub inbound_username: ::prost::alloc::string::String,
5457 #[prost(string, tag="7")]
5458 pub inbound_password: ::prost::alloc::string::String,
5459 #[prost(string, tag="8")]
5460 pub outbound_username: ::prost::alloc::string::String,
5461 #[prost(string, tag="9")]
5462 pub outbound_password: ::prost::alloc::string::String,
5463 #[prost(string, tag="11")]
5465 pub name: ::prost::alloc::string::String,
5466 #[prost(string, tag="12")]
5468 pub metadata: ::prost::alloc::string::String,
5469}
5470pub mod sip_trunk_info {
5472 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5473 #[repr(i32)]
5474 pub enum TrunkKind {
5475 TrunkLegacy = 0,
5476 TrunkInbound = 1,
5477 TrunkOutbound = 2,
5478 }
5479 impl TrunkKind {
5480 pub fn as_str_name(&self) -> &'static str {
5485 match self {
5486 TrunkKind::TrunkLegacy => "TRUNK_LEGACY",
5487 TrunkKind::TrunkInbound => "TRUNK_INBOUND",
5488 TrunkKind::TrunkOutbound => "TRUNK_OUTBOUND",
5489 }
5490 }
5491 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5493 match value {
5494 "TRUNK_LEGACY" => Some(Self::TrunkLegacy),
5495 "TRUNK_INBOUND" => Some(Self::TrunkInbound),
5496 "TRUNK_OUTBOUND" => Some(Self::TrunkOutbound),
5497 _ => None,
5498 }
5499 }
5500 }
5501}
5502#[allow(clippy::derive_partial_eq_without_eq)]
5503#[derive(Clone, PartialEq, ::prost::Message)]
5504pub struct CreateSipInboundTrunkRequest {
5505 #[prost(message, optional, tag="1")]
5507 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
5508}
5509#[allow(clippy::derive_partial_eq_without_eq)]
5510#[derive(Clone, PartialEq, ::prost::Message)]
5511pub struct UpdateSipInboundTrunkRequest {
5512 #[prost(string, tag="1")]
5513 pub sip_trunk_id: ::prost::alloc::string::String,
5514 #[prost(oneof="update_sip_inbound_trunk_request::Action", tags="2, 3")]
5515 pub action: ::core::option::Option<update_sip_inbound_trunk_request::Action>,
5516}
5517pub mod update_sip_inbound_trunk_request {
5519 #[allow(clippy::derive_partial_eq_without_eq)]
5520#[derive(Clone, PartialEq, ::prost::Oneof)]
5521 pub enum Action {
5522 #[prost(message, tag="2")]
5523 Replace(super::SipInboundTrunkInfo),
5524 #[prost(message, tag="3")]
5525 Update(super::SipInboundTrunkUpdate),
5526 }
5527}
5528#[allow(clippy::derive_partial_eq_without_eq)]
5529#[derive(Clone, PartialEq, ::prost::Message)]
5530pub struct SipInboundTrunkInfo {
5531 #[prost(string, tag="1")]
5532 pub sip_trunk_id: ::prost::alloc::string::String,
5533 #[prost(string, tag="2")]
5535 pub name: ::prost::alloc::string::String,
5536 #[prost(string, tag="3")]
5538 pub metadata: ::prost::alloc::string::String,
5539 #[prost(string, repeated, tag="4")]
5542 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5543 #[prost(string, repeated, tag="5")]
5546 pub allowed_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5547 #[prost(string, repeated, tag="6")]
5550 pub allowed_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5551 #[prost(string, tag="7")]
5554 pub auth_username: ::prost::alloc::string::String,
5555 #[prost(string, tag="8")]
5556 pub auth_password: ::prost::alloc::string::String,
5557 #[prost(map="string, string", tag="9")]
5559 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5560 #[prost(map="string, string", tag="10")]
5562 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5563 #[prost(map="string, string", tag="14")]
5566 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5567 #[prost(enumeration="SipHeaderOptions", tag="15")]
5574 pub include_headers: i32,
5575 #[prost(message, optional, tag="11")]
5577 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
5578 #[prost(message, optional, tag="12")]
5580 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
5581 #[prost(bool, tag="13")]
5582 pub krisp_enabled: bool,
5583 #[prost(enumeration="SipMediaEncryption", tag="16")]
5584 pub media_encryption: i32,
5585 #[prost(message, optional, tag="17")]
5586 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
5587 #[prost(message, optional, tag="18")]
5588 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
5589}
5590#[allow(clippy::derive_partial_eq_without_eq)]
5591#[derive(Clone, PartialEq, ::prost::Message)]
5592pub struct SipInboundTrunkUpdate {
5593 #[prost(message, optional, tag="1")]
5594 pub numbers: ::core::option::Option<ListUpdate>,
5595 #[prost(message, optional, tag="2")]
5596 pub allowed_addresses: ::core::option::Option<ListUpdate>,
5597 #[prost(message, optional, tag="3")]
5598 pub allowed_numbers: ::core::option::Option<ListUpdate>,
5599 #[prost(string, optional, tag="4")]
5600 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
5601 #[prost(string, optional, tag="5")]
5602 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
5603 #[prost(string, optional, tag="6")]
5604 pub name: ::core::option::Option<::prost::alloc::string::String>,
5605 #[prost(string, optional, tag="7")]
5606 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
5607 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
5608 pub media_encryption: ::core::option::Option<i32>,
5609}
5610#[allow(clippy::derive_partial_eq_without_eq)]
5611#[derive(Clone, PartialEq, ::prost::Message)]
5612pub struct CreateSipOutboundTrunkRequest {
5613 #[prost(message, optional, tag="1")]
5615 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
5616}
5617#[allow(clippy::derive_partial_eq_without_eq)]
5618#[derive(Clone, PartialEq, ::prost::Message)]
5619pub struct UpdateSipOutboundTrunkRequest {
5620 #[prost(string, tag="1")]
5621 pub sip_trunk_id: ::prost::alloc::string::String,
5622 #[prost(oneof="update_sip_outbound_trunk_request::Action", tags="2, 3")]
5623 pub action: ::core::option::Option<update_sip_outbound_trunk_request::Action>,
5624}
5625pub mod update_sip_outbound_trunk_request {
5627 #[allow(clippy::derive_partial_eq_without_eq)]
5628#[derive(Clone, PartialEq, ::prost::Oneof)]
5629 pub enum Action {
5630 #[prost(message, tag="2")]
5631 Replace(super::SipOutboundTrunkInfo),
5632 #[prost(message, tag="3")]
5633 Update(super::SipOutboundTrunkUpdate),
5634 }
5635}
5636#[allow(clippy::derive_partial_eq_without_eq)]
5637#[derive(Clone, PartialEq, ::prost::Message)]
5638pub struct SipOutboundTrunkInfo {
5639 #[prost(string, tag="1")]
5640 pub sip_trunk_id: ::prost::alloc::string::String,
5641 #[prost(string, tag="2")]
5643 pub name: ::prost::alloc::string::String,
5644 #[prost(string, tag="3")]
5646 pub metadata: ::prost::alloc::string::String,
5647 #[prost(string, tag="4")]
5650 pub address: ::prost::alloc::string::String,
5651 #[prost(string, tag="14")]
5653 pub destination_country: ::prost::alloc::string::String,
5654 #[prost(enumeration="SipTransport", tag="5")]
5656 pub transport: i32,
5657 #[prost(string, repeated, tag="6")]
5659 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5660 #[prost(string, tag="7")]
5663 pub auth_username: ::prost::alloc::string::String,
5664 #[prost(string, tag="8")]
5665 pub auth_password: ::prost::alloc::string::String,
5666 #[prost(map="string, string", tag="9")]
5669 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5670 #[prost(map="string, string", tag="10")]
5673 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5674 #[prost(map="string, string", tag="11")]
5677 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5678 #[prost(enumeration="SipHeaderOptions", tag="12")]
5685 pub include_headers: i32,
5686 #[prost(enumeration="SipMediaEncryption", tag="13")]
5687 pub media_encryption: i32,
5688 #[prost(string, tag="15")]
5692 pub from_host: ::prost::alloc::string::String,
5693 #[prost(message, optional, tag="16")]
5694 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
5695 #[prost(message, optional, tag="17")]
5696 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
5697}
5698#[allow(clippy::derive_partial_eq_without_eq)]
5699#[derive(Clone, PartialEq, ::prost::Message)]
5700pub struct SipOutboundTrunkUpdate {
5701 #[prost(string, optional, tag="1")]
5702 pub address: ::core::option::Option<::prost::alloc::string::String>,
5703 #[prost(enumeration="SipTransport", optional, tag="2")]
5704 pub transport: ::core::option::Option<i32>,
5705 #[prost(string, optional, tag="9")]
5706 pub destination_country: ::core::option::Option<::prost::alloc::string::String>,
5707 #[prost(message, optional, tag="3")]
5708 pub numbers: ::core::option::Option<ListUpdate>,
5709 #[prost(string, optional, tag="4")]
5710 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
5711 #[prost(string, optional, tag="5")]
5712 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
5713 #[prost(string, optional, tag="6")]
5714 pub name: ::core::option::Option<::prost::alloc::string::String>,
5715 #[prost(string, optional, tag="7")]
5716 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
5717 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
5718 pub media_encryption: ::core::option::Option<i32>,
5719 #[prost(string, optional, tag="10")]
5720 pub from_host: ::core::option::Option<::prost::alloc::string::String>,
5721}
5722#[allow(clippy::derive_partial_eq_without_eq)]
5723#[derive(Clone, PartialEq, ::prost::Message)]
5724pub struct GetSipInboundTrunkRequest {
5725 #[prost(string, tag="1")]
5726 pub sip_trunk_id: ::prost::alloc::string::String,
5727}
5728#[allow(clippy::derive_partial_eq_without_eq)]
5729#[derive(Clone, PartialEq, ::prost::Message)]
5730pub struct GetSipInboundTrunkResponse {
5731 #[prost(message, optional, tag="1")]
5732 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
5733}
5734#[allow(clippy::derive_partial_eq_without_eq)]
5735#[derive(Clone, PartialEq, ::prost::Message)]
5736pub struct GetSipOutboundTrunkRequest {
5737 #[prost(string, tag="1")]
5738 pub sip_trunk_id: ::prost::alloc::string::String,
5739}
5740#[allow(clippy::derive_partial_eq_without_eq)]
5741#[derive(Clone, PartialEq, ::prost::Message)]
5742pub struct GetSipOutboundTrunkResponse {
5743 #[prost(message, optional, tag="1")]
5744 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
5745}
5746#[allow(clippy::derive_partial_eq_without_eq)]
5747#[derive(Clone, PartialEq, ::prost::Message)]
5748pub struct ListSipTrunkRequest {
5749 #[prost(message, optional, tag="1")]
5750 pub page: ::core::option::Option<Pagination>,
5751}
5752#[allow(clippy::derive_partial_eq_without_eq)]
5753#[derive(Clone, PartialEq, ::prost::Message)]
5754pub struct ListSipTrunkResponse {
5755 #[prost(message, repeated, tag="1")]
5756 pub items: ::prost::alloc::vec::Vec<SipTrunkInfo>,
5757}
5758#[allow(clippy::derive_partial_eq_without_eq)]
5760#[derive(Clone, PartialEq, ::prost::Message)]
5761pub struct ListSipInboundTrunkRequest {
5762 #[prost(message, optional, tag="3")]
5763 pub page: ::core::option::Option<Pagination>,
5764 #[prost(string, repeated, tag="1")]
5767 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5768 #[prost(string, repeated, tag="2")]
5770 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5771}
5772#[allow(clippy::derive_partial_eq_without_eq)]
5773#[derive(Clone, PartialEq, ::prost::Message)]
5774pub struct ListSipInboundTrunkResponse {
5775 #[prost(message, repeated, tag="1")]
5776 pub items: ::prost::alloc::vec::Vec<SipInboundTrunkInfo>,
5777}
5778#[allow(clippy::derive_partial_eq_without_eq)]
5780#[derive(Clone, PartialEq, ::prost::Message)]
5781pub struct ListSipOutboundTrunkRequest {
5782 #[prost(message, optional, tag="3")]
5783 pub page: ::core::option::Option<Pagination>,
5784 #[prost(string, repeated, tag="1")]
5787 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5788 #[prost(string, repeated, tag="2")]
5790 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5791}
5792#[allow(clippy::derive_partial_eq_without_eq)]
5793#[derive(Clone, PartialEq, ::prost::Message)]
5794pub struct ListSipOutboundTrunkResponse {
5795 #[prost(message, repeated, tag="1")]
5796 pub items: ::prost::alloc::vec::Vec<SipOutboundTrunkInfo>,
5797}
5798#[allow(clippy::derive_partial_eq_without_eq)]
5799#[derive(Clone, PartialEq, ::prost::Message)]
5800pub struct DeleteSipTrunkRequest {
5801 #[prost(string, tag="1")]
5802 pub sip_trunk_id: ::prost::alloc::string::String,
5803}
5804#[allow(clippy::derive_partial_eq_without_eq)]
5805#[derive(Clone, PartialEq, ::prost::Message)]
5806pub struct SipDispatchRuleDirect {
5807 #[prost(string, tag="1")]
5809 pub room_name: ::prost::alloc::string::String,
5810 #[prost(string, tag="2")]
5812 pub pin: ::prost::alloc::string::String,
5813}
5814#[allow(clippy::derive_partial_eq_without_eq)]
5815#[derive(Clone, PartialEq, ::prost::Message)]
5816pub struct SipDispatchRuleIndividual {
5817 #[prost(string, tag="1")]
5819 pub room_prefix: ::prost::alloc::string::String,
5820 #[prost(string, tag="2")]
5822 pub pin: ::prost::alloc::string::String,
5823 #[prost(bool, tag="3")]
5825 pub no_randomness: bool,
5826}
5827#[allow(clippy::derive_partial_eq_without_eq)]
5828#[derive(Clone, PartialEq, ::prost::Message)]
5829pub struct SipDispatchRuleCallee {
5830 #[prost(string, tag="1")]
5832 pub room_prefix: ::prost::alloc::string::String,
5833 #[prost(string, tag="2")]
5835 pub pin: ::prost::alloc::string::String,
5836 #[prost(bool, tag="3")]
5838 pub randomize: bool,
5839}
5840#[allow(clippy::derive_partial_eq_without_eq)]
5841#[derive(Clone, PartialEq, ::prost::Message)]
5842pub struct SipDispatchRule {
5843 #[prost(oneof="sip_dispatch_rule::Rule", tags="1, 2, 3")]
5844 pub rule: ::core::option::Option<sip_dispatch_rule::Rule>,
5845}
5846pub mod sip_dispatch_rule {
5848 #[allow(clippy::derive_partial_eq_without_eq)]
5849#[derive(Clone, PartialEq, ::prost::Oneof)]
5850 pub enum Rule {
5851 #[prost(message, tag="1")]
5855 DispatchRuleDirect(super::SipDispatchRuleDirect),
5856 #[prost(message, tag="2")]
5858 DispatchRuleIndividual(super::SipDispatchRuleIndividual),
5859 #[prost(message, tag="3")]
5861 DispatchRuleCallee(super::SipDispatchRuleCallee),
5862 }
5863}
5864#[allow(clippy::derive_partial_eq_without_eq)]
5865#[derive(Clone, PartialEq, ::prost::Message)]
5866pub struct CreateSipDispatchRuleRequest {
5867 #[prost(message, optional, tag="10")]
5869 pub dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
5870 #[deprecated]
5871 #[prost(message, optional, tag="1")]
5872 pub rule: ::core::option::Option<SipDispatchRule>,
5873 #[deprecated]
5876 #[prost(string, repeated, tag="2")]
5877 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5878 #[deprecated]
5881 #[prost(bool, tag="3")]
5882 pub hide_phone_number: bool,
5883 #[deprecated]
5885 #[prost(string, repeated, tag="6")]
5886 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5887 #[deprecated]
5889 #[prost(string, tag="4")]
5890 pub name: ::prost::alloc::string::String,
5891 #[deprecated]
5894 #[prost(string, tag="5")]
5895 pub metadata: ::prost::alloc::string::String,
5896 #[prost(map="string, string", tag="7")]
5899 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5900 #[deprecated]
5902 #[prost(string, tag="8")]
5903 pub room_preset: ::prost::alloc::string::String,
5904 #[deprecated]
5906 #[prost(message, optional, tag="9")]
5907 pub room_config: ::core::option::Option<RoomConfiguration>,
5908}
5909#[allow(clippy::derive_partial_eq_without_eq)]
5910#[derive(Clone, PartialEq, ::prost::Message)]
5911pub struct UpdateSipDispatchRuleRequest {
5912 #[prost(string, tag="1")]
5913 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
5914 #[prost(oneof="update_sip_dispatch_rule_request::Action", tags="2, 3")]
5915 pub action: ::core::option::Option<update_sip_dispatch_rule_request::Action>,
5916}
5917pub mod update_sip_dispatch_rule_request {
5919 #[allow(clippy::derive_partial_eq_without_eq)]
5920#[derive(Clone, PartialEq, ::prost::Oneof)]
5921 pub enum Action {
5922 #[prost(message, tag="2")]
5923 Replace(super::SipDispatchRuleInfo),
5924 #[prost(message, tag="3")]
5925 Update(super::SipDispatchRuleUpdate),
5926 }
5927}
5928#[allow(clippy::derive_partial_eq_without_eq)]
5929#[derive(Clone, PartialEq, ::prost::Message)]
5930pub struct SipDispatchRuleInfo {
5931 #[prost(string, tag="1")]
5932 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
5933 #[prost(message, optional, tag="2")]
5934 pub rule: ::core::option::Option<SipDispatchRule>,
5935 #[prost(string, repeated, tag="3")]
5936 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5937 #[prost(bool, tag="4")]
5938 pub hide_phone_number: bool,
5939 #[prost(string, repeated, tag="7")]
5941 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5942 #[prost(string, repeated, tag="13")]
5944 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5945 #[prost(string, tag="5")]
5947 pub name: ::prost::alloc::string::String,
5948 #[prost(string, tag="6")]
5951 pub metadata: ::prost::alloc::string::String,
5952 #[prost(map="string, string", tag="8")]
5955 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5956 #[prost(string, tag="9")]
5958 pub room_preset: ::prost::alloc::string::String,
5959 #[prost(message, optional, tag="10")]
5961 pub room_config: ::core::option::Option<RoomConfiguration>,
5962 #[prost(bool, tag="11")]
5963 pub krisp_enabled: bool,
5964 #[prost(enumeration="SipMediaEncryption", tag="12")]
5965 pub media_encryption: i32,
5966 #[prost(message, optional, tag="14")]
5967 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
5968 #[prost(message, optional, tag="15")]
5969 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
5970}
5971#[allow(clippy::derive_partial_eq_without_eq)]
5972#[derive(Clone, PartialEq, ::prost::Message)]
5973pub struct SipDispatchRuleUpdate {
5974 #[prost(message, optional, tag="1")]
5975 pub trunk_ids: ::core::option::Option<ListUpdate>,
5976 #[prost(message, optional, tag="2")]
5977 pub rule: ::core::option::Option<SipDispatchRule>,
5978 #[prost(string, optional, tag="3")]
5979 pub name: ::core::option::Option<::prost::alloc::string::String>,
5980 #[prost(string, optional, tag="4")]
5981 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
5982 #[prost(map="string, string", tag="5")]
5983 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5984 #[prost(enumeration="SipMediaEncryption", optional, tag="6")]
5985 pub media_encryption: ::core::option::Option<i32>,
5986}
5987#[allow(clippy::derive_partial_eq_without_eq)]
5989#[derive(Clone, PartialEq, ::prost::Message)]
5990pub struct ListSipDispatchRuleRequest {
5991 #[prost(message, optional, tag="3")]
5992 pub page: ::core::option::Option<Pagination>,
5993 #[prost(string, repeated, tag="1")]
5996 pub dispatch_rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5997 #[prost(string, repeated, tag="2")]
5999 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6000}
6001#[allow(clippy::derive_partial_eq_without_eq)]
6002#[derive(Clone, PartialEq, ::prost::Message)]
6003pub struct ListSipDispatchRuleResponse {
6004 #[prost(message, repeated, tag="1")]
6005 pub items: ::prost::alloc::vec::Vec<SipDispatchRuleInfo>,
6006}
6007#[allow(clippy::derive_partial_eq_without_eq)]
6008#[derive(Clone, PartialEq, ::prost::Message)]
6009pub struct DeleteSipDispatchRuleRequest {
6010 #[prost(string, tag="1")]
6011 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6012}
6013#[allow(clippy::derive_partial_eq_without_eq)]
6014#[derive(Clone, PartialEq, ::prost::Message)]
6015pub struct SipOutboundConfig {
6016 #[prost(string, tag="1")]
6018 pub hostname: ::prost::alloc::string::String,
6019 #[prost(string, tag="7")]
6021 pub destination_country: ::prost::alloc::string::String,
6022 #[prost(enumeration="SipTransport", tag="2")]
6024 pub transport: i32,
6025 #[prost(string, tag="3")]
6028 pub auth_username: ::prost::alloc::string::String,
6029 #[prost(string, tag="4")]
6030 pub auth_password: ::prost::alloc::string::String,
6031 #[prost(map="string, string", tag="5")]
6034 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6035 #[prost(map="string, string", tag="6")]
6038 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6039 #[prost(string, tag="8")]
6041 pub from_host: ::prost::alloc::string::String,
6042}
6043#[allow(clippy::derive_partial_eq_without_eq)]
6046#[derive(Clone, PartialEq, ::prost::Message)]
6047pub struct CreateSipParticipantRequest {
6048 #[prost(string, tag="1")]
6050 pub sip_trunk_id: ::prost::alloc::string::String,
6051 #[prost(message, optional, tag="20")]
6052 pub trunk: ::core::option::Option<SipOutboundConfig>,
6053 #[prost(string, tag="2")]
6055 pub sip_call_to: ::prost::alloc::string::String,
6056 #[prost(string, tag="15")]
6058 pub sip_number: ::prost::alloc::string::String,
6059 #[prost(string, tag="3")]
6061 pub room_name: ::prost::alloc::string::String,
6062 #[prost(string, tag="4")]
6064 pub participant_identity: ::prost::alloc::string::String,
6065 #[prost(string, tag="7")]
6067 pub participant_name: ::prost::alloc::string::String,
6068 #[prost(string, tag="8")]
6070 pub participant_metadata: ::prost::alloc::string::String,
6071 #[prost(map="string, string", tag="9")]
6073 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6074 #[prost(string, tag="5")]
6077 pub dtmf: ::prost::alloc::string::String,
6078 #[deprecated]
6080 #[prost(bool, tag="6")]
6081 pub play_ringtone: bool,
6082 #[prost(bool, tag="13")]
6083 pub play_dialtone: bool,
6084 #[prost(bool, tag="10")]
6087 pub hide_phone_number: bool,
6088 #[prost(map="string, string", tag="16")]
6090 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6091 #[prost(enumeration="SipHeaderOptions", tag="17")]
6098 pub include_headers: i32,
6099 #[prost(message, optional, tag="11")]
6101 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6102 #[prost(message, optional, tag="12")]
6104 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
6105 #[prost(bool, tag="14")]
6107 pub krisp_enabled: bool,
6108 #[prost(enumeration="SipMediaEncryption", tag="18")]
6109 pub media_encryption: i32,
6110 #[prost(bool, tag="19")]
6112 pub wait_until_answered: bool,
6113 #[prost(string, optional, tag="21")]
6120 pub display_name: ::core::option::Option<::prost::alloc::string::String>,
6121 #[prost(message, optional, tag="22")]
6123 pub destination: ::core::option::Option<Destination>,
6124}
6125#[allow(clippy::derive_partial_eq_without_eq)]
6126#[derive(Clone, PartialEq, ::prost::Message)]
6127pub struct SipParticipantInfo {
6128 #[prost(string, tag="1")]
6129 pub participant_id: ::prost::alloc::string::String,
6130 #[prost(string, tag="2")]
6131 pub participant_identity: ::prost::alloc::string::String,
6132 #[prost(string, tag="3")]
6133 pub room_name: ::prost::alloc::string::String,
6134 #[prost(string, tag="4")]
6135 pub sip_call_id: ::prost::alloc::string::String,
6136}
6137#[allow(clippy::derive_partial_eq_without_eq)]
6138#[derive(Clone, PartialEq, ::prost::Message)]
6139pub struct TransferSipParticipantRequest {
6140 #[prost(string, tag="1")]
6141 pub participant_identity: ::prost::alloc::string::String,
6142 #[prost(string, tag="2")]
6143 pub room_name: ::prost::alloc::string::String,
6144 #[prost(string, tag="3")]
6145 pub transfer_to: ::prost::alloc::string::String,
6146 #[prost(bool, tag="4")]
6148 pub play_dialtone: bool,
6149 #[prost(map="string, string", tag="5")]
6151 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6152 #[prost(message, optional, tag="6")]
6154 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6155}
6156#[allow(clippy::derive_partial_eq_without_eq)]
6157#[derive(Clone, PartialEq, ::prost::Message)]
6158pub struct SipCallInfo {
6159 #[prost(string, tag="1")]
6160 pub call_id: ::prost::alloc::string::String,
6161 #[prost(string, tag="2")]
6162 pub trunk_id: ::prost::alloc::string::String,
6163 #[prost(string, tag="16")]
6164 pub dispatch_rule_id: ::prost::alloc::string::String,
6165 #[prost(string, tag="17")]
6166 pub region: ::prost::alloc::string::String,
6167 #[prost(string, tag="3")]
6168 pub room_name: ::prost::alloc::string::String,
6169 #[prost(string, tag="4")]
6171 pub room_id: ::prost::alloc::string::String,
6172 #[prost(string, tag="5")]
6173 pub participant_identity: ::prost::alloc::string::String,
6174 #[prost(map="string, string", tag="18")]
6175 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6176 #[prost(message, optional, tag="6")]
6177 pub from_uri: ::core::option::Option<SipUri>,
6178 #[prost(message, optional, tag="7")]
6179 pub to_uri: ::core::option::Option<SipUri>,
6180 #[deprecated]
6181 #[prost(int64, tag="9")]
6182 pub created_at: i64,
6183 #[deprecated]
6184 #[prost(int64, tag="10")]
6185 pub started_at: i64,
6186 #[deprecated]
6187 #[prost(int64, tag="11")]
6188 pub ended_at: i64,
6189 #[prost(enumeration="SipFeature", repeated, tag="14")]
6190 pub enabled_features: ::prost::alloc::vec::Vec<i32>,
6191 #[prost(enumeration="SipCallDirection", tag="15")]
6192 pub call_direction: i32,
6193 #[prost(enumeration="SipCallStatus", tag="8")]
6194 pub call_status: i32,
6195 #[prost(int64, tag="22")]
6196 pub created_at_ns: i64,
6197 #[prost(int64, tag="23")]
6198 pub started_at_ns: i64,
6199 #[prost(int64, tag="24")]
6200 pub ended_at_ns: i64,
6201 #[prost(enumeration="DisconnectReason", tag="12")]
6202 pub disconnect_reason: i32,
6203 #[prost(string, tag="13")]
6204 pub error: ::prost::alloc::string::String,
6205 #[prost(message, optional, tag="19")]
6206 pub call_status_code: ::core::option::Option<SipStatus>,
6207 #[prost(string, tag="20")]
6208 pub audio_codec: ::prost::alloc::string::String,
6209 #[prost(string, tag="21")]
6210 pub media_encryption: ::prost::alloc::string::String,
6211 #[prost(string, tag="25")]
6212 pub pcap_file_link: ::prost::alloc::string::String,
6213 #[prost(message, repeated, tag="26")]
6214 pub call_context: ::prost::alloc::vec::Vec<::pbjson_types::Any>,
6215 #[prost(message, optional, tag="27")]
6216 pub provider_info: ::core::option::Option<ProviderInfo>,
6217 #[prost(string, tag="28")]
6218 pub sip_call_id: ::prost::alloc::string::String,
6219}
6220#[allow(clippy::derive_partial_eq_without_eq)]
6221#[derive(Clone, PartialEq, ::prost::Message)]
6222pub struct SipTransferInfo {
6223 #[prost(string, tag="1")]
6224 pub transfer_id: ::prost::alloc::string::String,
6225 #[prost(string, tag="2")]
6226 pub call_id: ::prost::alloc::string::String,
6227 #[prost(string, tag="3")]
6228 pub transfer_to: ::prost::alloc::string::String,
6229 #[prost(int64, tag="4")]
6230 pub transfer_initiated_at_ns: i64,
6231 #[prost(int64, tag="5")]
6232 pub transfer_completed_at_ns: i64,
6233 #[prost(enumeration="SipTransferStatus", tag="6")]
6234 pub transfer_status: i32,
6235 #[prost(string, tag="7")]
6236 pub error: ::prost::alloc::string::String,
6237 #[prost(message, optional, tag="8")]
6238 pub transfer_status_code: ::core::option::Option<SipStatus>,
6239}
6240#[allow(clippy::derive_partial_eq_without_eq)]
6241#[derive(Clone, PartialEq, ::prost::Message)]
6242pub struct SipUri {
6243 #[prost(string, tag="1")]
6244 pub user: ::prost::alloc::string::String,
6245 #[prost(string, tag="2")]
6246 pub host: ::prost::alloc::string::String,
6247 #[prost(string, tag="3")]
6248 pub ip: ::prost::alloc::string::String,
6249 #[prost(uint32, tag="4")]
6250 pub port: u32,
6251 #[prost(enumeration="SipTransport", tag="5")]
6252 pub transport: i32,
6253}
6254#[allow(clippy::derive_partial_eq_without_eq)]
6255#[derive(Clone, PartialEq, ::prost::Message)]
6256pub struct Destination {
6257 #[prost(string, tag="1")]
6258 pub city: ::prost::alloc::string::String,
6259 #[prost(string, tag="2")]
6260 pub country: ::prost::alloc::string::String,
6261 #[prost(string, tag="3")]
6262 pub region: ::prost::alloc::string::String,
6263}
6264#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6265#[repr(i32)]
6266pub enum SipStatusCode {
6267 SipStatusUnknown = 0,
6268 SipStatusTrying = 100,
6269 SipStatusRinging = 180,
6270 SipStatusCallIsForwarded = 181,
6271 SipStatusQueued = 182,
6272 SipStatusSessionProgress = 183,
6273 SipStatusEarlyDialogTerminated = 199,
6274 SipStatusOk = 200,
6275 SipStatusAccepted = 202,
6276 SipStatusNoNotification = 204,
6277 SipStatusMultipleChoices = 300,
6278 SipStatusMovedPermanently = 301,
6279 SipStatusMovedTemporarily = 302,
6280 SipStatusUseProxy = 305,
6281 SipStatusAlternativeService = 380,
6282 SipStatusBadRequest = 400,
6283 SipStatusUnauthorized = 401,
6284 SipStatusPaymentRequired = 402,
6285 SipStatusForbidden = 403,
6286 SipStatusNotfound = 404,
6287 SipStatusMethodNotAllowed = 405,
6288 SipStatusNotAcceptable = 406,
6289 SipStatusProxyAuthRequired = 407,
6290 SipStatusRequestTimeout = 408,
6291 SipStatusConflict = 409,
6292 SipStatusGone = 410,
6293 SipStatusLengthRequired = 411,
6294 SipStatusConditionalRequestFailed = 412,
6295 SipStatusRequestEntityTooLarge = 413,
6296 SipStatusRequestUriTooLong = 414,
6297 SipStatusUnsupportedMediaType = 415,
6298 SipStatusRequestedRangeNotSatisfiable = 416,
6299 SipStatusUnknownResourcePriority = 417,
6300 SipStatusBadExtension = 420,
6301 SipStatusExtensionRequired = 421,
6302 SipStatusSessionIntervalTooSmall = 422,
6303 SipStatusIntervalTooBrief = 423,
6304 SipStatusBadLocationInformation = 424,
6305 SipStatusBadAlertMessage = 425,
6306 SipStatusUseIdentityHeader = 428,
6307 SipStatusProvideReferrerIdentity = 429,
6308 SipStatusFlowFailed = 430,
6309 SipStatusAnonymityDisallowed = 433,
6310 SipStatusBadIdentityInfo = 436,
6311 SipStatusUnsupportedCertificate = 437,
6312 SipStatusInvalidIdentityHeader = 438,
6313 SipStatusFirstHopLacksOutboundSupport = 439,
6314 SipStatusMaxBreadthExceeded = 440,
6315 SipStatusBadInfoPackage = 469,
6316 SipStatusConsentNeeded = 470,
6317 SipStatusTemporarilyUnavailable = 480,
6318 SipStatusCallTransactionDoesNotExists = 481,
6319 SipStatusLoopDetected = 482,
6320 SipStatusTooManyHops = 483,
6321 SipStatusAddressIncomplete = 484,
6322 SipStatusAmbiguous = 485,
6323 SipStatusBusyHere = 486,
6324 SipStatusRequestTerminated = 487,
6325 SipStatusNotAcceptableHere = 488,
6326 SipStatusBadEvent = 489,
6327 SipStatusRequestPending = 491,
6328 SipStatusUndecipherable = 493,
6329 SipStatusSecurityAgreementRequired = 494,
6330 SipStatusInternalServerError = 500,
6331 SipStatusNotImplemented = 501,
6332 SipStatusBadGateway = 502,
6333 SipStatusServiceUnavailable = 503,
6334 SipStatusGatewayTimeout = 504,
6335 SipStatusVersionNotSupported = 505,
6336 SipStatusMessageTooLarge = 513,
6337 SipStatusGlobalBusyEverywhere = 600,
6338 SipStatusGlobalDecline = 603,
6339 SipStatusGlobalDoesNotExistAnywhere = 604,
6340 SipStatusGlobalNotAcceptable = 606,
6341 SipStatusGlobalUnwanted = 607,
6342 SipStatusGlobalRejected = 608,
6343}
6344impl SipStatusCode {
6345 pub fn as_str_name(&self) -> &'static str {
6350 match self {
6351 SipStatusCode::SipStatusUnknown => "SIP_STATUS_UNKNOWN",
6352 SipStatusCode::SipStatusTrying => "SIP_STATUS_TRYING",
6353 SipStatusCode::SipStatusRinging => "SIP_STATUS_RINGING",
6354 SipStatusCode::SipStatusCallIsForwarded => "SIP_STATUS_CALL_IS_FORWARDED",
6355 SipStatusCode::SipStatusQueued => "SIP_STATUS_QUEUED",
6356 SipStatusCode::SipStatusSessionProgress => "SIP_STATUS_SESSION_PROGRESS",
6357 SipStatusCode::SipStatusEarlyDialogTerminated => "SIP_STATUS_EARLY_DIALOG_TERMINATED",
6358 SipStatusCode::SipStatusOk => "SIP_STATUS_OK",
6359 SipStatusCode::SipStatusAccepted => "SIP_STATUS_ACCEPTED",
6360 SipStatusCode::SipStatusNoNotification => "SIP_STATUS_NO_NOTIFICATION",
6361 SipStatusCode::SipStatusMultipleChoices => "SIP_STATUS_MULTIPLE_CHOICES",
6362 SipStatusCode::SipStatusMovedPermanently => "SIP_STATUS_MOVED_PERMANENTLY",
6363 SipStatusCode::SipStatusMovedTemporarily => "SIP_STATUS_MOVED_TEMPORARILY",
6364 SipStatusCode::SipStatusUseProxy => "SIP_STATUS_USE_PROXY",
6365 SipStatusCode::SipStatusAlternativeService => "SIP_STATUS_ALTERNATIVE_SERVICE",
6366 SipStatusCode::SipStatusBadRequest => "SIP_STATUS_BAD_REQUEST",
6367 SipStatusCode::SipStatusUnauthorized => "SIP_STATUS_UNAUTHORIZED",
6368 SipStatusCode::SipStatusPaymentRequired => "SIP_STATUS_PAYMENT_REQUIRED",
6369 SipStatusCode::SipStatusForbidden => "SIP_STATUS_FORBIDDEN",
6370 SipStatusCode::SipStatusNotfound => "SIP_STATUS_NOTFOUND",
6371 SipStatusCode::SipStatusMethodNotAllowed => "SIP_STATUS_METHOD_NOT_ALLOWED",
6372 SipStatusCode::SipStatusNotAcceptable => "SIP_STATUS_NOT_ACCEPTABLE",
6373 SipStatusCode::SipStatusProxyAuthRequired => "SIP_STATUS_PROXY_AUTH_REQUIRED",
6374 SipStatusCode::SipStatusRequestTimeout => "SIP_STATUS_REQUEST_TIMEOUT",
6375 SipStatusCode::SipStatusConflict => "SIP_STATUS_CONFLICT",
6376 SipStatusCode::SipStatusGone => "SIP_STATUS_GONE",
6377 SipStatusCode::SipStatusLengthRequired => "SIP_STATUS_LENGTH_REQUIRED",
6378 SipStatusCode::SipStatusConditionalRequestFailed => "SIP_STATUS_CONDITIONAL_REQUEST_FAILED",
6379 SipStatusCode::SipStatusRequestEntityTooLarge => "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE",
6380 SipStatusCode::SipStatusRequestUriTooLong => "SIP_STATUS_REQUEST_URI_TOO_LONG",
6381 SipStatusCode::SipStatusUnsupportedMediaType => "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE",
6382 SipStatusCode::SipStatusRequestedRangeNotSatisfiable => "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE",
6383 SipStatusCode::SipStatusUnknownResourcePriority => "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY",
6384 SipStatusCode::SipStatusBadExtension => "SIP_STATUS_BAD_EXTENSION",
6385 SipStatusCode::SipStatusExtensionRequired => "SIP_STATUS_EXTENSION_REQUIRED",
6386 SipStatusCode::SipStatusSessionIntervalTooSmall => "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL",
6387 SipStatusCode::SipStatusIntervalTooBrief => "SIP_STATUS_INTERVAL_TOO_BRIEF",
6388 SipStatusCode::SipStatusBadLocationInformation => "SIP_STATUS_BAD_LOCATION_INFORMATION",
6389 SipStatusCode::SipStatusBadAlertMessage => "SIP_STATUS_BAD_ALERT_MESSAGE",
6390 SipStatusCode::SipStatusUseIdentityHeader => "SIP_STATUS_USE_IDENTITY_HEADER",
6391 SipStatusCode::SipStatusProvideReferrerIdentity => "SIP_STATUS_PROVIDE_REFERRER_IDENTITY",
6392 SipStatusCode::SipStatusFlowFailed => "SIP_STATUS_FLOW_FAILED",
6393 SipStatusCode::SipStatusAnonymityDisallowed => "SIP_STATUS_ANONYMITY_DISALLOWED",
6394 SipStatusCode::SipStatusBadIdentityInfo => "SIP_STATUS_BAD_IDENTITY_INFO",
6395 SipStatusCode::SipStatusUnsupportedCertificate => "SIP_STATUS_UNSUPPORTED_CERTIFICATE",
6396 SipStatusCode::SipStatusInvalidIdentityHeader => "SIP_STATUS_INVALID_IDENTITY_HEADER",
6397 SipStatusCode::SipStatusFirstHopLacksOutboundSupport => "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT",
6398 SipStatusCode::SipStatusMaxBreadthExceeded => "SIP_STATUS_MAX_BREADTH_EXCEEDED",
6399 SipStatusCode::SipStatusBadInfoPackage => "SIP_STATUS_BAD_INFO_PACKAGE",
6400 SipStatusCode::SipStatusConsentNeeded => "SIP_STATUS_CONSENT_NEEDED",
6401 SipStatusCode::SipStatusTemporarilyUnavailable => "SIP_STATUS_TEMPORARILY_UNAVAILABLE",
6402 SipStatusCode::SipStatusCallTransactionDoesNotExists => "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS",
6403 SipStatusCode::SipStatusLoopDetected => "SIP_STATUS_LOOP_DETECTED",
6404 SipStatusCode::SipStatusTooManyHops => "SIP_STATUS_TOO_MANY_HOPS",
6405 SipStatusCode::SipStatusAddressIncomplete => "SIP_STATUS_ADDRESS_INCOMPLETE",
6406 SipStatusCode::SipStatusAmbiguous => "SIP_STATUS_AMBIGUOUS",
6407 SipStatusCode::SipStatusBusyHere => "SIP_STATUS_BUSY_HERE",
6408 SipStatusCode::SipStatusRequestTerminated => "SIP_STATUS_REQUEST_TERMINATED",
6409 SipStatusCode::SipStatusNotAcceptableHere => "SIP_STATUS_NOT_ACCEPTABLE_HERE",
6410 SipStatusCode::SipStatusBadEvent => "SIP_STATUS_BAD_EVENT",
6411 SipStatusCode::SipStatusRequestPending => "SIP_STATUS_REQUEST_PENDING",
6412 SipStatusCode::SipStatusUndecipherable => "SIP_STATUS_UNDECIPHERABLE",
6413 SipStatusCode::SipStatusSecurityAgreementRequired => "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED",
6414 SipStatusCode::SipStatusInternalServerError => "SIP_STATUS_INTERNAL_SERVER_ERROR",
6415 SipStatusCode::SipStatusNotImplemented => "SIP_STATUS_NOT_IMPLEMENTED",
6416 SipStatusCode::SipStatusBadGateway => "SIP_STATUS_BAD_GATEWAY",
6417 SipStatusCode::SipStatusServiceUnavailable => "SIP_STATUS_SERVICE_UNAVAILABLE",
6418 SipStatusCode::SipStatusGatewayTimeout => "SIP_STATUS_GATEWAY_TIMEOUT",
6419 SipStatusCode::SipStatusVersionNotSupported => "SIP_STATUS_VERSION_NOT_SUPPORTED",
6420 SipStatusCode::SipStatusMessageTooLarge => "SIP_STATUS_MESSAGE_TOO_LARGE",
6421 SipStatusCode::SipStatusGlobalBusyEverywhere => "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE",
6422 SipStatusCode::SipStatusGlobalDecline => "SIP_STATUS_GLOBAL_DECLINE",
6423 SipStatusCode::SipStatusGlobalDoesNotExistAnywhere => "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE",
6424 SipStatusCode::SipStatusGlobalNotAcceptable => "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE",
6425 SipStatusCode::SipStatusGlobalUnwanted => "SIP_STATUS_GLOBAL_UNWANTED",
6426 SipStatusCode::SipStatusGlobalRejected => "SIP_STATUS_GLOBAL_REJECTED",
6427 }
6428 }
6429 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6431 match value {
6432 "SIP_STATUS_UNKNOWN" => Some(Self::SipStatusUnknown),
6433 "SIP_STATUS_TRYING" => Some(Self::SipStatusTrying),
6434 "SIP_STATUS_RINGING" => Some(Self::SipStatusRinging),
6435 "SIP_STATUS_CALL_IS_FORWARDED" => Some(Self::SipStatusCallIsForwarded),
6436 "SIP_STATUS_QUEUED" => Some(Self::SipStatusQueued),
6437 "SIP_STATUS_SESSION_PROGRESS" => Some(Self::SipStatusSessionProgress),
6438 "SIP_STATUS_EARLY_DIALOG_TERMINATED" => Some(Self::SipStatusEarlyDialogTerminated),
6439 "SIP_STATUS_OK" => Some(Self::SipStatusOk),
6440 "SIP_STATUS_ACCEPTED" => Some(Self::SipStatusAccepted),
6441 "SIP_STATUS_NO_NOTIFICATION" => Some(Self::SipStatusNoNotification),
6442 "SIP_STATUS_MULTIPLE_CHOICES" => Some(Self::SipStatusMultipleChoices),
6443 "SIP_STATUS_MOVED_PERMANENTLY" => Some(Self::SipStatusMovedPermanently),
6444 "SIP_STATUS_MOVED_TEMPORARILY" => Some(Self::SipStatusMovedTemporarily),
6445 "SIP_STATUS_USE_PROXY" => Some(Self::SipStatusUseProxy),
6446 "SIP_STATUS_ALTERNATIVE_SERVICE" => Some(Self::SipStatusAlternativeService),
6447 "SIP_STATUS_BAD_REQUEST" => Some(Self::SipStatusBadRequest),
6448 "SIP_STATUS_UNAUTHORIZED" => Some(Self::SipStatusUnauthorized),
6449 "SIP_STATUS_PAYMENT_REQUIRED" => Some(Self::SipStatusPaymentRequired),
6450 "SIP_STATUS_FORBIDDEN" => Some(Self::SipStatusForbidden),
6451 "SIP_STATUS_NOTFOUND" => Some(Self::SipStatusNotfound),
6452 "SIP_STATUS_METHOD_NOT_ALLOWED" => Some(Self::SipStatusMethodNotAllowed),
6453 "SIP_STATUS_NOT_ACCEPTABLE" => Some(Self::SipStatusNotAcceptable),
6454 "SIP_STATUS_PROXY_AUTH_REQUIRED" => Some(Self::SipStatusProxyAuthRequired),
6455 "SIP_STATUS_REQUEST_TIMEOUT" => Some(Self::SipStatusRequestTimeout),
6456 "SIP_STATUS_CONFLICT" => Some(Self::SipStatusConflict),
6457 "SIP_STATUS_GONE" => Some(Self::SipStatusGone),
6458 "SIP_STATUS_LENGTH_REQUIRED" => Some(Self::SipStatusLengthRequired),
6459 "SIP_STATUS_CONDITIONAL_REQUEST_FAILED" => Some(Self::SipStatusConditionalRequestFailed),
6460 "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE" => Some(Self::SipStatusRequestEntityTooLarge),
6461 "SIP_STATUS_REQUEST_URI_TOO_LONG" => Some(Self::SipStatusRequestUriTooLong),
6462 "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE" => Some(Self::SipStatusUnsupportedMediaType),
6463 "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE" => Some(Self::SipStatusRequestedRangeNotSatisfiable),
6464 "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY" => Some(Self::SipStatusUnknownResourcePriority),
6465 "SIP_STATUS_BAD_EXTENSION" => Some(Self::SipStatusBadExtension),
6466 "SIP_STATUS_EXTENSION_REQUIRED" => Some(Self::SipStatusExtensionRequired),
6467 "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL" => Some(Self::SipStatusSessionIntervalTooSmall),
6468 "SIP_STATUS_INTERVAL_TOO_BRIEF" => Some(Self::SipStatusIntervalTooBrief),
6469 "SIP_STATUS_BAD_LOCATION_INFORMATION" => Some(Self::SipStatusBadLocationInformation),
6470 "SIP_STATUS_BAD_ALERT_MESSAGE" => Some(Self::SipStatusBadAlertMessage),
6471 "SIP_STATUS_USE_IDENTITY_HEADER" => Some(Self::SipStatusUseIdentityHeader),
6472 "SIP_STATUS_PROVIDE_REFERRER_IDENTITY" => Some(Self::SipStatusProvideReferrerIdentity),
6473 "SIP_STATUS_FLOW_FAILED" => Some(Self::SipStatusFlowFailed),
6474 "SIP_STATUS_ANONYMITY_DISALLOWED" => Some(Self::SipStatusAnonymityDisallowed),
6475 "SIP_STATUS_BAD_IDENTITY_INFO" => Some(Self::SipStatusBadIdentityInfo),
6476 "SIP_STATUS_UNSUPPORTED_CERTIFICATE" => Some(Self::SipStatusUnsupportedCertificate),
6477 "SIP_STATUS_INVALID_IDENTITY_HEADER" => Some(Self::SipStatusInvalidIdentityHeader),
6478 "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT" => Some(Self::SipStatusFirstHopLacksOutboundSupport),
6479 "SIP_STATUS_MAX_BREADTH_EXCEEDED" => Some(Self::SipStatusMaxBreadthExceeded),
6480 "SIP_STATUS_BAD_INFO_PACKAGE" => Some(Self::SipStatusBadInfoPackage),
6481 "SIP_STATUS_CONSENT_NEEDED" => Some(Self::SipStatusConsentNeeded),
6482 "SIP_STATUS_TEMPORARILY_UNAVAILABLE" => Some(Self::SipStatusTemporarilyUnavailable),
6483 "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS" => Some(Self::SipStatusCallTransactionDoesNotExists),
6484 "SIP_STATUS_LOOP_DETECTED" => Some(Self::SipStatusLoopDetected),
6485 "SIP_STATUS_TOO_MANY_HOPS" => Some(Self::SipStatusTooManyHops),
6486 "SIP_STATUS_ADDRESS_INCOMPLETE" => Some(Self::SipStatusAddressIncomplete),
6487 "SIP_STATUS_AMBIGUOUS" => Some(Self::SipStatusAmbiguous),
6488 "SIP_STATUS_BUSY_HERE" => Some(Self::SipStatusBusyHere),
6489 "SIP_STATUS_REQUEST_TERMINATED" => Some(Self::SipStatusRequestTerminated),
6490 "SIP_STATUS_NOT_ACCEPTABLE_HERE" => Some(Self::SipStatusNotAcceptableHere),
6491 "SIP_STATUS_BAD_EVENT" => Some(Self::SipStatusBadEvent),
6492 "SIP_STATUS_REQUEST_PENDING" => Some(Self::SipStatusRequestPending),
6493 "SIP_STATUS_UNDECIPHERABLE" => Some(Self::SipStatusUndecipherable),
6494 "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED" => Some(Self::SipStatusSecurityAgreementRequired),
6495 "SIP_STATUS_INTERNAL_SERVER_ERROR" => Some(Self::SipStatusInternalServerError),
6496 "SIP_STATUS_NOT_IMPLEMENTED" => Some(Self::SipStatusNotImplemented),
6497 "SIP_STATUS_BAD_GATEWAY" => Some(Self::SipStatusBadGateway),
6498 "SIP_STATUS_SERVICE_UNAVAILABLE" => Some(Self::SipStatusServiceUnavailable),
6499 "SIP_STATUS_GATEWAY_TIMEOUT" => Some(Self::SipStatusGatewayTimeout),
6500 "SIP_STATUS_VERSION_NOT_SUPPORTED" => Some(Self::SipStatusVersionNotSupported),
6501 "SIP_STATUS_MESSAGE_TOO_LARGE" => Some(Self::SipStatusMessageTooLarge),
6502 "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE" => Some(Self::SipStatusGlobalBusyEverywhere),
6503 "SIP_STATUS_GLOBAL_DECLINE" => Some(Self::SipStatusGlobalDecline),
6504 "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE" => Some(Self::SipStatusGlobalDoesNotExistAnywhere),
6505 "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE" => Some(Self::SipStatusGlobalNotAcceptable),
6506 "SIP_STATUS_GLOBAL_UNWANTED" => Some(Self::SipStatusGlobalUnwanted),
6507 "SIP_STATUS_GLOBAL_REJECTED" => Some(Self::SipStatusGlobalRejected),
6508 _ => None,
6509 }
6510 }
6511}
6512#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6513#[repr(i32)]
6514pub enum SipTransport {
6515 Auto = 0,
6516 Udp = 1,
6517 Tcp = 2,
6518 Tls = 3,
6519}
6520impl SipTransport {
6521 pub fn as_str_name(&self) -> &'static str {
6526 match self {
6527 SipTransport::Auto => "SIP_TRANSPORT_AUTO",
6528 SipTransport::Udp => "SIP_TRANSPORT_UDP",
6529 SipTransport::Tcp => "SIP_TRANSPORT_TCP",
6530 SipTransport::Tls => "SIP_TRANSPORT_TLS",
6531 }
6532 }
6533 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6535 match value {
6536 "SIP_TRANSPORT_AUTO" => Some(Self::Auto),
6537 "SIP_TRANSPORT_UDP" => Some(Self::Udp),
6538 "SIP_TRANSPORT_TCP" => Some(Self::Tcp),
6539 "SIP_TRANSPORT_TLS" => Some(Self::Tls),
6540 _ => None,
6541 }
6542 }
6543}
6544#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6545#[repr(i32)]
6546pub enum SipHeaderOptions {
6547 SipNoHeaders = 0,
6549 SipXHeaders = 1,
6551 SipAllHeaders = 2,
6553}
6554impl SipHeaderOptions {
6555 pub fn as_str_name(&self) -> &'static str {
6560 match self {
6561 SipHeaderOptions::SipNoHeaders => "SIP_NO_HEADERS",
6562 SipHeaderOptions::SipXHeaders => "SIP_X_HEADERS",
6563 SipHeaderOptions::SipAllHeaders => "SIP_ALL_HEADERS",
6564 }
6565 }
6566 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6568 match value {
6569 "SIP_NO_HEADERS" => Some(Self::SipNoHeaders),
6570 "SIP_X_HEADERS" => Some(Self::SipXHeaders),
6571 "SIP_ALL_HEADERS" => Some(Self::SipAllHeaders),
6572 _ => None,
6573 }
6574 }
6575}
6576#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6577#[repr(i32)]
6578pub enum SipMediaEncryption {
6579 SipMediaEncryptDisable = 0,
6581 SipMediaEncryptAllow = 1,
6583 SipMediaEncryptRequire = 2,
6585}
6586impl SipMediaEncryption {
6587 pub fn as_str_name(&self) -> &'static str {
6592 match self {
6593 SipMediaEncryption::SipMediaEncryptDisable => "SIP_MEDIA_ENCRYPT_DISABLE",
6594 SipMediaEncryption::SipMediaEncryptAllow => "SIP_MEDIA_ENCRYPT_ALLOW",
6595 SipMediaEncryption::SipMediaEncryptRequire => "SIP_MEDIA_ENCRYPT_REQUIRE",
6596 }
6597 }
6598 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6600 match value {
6601 "SIP_MEDIA_ENCRYPT_DISABLE" => Some(Self::SipMediaEncryptDisable),
6602 "SIP_MEDIA_ENCRYPT_ALLOW" => Some(Self::SipMediaEncryptAllow),
6603 "SIP_MEDIA_ENCRYPT_REQUIRE" => Some(Self::SipMediaEncryptRequire),
6604 _ => None,
6605 }
6606 }
6607}
6608#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6609#[repr(i32)]
6610pub enum ProviderType {
6611 Unknown = 0,
6612 Internal = 1,
6614 External = 2,
6616}
6617impl ProviderType {
6618 pub fn as_str_name(&self) -> &'static str {
6623 match self {
6624 ProviderType::Unknown => "PROVIDER_TYPE_UNKNOWN",
6625 ProviderType::Internal => "PROVIDER_TYPE_INTERNAL",
6626 ProviderType::External => "PROVIDER_TYPE_EXTERNAL",
6627 }
6628 }
6629 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6631 match value {
6632 "PROVIDER_TYPE_UNKNOWN" => Some(Self::Unknown),
6633 "PROVIDER_TYPE_INTERNAL" => Some(Self::Internal),
6634 "PROVIDER_TYPE_EXTERNAL" => Some(Self::External),
6635 _ => None,
6636 }
6637 }
6638}
6639#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6640#[repr(i32)]
6641pub enum SipCallStatus {
6642 ScsCallIncoming = 0,
6644 ScsParticipantJoined = 1,
6646 ScsActive = 2,
6648 ScsDisconnected = 3,
6650 ScsError = 4,
6652}
6653impl SipCallStatus {
6654 pub fn as_str_name(&self) -> &'static str {
6659 match self {
6660 SipCallStatus::ScsCallIncoming => "SCS_CALL_INCOMING",
6661 SipCallStatus::ScsParticipantJoined => "SCS_PARTICIPANT_JOINED",
6662 SipCallStatus::ScsActive => "SCS_ACTIVE",
6663 SipCallStatus::ScsDisconnected => "SCS_DISCONNECTED",
6664 SipCallStatus::ScsError => "SCS_ERROR",
6665 }
6666 }
6667 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6669 match value {
6670 "SCS_CALL_INCOMING" => Some(Self::ScsCallIncoming),
6671 "SCS_PARTICIPANT_JOINED" => Some(Self::ScsParticipantJoined),
6672 "SCS_ACTIVE" => Some(Self::ScsActive),
6673 "SCS_DISCONNECTED" => Some(Self::ScsDisconnected),
6674 "SCS_ERROR" => Some(Self::ScsError),
6675 _ => None,
6676 }
6677 }
6678}
6679#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6680#[repr(i32)]
6681pub enum SipTransferStatus {
6682 StsTransferOngoing = 0,
6683 StsTransferFailed = 1,
6684 StsTransferSuccessful = 2,
6685}
6686impl SipTransferStatus {
6687 pub fn as_str_name(&self) -> &'static str {
6692 match self {
6693 SipTransferStatus::StsTransferOngoing => "STS_TRANSFER_ONGOING",
6694 SipTransferStatus::StsTransferFailed => "STS_TRANSFER_FAILED",
6695 SipTransferStatus::StsTransferSuccessful => "STS_TRANSFER_SUCCESSFUL",
6696 }
6697 }
6698 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6700 match value {
6701 "STS_TRANSFER_ONGOING" => Some(Self::StsTransferOngoing),
6702 "STS_TRANSFER_FAILED" => Some(Self::StsTransferFailed),
6703 "STS_TRANSFER_SUCCESSFUL" => Some(Self::StsTransferSuccessful),
6704 _ => None,
6705 }
6706 }
6707}
6708#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6709#[repr(i32)]
6710pub enum SipFeature {
6711 None = 0,
6712 KrispEnabled = 1,
6713}
6714impl SipFeature {
6715 pub fn as_str_name(&self) -> &'static str {
6720 match self {
6721 SipFeature::None => "NONE",
6722 SipFeature::KrispEnabled => "KRISP_ENABLED",
6723 }
6724 }
6725 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6727 match value {
6728 "NONE" => Some(Self::None),
6729 "KRISP_ENABLED" => Some(Self::KrispEnabled),
6730 _ => None,
6731 }
6732 }
6733}
6734#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6735#[repr(i32)]
6736pub enum SipCallDirection {
6737 ScdUnknown = 0,
6738 ScdInbound = 1,
6739 ScdOutbound = 2,
6740}
6741impl SipCallDirection {
6742 pub fn as_str_name(&self) -> &'static str {
6747 match self {
6748 SipCallDirection::ScdUnknown => "SCD_UNKNOWN",
6749 SipCallDirection::ScdInbound => "SCD_INBOUND",
6750 SipCallDirection::ScdOutbound => "SCD_OUTBOUND",
6751 }
6752 }
6753 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6755 match value {
6756 "SCD_UNKNOWN" => Some(Self::ScdUnknown),
6757 "SCD_INBOUND" => Some(Self::ScdInbound),
6758 "SCD_OUTBOUND" => Some(Self::ScdOutbound),
6759 _ => None,
6760 }
6761 }
6762}
6763#[allow(clippy::derive_partial_eq_without_eq)]
6764#[derive(Clone, PartialEq, ::prost::Message)]
6765pub struct DialWhatsAppCallRequest {
6766 #[prost(string, tag="1")]
6768 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
6769 #[prost(string, tag="2")]
6771 pub whatsapp_to_phone_number: ::prost::alloc::string::String,
6772 #[prost(string, tag="3")]
6774 pub whatsapp_api_key: ::prost::alloc::string::String,
6775 #[prost(string, tag="12")]
6777 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
6778 #[prost(string, tag="4")]
6780 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
6781 #[prost(string, tag="5")]
6783 pub room_name: ::prost::alloc::string::String,
6784 #[prost(message, repeated, tag="6")]
6786 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
6787 #[prost(string, tag="7")]
6790 pub participant_identity: ::prost::alloc::string::String,
6791 #[prost(string, tag="8")]
6793 pub participant_name: ::prost::alloc::string::String,
6794 #[prost(string, tag="9")]
6796 pub participant_metadata: ::prost::alloc::string::String,
6797 #[prost(map="string, string", tag="10")]
6799 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6800 #[prost(string, tag="11")]
6802 pub destination_country: ::prost::alloc::string::String,
6803 #[prost(message, optional, tag="13")]
6805 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6806}
6807#[allow(clippy::derive_partial_eq_without_eq)]
6808#[derive(Clone, PartialEq, ::prost::Message)]
6809pub struct DialWhatsAppCallResponse {
6810 #[prost(string, tag="1")]
6812 pub whatsapp_call_id: ::prost::alloc::string::String,
6813 #[prost(string, tag="2")]
6815 pub room_name: ::prost::alloc::string::String,
6816}
6817#[allow(clippy::derive_partial_eq_without_eq)]
6818#[derive(Clone, PartialEq, ::prost::Message)]
6819pub struct DisconnectWhatsAppCallRequest {
6820 #[prost(string, tag="1")]
6822 pub whatsapp_call_id: ::prost::alloc::string::String,
6823 #[prost(string, tag="2")]
6827 pub whatsapp_api_key: ::prost::alloc::string::String,
6828 #[prost(enumeration="disconnect_whats_app_call_request::DisconnectReason", tag="3")]
6830 pub disconnect_reason: i32,
6831}
6832pub mod disconnect_whats_app_call_request {
6834 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6835 #[repr(i32)]
6836 pub enum DisconnectReason {
6837 BusinessInitiated = 0,
6839 UserInitiated = 1,
6845 }
6846 impl DisconnectReason {
6847 pub fn as_str_name(&self) -> &'static str {
6852 match self {
6853 DisconnectReason::BusinessInitiated => "BUSINESS_INITIATED",
6854 DisconnectReason::UserInitiated => "USER_INITIATED",
6855 }
6856 }
6857 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6859 match value {
6860 "BUSINESS_INITIATED" => Some(Self::BusinessInitiated),
6861 "USER_INITIATED" => Some(Self::UserInitiated),
6862 _ => None,
6863 }
6864 }
6865 }
6866}
6867#[allow(clippy::derive_partial_eq_without_eq)]
6868#[derive(Clone, PartialEq, ::prost::Message)]
6869pub struct DisconnectWhatsAppCallResponse {
6870}
6871#[allow(clippy::derive_partial_eq_without_eq)]
6872#[derive(Clone, PartialEq, ::prost::Message)]
6873pub struct ConnectWhatsAppCallRequest {
6874 #[prost(string, tag="1")]
6876 pub whatsapp_call_id: ::prost::alloc::string::String,
6877 #[prost(message, optional, tag="2")]
6880 pub sdp: ::core::option::Option<SessionDescription>,
6881}
6882#[allow(clippy::derive_partial_eq_without_eq)]
6883#[derive(Clone, PartialEq, ::prost::Message)]
6884pub struct ConnectWhatsAppCallResponse {
6885}
6886#[allow(clippy::derive_partial_eq_without_eq)]
6887#[derive(Clone, PartialEq, ::prost::Message)]
6888pub struct AcceptWhatsAppCallRequest {
6889 #[prost(string, tag="1")]
6891 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
6892 #[prost(string, tag="2")]
6894 pub whatsapp_api_key: ::prost::alloc::string::String,
6895 #[prost(string, tag="13")]
6897 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
6898 #[prost(string, tag="3")]
6900 pub whatsapp_call_id: ::prost::alloc::string::String,
6901 #[prost(string, tag="4")]
6903 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
6904 #[prost(message, optional, tag="5")]
6907 pub sdp: ::core::option::Option<SessionDescription>,
6908 #[prost(string, tag="6")]
6910 pub room_name: ::prost::alloc::string::String,
6911 #[prost(message, repeated, tag="7")]
6913 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
6914 #[prost(string, tag="8")]
6917 pub participant_identity: ::prost::alloc::string::String,
6918 #[prost(string, tag="9")]
6920 pub participant_name: ::prost::alloc::string::String,
6921 #[prost(string, tag="10")]
6923 pub participant_metadata: ::prost::alloc::string::String,
6924 #[prost(map="string, string", tag="11")]
6926 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6927 #[prost(string, tag="12")]
6929 pub destination_country: ::prost::alloc::string::String,
6930 #[prost(message, optional, tag="14")]
6932 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6933 #[prost(bool, tag="15")]
6935 pub wait_until_answered: bool,
6936}
6937#[allow(clippy::derive_partial_eq_without_eq)]
6938#[derive(Clone, PartialEq, ::prost::Message)]
6939pub struct AcceptWhatsAppCallResponse {
6940 #[prost(string, tag="1")]
6942 pub room_name: ::prost::alloc::string::String,
6943}
6944#[allow(clippy::derive_partial_eq_without_eq)]
6945#[derive(Clone, PartialEq, ::prost::Message)]
6946pub struct WhatsAppCall {
6947 #[prost(string, tag="1")]
6949 pub whatsapp_call_id: ::prost::alloc::string::String,
6950 #[prost(enumeration="WhatsAppCallDirection", tag="2")]
6952 pub direction: i32,
6953}
6954#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6955#[repr(i32)]
6956pub enum WhatsAppCallDirection {
6957 WhatsappCallDirectionInbound = 0,
6958 WhatsappCallDirectionOutbound = 2,
6959}
6960impl WhatsAppCallDirection {
6961 pub fn as_str_name(&self) -> &'static str {
6966 match self {
6967 WhatsAppCallDirection::WhatsappCallDirectionInbound => "WHATSAPP_CALL_DIRECTION_INBOUND",
6968 WhatsAppCallDirection::WhatsappCallDirectionOutbound => "WHATSAPP_CALL_DIRECTION_OUTBOUND",
6969 }
6970 }
6971 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6973 match value {
6974 "WHATSAPP_CALL_DIRECTION_INBOUND" => Some(Self::WhatsappCallDirectionInbound),
6975 "WHATSAPP_CALL_DIRECTION_OUTBOUND" => Some(Self::WhatsappCallDirectionOutbound),
6976 _ => None,
6977 }
6978 }
6979}
6980#[allow(clippy::derive_partial_eq_without_eq)]
6981#[derive(Clone, PartialEq, ::prost::Message)]
6982pub struct ConnectTwilioCallRequest {
6983 #[prost(enumeration="connect_twilio_call_request::TwilioCallDirection", tag="1")]
6985 pub twilio_call_direction: i32,
6986 #[prost(string, tag="2")]
6988 pub room_name: ::prost::alloc::string::String,
6989 #[prost(message, repeated, tag="3")]
6991 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
6992 #[prost(string, tag="4")]
6995 pub participant_identity: ::prost::alloc::string::String,
6996 #[prost(string, tag="5")]
6998 pub participant_name: ::prost::alloc::string::String,
6999 #[prost(string, tag="6")]
7001 pub participant_metadata: ::prost::alloc::string::String,
7002 #[prost(map="string, string", tag="7")]
7004 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7005 #[prost(string, tag="8")]
7007 pub destination_country: ::prost::alloc::string::String,
7008}
7009pub mod connect_twilio_call_request {
7011 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7012 #[repr(i32)]
7013 pub enum TwilioCallDirection {
7014 Inbound = 0,
7016 Outbound = 1,
7018 }
7019 impl TwilioCallDirection {
7020 pub fn as_str_name(&self) -> &'static str {
7025 match self {
7026 TwilioCallDirection::Inbound => "TWILIO_CALL_DIRECTION_INBOUND",
7027 TwilioCallDirection::Outbound => "TWILIO_CALL_DIRECTION_OUTBOUND",
7028 }
7029 }
7030 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7032 match value {
7033 "TWILIO_CALL_DIRECTION_INBOUND" => Some(Self::Inbound),
7034 "TWILIO_CALL_DIRECTION_OUTBOUND" => Some(Self::Outbound),
7035 _ => None,
7036 }
7037 }
7038 }
7039}
7040#[allow(clippy::derive_partial_eq_without_eq)]
7041#[derive(Clone, PartialEq, ::prost::Message)]
7042pub struct ConnectTwilioCallResponse {
7043 #[prost(string, tag="1")]
7045 pub connect_url: ::prost::alloc::string::String,
7046}
7047#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7048#[repr(i32)]
7049pub enum ConnectorType {
7050 Unspecified = 0,
7051 WhatsApp = 1,
7052 Twilio = 2,
7053}
7054impl ConnectorType {
7055 pub fn as_str_name(&self) -> &'static str {
7060 match self {
7061 ConnectorType::Unspecified => "Unspecified",
7062 ConnectorType::WhatsApp => "WhatsApp",
7063 ConnectorType::Twilio => "Twilio",
7064 }
7065 }
7066 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7068 match value {
7069 "Unspecified" => Some(Self::Unspecified),
7070 "WhatsApp" => Some(Self::WhatsApp),
7071 "Twilio" => Some(Self::Twilio),
7072 _ => None,
7073 }
7074 }
7075}
7076include!("livekit.serde.rs");
7077