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}
614#[allow(clippy::derive_partial_eq_without_eq)]
615#[derive(Clone, PartialEq, ::prost::Message)]
616pub struct DataTrackInfo {
617 #[prost(uint32, tag="1")]
619 pub pub_handle: u32,
620 #[prost(string, tag="2")]
622 pub sid: ::prost::alloc::string::String,
623 #[prost(string, tag="3")]
625 pub name: ::prost::alloc::string::String,
626 #[prost(enumeration="encryption::Type", tag="4")]
628 pub encryption: i32,
629}
630#[allow(clippy::derive_partial_eq_without_eq)]
631#[derive(Clone, PartialEq, ::prost::Message)]
632pub struct DataTrackExtensionParticipantSid {
633 #[prost(enumeration="DataTrackExtensionId", tag="1")]
634 pub id: i32,
635 #[prost(string, tag="2")]
636 pub participant_sid: ::prost::alloc::string::String,
637}
638#[allow(clippy::derive_partial_eq_without_eq)]
639#[derive(Clone, PartialEq, ::prost::Message)]
640pub struct DataTrackSubscriptionOptions {
641 #[prost(uint32, optional, tag="1")]
644 pub target_fps: ::core::option::Option<u32>,
645}
646#[allow(clippy::derive_partial_eq_without_eq)]
648#[derive(Clone, PartialEq, ::prost::Message)]
649pub struct VideoLayer {
650 #[prost(enumeration="VideoQuality", tag="1")]
652 pub quality: i32,
653 #[prost(uint32, tag="2")]
654 pub width: u32,
655 #[prost(uint32, tag="3")]
656 pub height: u32,
657 #[prost(uint32, tag="4")]
659 pub bitrate: u32,
660 #[prost(uint32, tag="5")]
661 pub ssrc: u32,
662 #[prost(int32, tag="6")]
663 pub spatial_layer: i32,
664 #[prost(string, tag="7")]
665 pub rid: ::prost::alloc::string::String,
666 #[prost(uint32, tag="8")]
667 pub repair_ssrc: u32,
668}
669pub mod video_layer {
671 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
672 #[repr(i32)]
673 pub enum Mode {
674 Unused = 0,
675 OneSpatialLayerPerStream = 1,
676 MultipleSpatialLayersPerStream = 2,
677 OneSpatialLayerPerStreamIncompleteRtcpSr = 3,
678 }
679 impl Mode {
680 pub fn as_str_name(&self) -> &'static str {
685 match self {
686 Mode::Unused => "MODE_UNUSED",
687 Mode::OneSpatialLayerPerStream => "ONE_SPATIAL_LAYER_PER_STREAM",
688 Mode::MultipleSpatialLayersPerStream => "MULTIPLE_SPATIAL_LAYERS_PER_STREAM",
689 Mode::OneSpatialLayerPerStreamIncompleteRtcpSr => "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR",
690 }
691 }
692 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
694 match value {
695 "MODE_UNUSED" => Some(Self::Unused),
696 "ONE_SPATIAL_LAYER_PER_STREAM" => Some(Self::OneSpatialLayerPerStream),
697 "MULTIPLE_SPATIAL_LAYERS_PER_STREAM" => Some(Self::MultipleSpatialLayersPerStream),
698 "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR" => Some(Self::OneSpatialLayerPerStreamIncompleteRtcpSr),
699 _ => None,
700 }
701 }
702 }
703}
704#[allow(clippy::derive_partial_eq_without_eq)]
706#[derive(Clone, PartialEq, ::prost::Message)]
707pub struct DataPacket {
708 #[deprecated]
709 #[prost(enumeration="data_packet::Kind", tag="1")]
710 pub kind: i32,
711 #[prost(string, tag="4")]
713 pub participant_identity: ::prost::alloc::string::String,
714 #[prost(string, repeated, tag="5")]
716 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
717 #[prost(uint32, tag="16")]
719 pub sequence: u32,
720 #[prost(string, tag="17")]
722 pub participant_sid: ::prost::alloc::string::String,
723 #[prost(oneof="data_packet::Value", tags="2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18")]
724 pub value: ::core::option::Option<data_packet::Value>,
725}
726pub mod data_packet {
728 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
729 #[repr(i32)]
730 pub enum Kind {
731 Reliable = 0,
732 Lossy = 1,
733 }
734 impl Kind {
735 pub fn as_str_name(&self) -> &'static str {
740 match self {
741 Kind::Reliable => "RELIABLE",
742 Kind::Lossy => "LOSSY",
743 }
744 }
745 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
747 match value {
748 "RELIABLE" => Some(Self::Reliable),
749 "LOSSY" => Some(Self::Lossy),
750 _ => None,
751 }
752 }
753 }
754 #[allow(clippy::derive_partial_eq_without_eq)]
755#[derive(Clone, PartialEq, ::prost::Oneof)]
756 pub enum Value {
757 #[prost(message, tag="2")]
758 User(super::UserPacket),
759 #[prost(message, tag="3")]
760 Speaker(super::ActiveSpeakerUpdate),
761 #[prost(message, tag="6")]
762 SipDtmf(super::SipDtmf),
763 #[prost(message, tag="7")]
764 Transcription(super::Transcription),
765 #[prost(message, tag="8")]
766 Metrics(super::MetricsBatch),
767 #[prost(message, tag="9")]
768 ChatMessage(super::ChatMessage),
769 #[prost(message, tag="10")]
770 RpcRequest(super::RpcRequest),
771 #[prost(message, tag="11")]
772 RpcAck(super::RpcAck),
773 #[prost(message, tag="12")]
774 RpcResponse(super::RpcResponse),
775 #[prost(message, tag="13")]
776 StreamHeader(super::data_stream::Header),
777 #[prost(message, tag="14")]
778 StreamChunk(super::data_stream::Chunk),
779 #[prost(message, tag="15")]
780 StreamTrailer(super::data_stream::Trailer),
781 #[prost(message, tag="18")]
782 EncryptedPacket(super::EncryptedPacket),
783 }
784}
785#[allow(clippy::derive_partial_eq_without_eq)]
786#[derive(Clone, PartialEq, ::prost::Message)]
787pub struct EncryptedPacket {
788 #[prost(enumeration="encryption::Type", tag="1")]
789 pub encryption_type: i32,
790 #[prost(bytes="vec", tag="2")]
791 pub iv: ::prost::alloc::vec::Vec<u8>,
792 #[prost(uint32, tag="3")]
793 pub key_index: u32,
794 #[prost(bytes="vec", tag="4")]
796 pub encrypted_value: ::prost::alloc::vec::Vec<u8>,
797}
798#[allow(clippy::derive_partial_eq_without_eq)]
799#[derive(Clone, PartialEq, ::prost::Message)]
800pub struct EncryptedPacketPayload {
801 #[prost(oneof="encrypted_packet_payload::Value", tags="1, 3, 4, 5, 6, 7, 8, 9")]
802 pub value: ::core::option::Option<encrypted_packet_payload::Value>,
803}
804pub mod encrypted_packet_payload {
806 #[allow(clippy::derive_partial_eq_without_eq)]
807#[derive(Clone, PartialEq, ::prost::Oneof)]
808 pub enum Value {
809 #[prost(message, tag="1")]
810 User(super::UserPacket),
811 #[prost(message, tag="3")]
812 ChatMessage(super::ChatMessage),
813 #[prost(message, tag="4")]
814 RpcRequest(super::RpcRequest),
815 #[prost(message, tag="5")]
816 RpcAck(super::RpcAck),
817 #[prost(message, tag="6")]
818 RpcResponse(super::RpcResponse),
819 #[prost(message, tag="7")]
820 StreamHeader(super::data_stream::Header),
821 #[prost(message, tag="8")]
822 StreamChunk(super::data_stream::Chunk),
823 #[prost(message, tag="9")]
824 StreamTrailer(super::data_stream::Trailer),
825 }
826}
827#[allow(clippy::derive_partial_eq_without_eq)]
828#[derive(Clone, PartialEq, ::prost::Message)]
829pub struct ActiveSpeakerUpdate {
830 #[prost(message, repeated, tag="1")]
831 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
832}
833#[allow(clippy::derive_partial_eq_without_eq)]
834#[derive(Clone, PartialEq, ::prost::Message)]
835pub struct SpeakerInfo {
836 #[prost(string, tag="1")]
837 pub sid: ::prost::alloc::string::String,
838 #[prost(float, tag="2")]
840 pub level: f32,
841 #[prost(bool, tag="3")]
843 pub active: bool,
844}
845#[allow(clippy::derive_partial_eq_without_eq)]
846#[derive(Clone, PartialEq, ::prost::Message)]
847pub struct UserPacket {
848 #[deprecated]
850 #[prost(string, tag="1")]
851 pub participant_sid: ::prost::alloc::string::String,
852 #[deprecated]
853 #[prost(string, tag="5")]
854 pub participant_identity: ::prost::alloc::string::String,
855 #[prost(bytes="vec", tag="2")]
857 pub payload: ::prost::alloc::vec::Vec<u8>,
858 #[deprecated]
860 #[prost(string, repeated, tag="3")]
861 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
862 #[deprecated]
864 #[prost(string, repeated, tag="6")]
865 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
866 #[prost(string, optional, tag="4")]
868 pub topic: ::core::option::Option<::prost::alloc::string::String>,
869 #[prost(string, optional, tag="8")]
871 pub id: ::core::option::Option<::prost::alloc::string::String>,
872 #[prost(uint64, optional, tag="9")]
874 pub start_time: ::core::option::Option<u64>,
875 #[prost(uint64, optional, tag="10")]
876 pub end_time: ::core::option::Option<u64>,
877 #[prost(bytes="vec", tag="11")]
879 pub nonce: ::prost::alloc::vec::Vec<u8>,
880}
881#[allow(clippy::derive_partial_eq_without_eq)]
882#[derive(Clone, PartialEq, ::prost::Message)]
883pub struct SipDtmf {
884 #[prost(uint32, tag="3")]
885 pub code: u32,
886 #[prost(string, tag="4")]
887 pub digit: ::prost::alloc::string::String,
888}
889#[allow(clippy::derive_partial_eq_without_eq)]
890#[derive(Clone, PartialEq, ::prost::Message)]
891pub struct Transcription {
892 #[prost(string, tag="2")]
894 pub transcribed_participant_identity: ::prost::alloc::string::String,
895 #[prost(string, tag="3")]
896 pub track_id: ::prost::alloc::string::String,
897 #[prost(message, repeated, tag="4")]
898 pub segments: ::prost::alloc::vec::Vec<TranscriptionSegment>,
899}
900#[allow(clippy::derive_partial_eq_without_eq)]
901#[derive(Clone, PartialEq, ::prost::Message)]
902pub struct TranscriptionSegment {
903 #[prost(string, tag="1")]
904 pub id: ::prost::alloc::string::String,
905 #[prost(string, tag="2")]
906 pub text: ::prost::alloc::string::String,
907 #[prost(uint64, tag="3")]
908 pub start_time: u64,
909 #[prost(uint64, tag="4")]
910 pub end_time: u64,
911 #[prost(bool, tag="5")]
912 pub r#final: bool,
913 #[prost(string, tag="6")]
914 pub language: ::prost::alloc::string::String,
915}
916#[allow(clippy::derive_partial_eq_without_eq)]
917#[derive(Clone, PartialEq, ::prost::Message)]
918pub struct ChatMessage {
919 #[prost(string, tag="1")]
921 pub id: ::prost::alloc::string::String,
922 #[prost(int64, tag="2")]
923 pub timestamp: i64,
924 #[prost(int64, optional, tag="3")]
926 pub edit_timestamp: ::core::option::Option<i64>,
927 #[prost(string, tag="4")]
928 pub message: ::prost::alloc::string::String,
929 #[prost(bool, tag="5")]
931 pub deleted: bool,
932 #[prost(bool, tag="6")]
934 pub generated: bool,
935}
936#[allow(clippy::derive_partial_eq_without_eq)]
937#[derive(Clone, PartialEq, ::prost::Message)]
938pub struct RpcRequest {
939 #[prost(string, tag="1")]
940 pub id: ::prost::alloc::string::String,
941 #[prost(string, tag="2")]
942 pub method: ::prost::alloc::string::String,
943 #[prost(string, tag="3")]
944 pub payload: ::prost::alloc::string::String,
945 #[prost(uint32, tag="4")]
946 pub response_timeout_ms: u32,
947 #[prost(uint32, tag="5")]
948 pub version: u32,
949}
950#[allow(clippy::derive_partial_eq_without_eq)]
951#[derive(Clone, PartialEq, ::prost::Message)]
952pub struct RpcAck {
953 #[prost(string, tag="1")]
954 pub request_id: ::prost::alloc::string::String,
955}
956#[allow(clippy::derive_partial_eq_without_eq)]
957#[derive(Clone, PartialEq, ::prost::Message)]
958pub struct RpcResponse {
959 #[prost(string, tag="1")]
960 pub request_id: ::prost::alloc::string::String,
961 #[prost(oneof="rpc_response::Value", tags="2, 3")]
962 pub value: ::core::option::Option<rpc_response::Value>,
963}
964pub mod rpc_response {
966 #[allow(clippy::derive_partial_eq_without_eq)]
967#[derive(Clone, PartialEq, ::prost::Oneof)]
968 pub enum Value {
969 #[prost(string, tag="2")]
970 Payload(::prost::alloc::string::String),
971 #[prost(message, tag="3")]
972 Error(super::RpcError),
973 }
974}
975#[allow(clippy::derive_partial_eq_without_eq)]
976#[derive(Clone, PartialEq, ::prost::Message)]
977pub struct RpcError {
978 #[prost(uint32, tag="1")]
979 pub code: u32,
980 #[prost(string, tag="2")]
981 pub message: ::prost::alloc::string::String,
982 #[prost(string, tag="3")]
983 pub data: ::prost::alloc::string::String,
984}
985#[allow(clippy::derive_partial_eq_without_eq)]
986#[derive(Clone, PartialEq, ::prost::Message)]
987pub struct ParticipantTracks {
988 #[prost(string, tag="1")]
990 pub participant_sid: ::prost::alloc::string::String,
991 #[prost(string, repeated, tag="2")]
992 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
993}
994#[allow(clippy::derive_partial_eq_without_eq)]
996#[derive(Clone, PartialEq, ::prost::Message)]
997pub struct ServerInfo {
998 #[prost(enumeration="server_info::Edition", tag="1")]
999 pub edition: i32,
1000 #[prost(string, tag="2")]
1001 pub version: ::prost::alloc::string::String,
1002 #[prost(int32, tag="3")]
1003 pub protocol: i32,
1004 #[prost(string, tag="4")]
1005 pub region: ::prost::alloc::string::String,
1006 #[prost(string, tag="5")]
1007 pub node_id: ::prost::alloc::string::String,
1008 #[prost(string, tag="6")]
1010 pub debug_info: ::prost::alloc::string::String,
1011 #[prost(int32, tag="7")]
1012 pub agent_protocol: i32,
1013}
1014pub mod server_info {
1016 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1017 #[repr(i32)]
1018 pub enum Edition {
1019 Standard = 0,
1020 Cloud = 1,
1021 }
1022 impl Edition {
1023 pub fn as_str_name(&self) -> &'static str {
1028 match self {
1029 Edition::Standard => "Standard",
1030 Edition::Cloud => "Cloud",
1031 }
1032 }
1033 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1035 match value {
1036 "Standard" => Some(Self::Standard),
1037 "Cloud" => Some(Self::Cloud),
1038 _ => None,
1039 }
1040 }
1041 }
1042}
1043#[allow(clippy::derive_partial_eq_without_eq)]
1045#[derive(Clone, PartialEq, ::prost::Message)]
1046pub struct ClientInfo {
1047 #[prost(enumeration="client_info::Sdk", tag="1")]
1048 pub sdk: i32,
1049 #[prost(string, tag="2")]
1050 pub version: ::prost::alloc::string::String,
1051 #[prost(int32, tag="3")]
1052 pub protocol: i32,
1053 #[prost(string, tag="4")]
1054 pub os: ::prost::alloc::string::String,
1055 #[prost(string, tag="5")]
1056 pub os_version: ::prost::alloc::string::String,
1057 #[prost(string, tag="6")]
1058 pub device_model: ::prost::alloc::string::String,
1059 #[prost(string, tag="7")]
1060 pub browser: ::prost::alloc::string::String,
1061 #[prost(string, tag="8")]
1062 pub browser_version: ::prost::alloc::string::String,
1063 #[prost(string, tag="9")]
1064 pub address: ::prost::alloc::string::String,
1065 #[prost(string, tag="10")]
1067 pub network: ::prost::alloc::string::String,
1068 #[prost(string, tag="11")]
1071 pub other_sdks: ::prost::alloc::string::String,
1072 #[prost(int32, tag="12")]
1074 pub client_protocol: i32,
1075}
1076pub mod client_info {
1078 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1079 #[repr(i32)]
1080 pub enum Sdk {
1081 Unknown = 0,
1082 Js = 1,
1083 Swift = 2,
1084 Android = 3,
1085 Flutter = 4,
1086 Go = 5,
1087 Unity = 6,
1088 ReactNative = 7,
1089 Rust = 8,
1090 Python = 9,
1091 Cpp = 10,
1092 UnityWeb = 11,
1093 Node = 12,
1094 Unreal = 13,
1095 Esp32 = 14,
1096 }
1097 impl Sdk {
1098 pub fn as_str_name(&self) -> &'static str {
1103 match self {
1104 Sdk::Unknown => "UNKNOWN",
1105 Sdk::Js => "JS",
1106 Sdk::Swift => "SWIFT",
1107 Sdk::Android => "ANDROID",
1108 Sdk::Flutter => "FLUTTER",
1109 Sdk::Go => "GO",
1110 Sdk::Unity => "UNITY",
1111 Sdk::ReactNative => "REACT_NATIVE",
1112 Sdk::Rust => "RUST",
1113 Sdk::Python => "PYTHON",
1114 Sdk::Cpp => "CPP",
1115 Sdk::UnityWeb => "UNITY_WEB",
1116 Sdk::Node => "NODE",
1117 Sdk::Unreal => "UNREAL",
1118 Sdk::Esp32 => "ESP32",
1119 }
1120 }
1121 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1123 match value {
1124 "UNKNOWN" => Some(Self::Unknown),
1125 "JS" => Some(Self::Js),
1126 "SWIFT" => Some(Self::Swift),
1127 "ANDROID" => Some(Self::Android),
1128 "FLUTTER" => Some(Self::Flutter),
1129 "GO" => Some(Self::Go),
1130 "UNITY" => Some(Self::Unity),
1131 "REACT_NATIVE" => Some(Self::ReactNative),
1132 "RUST" => Some(Self::Rust),
1133 "PYTHON" => Some(Self::Python),
1134 "CPP" => Some(Self::Cpp),
1135 "UNITY_WEB" => Some(Self::UnityWeb),
1136 "NODE" => Some(Self::Node),
1137 "UNREAL" => Some(Self::Unreal),
1138 "ESP32" => Some(Self::Esp32),
1139 _ => None,
1140 }
1141 }
1142 }
1143}
1144#[allow(clippy::derive_partial_eq_without_eq)]
1146#[derive(Clone, PartialEq, ::prost::Message)]
1147pub struct ClientConfiguration {
1148 #[prost(message, optional, tag="1")]
1149 pub video: ::core::option::Option<VideoConfiguration>,
1150 #[prost(message, optional, tag="2")]
1151 pub screen: ::core::option::Option<VideoConfiguration>,
1152 #[prost(enumeration="ClientConfigSetting", tag="3")]
1153 pub resume_connection: i32,
1154 #[prost(message, optional, tag="4")]
1155 pub disabled_codecs: ::core::option::Option<DisabledCodecs>,
1156 #[prost(enumeration="ClientConfigSetting", tag="5")]
1157 pub force_relay: i32,
1158}
1159#[allow(clippy::derive_partial_eq_without_eq)]
1160#[derive(Clone, PartialEq, ::prost::Message)]
1161pub struct VideoConfiguration {
1162 #[prost(enumeration="ClientConfigSetting", tag="1")]
1163 pub hardware_encoder: i32,
1164}
1165#[allow(clippy::derive_partial_eq_without_eq)]
1166#[derive(Clone, PartialEq, ::prost::Message)]
1167pub struct DisabledCodecs {
1168 #[prost(message, repeated, tag="1")]
1170 pub codecs: ::prost::alloc::vec::Vec<Codec>,
1171 #[prost(message, repeated, tag="2")]
1173 pub publish: ::prost::alloc::vec::Vec<Codec>,
1174}
1175#[allow(clippy::derive_partial_eq_without_eq)]
1176#[derive(Clone, PartialEq, ::prost::Message)]
1177pub struct RtpDrift {
1178 #[prost(message, optional, tag="1")]
1179 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1180 #[prost(message, optional, tag="2")]
1181 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1182 #[prost(double, tag="3")]
1183 pub duration: f64,
1184 #[prost(uint64, tag="4")]
1185 pub start_timestamp: u64,
1186 #[prost(uint64, tag="5")]
1187 pub end_timestamp: u64,
1188 #[prost(uint64, tag="6")]
1189 pub rtp_clock_ticks: u64,
1190 #[prost(int64, tag="7")]
1191 pub drift_samples: i64,
1192 #[prost(double, tag="8")]
1193 pub drift_ms: f64,
1194 #[prost(double, tag="9")]
1195 pub clock_rate: f64,
1196}
1197#[allow(clippy::derive_partial_eq_without_eq)]
1198#[derive(Clone, PartialEq, ::prost::Message)]
1199pub struct RtpStats {
1200 #[prost(message, optional, tag="1")]
1201 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1202 #[prost(message, optional, tag="2")]
1203 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1204 #[prost(double, tag="3")]
1205 pub duration: f64,
1206 #[prost(uint32, tag="4")]
1207 pub packets: u32,
1208 #[prost(double, tag="5")]
1209 pub packet_rate: f64,
1210 #[prost(uint64, tag="6")]
1211 pub bytes: u64,
1212 #[prost(uint64, tag="39")]
1213 pub header_bytes: u64,
1214 #[prost(double, tag="7")]
1215 pub bitrate: f64,
1216 #[prost(uint32, tag="8")]
1217 pub packets_lost: u32,
1218 #[prost(double, tag="9")]
1219 pub packet_loss_rate: f64,
1220 #[prost(float, tag="10")]
1221 pub packet_loss_percentage: f32,
1222 #[prost(uint32, tag="11")]
1223 pub packets_duplicate: u32,
1224 #[prost(double, tag="12")]
1225 pub packet_duplicate_rate: f64,
1226 #[prost(uint64, tag="13")]
1227 pub bytes_duplicate: u64,
1228 #[prost(uint64, tag="40")]
1229 pub header_bytes_duplicate: u64,
1230 #[prost(double, tag="14")]
1231 pub bitrate_duplicate: f64,
1232 #[prost(uint32, tag="15")]
1233 pub packets_padding: u32,
1234 #[prost(double, tag="16")]
1235 pub packet_padding_rate: f64,
1236 #[prost(uint64, tag="17")]
1237 pub bytes_padding: u64,
1238 #[prost(uint64, tag="41")]
1239 pub header_bytes_padding: u64,
1240 #[prost(double, tag="18")]
1241 pub bitrate_padding: f64,
1242 #[prost(uint32, tag="19")]
1243 pub packets_out_of_order: u32,
1244 #[prost(uint32, tag="20")]
1245 pub frames: u32,
1246 #[prost(double, tag="21")]
1247 pub frame_rate: f64,
1248 #[prost(double, tag="22")]
1249 pub jitter_current: f64,
1250 #[prost(double, tag="23")]
1251 pub jitter_max: f64,
1252 #[prost(map="int32, uint32", tag="24")]
1253 pub gap_histogram: ::std::collections::HashMap<i32, u32>,
1254 #[prost(uint32, tag="25")]
1255 pub nacks: u32,
1256 #[prost(uint32, tag="37")]
1257 pub nack_acks: u32,
1258 #[prost(uint32, tag="26")]
1259 pub nack_misses: u32,
1260 #[prost(uint32, tag="38")]
1261 pub nack_repeated: u32,
1262 #[prost(uint32, tag="27")]
1263 pub plis: u32,
1264 #[prost(message, optional, tag="28")]
1265 pub last_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1266 #[prost(uint32, tag="29")]
1267 pub firs: u32,
1268 #[prost(message, optional, tag="30")]
1269 pub last_fir: ::core::option::Option<::pbjson_types::Timestamp>,
1270 #[prost(uint32, tag="31")]
1271 pub rtt_current: u32,
1272 #[prost(uint32, tag="32")]
1273 pub rtt_max: u32,
1274 #[prost(uint32, tag="33")]
1275 pub key_frames: u32,
1276 #[prost(message, optional, tag="34")]
1277 pub last_key_frame: ::core::option::Option<::pbjson_types::Timestamp>,
1278 #[prost(uint32, tag="35")]
1279 pub layer_lock_plis: u32,
1280 #[prost(message, optional, tag="36")]
1281 pub last_layer_lock_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1282 #[prost(message, optional, tag="44")]
1283 pub packet_drift: ::core::option::Option<RtpDrift>,
1284 #[prost(message, optional, tag="45")]
1285 pub ntp_report_drift: ::core::option::Option<RtpDrift>,
1286 #[prost(message, optional, tag="46")]
1287 pub rebased_report_drift: ::core::option::Option<RtpDrift>,
1288 #[prost(message, optional, tag="47")]
1290 pub received_report_drift: ::core::option::Option<RtpDrift>,
1291}
1292#[allow(clippy::derive_partial_eq_without_eq)]
1293#[derive(Clone, PartialEq, ::prost::Message)]
1294pub struct RtcpSenderReportState {
1295 #[prost(uint32, tag="1")]
1296 pub rtp_timestamp: u32,
1297 #[prost(uint64, tag="2")]
1298 pub rtp_timestamp_ext: u64,
1299 #[prost(uint64, tag="3")]
1300 pub ntp_timestamp: u64,
1301 #[prost(int64, tag="4")]
1303 pub at: i64,
1304 #[prost(int64, tag="5")]
1305 pub at_adjusted: i64,
1306 #[prost(uint32, tag="6")]
1307 pub packets: u32,
1308 #[prost(uint64, tag="7")]
1309 pub octets: u64,
1310}
1311#[allow(clippy::derive_partial_eq_without_eq)]
1312#[derive(Clone, PartialEq, ::prost::Message)]
1313pub struct RtpForwarderState {
1314 #[prost(bool, tag="1")]
1315 pub started: bool,
1316 #[prost(int32, tag="2")]
1317 pub reference_layer_spatial: i32,
1318 #[prost(int64, tag="3")]
1319 pub pre_start_time: i64,
1320 #[prost(uint64, tag="4")]
1321 pub ext_first_timestamp: u64,
1322 #[prost(uint64, tag="5")]
1323 pub dummy_start_timestamp_offset: u64,
1324 #[prost(message, optional, tag="6")]
1325 pub rtp_munger: ::core::option::Option<RtpMungerState>,
1326 #[prost(message, repeated, tag="8")]
1327 pub sender_report_state: ::prost::alloc::vec::Vec<RtcpSenderReportState>,
1328 #[prost(oneof="rtp_forwarder_state::CodecMunger", tags="7")]
1329 pub codec_munger: ::core::option::Option<rtp_forwarder_state::CodecMunger>,
1330}
1331pub mod rtp_forwarder_state {
1333 #[allow(clippy::derive_partial_eq_without_eq)]
1334#[derive(Clone, PartialEq, ::prost::Oneof)]
1335 pub enum CodecMunger {
1336 #[prost(message, tag="7")]
1337 Vp8Munger(super::Vp8MungerState),
1338 }
1339}
1340#[allow(clippy::derive_partial_eq_without_eq)]
1341#[derive(Clone, PartialEq, ::prost::Message)]
1342pub struct RtpMungerState {
1343 #[prost(uint64, tag="1")]
1344 pub ext_last_sequence_number: u64,
1345 #[prost(uint64, tag="2")]
1346 pub ext_second_last_sequence_number: u64,
1347 #[prost(uint64, tag="3")]
1348 pub ext_last_timestamp: u64,
1349 #[prost(uint64, tag="4")]
1350 pub ext_second_last_timestamp: u64,
1351 #[prost(bool, tag="5")]
1352 pub last_marker: bool,
1353 #[prost(bool, tag="6")]
1354 pub second_last_marker: bool,
1355}
1356#[allow(clippy::derive_partial_eq_without_eq)]
1357#[derive(Clone, PartialEq, ::prost::Message)]
1358pub struct Vp8MungerState {
1359 #[prost(int32, tag="1")]
1360 pub ext_last_picture_id: i32,
1361 #[prost(bool, tag="2")]
1362 pub picture_id_used: bool,
1363 #[prost(uint32, tag="3")]
1364 pub last_tl0_pic_idx: u32,
1365 #[prost(bool, tag="4")]
1366 pub tl0_pic_idx_used: bool,
1367 #[prost(bool, tag="5")]
1368 pub tid_used: bool,
1369 #[prost(uint32, tag="6")]
1370 pub last_key_idx: u32,
1371 #[prost(bool, tag="7")]
1372 pub key_idx_used: bool,
1373}
1374#[allow(clippy::derive_partial_eq_without_eq)]
1375#[derive(Clone, PartialEq, ::prost::Message)]
1376pub struct TimedVersion {
1377 #[prost(int64, tag="1")]
1378 pub unix_micro: i64,
1379 #[prost(int32, tag="2")]
1380 pub ticks: i32,
1381}
1382#[allow(clippy::derive_partial_eq_without_eq)]
1383#[derive(Clone, PartialEq, ::prost::Message)]
1384pub struct DataStream {
1385}
1386pub mod data_stream {
1388 #[allow(clippy::derive_partial_eq_without_eq)]
1390#[derive(Clone, PartialEq, ::prost::Message)]
1391 pub struct TextHeader {
1392 #[prost(enumeration="OperationType", tag="1")]
1393 pub operation_type: i32,
1394 #[prost(int32, tag="2")]
1396 pub version: i32,
1397 #[prost(string, tag="3")]
1399 pub reply_to_stream_id: ::prost::alloc::string::String,
1400 #[prost(string, repeated, tag="4")]
1402 pub attached_stream_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1403 #[prost(bool, tag="5")]
1405 pub generated: bool,
1406 }
1407 #[allow(clippy::derive_partial_eq_without_eq)]
1409#[derive(Clone, PartialEq, ::prost::Message)]
1410 pub struct ByteHeader {
1411 #[prost(string, tag="1")]
1412 pub name: ::prost::alloc::string::String,
1413 }
1414 #[allow(clippy::derive_partial_eq_without_eq)]
1416#[derive(Clone, PartialEq, ::prost::Message)]
1417 pub struct Header {
1418 #[prost(string, tag="1")]
1420 pub stream_id: ::prost::alloc::string::String,
1421 #[prost(int64, tag="2")]
1423 pub timestamp: i64,
1424 #[prost(string, tag="3")]
1425 pub topic: ::prost::alloc::string::String,
1426 #[prost(string, tag="4")]
1427 pub mime_type: ::prost::alloc::string::String,
1428 #[prost(uint64, optional, tag="5")]
1430 pub total_length: ::core::option::Option<u64>,
1431 #[deprecated]
1433 #[prost(enumeration="super::encryption::Type", tag="7")]
1434 pub encryption_type: i32,
1435 #[prost(map="string, string", tag="8")]
1437 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1438 #[prost(oneof="header::ContentHeader", tags="9, 10")]
1440 pub content_header: ::core::option::Option<header::ContentHeader>,
1441 }
1442 pub mod header {
1444 #[allow(clippy::derive_partial_eq_without_eq)]
1446#[derive(Clone, PartialEq, ::prost::Oneof)]
1447 pub enum ContentHeader {
1448 #[prost(message, tag="9")]
1449 TextHeader(super::TextHeader),
1450 #[prost(message, tag="10")]
1451 ByteHeader(super::ByteHeader),
1452 }
1453 }
1454 #[allow(clippy::derive_partial_eq_without_eq)]
1455#[derive(Clone, PartialEq, ::prost::Message)]
1456 pub struct Chunk {
1457 #[prost(string, tag="1")]
1459 pub stream_id: ::prost::alloc::string::String,
1460 #[prost(uint64, tag="2")]
1461 pub chunk_index: u64,
1462 #[prost(bytes="vec", tag="3")]
1464 pub content: ::prost::alloc::vec::Vec<u8>,
1465 #[prost(int32, tag="4")]
1467 pub version: i32,
1468 #[deprecated]
1470 #[prost(bytes="vec", optional, tag="5")]
1471 pub iv: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1472 }
1473 #[allow(clippy::derive_partial_eq_without_eq)]
1474#[derive(Clone, PartialEq, ::prost::Message)]
1475 pub struct Trailer {
1476 #[prost(string, tag="1")]
1478 pub stream_id: ::prost::alloc::string::String,
1479 #[prost(string, tag="2")]
1481 pub reason: ::prost::alloc::string::String,
1482 #[prost(map="string, string", tag="3")]
1484 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1485 }
1486 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1488 #[repr(i32)]
1489 pub enum OperationType {
1490 Create = 0,
1491 Update = 1,
1492 Delete = 2,
1493 Reaction = 3,
1494 }
1495 impl OperationType {
1496 pub fn as_str_name(&self) -> &'static str {
1501 match self {
1502 OperationType::Create => "CREATE",
1503 OperationType::Update => "UPDATE",
1504 OperationType::Delete => "DELETE",
1505 OperationType::Reaction => "REACTION",
1506 }
1507 }
1508 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1510 match value {
1511 "CREATE" => Some(Self::Create),
1512 "UPDATE" => Some(Self::Update),
1513 "DELETE" => Some(Self::Delete),
1514 "REACTION" => Some(Self::Reaction),
1515 _ => None,
1516 }
1517 }
1518 }
1519}
1520#[allow(clippy::derive_partial_eq_without_eq)]
1521#[derive(Clone, PartialEq, ::prost::Message)]
1522pub struct FilterParams {
1523 #[prost(string, repeated, tag="1")]
1524 pub include_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1525 #[prost(string, repeated, tag="2")]
1526 pub exclude_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1527}
1528#[allow(clippy::derive_partial_eq_without_eq)]
1529#[derive(Clone, PartialEq, ::prost::Message)]
1530pub struct WebhookConfig {
1531 #[prost(string, tag="1")]
1532 pub url: ::prost::alloc::string::String,
1533 #[prost(string, tag="2")]
1534 pub signing_key: ::prost::alloc::string::String,
1535 #[prost(message, optional, tag="3")]
1536 pub filter_params: ::core::option::Option<FilterParams>,
1537}
1538#[allow(clippy::derive_partial_eq_without_eq)]
1539#[derive(Clone, PartialEq, ::prost::Message)]
1540pub struct SubscribedAudioCodec {
1541 #[prost(string, tag="1")]
1542 pub codec: ::prost::alloc::string::String,
1543 #[prost(bool, tag="2")]
1544 pub enabled: bool,
1545}
1546#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1547#[repr(i32)]
1548pub enum AudioCodec {
1549 DefaultAc = 0,
1550 Opus = 1,
1551 Aac = 2,
1552 AcMp3 = 3,
1553}
1554impl AudioCodec {
1555 pub fn as_str_name(&self) -> &'static str {
1560 match self {
1561 AudioCodec::DefaultAc => "DEFAULT_AC",
1562 AudioCodec::Opus => "OPUS",
1563 AudioCodec::Aac => "AAC",
1564 AudioCodec::AcMp3 => "AC_MP3",
1565 }
1566 }
1567 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1569 match value {
1570 "DEFAULT_AC" => Some(Self::DefaultAc),
1571 "OPUS" => Some(Self::Opus),
1572 "AAC" => Some(Self::Aac),
1573 "AC_MP3" => Some(Self::AcMp3),
1574 _ => None,
1575 }
1576 }
1577}
1578#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1579#[repr(i32)]
1580pub enum VideoCodec {
1581 DefaultVc = 0,
1582 H264Baseline = 1,
1583 H264Main = 2,
1584 H264High = 3,
1585 Vp8 = 4,
1586}
1587impl VideoCodec {
1588 pub fn as_str_name(&self) -> &'static str {
1593 match self {
1594 VideoCodec::DefaultVc => "DEFAULT_VC",
1595 VideoCodec::H264Baseline => "H264_BASELINE",
1596 VideoCodec::H264Main => "H264_MAIN",
1597 VideoCodec::H264High => "H264_HIGH",
1598 VideoCodec::Vp8 => "VP8",
1599 }
1600 }
1601 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1603 match value {
1604 "DEFAULT_VC" => Some(Self::DefaultVc),
1605 "H264_BASELINE" => Some(Self::H264Baseline),
1606 "H264_MAIN" => Some(Self::H264Main),
1607 "H264_HIGH" => Some(Self::H264High),
1608 "VP8" => Some(Self::Vp8),
1609 _ => None,
1610 }
1611 }
1612}
1613#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1614#[repr(i32)]
1615pub enum ImageCodec {
1616 IcDefault = 0,
1617 IcJpeg = 1,
1618}
1619impl ImageCodec {
1620 pub fn as_str_name(&self) -> &'static str {
1625 match self {
1626 ImageCodec::IcDefault => "IC_DEFAULT",
1627 ImageCodec::IcJpeg => "IC_JPEG",
1628 }
1629 }
1630 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1632 match value {
1633 "IC_DEFAULT" => Some(Self::IcDefault),
1634 "IC_JPEG" => Some(Self::IcJpeg),
1635 _ => None,
1636 }
1637 }
1638}
1639#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1641#[repr(i32)]
1642pub enum BackupCodecPolicy {
1643 PreferRegression = 0,
1646 Simulcast = 1,
1648 Regression = 2,
1650}
1651impl BackupCodecPolicy {
1652 pub fn as_str_name(&self) -> &'static str {
1657 match self {
1658 BackupCodecPolicy::PreferRegression => "PREFER_REGRESSION",
1659 BackupCodecPolicy::Simulcast => "SIMULCAST",
1660 BackupCodecPolicy::Regression => "REGRESSION",
1661 }
1662 }
1663 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1665 match value {
1666 "PREFER_REGRESSION" => Some(Self::PreferRegression),
1667 "SIMULCAST" => Some(Self::Simulcast),
1668 "REGRESSION" => Some(Self::Regression),
1669 _ => None,
1670 }
1671 }
1672}
1673#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1674#[repr(i32)]
1675pub enum TrackType {
1676 Audio = 0,
1677 Video = 1,
1678 Data = 2,
1679}
1680impl TrackType {
1681 pub fn as_str_name(&self) -> &'static str {
1686 match self {
1687 TrackType::Audio => "AUDIO",
1688 TrackType::Video => "VIDEO",
1689 TrackType::Data => "DATA",
1690 }
1691 }
1692 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1694 match value {
1695 "AUDIO" => Some(Self::Audio),
1696 "VIDEO" => Some(Self::Video),
1697 "DATA" => Some(Self::Data),
1698 _ => None,
1699 }
1700 }
1701}
1702#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1703#[repr(i32)]
1704pub enum TrackSource {
1705 Unknown = 0,
1706 Camera = 1,
1707 Microphone = 2,
1708 ScreenShare = 3,
1709 ScreenShareAudio = 4,
1710}
1711impl TrackSource {
1712 pub fn as_str_name(&self) -> &'static str {
1717 match self {
1718 TrackSource::Unknown => "UNKNOWN",
1719 TrackSource::Camera => "CAMERA",
1720 TrackSource::Microphone => "MICROPHONE",
1721 TrackSource::ScreenShare => "SCREEN_SHARE",
1722 TrackSource::ScreenShareAudio => "SCREEN_SHARE_AUDIO",
1723 }
1724 }
1725 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1727 match value {
1728 "UNKNOWN" => Some(Self::Unknown),
1729 "CAMERA" => Some(Self::Camera),
1730 "MICROPHONE" => Some(Self::Microphone),
1731 "SCREEN_SHARE" => Some(Self::ScreenShare),
1732 "SCREEN_SHARE_AUDIO" => Some(Self::ScreenShareAudio),
1733 _ => None,
1734 }
1735 }
1736}
1737#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1738#[repr(i32)]
1739pub enum DataTrackExtensionId {
1740 DteiInvalid = 0,
1741 DteiParticipantSid = 1,
1742}
1743impl DataTrackExtensionId {
1744 pub fn as_str_name(&self) -> &'static str {
1749 match self {
1750 DataTrackExtensionId::DteiInvalid => "DTEI_INVALID",
1751 DataTrackExtensionId::DteiParticipantSid => "DTEI_PARTICIPANT_SID",
1752 }
1753 }
1754 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1756 match value {
1757 "DTEI_INVALID" => Some(Self::DteiInvalid),
1758 "DTEI_PARTICIPANT_SID" => Some(Self::DteiParticipantSid),
1759 _ => None,
1760 }
1761 }
1762}
1763#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1764#[repr(i32)]
1765pub enum VideoQuality {
1766 Low = 0,
1767 Medium = 1,
1768 High = 2,
1769 Off = 3,
1770}
1771impl VideoQuality {
1772 pub fn as_str_name(&self) -> &'static str {
1777 match self {
1778 VideoQuality::Low => "LOW",
1779 VideoQuality::Medium => "MEDIUM",
1780 VideoQuality::High => "HIGH",
1781 VideoQuality::Off => "OFF",
1782 }
1783 }
1784 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1786 match value {
1787 "LOW" => Some(Self::Low),
1788 "MEDIUM" => Some(Self::Medium),
1789 "HIGH" => Some(Self::High),
1790 "OFF" => Some(Self::Off),
1791 _ => None,
1792 }
1793 }
1794}
1795#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1796#[repr(i32)]
1797pub enum ConnectionQuality {
1798 Poor = 0,
1799 Good = 1,
1800 Excellent = 2,
1801 Lost = 3,
1802}
1803impl ConnectionQuality {
1804 pub fn as_str_name(&self) -> &'static str {
1809 match self {
1810 ConnectionQuality::Poor => "POOR",
1811 ConnectionQuality::Good => "GOOD",
1812 ConnectionQuality::Excellent => "EXCELLENT",
1813 ConnectionQuality::Lost => "LOST",
1814 }
1815 }
1816 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1818 match value {
1819 "POOR" => Some(Self::Poor),
1820 "GOOD" => Some(Self::Good),
1821 "EXCELLENT" => Some(Self::Excellent),
1822 "LOST" => Some(Self::Lost),
1823 _ => None,
1824 }
1825 }
1826}
1827#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1828#[repr(i32)]
1829pub enum ClientConfigSetting {
1830 Unset = 0,
1831 Disabled = 1,
1832 Enabled = 2,
1833}
1834impl ClientConfigSetting {
1835 pub fn as_str_name(&self) -> &'static str {
1840 match self {
1841 ClientConfigSetting::Unset => "UNSET",
1842 ClientConfigSetting::Disabled => "DISABLED",
1843 ClientConfigSetting::Enabled => "ENABLED",
1844 }
1845 }
1846 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1848 match value {
1849 "UNSET" => Some(Self::Unset),
1850 "DISABLED" => Some(Self::Disabled),
1851 "ENABLED" => Some(Self::Enabled),
1852 _ => None,
1853 }
1854 }
1855}
1856#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1857#[repr(i32)]
1858pub enum DisconnectReason {
1859 UnknownReason = 0,
1860 ClientInitiated = 1,
1862 DuplicateIdentity = 2,
1864 ServerShutdown = 3,
1866 ParticipantRemoved = 4,
1868 RoomDeleted = 5,
1870 StateMismatch = 6,
1872 JoinFailure = 7,
1874 Migration = 8,
1876 SignalClose = 9,
1878 RoomClosed = 10,
1880 UserUnavailable = 11,
1882 UserRejected = 12,
1884 SipTrunkFailure = 13,
1886 ConnectionTimeout = 14,
1888 MediaFailure = 15,
1890}
1891impl DisconnectReason {
1892 pub fn as_str_name(&self) -> &'static str {
1897 match self {
1898 DisconnectReason::UnknownReason => "UNKNOWN_REASON",
1899 DisconnectReason::ClientInitiated => "CLIENT_INITIATED",
1900 DisconnectReason::DuplicateIdentity => "DUPLICATE_IDENTITY",
1901 DisconnectReason::ServerShutdown => "SERVER_SHUTDOWN",
1902 DisconnectReason::ParticipantRemoved => "PARTICIPANT_REMOVED",
1903 DisconnectReason::RoomDeleted => "ROOM_DELETED",
1904 DisconnectReason::StateMismatch => "STATE_MISMATCH",
1905 DisconnectReason::JoinFailure => "JOIN_FAILURE",
1906 DisconnectReason::Migration => "MIGRATION",
1907 DisconnectReason::SignalClose => "SIGNAL_CLOSE",
1908 DisconnectReason::RoomClosed => "ROOM_CLOSED",
1909 DisconnectReason::UserUnavailable => "USER_UNAVAILABLE",
1910 DisconnectReason::UserRejected => "USER_REJECTED",
1911 DisconnectReason::SipTrunkFailure => "SIP_TRUNK_FAILURE",
1912 DisconnectReason::ConnectionTimeout => "CONNECTION_TIMEOUT",
1913 DisconnectReason::MediaFailure => "MEDIA_FAILURE",
1914 }
1915 }
1916 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1918 match value {
1919 "UNKNOWN_REASON" => Some(Self::UnknownReason),
1920 "CLIENT_INITIATED" => Some(Self::ClientInitiated),
1921 "DUPLICATE_IDENTITY" => Some(Self::DuplicateIdentity),
1922 "SERVER_SHUTDOWN" => Some(Self::ServerShutdown),
1923 "PARTICIPANT_REMOVED" => Some(Self::ParticipantRemoved),
1924 "ROOM_DELETED" => Some(Self::RoomDeleted),
1925 "STATE_MISMATCH" => Some(Self::StateMismatch),
1926 "JOIN_FAILURE" => Some(Self::JoinFailure),
1927 "MIGRATION" => Some(Self::Migration),
1928 "SIGNAL_CLOSE" => Some(Self::SignalClose),
1929 "ROOM_CLOSED" => Some(Self::RoomClosed),
1930 "USER_UNAVAILABLE" => Some(Self::UserUnavailable),
1931 "USER_REJECTED" => Some(Self::UserRejected),
1932 "SIP_TRUNK_FAILURE" => Some(Self::SipTrunkFailure),
1933 "CONNECTION_TIMEOUT" => Some(Self::ConnectionTimeout),
1934 "MEDIA_FAILURE" => Some(Self::MediaFailure),
1935 _ => None,
1936 }
1937 }
1938}
1939#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1940#[repr(i32)]
1941pub enum ReconnectReason {
1942 RrUnknown = 0,
1943 RrSignalDisconnected = 1,
1944 RrPublisherFailed = 2,
1945 RrSubscriberFailed = 3,
1946 RrSwitchCandidate = 4,
1947}
1948impl ReconnectReason {
1949 pub fn as_str_name(&self) -> &'static str {
1954 match self {
1955 ReconnectReason::RrUnknown => "RR_UNKNOWN",
1956 ReconnectReason::RrSignalDisconnected => "RR_SIGNAL_DISCONNECTED",
1957 ReconnectReason::RrPublisherFailed => "RR_PUBLISHER_FAILED",
1958 ReconnectReason::RrSubscriberFailed => "RR_SUBSCRIBER_FAILED",
1959 ReconnectReason::RrSwitchCandidate => "RR_SWITCH_CANDIDATE",
1960 }
1961 }
1962 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1964 match value {
1965 "RR_UNKNOWN" => Some(Self::RrUnknown),
1966 "RR_SIGNAL_DISCONNECTED" => Some(Self::RrSignalDisconnected),
1967 "RR_PUBLISHER_FAILED" => Some(Self::RrPublisherFailed),
1968 "RR_SUBSCRIBER_FAILED" => Some(Self::RrSubscriberFailed),
1969 "RR_SWITCH_CANDIDATE" => Some(Self::RrSwitchCandidate),
1970 _ => None,
1971 }
1972 }
1973}
1974#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1975#[repr(i32)]
1976pub enum SubscriptionError {
1977 SeUnknown = 0,
1978 SeCodecUnsupported = 1,
1979 SeTrackNotfound = 2,
1980}
1981impl SubscriptionError {
1982 pub fn as_str_name(&self) -> &'static str {
1987 match self {
1988 SubscriptionError::SeUnknown => "SE_UNKNOWN",
1989 SubscriptionError::SeCodecUnsupported => "SE_CODEC_UNSUPPORTED",
1990 SubscriptionError::SeTrackNotfound => "SE_TRACK_NOTFOUND",
1991 }
1992 }
1993 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1995 match value {
1996 "SE_UNKNOWN" => Some(Self::SeUnknown),
1997 "SE_CODEC_UNSUPPORTED" => Some(Self::SeCodecUnsupported),
1998 "SE_TRACK_NOTFOUND" => Some(Self::SeTrackNotfound),
1999 _ => None,
2000 }
2001 }
2002}
2003#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2004#[repr(i32)]
2005pub enum AudioTrackFeature {
2006 TfStereo = 0,
2007 TfNoDtx = 1,
2008 TfAutoGainControl = 2,
2009 TfEchoCancellation = 3,
2010 TfNoiseSuppression = 4,
2011 TfEnhancedNoiseCancellation = 5,
2012 TfPreconnectBuffer = 6,
2014}
2015impl AudioTrackFeature {
2016 pub fn as_str_name(&self) -> &'static str {
2021 match self {
2022 AudioTrackFeature::TfStereo => "TF_STEREO",
2023 AudioTrackFeature::TfNoDtx => "TF_NO_DTX",
2024 AudioTrackFeature::TfAutoGainControl => "TF_AUTO_GAIN_CONTROL",
2025 AudioTrackFeature::TfEchoCancellation => "TF_ECHO_CANCELLATION",
2026 AudioTrackFeature::TfNoiseSuppression => "TF_NOISE_SUPPRESSION",
2027 AudioTrackFeature::TfEnhancedNoiseCancellation => "TF_ENHANCED_NOISE_CANCELLATION",
2028 AudioTrackFeature::TfPreconnectBuffer => "TF_PRECONNECT_BUFFER",
2029 }
2030 }
2031 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2033 match value {
2034 "TF_STEREO" => Some(Self::TfStereo),
2035 "TF_NO_DTX" => Some(Self::TfNoDtx),
2036 "TF_AUTO_GAIN_CONTROL" => Some(Self::TfAutoGainControl),
2037 "TF_ECHO_CANCELLATION" => Some(Self::TfEchoCancellation),
2038 "TF_NOISE_SUPPRESSION" => Some(Self::TfNoiseSuppression),
2039 "TF_ENHANCED_NOISE_CANCELLATION" => Some(Self::TfEnhancedNoiseCancellation),
2040 "TF_PRECONNECT_BUFFER" => Some(Self::TfPreconnectBuffer),
2041 _ => None,
2042 }
2043 }
2044}
2045#[allow(clippy::derive_partial_eq_without_eq)]
2047#[derive(Clone, PartialEq, ::prost::Message)]
2048pub struct RoomCompositeEgressRequest {
2049 #[prost(string, tag="1")]
2051 pub room_name: ::prost::alloc::string::String,
2052 #[prost(string, tag="2")]
2054 pub layout: ::prost::alloc::string::String,
2055 #[prost(bool, tag="3")]
2057 pub audio_only: bool,
2058 #[prost(enumeration="AudioMixing", tag="15")]
2060 pub audio_mixing: i32,
2061 #[prost(bool, tag="4")]
2063 pub video_only: bool,
2064 #[prost(string, tag="5")]
2066 pub custom_base_url: ::prost::alloc::string::String,
2067 #[prost(message, repeated, tag="11")]
2068 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2069 #[prost(message, repeated, tag="12")]
2070 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2071 #[prost(message, repeated, tag="13")]
2072 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2073 #[prost(message, repeated, tag="14")]
2074 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2075 #[prost(message, repeated, tag="16")]
2077 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2078 #[prost(oneof="room_composite_egress_request::Output", tags="6, 7, 10")]
2080 pub output: ::core::option::Option<room_composite_egress_request::Output>,
2081 #[prost(oneof="room_composite_egress_request::Options", tags="8, 9")]
2082 pub options: ::core::option::Option<room_composite_egress_request::Options>,
2083}
2084pub mod room_composite_egress_request {
2086 #[allow(clippy::derive_partial_eq_without_eq)]
2088#[derive(Clone, PartialEq, ::prost::Oneof)]
2089 pub enum Output {
2090 #[prost(message, tag="6")]
2091 File(super::EncodedFileOutput),
2092 #[prost(message, tag="7")]
2093 Stream(super::StreamOutput),
2094 #[prost(message, tag="10")]
2095 Segments(super::SegmentedFileOutput),
2096 }
2097 #[allow(clippy::derive_partial_eq_without_eq)]
2098#[derive(Clone, PartialEq, ::prost::Oneof)]
2099 pub enum Options {
2100 #[prost(enumeration="super::EncodingOptionsPreset", tag="8")]
2102 Preset(i32),
2103 #[prost(message, tag="9")]
2105 Advanced(super::EncodingOptions),
2106 }
2107}
2108#[allow(clippy::derive_partial_eq_without_eq)]
2110#[derive(Clone, PartialEq, ::prost::Message)]
2111pub struct WebEgressRequest {
2112 #[prost(string, tag="1")]
2113 pub url: ::prost::alloc::string::String,
2114 #[prost(bool, tag="2")]
2115 pub audio_only: bool,
2116 #[prost(bool, tag="3")]
2117 pub video_only: bool,
2118 #[prost(bool, tag="12")]
2119 pub await_start_signal: bool,
2120 #[prost(message, repeated, tag="9")]
2121 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2122 #[prost(message, repeated, tag="10")]
2123 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2124 #[prost(message, repeated, tag="11")]
2125 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2126 #[prost(message, repeated, tag="13")]
2127 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2128 #[prost(message, repeated, tag="14")]
2130 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2131 #[prost(oneof="web_egress_request::Output", tags="4, 5, 6")]
2133 pub output: ::core::option::Option<web_egress_request::Output>,
2134 #[prost(oneof="web_egress_request::Options", tags="7, 8")]
2135 pub options: ::core::option::Option<web_egress_request::Options>,
2136}
2137pub mod web_egress_request {
2139 #[allow(clippy::derive_partial_eq_without_eq)]
2141#[derive(Clone, PartialEq, ::prost::Oneof)]
2142 pub enum Output {
2143 #[prost(message, tag="4")]
2144 File(super::EncodedFileOutput),
2145 #[prost(message, tag="5")]
2146 Stream(super::StreamOutput),
2147 #[prost(message, tag="6")]
2148 Segments(super::SegmentedFileOutput),
2149 }
2150 #[allow(clippy::derive_partial_eq_without_eq)]
2151#[derive(Clone, PartialEq, ::prost::Oneof)]
2152 pub enum Options {
2153 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
2154 Preset(i32),
2155 #[prost(message, tag="8")]
2156 Advanced(super::EncodingOptions),
2157 }
2158}
2159#[allow(clippy::derive_partial_eq_without_eq)]
2161#[derive(Clone, PartialEq, ::prost::Message)]
2162pub struct ParticipantEgressRequest {
2163 #[prost(string, tag="1")]
2165 pub room_name: ::prost::alloc::string::String,
2166 #[prost(string, tag="2")]
2168 pub identity: ::prost::alloc::string::String,
2169 #[prost(bool, tag="3")]
2171 pub screen_share: bool,
2172 #[prost(message, repeated, tag="6")]
2173 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2174 #[prost(message, repeated, tag="7")]
2175 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2176 #[prost(message, repeated, tag="8")]
2177 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2178 #[prost(message, repeated, tag="9")]
2179 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2180 #[prost(message, repeated, tag="10")]
2182 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2183 #[prost(oneof="participant_egress_request::Options", tags="4, 5")]
2184 pub options: ::core::option::Option<participant_egress_request::Options>,
2185}
2186pub mod participant_egress_request {
2188 #[allow(clippy::derive_partial_eq_without_eq)]
2189#[derive(Clone, PartialEq, ::prost::Oneof)]
2190 pub enum Options {
2191 #[prost(enumeration="super::EncodingOptionsPreset", tag="4")]
2193 Preset(i32),
2194 #[prost(message, tag="5")]
2196 Advanced(super::EncodingOptions),
2197 }
2198}
2199#[allow(clippy::derive_partial_eq_without_eq)]
2201#[derive(Clone, PartialEq, ::prost::Message)]
2202pub struct TrackCompositeEgressRequest {
2203 #[prost(string, tag="1")]
2205 pub room_name: ::prost::alloc::string::String,
2206 #[prost(string, tag="2")]
2208 pub audio_track_id: ::prost::alloc::string::String,
2209 #[prost(string, tag="3")]
2211 pub video_track_id: ::prost::alloc::string::String,
2212 #[prost(message, repeated, tag="11")]
2213 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2214 #[prost(message, repeated, tag="12")]
2215 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2216 #[prost(message, repeated, tag="13")]
2217 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2218 #[prost(message, repeated, tag="14")]
2219 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2220 #[prost(message, repeated, tag="15")]
2222 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2223 #[prost(oneof="track_composite_egress_request::Output", tags="4, 5, 8")]
2225 pub output: ::core::option::Option<track_composite_egress_request::Output>,
2226 #[prost(oneof="track_composite_egress_request::Options", tags="6, 7")]
2227 pub options: ::core::option::Option<track_composite_egress_request::Options>,
2228}
2229pub mod track_composite_egress_request {
2231 #[allow(clippy::derive_partial_eq_without_eq)]
2233#[derive(Clone, PartialEq, ::prost::Oneof)]
2234 pub enum Output {
2235 #[prost(message, tag="4")]
2236 File(super::EncodedFileOutput),
2237 #[prost(message, tag="5")]
2238 Stream(super::StreamOutput),
2239 #[prost(message, tag="8")]
2240 Segments(super::SegmentedFileOutput),
2241 }
2242 #[allow(clippy::derive_partial_eq_without_eq)]
2243#[derive(Clone, PartialEq, ::prost::Oneof)]
2244 pub enum Options {
2245 #[prost(enumeration="super::EncodingOptionsPreset", tag="6")]
2247 Preset(i32),
2248 #[prost(message, tag="7")]
2250 Advanced(super::EncodingOptions),
2251 }
2252}
2253#[allow(clippy::derive_partial_eq_without_eq)]
2255#[derive(Clone, PartialEq, ::prost::Message)]
2256pub struct TrackEgressRequest {
2257 #[prost(string, tag="1")]
2259 pub room_name: ::prost::alloc::string::String,
2260 #[prost(string, tag="2")]
2262 pub track_id: ::prost::alloc::string::String,
2263 #[prost(message, repeated, tag="5")]
2265 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2266 #[prost(oneof="track_egress_request::Output", tags="3, 4")]
2268 pub output: ::core::option::Option<track_egress_request::Output>,
2269}
2270pub mod track_egress_request {
2272 #[allow(clippy::derive_partial_eq_without_eq)]
2274#[derive(Clone, PartialEq, ::prost::Oneof)]
2275 pub enum Output {
2276 #[prost(message, tag="3")]
2277 File(super::DirectFileOutput),
2278 #[prost(string, tag="4")]
2279 WebsocketUrl(::prost::alloc::string::String),
2280 }
2281}
2282#[allow(clippy::derive_partial_eq_without_eq)]
2283#[derive(Clone, PartialEq, ::prost::Message)]
2284pub struct EncodedFileOutput {
2285 #[prost(enumeration="EncodedFileType", tag="1")]
2287 pub file_type: i32,
2288 #[prost(string, tag="2")]
2290 pub filepath: ::prost::alloc::string::String,
2291 #[prost(bool, tag="6")]
2293 pub disable_manifest: bool,
2294 #[prost(oneof="encoded_file_output::Output", tags="3, 4, 5, 7")]
2295 pub output: ::core::option::Option<encoded_file_output::Output>,
2296}
2297pub mod encoded_file_output {
2299 #[allow(clippy::derive_partial_eq_without_eq)]
2300#[derive(Clone, PartialEq, ::prost::Oneof)]
2301 pub enum Output {
2302 #[prost(message, tag="3")]
2303 S3(super::S3Upload),
2304 #[prost(message, tag="4")]
2305 Gcp(super::GcpUpload),
2306 #[prost(message, tag="5")]
2307 Azure(super::AzureBlobUpload),
2308 #[prost(message, tag="7")]
2309 AliOss(super::AliOssUpload),
2310 }
2311}
2312#[allow(clippy::derive_partial_eq_without_eq)]
2314#[derive(Clone, PartialEq, ::prost::Message)]
2315pub struct SegmentedFileOutput {
2316 #[prost(enumeration="SegmentedFileProtocol", tag="1")]
2318 pub protocol: i32,
2319 #[prost(string, tag="2")]
2321 pub filename_prefix: ::prost::alloc::string::String,
2322 #[prost(string, tag="3")]
2324 pub playlist_name: ::prost::alloc::string::String,
2325 #[prost(string, tag="11")]
2327 pub live_playlist_name: ::prost::alloc::string::String,
2328 #[prost(uint32, tag="4")]
2330 pub segment_duration: u32,
2331 #[prost(enumeration="SegmentedFileSuffix", tag="10")]
2333 pub filename_suffix: i32,
2334 #[prost(bool, tag="8")]
2336 pub disable_manifest: bool,
2337 #[prost(oneof="segmented_file_output::Output", tags="5, 6, 7, 9")]
2339 pub output: ::core::option::Option<segmented_file_output::Output>,
2340}
2341pub mod segmented_file_output {
2343 #[allow(clippy::derive_partial_eq_without_eq)]
2345#[derive(Clone, PartialEq, ::prost::Oneof)]
2346 pub enum Output {
2347 #[prost(message, tag="5")]
2348 S3(super::S3Upload),
2349 #[prost(message, tag="6")]
2350 Gcp(super::GcpUpload),
2351 #[prost(message, tag="7")]
2352 Azure(super::AzureBlobUpload),
2353 #[prost(message, tag="9")]
2354 AliOss(super::AliOssUpload),
2355 }
2356}
2357#[allow(clippy::derive_partial_eq_without_eq)]
2358#[derive(Clone, PartialEq, ::prost::Message)]
2359pub struct DirectFileOutput {
2360 #[prost(string, tag="1")]
2362 pub filepath: ::prost::alloc::string::String,
2363 #[prost(bool, tag="5")]
2365 pub disable_manifest: bool,
2366 #[prost(oneof="direct_file_output::Output", tags="2, 3, 4, 6")]
2367 pub output: ::core::option::Option<direct_file_output::Output>,
2368}
2369pub mod direct_file_output {
2371 #[allow(clippy::derive_partial_eq_without_eq)]
2372#[derive(Clone, PartialEq, ::prost::Oneof)]
2373 pub enum Output {
2374 #[prost(message, tag="2")]
2375 S3(super::S3Upload),
2376 #[prost(message, tag="3")]
2377 Gcp(super::GcpUpload),
2378 #[prost(message, tag="4")]
2379 Azure(super::AzureBlobUpload),
2380 #[prost(message, tag="6")]
2381 AliOss(super::AliOssUpload),
2382 }
2383}
2384#[allow(clippy::derive_partial_eq_without_eq)]
2385#[derive(Clone, PartialEq, ::prost::Message)]
2386pub struct ImageOutput {
2387 #[prost(uint32, tag="1")]
2389 pub capture_interval: u32,
2390 #[prost(int32, tag="2")]
2392 pub width: i32,
2393 #[prost(int32, tag="3")]
2395 pub height: i32,
2396 #[prost(string, tag="4")]
2398 pub filename_prefix: ::prost::alloc::string::String,
2399 #[prost(enumeration="ImageFileSuffix", tag="5")]
2401 pub filename_suffix: i32,
2402 #[prost(enumeration="ImageCodec", tag="6")]
2404 pub image_codec: i32,
2405 #[prost(bool, tag="7")]
2407 pub disable_manifest: bool,
2408 #[prost(oneof="image_output::Output", tags="8, 9, 10, 11")]
2410 pub output: ::core::option::Option<image_output::Output>,
2411}
2412pub mod image_output {
2414 #[allow(clippy::derive_partial_eq_without_eq)]
2416#[derive(Clone, PartialEq, ::prost::Oneof)]
2417 pub enum Output {
2418 #[prost(message, tag="8")]
2419 S3(super::S3Upload),
2420 #[prost(message, tag="9")]
2421 Gcp(super::GcpUpload),
2422 #[prost(message, tag="10")]
2423 Azure(super::AzureBlobUpload),
2424 #[prost(message, tag="11")]
2425 AliOss(super::AliOssUpload),
2426 }
2427}
2428#[allow(clippy::derive_partial_eq_without_eq)]
2429#[derive(Clone, PartialEq, ::prost::Message)]
2430pub struct S3Upload {
2431 #[prost(string, tag="1")]
2432 pub access_key: ::prost::alloc::string::String,
2433 #[prost(string, tag="2")]
2434 pub secret: ::prost::alloc::string::String,
2435 #[prost(string, tag="11")]
2436 pub session_token: ::prost::alloc::string::String,
2437 #[prost(string, tag="12")]
2439 pub assume_role_arn: ::prost::alloc::string::String,
2440 #[prost(string, tag="13")]
2442 pub assume_role_external_id: ::prost::alloc::string::String,
2443 #[prost(string, tag="3")]
2444 pub region: ::prost::alloc::string::String,
2445 #[prost(string, tag="4")]
2446 pub endpoint: ::prost::alloc::string::String,
2447 #[prost(string, tag="5")]
2448 pub bucket: ::prost::alloc::string::String,
2449 #[prost(bool, tag="6")]
2450 pub force_path_style: bool,
2451 #[prost(map="string, string", tag="7")]
2452 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2453 #[prost(string, tag="8")]
2454 pub tagging: ::prost::alloc::string::String,
2455 #[prost(string, tag="9")]
2457 pub content_disposition: ::prost::alloc::string::String,
2458 #[prost(message, optional, tag="10")]
2459 pub proxy: ::core::option::Option<ProxyConfig>,
2460}
2461#[allow(clippy::derive_partial_eq_without_eq)]
2462#[derive(Clone, PartialEq, ::prost::Message)]
2463pub struct GcpUpload {
2464 #[prost(string, tag="1")]
2466 pub credentials: ::prost::alloc::string::String,
2467 #[prost(string, tag="2")]
2468 pub bucket: ::prost::alloc::string::String,
2469 #[prost(message, optional, tag="3")]
2470 pub proxy: ::core::option::Option<ProxyConfig>,
2471}
2472#[allow(clippy::derive_partial_eq_without_eq)]
2473#[derive(Clone, PartialEq, ::prost::Message)]
2474pub struct AzureBlobUpload {
2475 #[prost(string, tag="1")]
2476 pub account_name: ::prost::alloc::string::String,
2477 #[prost(string, tag="2")]
2478 pub account_key: ::prost::alloc::string::String,
2479 #[prost(string, tag="3")]
2480 pub container_name: ::prost::alloc::string::String,
2481}
2482#[allow(clippy::derive_partial_eq_without_eq)]
2483#[derive(Clone, PartialEq, ::prost::Message)]
2484pub struct AliOssUpload {
2485 #[prost(string, tag="1")]
2486 pub access_key: ::prost::alloc::string::String,
2487 #[prost(string, tag="2")]
2488 pub secret: ::prost::alloc::string::String,
2489 #[prost(string, tag="3")]
2490 pub region: ::prost::alloc::string::String,
2491 #[prost(string, tag="4")]
2492 pub endpoint: ::prost::alloc::string::String,
2493 #[prost(string, tag="5")]
2494 pub bucket: ::prost::alloc::string::String,
2495}
2496#[allow(clippy::derive_partial_eq_without_eq)]
2497#[derive(Clone, PartialEq, ::prost::Message)]
2498pub struct ProxyConfig {
2499 #[prost(string, tag="1")]
2500 pub url: ::prost::alloc::string::String,
2501 #[prost(string, tag="2")]
2502 pub username: ::prost::alloc::string::String,
2503 #[prost(string, tag="3")]
2504 pub password: ::prost::alloc::string::String,
2505}
2506#[allow(clippy::derive_partial_eq_without_eq)]
2507#[derive(Clone, PartialEq, ::prost::Message)]
2508pub struct StreamOutput {
2509 #[prost(enumeration="StreamProtocol", tag="1")]
2511 pub protocol: i32,
2512 #[prost(string, repeated, tag="2")]
2514 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2515}
2516#[allow(clippy::derive_partial_eq_without_eq)]
2517#[derive(Clone, PartialEq, ::prost::Message)]
2518pub struct EncodingOptions {
2519 #[prost(int32, tag="1")]
2521 pub width: i32,
2522 #[prost(int32, tag="2")]
2524 pub height: i32,
2525 #[prost(int32, tag="3")]
2527 pub depth: i32,
2528 #[prost(int32, tag="4")]
2530 pub framerate: i32,
2531 #[prost(enumeration="AudioCodec", tag="5")]
2533 pub audio_codec: i32,
2534 #[prost(int32, tag="6")]
2536 pub audio_bitrate: i32,
2537 #[prost(int32, tag="11")]
2539 pub audio_quality: i32,
2540 #[prost(int32, tag="7")]
2542 pub audio_frequency: i32,
2543 #[prost(enumeration="VideoCodec", tag="8")]
2545 pub video_codec: i32,
2546 #[prost(int32, tag="9")]
2548 pub video_bitrate: i32,
2549 #[prost(int32, tag="12")]
2551 pub video_quality: i32,
2552 #[prost(double, tag="10")]
2554 pub key_frame_interval: f64,
2555}
2556#[allow(clippy::derive_partial_eq_without_eq)]
2557#[derive(Clone, PartialEq, ::prost::Message)]
2558pub struct UpdateLayoutRequest {
2559 #[prost(string, tag="1")]
2560 pub egress_id: ::prost::alloc::string::String,
2561 #[prost(string, tag="2")]
2562 pub layout: ::prost::alloc::string::String,
2563}
2564#[allow(clippy::derive_partial_eq_without_eq)]
2565#[derive(Clone, PartialEq, ::prost::Message)]
2566pub struct UpdateStreamRequest {
2567 #[prost(string, tag="1")]
2568 pub egress_id: ::prost::alloc::string::String,
2569 #[prost(string, repeated, tag="2")]
2570 pub add_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2571 #[prost(string, repeated, tag="3")]
2572 pub remove_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2573}
2574#[allow(clippy::derive_partial_eq_without_eq)]
2575#[derive(Clone, PartialEq, ::prost::Message)]
2576pub struct ListEgressRequest {
2577 #[prost(string, tag="1")]
2579 pub room_name: ::prost::alloc::string::String,
2580 #[prost(string, tag="2")]
2582 pub egress_id: ::prost::alloc::string::String,
2583 #[prost(bool, tag="3")]
2585 pub active: bool,
2586}
2587#[allow(clippy::derive_partial_eq_without_eq)]
2588#[derive(Clone, PartialEq, ::prost::Message)]
2589pub struct ListEgressResponse {
2590 #[prost(message, repeated, tag="1")]
2591 pub items: ::prost::alloc::vec::Vec<EgressInfo>,
2592}
2593#[allow(clippy::derive_partial_eq_without_eq)]
2594#[derive(Clone, PartialEq, ::prost::Message)]
2595pub struct StopEgressRequest {
2596 #[prost(string, tag="1")]
2597 pub egress_id: ::prost::alloc::string::String,
2598}
2599#[allow(clippy::derive_partial_eq_without_eq)]
2600#[derive(Clone, PartialEq, ::prost::Message)]
2601pub struct EgressInfo {
2602 #[prost(string, tag="1")]
2603 pub egress_id: ::prost::alloc::string::String,
2604 #[prost(string, tag="2")]
2605 pub room_id: ::prost::alloc::string::String,
2606 #[prost(string, tag="13")]
2607 pub room_name: ::prost::alloc::string::String,
2608 #[prost(enumeration="EgressSourceType", tag="26")]
2609 pub source_type: i32,
2610 #[prost(enumeration="EgressStatus", tag="3")]
2611 pub status: i32,
2612 #[prost(int64, tag="10")]
2613 pub started_at: i64,
2614 #[prost(int64, tag="11")]
2615 pub ended_at: i64,
2616 #[prost(int64, tag="18")]
2617 pub updated_at: i64,
2618 #[prost(string, tag="21")]
2619 pub details: ::prost::alloc::string::String,
2620 #[prost(string, tag="9")]
2621 pub error: ::prost::alloc::string::String,
2622 #[prost(int32, tag="22")]
2623 pub error_code: i32,
2624 #[prost(message, repeated, tag="15")]
2625 pub stream_results: ::prost::alloc::vec::Vec<StreamInfo>,
2626 #[prost(message, repeated, tag="16")]
2627 pub file_results: ::prost::alloc::vec::Vec<FileInfo>,
2628 #[prost(message, repeated, tag="17")]
2629 pub segment_results: ::prost::alloc::vec::Vec<SegmentsInfo>,
2630 #[prost(message, repeated, tag="20")]
2631 pub image_results: ::prost::alloc::vec::Vec<ImagesInfo>,
2632 #[prost(string, tag="23")]
2633 pub manifest_location: ::prost::alloc::string::String,
2634 #[prost(bool, tag="25")]
2636 pub backup_storage_used: bool,
2637 #[prost(oneof="egress_info::Request", tags="4, 14, 19, 5, 6")]
2638 pub request: ::core::option::Option<egress_info::Request>,
2639 #[prost(oneof="egress_info::Result", tags="7, 8, 12")]
2641 pub result: ::core::option::Option<egress_info::Result>,
2642}
2643pub mod egress_info {
2645 #[allow(clippy::derive_partial_eq_without_eq)]
2646#[derive(Clone, PartialEq, ::prost::Oneof)]
2647 pub enum Request {
2648 #[prost(message, tag="4")]
2649 RoomComposite(super::RoomCompositeEgressRequest),
2650 #[prost(message, tag="14")]
2651 Web(super::WebEgressRequest),
2652 #[prost(message, tag="19")]
2653 Participant(super::ParticipantEgressRequest),
2654 #[prost(message, tag="5")]
2655 TrackComposite(super::TrackCompositeEgressRequest),
2656 #[prost(message, tag="6")]
2657 Track(super::TrackEgressRequest),
2658 }
2659 #[allow(clippy::derive_partial_eq_without_eq)]
2661#[derive(Clone, PartialEq, ::prost::Oneof)]
2662 pub enum Result {
2663 #[prost(message, tag="7")]
2664 Stream(super::StreamInfoList),
2665 #[prost(message, tag="8")]
2666 File(super::FileInfo),
2667 #[prost(message, tag="12")]
2668 Segments(super::SegmentsInfo),
2669 }
2670}
2671#[allow(clippy::derive_partial_eq_without_eq)]
2672#[derive(Clone, PartialEq, ::prost::Message)]
2673pub struct StreamInfoList {
2674 #[prost(message, repeated, tag="1")]
2675 pub info: ::prost::alloc::vec::Vec<StreamInfo>,
2676}
2677#[allow(clippy::derive_partial_eq_without_eq)]
2678#[derive(Clone, PartialEq, ::prost::Message)]
2679pub struct StreamInfo {
2680 #[prost(string, tag="1")]
2681 pub url: ::prost::alloc::string::String,
2682 #[prost(int64, tag="2")]
2683 pub started_at: i64,
2684 #[prost(int64, tag="3")]
2685 pub ended_at: i64,
2686 #[prost(int64, tag="4")]
2687 pub duration: i64,
2688 #[prost(enumeration="stream_info::Status", tag="5")]
2689 pub status: i32,
2690 #[prost(string, tag="6")]
2691 pub error: ::prost::alloc::string::String,
2692 #[prost(int64, tag="7")]
2693 pub last_retry_at: i64,
2694 #[prost(uint32, tag="8")]
2695 pub retries: u32,
2696}
2697pub mod stream_info {
2699 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2700 #[repr(i32)]
2701 pub enum Status {
2702 Active = 0,
2703 Finished = 1,
2704 Failed = 2,
2705 }
2706 impl Status {
2707 pub fn as_str_name(&self) -> &'static str {
2712 match self {
2713 Status::Active => "ACTIVE",
2714 Status::Finished => "FINISHED",
2715 Status::Failed => "FAILED",
2716 }
2717 }
2718 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2720 match value {
2721 "ACTIVE" => Some(Self::Active),
2722 "FINISHED" => Some(Self::Finished),
2723 "FAILED" => Some(Self::Failed),
2724 _ => None,
2725 }
2726 }
2727 }
2728}
2729#[allow(clippy::derive_partial_eq_without_eq)]
2730#[derive(Clone, PartialEq, ::prost::Message)]
2731pub struct FileInfo {
2732 #[prost(string, tag="1")]
2733 pub filename: ::prost::alloc::string::String,
2734 #[prost(int64, tag="2")]
2735 pub started_at: i64,
2736 #[prost(int64, tag="3")]
2737 pub ended_at: i64,
2738 #[prost(int64, tag="6")]
2739 pub duration: i64,
2740 #[prost(int64, tag="4")]
2741 pub size: i64,
2742 #[prost(string, tag="5")]
2743 pub location: ::prost::alloc::string::String,
2744}
2745#[allow(clippy::derive_partial_eq_without_eq)]
2746#[derive(Clone, PartialEq, ::prost::Message)]
2747pub struct SegmentsInfo {
2748 #[prost(string, tag="1")]
2749 pub playlist_name: ::prost::alloc::string::String,
2750 #[prost(string, tag="8")]
2751 pub live_playlist_name: ::prost::alloc::string::String,
2752 #[prost(int64, tag="2")]
2753 pub duration: i64,
2754 #[prost(int64, tag="3")]
2755 pub size: i64,
2756 #[prost(string, tag="4")]
2757 pub playlist_location: ::prost::alloc::string::String,
2758 #[prost(string, tag="9")]
2759 pub live_playlist_location: ::prost::alloc::string::String,
2760 #[prost(int64, tag="5")]
2761 pub segment_count: i64,
2762 #[prost(int64, tag="6")]
2763 pub started_at: i64,
2764 #[prost(int64, tag="7")]
2765 pub ended_at: i64,
2766}
2767#[allow(clippy::derive_partial_eq_without_eq)]
2768#[derive(Clone, PartialEq, ::prost::Message)]
2769pub struct ImagesInfo {
2770 #[prost(string, tag="4")]
2771 pub filename_prefix: ::prost::alloc::string::String,
2772 #[prost(int64, tag="1")]
2773 pub image_count: i64,
2774 #[prost(int64, tag="2")]
2775 pub started_at: i64,
2776 #[prost(int64, tag="3")]
2777 pub ended_at: i64,
2778}
2779#[allow(clippy::derive_partial_eq_without_eq)]
2780#[derive(Clone, PartialEq, ::prost::Message)]
2781pub struct AutoParticipantEgress {
2782 #[prost(message, repeated, tag="3")]
2783 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2784 #[prost(message, repeated, tag="4")]
2785 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2786 #[prost(oneof="auto_participant_egress::Options", tags="1, 2")]
2787 pub options: ::core::option::Option<auto_participant_egress::Options>,
2788}
2789pub mod auto_participant_egress {
2791 #[allow(clippy::derive_partial_eq_without_eq)]
2792#[derive(Clone, PartialEq, ::prost::Oneof)]
2793 pub enum Options {
2794 #[prost(enumeration="super::EncodingOptionsPreset", tag="1")]
2796 Preset(i32),
2797 #[prost(message, tag="2")]
2799 Advanced(super::EncodingOptions),
2800 }
2801}
2802#[allow(clippy::derive_partial_eq_without_eq)]
2803#[derive(Clone, PartialEq, ::prost::Message)]
2804pub struct AutoTrackEgress {
2805 #[prost(string, tag="1")]
2807 pub filepath: ::prost::alloc::string::String,
2808 #[prost(bool, tag="5")]
2810 pub disable_manifest: bool,
2811 #[prost(oneof="auto_track_egress::Output", tags="2, 3, 4, 6")]
2812 pub output: ::core::option::Option<auto_track_egress::Output>,
2813}
2814pub mod auto_track_egress {
2816 #[allow(clippy::derive_partial_eq_without_eq)]
2817#[derive(Clone, PartialEq, ::prost::Oneof)]
2818 pub enum Output {
2819 #[prost(message, tag="2")]
2820 S3(super::S3Upload),
2821 #[prost(message, tag="3")]
2822 Gcp(super::GcpUpload),
2823 #[prost(message, tag="4")]
2824 Azure(super::AzureBlobUpload),
2825 #[prost(message, tag="6")]
2826 AliOss(super::AliOssUpload),
2827 }
2828}
2829#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2830#[repr(i32)]
2831pub enum EncodedFileType {
2832 DefaultFiletype = 0,
2834 Mp4 = 1,
2835 Ogg = 2,
2836 Mp3 = 3,
2837}
2838impl EncodedFileType {
2839 pub fn as_str_name(&self) -> &'static str {
2844 match self {
2845 EncodedFileType::DefaultFiletype => "DEFAULT_FILETYPE",
2846 EncodedFileType::Mp4 => "MP4",
2847 EncodedFileType::Ogg => "OGG",
2848 EncodedFileType::Mp3 => "MP3",
2849 }
2850 }
2851 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2853 match value {
2854 "DEFAULT_FILETYPE" => Some(Self::DefaultFiletype),
2855 "MP4" => Some(Self::Mp4),
2856 "OGG" => Some(Self::Ogg),
2857 "MP3" => Some(Self::Mp3),
2858 _ => None,
2859 }
2860 }
2861}
2862#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2863#[repr(i32)]
2864pub enum SegmentedFileProtocol {
2865 DefaultSegmentedFileProtocol = 0,
2866 HlsProtocol = 1,
2867}
2868impl SegmentedFileProtocol {
2869 pub fn as_str_name(&self) -> &'static str {
2874 match self {
2875 SegmentedFileProtocol::DefaultSegmentedFileProtocol => "DEFAULT_SEGMENTED_FILE_PROTOCOL",
2876 SegmentedFileProtocol::HlsProtocol => "HLS_PROTOCOL",
2877 }
2878 }
2879 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2881 match value {
2882 "DEFAULT_SEGMENTED_FILE_PROTOCOL" => Some(Self::DefaultSegmentedFileProtocol),
2883 "HLS_PROTOCOL" => Some(Self::HlsProtocol),
2884 _ => None,
2885 }
2886 }
2887}
2888#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2889#[repr(i32)]
2890pub enum SegmentedFileSuffix {
2891 Index = 0,
2892 Timestamp = 1,
2893}
2894impl SegmentedFileSuffix {
2895 pub fn as_str_name(&self) -> &'static str {
2900 match self {
2901 SegmentedFileSuffix::Index => "INDEX",
2902 SegmentedFileSuffix::Timestamp => "TIMESTAMP",
2903 }
2904 }
2905 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2907 match value {
2908 "INDEX" => Some(Self::Index),
2909 "TIMESTAMP" => Some(Self::Timestamp),
2910 _ => None,
2911 }
2912 }
2913}
2914#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2915#[repr(i32)]
2916pub enum ImageFileSuffix {
2917 ImageSuffixIndex = 0,
2918 ImageSuffixTimestamp = 1,
2919 ImageSuffixNoneOverwrite = 2,
2921}
2922impl ImageFileSuffix {
2923 pub fn as_str_name(&self) -> &'static str {
2928 match self {
2929 ImageFileSuffix::ImageSuffixIndex => "IMAGE_SUFFIX_INDEX",
2930 ImageFileSuffix::ImageSuffixTimestamp => "IMAGE_SUFFIX_TIMESTAMP",
2931 ImageFileSuffix::ImageSuffixNoneOverwrite => "IMAGE_SUFFIX_NONE_OVERWRITE",
2932 }
2933 }
2934 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2936 match value {
2937 "IMAGE_SUFFIX_INDEX" => Some(Self::ImageSuffixIndex),
2938 "IMAGE_SUFFIX_TIMESTAMP" => Some(Self::ImageSuffixTimestamp),
2939 "IMAGE_SUFFIX_NONE_OVERWRITE" => Some(Self::ImageSuffixNoneOverwrite),
2940 _ => None,
2941 }
2942 }
2943}
2944#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2945#[repr(i32)]
2946pub enum StreamProtocol {
2947 DefaultProtocol = 0,
2949 Rtmp = 1,
2950 Srt = 2,
2951}
2952impl StreamProtocol {
2953 pub fn as_str_name(&self) -> &'static str {
2958 match self {
2959 StreamProtocol::DefaultProtocol => "DEFAULT_PROTOCOL",
2960 StreamProtocol::Rtmp => "RTMP",
2961 StreamProtocol::Srt => "SRT",
2962 }
2963 }
2964 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2966 match value {
2967 "DEFAULT_PROTOCOL" => Some(Self::DefaultProtocol),
2968 "RTMP" => Some(Self::Rtmp),
2969 "SRT" => Some(Self::Srt),
2970 _ => None,
2971 }
2972 }
2973}
2974#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2975#[repr(i32)]
2976pub enum AudioMixing {
2977 DefaultMixing = 0,
2979 DualChannelAgent = 1,
2981 DualChannelAlternate = 2,
2983}
2984impl AudioMixing {
2985 pub fn as_str_name(&self) -> &'static str {
2990 match self {
2991 AudioMixing::DefaultMixing => "DEFAULT_MIXING",
2992 AudioMixing::DualChannelAgent => "DUAL_CHANNEL_AGENT",
2993 AudioMixing::DualChannelAlternate => "DUAL_CHANNEL_ALTERNATE",
2994 }
2995 }
2996 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2998 match value {
2999 "DEFAULT_MIXING" => Some(Self::DefaultMixing),
3000 "DUAL_CHANNEL_AGENT" => Some(Self::DualChannelAgent),
3001 "DUAL_CHANNEL_ALTERNATE" => Some(Self::DualChannelAlternate),
3002 _ => None,
3003 }
3004 }
3005}
3006#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3007#[repr(i32)]
3008pub enum EncodingOptionsPreset {
3009 H264720p30 = 0,
3011 H264720p60 = 1,
3013 H2641080p30 = 2,
3015 H2641080p60 = 3,
3017 PortraitH264720p30 = 4,
3019 PortraitH264720p60 = 5,
3021 PortraitH2641080p30 = 6,
3023 PortraitH2641080p60 = 7,
3025}
3026impl EncodingOptionsPreset {
3027 pub fn as_str_name(&self) -> &'static str {
3032 match self {
3033 EncodingOptionsPreset::H264720p30 => "H264_720P_30",
3034 EncodingOptionsPreset::H264720p60 => "H264_720P_60",
3035 EncodingOptionsPreset::H2641080p30 => "H264_1080P_30",
3036 EncodingOptionsPreset::H2641080p60 => "H264_1080P_60",
3037 EncodingOptionsPreset::PortraitH264720p30 => "PORTRAIT_H264_720P_30",
3038 EncodingOptionsPreset::PortraitH264720p60 => "PORTRAIT_H264_720P_60",
3039 EncodingOptionsPreset::PortraitH2641080p30 => "PORTRAIT_H264_1080P_30",
3040 EncodingOptionsPreset::PortraitH2641080p60 => "PORTRAIT_H264_1080P_60",
3041 }
3042 }
3043 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3045 match value {
3046 "H264_720P_30" => Some(Self::H264720p30),
3047 "H264_720P_60" => Some(Self::H264720p60),
3048 "H264_1080P_30" => Some(Self::H2641080p30),
3049 "H264_1080P_60" => Some(Self::H2641080p60),
3050 "PORTRAIT_H264_720P_30" => Some(Self::PortraitH264720p30),
3051 "PORTRAIT_H264_720P_60" => Some(Self::PortraitH264720p60),
3052 "PORTRAIT_H264_1080P_30" => Some(Self::PortraitH2641080p30),
3053 "PORTRAIT_H264_1080P_60" => Some(Self::PortraitH2641080p60),
3054 _ => None,
3055 }
3056 }
3057}
3058#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3059#[repr(i32)]
3060pub enum EgressStatus {
3061 EgressStarting = 0,
3062 EgressActive = 1,
3063 EgressEnding = 2,
3064 EgressComplete = 3,
3065 EgressFailed = 4,
3066 EgressAborted = 5,
3067 EgressLimitReached = 6,
3068}
3069impl EgressStatus {
3070 pub fn as_str_name(&self) -> &'static str {
3075 match self {
3076 EgressStatus::EgressStarting => "EGRESS_STARTING",
3077 EgressStatus::EgressActive => "EGRESS_ACTIVE",
3078 EgressStatus::EgressEnding => "EGRESS_ENDING",
3079 EgressStatus::EgressComplete => "EGRESS_COMPLETE",
3080 EgressStatus::EgressFailed => "EGRESS_FAILED",
3081 EgressStatus::EgressAborted => "EGRESS_ABORTED",
3082 EgressStatus::EgressLimitReached => "EGRESS_LIMIT_REACHED",
3083 }
3084 }
3085 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3087 match value {
3088 "EGRESS_STARTING" => Some(Self::EgressStarting),
3089 "EGRESS_ACTIVE" => Some(Self::EgressActive),
3090 "EGRESS_ENDING" => Some(Self::EgressEnding),
3091 "EGRESS_COMPLETE" => Some(Self::EgressComplete),
3092 "EGRESS_FAILED" => Some(Self::EgressFailed),
3093 "EGRESS_ABORTED" => Some(Self::EgressAborted),
3094 "EGRESS_LIMIT_REACHED" => Some(Self::EgressLimitReached),
3095 _ => None,
3096 }
3097 }
3098}
3099#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3100#[repr(i32)]
3101pub enum EgressSourceType {
3102 Web = 0,
3103 Sdk = 1,
3104}
3105impl EgressSourceType {
3106 pub fn as_str_name(&self) -> &'static str {
3111 match self {
3112 EgressSourceType::Web => "EGRESS_SOURCE_TYPE_WEB",
3113 EgressSourceType::Sdk => "EGRESS_SOURCE_TYPE_SDK",
3114 }
3115 }
3116 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3118 match value {
3119 "EGRESS_SOURCE_TYPE_WEB" => Some(Self::Web),
3120 "EGRESS_SOURCE_TYPE_SDK" => Some(Self::Sdk),
3121 _ => None,
3122 }
3123 }
3124}
3125#[allow(clippy::derive_partial_eq_without_eq)]
3126#[derive(Clone, PartialEq, ::prost::Message)]
3127pub struct SignalRequest {
3128 #[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")]
3129 pub message: ::core::option::Option<signal_request::Message>,
3130}
3131pub mod signal_request {
3133 #[allow(clippy::derive_partial_eq_without_eq)]
3134#[derive(Clone, PartialEq, ::prost::Oneof)]
3135 pub enum Message {
3136 #[prost(message, tag="1")]
3138 Offer(super::SessionDescription),
3139 #[prost(message, tag="2")]
3141 Answer(super::SessionDescription),
3142 #[prost(message, tag="3")]
3143 Trickle(super::TrickleRequest),
3144 #[prost(message, tag="4")]
3145 AddTrack(super::AddTrackRequest),
3146 #[prost(message, tag="5")]
3148 Mute(super::MuteTrackRequest),
3149 #[prost(message, tag="6")]
3151 Subscription(super::UpdateSubscription),
3152 #[prost(message, tag="7")]
3154 TrackSetting(super::UpdateTrackSettings),
3155 #[prost(message, tag="8")]
3157 Leave(super::LeaveRequest),
3158 #[prost(message, tag="10")]
3160 UpdateLayers(super::UpdateVideoLayers),
3161 #[prost(message, tag="11")]
3163 SubscriptionPermission(super::SubscriptionPermission),
3164 #[prost(message, tag="12")]
3166 SyncState(super::SyncState),
3167 #[prost(message, tag="13")]
3169 Simulate(super::SimulateScenario),
3170 #[prost(int64, tag="14")]
3174 Ping(i64),
3175 #[prost(message, tag="15")]
3178 UpdateMetadata(super::UpdateParticipantMetadata),
3179 #[prost(message, tag="16")]
3180 PingReq(super::Ping),
3181 #[prost(message, tag="17")]
3183 UpdateAudioTrack(super::UpdateLocalAudioTrack),
3184 #[prost(message, tag="18")]
3186 UpdateVideoTrack(super::UpdateLocalVideoTrack),
3187 #[prost(message, tag="19")]
3189 PublishDataTrackRequest(super::PublishDataTrackRequest),
3190 #[prost(message, tag="20")]
3192 UnpublishDataTrackRequest(super::UnpublishDataTrackRequest),
3193 #[prost(message, tag="21")]
3195 UpdateDataSubscription(super::UpdateDataSubscription),
3196 }
3197}
3198#[allow(clippy::derive_partial_eq_without_eq)]
3199#[derive(Clone, PartialEq, ::prost::Message)]
3200pub struct SignalResponse {
3201 #[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")]
3202 pub message: ::core::option::Option<signal_response::Message>,
3203}
3204pub mod signal_response {
3206 #[allow(clippy::derive_partial_eq_without_eq)]
3207#[derive(Clone, PartialEq, ::prost::Oneof)]
3208 pub enum Message {
3209 #[prost(message, tag="1")]
3211 Join(super::JoinResponse),
3212 #[prost(message, tag="2")]
3214 Answer(super::SessionDescription),
3215 #[prost(message, tag="3")]
3217 Offer(super::SessionDescription),
3218 #[prost(message, tag="4")]
3220 Trickle(super::TrickleRequest),
3221 #[prost(message, tag="5")]
3223 Update(super::ParticipantUpdate),
3224 #[prost(message, tag="6")]
3226 TrackPublished(super::TrackPublishedResponse),
3227 #[prost(message, tag="8")]
3229 Leave(super::LeaveRequest),
3230 #[prost(message, tag="9")]
3232 Mute(super::MuteTrackRequest),
3233 #[prost(message, tag="10")]
3235 SpeakersChanged(super::SpeakersChanged),
3236 #[prost(message, tag="11")]
3238 RoomUpdate(super::RoomUpdate),
3239 #[prost(message, tag="12")]
3241 ConnectionQuality(super::ConnectionQualityUpdate),
3242 #[prost(message, tag="13")]
3245 StreamStateUpdate(super::StreamStateUpdate),
3246 #[prost(message, tag="14")]
3248 SubscribedQualityUpdate(super::SubscribedQualityUpdate),
3249 #[prost(message, tag="15")]
3251 SubscriptionPermissionUpdate(super::SubscriptionPermissionUpdate),
3252 #[prost(string, tag="16")]
3254 RefreshToken(::prost::alloc::string::String),
3255 #[prost(message, tag="17")]
3257 TrackUnpublished(super::TrackUnpublishedResponse),
3258 #[prost(int64, tag="18")]
3262 Pong(i64),
3263 #[prost(message, tag="19")]
3265 Reconnect(super::ReconnectResponse),
3266 #[prost(message, tag="20")]
3268 PongResp(super::Pong),
3269 #[prost(message, tag="21")]
3271 SubscriptionResponse(super::SubscriptionResponse),
3272 #[prost(message, tag="22")]
3274 RequestResponse(super::RequestResponse),
3275 #[prost(message, tag="23")]
3277 TrackSubscribed(super::TrackSubscribed),
3278 #[prost(message, tag="24")]
3280 RoomMoved(super::RoomMovedResponse),
3281 #[prost(message, tag="25")]
3283 MediaSectionsRequirement(super::MediaSectionsRequirement),
3284 #[prost(message, tag="26")]
3286 SubscribedAudioCodecUpdate(super::SubscribedAudioCodecUpdate),
3287 #[prost(message, tag="27")]
3289 PublishDataTrackResponse(super::PublishDataTrackResponse),
3290 #[prost(message, tag="28")]
3292 UnpublishDataTrackResponse(super::UnpublishDataTrackResponse),
3293 #[prost(message, tag="29")]
3295 DataTrackSubscriberHandles(super::DataTrackSubscriberHandles),
3296 }
3297}
3298#[allow(clippy::derive_partial_eq_without_eq)]
3299#[derive(Clone, PartialEq, ::prost::Message)]
3300pub struct SimulcastCodec {
3301 #[prost(string, tag="1")]
3302 pub codec: ::prost::alloc::string::String,
3303 #[prost(string, tag="2")]
3304 pub cid: ::prost::alloc::string::String,
3305 #[prost(message, repeated, tag="4")]
3306 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3307 #[prost(enumeration="video_layer::Mode", tag="5")]
3308 pub video_layer_mode: i32,
3309}
3310#[allow(clippy::derive_partial_eq_without_eq)]
3311#[derive(Clone, PartialEq, ::prost::Message)]
3312pub struct AddTrackRequest {
3313 #[prost(string, tag="1")]
3315 pub cid: ::prost::alloc::string::String,
3316 #[prost(string, tag="2")]
3317 pub name: ::prost::alloc::string::String,
3318 #[prost(enumeration="TrackType", tag="3")]
3319 pub r#type: i32,
3320 #[prost(uint32, tag="4")]
3321 pub width: u32,
3322 #[prost(uint32, tag="5")]
3323 pub height: u32,
3324 #[prost(bool, tag="6")]
3326 pub muted: bool,
3327 #[deprecated]
3331 #[prost(bool, tag="7")]
3332 pub disable_dtx: bool,
3333 #[prost(enumeration="TrackSource", tag="8")]
3334 pub source: i32,
3335 #[prost(message, repeated, tag="9")]
3336 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3337 #[prost(message, repeated, tag="10")]
3338 pub simulcast_codecs: ::prost::alloc::vec::Vec<SimulcastCodec>,
3339 #[prost(string, tag="11")]
3341 pub sid: ::prost::alloc::string::String,
3342 #[deprecated]
3344 #[prost(bool, tag="12")]
3345 pub stereo: bool,
3346 #[prost(bool, tag="13")]
3348 pub disable_red: bool,
3349 #[prost(enumeration="encryption::Type", tag="14")]
3350 pub encryption: i32,
3351 #[prost(string, tag="15")]
3354 pub stream: ::prost::alloc::string::String,
3355 #[prost(enumeration="BackupCodecPolicy", tag="16")]
3356 pub backup_codec_policy: i32,
3357 #[prost(enumeration="AudioTrackFeature", repeated, tag="17")]
3358 pub audio_features: ::prost::alloc::vec::Vec<i32>,
3359}
3360#[allow(clippy::derive_partial_eq_without_eq)]
3361#[derive(Clone, PartialEq, ::prost::Message)]
3362pub struct PublishDataTrackRequest {
3363 #[prost(uint32, tag="1")]
3366 pub pub_handle: u32,
3367 #[prost(string, tag="2")]
3370 pub name: ::prost::alloc::string::String,
3371 #[prost(enumeration="encryption::Type", tag="3")]
3373 pub encryption: i32,
3374}
3375#[allow(clippy::derive_partial_eq_without_eq)]
3376#[derive(Clone, PartialEq, ::prost::Message)]
3377pub struct PublishDataTrackResponse {
3378 #[prost(message, optional, tag="1")]
3380 pub info: ::core::option::Option<DataTrackInfo>,
3381}
3382#[allow(clippy::derive_partial_eq_without_eq)]
3383#[derive(Clone, PartialEq, ::prost::Message)]
3384pub struct UnpublishDataTrackRequest {
3385 #[prost(uint32, tag="1")]
3387 pub pub_handle: u32,
3388}
3389#[allow(clippy::derive_partial_eq_without_eq)]
3390#[derive(Clone, PartialEq, ::prost::Message)]
3391pub struct UnpublishDataTrackResponse {
3392 #[prost(message, optional, tag="1")]
3394 pub info: ::core::option::Option<DataTrackInfo>,
3395}
3396#[allow(clippy::derive_partial_eq_without_eq)]
3397#[derive(Clone, PartialEq, ::prost::Message)]
3398pub struct DataTrackSubscriberHandles {
3399 #[prost(map="uint32, message", tag="1")]
3401 pub sub_handles: ::std::collections::HashMap<u32, data_track_subscriber_handles::PublishedDataTrack>,
3402}
3403pub mod data_track_subscriber_handles {
3405 #[allow(clippy::derive_partial_eq_without_eq)]
3406#[derive(Clone, PartialEq, ::prost::Message)]
3407 pub struct PublishedDataTrack {
3408 #[prost(string, tag="1")]
3409 pub publisher_identity: ::prost::alloc::string::String,
3410 #[prost(string, tag="2")]
3411 pub publisher_sid: ::prost::alloc::string::String,
3412 #[prost(string, tag="3")]
3413 pub track_sid: ::prost::alloc::string::String,
3414 }
3415}
3416#[allow(clippy::derive_partial_eq_without_eq)]
3417#[derive(Clone, PartialEq, ::prost::Message)]
3418pub struct TrickleRequest {
3419 #[prost(string, tag="1")]
3420 pub candidate_init: ::prost::alloc::string::String,
3421 #[prost(enumeration="SignalTarget", tag="2")]
3422 pub target: i32,
3423 #[prost(bool, tag="3")]
3424 pub r#final: bool,
3425}
3426#[allow(clippy::derive_partial_eq_without_eq)]
3427#[derive(Clone, PartialEq, ::prost::Message)]
3428pub struct MuteTrackRequest {
3429 #[prost(string, tag="1")]
3430 pub sid: ::prost::alloc::string::String,
3431 #[prost(bool, tag="2")]
3432 pub muted: bool,
3433}
3434#[allow(clippy::derive_partial_eq_without_eq)]
3435#[derive(Clone, PartialEq, ::prost::Message)]
3436pub struct JoinResponse {
3437 #[prost(message, optional, tag="1")]
3438 pub room: ::core::option::Option<Room>,
3439 #[prost(message, optional, tag="2")]
3440 pub participant: ::core::option::Option<ParticipantInfo>,
3441 #[prost(message, repeated, tag="3")]
3442 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3443 #[prost(string, tag="4")]
3445 pub server_version: ::prost::alloc::string::String,
3446 #[prost(message, repeated, tag="5")]
3447 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3448 #[prost(bool, tag="6")]
3450 pub subscriber_primary: bool,
3451 #[prost(string, tag="7")]
3454 pub alternative_url: ::prost::alloc::string::String,
3455 #[prost(message, optional, tag="8")]
3456 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3457 #[prost(string, tag="9")]
3459 pub server_region: ::prost::alloc::string::String,
3460 #[prost(int32, tag="10")]
3461 pub ping_timeout: i32,
3462 #[prost(int32, tag="11")]
3463 pub ping_interval: i32,
3464 #[prost(message, optional, tag="12")]
3465 pub server_info: ::core::option::Option<ServerInfo>,
3466 #[prost(bytes="vec", tag="13")]
3468 pub sif_trailer: ::prost::alloc::vec::Vec<u8>,
3469 #[prost(message, repeated, tag="14")]
3470 pub enabled_publish_codecs: ::prost::alloc::vec::Vec<Codec>,
3471 #[prost(bool, tag="15")]
3473 pub fast_publish: bool,
3474}
3475#[allow(clippy::derive_partial_eq_without_eq)]
3476#[derive(Clone, PartialEq, ::prost::Message)]
3477pub struct ReconnectResponse {
3478 #[prost(message, repeated, tag="1")]
3479 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3480 #[prost(message, optional, tag="2")]
3481 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3482 #[prost(message, optional, tag="3")]
3483 pub server_info: ::core::option::Option<ServerInfo>,
3484 #[prost(uint32, tag="4")]
3486 pub last_message_seq: u32,
3487}
3488#[allow(clippy::derive_partial_eq_without_eq)]
3489#[derive(Clone, PartialEq, ::prost::Message)]
3490pub struct TrackPublishedResponse {
3491 #[prost(string, tag="1")]
3492 pub cid: ::prost::alloc::string::String,
3493 #[prost(message, optional, tag="2")]
3494 pub track: ::core::option::Option<TrackInfo>,
3495}
3496#[allow(clippy::derive_partial_eq_without_eq)]
3497#[derive(Clone, PartialEq, ::prost::Message)]
3498pub struct TrackUnpublishedResponse {
3499 #[prost(string, tag="1")]
3500 pub track_sid: ::prost::alloc::string::String,
3501}
3502#[allow(clippy::derive_partial_eq_without_eq)]
3503#[derive(Clone, PartialEq, ::prost::Message)]
3504pub struct SessionDescription {
3505 #[prost(string, tag="1")]
3507 pub r#type: ::prost::alloc::string::String,
3508 #[prost(string, tag="2")]
3509 pub sdp: ::prost::alloc::string::String,
3510 #[prost(uint32, tag="3")]
3511 pub id: u32,
3512 #[prost(map="string, string", tag="4")]
3513 pub mid_to_track_id: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3514}
3515#[allow(clippy::derive_partial_eq_without_eq)]
3516#[derive(Clone, PartialEq, ::prost::Message)]
3517pub struct ParticipantUpdate {
3518 #[prost(message, repeated, tag="1")]
3519 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3520}
3521#[allow(clippy::derive_partial_eq_without_eq)]
3522#[derive(Clone, PartialEq, ::prost::Message)]
3523pub struct UpdateSubscription {
3524 #[prost(string, repeated, tag="1")]
3525 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3526 #[prost(bool, tag="2")]
3527 pub subscribe: bool,
3528 #[prost(message, repeated, tag="3")]
3529 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
3530}
3531#[allow(clippy::derive_partial_eq_without_eq)]
3532#[derive(Clone, PartialEq, ::prost::Message)]
3533pub struct UpdateDataSubscription {
3534 #[prost(message, repeated, tag="1")]
3535 pub updates: ::prost::alloc::vec::Vec<update_data_subscription::Update>,
3536}
3537pub mod update_data_subscription {
3539 #[allow(clippy::derive_partial_eq_without_eq)]
3540#[derive(Clone, PartialEq, ::prost::Message)]
3541 pub struct Update {
3542 #[prost(string, tag="1")]
3543 pub track_sid: ::prost::alloc::string::String,
3544 #[prost(bool, tag="2")]
3545 pub subscribe: bool,
3546 #[prost(message, optional, tag="3")]
3549 pub options: ::core::option::Option<super::DataTrackSubscriptionOptions>,
3550 }
3551}
3552#[allow(clippy::derive_partial_eq_without_eq)]
3553#[derive(Clone, PartialEq, ::prost::Message)]
3554pub struct UpdateTrackSettings {
3555 #[prost(string, repeated, tag="1")]
3556 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3557 #[prost(bool, tag="3")]
3559 pub disabled: bool,
3560 #[prost(enumeration="VideoQuality", tag="4")]
3562 pub quality: i32,
3563 #[prost(uint32, tag="5")]
3565 pub width: u32,
3566 #[prost(uint32, tag="6")]
3568 pub height: u32,
3569 #[prost(uint32, tag="7")]
3570 pub fps: u32,
3571 #[prost(uint32, tag="8")]
3579 pub priority: u32,
3580}
3581#[allow(clippy::derive_partial_eq_without_eq)]
3582#[derive(Clone, PartialEq, ::prost::Message)]
3583pub struct UpdateLocalAudioTrack {
3584 #[prost(string, tag="1")]
3585 pub track_sid: ::prost::alloc::string::String,
3586 #[prost(enumeration="AudioTrackFeature", repeated, tag="2")]
3587 pub features: ::prost::alloc::vec::Vec<i32>,
3588}
3589#[allow(clippy::derive_partial_eq_without_eq)]
3590#[derive(Clone, PartialEq, ::prost::Message)]
3591pub struct UpdateLocalVideoTrack {
3592 #[prost(string, tag="1")]
3593 pub track_sid: ::prost::alloc::string::String,
3594 #[prost(uint32, tag="2")]
3595 pub width: u32,
3596 #[prost(uint32, tag="3")]
3597 pub height: u32,
3598}
3599#[allow(clippy::derive_partial_eq_without_eq)]
3600#[derive(Clone, PartialEq, ::prost::Message)]
3601pub struct LeaveRequest {
3602 #[prost(bool, tag="1")]
3606 pub can_reconnect: bool,
3607 #[prost(enumeration="DisconnectReason", tag="2")]
3608 pub reason: i32,
3609 #[prost(enumeration="leave_request::Action", tag="3")]
3610 pub action: i32,
3611 #[prost(message, optional, tag="4")]
3612 pub regions: ::core::option::Option<RegionSettings>,
3613}
3614pub mod leave_request {
3616 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3618 #[repr(i32)]
3619 pub enum Action {
3620 Disconnect = 0,
3622 Resume = 1,
3624 Reconnect = 2,
3626 }
3627 impl Action {
3628 pub fn as_str_name(&self) -> &'static str {
3633 match self {
3634 Action::Disconnect => "DISCONNECT",
3635 Action::Resume => "RESUME",
3636 Action::Reconnect => "RECONNECT",
3637 }
3638 }
3639 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3641 match value {
3642 "DISCONNECT" => Some(Self::Disconnect),
3643 "RESUME" => Some(Self::Resume),
3644 "RECONNECT" => Some(Self::Reconnect),
3645 _ => None,
3646 }
3647 }
3648 }
3649}
3650#[allow(clippy::derive_partial_eq_without_eq)]
3652#[derive(Clone, PartialEq, ::prost::Message)]
3653pub struct UpdateVideoLayers {
3654 #[prost(string, tag="1")]
3655 pub track_sid: ::prost::alloc::string::String,
3656 #[prost(message, repeated, tag="2")]
3657 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3658}
3659#[allow(clippy::derive_partial_eq_without_eq)]
3660#[derive(Clone, PartialEq, ::prost::Message)]
3661pub struct UpdateParticipantMetadata {
3662 #[prost(string, tag="1")]
3663 pub metadata: ::prost::alloc::string::String,
3664 #[prost(string, tag="2")]
3665 pub name: ::prost::alloc::string::String,
3666 #[prost(map="string, string", tag="3")]
3669 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3670 #[prost(uint32, tag="4")]
3671 pub request_id: u32,
3672}
3673#[allow(clippy::derive_partial_eq_without_eq)]
3674#[derive(Clone, PartialEq, ::prost::Message)]
3675pub struct IceServer {
3676 #[prost(string, repeated, tag="1")]
3677 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3678 #[prost(string, tag="2")]
3679 pub username: ::prost::alloc::string::String,
3680 #[prost(string, tag="3")]
3681 pub credential: ::prost::alloc::string::String,
3682}
3683#[allow(clippy::derive_partial_eq_without_eq)]
3684#[derive(Clone, PartialEq, ::prost::Message)]
3685pub struct SpeakersChanged {
3686 #[prost(message, repeated, tag="1")]
3687 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
3688}
3689#[allow(clippy::derive_partial_eq_without_eq)]
3690#[derive(Clone, PartialEq, ::prost::Message)]
3691pub struct RoomUpdate {
3692 #[prost(message, optional, tag="1")]
3693 pub room: ::core::option::Option<Room>,
3694}
3695#[allow(clippy::derive_partial_eq_without_eq)]
3696#[derive(Clone, PartialEq, ::prost::Message)]
3697pub struct ConnectionQualityInfo {
3698 #[prost(string, tag="1")]
3699 pub participant_sid: ::prost::alloc::string::String,
3700 #[prost(enumeration="ConnectionQuality", tag="2")]
3701 pub quality: i32,
3702 #[prost(float, tag="3")]
3703 pub score: f32,
3704}
3705#[allow(clippy::derive_partial_eq_without_eq)]
3706#[derive(Clone, PartialEq, ::prost::Message)]
3707pub struct ConnectionQualityUpdate {
3708 #[prost(message, repeated, tag="1")]
3709 pub updates: ::prost::alloc::vec::Vec<ConnectionQualityInfo>,
3710}
3711#[allow(clippy::derive_partial_eq_without_eq)]
3712#[derive(Clone, PartialEq, ::prost::Message)]
3713pub struct StreamStateInfo {
3714 #[prost(string, tag="1")]
3715 pub participant_sid: ::prost::alloc::string::String,
3716 #[prost(string, tag="2")]
3717 pub track_sid: ::prost::alloc::string::String,
3718 #[prost(enumeration="StreamState", tag="3")]
3719 pub state: i32,
3720}
3721#[allow(clippy::derive_partial_eq_without_eq)]
3722#[derive(Clone, PartialEq, ::prost::Message)]
3723pub struct StreamStateUpdate {
3724 #[prost(message, repeated, tag="1")]
3725 pub stream_states: ::prost::alloc::vec::Vec<StreamStateInfo>,
3726}
3727#[allow(clippy::derive_partial_eq_without_eq)]
3728#[derive(Clone, PartialEq, ::prost::Message)]
3729pub struct SubscribedQuality {
3730 #[prost(enumeration="VideoQuality", tag="1")]
3731 pub quality: i32,
3732 #[prost(bool, tag="2")]
3733 pub enabled: bool,
3734}
3735#[allow(clippy::derive_partial_eq_without_eq)]
3736#[derive(Clone, PartialEq, ::prost::Message)]
3737pub struct SubscribedCodec {
3738 #[prost(string, tag="1")]
3739 pub codec: ::prost::alloc::string::String,
3740 #[prost(message, repeated, tag="2")]
3741 pub qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
3742}
3743#[allow(clippy::derive_partial_eq_without_eq)]
3744#[derive(Clone, PartialEq, ::prost::Message)]
3745pub struct SubscribedQualityUpdate {
3746 #[prost(string, tag="1")]
3747 pub track_sid: ::prost::alloc::string::String,
3748 #[deprecated]
3749 #[prost(message, repeated, tag="2")]
3750 pub subscribed_qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
3751 #[prost(message, repeated, tag="3")]
3752 pub subscribed_codecs: ::prost::alloc::vec::Vec<SubscribedCodec>,
3753}
3754#[allow(clippy::derive_partial_eq_without_eq)]
3755#[derive(Clone, PartialEq, ::prost::Message)]
3756pub struct SubscribedAudioCodecUpdate {
3757 #[prost(string, tag="1")]
3758 pub track_sid: ::prost::alloc::string::String,
3759 #[prost(message, repeated, tag="2")]
3760 pub subscribed_audio_codecs: ::prost::alloc::vec::Vec<SubscribedAudioCodec>,
3761}
3762#[allow(clippy::derive_partial_eq_without_eq)]
3763#[derive(Clone, PartialEq, ::prost::Message)]
3764pub struct TrackPermission {
3765 #[prost(string, tag="1")]
3767 pub participant_sid: ::prost::alloc::string::String,
3768 #[prost(bool, tag="2")]
3769 pub all_tracks: bool,
3770 #[prost(string, repeated, tag="3")]
3771 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3772 #[prost(string, tag="4")]
3773 pub participant_identity: ::prost::alloc::string::String,
3774}
3775#[allow(clippy::derive_partial_eq_without_eq)]
3776#[derive(Clone, PartialEq, ::prost::Message)]
3777pub struct SubscriptionPermission {
3778 #[prost(bool, tag="1")]
3779 pub all_participants: bool,
3780 #[prost(message, repeated, tag="2")]
3781 pub track_permissions: ::prost::alloc::vec::Vec<TrackPermission>,
3782}
3783#[allow(clippy::derive_partial_eq_without_eq)]
3784#[derive(Clone, PartialEq, ::prost::Message)]
3785pub struct SubscriptionPermissionUpdate {
3786 #[prost(string, tag="1")]
3787 pub participant_sid: ::prost::alloc::string::String,
3788 #[prost(string, tag="2")]
3789 pub track_sid: ::prost::alloc::string::String,
3790 #[prost(bool, tag="3")]
3791 pub allowed: bool,
3792}
3793#[allow(clippy::derive_partial_eq_without_eq)]
3794#[derive(Clone, PartialEq, ::prost::Message)]
3795pub struct RoomMovedResponse {
3796 #[prost(message, optional, tag="1")]
3798 pub room: ::core::option::Option<Room>,
3799 #[prost(string, tag="2")]
3801 pub token: ::prost::alloc::string::String,
3802 #[prost(message, optional, tag="3")]
3803 pub participant: ::core::option::Option<ParticipantInfo>,
3804 #[prost(message, repeated, tag="4")]
3805 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3806}
3807#[allow(clippy::derive_partial_eq_without_eq)]
3808#[derive(Clone, PartialEq, ::prost::Message)]
3809pub struct SyncState {
3810 #[prost(message, optional, tag="1")]
3814 pub answer: ::core::option::Option<SessionDescription>,
3815 #[prost(message, optional, tag="2")]
3816 pub subscription: ::core::option::Option<UpdateSubscription>,
3817 #[prost(message, repeated, tag="3")]
3818 pub publish_tracks: ::prost::alloc::vec::Vec<TrackPublishedResponse>,
3819 #[prost(message, repeated, tag="4")]
3820 pub data_channels: ::prost::alloc::vec::Vec<DataChannelInfo>,
3821 #[prost(message, optional, tag="5")]
3825 pub offer: ::core::option::Option<SessionDescription>,
3826 #[prost(string, repeated, tag="6")]
3827 pub track_sids_disabled: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3828 #[prost(message, repeated, tag="7")]
3829 pub datachannel_receive_states: ::prost::alloc::vec::Vec<DataChannelReceiveState>,
3830 #[prost(message, repeated, tag="8")]
3831 pub publish_data_tracks: ::prost::alloc::vec::Vec<PublishDataTrackResponse>,
3832}
3833#[allow(clippy::derive_partial_eq_without_eq)]
3834#[derive(Clone, PartialEq, ::prost::Message)]
3835pub struct DataChannelReceiveState {
3836 #[prost(string, tag="1")]
3837 pub publisher_sid: ::prost::alloc::string::String,
3838 #[prost(uint32, tag="2")]
3839 pub last_seq: u32,
3840}
3841#[allow(clippy::derive_partial_eq_without_eq)]
3842#[derive(Clone, PartialEq, ::prost::Message)]
3843pub struct DataChannelInfo {
3844 #[prost(string, tag="1")]
3845 pub label: ::prost::alloc::string::String,
3846 #[prost(uint32, tag="2")]
3847 pub id: u32,
3848 #[prost(enumeration="SignalTarget", tag="3")]
3849 pub target: i32,
3850}
3851#[allow(clippy::derive_partial_eq_without_eq)]
3852#[derive(Clone, PartialEq, ::prost::Message)]
3853pub struct SimulateScenario {
3854 #[prost(oneof="simulate_scenario::Scenario", tags="1, 2, 3, 4, 5, 6, 7, 8, 9")]
3855 pub scenario: ::core::option::Option<simulate_scenario::Scenario>,
3856}
3857pub mod simulate_scenario {
3859 #[allow(clippy::derive_partial_eq_without_eq)]
3860#[derive(Clone, PartialEq, ::prost::Oneof)]
3861 pub enum Scenario {
3862 #[prost(int32, tag="1")]
3864 SpeakerUpdate(i32),
3865 #[prost(bool, tag="2")]
3867 NodeFailure(bool),
3868 #[prost(bool, tag="3")]
3870 Migration(bool),
3871 #[prost(bool, tag="4")]
3873 ServerLeave(bool),
3874 #[prost(enumeration="super::CandidateProtocol", tag="5")]
3876 SwitchCandidateProtocol(i32),
3877 #[prost(int64, tag="6")]
3880 SubscriberBandwidth(i64),
3881 #[prost(bool, tag="7")]
3883 DisconnectSignalOnResume(bool),
3884 #[prost(bool, tag="8")]
3886 DisconnectSignalOnResumeNoMessages(bool),
3887 #[prost(bool, tag="9")]
3889 LeaveRequestFullReconnect(bool),
3890 }
3891}
3892#[allow(clippy::derive_partial_eq_without_eq)]
3893#[derive(Clone, PartialEq, ::prost::Message)]
3894pub struct Ping {
3895 #[prost(int64, tag="1")]
3896 pub timestamp: i64,
3897 #[prost(int64, tag="2")]
3899 pub rtt: i64,
3900}
3901#[allow(clippy::derive_partial_eq_without_eq)]
3902#[derive(Clone, PartialEq, ::prost::Message)]
3903pub struct Pong {
3904 #[prost(int64, tag="1")]
3906 pub last_ping_timestamp: i64,
3907 #[prost(int64, tag="2")]
3908 pub timestamp: i64,
3909}
3910#[allow(clippy::derive_partial_eq_without_eq)]
3911#[derive(Clone, PartialEq, ::prost::Message)]
3912pub struct RegionSettings {
3913 #[prost(message, repeated, tag="1")]
3914 pub regions: ::prost::alloc::vec::Vec<RegionInfo>,
3915}
3916#[allow(clippy::derive_partial_eq_without_eq)]
3917#[derive(Clone, PartialEq, ::prost::Message)]
3918pub struct RegionInfo {
3919 #[prost(string, tag="1")]
3920 pub region: ::prost::alloc::string::String,
3921 #[prost(string, tag="2")]
3922 pub url: ::prost::alloc::string::String,
3923 #[prost(int64, tag="3")]
3924 pub distance: i64,
3925}
3926#[allow(clippy::derive_partial_eq_without_eq)]
3927#[derive(Clone, PartialEq, ::prost::Message)]
3928pub struct SubscriptionResponse {
3929 #[prost(string, tag="1")]
3930 pub track_sid: ::prost::alloc::string::String,
3931 #[prost(enumeration="SubscriptionError", tag="2")]
3932 pub err: i32,
3933}
3934#[allow(clippy::derive_partial_eq_without_eq)]
3935#[derive(Clone, PartialEq, ::prost::Message)]
3936pub struct RequestResponse {
3937 #[prost(uint32, tag="1")]
3938 pub request_id: u32,
3939 #[prost(enumeration="request_response::Reason", tag="2")]
3940 pub reason: i32,
3941 #[prost(string, tag="3")]
3942 pub message: ::prost::alloc::string::String,
3943 #[prost(oneof="request_response::Request", tags="4, 5, 6, 7, 8, 9, 10, 11")]
3944 pub request: ::core::option::Option<request_response::Request>,
3945}
3946pub mod request_response {
3948 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3949 #[repr(i32)]
3950 pub enum Reason {
3951 Ok = 0,
3952 NotFound = 1,
3953 NotAllowed = 2,
3954 LimitExceeded = 3,
3955 Queued = 4,
3956 UnsupportedType = 5,
3957 UnclassifiedError = 6,
3958 InvalidHandle = 7,
3959 InvalidName = 8,
3960 DuplicateHandle = 9,
3961 DuplicateName = 10,
3962 }
3963 impl Reason {
3964 pub fn as_str_name(&self) -> &'static str {
3969 match self {
3970 Reason::Ok => "OK",
3971 Reason::NotFound => "NOT_FOUND",
3972 Reason::NotAllowed => "NOT_ALLOWED",
3973 Reason::LimitExceeded => "LIMIT_EXCEEDED",
3974 Reason::Queued => "QUEUED",
3975 Reason::UnsupportedType => "UNSUPPORTED_TYPE",
3976 Reason::UnclassifiedError => "UNCLASSIFIED_ERROR",
3977 Reason::InvalidHandle => "INVALID_HANDLE",
3978 Reason::InvalidName => "INVALID_NAME",
3979 Reason::DuplicateHandle => "DUPLICATE_HANDLE",
3980 Reason::DuplicateName => "DUPLICATE_NAME",
3981 }
3982 }
3983 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3985 match value {
3986 "OK" => Some(Self::Ok),
3987 "NOT_FOUND" => Some(Self::NotFound),
3988 "NOT_ALLOWED" => Some(Self::NotAllowed),
3989 "LIMIT_EXCEEDED" => Some(Self::LimitExceeded),
3990 "QUEUED" => Some(Self::Queued),
3991 "UNSUPPORTED_TYPE" => Some(Self::UnsupportedType),
3992 "UNCLASSIFIED_ERROR" => Some(Self::UnclassifiedError),
3993 "INVALID_HANDLE" => Some(Self::InvalidHandle),
3994 "INVALID_NAME" => Some(Self::InvalidName),
3995 "DUPLICATE_HANDLE" => Some(Self::DuplicateHandle),
3996 "DUPLICATE_NAME" => Some(Self::DuplicateName),
3997 _ => None,
3998 }
3999 }
4000 }
4001 #[allow(clippy::derive_partial_eq_without_eq)]
4002#[derive(Clone, PartialEq, ::prost::Oneof)]
4003 pub enum Request {
4004 #[prost(message, tag="4")]
4005 Trickle(super::TrickleRequest),
4006 #[prost(message, tag="5")]
4007 AddTrack(super::AddTrackRequest),
4008 #[prost(message, tag="6")]
4009 Mute(super::MuteTrackRequest),
4010 #[prost(message, tag="7")]
4011 UpdateMetadata(super::UpdateParticipantMetadata),
4012 #[prost(message, tag="8")]
4013 UpdateAudioTrack(super::UpdateLocalAudioTrack),
4014 #[prost(message, tag="9")]
4015 UpdateVideoTrack(super::UpdateLocalVideoTrack),
4016 #[prost(message, tag="10")]
4017 PublishDataTrack(super::PublishDataTrackRequest),
4018 #[prost(message, tag="11")]
4019 UnpublishDataTrack(super::UnpublishDataTrackRequest),
4020 }
4021}
4022#[allow(clippy::derive_partial_eq_without_eq)]
4023#[derive(Clone, PartialEq, ::prost::Message)]
4024pub struct TrackSubscribed {
4025 #[prost(string, tag="1")]
4026 pub track_sid: ::prost::alloc::string::String,
4027}
4028#[allow(clippy::derive_partial_eq_without_eq)]
4029#[derive(Clone, PartialEq, ::prost::Message)]
4030pub struct ConnectionSettings {
4031 #[prost(bool, tag="1")]
4032 pub auto_subscribe: bool,
4033 #[prost(bool, tag="2")]
4034 pub adaptive_stream: bool,
4035 #[prost(bool, optional, tag="3")]
4036 pub subscriber_allow_pause: ::core::option::Option<bool>,
4037 #[prost(bool, tag="4")]
4038 pub disable_ice_lite: bool,
4039 #[prost(bool, optional, tag="5")]
4040 pub auto_subscribe_data_track: ::core::option::Option<bool>,
4041}
4042#[allow(clippy::derive_partial_eq_without_eq)]
4043#[derive(Clone, PartialEq, ::prost::Message)]
4044pub struct JoinRequest {
4045 #[prost(message, optional, tag="1")]
4046 pub client_info: ::core::option::Option<ClientInfo>,
4047 #[prost(message, optional, tag="2")]
4048 pub connection_settings: ::core::option::Option<ConnectionSettings>,
4049 #[prost(string, tag="3")]
4051 pub metadata: ::prost::alloc::string::String,
4052 #[prost(map="string, string", tag="4")]
4056 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4057 #[prost(message, repeated, tag="5")]
4058 pub add_track_requests: ::prost::alloc::vec::Vec<AddTrackRequest>,
4059 #[prost(message, optional, tag="6")]
4060 pub publisher_offer: ::core::option::Option<SessionDescription>,
4061 #[prost(bool, tag="7")]
4062 pub reconnect: bool,
4063 #[prost(enumeration="ReconnectReason", tag="8")]
4064 pub reconnect_reason: i32,
4065 #[prost(string, tag="9")]
4066 pub participant_sid: ::prost::alloc::string::String,
4067 #[prost(message, optional, tag="10")]
4068 pub sync_state: ::core::option::Option<SyncState>,
4069}
4070#[allow(clippy::derive_partial_eq_without_eq)]
4071#[derive(Clone, PartialEq, ::prost::Message)]
4072pub struct WrappedJoinRequest {
4073 #[prost(enumeration="wrapped_join_request::Compression", tag="1")]
4074 pub compression: i32,
4075 #[prost(bytes="vec", tag="2")]
4077 pub join_request: ::prost::alloc::vec::Vec<u8>,
4078}
4079pub mod wrapped_join_request {
4081 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4082 #[repr(i32)]
4083 pub enum Compression {
4084 None = 0,
4085 Gzip = 1,
4086 }
4087 impl Compression {
4088 pub fn as_str_name(&self) -> &'static str {
4093 match self {
4094 Compression::None => "NONE",
4095 Compression::Gzip => "GZIP",
4096 }
4097 }
4098 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4100 match value {
4101 "NONE" => Some(Self::None),
4102 "GZIP" => Some(Self::Gzip),
4103 _ => None,
4104 }
4105 }
4106 }
4107}
4108#[allow(clippy::derive_partial_eq_without_eq)]
4109#[derive(Clone, PartialEq, ::prost::Message)]
4110pub struct MediaSectionsRequirement {
4111 #[prost(uint32, tag="1")]
4112 pub num_audios: u32,
4113 #[prost(uint32, tag="2")]
4114 pub num_videos: u32,
4115}
4116#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4117#[repr(i32)]
4118pub enum SignalTarget {
4119 Publisher = 0,
4120 Subscriber = 1,
4121}
4122impl SignalTarget {
4123 pub fn as_str_name(&self) -> &'static str {
4128 match self {
4129 SignalTarget::Publisher => "PUBLISHER",
4130 SignalTarget::Subscriber => "SUBSCRIBER",
4131 }
4132 }
4133 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4135 match value {
4136 "PUBLISHER" => Some(Self::Publisher),
4137 "SUBSCRIBER" => Some(Self::Subscriber),
4138 _ => None,
4139 }
4140 }
4141}
4142#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4143#[repr(i32)]
4144pub enum StreamState {
4145 Active = 0,
4146 Paused = 1,
4147}
4148impl StreamState {
4149 pub fn as_str_name(&self) -> &'static str {
4154 match self {
4155 StreamState::Active => "ACTIVE",
4156 StreamState::Paused => "PAUSED",
4157 }
4158 }
4159 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4161 match value {
4162 "ACTIVE" => Some(Self::Active),
4163 "PAUSED" => Some(Self::Paused),
4164 _ => None,
4165 }
4166 }
4167}
4168#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4169#[repr(i32)]
4170pub enum CandidateProtocol {
4171 Udp = 0,
4172 Tcp = 1,
4173 Tls = 2,
4174}
4175impl CandidateProtocol {
4176 pub fn as_str_name(&self) -> &'static str {
4181 match self {
4182 CandidateProtocol::Udp => "UDP",
4183 CandidateProtocol::Tcp => "TCP",
4184 CandidateProtocol::Tls => "TLS",
4185 }
4186 }
4187 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4189 match value {
4190 "UDP" => Some(Self::Udp),
4191 "TCP" => Some(Self::Tcp),
4192 "TLS" => Some(Self::Tls),
4193 _ => None,
4194 }
4195 }
4196}
4197#[allow(clippy::derive_partial_eq_without_eq)]
4198#[derive(Clone, PartialEq, ::prost::Message)]
4199pub struct Job {
4200 #[prost(string, tag="1")]
4201 pub id: ::prost::alloc::string::String,
4202 #[prost(string, tag="9")]
4203 pub dispatch_id: ::prost::alloc::string::String,
4204 #[prost(enumeration="JobType", tag="2")]
4205 pub r#type: i32,
4206 #[prost(message, optional, tag="3")]
4207 pub room: ::core::option::Option<Room>,
4208 #[prost(message, optional, tag="4")]
4209 pub participant: ::core::option::Option<ParticipantInfo>,
4210 #[deprecated]
4211 #[prost(string, tag="5")]
4212 pub namespace: ::prost::alloc::string::String,
4213 #[prost(string, tag="6")]
4214 pub metadata: ::prost::alloc::string::String,
4215 #[prost(string, tag="7")]
4216 pub agent_name: ::prost::alloc::string::String,
4217 #[prost(message, optional, tag="8")]
4218 pub state: ::core::option::Option<JobState>,
4219 #[prost(bool, tag="10")]
4220 pub enable_recording: bool,
4221}
4222#[allow(clippy::derive_partial_eq_without_eq)]
4223#[derive(Clone, PartialEq, ::prost::Message)]
4224pub struct JobState {
4225 #[prost(enumeration="JobStatus", tag="1")]
4226 pub status: i32,
4227 #[prost(string, tag="2")]
4228 pub error: ::prost::alloc::string::String,
4229 #[prost(int64, tag="3")]
4230 pub started_at: i64,
4231 #[prost(int64, tag="4")]
4232 pub ended_at: i64,
4233 #[prost(int64, tag="5")]
4234 pub updated_at: i64,
4235 #[prost(string, tag="6")]
4236 pub participant_identity: ::prost::alloc::string::String,
4237 #[prost(string, tag="7")]
4238 pub worker_id: ::prost::alloc::string::String,
4239 #[prost(string, tag="8")]
4240 pub agent_id: ::prost::alloc::string::String,
4241}
4242#[allow(clippy::derive_partial_eq_without_eq)]
4244#[derive(Clone, PartialEq, ::prost::Message)]
4245pub struct WorkerMessage {
4246 #[prost(oneof="worker_message::Message", tags="1, 2, 3, 4, 5, 6, 7, 8, 9")]
4247 pub message: ::core::option::Option<worker_message::Message>,
4248}
4249pub mod worker_message {
4251 #[allow(clippy::derive_partial_eq_without_eq)]
4252#[derive(Clone, PartialEq, ::prost::Oneof)]
4253 pub enum Message {
4254 #[prost(message, tag="1")]
4256 Register(super::RegisterWorkerRequest),
4257 #[prost(message, tag="2")]
4259 Availability(super::AvailabilityResponse),
4260 #[prost(message, tag="3")]
4262 UpdateWorker(super::UpdateWorkerStatus),
4263 #[prost(message, tag="4")]
4265 UpdateJob(super::UpdateJobStatus),
4266 #[prost(message, tag="5")]
4267 Ping(super::WorkerPing),
4268 #[prost(message, tag="6")]
4269 SimulateJob(super::SimulateJobRequest),
4270 #[prost(message, tag="7")]
4271 MigrateJob(super::MigrateJobRequest),
4272 #[prost(message, tag="8")]
4273 TextResponse(super::TextMessageResponse),
4274 #[prost(message, tag="9")]
4275 PushText(super::PushTextRequest),
4276 }
4277}
4278#[allow(clippy::derive_partial_eq_without_eq)]
4280#[derive(Clone, PartialEq, ::prost::Message)]
4281pub struct ServerMessage {
4282 #[prost(oneof="server_message::Message", tags="1, 2, 3, 5, 4, 6")]
4283 pub message: ::core::option::Option<server_message::Message>,
4284}
4285pub mod server_message {
4287 #[allow(clippy::derive_partial_eq_without_eq)]
4288#[derive(Clone, PartialEq, ::prost::Oneof)]
4289 pub enum Message {
4290 #[prost(message, tag="1")]
4292 Register(super::RegisterWorkerResponse),
4293 #[prost(message, tag="2")]
4295 Availability(super::AvailabilityRequest),
4296 #[prost(message, tag="3")]
4297 Assignment(super::JobAssignment),
4298 #[prost(message, tag="5")]
4299 Termination(super::JobTermination),
4300 #[prost(message, tag="4")]
4301 Pong(super::WorkerPong),
4302 #[prost(message, tag="6")]
4303 TextRequest(super::TextMessageRequest),
4304 }
4305}
4306#[allow(clippy::derive_partial_eq_without_eq)]
4307#[derive(Clone, PartialEq, ::prost::Message)]
4308pub struct SimulateJobRequest {
4309 #[prost(enumeration="JobType", tag="1")]
4310 pub r#type: i32,
4311 #[prost(message, optional, tag="2")]
4312 pub room: ::core::option::Option<Room>,
4313 #[prost(message, optional, tag="3")]
4314 pub participant: ::core::option::Option<ParticipantInfo>,
4315}
4316#[allow(clippy::derive_partial_eq_without_eq)]
4317#[derive(Clone, PartialEq, ::prost::Message)]
4318pub struct WorkerPing {
4319 #[prost(int64, tag="1")]
4320 pub timestamp: i64,
4321}
4322#[allow(clippy::derive_partial_eq_without_eq)]
4323#[derive(Clone, PartialEq, ::prost::Message)]
4324pub struct WorkerPong {
4325 #[prost(int64, tag="1")]
4326 pub last_timestamp: i64,
4327 #[prost(int64, tag="2")]
4328 pub timestamp: i64,
4329}
4330#[allow(clippy::derive_partial_eq_without_eq)]
4331#[derive(Clone, PartialEq, ::prost::Message)]
4332pub struct RegisterWorkerRequest {
4333 #[prost(enumeration="JobType", tag="1")]
4334 pub r#type: i32,
4335 #[prost(string, tag="8")]
4336 pub agent_name: ::prost::alloc::string::String,
4337 #[prost(string, tag="3")]
4339 pub version: ::prost::alloc::string::String,
4340 #[prost(uint32, tag="5")]
4342 pub ping_interval: u32,
4343 #[prost(string, optional, tag="6")]
4344 pub namespace: ::core::option::Option<::prost::alloc::string::String>,
4345 #[prost(message, optional, tag="7")]
4346 pub allowed_permissions: ::core::option::Option<ParticipantPermission>,
4347}
4348#[allow(clippy::derive_partial_eq_without_eq)]
4349#[derive(Clone, PartialEq, ::prost::Message)]
4350pub struct RegisterWorkerResponse {
4351 #[prost(string, tag="1")]
4352 pub worker_id: ::prost::alloc::string::String,
4353 #[prost(message, optional, tag="3")]
4354 pub server_info: ::core::option::Option<ServerInfo>,
4355}
4356#[allow(clippy::derive_partial_eq_without_eq)]
4357#[derive(Clone, PartialEq, ::prost::Message)]
4358pub struct MigrateJobRequest {
4359 #[prost(string, repeated, tag="2")]
4361 pub job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4362}
4363#[allow(clippy::derive_partial_eq_without_eq)]
4364#[derive(Clone, PartialEq, ::prost::Message)]
4365pub struct AvailabilityRequest {
4366 #[prost(message, optional, tag="1")]
4367 pub job: ::core::option::Option<Job>,
4368 #[prost(bool, tag="2")]
4371 pub resuming: bool,
4372}
4373#[allow(clippy::derive_partial_eq_without_eq)]
4374#[derive(Clone, PartialEq, ::prost::Message)]
4375pub struct AvailabilityResponse {
4376 #[prost(string, tag="1")]
4377 pub job_id: ::prost::alloc::string::String,
4378 #[prost(bool, tag="2")]
4379 pub available: bool,
4380 #[prost(bool, tag="3")]
4381 pub supports_resume: bool,
4382 #[prost(bool, tag="8")]
4383 pub terminate: bool,
4384 #[prost(string, tag="4")]
4385 pub participant_name: ::prost::alloc::string::String,
4386 #[prost(string, tag="5")]
4387 pub participant_identity: ::prost::alloc::string::String,
4388 #[prost(string, tag="6")]
4389 pub participant_metadata: ::prost::alloc::string::String,
4390 #[prost(map="string, string", tag="7")]
4392 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4393}
4394#[allow(clippy::derive_partial_eq_without_eq)]
4395#[derive(Clone, PartialEq, ::prost::Message)]
4396pub struct UpdateJobStatus {
4397 #[prost(string, tag="1")]
4398 pub job_id: ::prost::alloc::string::String,
4399 #[prost(enumeration="JobStatus", tag="2")]
4401 pub status: i32,
4402 #[prost(string, tag="3")]
4404 pub error: ::prost::alloc::string::String,
4405}
4406#[allow(clippy::derive_partial_eq_without_eq)]
4407#[derive(Clone, PartialEq, ::prost::Message)]
4408pub struct UpdateWorkerStatus {
4409 #[prost(enumeration="WorkerStatus", optional, tag="1")]
4410 pub status: ::core::option::Option<i32>,
4411 #[prost(float, tag="3")]
4413 pub load: f32,
4414 #[prost(uint32, tag="4")]
4415 pub job_count: u32,
4416}
4417#[allow(clippy::derive_partial_eq_without_eq)]
4418#[derive(Clone, PartialEq, ::prost::Message)]
4419pub struct JobAssignment {
4420 #[prost(message, optional, tag="1")]
4421 pub job: ::core::option::Option<Job>,
4422 #[prost(string, optional, tag="2")]
4423 pub url: ::core::option::Option<::prost::alloc::string::String>,
4424 #[prost(string, tag="3")]
4425 pub token: ::prost::alloc::string::String,
4426}
4427#[allow(clippy::derive_partial_eq_without_eq)]
4428#[derive(Clone, PartialEq, ::prost::Message)]
4429pub struct JobTermination {
4430 #[prost(string, tag="1")]
4431 pub job_id: ::prost::alloc::string::String,
4432}
4433#[allow(clippy::derive_partial_eq_without_eq)]
4434#[derive(Clone, PartialEq, ::prost::Message)]
4435pub struct AgentSessionState {
4436 #[prost(uint64, tag="1")]
4437 pub version: u64,
4438 #[prost(oneof="agent_session_state::Data", tags="2, 3")]
4439 pub data: ::core::option::Option<agent_session_state::Data>,
4440}
4441pub mod agent_session_state {
4443 #[allow(clippy::derive_partial_eq_without_eq)]
4444#[derive(Clone, PartialEq, ::prost::Oneof)]
4445 pub enum Data {
4446 #[prost(bytes, tag="2")]
4447 Snapshot(::prost::alloc::vec::Vec<u8>),
4448 #[prost(bytes, tag="3")]
4449 Delta(::prost::alloc::vec::Vec<u8>),
4450 }
4451}
4452#[allow(clippy::derive_partial_eq_without_eq)]
4453#[derive(Clone, PartialEq, ::prost::Message)]
4454pub struct TextMessageRequest {
4455 #[prost(string, tag="1")]
4456 pub message_id: ::prost::alloc::string::String,
4457 #[prost(string, tag="2")]
4458 pub session_id: ::prost::alloc::string::String,
4459 #[prost(string, tag="3")]
4460 pub agent_name: ::prost::alloc::string::String,
4461 #[prost(string, tag="4")]
4462 pub metadata: ::prost::alloc::string::String,
4463 #[prost(message, optional, tag="5")]
4464 pub session_state: ::core::option::Option<AgentSessionState>,
4465 #[prost(string, tag="6")]
4466 pub text: ::prost::alloc::string::String,
4467}
4468#[allow(clippy::derive_partial_eq_without_eq)]
4469#[derive(Clone, PartialEq, ::prost::Message)]
4470pub struct PushTextRequest {
4471 #[prost(string, tag="1")]
4473 pub message_id: ::prost::alloc::string::String,
4474 #[prost(string, tag="2")]
4475 pub content: ::prost::alloc::string::String,
4476}
4477#[allow(clippy::derive_partial_eq_without_eq)]
4478#[derive(Clone, PartialEq, ::prost::Message)]
4479pub struct TextMessageResponse {
4480 #[prost(string, tag="1")]
4482 pub message_id: ::prost::alloc::string::String,
4483 #[prost(message, optional, tag="2")]
4484 pub session_state: ::core::option::Option<AgentSessionState>,
4485 #[prost(string, tag="3")]
4486 pub error: ::prost::alloc::string::String,
4487}
4488#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4489#[repr(i32)]
4490pub enum JobType {
4491 JtRoom = 0,
4492 JtPublisher = 1,
4493 JtParticipant = 2,
4494}
4495impl JobType {
4496 pub fn as_str_name(&self) -> &'static str {
4501 match self {
4502 JobType::JtRoom => "JT_ROOM",
4503 JobType::JtPublisher => "JT_PUBLISHER",
4504 JobType::JtParticipant => "JT_PARTICIPANT",
4505 }
4506 }
4507 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4509 match value {
4510 "JT_ROOM" => Some(Self::JtRoom),
4511 "JT_PUBLISHER" => Some(Self::JtPublisher),
4512 "JT_PARTICIPANT" => Some(Self::JtParticipant),
4513 _ => None,
4514 }
4515 }
4516}
4517#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4518#[repr(i32)]
4519pub enum WorkerStatus {
4520 WsAvailable = 0,
4521 WsFull = 1,
4522}
4523impl WorkerStatus {
4524 pub fn as_str_name(&self) -> &'static str {
4529 match self {
4530 WorkerStatus::WsAvailable => "WS_AVAILABLE",
4531 WorkerStatus::WsFull => "WS_FULL",
4532 }
4533 }
4534 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4536 match value {
4537 "WS_AVAILABLE" => Some(Self::WsAvailable),
4538 "WS_FULL" => Some(Self::WsFull),
4539 _ => None,
4540 }
4541 }
4542}
4543#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4544#[repr(i32)]
4545pub enum JobStatus {
4546 JsPending = 0,
4547 JsRunning = 1,
4548 JsSuccess = 2,
4549 JsFailed = 3,
4550}
4551impl JobStatus {
4552 pub fn as_str_name(&self) -> &'static str {
4557 match self {
4558 JobStatus::JsPending => "JS_PENDING",
4559 JobStatus::JsRunning => "JS_RUNNING",
4560 JobStatus::JsSuccess => "JS_SUCCESS",
4561 JobStatus::JsFailed => "JS_FAILED",
4562 }
4563 }
4564 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4566 match value {
4567 "JS_PENDING" => Some(Self::JsPending),
4568 "JS_RUNNING" => Some(Self::JsRunning),
4569 "JS_SUCCESS" => Some(Self::JsSuccess),
4570 "JS_FAILED" => Some(Self::JsFailed),
4571 _ => None,
4572 }
4573 }
4574}
4575#[allow(clippy::derive_partial_eq_without_eq)]
4576#[derive(Clone, PartialEq, ::prost::Message)]
4577pub struct CreateAgentDispatchRequest {
4578 #[prost(string, tag="1")]
4579 pub agent_name: ::prost::alloc::string::String,
4580 #[prost(string, tag="2")]
4581 pub room: ::prost::alloc::string::String,
4582 #[prost(string, tag="3")]
4583 pub metadata: ::prost::alloc::string::String,
4584}
4585#[allow(clippy::derive_partial_eq_without_eq)]
4586#[derive(Clone, PartialEq, ::prost::Message)]
4587pub struct RoomAgentDispatch {
4588 #[prost(string, tag="1")]
4589 pub agent_name: ::prost::alloc::string::String,
4590 #[prost(string, tag="2")]
4591 pub metadata: ::prost::alloc::string::String,
4592}
4593#[allow(clippy::derive_partial_eq_without_eq)]
4594#[derive(Clone, PartialEq, ::prost::Message)]
4595pub struct DeleteAgentDispatchRequest {
4596 #[prost(string, tag="1")]
4597 pub dispatch_id: ::prost::alloc::string::String,
4598 #[prost(string, tag="2")]
4599 pub room: ::prost::alloc::string::String,
4600}
4601#[allow(clippy::derive_partial_eq_without_eq)]
4602#[derive(Clone, PartialEq, ::prost::Message)]
4603pub struct ListAgentDispatchRequest {
4604 #[prost(string, tag="1")]
4606 pub dispatch_id: ::prost::alloc::string::String,
4607 #[prost(string, tag="2")]
4609 pub room: ::prost::alloc::string::String,
4610}
4611#[allow(clippy::derive_partial_eq_without_eq)]
4612#[derive(Clone, PartialEq, ::prost::Message)]
4613pub struct ListAgentDispatchResponse {
4614 #[prost(message, repeated, tag="1")]
4615 pub agent_dispatches: ::prost::alloc::vec::Vec<AgentDispatch>,
4616}
4617#[allow(clippy::derive_partial_eq_without_eq)]
4618#[derive(Clone, PartialEq, ::prost::Message)]
4619pub struct AgentDispatch {
4620 #[prost(string, tag="1")]
4621 pub id: ::prost::alloc::string::String,
4622 #[prost(string, tag="2")]
4623 pub agent_name: ::prost::alloc::string::String,
4624 #[prost(string, tag="3")]
4625 pub room: ::prost::alloc::string::String,
4626 #[prost(string, tag="4")]
4627 pub metadata: ::prost::alloc::string::String,
4628 #[prost(message, optional, tag="5")]
4629 pub state: ::core::option::Option<AgentDispatchState>,
4630}
4631#[allow(clippy::derive_partial_eq_without_eq)]
4632#[derive(Clone, PartialEq, ::prost::Message)]
4633pub struct AgentDispatchState {
4634 #[prost(message, repeated, tag="1")]
4637 pub jobs: ::prost::alloc::vec::Vec<Job>,
4638 #[prost(int64, tag="2")]
4639 pub created_at: i64,
4640 #[prost(int64, tag="3")]
4641 pub deleted_at: i64,
4642}
4643#[allow(clippy::derive_partial_eq_without_eq)]
4644#[derive(Clone, PartialEq, ::prost::Message)]
4645pub struct CreateRoomRequest {
4646 #[prost(string, tag="1")]
4648 pub name: ::prost::alloc::string::String,
4649 #[prost(string, tag="12")]
4651 pub room_preset: ::prost::alloc::string::String,
4652 #[prost(uint32, tag="2")]
4654 pub empty_timeout: u32,
4655 #[prost(uint32, tag="10")]
4657 pub departure_timeout: u32,
4658 #[prost(uint32, tag="3")]
4660 pub max_participants: u32,
4661 #[prost(string, tag="4")]
4663 pub node_id: ::prost::alloc::string::String,
4664 #[prost(string, tag="5")]
4666 pub metadata: ::prost::alloc::string::String,
4667 #[prost(message, optional, tag="6")]
4669 pub egress: ::core::option::Option<RoomEgress>,
4670 #[prost(uint32, tag="7")]
4672 pub min_playout_delay: u32,
4673 #[prost(uint32, tag="8")]
4674 pub max_playout_delay: u32,
4675 #[prost(bool, tag="9")]
4678 pub sync_streams: bool,
4679 #[prost(bool, tag="13")]
4681 pub replay_enabled: bool,
4682 #[prost(message, repeated, tag="14")]
4686 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
4687}
4688#[allow(clippy::derive_partial_eq_without_eq)]
4689#[derive(Clone, PartialEq, ::prost::Message)]
4690pub struct RoomEgress {
4691 #[prost(message, optional, tag="1")]
4692 pub room: ::core::option::Option<RoomCompositeEgressRequest>,
4693 #[prost(message, optional, tag="3")]
4694 pub participant: ::core::option::Option<AutoParticipantEgress>,
4695 #[prost(message, optional, tag="2")]
4696 pub tracks: ::core::option::Option<AutoTrackEgress>,
4697}
4698#[allow(clippy::derive_partial_eq_without_eq)]
4699#[derive(Clone, PartialEq, ::prost::Message)]
4700pub struct RoomAgent {
4701 #[prost(message, repeated, tag="1")]
4702 pub dispatches: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
4703}
4704#[allow(clippy::derive_partial_eq_without_eq)]
4705#[derive(Clone, PartialEq, ::prost::Message)]
4706pub struct ListRoomsRequest {
4707 #[prost(string, repeated, tag="1")]
4709 pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4710}
4711#[allow(clippy::derive_partial_eq_without_eq)]
4712#[derive(Clone, PartialEq, ::prost::Message)]
4713pub struct ListRoomsResponse {
4714 #[prost(message, repeated, tag="1")]
4715 pub rooms: ::prost::alloc::vec::Vec<Room>,
4716}
4717#[allow(clippy::derive_partial_eq_without_eq)]
4718#[derive(Clone, PartialEq, ::prost::Message)]
4719pub struct DeleteRoomRequest {
4720 #[prost(string, tag="1")]
4722 pub room: ::prost::alloc::string::String,
4723}
4724#[allow(clippy::derive_partial_eq_without_eq)]
4725#[derive(Clone, PartialEq, ::prost::Message)]
4726pub struct DeleteRoomResponse {
4727}
4728#[allow(clippy::derive_partial_eq_without_eq)]
4729#[derive(Clone, PartialEq, ::prost::Message)]
4730pub struct ListParticipantsRequest {
4731 #[prost(string, tag="1")]
4733 pub room: ::prost::alloc::string::String,
4734}
4735#[allow(clippy::derive_partial_eq_without_eq)]
4736#[derive(Clone, PartialEq, ::prost::Message)]
4737pub struct ListParticipantsResponse {
4738 #[prost(message, repeated, tag="1")]
4739 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4740}
4741#[allow(clippy::derive_partial_eq_without_eq)]
4742#[derive(Clone, PartialEq, ::prost::Message)]
4743pub struct RoomParticipantIdentity {
4744 #[prost(string, tag="1")]
4746 pub room: ::prost::alloc::string::String,
4747 #[prost(string, tag="2")]
4749 pub identity: ::prost::alloc::string::String,
4750}
4751#[allow(clippy::derive_partial_eq_without_eq)]
4752#[derive(Clone, PartialEq, ::prost::Message)]
4753pub struct RemoveParticipantResponse {
4754}
4755#[allow(clippy::derive_partial_eq_without_eq)]
4756#[derive(Clone, PartialEq, ::prost::Message)]
4757pub struct MuteRoomTrackRequest {
4758 #[prost(string, tag="1")]
4760 pub room: ::prost::alloc::string::String,
4761 #[prost(string, tag="2")]
4762 pub identity: ::prost::alloc::string::String,
4763 #[prost(string, tag="3")]
4765 pub track_sid: ::prost::alloc::string::String,
4766 #[prost(bool, tag="4")]
4768 pub muted: bool,
4769}
4770#[allow(clippy::derive_partial_eq_without_eq)]
4771#[derive(Clone, PartialEq, ::prost::Message)]
4772pub struct MuteRoomTrackResponse {
4773 #[prost(message, optional, tag="1")]
4774 pub track: ::core::option::Option<TrackInfo>,
4775}
4776#[allow(clippy::derive_partial_eq_without_eq)]
4777#[derive(Clone, PartialEq, ::prost::Message)]
4778pub struct UpdateParticipantRequest {
4779 #[prost(string, tag="1")]
4780 pub room: ::prost::alloc::string::String,
4781 #[prost(string, tag="2")]
4782 pub identity: ::prost::alloc::string::String,
4783 #[prost(string, tag="3")]
4785 pub metadata: ::prost::alloc::string::String,
4786 #[prost(message, optional, tag="4")]
4788 pub permission: ::core::option::Option<ParticipantPermission>,
4789 #[prost(string, tag="5")]
4791 pub name: ::prost::alloc::string::String,
4792 #[prost(map="string, string", tag="6")]
4795 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4796}
4797#[allow(clippy::derive_partial_eq_without_eq)]
4798#[derive(Clone, PartialEq, ::prost::Message)]
4799pub struct UpdateSubscriptionsRequest {
4800 #[prost(string, tag="1")]
4801 pub room: ::prost::alloc::string::String,
4802 #[prost(string, tag="2")]
4803 pub identity: ::prost::alloc::string::String,
4804 #[prost(string, repeated, tag="3")]
4806 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4807 #[prost(bool, tag="4")]
4809 pub subscribe: bool,
4810 #[prost(message, repeated, tag="5")]
4812 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
4813}
4814#[allow(clippy::derive_partial_eq_without_eq)]
4816#[derive(Clone, PartialEq, ::prost::Message)]
4817pub struct UpdateSubscriptionsResponse {
4818}
4819#[allow(clippy::derive_partial_eq_without_eq)]
4820#[derive(Clone, PartialEq, ::prost::Message)]
4821pub struct SendDataRequest {
4822 #[prost(string, tag="1")]
4823 pub room: ::prost::alloc::string::String,
4824 #[prost(bytes="vec", tag="2")]
4825 pub data: ::prost::alloc::vec::Vec<u8>,
4826 #[prost(enumeration="data_packet::Kind", tag="3")]
4827 pub kind: i32,
4828 #[deprecated]
4830 #[prost(string, repeated, tag="4")]
4831 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4832 #[prost(string, repeated, tag="6")]
4834 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4835 #[prost(string, optional, tag="5")]
4836 pub topic: ::core::option::Option<::prost::alloc::string::String>,
4837 #[prost(bytes="vec", tag="7")]
4839 pub nonce: ::prost::alloc::vec::Vec<u8>,
4840}
4841#[allow(clippy::derive_partial_eq_without_eq)]
4843#[derive(Clone, PartialEq, ::prost::Message)]
4844pub struct SendDataResponse {
4845}
4846#[allow(clippy::derive_partial_eq_without_eq)]
4847#[derive(Clone, PartialEq, ::prost::Message)]
4848pub struct UpdateRoomMetadataRequest {
4849 #[prost(string, tag="1")]
4850 pub room: ::prost::alloc::string::String,
4851 #[prost(string, tag="2")]
4853 pub metadata: ::prost::alloc::string::String,
4854}
4855#[allow(clippy::derive_partial_eq_without_eq)]
4856#[derive(Clone, PartialEq, ::prost::Message)]
4857pub struct RoomConfiguration {
4858 #[prost(string, tag="1")]
4860 pub name: ::prost::alloc::string::String,
4861 #[prost(uint32, tag="2")]
4863 pub empty_timeout: u32,
4864 #[prost(uint32, tag="3")]
4866 pub departure_timeout: u32,
4867 #[prost(uint32, tag="4")]
4869 pub max_participants: u32,
4870 #[prost(string, tag="11")]
4872 pub metadata: ::prost::alloc::string::String,
4873 #[prost(message, optional, tag="5")]
4875 pub egress: ::core::option::Option<RoomEgress>,
4876 #[prost(uint32, tag="7")]
4878 pub min_playout_delay: u32,
4879 #[prost(uint32, tag="8")]
4880 pub max_playout_delay: u32,
4881 #[prost(bool, tag="9")]
4884 pub sync_streams: bool,
4885 #[prost(message, repeated, tag="10")]
4887 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
4888}
4889#[allow(clippy::derive_partial_eq_without_eq)]
4890#[derive(Clone, PartialEq, ::prost::Message)]
4891pub struct ForwardParticipantRequest {
4892 #[prost(string, tag="1")]
4894 pub room: ::prost::alloc::string::String,
4895 #[prost(string, tag="2")]
4897 pub identity: ::prost::alloc::string::String,
4898 #[prost(string, tag="3")]
4900 pub destination_room: ::prost::alloc::string::String,
4901}
4902#[allow(clippy::derive_partial_eq_without_eq)]
4903#[derive(Clone, PartialEq, ::prost::Message)]
4904pub struct ForwardParticipantResponse {
4905}
4906#[allow(clippy::derive_partial_eq_without_eq)]
4907#[derive(Clone, PartialEq, ::prost::Message)]
4908pub struct MoveParticipantRequest {
4909 #[prost(string, tag="1")]
4911 pub room: ::prost::alloc::string::String,
4912 #[prost(string, tag="2")]
4914 pub identity: ::prost::alloc::string::String,
4915 #[prost(string, tag="3")]
4917 pub destination_room: ::prost::alloc::string::String,
4918}
4919#[allow(clippy::derive_partial_eq_without_eq)]
4920#[derive(Clone, PartialEq, ::prost::Message)]
4921pub struct MoveParticipantResponse {
4922}
4923#[allow(clippy::derive_partial_eq_without_eq)]
4924#[derive(Clone, PartialEq, ::prost::Message)]
4925pub struct PerformRpcRequest {
4926 #[prost(string, tag="1")]
4927 pub room: ::prost::alloc::string::String,
4928 #[prost(string, tag="2")]
4929 pub destination_identity: ::prost::alloc::string::String,
4930 #[prost(string, tag="3")]
4931 pub method: ::prost::alloc::string::String,
4932 #[prost(string, tag="4")]
4933 pub payload: ::prost::alloc::string::String,
4934 #[prost(uint32, tag="5")]
4935 pub response_timeout_ms: u32,
4936}
4937#[allow(clippy::derive_partial_eq_without_eq)]
4938#[derive(Clone, PartialEq, ::prost::Message)]
4939pub struct PerformRpcResponse {
4940 #[prost(string, tag="1")]
4941 pub payload: ::prost::alloc::string::String,
4942}
4943#[allow(clippy::derive_partial_eq_without_eq)]
4944#[derive(Clone, PartialEq, ::prost::Message)]
4945pub struct CreateIngressRequest {
4946 #[prost(enumeration="IngressInput", tag="1")]
4947 pub input_type: i32,
4948 #[prost(string, tag="9")]
4950 pub url: ::prost::alloc::string::String,
4951 #[prost(string, tag="2")]
4953 pub name: ::prost::alloc::string::String,
4954 #[prost(string, tag="3")]
4956 pub room_name: ::prost::alloc::string::String,
4957 #[prost(string, tag="4")]
4959 pub participant_identity: ::prost::alloc::string::String,
4960 #[prost(string, tag="5")]
4962 pub participant_name: ::prost::alloc::string::String,
4963 #[prost(string, tag="10")]
4965 pub participant_metadata: ::prost::alloc::string::String,
4966 #[deprecated]
4968 #[prost(bool, tag="8")]
4969 pub bypass_transcoding: bool,
4970 #[prost(bool, optional, tag="11")]
4972 pub enable_transcoding: ::core::option::Option<bool>,
4973 #[prost(message, optional, tag="6")]
4974 pub audio: ::core::option::Option<IngressAudioOptions>,
4975 #[prost(message, optional, tag="7")]
4976 pub video: ::core::option::Option<IngressVideoOptions>,
4977 #[prost(bool, optional, tag="12")]
4979 pub enabled: ::core::option::Option<bool>,
4980}
4981#[allow(clippy::derive_partial_eq_without_eq)]
4982#[derive(Clone, PartialEq, ::prost::Message)]
4983pub struct IngressAudioOptions {
4984 #[prost(string, tag="1")]
4985 pub name: ::prost::alloc::string::String,
4986 #[prost(enumeration="TrackSource", tag="2")]
4987 pub source: i32,
4988 #[prost(oneof="ingress_audio_options::EncodingOptions", tags="3, 4")]
4989 pub encoding_options: ::core::option::Option<ingress_audio_options::EncodingOptions>,
4990}
4991pub mod ingress_audio_options {
4993 #[allow(clippy::derive_partial_eq_without_eq)]
4994#[derive(Clone, PartialEq, ::prost::Oneof)]
4995 pub enum EncodingOptions {
4996 #[prost(enumeration="super::IngressAudioEncodingPreset", tag="3")]
4997 Preset(i32),
4998 #[prost(message, tag="4")]
4999 Options(super::IngressAudioEncodingOptions),
5000 }
5001}
5002#[allow(clippy::derive_partial_eq_without_eq)]
5003#[derive(Clone, PartialEq, ::prost::Message)]
5004pub struct IngressVideoOptions {
5005 #[prost(string, tag="1")]
5006 pub name: ::prost::alloc::string::String,
5007 #[prost(enumeration="TrackSource", tag="2")]
5008 pub source: i32,
5009 #[prost(oneof="ingress_video_options::EncodingOptions", tags="3, 4")]
5010 pub encoding_options: ::core::option::Option<ingress_video_options::EncodingOptions>,
5011}
5012pub mod ingress_video_options {
5014 #[allow(clippy::derive_partial_eq_without_eq)]
5015#[derive(Clone, PartialEq, ::prost::Oneof)]
5016 pub enum EncodingOptions {
5017 #[prost(enumeration="super::IngressVideoEncodingPreset", tag="3")]
5018 Preset(i32),
5019 #[prost(message, tag="4")]
5020 Options(super::IngressVideoEncodingOptions),
5021 }
5022}
5023#[allow(clippy::derive_partial_eq_without_eq)]
5024#[derive(Clone, PartialEq, ::prost::Message)]
5025pub struct IngressAudioEncodingOptions {
5026 #[prost(enumeration="AudioCodec", tag="1")]
5028 pub audio_codec: i32,
5029 #[prost(uint32, tag="2")]
5030 pub bitrate: u32,
5031 #[prost(bool, tag="3")]
5032 pub disable_dtx: bool,
5033 #[prost(uint32, tag="4")]
5034 pub channels: u32,
5035}
5036#[allow(clippy::derive_partial_eq_without_eq)]
5037#[derive(Clone, PartialEq, ::prost::Message)]
5038pub struct IngressVideoEncodingOptions {
5039 #[prost(enumeration="VideoCodec", tag="1")]
5041 pub video_codec: i32,
5042 #[prost(double, tag="2")]
5043 pub frame_rate: f64,
5044 #[prost(message, repeated, tag="3")]
5046 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
5047}
5048#[allow(clippy::derive_partial_eq_without_eq)]
5049#[derive(Clone, PartialEq, ::prost::Message)]
5050pub struct IngressInfo {
5051 #[prost(string, tag="1")]
5052 pub ingress_id: ::prost::alloc::string::String,
5053 #[prost(string, tag="2")]
5054 pub name: ::prost::alloc::string::String,
5055 #[prost(string, tag="3")]
5056 pub stream_key: ::prost::alloc::string::String,
5057 #[prost(string, tag="4")]
5059 pub url: ::prost::alloc::string::String,
5060 #[prost(enumeration="IngressInput", tag="5")]
5064 pub input_type: i32,
5065 #[deprecated]
5066 #[prost(bool, tag="13")]
5067 pub bypass_transcoding: bool,
5068 #[prost(bool, optional, tag="15")]
5069 pub enable_transcoding: ::core::option::Option<bool>,
5070 #[prost(message, optional, tag="6")]
5071 pub audio: ::core::option::Option<IngressAudioOptions>,
5072 #[prost(message, optional, tag="7")]
5073 pub video: ::core::option::Option<IngressVideoOptions>,
5074 #[prost(string, tag="8")]
5075 pub room_name: ::prost::alloc::string::String,
5076 #[prost(string, tag="9")]
5077 pub participant_identity: ::prost::alloc::string::String,
5078 #[prost(string, tag="10")]
5079 pub participant_name: ::prost::alloc::string::String,
5080 #[prost(string, tag="14")]
5081 pub participant_metadata: ::prost::alloc::string::String,
5082 #[prost(bool, tag="11")]
5083 pub reusable: bool,
5084 #[prost(message, optional, tag="12")]
5086 pub state: ::core::option::Option<IngressState>,
5087 #[prost(bool, optional, tag="16")]
5089 pub enabled: ::core::option::Option<bool>,
5090}
5091#[allow(clippy::derive_partial_eq_without_eq)]
5092#[derive(Clone, PartialEq, ::prost::Message)]
5093pub struct IngressState {
5094 #[prost(enumeration="ingress_state::Status", tag="1")]
5095 pub status: i32,
5096 #[prost(string, tag="2")]
5098 pub error: ::prost::alloc::string::String,
5099 #[prost(message, optional, tag="3")]
5100 pub video: ::core::option::Option<InputVideoState>,
5101 #[prost(message, optional, tag="4")]
5102 pub audio: ::core::option::Option<InputAudioState>,
5103 #[prost(string, tag="5")]
5105 pub room_id: ::prost::alloc::string::String,
5106 #[prost(int64, tag="7")]
5107 pub started_at: i64,
5108 #[prost(int64, tag="8")]
5109 pub ended_at: i64,
5110 #[prost(int64, tag="10")]
5111 pub updated_at: i64,
5112 #[prost(string, tag="9")]
5113 pub resource_id: ::prost::alloc::string::String,
5114 #[prost(message, repeated, tag="6")]
5115 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
5116}
5117pub mod ingress_state {
5119 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5120 #[repr(i32)]
5121 pub enum Status {
5122 EndpointInactive = 0,
5123 EndpointBuffering = 1,
5124 EndpointPublishing = 2,
5125 EndpointError = 3,
5126 EndpointComplete = 4,
5127 }
5128 impl Status {
5129 pub fn as_str_name(&self) -> &'static str {
5134 match self {
5135 Status::EndpointInactive => "ENDPOINT_INACTIVE",
5136 Status::EndpointBuffering => "ENDPOINT_BUFFERING",
5137 Status::EndpointPublishing => "ENDPOINT_PUBLISHING",
5138 Status::EndpointError => "ENDPOINT_ERROR",
5139 Status::EndpointComplete => "ENDPOINT_COMPLETE",
5140 }
5141 }
5142 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5144 match value {
5145 "ENDPOINT_INACTIVE" => Some(Self::EndpointInactive),
5146 "ENDPOINT_BUFFERING" => Some(Self::EndpointBuffering),
5147 "ENDPOINT_PUBLISHING" => Some(Self::EndpointPublishing),
5148 "ENDPOINT_ERROR" => Some(Self::EndpointError),
5149 "ENDPOINT_COMPLETE" => Some(Self::EndpointComplete),
5150 _ => None,
5151 }
5152 }
5153 }
5154}
5155#[allow(clippy::derive_partial_eq_without_eq)]
5156#[derive(Clone, PartialEq, ::prost::Message)]
5157pub struct InputVideoState {
5158 #[prost(string, tag="1")]
5159 pub mime_type: ::prost::alloc::string::String,
5160 #[prost(uint32, tag="2")]
5161 pub average_bitrate: u32,
5162 #[prost(uint32, tag="3")]
5163 pub width: u32,
5164 #[prost(uint32, tag="4")]
5165 pub height: u32,
5166 #[prost(double, tag="5")]
5167 pub framerate: f64,
5168}
5169#[allow(clippy::derive_partial_eq_without_eq)]
5170#[derive(Clone, PartialEq, ::prost::Message)]
5171pub struct InputAudioState {
5172 #[prost(string, tag="1")]
5173 pub mime_type: ::prost::alloc::string::String,
5174 #[prost(uint32, tag="2")]
5175 pub average_bitrate: u32,
5176 #[prost(uint32, tag="3")]
5177 pub channels: u32,
5178 #[prost(uint32, tag="4")]
5179 pub sample_rate: u32,
5180}
5181#[allow(clippy::derive_partial_eq_without_eq)]
5182#[derive(Clone, PartialEq, ::prost::Message)]
5183pub struct UpdateIngressRequest {
5184 #[prost(string, tag="1")]
5185 pub ingress_id: ::prost::alloc::string::String,
5186 #[prost(string, tag="2")]
5187 pub name: ::prost::alloc::string::String,
5188 #[prost(string, tag="3")]
5189 pub room_name: ::prost::alloc::string::String,
5190 #[prost(string, tag="4")]
5191 pub participant_identity: ::prost::alloc::string::String,
5192 #[prost(string, tag="5")]
5193 pub participant_name: ::prost::alloc::string::String,
5194 #[prost(string, tag="9")]
5195 pub participant_metadata: ::prost::alloc::string::String,
5196 #[deprecated]
5197 #[prost(bool, optional, tag="8")]
5198 pub bypass_transcoding: ::core::option::Option<bool>,
5199 #[prost(bool, optional, tag="10")]
5200 pub enable_transcoding: ::core::option::Option<bool>,
5201 #[prost(message, optional, tag="6")]
5202 pub audio: ::core::option::Option<IngressAudioOptions>,
5203 #[prost(message, optional, tag="7")]
5204 pub video: ::core::option::Option<IngressVideoOptions>,
5205 #[prost(bool, optional, tag="11")]
5207 pub enabled: ::core::option::Option<bool>,
5208}
5209#[allow(clippy::derive_partial_eq_without_eq)]
5210#[derive(Clone, PartialEq, ::prost::Message)]
5211pub struct ListIngressRequest {
5212 #[prost(message, optional, tag="3")]
5213 pub page_token: ::core::option::Option<TokenPagination>,
5214 #[prost(string, tag="1")]
5218 pub room_name: ::prost::alloc::string::String,
5219 #[prost(string, tag="2")]
5221 pub ingress_id: ::prost::alloc::string::String,
5222}
5223#[allow(clippy::derive_partial_eq_without_eq)]
5224#[derive(Clone, PartialEq, ::prost::Message)]
5225pub struct ListIngressResponse {
5226 #[prost(message, optional, tag="2")]
5227 pub next_page_token: ::core::option::Option<TokenPagination>,
5228 #[prost(message, repeated, tag="1")]
5230 pub items: ::prost::alloc::vec::Vec<IngressInfo>,
5231}
5232#[allow(clippy::derive_partial_eq_without_eq)]
5233#[derive(Clone, PartialEq, ::prost::Message)]
5234pub struct DeleteIngressRequest {
5235 #[prost(string, tag="1")]
5236 pub ingress_id: ::prost::alloc::string::String,
5237}
5238#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5239#[repr(i32)]
5240pub enum IngressInput {
5241 RtmpInput = 0,
5242 WhipInput = 1,
5243 UrlInput = 2,
5245}
5246impl IngressInput {
5247 pub fn as_str_name(&self) -> &'static str {
5252 match self {
5253 IngressInput::RtmpInput => "RTMP_INPUT",
5254 IngressInput::WhipInput => "WHIP_INPUT",
5255 IngressInput::UrlInput => "URL_INPUT",
5256 }
5257 }
5258 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5260 match value {
5261 "RTMP_INPUT" => Some(Self::RtmpInput),
5262 "WHIP_INPUT" => Some(Self::WhipInput),
5263 "URL_INPUT" => Some(Self::UrlInput),
5264 _ => None,
5265 }
5266 }
5267}
5268#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5269#[repr(i32)]
5270pub enum IngressAudioEncodingPreset {
5271 OpusStereo96kbps = 0,
5273 OpusMono64kbs = 1,
5275}
5276impl IngressAudioEncodingPreset {
5277 pub fn as_str_name(&self) -> &'static str {
5282 match self {
5283 IngressAudioEncodingPreset::OpusStereo96kbps => "OPUS_STEREO_96KBPS",
5284 IngressAudioEncodingPreset::OpusMono64kbs => "OPUS_MONO_64KBS",
5285 }
5286 }
5287 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5289 match value {
5290 "OPUS_STEREO_96KBPS" => Some(Self::OpusStereo96kbps),
5291 "OPUS_MONO_64KBS" => Some(Self::OpusMono64kbs),
5292 _ => None,
5293 }
5294 }
5295}
5296#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5297#[repr(i32)]
5298pub enum IngressVideoEncodingPreset {
5299 H264720p30fps3Layers = 0,
5301 H2641080p30fps3Layers = 1,
5303 H264540p25fps2Layers = 2,
5305 H264720p30fps1Layer = 3,
5307 H2641080p30fps1Layer = 4,
5309 H264720p30fps3LayersHighMotion = 5,
5311 H2641080p30fps3LayersHighMotion = 6,
5313 H264540p25fps2LayersHighMotion = 7,
5315 H264720p30fps1LayerHighMotion = 8,
5317 H2641080p30fps1LayerHighMotion = 9,
5319}
5320impl IngressVideoEncodingPreset {
5321 pub fn as_str_name(&self) -> &'static str {
5326 match self {
5327 IngressVideoEncodingPreset::H264720p30fps3Layers => "H264_720P_30FPS_3_LAYERS",
5328 IngressVideoEncodingPreset::H2641080p30fps3Layers => "H264_1080P_30FPS_3_LAYERS",
5329 IngressVideoEncodingPreset::H264540p25fps2Layers => "H264_540P_25FPS_2_LAYERS",
5330 IngressVideoEncodingPreset::H264720p30fps1Layer => "H264_720P_30FPS_1_LAYER",
5331 IngressVideoEncodingPreset::H2641080p30fps1Layer => "H264_1080P_30FPS_1_LAYER",
5332 IngressVideoEncodingPreset::H264720p30fps3LayersHighMotion => "H264_720P_30FPS_3_LAYERS_HIGH_MOTION",
5333 IngressVideoEncodingPreset::H2641080p30fps3LayersHighMotion => "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION",
5334 IngressVideoEncodingPreset::H264540p25fps2LayersHighMotion => "H264_540P_25FPS_2_LAYERS_HIGH_MOTION",
5335 IngressVideoEncodingPreset::H264720p30fps1LayerHighMotion => "H264_720P_30FPS_1_LAYER_HIGH_MOTION",
5336 IngressVideoEncodingPreset::H2641080p30fps1LayerHighMotion => "H264_1080P_30FPS_1_LAYER_HIGH_MOTION",
5337 }
5338 }
5339 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5341 match value {
5342 "H264_720P_30FPS_3_LAYERS" => Some(Self::H264720p30fps3Layers),
5343 "H264_1080P_30FPS_3_LAYERS" => Some(Self::H2641080p30fps3Layers),
5344 "H264_540P_25FPS_2_LAYERS" => Some(Self::H264540p25fps2Layers),
5345 "H264_720P_30FPS_1_LAYER" => Some(Self::H264720p30fps1Layer),
5346 "H264_1080P_30FPS_1_LAYER" => Some(Self::H2641080p30fps1Layer),
5347 "H264_720P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H264720p30fps3LayersHighMotion),
5348 "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H2641080p30fps3LayersHighMotion),
5349 "H264_540P_25FPS_2_LAYERS_HIGH_MOTION" => Some(Self::H264540p25fps2LayersHighMotion),
5350 "H264_720P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H264720p30fps1LayerHighMotion),
5351 "H264_1080P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H2641080p30fps1LayerHighMotion),
5352 _ => None,
5353 }
5354 }
5355}
5356#[allow(clippy::derive_partial_eq_without_eq)]
5357#[derive(Clone, PartialEq, ::prost::Message)]
5358pub struct WebhookEvent {
5359 #[prost(string, tag="1")]
5363 pub event: ::prost::alloc::string::String,
5364 #[prost(message, optional, tag="2")]
5365 pub room: ::core::option::Option<Room>,
5366 #[prost(message, optional, tag="3")]
5368 pub participant: ::core::option::Option<ParticipantInfo>,
5369 #[prost(message, optional, tag="9")]
5371 pub egress_info: ::core::option::Option<EgressInfo>,
5372 #[prost(message, optional, tag="10")]
5374 pub ingress_info: ::core::option::Option<IngressInfo>,
5375 #[prost(message, optional, tag="8")]
5377 pub track: ::core::option::Option<TrackInfo>,
5378 #[prost(string, tag="6")]
5380 pub id: ::prost::alloc::string::String,
5381 #[prost(int64, tag="7")]
5383 pub created_at: i64,
5384 #[deprecated]
5385 #[prost(int32, tag="11")]
5386 pub num_dropped: i32,
5387}
5388#[allow(clippy::derive_partial_eq_without_eq)]
5390#[derive(Clone, PartialEq, ::prost::Message)]
5391pub struct SipStatus {
5392 #[prost(enumeration="SipStatusCode", tag="1")]
5393 pub code: i32,
5394 #[prost(string, tag="2")]
5395 pub status: ::prost::alloc::string::String,
5396}
5397#[allow(clippy::derive_partial_eq_without_eq)]
5398#[derive(Clone, PartialEq, ::prost::Message)]
5399pub struct CreateSipTrunkRequest {
5400 #[prost(string, repeated, tag="1")]
5403 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5404 #[prost(string, tag="2")]
5406 pub outbound_address: ::prost::alloc::string::String,
5407 #[prost(string, tag="3")]
5409 pub outbound_number: ::prost::alloc::string::String,
5410 #[deprecated]
5411 #[prost(string, repeated, tag="4")]
5412 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5413 #[prost(string, repeated, tag="9")]
5417 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5418 #[prost(string, tag="5")]
5421 pub inbound_username: ::prost::alloc::string::String,
5422 #[prost(string, tag="6")]
5423 pub inbound_password: ::prost::alloc::string::String,
5424 #[prost(string, tag="7")]
5425 pub outbound_username: ::prost::alloc::string::String,
5426 #[prost(string, tag="8")]
5427 pub outbound_password: ::prost::alloc::string::String,
5428 #[prost(string, tag="10")]
5430 pub name: ::prost::alloc::string::String,
5431 #[prost(string, tag="11")]
5433 pub metadata: ::prost::alloc::string::String,
5434}
5435#[allow(clippy::derive_partial_eq_without_eq)]
5436#[derive(Clone, PartialEq, ::prost::Message)]
5437pub struct ProviderInfo {
5438 #[prost(string, tag="1")]
5439 pub id: ::prost::alloc::string::String,
5440 #[prost(string, tag="2")]
5441 pub name: ::prost::alloc::string::String,
5442 #[prost(enumeration="ProviderType", tag="3")]
5443 pub r#type: i32,
5444 #[prost(bool, tag="4")]
5445 pub prevent_transfer: bool,
5446}
5447#[allow(clippy::derive_partial_eq_without_eq)]
5448#[derive(Clone, PartialEq, ::prost::Message)]
5449pub struct SipTrunkInfo {
5450 #[prost(string, tag="1")]
5451 pub sip_trunk_id: ::prost::alloc::string::String,
5452 #[prost(enumeration="sip_trunk_info::TrunkKind", tag="14")]
5453 pub kind: i32,
5454 #[prost(string, repeated, tag="2")]
5457 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5458 #[prost(string, tag="3")]
5460 pub outbound_address: ::prost::alloc::string::String,
5461 #[prost(string, tag="4")]
5463 pub outbound_number: ::prost::alloc::string::String,
5464 #[prost(enumeration="SipTransport", tag="13")]
5466 pub transport: i32,
5467 #[deprecated]
5468 #[prost(string, repeated, tag="5")]
5469 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5470 #[prost(string, repeated, tag="10")]
5474 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5475 #[prost(string, tag="6")]
5478 pub inbound_username: ::prost::alloc::string::String,
5479 #[prost(string, tag="7")]
5480 pub inbound_password: ::prost::alloc::string::String,
5481 #[prost(string, tag="8")]
5482 pub outbound_username: ::prost::alloc::string::String,
5483 #[prost(string, tag="9")]
5484 pub outbound_password: ::prost::alloc::string::String,
5485 #[prost(string, tag="11")]
5487 pub name: ::prost::alloc::string::String,
5488 #[prost(string, tag="12")]
5490 pub metadata: ::prost::alloc::string::String,
5491}
5492pub mod sip_trunk_info {
5494 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5495 #[repr(i32)]
5496 pub enum TrunkKind {
5497 TrunkLegacy = 0,
5498 TrunkInbound = 1,
5499 TrunkOutbound = 2,
5500 }
5501 impl TrunkKind {
5502 pub fn as_str_name(&self) -> &'static str {
5507 match self {
5508 TrunkKind::TrunkLegacy => "TRUNK_LEGACY",
5509 TrunkKind::TrunkInbound => "TRUNK_INBOUND",
5510 TrunkKind::TrunkOutbound => "TRUNK_OUTBOUND",
5511 }
5512 }
5513 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5515 match value {
5516 "TRUNK_LEGACY" => Some(Self::TrunkLegacy),
5517 "TRUNK_INBOUND" => Some(Self::TrunkInbound),
5518 "TRUNK_OUTBOUND" => Some(Self::TrunkOutbound),
5519 _ => None,
5520 }
5521 }
5522 }
5523}
5524#[allow(clippy::derive_partial_eq_without_eq)]
5525#[derive(Clone, PartialEq, ::prost::Message)]
5526pub struct CreateSipInboundTrunkRequest {
5527 #[prost(message, optional, tag="1")]
5529 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
5530}
5531#[allow(clippy::derive_partial_eq_without_eq)]
5532#[derive(Clone, PartialEq, ::prost::Message)]
5533pub struct UpdateSipInboundTrunkRequest {
5534 #[prost(string, tag="1")]
5535 pub sip_trunk_id: ::prost::alloc::string::String,
5536 #[prost(oneof="update_sip_inbound_trunk_request::Action", tags="2, 3")]
5537 pub action: ::core::option::Option<update_sip_inbound_trunk_request::Action>,
5538}
5539pub mod update_sip_inbound_trunk_request {
5541 #[allow(clippy::derive_partial_eq_without_eq)]
5542#[derive(Clone, PartialEq, ::prost::Oneof)]
5543 pub enum Action {
5544 #[prost(message, tag="2")]
5545 Replace(super::SipInboundTrunkInfo),
5546 #[prost(message, tag="3")]
5547 Update(super::SipInboundTrunkUpdate),
5548 }
5549}
5550#[allow(clippy::derive_partial_eq_without_eq)]
5551#[derive(Clone, PartialEq, ::prost::Message)]
5552pub struct SipInboundTrunkInfo {
5553 #[prost(string, tag="1")]
5554 pub sip_trunk_id: ::prost::alloc::string::String,
5555 #[prost(string, tag="2")]
5557 pub name: ::prost::alloc::string::String,
5558 #[prost(string, tag="3")]
5560 pub metadata: ::prost::alloc::string::String,
5561 #[prost(string, repeated, tag="4")]
5564 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5565 #[prost(string, repeated, tag="5")]
5568 pub allowed_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5569 #[prost(string, repeated, tag="6")]
5572 pub allowed_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5573 #[prost(string, tag="7")]
5576 pub auth_username: ::prost::alloc::string::String,
5577 #[prost(string, tag="8")]
5578 pub auth_password: ::prost::alloc::string::String,
5579 #[prost(map="string, string", tag="9")]
5581 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5582 #[prost(map="string, string", tag="10")]
5584 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5585 #[prost(map="string, string", tag="14")]
5588 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5589 #[prost(enumeration="SipHeaderOptions", tag="15")]
5596 pub include_headers: i32,
5597 #[prost(message, optional, tag="11")]
5599 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
5600 #[prost(message, optional, tag="12")]
5602 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
5603 #[prost(bool, tag="13")]
5604 pub krisp_enabled: bool,
5605 #[prost(enumeration="SipMediaEncryption", tag="16")]
5606 pub media_encryption: i32,
5607}
5608#[allow(clippy::derive_partial_eq_without_eq)]
5609#[derive(Clone, PartialEq, ::prost::Message)]
5610pub struct SipInboundTrunkUpdate {
5611 #[prost(message, optional, tag="1")]
5612 pub numbers: ::core::option::Option<ListUpdate>,
5613 #[prost(message, optional, tag="2")]
5614 pub allowed_addresses: ::core::option::Option<ListUpdate>,
5615 #[prost(message, optional, tag="3")]
5616 pub allowed_numbers: ::core::option::Option<ListUpdate>,
5617 #[prost(string, optional, tag="4")]
5618 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
5619 #[prost(string, optional, tag="5")]
5620 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
5621 #[prost(string, optional, tag="6")]
5622 pub name: ::core::option::Option<::prost::alloc::string::String>,
5623 #[prost(string, optional, tag="7")]
5624 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
5625 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
5626 pub media_encryption: ::core::option::Option<i32>,
5627}
5628#[allow(clippy::derive_partial_eq_without_eq)]
5629#[derive(Clone, PartialEq, ::prost::Message)]
5630pub struct CreateSipOutboundTrunkRequest {
5631 #[prost(message, optional, tag="1")]
5633 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
5634}
5635#[allow(clippy::derive_partial_eq_without_eq)]
5636#[derive(Clone, PartialEq, ::prost::Message)]
5637pub struct UpdateSipOutboundTrunkRequest {
5638 #[prost(string, tag="1")]
5639 pub sip_trunk_id: ::prost::alloc::string::String,
5640 #[prost(oneof="update_sip_outbound_trunk_request::Action", tags="2, 3")]
5641 pub action: ::core::option::Option<update_sip_outbound_trunk_request::Action>,
5642}
5643pub mod update_sip_outbound_trunk_request {
5645 #[allow(clippy::derive_partial_eq_without_eq)]
5646#[derive(Clone, PartialEq, ::prost::Oneof)]
5647 pub enum Action {
5648 #[prost(message, tag="2")]
5649 Replace(super::SipOutboundTrunkInfo),
5650 #[prost(message, tag="3")]
5651 Update(super::SipOutboundTrunkUpdate),
5652 }
5653}
5654#[allow(clippy::derive_partial_eq_without_eq)]
5655#[derive(Clone, PartialEq, ::prost::Message)]
5656pub struct SipOutboundTrunkInfo {
5657 #[prost(string, tag="1")]
5658 pub sip_trunk_id: ::prost::alloc::string::String,
5659 #[prost(string, tag="2")]
5661 pub name: ::prost::alloc::string::String,
5662 #[prost(string, tag="3")]
5664 pub metadata: ::prost::alloc::string::String,
5665 #[prost(string, tag="4")]
5668 pub address: ::prost::alloc::string::String,
5669 #[prost(string, tag="14")]
5671 pub destination_country: ::prost::alloc::string::String,
5672 #[prost(enumeration="SipTransport", tag="5")]
5674 pub transport: i32,
5675 #[prost(string, repeated, tag="6")]
5677 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5678 #[prost(string, tag="7")]
5681 pub auth_username: ::prost::alloc::string::String,
5682 #[prost(string, tag="8")]
5683 pub auth_password: ::prost::alloc::string::String,
5684 #[prost(map="string, string", tag="9")]
5687 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5688 #[prost(map="string, string", tag="10")]
5691 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5692 #[prost(map="string, string", tag="11")]
5695 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5696 #[prost(enumeration="SipHeaderOptions", tag="12")]
5703 pub include_headers: i32,
5704 #[prost(enumeration="SipMediaEncryption", tag="13")]
5705 pub media_encryption: i32,
5706}
5707#[allow(clippy::derive_partial_eq_without_eq)]
5708#[derive(Clone, PartialEq, ::prost::Message)]
5709pub struct SipOutboundTrunkUpdate {
5710 #[prost(string, optional, tag="1")]
5711 pub address: ::core::option::Option<::prost::alloc::string::String>,
5712 #[prost(enumeration="SipTransport", optional, tag="2")]
5713 pub transport: ::core::option::Option<i32>,
5714 #[prost(string, optional, tag="9")]
5715 pub destination_country: ::core::option::Option<::prost::alloc::string::String>,
5716 #[prost(message, optional, tag="3")]
5717 pub numbers: ::core::option::Option<ListUpdate>,
5718 #[prost(string, optional, tag="4")]
5719 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
5720 #[prost(string, optional, tag="5")]
5721 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
5722 #[prost(string, optional, tag="6")]
5723 pub name: ::core::option::Option<::prost::alloc::string::String>,
5724 #[prost(string, optional, tag="7")]
5725 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
5726 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
5727 pub media_encryption: ::core::option::Option<i32>,
5728}
5729#[allow(clippy::derive_partial_eq_without_eq)]
5730#[derive(Clone, PartialEq, ::prost::Message)]
5731pub struct GetSipInboundTrunkRequest {
5732 #[prost(string, tag="1")]
5733 pub sip_trunk_id: ::prost::alloc::string::String,
5734}
5735#[allow(clippy::derive_partial_eq_without_eq)]
5736#[derive(Clone, PartialEq, ::prost::Message)]
5737pub struct GetSipInboundTrunkResponse {
5738 #[prost(message, optional, tag="1")]
5739 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
5740}
5741#[allow(clippy::derive_partial_eq_without_eq)]
5742#[derive(Clone, PartialEq, ::prost::Message)]
5743pub struct GetSipOutboundTrunkRequest {
5744 #[prost(string, tag="1")]
5745 pub sip_trunk_id: ::prost::alloc::string::String,
5746}
5747#[allow(clippy::derive_partial_eq_without_eq)]
5748#[derive(Clone, PartialEq, ::prost::Message)]
5749pub struct GetSipOutboundTrunkResponse {
5750 #[prost(message, optional, tag="1")]
5751 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
5752}
5753#[allow(clippy::derive_partial_eq_without_eq)]
5754#[derive(Clone, PartialEq, ::prost::Message)]
5755pub struct ListSipTrunkRequest {
5756 #[prost(message, optional, tag="1")]
5757 pub page: ::core::option::Option<Pagination>,
5758}
5759#[allow(clippy::derive_partial_eq_without_eq)]
5760#[derive(Clone, PartialEq, ::prost::Message)]
5761pub struct ListSipTrunkResponse {
5762 #[prost(message, repeated, tag="1")]
5763 pub items: ::prost::alloc::vec::Vec<SipTrunkInfo>,
5764}
5765#[allow(clippy::derive_partial_eq_without_eq)]
5767#[derive(Clone, PartialEq, ::prost::Message)]
5768pub struct ListSipInboundTrunkRequest {
5769 #[prost(message, optional, tag="3")]
5770 pub page: ::core::option::Option<Pagination>,
5771 #[prost(string, repeated, tag="1")]
5774 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5775 #[prost(string, repeated, tag="2")]
5777 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5778}
5779#[allow(clippy::derive_partial_eq_without_eq)]
5780#[derive(Clone, PartialEq, ::prost::Message)]
5781pub struct ListSipInboundTrunkResponse {
5782 #[prost(message, repeated, tag="1")]
5783 pub items: ::prost::alloc::vec::Vec<SipInboundTrunkInfo>,
5784}
5785#[allow(clippy::derive_partial_eq_without_eq)]
5787#[derive(Clone, PartialEq, ::prost::Message)]
5788pub struct ListSipOutboundTrunkRequest {
5789 #[prost(message, optional, tag="3")]
5790 pub page: ::core::option::Option<Pagination>,
5791 #[prost(string, repeated, tag="1")]
5794 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5795 #[prost(string, repeated, tag="2")]
5797 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5798}
5799#[allow(clippy::derive_partial_eq_without_eq)]
5800#[derive(Clone, PartialEq, ::prost::Message)]
5801pub struct ListSipOutboundTrunkResponse {
5802 #[prost(message, repeated, tag="1")]
5803 pub items: ::prost::alloc::vec::Vec<SipOutboundTrunkInfo>,
5804}
5805#[allow(clippy::derive_partial_eq_without_eq)]
5806#[derive(Clone, PartialEq, ::prost::Message)]
5807pub struct DeleteSipTrunkRequest {
5808 #[prost(string, tag="1")]
5809 pub sip_trunk_id: ::prost::alloc::string::String,
5810}
5811#[allow(clippy::derive_partial_eq_without_eq)]
5812#[derive(Clone, PartialEq, ::prost::Message)]
5813pub struct SipDispatchRuleDirect {
5814 #[prost(string, tag="1")]
5816 pub room_name: ::prost::alloc::string::String,
5817 #[prost(string, tag="2")]
5819 pub pin: ::prost::alloc::string::String,
5820}
5821#[allow(clippy::derive_partial_eq_without_eq)]
5822#[derive(Clone, PartialEq, ::prost::Message)]
5823pub struct SipDispatchRuleIndividual {
5824 #[prost(string, tag="1")]
5826 pub room_prefix: ::prost::alloc::string::String,
5827 #[prost(string, tag="2")]
5829 pub pin: ::prost::alloc::string::String,
5830}
5831#[allow(clippy::derive_partial_eq_without_eq)]
5832#[derive(Clone, PartialEq, ::prost::Message)]
5833pub struct SipDispatchRuleCallee {
5834 #[prost(string, tag="1")]
5836 pub room_prefix: ::prost::alloc::string::String,
5837 #[prost(string, tag="2")]
5839 pub pin: ::prost::alloc::string::String,
5840 #[prost(bool, tag="3")]
5842 pub randomize: bool,
5843}
5844#[allow(clippy::derive_partial_eq_without_eq)]
5845#[derive(Clone, PartialEq, ::prost::Message)]
5846pub struct SipDispatchRule {
5847 #[prost(oneof="sip_dispatch_rule::Rule", tags="1, 2, 3")]
5848 pub rule: ::core::option::Option<sip_dispatch_rule::Rule>,
5849}
5850pub mod sip_dispatch_rule {
5852 #[allow(clippy::derive_partial_eq_without_eq)]
5853#[derive(Clone, PartialEq, ::prost::Oneof)]
5854 pub enum Rule {
5855 #[prost(message, tag="1")]
5859 DispatchRuleDirect(super::SipDispatchRuleDirect),
5860 #[prost(message, tag="2")]
5862 DispatchRuleIndividual(super::SipDispatchRuleIndividual),
5863 #[prost(message, tag="3")]
5865 DispatchRuleCallee(super::SipDispatchRuleCallee),
5866 }
5867}
5868#[allow(clippy::derive_partial_eq_without_eq)]
5869#[derive(Clone, PartialEq, ::prost::Message)]
5870pub struct CreateSipDispatchRuleRequest {
5871 #[prost(message, optional, tag="10")]
5873 pub dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
5874 #[deprecated]
5875 #[prost(message, optional, tag="1")]
5876 pub rule: ::core::option::Option<SipDispatchRule>,
5877 #[deprecated]
5880 #[prost(string, repeated, tag="2")]
5881 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5882 #[deprecated]
5885 #[prost(bool, tag="3")]
5886 pub hide_phone_number: bool,
5887 #[deprecated]
5889 #[prost(string, repeated, tag="6")]
5890 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5891 #[deprecated]
5893 #[prost(string, tag="4")]
5894 pub name: ::prost::alloc::string::String,
5895 #[deprecated]
5898 #[prost(string, tag="5")]
5899 pub metadata: ::prost::alloc::string::String,
5900 #[prost(map="string, string", tag="7")]
5903 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5904 #[deprecated]
5906 #[prost(string, tag="8")]
5907 pub room_preset: ::prost::alloc::string::String,
5908 #[deprecated]
5910 #[prost(message, optional, tag="9")]
5911 pub room_config: ::core::option::Option<RoomConfiguration>,
5912}
5913#[allow(clippy::derive_partial_eq_without_eq)]
5914#[derive(Clone, PartialEq, ::prost::Message)]
5915pub struct UpdateSipDispatchRuleRequest {
5916 #[prost(string, tag="1")]
5917 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
5918 #[prost(oneof="update_sip_dispatch_rule_request::Action", tags="2, 3")]
5919 pub action: ::core::option::Option<update_sip_dispatch_rule_request::Action>,
5920}
5921pub mod update_sip_dispatch_rule_request {
5923 #[allow(clippy::derive_partial_eq_without_eq)]
5924#[derive(Clone, PartialEq, ::prost::Oneof)]
5925 pub enum Action {
5926 #[prost(message, tag="2")]
5927 Replace(super::SipDispatchRuleInfo),
5928 #[prost(message, tag="3")]
5929 Update(super::SipDispatchRuleUpdate),
5930 }
5931}
5932#[allow(clippy::derive_partial_eq_without_eq)]
5933#[derive(Clone, PartialEq, ::prost::Message)]
5934pub struct SipDispatchRuleInfo {
5935 #[prost(string, tag="1")]
5936 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
5937 #[prost(message, optional, tag="2")]
5938 pub rule: ::core::option::Option<SipDispatchRule>,
5939 #[prost(string, repeated, tag="3")]
5940 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5941 #[prost(bool, tag="4")]
5942 pub hide_phone_number: bool,
5943 #[prost(string, repeated, tag="7")]
5945 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5946 #[prost(string, repeated, tag="13")]
5948 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5949 #[prost(string, tag="5")]
5951 pub name: ::prost::alloc::string::String,
5952 #[prost(string, tag="6")]
5955 pub metadata: ::prost::alloc::string::String,
5956 #[prost(map="string, string", tag="8")]
5959 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5960 #[prost(string, tag="9")]
5962 pub room_preset: ::prost::alloc::string::String,
5963 #[prost(message, optional, tag="10")]
5965 pub room_config: ::core::option::Option<RoomConfiguration>,
5966 #[prost(bool, tag="11")]
5967 pub krisp_enabled: bool,
5968 #[prost(enumeration="SipMediaEncryption", tag="12")]
5970 pub media_encryption: i32,
5971}
5972#[allow(clippy::derive_partial_eq_without_eq)]
5973#[derive(Clone, PartialEq, ::prost::Message)]
5974pub struct SipDispatchRuleUpdate {
5975 #[prost(message, optional, tag="1")]
5976 pub trunk_ids: ::core::option::Option<ListUpdate>,
5977 #[prost(message, optional, tag="2")]
5978 pub rule: ::core::option::Option<SipDispatchRule>,
5979 #[prost(string, optional, tag="3")]
5980 pub name: ::core::option::Option<::prost::alloc::string::String>,
5981 #[prost(string, optional, tag="4")]
5982 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
5983 #[prost(map="string, string", tag="5")]
5984 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5985 #[prost(enumeration="SipMediaEncryption", optional, tag="6")]
5986 pub media_encryption: ::core::option::Option<i32>,
5987}
5988#[allow(clippy::derive_partial_eq_without_eq)]
5990#[derive(Clone, PartialEq, ::prost::Message)]
5991pub struct ListSipDispatchRuleRequest {
5992 #[prost(message, optional, tag="3")]
5993 pub page: ::core::option::Option<Pagination>,
5994 #[prost(string, repeated, tag="1")]
5997 pub dispatch_rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5998 #[prost(string, repeated, tag="2")]
6000 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6001}
6002#[allow(clippy::derive_partial_eq_without_eq)]
6003#[derive(Clone, PartialEq, ::prost::Message)]
6004pub struct ListSipDispatchRuleResponse {
6005 #[prost(message, repeated, tag="1")]
6006 pub items: ::prost::alloc::vec::Vec<SipDispatchRuleInfo>,
6007}
6008#[allow(clippy::derive_partial_eq_without_eq)]
6009#[derive(Clone, PartialEq, ::prost::Message)]
6010pub struct DeleteSipDispatchRuleRequest {
6011 #[prost(string, tag="1")]
6012 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6013}
6014#[allow(clippy::derive_partial_eq_without_eq)]
6015#[derive(Clone, PartialEq, ::prost::Message)]
6016pub struct SipOutboundConfig {
6017 #[prost(string, tag="1")]
6019 pub hostname: ::prost::alloc::string::String,
6020 #[prost(string, tag="7")]
6022 pub destination_country: ::prost::alloc::string::String,
6023 #[prost(enumeration="SipTransport", tag="2")]
6025 pub transport: i32,
6026 #[prost(string, tag="3")]
6029 pub auth_username: ::prost::alloc::string::String,
6030 #[prost(string, tag="4")]
6031 pub auth_password: ::prost::alloc::string::String,
6032 #[prost(map="string, string", tag="5")]
6035 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6036 #[prost(map="string, string", tag="6")]
6039 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6040}
6041#[allow(clippy::derive_partial_eq_without_eq)]
6044#[derive(Clone, PartialEq, ::prost::Message)]
6045pub struct CreateSipParticipantRequest {
6046 #[prost(string, tag="1")]
6048 pub sip_trunk_id: ::prost::alloc::string::String,
6049 #[prost(message, optional, tag="20")]
6050 pub trunk: ::core::option::Option<SipOutboundConfig>,
6051 #[prost(string, tag="2")]
6053 pub sip_call_to: ::prost::alloc::string::String,
6054 #[prost(string, tag="15")]
6056 pub sip_number: ::prost::alloc::string::String,
6057 #[prost(string, tag="3")]
6059 pub room_name: ::prost::alloc::string::String,
6060 #[prost(string, tag="4")]
6062 pub participant_identity: ::prost::alloc::string::String,
6063 #[prost(string, tag="7")]
6065 pub participant_name: ::prost::alloc::string::String,
6066 #[prost(string, tag="8")]
6068 pub participant_metadata: ::prost::alloc::string::String,
6069 #[prost(map="string, string", tag="9")]
6071 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6072 #[prost(string, tag="5")]
6075 pub dtmf: ::prost::alloc::string::String,
6076 #[deprecated]
6078 #[prost(bool, tag="6")]
6079 pub play_ringtone: bool,
6080 #[prost(bool, tag="13")]
6081 pub play_dialtone: bool,
6082 #[prost(bool, tag="10")]
6085 pub hide_phone_number: bool,
6086 #[prost(map="string, string", tag="16")]
6088 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6089 #[prost(enumeration="SipHeaderOptions", tag="17")]
6096 pub include_headers: i32,
6097 #[prost(message, optional, tag="11")]
6099 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6100 #[prost(message, optional, tag="12")]
6102 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
6103 #[prost(bool, tag="14")]
6105 pub krisp_enabled: bool,
6106 #[prost(enumeration="SipMediaEncryption", tag="18")]
6107 pub media_encryption: i32,
6108 #[prost(bool, tag="19")]
6110 pub wait_until_answered: bool,
6111 #[prost(string, optional, tag="21")]
6118 pub display_name: ::core::option::Option<::prost::alloc::string::String>,
6119 #[prost(message, optional, tag="22")]
6121 pub destination: ::core::option::Option<Destination>,
6122}
6123#[allow(clippy::derive_partial_eq_without_eq)]
6124#[derive(Clone, PartialEq, ::prost::Message)]
6125pub struct SipParticipantInfo {
6126 #[prost(string, tag="1")]
6127 pub participant_id: ::prost::alloc::string::String,
6128 #[prost(string, tag="2")]
6129 pub participant_identity: ::prost::alloc::string::String,
6130 #[prost(string, tag="3")]
6131 pub room_name: ::prost::alloc::string::String,
6132 #[prost(string, tag="4")]
6133 pub sip_call_id: ::prost::alloc::string::String,
6134}
6135#[allow(clippy::derive_partial_eq_without_eq)]
6136#[derive(Clone, PartialEq, ::prost::Message)]
6137pub struct TransferSipParticipantRequest {
6138 #[prost(string, tag="1")]
6139 pub participant_identity: ::prost::alloc::string::String,
6140 #[prost(string, tag="2")]
6141 pub room_name: ::prost::alloc::string::String,
6142 #[prost(string, tag="3")]
6143 pub transfer_to: ::prost::alloc::string::String,
6144 #[prost(bool, tag="4")]
6146 pub play_dialtone: bool,
6147 #[prost(map="string, string", tag="5")]
6149 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6150 #[prost(message, optional, tag="6")]
6152 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6153}
6154#[allow(clippy::derive_partial_eq_without_eq)]
6155#[derive(Clone, PartialEq, ::prost::Message)]
6156pub struct SipCallInfo {
6157 #[prost(string, tag="1")]
6158 pub call_id: ::prost::alloc::string::String,
6159 #[prost(string, tag="2")]
6160 pub trunk_id: ::prost::alloc::string::String,
6161 #[prost(string, tag="16")]
6162 pub dispatch_rule_id: ::prost::alloc::string::String,
6163 #[prost(string, tag="17")]
6164 pub region: ::prost::alloc::string::String,
6165 #[prost(string, tag="3")]
6166 pub room_name: ::prost::alloc::string::String,
6167 #[prost(string, tag="4")]
6169 pub room_id: ::prost::alloc::string::String,
6170 #[prost(string, tag="5")]
6171 pub participant_identity: ::prost::alloc::string::String,
6172 #[prost(map="string, string", tag="18")]
6173 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6174 #[prost(message, optional, tag="6")]
6175 pub from_uri: ::core::option::Option<SipUri>,
6176 #[prost(message, optional, tag="7")]
6177 pub to_uri: ::core::option::Option<SipUri>,
6178 #[deprecated]
6179 #[prost(int64, tag="9")]
6180 pub created_at: i64,
6181 #[deprecated]
6182 #[prost(int64, tag="10")]
6183 pub started_at: i64,
6184 #[deprecated]
6185 #[prost(int64, tag="11")]
6186 pub ended_at: i64,
6187 #[prost(enumeration="SipFeature", repeated, tag="14")]
6188 pub enabled_features: ::prost::alloc::vec::Vec<i32>,
6189 #[prost(enumeration="SipCallDirection", tag="15")]
6190 pub call_direction: i32,
6191 #[prost(enumeration="SipCallStatus", tag="8")]
6192 pub call_status: i32,
6193 #[prost(int64, tag="22")]
6194 pub created_at_ns: i64,
6195 #[prost(int64, tag="23")]
6196 pub started_at_ns: i64,
6197 #[prost(int64, tag="24")]
6198 pub ended_at_ns: i64,
6199 #[prost(enumeration="DisconnectReason", tag="12")]
6200 pub disconnect_reason: i32,
6201 #[prost(string, tag="13")]
6202 pub error: ::prost::alloc::string::String,
6203 #[prost(message, optional, tag="19")]
6204 pub call_status_code: ::core::option::Option<SipStatus>,
6205 #[prost(string, tag="20")]
6206 pub audio_codec: ::prost::alloc::string::String,
6207 #[prost(string, tag="21")]
6208 pub media_encryption: ::prost::alloc::string::String,
6209 #[prost(string, tag="25")]
6210 pub pcap_file_link: ::prost::alloc::string::String,
6211 #[prost(message, repeated, tag="26")]
6212 pub call_context: ::prost::alloc::vec::Vec<::pbjson_types::Any>,
6213 #[prost(message, optional, tag="27")]
6214 pub provider_info: ::core::option::Option<ProviderInfo>,
6215 #[prost(string, tag="28")]
6216 pub sip_call_id: ::prost::alloc::string::String,
6217}
6218#[allow(clippy::derive_partial_eq_without_eq)]
6219#[derive(Clone, PartialEq, ::prost::Message)]
6220pub struct SipTransferInfo {
6221 #[prost(string, tag="1")]
6222 pub transfer_id: ::prost::alloc::string::String,
6223 #[prost(string, tag="2")]
6224 pub call_id: ::prost::alloc::string::String,
6225 #[prost(string, tag="3")]
6226 pub transfer_to: ::prost::alloc::string::String,
6227 #[prost(int64, tag="4")]
6228 pub transfer_initiated_at_ns: i64,
6229 #[prost(int64, tag="5")]
6230 pub transfer_completed_at_ns: i64,
6231 #[prost(enumeration="SipTransferStatus", tag="6")]
6232 pub transfer_status: i32,
6233 #[prost(string, tag="7")]
6234 pub error: ::prost::alloc::string::String,
6235 #[prost(message, optional, tag="8")]
6236 pub transfer_status_code: ::core::option::Option<SipStatus>,
6237}
6238#[allow(clippy::derive_partial_eq_without_eq)]
6239#[derive(Clone, PartialEq, ::prost::Message)]
6240pub struct SipUri {
6241 #[prost(string, tag="1")]
6242 pub user: ::prost::alloc::string::String,
6243 #[prost(string, tag="2")]
6244 pub host: ::prost::alloc::string::String,
6245 #[prost(string, tag="3")]
6246 pub ip: ::prost::alloc::string::String,
6247 #[prost(uint32, tag="4")]
6248 pub port: u32,
6249 #[prost(enumeration="SipTransport", tag="5")]
6250 pub transport: i32,
6251}
6252#[allow(clippy::derive_partial_eq_without_eq)]
6253#[derive(Clone, PartialEq, ::prost::Message)]
6254pub struct Destination {
6255 #[prost(string, tag="1")]
6256 pub city: ::prost::alloc::string::String,
6257 #[prost(string, tag="2")]
6258 pub country: ::prost::alloc::string::String,
6259 #[prost(string, tag="3")]
6260 pub region: ::prost::alloc::string::String,
6261}
6262#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6263#[repr(i32)]
6264pub enum SipStatusCode {
6265 SipStatusUnknown = 0,
6266 SipStatusTrying = 100,
6267 SipStatusRinging = 180,
6268 SipStatusCallIsForwarded = 181,
6269 SipStatusQueued = 182,
6270 SipStatusSessionProgress = 183,
6271 SipStatusEarlyDialogTerminated = 199,
6272 SipStatusOk = 200,
6273 SipStatusAccepted = 202,
6274 SipStatusNoNotification = 204,
6275 SipStatusMultipleChoices = 300,
6276 SipStatusMovedPermanently = 301,
6277 SipStatusMovedTemporarily = 302,
6278 SipStatusUseProxy = 305,
6279 SipStatusAlternativeService = 380,
6280 SipStatusBadRequest = 400,
6281 SipStatusUnauthorized = 401,
6282 SipStatusPaymentRequired = 402,
6283 SipStatusForbidden = 403,
6284 SipStatusNotfound = 404,
6285 SipStatusMethodNotAllowed = 405,
6286 SipStatusNotAcceptable = 406,
6287 SipStatusProxyAuthRequired = 407,
6288 SipStatusRequestTimeout = 408,
6289 SipStatusConflict = 409,
6290 SipStatusGone = 410,
6291 SipStatusLengthRequired = 411,
6292 SipStatusConditionalRequestFailed = 412,
6293 SipStatusRequestEntityTooLarge = 413,
6294 SipStatusRequestUriTooLong = 414,
6295 SipStatusUnsupportedMediaType = 415,
6296 SipStatusRequestedRangeNotSatisfiable = 416,
6297 SipStatusUnknownResourcePriority = 417,
6298 SipStatusBadExtension = 420,
6299 SipStatusExtensionRequired = 421,
6300 SipStatusSessionIntervalTooSmall = 422,
6301 SipStatusIntervalTooBrief = 423,
6302 SipStatusBadLocationInformation = 424,
6303 SipStatusBadAlertMessage = 425,
6304 SipStatusUseIdentityHeader = 428,
6305 SipStatusProvideReferrerIdentity = 429,
6306 SipStatusFlowFailed = 430,
6307 SipStatusAnonymityDisallowed = 433,
6308 SipStatusBadIdentityInfo = 436,
6309 SipStatusUnsupportedCertificate = 437,
6310 SipStatusInvalidIdentityHeader = 438,
6311 SipStatusFirstHopLacksOutboundSupport = 439,
6312 SipStatusMaxBreadthExceeded = 440,
6313 SipStatusBadInfoPackage = 469,
6314 SipStatusConsentNeeded = 470,
6315 SipStatusTemporarilyUnavailable = 480,
6316 SipStatusCallTransactionDoesNotExists = 481,
6317 SipStatusLoopDetected = 482,
6318 SipStatusTooManyHops = 483,
6319 SipStatusAddressIncomplete = 484,
6320 SipStatusAmbiguous = 485,
6321 SipStatusBusyHere = 486,
6322 SipStatusRequestTerminated = 487,
6323 SipStatusNotAcceptableHere = 488,
6324 SipStatusBadEvent = 489,
6325 SipStatusRequestPending = 491,
6326 SipStatusUndecipherable = 493,
6327 SipStatusSecurityAgreementRequired = 494,
6328 SipStatusInternalServerError = 500,
6329 SipStatusNotImplemented = 501,
6330 SipStatusBadGateway = 502,
6331 SipStatusServiceUnavailable = 503,
6332 SipStatusGatewayTimeout = 504,
6333 SipStatusVersionNotSupported = 505,
6334 SipStatusMessageTooLarge = 513,
6335 SipStatusGlobalBusyEverywhere = 600,
6336 SipStatusGlobalDecline = 603,
6337 SipStatusGlobalDoesNotExistAnywhere = 604,
6338 SipStatusGlobalNotAcceptable = 606,
6339 SipStatusGlobalUnwanted = 607,
6340 SipStatusGlobalRejected = 608,
6341}
6342impl SipStatusCode {
6343 pub fn as_str_name(&self) -> &'static str {
6348 match self {
6349 SipStatusCode::SipStatusUnknown => "SIP_STATUS_UNKNOWN",
6350 SipStatusCode::SipStatusTrying => "SIP_STATUS_TRYING",
6351 SipStatusCode::SipStatusRinging => "SIP_STATUS_RINGING",
6352 SipStatusCode::SipStatusCallIsForwarded => "SIP_STATUS_CALL_IS_FORWARDED",
6353 SipStatusCode::SipStatusQueued => "SIP_STATUS_QUEUED",
6354 SipStatusCode::SipStatusSessionProgress => "SIP_STATUS_SESSION_PROGRESS",
6355 SipStatusCode::SipStatusEarlyDialogTerminated => "SIP_STATUS_EARLY_DIALOG_TERMINATED",
6356 SipStatusCode::SipStatusOk => "SIP_STATUS_OK",
6357 SipStatusCode::SipStatusAccepted => "SIP_STATUS_ACCEPTED",
6358 SipStatusCode::SipStatusNoNotification => "SIP_STATUS_NO_NOTIFICATION",
6359 SipStatusCode::SipStatusMultipleChoices => "SIP_STATUS_MULTIPLE_CHOICES",
6360 SipStatusCode::SipStatusMovedPermanently => "SIP_STATUS_MOVED_PERMANENTLY",
6361 SipStatusCode::SipStatusMovedTemporarily => "SIP_STATUS_MOVED_TEMPORARILY",
6362 SipStatusCode::SipStatusUseProxy => "SIP_STATUS_USE_PROXY",
6363 SipStatusCode::SipStatusAlternativeService => "SIP_STATUS_ALTERNATIVE_SERVICE",
6364 SipStatusCode::SipStatusBadRequest => "SIP_STATUS_BAD_REQUEST",
6365 SipStatusCode::SipStatusUnauthorized => "SIP_STATUS_UNAUTHORIZED",
6366 SipStatusCode::SipStatusPaymentRequired => "SIP_STATUS_PAYMENT_REQUIRED",
6367 SipStatusCode::SipStatusForbidden => "SIP_STATUS_FORBIDDEN",
6368 SipStatusCode::SipStatusNotfound => "SIP_STATUS_NOTFOUND",
6369 SipStatusCode::SipStatusMethodNotAllowed => "SIP_STATUS_METHOD_NOT_ALLOWED",
6370 SipStatusCode::SipStatusNotAcceptable => "SIP_STATUS_NOT_ACCEPTABLE",
6371 SipStatusCode::SipStatusProxyAuthRequired => "SIP_STATUS_PROXY_AUTH_REQUIRED",
6372 SipStatusCode::SipStatusRequestTimeout => "SIP_STATUS_REQUEST_TIMEOUT",
6373 SipStatusCode::SipStatusConflict => "SIP_STATUS_CONFLICT",
6374 SipStatusCode::SipStatusGone => "SIP_STATUS_GONE",
6375 SipStatusCode::SipStatusLengthRequired => "SIP_STATUS_LENGTH_REQUIRED",
6376 SipStatusCode::SipStatusConditionalRequestFailed => "SIP_STATUS_CONDITIONAL_REQUEST_FAILED",
6377 SipStatusCode::SipStatusRequestEntityTooLarge => "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE",
6378 SipStatusCode::SipStatusRequestUriTooLong => "SIP_STATUS_REQUEST_URI_TOO_LONG",
6379 SipStatusCode::SipStatusUnsupportedMediaType => "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE",
6380 SipStatusCode::SipStatusRequestedRangeNotSatisfiable => "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE",
6381 SipStatusCode::SipStatusUnknownResourcePriority => "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY",
6382 SipStatusCode::SipStatusBadExtension => "SIP_STATUS_BAD_EXTENSION",
6383 SipStatusCode::SipStatusExtensionRequired => "SIP_STATUS_EXTENSION_REQUIRED",
6384 SipStatusCode::SipStatusSessionIntervalTooSmall => "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL",
6385 SipStatusCode::SipStatusIntervalTooBrief => "SIP_STATUS_INTERVAL_TOO_BRIEF",
6386 SipStatusCode::SipStatusBadLocationInformation => "SIP_STATUS_BAD_LOCATION_INFORMATION",
6387 SipStatusCode::SipStatusBadAlertMessage => "SIP_STATUS_BAD_ALERT_MESSAGE",
6388 SipStatusCode::SipStatusUseIdentityHeader => "SIP_STATUS_USE_IDENTITY_HEADER",
6389 SipStatusCode::SipStatusProvideReferrerIdentity => "SIP_STATUS_PROVIDE_REFERRER_IDENTITY",
6390 SipStatusCode::SipStatusFlowFailed => "SIP_STATUS_FLOW_FAILED",
6391 SipStatusCode::SipStatusAnonymityDisallowed => "SIP_STATUS_ANONYMITY_DISALLOWED",
6392 SipStatusCode::SipStatusBadIdentityInfo => "SIP_STATUS_BAD_IDENTITY_INFO",
6393 SipStatusCode::SipStatusUnsupportedCertificate => "SIP_STATUS_UNSUPPORTED_CERTIFICATE",
6394 SipStatusCode::SipStatusInvalidIdentityHeader => "SIP_STATUS_INVALID_IDENTITY_HEADER",
6395 SipStatusCode::SipStatusFirstHopLacksOutboundSupport => "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT",
6396 SipStatusCode::SipStatusMaxBreadthExceeded => "SIP_STATUS_MAX_BREADTH_EXCEEDED",
6397 SipStatusCode::SipStatusBadInfoPackage => "SIP_STATUS_BAD_INFO_PACKAGE",
6398 SipStatusCode::SipStatusConsentNeeded => "SIP_STATUS_CONSENT_NEEDED",
6399 SipStatusCode::SipStatusTemporarilyUnavailable => "SIP_STATUS_TEMPORARILY_UNAVAILABLE",
6400 SipStatusCode::SipStatusCallTransactionDoesNotExists => "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS",
6401 SipStatusCode::SipStatusLoopDetected => "SIP_STATUS_LOOP_DETECTED",
6402 SipStatusCode::SipStatusTooManyHops => "SIP_STATUS_TOO_MANY_HOPS",
6403 SipStatusCode::SipStatusAddressIncomplete => "SIP_STATUS_ADDRESS_INCOMPLETE",
6404 SipStatusCode::SipStatusAmbiguous => "SIP_STATUS_AMBIGUOUS",
6405 SipStatusCode::SipStatusBusyHere => "SIP_STATUS_BUSY_HERE",
6406 SipStatusCode::SipStatusRequestTerminated => "SIP_STATUS_REQUEST_TERMINATED",
6407 SipStatusCode::SipStatusNotAcceptableHere => "SIP_STATUS_NOT_ACCEPTABLE_HERE",
6408 SipStatusCode::SipStatusBadEvent => "SIP_STATUS_BAD_EVENT",
6409 SipStatusCode::SipStatusRequestPending => "SIP_STATUS_REQUEST_PENDING",
6410 SipStatusCode::SipStatusUndecipherable => "SIP_STATUS_UNDECIPHERABLE",
6411 SipStatusCode::SipStatusSecurityAgreementRequired => "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED",
6412 SipStatusCode::SipStatusInternalServerError => "SIP_STATUS_INTERNAL_SERVER_ERROR",
6413 SipStatusCode::SipStatusNotImplemented => "SIP_STATUS_NOT_IMPLEMENTED",
6414 SipStatusCode::SipStatusBadGateway => "SIP_STATUS_BAD_GATEWAY",
6415 SipStatusCode::SipStatusServiceUnavailable => "SIP_STATUS_SERVICE_UNAVAILABLE",
6416 SipStatusCode::SipStatusGatewayTimeout => "SIP_STATUS_GATEWAY_TIMEOUT",
6417 SipStatusCode::SipStatusVersionNotSupported => "SIP_STATUS_VERSION_NOT_SUPPORTED",
6418 SipStatusCode::SipStatusMessageTooLarge => "SIP_STATUS_MESSAGE_TOO_LARGE",
6419 SipStatusCode::SipStatusGlobalBusyEverywhere => "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE",
6420 SipStatusCode::SipStatusGlobalDecline => "SIP_STATUS_GLOBAL_DECLINE",
6421 SipStatusCode::SipStatusGlobalDoesNotExistAnywhere => "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE",
6422 SipStatusCode::SipStatusGlobalNotAcceptable => "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE",
6423 SipStatusCode::SipStatusGlobalUnwanted => "SIP_STATUS_GLOBAL_UNWANTED",
6424 SipStatusCode::SipStatusGlobalRejected => "SIP_STATUS_GLOBAL_REJECTED",
6425 }
6426 }
6427 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6429 match value {
6430 "SIP_STATUS_UNKNOWN" => Some(Self::SipStatusUnknown),
6431 "SIP_STATUS_TRYING" => Some(Self::SipStatusTrying),
6432 "SIP_STATUS_RINGING" => Some(Self::SipStatusRinging),
6433 "SIP_STATUS_CALL_IS_FORWARDED" => Some(Self::SipStatusCallIsForwarded),
6434 "SIP_STATUS_QUEUED" => Some(Self::SipStatusQueued),
6435 "SIP_STATUS_SESSION_PROGRESS" => Some(Self::SipStatusSessionProgress),
6436 "SIP_STATUS_EARLY_DIALOG_TERMINATED" => Some(Self::SipStatusEarlyDialogTerminated),
6437 "SIP_STATUS_OK" => Some(Self::SipStatusOk),
6438 "SIP_STATUS_ACCEPTED" => Some(Self::SipStatusAccepted),
6439 "SIP_STATUS_NO_NOTIFICATION" => Some(Self::SipStatusNoNotification),
6440 "SIP_STATUS_MULTIPLE_CHOICES" => Some(Self::SipStatusMultipleChoices),
6441 "SIP_STATUS_MOVED_PERMANENTLY" => Some(Self::SipStatusMovedPermanently),
6442 "SIP_STATUS_MOVED_TEMPORARILY" => Some(Self::SipStatusMovedTemporarily),
6443 "SIP_STATUS_USE_PROXY" => Some(Self::SipStatusUseProxy),
6444 "SIP_STATUS_ALTERNATIVE_SERVICE" => Some(Self::SipStatusAlternativeService),
6445 "SIP_STATUS_BAD_REQUEST" => Some(Self::SipStatusBadRequest),
6446 "SIP_STATUS_UNAUTHORIZED" => Some(Self::SipStatusUnauthorized),
6447 "SIP_STATUS_PAYMENT_REQUIRED" => Some(Self::SipStatusPaymentRequired),
6448 "SIP_STATUS_FORBIDDEN" => Some(Self::SipStatusForbidden),
6449 "SIP_STATUS_NOTFOUND" => Some(Self::SipStatusNotfound),
6450 "SIP_STATUS_METHOD_NOT_ALLOWED" => Some(Self::SipStatusMethodNotAllowed),
6451 "SIP_STATUS_NOT_ACCEPTABLE" => Some(Self::SipStatusNotAcceptable),
6452 "SIP_STATUS_PROXY_AUTH_REQUIRED" => Some(Self::SipStatusProxyAuthRequired),
6453 "SIP_STATUS_REQUEST_TIMEOUT" => Some(Self::SipStatusRequestTimeout),
6454 "SIP_STATUS_CONFLICT" => Some(Self::SipStatusConflict),
6455 "SIP_STATUS_GONE" => Some(Self::SipStatusGone),
6456 "SIP_STATUS_LENGTH_REQUIRED" => Some(Self::SipStatusLengthRequired),
6457 "SIP_STATUS_CONDITIONAL_REQUEST_FAILED" => Some(Self::SipStatusConditionalRequestFailed),
6458 "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE" => Some(Self::SipStatusRequestEntityTooLarge),
6459 "SIP_STATUS_REQUEST_URI_TOO_LONG" => Some(Self::SipStatusRequestUriTooLong),
6460 "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE" => Some(Self::SipStatusUnsupportedMediaType),
6461 "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE" => Some(Self::SipStatusRequestedRangeNotSatisfiable),
6462 "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY" => Some(Self::SipStatusUnknownResourcePriority),
6463 "SIP_STATUS_BAD_EXTENSION" => Some(Self::SipStatusBadExtension),
6464 "SIP_STATUS_EXTENSION_REQUIRED" => Some(Self::SipStatusExtensionRequired),
6465 "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL" => Some(Self::SipStatusSessionIntervalTooSmall),
6466 "SIP_STATUS_INTERVAL_TOO_BRIEF" => Some(Self::SipStatusIntervalTooBrief),
6467 "SIP_STATUS_BAD_LOCATION_INFORMATION" => Some(Self::SipStatusBadLocationInformation),
6468 "SIP_STATUS_BAD_ALERT_MESSAGE" => Some(Self::SipStatusBadAlertMessage),
6469 "SIP_STATUS_USE_IDENTITY_HEADER" => Some(Self::SipStatusUseIdentityHeader),
6470 "SIP_STATUS_PROVIDE_REFERRER_IDENTITY" => Some(Self::SipStatusProvideReferrerIdentity),
6471 "SIP_STATUS_FLOW_FAILED" => Some(Self::SipStatusFlowFailed),
6472 "SIP_STATUS_ANONYMITY_DISALLOWED" => Some(Self::SipStatusAnonymityDisallowed),
6473 "SIP_STATUS_BAD_IDENTITY_INFO" => Some(Self::SipStatusBadIdentityInfo),
6474 "SIP_STATUS_UNSUPPORTED_CERTIFICATE" => Some(Self::SipStatusUnsupportedCertificate),
6475 "SIP_STATUS_INVALID_IDENTITY_HEADER" => Some(Self::SipStatusInvalidIdentityHeader),
6476 "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT" => Some(Self::SipStatusFirstHopLacksOutboundSupport),
6477 "SIP_STATUS_MAX_BREADTH_EXCEEDED" => Some(Self::SipStatusMaxBreadthExceeded),
6478 "SIP_STATUS_BAD_INFO_PACKAGE" => Some(Self::SipStatusBadInfoPackage),
6479 "SIP_STATUS_CONSENT_NEEDED" => Some(Self::SipStatusConsentNeeded),
6480 "SIP_STATUS_TEMPORARILY_UNAVAILABLE" => Some(Self::SipStatusTemporarilyUnavailable),
6481 "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS" => Some(Self::SipStatusCallTransactionDoesNotExists),
6482 "SIP_STATUS_LOOP_DETECTED" => Some(Self::SipStatusLoopDetected),
6483 "SIP_STATUS_TOO_MANY_HOPS" => Some(Self::SipStatusTooManyHops),
6484 "SIP_STATUS_ADDRESS_INCOMPLETE" => Some(Self::SipStatusAddressIncomplete),
6485 "SIP_STATUS_AMBIGUOUS" => Some(Self::SipStatusAmbiguous),
6486 "SIP_STATUS_BUSY_HERE" => Some(Self::SipStatusBusyHere),
6487 "SIP_STATUS_REQUEST_TERMINATED" => Some(Self::SipStatusRequestTerminated),
6488 "SIP_STATUS_NOT_ACCEPTABLE_HERE" => Some(Self::SipStatusNotAcceptableHere),
6489 "SIP_STATUS_BAD_EVENT" => Some(Self::SipStatusBadEvent),
6490 "SIP_STATUS_REQUEST_PENDING" => Some(Self::SipStatusRequestPending),
6491 "SIP_STATUS_UNDECIPHERABLE" => Some(Self::SipStatusUndecipherable),
6492 "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED" => Some(Self::SipStatusSecurityAgreementRequired),
6493 "SIP_STATUS_INTERNAL_SERVER_ERROR" => Some(Self::SipStatusInternalServerError),
6494 "SIP_STATUS_NOT_IMPLEMENTED" => Some(Self::SipStatusNotImplemented),
6495 "SIP_STATUS_BAD_GATEWAY" => Some(Self::SipStatusBadGateway),
6496 "SIP_STATUS_SERVICE_UNAVAILABLE" => Some(Self::SipStatusServiceUnavailable),
6497 "SIP_STATUS_GATEWAY_TIMEOUT" => Some(Self::SipStatusGatewayTimeout),
6498 "SIP_STATUS_VERSION_NOT_SUPPORTED" => Some(Self::SipStatusVersionNotSupported),
6499 "SIP_STATUS_MESSAGE_TOO_LARGE" => Some(Self::SipStatusMessageTooLarge),
6500 "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE" => Some(Self::SipStatusGlobalBusyEverywhere),
6501 "SIP_STATUS_GLOBAL_DECLINE" => Some(Self::SipStatusGlobalDecline),
6502 "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE" => Some(Self::SipStatusGlobalDoesNotExistAnywhere),
6503 "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE" => Some(Self::SipStatusGlobalNotAcceptable),
6504 "SIP_STATUS_GLOBAL_UNWANTED" => Some(Self::SipStatusGlobalUnwanted),
6505 "SIP_STATUS_GLOBAL_REJECTED" => Some(Self::SipStatusGlobalRejected),
6506 _ => None,
6507 }
6508 }
6509}
6510#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6511#[repr(i32)]
6512pub enum SipTransport {
6513 Auto = 0,
6514 Udp = 1,
6515 Tcp = 2,
6516 Tls = 3,
6517}
6518impl SipTransport {
6519 pub fn as_str_name(&self) -> &'static str {
6524 match self {
6525 SipTransport::Auto => "SIP_TRANSPORT_AUTO",
6526 SipTransport::Udp => "SIP_TRANSPORT_UDP",
6527 SipTransport::Tcp => "SIP_TRANSPORT_TCP",
6528 SipTransport::Tls => "SIP_TRANSPORT_TLS",
6529 }
6530 }
6531 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6533 match value {
6534 "SIP_TRANSPORT_AUTO" => Some(Self::Auto),
6535 "SIP_TRANSPORT_UDP" => Some(Self::Udp),
6536 "SIP_TRANSPORT_TCP" => Some(Self::Tcp),
6537 "SIP_TRANSPORT_TLS" => Some(Self::Tls),
6538 _ => None,
6539 }
6540 }
6541}
6542#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6543#[repr(i32)]
6544pub enum SipHeaderOptions {
6545 SipNoHeaders = 0,
6547 SipXHeaders = 1,
6549 SipAllHeaders = 2,
6551}
6552impl SipHeaderOptions {
6553 pub fn as_str_name(&self) -> &'static str {
6558 match self {
6559 SipHeaderOptions::SipNoHeaders => "SIP_NO_HEADERS",
6560 SipHeaderOptions::SipXHeaders => "SIP_X_HEADERS",
6561 SipHeaderOptions::SipAllHeaders => "SIP_ALL_HEADERS",
6562 }
6563 }
6564 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6566 match value {
6567 "SIP_NO_HEADERS" => Some(Self::SipNoHeaders),
6568 "SIP_X_HEADERS" => Some(Self::SipXHeaders),
6569 "SIP_ALL_HEADERS" => Some(Self::SipAllHeaders),
6570 _ => None,
6571 }
6572 }
6573}
6574#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6575#[repr(i32)]
6576pub enum SipMediaEncryption {
6577 SipMediaEncryptDisable = 0,
6579 SipMediaEncryptAllow = 1,
6581 SipMediaEncryptRequire = 2,
6583}
6584impl SipMediaEncryption {
6585 pub fn as_str_name(&self) -> &'static str {
6590 match self {
6591 SipMediaEncryption::SipMediaEncryptDisable => "SIP_MEDIA_ENCRYPT_DISABLE",
6592 SipMediaEncryption::SipMediaEncryptAllow => "SIP_MEDIA_ENCRYPT_ALLOW",
6593 SipMediaEncryption::SipMediaEncryptRequire => "SIP_MEDIA_ENCRYPT_REQUIRE",
6594 }
6595 }
6596 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6598 match value {
6599 "SIP_MEDIA_ENCRYPT_DISABLE" => Some(Self::SipMediaEncryptDisable),
6600 "SIP_MEDIA_ENCRYPT_ALLOW" => Some(Self::SipMediaEncryptAllow),
6601 "SIP_MEDIA_ENCRYPT_REQUIRE" => Some(Self::SipMediaEncryptRequire),
6602 _ => None,
6603 }
6604 }
6605}
6606#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6607#[repr(i32)]
6608pub enum ProviderType {
6609 Unknown = 0,
6610 Internal = 1,
6612 External = 2,
6614}
6615impl ProviderType {
6616 pub fn as_str_name(&self) -> &'static str {
6621 match self {
6622 ProviderType::Unknown => "PROVIDER_TYPE_UNKNOWN",
6623 ProviderType::Internal => "PROVIDER_TYPE_INTERNAL",
6624 ProviderType::External => "PROVIDER_TYPE_EXTERNAL",
6625 }
6626 }
6627 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6629 match value {
6630 "PROVIDER_TYPE_UNKNOWN" => Some(Self::Unknown),
6631 "PROVIDER_TYPE_INTERNAL" => Some(Self::Internal),
6632 "PROVIDER_TYPE_EXTERNAL" => Some(Self::External),
6633 _ => None,
6634 }
6635 }
6636}
6637#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6638#[repr(i32)]
6639pub enum SipCallStatus {
6640 ScsCallIncoming = 0,
6642 ScsParticipantJoined = 1,
6644 ScsActive = 2,
6646 ScsDisconnected = 3,
6648 ScsError = 4,
6650}
6651impl SipCallStatus {
6652 pub fn as_str_name(&self) -> &'static str {
6657 match self {
6658 SipCallStatus::ScsCallIncoming => "SCS_CALL_INCOMING",
6659 SipCallStatus::ScsParticipantJoined => "SCS_PARTICIPANT_JOINED",
6660 SipCallStatus::ScsActive => "SCS_ACTIVE",
6661 SipCallStatus::ScsDisconnected => "SCS_DISCONNECTED",
6662 SipCallStatus::ScsError => "SCS_ERROR",
6663 }
6664 }
6665 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6667 match value {
6668 "SCS_CALL_INCOMING" => Some(Self::ScsCallIncoming),
6669 "SCS_PARTICIPANT_JOINED" => Some(Self::ScsParticipantJoined),
6670 "SCS_ACTIVE" => Some(Self::ScsActive),
6671 "SCS_DISCONNECTED" => Some(Self::ScsDisconnected),
6672 "SCS_ERROR" => Some(Self::ScsError),
6673 _ => None,
6674 }
6675 }
6676}
6677#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6678#[repr(i32)]
6679pub enum SipTransferStatus {
6680 StsTransferOngoing = 0,
6681 StsTransferFailed = 1,
6682 StsTransferSuccessful = 2,
6683}
6684impl SipTransferStatus {
6685 pub fn as_str_name(&self) -> &'static str {
6690 match self {
6691 SipTransferStatus::StsTransferOngoing => "STS_TRANSFER_ONGOING",
6692 SipTransferStatus::StsTransferFailed => "STS_TRANSFER_FAILED",
6693 SipTransferStatus::StsTransferSuccessful => "STS_TRANSFER_SUCCESSFUL",
6694 }
6695 }
6696 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6698 match value {
6699 "STS_TRANSFER_ONGOING" => Some(Self::StsTransferOngoing),
6700 "STS_TRANSFER_FAILED" => Some(Self::StsTransferFailed),
6701 "STS_TRANSFER_SUCCESSFUL" => Some(Self::StsTransferSuccessful),
6702 _ => None,
6703 }
6704 }
6705}
6706#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6707#[repr(i32)]
6708pub enum SipFeature {
6709 None = 0,
6710 KrispEnabled = 1,
6711}
6712impl SipFeature {
6713 pub fn as_str_name(&self) -> &'static str {
6718 match self {
6719 SipFeature::None => "NONE",
6720 SipFeature::KrispEnabled => "KRISP_ENABLED",
6721 }
6722 }
6723 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6725 match value {
6726 "NONE" => Some(Self::None),
6727 "KRISP_ENABLED" => Some(Self::KrispEnabled),
6728 _ => None,
6729 }
6730 }
6731}
6732#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6733#[repr(i32)]
6734pub enum SipCallDirection {
6735 ScdUnknown = 0,
6736 ScdInbound = 1,
6737 ScdOutbound = 2,
6738}
6739impl SipCallDirection {
6740 pub fn as_str_name(&self) -> &'static str {
6745 match self {
6746 SipCallDirection::ScdUnknown => "SCD_UNKNOWN",
6747 SipCallDirection::ScdInbound => "SCD_INBOUND",
6748 SipCallDirection::ScdOutbound => "SCD_OUTBOUND",
6749 }
6750 }
6751 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6753 match value {
6754 "SCD_UNKNOWN" => Some(Self::ScdUnknown),
6755 "SCD_INBOUND" => Some(Self::ScdInbound),
6756 "SCD_OUTBOUND" => Some(Self::ScdOutbound),
6757 _ => None,
6758 }
6759 }
6760}
6761#[allow(clippy::derive_partial_eq_without_eq)]
6762#[derive(Clone, PartialEq, ::prost::Message)]
6763pub struct DialWhatsAppCallRequest {
6764 #[prost(string, tag="1")]
6766 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
6767 #[prost(string, tag="2")]
6769 pub whatsapp_to_phone_number: ::prost::alloc::string::String,
6770 #[prost(string, tag="3")]
6772 pub whatsapp_api_key: ::prost::alloc::string::String,
6773 #[prost(string, tag="12")]
6775 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
6776 #[prost(string, tag="4")]
6778 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
6779 #[prost(string, tag="5")]
6781 pub room_name: ::prost::alloc::string::String,
6782 #[prost(message, repeated, tag="6")]
6784 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
6785 #[prost(string, tag="7")]
6788 pub participant_identity: ::prost::alloc::string::String,
6789 #[prost(string, tag="8")]
6791 pub participant_name: ::prost::alloc::string::String,
6792 #[prost(string, tag="9")]
6794 pub participant_metadata: ::prost::alloc::string::String,
6795 #[prost(map="string, string", tag="10")]
6797 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6798 #[prost(string, tag="11")]
6802 pub destination_country: ::prost::alloc::string::String,
6803}
6804#[allow(clippy::derive_partial_eq_without_eq)]
6805#[derive(Clone, PartialEq, ::prost::Message)]
6806pub struct DialWhatsAppCallResponse {
6807 #[prost(string, tag="1")]
6809 pub whatsapp_call_id: ::prost::alloc::string::String,
6810 #[prost(string, tag="2")]
6812 pub room_name: ::prost::alloc::string::String,
6813}
6814#[allow(clippy::derive_partial_eq_without_eq)]
6815#[derive(Clone, PartialEq, ::prost::Message)]
6816pub struct DisconnectWhatsAppCallRequest {
6817 #[prost(string, tag="1")]
6819 pub whatsapp_call_id: ::prost::alloc::string::String,
6820 #[prost(string, tag="2")]
6824 pub whatsapp_api_key: ::prost::alloc::string::String,
6825 #[prost(enumeration="disconnect_whats_app_call_request::DisconnectReason", tag="3")]
6827 pub disconnect_reason: i32,
6828}
6829pub mod disconnect_whats_app_call_request {
6831 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6832 #[repr(i32)]
6833 pub enum DisconnectReason {
6834 BusinessInitiated = 0,
6836 UserInitiated = 1,
6842 }
6843 impl DisconnectReason {
6844 pub fn as_str_name(&self) -> &'static str {
6849 match self {
6850 DisconnectReason::BusinessInitiated => "BUSINESS_INITIATED",
6851 DisconnectReason::UserInitiated => "USER_INITIATED",
6852 }
6853 }
6854 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6856 match value {
6857 "BUSINESS_INITIATED" => Some(Self::BusinessInitiated),
6858 "USER_INITIATED" => Some(Self::UserInitiated),
6859 _ => None,
6860 }
6861 }
6862 }
6863}
6864#[allow(clippy::derive_partial_eq_without_eq)]
6865#[derive(Clone, PartialEq, ::prost::Message)]
6866pub struct DisconnectWhatsAppCallResponse {
6867}
6868#[allow(clippy::derive_partial_eq_without_eq)]
6869#[derive(Clone, PartialEq, ::prost::Message)]
6870pub struct ConnectWhatsAppCallRequest {
6871 #[prost(string, tag="1")]
6873 pub whatsapp_call_id: ::prost::alloc::string::String,
6874 #[prost(message, optional, tag="2")]
6877 pub sdp: ::core::option::Option<SessionDescription>,
6878}
6879#[allow(clippy::derive_partial_eq_without_eq)]
6880#[derive(Clone, PartialEq, ::prost::Message)]
6881pub struct ConnectWhatsAppCallResponse {
6882}
6883#[allow(clippy::derive_partial_eq_without_eq)]
6884#[derive(Clone, PartialEq, ::prost::Message)]
6885pub struct AcceptWhatsAppCallRequest {
6886 #[prost(string, tag="1")]
6888 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
6889 #[prost(string, tag="2")]
6891 pub whatsapp_api_key: ::prost::alloc::string::String,
6892 #[prost(string, tag="13")]
6894 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
6895 #[prost(string, tag="3")]
6897 pub whatsapp_call_id: ::prost::alloc::string::String,
6898 #[prost(string, tag="4")]
6900 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
6901 #[prost(message, optional, tag="5")]
6904 pub sdp: ::core::option::Option<SessionDescription>,
6905 #[prost(string, tag="6")]
6907 pub room_name: ::prost::alloc::string::String,
6908 #[prost(message, repeated, tag="7")]
6910 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
6911 #[prost(string, tag="8")]
6914 pub participant_identity: ::prost::alloc::string::String,
6915 #[prost(string, tag="9")]
6917 pub participant_name: ::prost::alloc::string::String,
6918 #[prost(string, tag="10")]
6920 pub participant_metadata: ::prost::alloc::string::String,
6921 #[prost(map="string, string", tag="11")]
6923 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6924 #[prost(string, tag="12")]
6928 pub destination_country: ::prost::alloc::string::String,
6929}
6930#[allow(clippy::derive_partial_eq_without_eq)]
6931#[derive(Clone, PartialEq, ::prost::Message)]
6932pub struct AcceptWhatsAppCallResponse {
6933 #[prost(string, tag="1")]
6935 pub room_name: ::prost::alloc::string::String,
6936}
6937#[allow(clippy::derive_partial_eq_without_eq)]
6938#[derive(Clone, PartialEq, ::prost::Message)]
6939pub struct WhatsAppCall {
6940 #[prost(string, tag="1")]
6942 pub whatsapp_call_id: ::prost::alloc::string::String,
6943 #[prost(enumeration="WhatsAppCallDirection", tag="2")]
6945 pub direction: i32,
6946}
6947#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6948#[repr(i32)]
6949pub enum WhatsAppCallDirection {
6950 WhatsappCallDirectionInbound = 0,
6951 WhatsappCallDirectionOutbound = 2,
6952}
6953impl WhatsAppCallDirection {
6954 pub fn as_str_name(&self) -> &'static str {
6959 match self {
6960 WhatsAppCallDirection::WhatsappCallDirectionInbound => "WHATSAPP_CALL_DIRECTION_INBOUND",
6961 WhatsAppCallDirection::WhatsappCallDirectionOutbound => "WHATSAPP_CALL_DIRECTION_OUTBOUND",
6962 }
6963 }
6964 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6966 match value {
6967 "WHATSAPP_CALL_DIRECTION_INBOUND" => Some(Self::WhatsappCallDirectionInbound),
6968 "WHATSAPP_CALL_DIRECTION_OUTBOUND" => Some(Self::WhatsappCallDirectionOutbound),
6969 _ => None,
6970 }
6971 }
6972}
6973#[allow(clippy::derive_partial_eq_without_eq)]
6974#[derive(Clone, PartialEq, ::prost::Message)]
6975pub struct ConnectTwilioCallRequest {
6976 #[prost(enumeration="connect_twilio_call_request::TwilioCallDirection", tag="1")]
6978 pub twilio_call_direction: i32,
6979 #[prost(string, tag="2")]
6981 pub room_name: ::prost::alloc::string::String,
6982 #[prost(message, repeated, tag="3")]
6984 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
6985 #[prost(string, tag="4")]
6988 pub participant_identity: ::prost::alloc::string::String,
6989 #[prost(string, tag="5")]
6991 pub participant_name: ::prost::alloc::string::String,
6992 #[prost(string, tag="6")]
6994 pub participant_metadata: ::prost::alloc::string::String,
6995 #[prost(map="string, string", tag="7")]
6997 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6998 #[prost(string, tag="8")]
7000 pub destination_country: ::prost::alloc::string::String,
7001}
7002pub mod connect_twilio_call_request {
7004 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7005 #[repr(i32)]
7006 pub enum TwilioCallDirection {
7007 Inbound = 0,
7009 Outbound = 1,
7011 }
7012 impl TwilioCallDirection {
7013 pub fn as_str_name(&self) -> &'static str {
7018 match self {
7019 TwilioCallDirection::Inbound => "TWILIO_CALL_DIRECTION_INBOUND",
7020 TwilioCallDirection::Outbound => "TWILIO_CALL_DIRECTION_OUTBOUND",
7021 }
7022 }
7023 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7025 match value {
7026 "TWILIO_CALL_DIRECTION_INBOUND" => Some(Self::Inbound),
7027 "TWILIO_CALL_DIRECTION_OUTBOUND" => Some(Self::Outbound),
7028 _ => None,
7029 }
7030 }
7031 }
7032}
7033#[allow(clippy::derive_partial_eq_without_eq)]
7034#[derive(Clone, PartialEq, ::prost::Message)]
7035pub struct ConnectTwilioCallResponse {
7036 #[prost(string, tag="1")]
7038 pub connect_url: ::prost::alloc::string::String,
7039}
7040#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7041#[repr(i32)]
7042pub enum ConnectorType {
7043 Unspecified = 0,
7044 WhatsApp = 1,
7045 Twilio = 2,
7046}
7047impl ConnectorType {
7048 pub fn as_str_name(&self) -> &'static str {
7053 match self {
7054 ConnectorType::Unspecified => "Unspecified",
7055 ConnectorType::WhatsApp => "WhatsApp",
7056 ConnectorType::Twilio => "Twilio",
7057 }
7058 }
7059 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7061 match value {
7062 "Unspecified" => Some(Self::Unspecified),
7063 "WhatsApp" => Some(Self::WhatsApp),
7064 "Twilio" => Some(Self::Twilio),
7065 _ => None,
7066 }
7067 }
7068}
7069include!("livekit.serde.rs");
7070