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