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 #[prost(string, tag="6")]
94 pub room_name: ::prost::alloc::string::String,
95 #[prost(message, optional, tag="7")]
96 pub room_start_time: ::core::option::Option<::pbjson_types::Timestamp>,
97}
98#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
108#[repr(i32)]
109pub enum MetricLabel {
110 AgentsLlmTtft = 0,
112 AgentsSttTtft = 1,
114 AgentsTtsTtfb = 2,
116 ClientVideoSubscriberFreezeCount = 3,
118 ClientVideoSubscriberTotalFreezeDuration = 4,
120 ClientVideoSubscriberPauseCount = 5,
122 ClientVideoSubscriberTotalPausesDuration = 6,
124 ClientAudioSubscriberConcealedSamples = 7,
126 ClientAudioSubscriberSilentConcealedSamples = 8,
128 ClientAudioSubscriberConcealmentEvents = 9,
130 ClientAudioSubscriberInterruptionCount = 10,
132 ClientAudioSubscriberTotalInterruptionDuration = 11,
134 ClientSubscriberJitterBufferDelay = 12,
136 ClientSubscriberJitterBufferEmittedCount = 13,
138 ClientVideoPublisherQualityLimitationDurationBandwidth = 14,
140 ClientVideoPublisherQualityLimitationDurationCpu = 15,
142 ClientVideoPublisherQualityLimitationDurationOther = 16,
144 PublisherRtt = 17,
146 ServerMeshRtt = 18,
148 SubscriberRtt = 19,
150 PredefinedMaxValue = 4096,
151}
152impl MetricLabel {
153 pub fn as_str_name(&self) -> &'static str {
158 match self {
159 MetricLabel::AgentsLlmTtft => "AGENTS_LLM_TTFT",
160 MetricLabel::AgentsSttTtft => "AGENTS_STT_TTFT",
161 MetricLabel::AgentsTtsTtfb => "AGENTS_TTS_TTFB",
162 MetricLabel::ClientVideoSubscriberFreezeCount => "CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT",
163 MetricLabel::ClientVideoSubscriberTotalFreezeDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION",
164 MetricLabel::ClientVideoSubscriberPauseCount => "CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT",
165 MetricLabel::ClientVideoSubscriberTotalPausesDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION",
166 MetricLabel::ClientAudioSubscriberConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES",
167 MetricLabel::ClientAudioSubscriberSilentConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES",
168 MetricLabel::ClientAudioSubscriberConcealmentEvents => "CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS",
169 MetricLabel::ClientAudioSubscriberInterruptionCount => "CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT",
170 MetricLabel::ClientAudioSubscriberTotalInterruptionDuration => "CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION",
171 MetricLabel::ClientSubscriberJitterBufferDelay => "CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY",
172 MetricLabel::ClientSubscriberJitterBufferEmittedCount => "CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT",
173 MetricLabel::ClientVideoPublisherQualityLimitationDurationBandwidth => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH",
174 MetricLabel::ClientVideoPublisherQualityLimitationDurationCpu => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU",
175 MetricLabel::ClientVideoPublisherQualityLimitationDurationOther => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER",
176 MetricLabel::PublisherRtt => "PUBLISHER_RTT",
177 MetricLabel::ServerMeshRtt => "SERVER_MESH_RTT",
178 MetricLabel::SubscriberRtt => "SUBSCRIBER_RTT",
179 MetricLabel::PredefinedMaxValue => "METRIC_LABEL_PREDEFINED_MAX_VALUE",
180 }
181 }
182 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
184 match value {
185 "AGENTS_LLM_TTFT" => Some(Self::AgentsLlmTtft),
186 "AGENTS_STT_TTFT" => Some(Self::AgentsSttTtft),
187 "AGENTS_TTS_TTFB" => Some(Self::AgentsTtsTtfb),
188 "CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT" => Some(Self::ClientVideoSubscriberFreezeCount),
189 "CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION" => Some(Self::ClientVideoSubscriberTotalFreezeDuration),
190 "CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT" => Some(Self::ClientVideoSubscriberPauseCount),
191 "CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION" => Some(Self::ClientVideoSubscriberTotalPausesDuration),
192 "CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberConcealedSamples),
193 "CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberSilentConcealedSamples),
194 "CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS" => Some(Self::ClientAudioSubscriberConcealmentEvents),
195 "CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT" => Some(Self::ClientAudioSubscriberInterruptionCount),
196 "CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION" => Some(Self::ClientAudioSubscriberTotalInterruptionDuration),
197 "CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY" => Some(Self::ClientSubscriberJitterBufferDelay),
198 "CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT" => Some(Self::ClientSubscriberJitterBufferEmittedCount),
199 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH" => Some(Self::ClientVideoPublisherQualityLimitationDurationBandwidth),
200 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU" => Some(Self::ClientVideoPublisherQualityLimitationDurationCpu),
201 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER" => Some(Self::ClientVideoPublisherQualityLimitationDurationOther),
202 "PUBLISHER_RTT" => Some(Self::PublisherRtt),
203 "SERVER_MESH_RTT" => Some(Self::ServerMeshRtt),
204 "SUBSCRIBER_RTT" => Some(Self::SubscriberRtt),
205 "METRIC_LABEL_PREDEFINED_MAX_VALUE" => Some(Self::PredefinedMaxValue),
206 _ => None,
207 }
208 }
209}
210#[allow(clippy::derive_partial_eq_without_eq)]
211#[derive(Clone, PartialEq, ::prost::Message)]
212pub struct Pagination {
213 #[prost(string, tag="1")]
215 pub after_id: ::prost::alloc::string::String,
216 #[prost(int32, tag="2")]
217 pub limit: i32,
218}
219#[allow(clippy::derive_partial_eq_without_eq)]
220#[derive(Clone, PartialEq, ::prost::Message)]
221pub struct TokenPagination {
222 #[prost(string, tag="1")]
223 pub token: ::prost::alloc::string::String,
224}
225#[allow(clippy::derive_partial_eq_without_eq)]
227#[derive(Clone, PartialEq, ::prost::Message)]
228pub struct ListUpdate {
229 #[prost(string, repeated, tag="1")]
231 pub set: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
232 #[prost(string, repeated, tag="2")]
234 pub add: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
235 #[prost(string, repeated, tag="3")]
237 pub remove: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
238 #[prost(bool, tag="4")]
240 pub clear: bool,
241}
242#[allow(clippy::derive_partial_eq_without_eq)]
243#[derive(Clone, PartialEq, ::prost::Message)]
244pub struct Room {
245 #[prost(string, tag="1")]
246 pub sid: ::prost::alloc::string::String,
247 #[prost(string, tag="2")]
248 pub name: ::prost::alloc::string::String,
249 #[prost(uint32, tag="3")]
250 pub empty_timeout: u32,
251 #[prost(uint32, tag="14")]
252 pub departure_timeout: u32,
253 #[prost(uint32, tag="4")]
254 pub max_participants: u32,
255 #[prost(int64, tag="5")]
256 pub creation_time: i64,
257 #[prost(int64, tag="15")]
258 pub creation_time_ms: i64,
259 #[prost(string, tag="6")]
260 pub turn_password: ::prost::alloc::string::String,
261 #[prost(message, repeated, tag="7")]
262 pub enabled_codecs: ::prost::alloc::vec::Vec<Codec>,
263 #[prost(string, tag="8")]
264 pub metadata: ::prost::alloc::string::String,
265 #[prost(uint32, tag="9")]
266 pub num_participants: u32,
267 #[prost(uint32, tag="11")]
268 pub num_publishers: u32,
269 #[prost(bool, tag="10")]
270 pub active_recording: bool,
271 #[prost(message, optional, tag="13")]
272 pub version: ::core::option::Option<TimedVersion>,
273}
274#[allow(clippy::derive_partial_eq_without_eq)]
275#[derive(Clone, PartialEq, ::prost::Message)]
276pub struct Codec {
277 #[prost(string, tag="1")]
278 pub mime: ::prost::alloc::string::String,
279 #[prost(string, tag="2")]
280 pub fmtp_line: ::prost::alloc::string::String,
281}
282#[allow(clippy::derive_partial_eq_without_eq)]
283#[derive(Clone, PartialEq, ::prost::Message)]
284pub struct PlayoutDelay {
285 #[prost(bool, tag="1")]
286 pub enabled: bool,
287 #[prost(uint32, tag="2")]
288 pub min: u32,
289 #[prost(uint32, tag="3")]
290 pub max: u32,
291}
292#[allow(clippy::derive_partial_eq_without_eq)]
293#[derive(Clone, PartialEq, ::prost::Message)]
294pub struct ParticipantPermission {
295 #[prost(bool, tag="1")]
297 pub can_subscribe: bool,
298 #[prost(bool, tag="2")]
300 pub can_publish: bool,
301 #[prost(bool, tag="3")]
303 pub can_publish_data: bool,
304 #[prost(enumeration="TrackSource", repeated, tag="9")]
306 pub can_publish_sources: ::prost::alloc::vec::Vec<i32>,
307 #[prost(bool, tag="7")]
309 pub hidden: bool,
310 #[deprecated]
313 #[prost(bool, tag="8")]
314 pub recorder: bool,
315 #[prost(bool, tag="10")]
317 pub can_update_metadata: bool,
318 #[deprecated]
321 #[prost(bool, tag="11")]
322 pub agent: bool,
323 #[prost(bool, tag="12")]
325 pub can_subscribe_metrics: bool,
326 #[prost(bool, tag="13")]
328 pub can_manage_agent_session: bool,
329}
330#[allow(clippy::derive_partial_eq_without_eq)]
331#[derive(Clone, PartialEq, ::prost::Message)]
332pub struct ParticipantInfo {
333 #[prost(string, tag="1")]
334 pub sid: ::prost::alloc::string::String,
335 #[prost(string, tag="2")]
336 pub identity: ::prost::alloc::string::String,
337 #[prost(enumeration="participant_info::State", tag="3")]
338 pub state: i32,
339 #[prost(message, repeated, tag="4")]
340 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
341 #[prost(string, tag="5")]
342 pub metadata: ::prost::alloc::string::String,
343 #[prost(int64, tag="6")]
345 pub joined_at: i64,
346 #[prost(int64, tag="17")]
348 pub joined_at_ms: i64,
349 #[prost(string, tag="9")]
350 pub name: ::prost::alloc::string::String,
351 #[prost(uint32, tag="10")]
352 pub version: u32,
353 #[prost(message, optional, tag="11")]
354 pub permission: ::core::option::Option<ParticipantPermission>,
355 #[prost(string, tag="12")]
356 pub region: ::prost::alloc::string::String,
357 #[prost(bool, tag="13")]
360 pub is_publisher: bool,
361 #[prost(enumeration="participant_info::Kind", tag="14")]
362 pub kind: i32,
363 #[prost(map="string, string", tag="15")]
364 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
365 #[prost(enumeration="DisconnectReason", tag="16")]
366 pub disconnect_reason: i32,
367 #[prost(enumeration="participant_info::KindDetail", repeated, tag="18")]
368 pub kind_details: ::prost::alloc::vec::Vec<i32>,
369 #[prost(message, repeated, tag="19")]
370 pub data_tracks: ::prost::alloc::vec::Vec<DataTrackInfo>,
371 #[prost(int32, tag="20")]
373 pub client_protocol: i32,
374 #[prost(enumeration="client_info::Capability", repeated, tag="21")]
377 pub capabilities: ::prost::alloc::vec::Vec<i32>,
378}
379pub mod participant_info {
381 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
382 #[repr(i32)]
383 pub enum State {
384 Joining = 0,
386 Joined = 1,
388 Active = 2,
390 Disconnected = 3,
392 }
393 impl State {
394 pub fn as_str_name(&self) -> &'static str {
399 match self {
400 State::Joining => "JOINING",
401 State::Joined => "JOINED",
402 State::Active => "ACTIVE",
403 State::Disconnected => "DISCONNECTED",
404 }
405 }
406 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
408 match value {
409 "JOINING" => Some(Self::Joining),
410 "JOINED" => Some(Self::Joined),
411 "ACTIVE" => Some(Self::Active),
412 "DISCONNECTED" => Some(Self::Disconnected),
413 _ => None,
414 }
415 }
416 }
417 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
418 #[repr(i32)]
419 pub enum Kind {
420 Standard = 0,
422 Ingress = 1,
424 Egress = 2,
426 Sip = 3,
428 Agent = 4,
430 Connector = 7,
432 Bridge = 8,
436 }
437 impl Kind {
438 pub fn as_str_name(&self) -> &'static str {
443 match self {
444 Kind::Standard => "STANDARD",
445 Kind::Ingress => "INGRESS",
446 Kind::Egress => "EGRESS",
447 Kind::Sip => "SIP",
448 Kind::Agent => "AGENT",
449 Kind::Connector => "CONNECTOR",
450 Kind::Bridge => "BRIDGE",
451 }
452 }
453 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
455 match value {
456 "STANDARD" => Some(Self::Standard),
457 "INGRESS" => Some(Self::Ingress),
458 "EGRESS" => Some(Self::Egress),
459 "SIP" => Some(Self::Sip),
460 "AGENT" => Some(Self::Agent),
461 "CONNECTOR" => Some(Self::Connector),
462 "BRIDGE" => Some(Self::Bridge),
463 _ => None,
464 }
465 }
466 }
467 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
468 #[repr(i32)]
469 pub enum KindDetail {
470 CloudAgent = 0,
471 Forwarded = 1,
472 ConnectorWhatsapp = 2,
473 ConnectorTwilio = 3,
474 BridgeRtsp = 4,
476 }
477 impl KindDetail {
478 pub fn as_str_name(&self) -> &'static str {
483 match self {
484 KindDetail::CloudAgent => "CLOUD_AGENT",
485 KindDetail::Forwarded => "FORWARDED",
486 KindDetail::ConnectorWhatsapp => "CONNECTOR_WHATSAPP",
487 KindDetail::ConnectorTwilio => "CONNECTOR_TWILIO",
488 KindDetail::BridgeRtsp => "BRIDGE_RTSP",
489 }
490 }
491 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
493 match value {
494 "CLOUD_AGENT" => Some(Self::CloudAgent),
495 "FORWARDED" => Some(Self::Forwarded),
496 "CONNECTOR_WHATSAPP" => Some(Self::ConnectorWhatsapp),
497 "CONNECTOR_TWILIO" => Some(Self::ConnectorTwilio),
498 "BRIDGE_RTSP" => Some(Self::BridgeRtsp),
499 _ => None,
500 }
501 }
502 }
503}
504#[allow(clippy::derive_partial_eq_without_eq)]
505#[derive(Clone, PartialEq, ::prost::Message)]
506pub struct Encryption {
507}
508pub mod encryption {
510 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
511 #[repr(i32)]
512 pub enum Type {
513 None = 0,
514 Gcm = 1,
515 Custom = 2,
516 }
517 impl Type {
518 pub fn as_str_name(&self) -> &'static str {
523 match self {
524 Type::None => "NONE",
525 Type::Gcm => "GCM",
526 Type::Custom => "CUSTOM",
527 }
528 }
529 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
531 match value {
532 "NONE" => Some(Self::None),
533 "GCM" => Some(Self::Gcm),
534 "CUSTOM" => Some(Self::Custom),
535 _ => None,
536 }
537 }
538 }
539}
540#[allow(clippy::derive_partial_eq_without_eq)]
541#[derive(Clone, PartialEq, ::prost::Message)]
542pub struct SimulcastCodecInfo {
543 #[prost(string, tag="1")]
544 pub mime_type: ::prost::alloc::string::String,
545 #[prost(string, tag="2")]
546 pub mid: ::prost::alloc::string::String,
547 #[prost(string, tag="3")]
548 pub cid: ::prost::alloc::string::String,
549 #[prost(message, repeated, tag="4")]
550 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
551 #[prost(enumeration="video_layer::Mode", tag="5")]
552 pub video_layer_mode: i32,
553 #[prost(string, tag="6")]
558 pub sdp_cid: ::prost::alloc::string::String,
559}
560#[allow(clippy::derive_partial_eq_without_eq)]
561#[derive(Clone, PartialEq, ::prost::Message)]
562pub struct TrackInfo {
563 #[prost(string, tag="1")]
564 pub sid: ::prost::alloc::string::String,
565 #[prost(enumeration="TrackType", tag="2")]
566 pub r#type: i32,
567 #[prost(string, tag="3")]
568 pub name: ::prost::alloc::string::String,
569 #[prost(bool, tag="4")]
570 pub muted: bool,
571 #[prost(uint32, tag="5")]
574 pub width: u32,
575 #[prost(uint32, tag="6")]
577 pub height: u32,
578 #[deprecated]
582 #[prost(bool, tag="7")]
583 pub simulcast: bool,
584 #[deprecated]
588 #[prost(bool, tag="8")]
589 pub disable_dtx: bool,
590 #[prost(enumeration="TrackSource", tag="9")]
592 pub source: i32,
593 #[deprecated]
595 #[prost(message, repeated, tag="10")]
596 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
597 #[prost(string, tag="11")]
599 pub mime_type: ::prost::alloc::string::String,
600 #[prost(string, tag="12")]
601 pub mid: ::prost::alloc::string::String,
602 #[prost(message, repeated, tag="13")]
603 pub codecs: ::prost::alloc::vec::Vec<SimulcastCodecInfo>,
604 #[deprecated]
606 #[prost(bool, tag="14")]
607 pub stereo: bool,
608 #[prost(bool, tag="15")]
610 pub disable_red: bool,
611 #[prost(enumeration="encryption::Type", tag="16")]
612 pub encryption: i32,
613 #[prost(string, tag="17")]
614 pub stream: ::prost::alloc::string::String,
615 #[prost(message, optional, tag="18")]
616 pub version: ::core::option::Option<TimedVersion>,
617 #[prost(enumeration="AudioTrackFeature", repeated, tag="19")]
618 pub audio_features: ::prost::alloc::vec::Vec<i32>,
619 #[prost(enumeration="BackupCodecPolicy", tag="20")]
620 pub backup_codec_policy: i32,
621 #[prost(enumeration="PacketTrailerFeature", repeated, tag="21")]
622 pub packet_trailer_features: ::prost::alloc::vec::Vec<i32>,
623}
624#[allow(clippy::derive_partial_eq_without_eq)]
625#[derive(Clone, PartialEq, ::prost::Message)]
626pub struct DataTrackInfo {
627 #[prost(uint32, tag="1")]
629 pub pub_handle: u32,
630 #[prost(string, tag="2")]
632 pub sid: ::prost::alloc::string::String,
633 #[prost(string, tag="3")]
635 pub name: ::prost::alloc::string::String,
636 #[prost(enumeration="encryption::Type", tag="4")]
638 pub encryption: i32,
639}
640#[allow(clippy::derive_partial_eq_without_eq)]
641#[derive(Clone, PartialEq, ::prost::Message)]
642pub struct DataTrackExtensionParticipantSid {
643 #[prost(enumeration="DataTrackExtensionId", tag="1")]
644 pub id: i32,
645 #[prost(string, tag="2")]
646 pub participant_sid: ::prost::alloc::string::String,
647}
648#[allow(clippy::derive_partial_eq_without_eq)]
649#[derive(Clone, PartialEq, ::prost::Message)]
650pub struct DataTrackSubscriptionOptions {
651 #[prost(uint32, optional, tag="1")]
654 pub target_fps: ::core::option::Option<u32>,
655}
656#[allow(clippy::derive_partial_eq_without_eq)]
658#[derive(Clone, PartialEq, ::prost::Message)]
659pub struct VideoLayer {
660 #[prost(enumeration="VideoQuality", tag="1")]
662 pub quality: i32,
663 #[prost(uint32, tag="2")]
664 pub width: u32,
665 #[prost(uint32, tag="3")]
666 pub height: u32,
667 #[prost(uint32, tag="4")]
669 pub bitrate: u32,
670 #[prost(uint32, tag="5")]
671 pub ssrc: u32,
672 #[prost(int32, tag="6")]
673 pub spatial_layer: i32,
674 #[prost(string, tag="7")]
675 pub rid: ::prost::alloc::string::String,
676 #[prost(uint32, tag="8")]
677 pub repair_ssrc: u32,
678}
679pub mod video_layer {
681 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
682 #[repr(i32)]
683 pub enum Mode {
684 Unused = 0,
685 OneSpatialLayerPerStream = 1,
686 MultipleSpatialLayersPerStream = 2,
687 OneSpatialLayerPerStreamIncompleteRtcpSr = 3,
688 }
689 impl Mode {
690 pub fn as_str_name(&self) -> &'static str {
695 match self {
696 Mode::Unused => "MODE_UNUSED",
697 Mode::OneSpatialLayerPerStream => "ONE_SPATIAL_LAYER_PER_STREAM",
698 Mode::MultipleSpatialLayersPerStream => "MULTIPLE_SPATIAL_LAYERS_PER_STREAM",
699 Mode::OneSpatialLayerPerStreamIncompleteRtcpSr => "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR",
700 }
701 }
702 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
704 match value {
705 "MODE_UNUSED" => Some(Self::Unused),
706 "ONE_SPATIAL_LAYER_PER_STREAM" => Some(Self::OneSpatialLayerPerStream),
707 "MULTIPLE_SPATIAL_LAYERS_PER_STREAM" => Some(Self::MultipleSpatialLayersPerStream),
708 "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR" => Some(Self::OneSpatialLayerPerStreamIncompleteRtcpSr),
709 _ => None,
710 }
711 }
712 }
713}
714#[allow(clippy::derive_partial_eq_without_eq)]
716#[derive(Clone, PartialEq, ::prost::Message)]
717pub struct DataPacket {
718 #[deprecated]
719 #[prost(enumeration="data_packet::Kind", tag="1")]
720 pub kind: i32,
721 #[prost(string, tag="4")]
723 pub participant_identity: ::prost::alloc::string::String,
724 #[prost(string, repeated, tag="5")]
726 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
727 #[prost(uint32, tag="16")]
729 pub sequence: u32,
730 #[prost(string, tag="17")]
732 pub participant_sid: ::prost::alloc::string::String,
733 #[prost(oneof="data_packet::Value", tags="2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18")]
734 pub value: ::core::option::Option<data_packet::Value>,
735}
736pub mod data_packet {
738 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
739 #[repr(i32)]
740 pub enum Kind {
741 Reliable = 0,
742 Lossy = 1,
743 }
744 impl Kind {
745 pub fn as_str_name(&self) -> &'static str {
750 match self {
751 Kind::Reliable => "RELIABLE",
752 Kind::Lossy => "LOSSY",
753 }
754 }
755 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
757 match value {
758 "RELIABLE" => Some(Self::Reliable),
759 "LOSSY" => Some(Self::Lossy),
760 _ => None,
761 }
762 }
763 }
764 #[allow(clippy::derive_partial_eq_without_eq)]
765#[derive(Clone, PartialEq, ::prost::Oneof)]
766 pub enum Value {
767 #[prost(message, tag="2")]
768 User(super::UserPacket),
769 #[prost(message, tag="3")]
770 Speaker(super::ActiveSpeakerUpdate),
771 #[prost(message, tag="6")]
772 SipDtmf(super::SipDtmf),
773 #[prost(message, tag="7")]
774 Transcription(super::Transcription),
775 #[prost(message, tag="8")]
776 Metrics(super::MetricsBatch),
777 #[prost(message, tag="9")]
778 ChatMessage(super::ChatMessage),
779 #[prost(message, tag="10")]
780 RpcRequest(super::RpcRequest),
781 #[prost(message, tag="11")]
782 RpcAck(super::RpcAck),
783 #[prost(message, tag="12")]
784 RpcResponse(super::RpcResponse),
785 #[prost(message, tag="13")]
786 StreamHeader(super::data_stream::Header),
787 #[prost(message, tag="14")]
788 StreamChunk(super::data_stream::Chunk),
789 #[prost(message, tag="15")]
790 StreamTrailer(super::data_stream::Trailer),
791 #[prost(message, tag="18")]
792 EncryptedPacket(super::EncryptedPacket),
793 }
794}
795#[allow(clippy::derive_partial_eq_without_eq)]
796#[derive(Clone, PartialEq, ::prost::Message)]
797pub struct EncryptedPacket {
798 #[prost(enumeration="encryption::Type", tag="1")]
799 pub encryption_type: i32,
800 #[prost(bytes="vec", tag="2")]
801 pub iv: ::prost::alloc::vec::Vec<u8>,
802 #[prost(uint32, tag="3")]
803 pub key_index: u32,
804 #[prost(bytes="vec", tag="4")]
806 pub encrypted_value: ::prost::alloc::vec::Vec<u8>,
807}
808#[allow(clippy::derive_partial_eq_without_eq)]
809#[derive(Clone, PartialEq, ::prost::Message)]
810pub struct EncryptedPacketPayload {
811 #[prost(oneof="encrypted_packet_payload::Value", tags="1, 3, 4, 5, 6, 7, 8, 9")]
812 pub value: ::core::option::Option<encrypted_packet_payload::Value>,
813}
814pub mod encrypted_packet_payload {
816 #[allow(clippy::derive_partial_eq_without_eq)]
817#[derive(Clone, PartialEq, ::prost::Oneof)]
818 pub enum Value {
819 #[prost(message, tag="1")]
820 User(super::UserPacket),
821 #[prost(message, tag="3")]
822 ChatMessage(super::ChatMessage),
823 #[prost(message, tag="4")]
824 RpcRequest(super::RpcRequest),
825 #[prost(message, tag="5")]
826 RpcAck(super::RpcAck),
827 #[prost(message, tag="6")]
828 RpcResponse(super::RpcResponse),
829 #[prost(message, tag="7")]
830 StreamHeader(super::data_stream::Header),
831 #[prost(message, tag="8")]
832 StreamChunk(super::data_stream::Chunk),
833 #[prost(message, tag="9")]
834 StreamTrailer(super::data_stream::Trailer),
835 }
836}
837#[allow(clippy::derive_partial_eq_without_eq)]
838#[derive(Clone, PartialEq, ::prost::Message)]
839pub struct ActiveSpeakerUpdate {
840 #[prost(message, repeated, tag="1")]
841 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
842}
843#[allow(clippy::derive_partial_eq_without_eq)]
844#[derive(Clone, PartialEq, ::prost::Message)]
845pub struct SpeakerInfo {
846 #[prost(string, tag="1")]
847 pub sid: ::prost::alloc::string::String,
848 #[prost(float, tag="2")]
850 pub level: f32,
851 #[prost(bool, tag="3")]
853 pub active: bool,
854}
855#[allow(clippy::derive_partial_eq_without_eq)]
856#[derive(Clone, PartialEq, ::prost::Message)]
857pub struct UserPacket {
858 #[deprecated]
860 #[prost(string, tag="1")]
861 pub participant_sid: ::prost::alloc::string::String,
862 #[deprecated]
863 #[prost(string, tag="5")]
864 pub participant_identity: ::prost::alloc::string::String,
865 #[prost(bytes="vec", tag="2")]
867 pub payload: ::prost::alloc::vec::Vec<u8>,
868 #[deprecated]
870 #[prost(string, repeated, tag="3")]
871 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
872 #[deprecated]
874 #[prost(string, repeated, tag="6")]
875 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
876 #[prost(string, optional, tag="4")]
878 pub topic: ::core::option::Option<::prost::alloc::string::String>,
879 #[prost(string, optional, tag="8")]
881 pub id: ::core::option::Option<::prost::alloc::string::String>,
882 #[prost(uint64, optional, tag="9")]
884 pub start_time: ::core::option::Option<u64>,
885 #[prost(uint64, optional, tag="10")]
886 pub end_time: ::core::option::Option<u64>,
887 #[prost(bytes="vec", tag="11")]
889 pub nonce: ::prost::alloc::vec::Vec<u8>,
890}
891#[allow(clippy::derive_partial_eq_without_eq)]
892#[derive(Clone, PartialEq, ::prost::Message)]
893pub struct SipDtmf {
894 #[prost(uint32, tag="3")]
895 pub code: u32,
896 #[prost(string, tag="4")]
897 pub digit: ::prost::alloc::string::String,
898}
899#[allow(clippy::derive_partial_eq_without_eq)]
900#[derive(Clone, PartialEq, ::prost::Message)]
901pub struct Transcription {
902 #[prost(string, tag="2")]
904 pub transcribed_participant_identity: ::prost::alloc::string::String,
905 #[prost(string, tag="3")]
906 pub track_id: ::prost::alloc::string::String,
907 #[prost(message, repeated, tag="4")]
908 pub segments: ::prost::alloc::vec::Vec<TranscriptionSegment>,
909}
910#[allow(clippy::derive_partial_eq_without_eq)]
911#[derive(Clone, PartialEq, ::prost::Message)]
912pub struct TranscriptionSegment {
913 #[prost(string, tag="1")]
914 pub id: ::prost::alloc::string::String,
915 #[prost(string, tag="2")]
916 pub text: ::prost::alloc::string::String,
917 #[prost(uint64, tag="3")]
918 pub start_time: u64,
919 #[prost(uint64, tag="4")]
920 pub end_time: u64,
921 #[prost(bool, tag="5")]
922 pub r#final: bool,
923 #[prost(string, tag="6")]
924 pub language: ::prost::alloc::string::String,
925}
926#[allow(clippy::derive_partial_eq_without_eq)]
927#[derive(Clone, PartialEq, ::prost::Message)]
928pub struct ChatMessage {
929 #[prost(string, tag="1")]
931 pub id: ::prost::alloc::string::String,
932 #[prost(int64, tag="2")]
933 pub timestamp: i64,
934 #[prost(int64, optional, tag="3")]
936 pub edit_timestamp: ::core::option::Option<i64>,
937 #[prost(string, tag="4")]
938 pub message: ::prost::alloc::string::String,
939 #[prost(bool, tag="5")]
941 pub deleted: bool,
942 #[prost(bool, tag="6")]
944 pub generated: bool,
945}
946#[allow(clippy::derive_partial_eq_without_eq)]
947#[derive(Clone, PartialEq, ::prost::Message)]
948pub struct RpcRequest {
949 #[prost(string, tag="1")]
950 pub id: ::prost::alloc::string::String,
951 #[prost(string, tag="2")]
952 pub method: ::prost::alloc::string::String,
953 #[prost(string, tag="3")]
954 pub payload: ::prost::alloc::string::String,
955 #[prost(uint32, tag="4")]
956 pub response_timeout_ms: u32,
957 #[prost(uint32, tag="5")]
958 pub version: u32,
959 #[prost(bytes="vec", tag="6")]
961 pub compressed_payload: ::prost::alloc::vec::Vec<u8>,
962}
963#[allow(clippy::derive_partial_eq_without_eq)]
964#[derive(Clone, PartialEq, ::prost::Message)]
965pub struct RpcAck {
966 #[prost(string, tag="1")]
967 pub request_id: ::prost::alloc::string::String,
968}
969#[allow(clippy::derive_partial_eq_without_eq)]
970#[derive(Clone, PartialEq, ::prost::Message)]
971pub struct RpcResponse {
972 #[prost(string, tag="1")]
973 pub request_id: ::prost::alloc::string::String,
974 #[prost(oneof="rpc_response::Value", tags="2, 3, 4")]
975 pub value: ::core::option::Option<rpc_response::Value>,
976}
977pub mod rpc_response {
979 #[allow(clippy::derive_partial_eq_without_eq)]
980#[derive(Clone, PartialEq, ::prost::Oneof)]
981 pub enum Value {
982 #[prost(string, tag="2")]
983 Payload(::prost::alloc::string::String),
984 #[prost(message, tag="3")]
985 Error(super::RpcError),
986 #[prost(bytes, tag="4")]
988 CompressedPayload(::prost::alloc::vec::Vec<u8>),
989 }
990}
991#[allow(clippy::derive_partial_eq_without_eq)]
992#[derive(Clone, PartialEq, ::prost::Message)]
993pub struct RpcError {
994 #[prost(uint32, tag="1")]
995 pub code: u32,
996 #[prost(string, tag="2")]
997 pub message: ::prost::alloc::string::String,
998 #[prost(string, tag="3")]
999 pub data: ::prost::alloc::string::String,
1000}
1001#[allow(clippy::derive_partial_eq_without_eq)]
1002#[derive(Clone, PartialEq, ::prost::Message)]
1003pub struct ParticipantTracks {
1004 #[prost(string, tag="1")]
1006 pub participant_sid: ::prost::alloc::string::String,
1007 #[prost(string, repeated, tag="2")]
1008 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1009}
1010#[allow(clippy::derive_partial_eq_without_eq)]
1012#[derive(Clone, PartialEq, ::prost::Message)]
1013pub struct ServerInfo {
1014 #[prost(enumeration="server_info::Edition", tag="1")]
1015 pub edition: i32,
1016 #[prost(string, tag="2")]
1017 pub version: ::prost::alloc::string::String,
1018 #[prost(int32, tag="3")]
1019 pub protocol: i32,
1020 #[prost(string, tag="4")]
1021 pub region: ::prost::alloc::string::String,
1022 #[prost(string, tag="5")]
1023 pub node_id: ::prost::alloc::string::String,
1024 #[prost(string, tag="6")]
1026 pub debug_info: ::prost::alloc::string::String,
1027 #[prost(int32, tag="7")]
1028 pub agent_protocol: i32,
1029}
1030pub mod server_info {
1032 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1033 #[repr(i32)]
1034 pub enum Edition {
1035 Standard = 0,
1036 Cloud = 1,
1037 }
1038 impl Edition {
1039 pub fn as_str_name(&self) -> &'static str {
1044 match self {
1045 Edition::Standard => "Standard",
1046 Edition::Cloud => "Cloud",
1047 }
1048 }
1049 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1051 match value {
1052 "Standard" => Some(Self::Standard),
1053 "Cloud" => Some(Self::Cloud),
1054 _ => None,
1055 }
1056 }
1057 }
1058}
1059#[allow(clippy::derive_partial_eq_without_eq)]
1061#[derive(Clone, PartialEq, ::prost::Message)]
1062pub struct ClientInfo {
1063 #[prost(enumeration="client_info::Sdk", tag="1")]
1064 pub sdk: i32,
1065 #[prost(string, tag="2")]
1066 pub version: ::prost::alloc::string::String,
1067 #[prost(int32, tag="3")]
1068 pub protocol: i32,
1069 #[prost(string, tag="4")]
1070 pub os: ::prost::alloc::string::String,
1071 #[prost(string, tag="5")]
1072 pub os_version: ::prost::alloc::string::String,
1073 #[prost(string, tag="6")]
1074 pub device_model: ::prost::alloc::string::String,
1075 #[prost(string, tag="7")]
1076 pub browser: ::prost::alloc::string::String,
1077 #[prost(string, tag="8")]
1078 pub browser_version: ::prost::alloc::string::String,
1079 #[prost(string, tag="9")]
1080 pub address: ::prost::alloc::string::String,
1081 #[prost(string, tag="10")]
1083 pub network: ::prost::alloc::string::String,
1084 #[prost(string, tag="11")]
1087 pub other_sdks: ::prost::alloc::string::String,
1088 #[prost(int32, tag="12")]
1090 pub client_protocol: i32,
1091 #[prost(enumeration="client_info::Capability", repeated, tag="13")]
1094 pub capabilities: ::prost::alloc::vec::Vec<i32>,
1095}
1096pub mod client_info {
1098 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1099 #[repr(i32)]
1100 pub enum Sdk {
1101 Unknown = 0,
1102 Js = 1,
1103 Swift = 2,
1104 Android = 3,
1105 Flutter = 4,
1106 Go = 5,
1107 Unity = 6,
1108 ReactNative = 7,
1109 Rust = 8,
1110 Python = 9,
1111 Cpp = 10,
1112 UnityWeb = 11,
1113 Node = 12,
1114 Unreal = 13,
1115 Esp32 = 14,
1116 }
1117 impl Sdk {
1118 pub fn as_str_name(&self) -> &'static str {
1123 match self {
1124 Sdk::Unknown => "UNKNOWN",
1125 Sdk::Js => "JS",
1126 Sdk::Swift => "SWIFT",
1127 Sdk::Android => "ANDROID",
1128 Sdk::Flutter => "FLUTTER",
1129 Sdk::Go => "GO",
1130 Sdk::Unity => "UNITY",
1131 Sdk::ReactNative => "REACT_NATIVE",
1132 Sdk::Rust => "RUST",
1133 Sdk::Python => "PYTHON",
1134 Sdk::Cpp => "CPP",
1135 Sdk::UnityWeb => "UNITY_WEB",
1136 Sdk::Node => "NODE",
1137 Sdk::Unreal => "UNREAL",
1138 Sdk::Esp32 => "ESP32",
1139 }
1140 }
1141 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1143 match value {
1144 "UNKNOWN" => Some(Self::Unknown),
1145 "JS" => Some(Self::Js),
1146 "SWIFT" => Some(Self::Swift),
1147 "ANDROID" => Some(Self::Android),
1148 "FLUTTER" => Some(Self::Flutter),
1149 "GO" => Some(Self::Go),
1150 "UNITY" => Some(Self::Unity),
1151 "REACT_NATIVE" => Some(Self::ReactNative),
1152 "RUST" => Some(Self::Rust),
1153 "PYTHON" => Some(Self::Python),
1154 "CPP" => Some(Self::Cpp),
1155 "UNITY_WEB" => Some(Self::UnityWeb),
1156 "NODE" => Some(Self::Node),
1157 "UNREAL" => Some(Self::Unreal),
1158 "ESP32" => Some(Self::Esp32),
1159 _ => None,
1160 }
1161 }
1162 }
1163 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1168 #[repr(i32)]
1169 pub enum Capability {
1170 CapUnused = 0,
1171 CapPacketTrailer = 1,
1172 CapCompressionDeflateRaw = 2,
1173 }
1174 impl Capability {
1175 pub fn as_str_name(&self) -> &'static str {
1180 match self {
1181 Capability::CapUnused => "CAP_UNUSED",
1182 Capability::CapPacketTrailer => "CAP_PACKET_TRAILER",
1183 Capability::CapCompressionDeflateRaw => "CAP_COMPRESSION_DEFLATE_RAW",
1184 }
1185 }
1186 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1188 match value {
1189 "CAP_UNUSED" => Some(Self::CapUnused),
1190 "CAP_PACKET_TRAILER" => Some(Self::CapPacketTrailer),
1191 "CAP_COMPRESSION_DEFLATE_RAW" => Some(Self::CapCompressionDeflateRaw),
1192 _ => None,
1193 }
1194 }
1195 }
1196}
1197#[allow(clippy::derive_partial_eq_without_eq)]
1199#[derive(Clone, PartialEq, ::prost::Message)]
1200pub struct ClientConfiguration {
1201 #[prost(message, optional, tag="1")]
1202 pub video: ::core::option::Option<VideoConfiguration>,
1203 #[prost(message, optional, tag="2")]
1204 pub screen: ::core::option::Option<VideoConfiguration>,
1205 #[prost(enumeration="ClientConfigSetting", tag="3")]
1206 pub resume_connection: i32,
1207 #[prost(message, optional, tag="4")]
1208 pub disabled_codecs: ::core::option::Option<DisabledCodecs>,
1209 #[prost(enumeration="ClientConfigSetting", tag="5")]
1210 pub force_relay: i32,
1211}
1212#[allow(clippy::derive_partial_eq_without_eq)]
1213#[derive(Clone, PartialEq, ::prost::Message)]
1214pub struct VideoConfiguration {
1215 #[prost(enumeration="ClientConfigSetting", tag="1")]
1216 pub hardware_encoder: i32,
1217}
1218#[allow(clippy::derive_partial_eq_without_eq)]
1219#[derive(Clone, PartialEq, ::prost::Message)]
1220pub struct DisabledCodecs {
1221 #[prost(message, repeated, tag="1")]
1223 pub codecs: ::prost::alloc::vec::Vec<Codec>,
1224 #[prost(message, repeated, tag="2")]
1226 pub publish: ::prost::alloc::vec::Vec<Codec>,
1227}
1228#[allow(clippy::derive_partial_eq_without_eq)]
1229#[derive(Clone, PartialEq, ::prost::Message)]
1230pub struct RtpDrift {
1231 #[prost(message, optional, tag="1")]
1232 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1233 #[prost(message, optional, tag="2")]
1234 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1235 #[prost(double, tag="3")]
1236 pub duration: f64,
1237 #[prost(uint64, tag="4")]
1238 pub start_timestamp: u64,
1239 #[prost(uint64, tag="5")]
1240 pub end_timestamp: u64,
1241 #[prost(uint64, tag="6")]
1242 pub rtp_clock_ticks: u64,
1243 #[prost(int64, tag="7")]
1244 pub drift_samples: i64,
1245 #[prost(double, tag="8")]
1246 pub drift_ms: f64,
1247 #[prost(double, tag="9")]
1248 pub clock_rate: f64,
1249}
1250#[allow(clippy::derive_partial_eq_without_eq)]
1251#[derive(Clone, PartialEq, ::prost::Message)]
1252pub struct RtpStats {
1253 #[prost(message, optional, tag="1")]
1254 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1255 #[prost(message, optional, tag="2")]
1256 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1257 #[prost(double, tag="3")]
1258 pub duration: f64,
1259 #[prost(uint32, tag="4")]
1260 pub packets: u32,
1261 #[prost(double, tag="5")]
1262 pub packet_rate: f64,
1263 #[prost(uint64, tag="6")]
1264 pub bytes: u64,
1265 #[prost(uint64, tag="39")]
1266 pub header_bytes: u64,
1267 #[prost(double, tag="7")]
1268 pub bitrate: f64,
1269 #[prost(uint32, tag="8")]
1270 pub packets_lost: u32,
1271 #[prost(double, tag="9")]
1272 pub packet_loss_rate: f64,
1273 #[prost(float, tag="10")]
1274 pub packet_loss_percentage: f32,
1275 #[prost(uint32, tag="11")]
1276 pub packets_duplicate: u32,
1277 #[prost(double, tag="12")]
1278 pub packet_duplicate_rate: f64,
1279 #[prost(uint64, tag="13")]
1280 pub bytes_duplicate: u64,
1281 #[prost(uint64, tag="40")]
1282 pub header_bytes_duplicate: u64,
1283 #[prost(double, tag="14")]
1284 pub bitrate_duplicate: f64,
1285 #[prost(uint32, tag="15")]
1286 pub packets_padding: u32,
1287 #[prost(double, tag="16")]
1288 pub packet_padding_rate: f64,
1289 #[prost(uint64, tag="17")]
1290 pub bytes_padding: u64,
1291 #[prost(uint64, tag="41")]
1292 pub header_bytes_padding: u64,
1293 #[prost(double, tag="18")]
1294 pub bitrate_padding: f64,
1295 #[prost(uint32, tag="19")]
1296 pub packets_out_of_order: u32,
1297 #[prost(uint32, tag="20")]
1298 pub frames: u32,
1299 #[prost(double, tag="21")]
1300 pub frame_rate: f64,
1301 #[prost(double, tag="22")]
1302 pub jitter_current: f64,
1303 #[prost(double, tag="23")]
1304 pub jitter_max: f64,
1305 #[prost(map="int32, uint32", tag="24")]
1306 pub gap_histogram: ::std::collections::HashMap<i32, u32>,
1307 #[prost(uint32, tag="25")]
1308 pub nacks: u32,
1309 #[prost(uint32, tag="37")]
1310 pub nack_acks: u32,
1311 #[prost(uint32, tag="26")]
1312 pub nack_misses: u32,
1313 #[prost(uint32, tag="38")]
1314 pub nack_repeated: u32,
1315 #[prost(uint32, tag="27")]
1316 pub plis: u32,
1317 #[prost(message, optional, tag="28")]
1318 pub last_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1319 #[prost(uint32, tag="29")]
1320 pub firs: u32,
1321 #[prost(message, optional, tag="30")]
1322 pub last_fir: ::core::option::Option<::pbjson_types::Timestamp>,
1323 #[prost(uint32, tag="31")]
1324 pub rtt_current: u32,
1325 #[prost(uint32, tag="32")]
1326 pub rtt_max: u32,
1327 #[prost(uint32, tag="33")]
1328 pub key_frames: u32,
1329 #[prost(message, optional, tag="34")]
1330 pub last_key_frame: ::core::option::Option<::pbjson_types::Timestamp>,
1331 #[prost(uint32, tag="35")]
1332 pub layer_lock_plis: u32,
1333 #[prost(message, optional, tag="36")]
1334 pub last_layer_lock_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1335 #[prost(message, optional, tag="44")]
1336 pub packet_drift: ::core::option::Option<RtpDrift>,
1337 #[prost(message, optional, tag="45")]
1338 pub ntp_report_drift: ::core::option::Option<RtpDrift>,
1339 #[prost(message, optional, tag="46")]
1340 pub rebased_report_drift: ::core::option::Option<RtpDrift>,
1341 #[prost(message, optional, tag="47")]
1343 pub received_report_drift: ::core::option::Option<RtpDrift>,
1344}
1345#[allow(clippy::derive_partial_eq_without_eq)]
1346#[derive(Clone, PartialEq, ::prost::Message)]
1347pub struct RtcpSenderReportState {
1348 #[prost(uint32, tag="1")]
1349 pub rtp_timestamp: u32,
1350 #[prost(uint64, tag="2")]
1351 pub rtp_timestamp_ext: u64,
1352 #[prost(uint64, tag="3")]
1353 pub ntp_timestamp: u64,
1354 #[prost(int64, tag="4")]
1356 pub at: i64,
1357 #[prost(int64, tag="5")]
1358 pub at_adjusted: i64,
1359 #[prost(uint32, tag="6")]
1360 pub packets: u32,
1361 #[prost(uint64, tag="7")]
1362 pub octets: u64,
1363}
1364#[allow(clippy::derive_partial_eq_without_eq)]
1365#[derive(Clone, PartialEq, ::prost::Message)]
1366pub struct RtpForwarderState {
1367 #[prost(bool, tag="1")]
1368 pub started: bool,
1369 #[prost(int32, tag="2")]
1370 pub reference_layer_spatial: i32,
1371 #[prost(int64, tag="3")]
1372 pub pre_start_time: i64,
1373 #[prost(uint64, tag="4")]
1374 pub ext_first_timestamp: u64,
1375 #[prost(uint64, tag="5")]
1376 pub dummy_start_timestamp_offset: u64,
1377 #[prost(message, optional, tag="6")]
1378 pub rtp_munger: ::core::option::Option<RtpMungerState>,
1379 #[prost(message, repeated, tag="8")]
1380 pub sender_report_state: ::prost::alloc::vec::Vec<RtcpSenderReportState>,
1381 #[prost(oneof="rtp_forwarder_state::CodecMunger", tags="7")]
1382 pub codec_munger: ::core::option::Option<rtp_forwarder_state::CodecMunger>,
1383}
1384pub mod rtp_forwarder_state {
1386 #[allow(clippy::derive_partial_eq_without_eq)]
1387#[derive(Clone, PartialEq, ::prost::Oneof)]
1388 pub enum CodecMunger {
1389 #[prost(message, tag="7")]
1390 Vp8Munger(super::Vp8MungerState),
1391 }
1392}
1393#[allow(clippy::derive_partial_eq_without_eq)]
1394#[derive(Clone, PartialEq, ::prost::Message)]
1395pub struct RtpMungerState {
1396 #[prost(uint64, tag="1")]
1397 pub ext_last_sequence_number: u64,
1398 #[prost(uint64, tag="2")]
1399 pub ext_second_last_sequence_number: u64,
1400 #[prost(uint64, tag="3")]
1401 pub ext_last_timestamp: u64,
1402 #[prost(uint64, tag="4")]
1403 pub ext_second_last_timestamp: u64,
1404 #[prost(bool, tag="5")]
1405 pub last_marker: bool,
1406 #[prost(bool, tag="6")]
1407 pub second_last_marker: bool,
1408}
1409#[allow(clippy::derive_partial_eq_without_eq)]
1410#[derive(Clone, PartialEq, ::prost::Message)]
1411pub struct Vp8MungerState {
1412 #[prost(int32, tag="1")]
1413 pub ext_last_picture_id: i32,
1414 #[prost(bool, tag="2")]
1415 pub picture_id_used: bool,
1416 #[prost(uint32, tag="3")]
1417 pub last_tl0_pic_idx: u32,
1418 #[prost(bool, tag="4")]
1419 pub tl0_pic_idx_used: bool,
1420 #[prost(bool, tag="5")]
1421 pub tid_used: bool,
1422 #[prost(uint32, tag="6")]
1423 pub last_key_idx: u32,
1424 #[prost(bool, tag="7")]
1425 pub key_idx_used: bool,
1426}
1427#[allow(clippy::derive_partial_eq_without_eq)]
1428#[derive(Clone, PartialEq, ::prost::Message)]
1429pub struct TimedVersion {
1430 #[prost(int64, tag="1")]
1431 pub unix_micro: i64,
1432 #[prost(int32, tag="2")]
1433 pub ticks: i32,
1434}
1435#[allow(clippy::derive_partial_eq_without_eq)]
1436#[derive(Clone, PartialEq, ::prost::Message)]
1437pub struct DataStream {
1438}
1439pub mod data_stream {
1441 #[allow(clippy::derive_partial_eq_without_eq)]
1443#[derive(Clone, PartialEq, ::prost::Message)]
1444 pub struct TextHeader {
1445 #[prost(enumeration="OperationType", tag="1")]
1446 pub operation_type: i32,
1447 #[prost(int32, tag="2")]
1449 pub version: i32,
1450 #[prost(string, tag="3")]
1452 pub reply_to_stream_id: ::prost::alloc::string::String,
1453 #[prost(string, repeated, tag="4")]
1455 pub attached_stream_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1456 #[prost(bool, tag="5")]
1458 pub generated: bool,
1459 }
1460 #[allow(clippy::derive_partial_eq_without_eq)]
1462#[derive(Clone, PartialEq, ::prost::Message)]
1463 pub struct ByteHeader {
1464 #[prost(string, tag="1")]
1465 pub name: ::prost::alloc::string::String,
1466 }
1467 #[allow(clippy::derive_partial_eq_without_eq)]
1469#[derive(Clone, PartialEq, ::prost::Message)]
1470 pub struct Header {
1471 #[prost(string, tag="1")]
1473 pub stream_id: ::prost::alloc::string::String,
1474 #[prost(int64, tag="2")]
1476 pub timestamp: i64,
1477 #[prost(string, tag="3")]
1478 pub topic: ::prost::alloc::string::String,
1479 #[prost(string, tag="4")]
1480 pub mime_type: ::prost::alloc::string::String,
1481 #[prost(uint64, optional, tag="5")]
1483 pub total_length: ::core::option::Option<u64>,
1484 #[deprecated]
1486 #[prost(enumeration="super::encryption::Type", tag="7")]
1487 pub encryption_type: i32,
1488 #[prost(map="string, string", tag="8")]
1490 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1491 #[prost(bytes="vec", optional, tag="11")]
1495 pub inline_content: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1496 #[prost(enumeration="CompressionType", tag="12")]
1497 pub compression: i32,
1498 #[prost(oneof="header::ContentHeader", tags="9, 10")]
1500 pub content_header: ::core::option::Option<header::ContentHeader>,
1501 }
1502 pub mod header {
1504 #[allow(clippy::derive_partial_eq_without_eq)]
1506#[derive(Clone, PartialEq, ::prost::Oneof)]
1507 pub enum ContentHeader {
1508 #[prost(message, tag="9")]
1509 TextHeader(super::TextHeader),
1510 #[prost(message, tag="10")]
1511 ByteHeader(super::ByteHeader),
1512 }
1513 }
1514 #[allow(clippy::derive_partial_eq_without_eq)]
1515#[derive(Clone, PartialEq, ::prost::Message)]
1516 pub struct Chunk {
1517 #[prost(string, tag="1")]
1519 pub stream_id: ::prost::alloc::string::String,
1520 #[prost(uint64, tag="2")]
1521 pub chunk_index: u64,
1522 #[prost(bytes="vec", tag="3")]
1524 pub content: ::prost::alloc::vec::Vec<u8>,
1525 #[prost(int32, tag="4")]
1527 pub version: i32,
1528 #[deprecated]
1530 #[prost(bytes="vec", optional, tag="5")]
1531 pub iv: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1532 }
1533 #[allow(clippy::derive_partial_eq_without_eq)]
1534#[derive(Clone, PartialEq, ::prost::Message)]
1535 pub struct Trailer {
1536 #[prost(string, tag="1")]
1538 pub stream_id: ::prost::alloc::string::String,
1539 #[prost(string, tag="2")]
1541 pub reason: ::prost::alloc::string::String,
1542 #[prost(map="string, string", tag="3")]
1544 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1545 }
1546 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1548 #[repr(i32)]
1549 pub enum OperationType {
1550 Create = 0,
1551 Update = 1,
1552 Delete = 2,
1553 Reaction = 3,
1554 }
1555 impl OperationType {
1556 pub fn as_str_name(&self) -> &'static str {
1561 match self {
1562 OperationType::Create => "CREATE",
1563 OperationType::Update => "UPDATE",
1564 OperationType::Delete => "DELETE",
1565 OperationType::Reaction => "REACTION",
1566 }
1567 }
1568 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1570 match value {
1571 "CREATE" => Some(Self::Create),
1572 "UPDATE" => Some(Self::Update),
1573 "DELETE" => Some(Self::Delete),
1574 "REACTION" => Some(Self::Reaction),
1575 _ => None,
1576 }
1577 }
1578 }
1579 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1584 #[repr(i32)]
1585 pub enum CompressionType {
1586 None = 0,
1587 DeflateRaw = 1,
1589 }
1590 impl CompressionType {
1591 pub fn as_str_name(&self) -> &'static str {
1596 match self {
1597 CompressionType::None => "NONE",
1598 CompressionType::DeflateRaw => "DEFLATE_RAW",
1599 }
1600 }
1601 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1603 match value {
1604 "NONE" => Some(Self::None),
1605 "DEFLATE_RAW" => Some(Self::DeflateRaw),
1606 _ => None,
1607 }
1608 }
1609 }
1610}
1611#[allow(clippy::derive_partial_eq_without_eq)]
1612#[derive(Clone, PartialEq, ::prost::Message)]
1613pub struct FilterParams {
1614 #[prost(string, repeated, tag="1")]
1615 pub include_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1616 #[prost(string, repeated, tag="2")]
1617 pub exclude_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1618}
1619#[allow(clippy::derive_partial_eq_without_eq)]
1620#[derive(Clone, PartialEq, ::prost::Message)]
1621pub struct WebhookConfig {
1622 #[prost(string, tag="1")]
1623 pub url: ::prost::alloc::string::String,
1624 #[prost(string, tag="2")]
1625 pub signing_key: ::prost::alloc::string::String,
1626 #[prost(message, optional, tag="3")]
1627 pub filter_params: ::core::option::Option<FilterParams>,
1628}
1629#[allow(clippy::derive_partial_eq_without_eq)]
1630#[derive(Clone, PartialEq, ::prost::Message)]
1631pub struct SubscribedAudioCodec {
1632 #[prost(string, tag="1")]
1633 pub codec: ::prost::alloc::string::String,
1634 #[prost(bool, tag="2")]
1635 pub enabled: bool,
1636}
1637#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1638#[repr(i32)]
1639pub enum AudioCodec {
1640 DefaultAc = 0,
1641 Opus = 1,
1642 Aac = 2,
1643 AcMp3 = 3,
1644}
1645impl AudioCodec {
1646 pub fn as_str_name(&self) -> &'static str {
1651 match self {
1652 AudioCodec::DefaultAc => "DEFAULT_AC",
1653 AudioCodec::Opus => "OPUS",
1654 AudioCodec::Aac => "AAC",
1655 AudioCodec::AcMp3 => "AC_MP3",
1656 }
1657 }
1658 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1660 match value {
1661 "DEFAULT_AC" => Some(Self::DefaultAc),
1662 "OPUS" => Some(Self::Opus),
1663 "AAC" => Some(Self::Aac),
1664 "AC_MP3" => Some(Self::AcMp3),
1665 _ => None,
1666 }
1667 }
1668}
1669#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1670#[repr(i32)]
1671pub enum VideoCodec {
1672 DefaultVc = 0,
1673 H264Baseline = 1,
1674 H264Main = 2,
1675 H264High = 3,
1676 Vp8 = 4,
1677}
1678impl VideoCodec {
1679 pub fn as_str_name(&self) -> &'static str {
1684 match self {
1685 VideoCodec::DefaultVc => "DEFAULT_VC",
1686 VideoCodec::H264Baseline => "H264_BASELINE",
1687 VideoCodec::H264Main => "H264_MAIN",
1688 VideoCodec::H264High => "H264_HIGH",
1689 VideoCodec::Vp8 => "VP8",
1690 }
1691 }
1692 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1694 match value {
1695 "DEFAULT_VC" => Some(Self::DefaultVc),
1696 "H264_BASELINE" => Some(Self::H264Baseline),
1697 "H264_MAIN" => Some(Self::H264Main),
1698 "H264_HIGH" => Some(Self::H264High),
1699 "VP8" => Some(Self::Vp8),
1700 _ => None,
1701 }
1702 }
1703}
1704#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1705#[repr(i32)]
1706pub enum ImageCodec {
1707 IcDefault = 0,
1708 IcJpeg = 1,
1709}
1710impl ImageCodec {
1711 pub fn as_str_name(&self) -> &'static str {
1716 match self {
1717 ImageCodec::IcDefault => "IC_DEFAULT",
1718 ImageCodec::IcJpeg => "IC_JPEG",
1719 }
1720 }
1721 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1723 match value {
1724 "IC_DEFAULT" => Some(Self::IcDefault),
1725 "IC_JPEG" => Some(Self::IcJpeg),
1726 _ => None,
1727 }
1728 }
1729}
1730#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1732#[repr(i32)]
1733pub enum BackupCodecPolicy {
1734 PreferRegression = 0,
1737 Simulcast = 1,
1739 Regression = 2,
1741}
1742impl BackupCodecPolicy {
1743 pub fn as_str_name(&self) -> &'static str {
1748 match self {
1749 BackupCodecPolicy::PreferRegression => "PREFER_REGRESSION",
1750 BackupCodecPolicy::Simulcast => "SIMULCAST",
1751 BackupCodecPolicy::Regression => "REGRESSION",
1752 }
1753 }
1754 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1756 match value {
1757 "PREFER_REGRESSION" => Some(Self::PreferRegression),
1758 "SIMULCAST" => Some(Self::Simulcast),
1759 "REGRESSION" => Some(Self::Regression),
1760 _ => None,
1761 }
1762 }
1763}
1764#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1765#[repr(i32)]
1766pub enum TrackType {
1767 Audio = 0,
1768 Video = 1,
1769 Data = 2,
1770}
1771impl TrackType {
1772 pub fn as_str_name(&self) -> &'static str {
1777 match self {
1778 TrackType::Audio => "AUDIO",
1779 TrackType::Video => "VIDEO",
1780 TrackType::Data => "DATA",
1781 }
1782 }
1783 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1785 match value {
1786 "AUDIO" => Some(Self::Audio),
1787 "VIDEO" => Some(Self::Video),
1788 "DATA" => Some(Self::Data),
1789 _ => None,
1790 }
1791 }
1792}
1793#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1794#[repr(i32)]
1795pub enum TrackSource {
1796 Unknown = 0,
1797 Camera = 1,
1798 Microphone = 2,
1799 ScreenShare = 3,
1800 ScreenShareAudio = 4,
1801}
1802impl TrackSource {
1803 pub fn as_str_name(&self) -> &'static str {
1808 match self {
1809 TrackSource::Unknown => "UNKNOWN",
1810 TrackSource::Camera => "CAMERA",
1811 TrackSource::Microphone => "MICROPHONE",
1812 TrackSource::ScreenShare => "SCREEN_SHARE",
1813 TrackSource::ScreenShareAudio => "SCREEN_SHARE_AUDIO",
1814 }
1815 }
1816 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1818 match value {
1819 "UNKNOWN" => Some(Self::Unknown),
1820 "CAMERA" => Some(Self::Camera),
1821 "MICROPHONE" => Some(Self::Microphone),
1822 "SCREEN_SHARE" => Some(Self::ScreenShare),
1823 "SCREEN_SHARE_AUDIO" => Some(Self::ScreenShareAudio),
1824 _ => None,
1825 }
1826 }
1827}
1828#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1829#[repr(i32)]
1830pub enum DataTrackExtensionId {
1831 DteiInvalid = 0,
1832 DteiParticipantSid = 1,
1833}
1834impl DataTrackExtensionId {
1835 pub fn as_str_name(&self) -> &'static str {
1840 match self {
1841 DataTrackExtensionId::DteiInvalid => "DTEI_INVALID",
1842 DataTrackExtensionId::DteiParticipantSid => "DTEI_PARTICIPANT_SID",
1843 }
1844 }
1845 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1847 match value {
1848 "DTEI_INVALID" => Some(Self::DteiInvalid),
1849 "DTEI_PARTICIPANT_SID" => Some(Self::DteiParticipantSid),
1850 _ => None,
1851 }
1852 }
1853}
1854#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1855#[repr(i32)]
1856pub enum VideoQuality {
1857 Low = 0,
1858 Medium = 1,
1859 High = 2,
1860 Off = 3,
1861}
1862impl VideoQuality {
1863 pub fn as_str_name(&self) -> &'static str {
1868 match self {
1869 VideoQuality::Low => "LOW",
1870 VideoQuality::Medium => "MEDIUM",
1871 VideoQuality::High => "HIGH",
1872 VideoQuality::Off => "OFF",
1873 }
1874 }
1875 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1877 match value {
1878 "LOW" => Some(Self::Low),
1879 "MEDIUM" => Some(Self::Medium),
1880 "HIGH" => Some(Self::High),
1881 "OFF" => Some(Self::Off),
1882 _ => None,
1883 }
1884 }
1885}
1886#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1887#[repr(i32)]
1888pub enum ConnectionQuality {
1889 Poor = 0,
1890 Good = 1,
1891 Excellent = 2,
1892 Lost = 3,
1893}
1894impl ConnectionQuality {
1895 pub fn as_str_name(&self) -> &'static str {
1900 match self {
1901 ConnectionQuality::Poor => "POOR",
1902 ConnectionQuality::Good => "GOOD",
1903 ConnectionQuality::Excellent => "EXCELLENT",
1904 ConnectionQuality::Lost => "LOST",
1905 }
1906 }
1907 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1909 match value {
1910 "POOR" => Some(Self::Poor),
1911 "GOOD" => Some(Self::Good),
1912 "EXCELLENT" => Some(Self::Excellent),
1913 "LOST" => Some(Self::Lost),
1914 _ => None,
1915 }
1916 }
1917}
1918#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1919#[repr(i32)]
1920pub enum ClientConfigSetting {
1921 Unset = 0,
1922 Disabled = 1,
1923 Enabled = 2,
1924}
1925impl ClientConfigSetting {
1926 pub fn as_str_name(&self) -> &'static str {
1931 match self {
1932 ClientConfigSetting::Unset => "UNSET",
1933 ClientConfigSetting::Disabled => "DISABLED",
1934 ClientConfigSetting::Enabled => "ENABLED",
1935 }
1936 }
1937 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1939 match value {
1940 "UNSET" => Some(Self::Unset),
1941 "DISABLED" => Some(Self::Disabled),
1942 "ENABLED" => Some(Self::Enabled),
1943 _ => None,
1944 }
1945 }
1946}
1947#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1948#[repr(i32)]
1949pub enum DisconnectReason {
1950 UnknownReason = 0,
1951 ClientInitiated = 1,
1953 DuplicateIdentity = 2,
1955 ServerShutdown = 3,
1957 ParticipantRemoved = 4,
1959 RoomDeleted = 5,
1961 StateMismatch = 6,
1963 JoinFailure = 7,
1965 Migration = 8,
1967 SignalClose = 9,
1969 RoomClosed = 10,
1971 UserUnavailable = 11,
1973 UserRejected = 12,
1975 SipTrunkFailure = 13,
1977 ConnectionTimeout = 14,
1979 MediaFailure = 15,
1981 AgentError = 16,
1983}
1984impl DisconnectReason {
1985 pub fn as_str_name(&self) -> &'static str {
1990 match self {
1991 DisconnectReason::UnknownReason => "UNKNOWN_REASON",
1992 DisconnectReason::ClientInitiated => "CLIENT_INITIATED",
1993 DisconnectReason::DuplicateIdentity => "DUPLICATE_IDENTITY",
1994 DisconnectReason::ServerShutdown => "SERVER_SHUTDOWN",
1995 DisconnectReason::ParticipantRemoved => "PARTICIPANT_REMOVED",
1996 DisconnectReason::RoomDeleted => "ROOM_DELETED",
1997 DisconnectReason::StateMismatch => "STATE_MISMATCH",
1998 DisconnectReason::JoinFailure => "JOIN_FAILURE",
1999 DisconnectReason::Migration => "MIGRATION",
2000 DisconnectReason::SignalClose => "SIGNAL_CLOSE",
2001 DisconnectReason::RoomClosed => "ROOM_CLOSED",
2002 DisconnectReason::UserUnavailable => "USER_UNAVAILABLE",
2003 DisconnectReason::UserRejected => "USER_REJECTED",
2004 DisconnectReason::SipTrunkFailure => "SIP_TRUNK_FAILURE",
2005 DisconnectReason::ConnectionTimeout => "CONNECTION_TIMEOUT",
2006 DisconnectReason::MediaFailure => "MEDIA_FAILURE",
2007 DisconnectReason::AgentError => "AGENT_ERROR",
2008 }
2009 }
2010 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2012 match value {
2013 "UNKNOWN_REASON" => Some(Self::UnknownReason),
2014 "CLIENT_INITIATED" => Some(Self::ClientInitiated),
2015 "DUPLICATE_IDENTITY" => Some(Self::DuplicateIdentity),
2016 "SERVER_SHUTDOWN" => Some(Self::ServerShutdown),
2017 "PARTICIPANT_REMOVED" => Some(Self::ParticipantRemoved),
2018 "ROOM_DELETED" => Some(Self::RoomDeleted),
2019 "STATE_MISMATCH" => Some(Self::StateMismatch),
2020 "JOIN_FAILURE" => Some(Self::JoinFailure),
2021 "MIGRATION" => Some(Self::Migration),
2022 "SIGNAL_CLOSE" => Some(Self::SignalClose),
2023 "ROOM_CLOSED" => Some(Self::RoomClosed),
2024 "USER_UNAVAILABLE" => Some(Self::UserUnavailable),
2025 "USER_REJECTED" => Some(Self::UserRejected),
2026 "SIP_TRUNK_FAILURE" => Some(Self::SipTrunkFailure),
2027 "CONNECTION_TIMEOUT" => Some(Self::ConnectionTimeout),
2028 "MEDIA_FAILURE" => Some(Self::MediaFailure),
2029 "AGENT_ERROR" => Some(Self::AgentError),
2030 _ => None,
2031 }
2032 }
2033}
2034#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2035#[repr(i32)]
2036pub enum ReconnectReason {
2037 RrUnknown = 0,
2038 RrSignalDisconnected = 1,
2039 RrPublisherFailed = 2,
2040 RrSubscriberFailed = 3,
2041 RrSwitchCandidate = 4,
2042}
2043impl ReconnectReason {
2044 pub fn as_str_name(&self) -> &'static str {
2049 match self {
2050 ReconnectReason::RrUnknown => "RR_UNKNOWN",
2051 ReconnectReason::RrSignalDisconnected => "RR_SIGNAL_DISCONNECTED",
2052 ReconnectReason::RrPublisherFailed => "RR_PUBLISHER_FAILED",
2053 ReconnectReason::RrSubscriberFailed => "RR_SUBSCRIBER_FAILED",
2054 ReconnectReason::RrSwitchCandidate => "RR_SWITCH_CANDIDATE",
2055 }
2056 }
2057 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2059 match value {
2060 "RR_UNKNOWN" => Some(Self::RrUnknown),
2061 "RR_SIGNAL_DISCONNECTED" => Some(Self::RrSignalDisconnected),
2062 "RR_PUBLISHER_FAILED" => Some(Self::RrPublisherFailed),
2063 "RR_SUBSCRIBER_FAILED" => Some(Self::RrSubscriberFailed),
2064 "RR_SWITCH_CANDIDATE" => Some(Self::RrSwitchCandidate),
2065 _ => None,
2066 }
2067 }
2068}
2069#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2070#[repr(i32)]
2071pub enum SubscriptionError {
2072 SeUnknown = 0,
2073 SeCodecUnsupported = 1,
2074 SeTrackNotfound = 2,
2075}
2076impl SubscriptionError {
2077 pub fn as_str_name(&self) -> &'static str {
2082 match self {
2083 SubscriptionError::SeUnknown => "SE_UNKNOWN",
2084 SubscriptionError::SeCodecUnsupported => "SE_CODEC_UNSUPPORTED",
2085 SubscriptionError::SeTrackNotfound => "SE_TRACK_NOTFOUND",
2086 }
2087 }
2088 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2090 match value {
2091 "SE_UNKNOWN" => Some(Self::SeUnknown),
2092 "SE_CODEC_UNSUPPORTED" => Some(Self::SeCodecUnsupported),
2093 "SE_TRACK_NOTFOUND" => Some(Self::SeTrackNotfound),
2094 _ => None,
2095 }
2096 }
2097}
2098#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2099#[repr(i32)]
2100pub enum AudioTrackFeature {
2101 TfStereo = 0,
2102 TfNoDtx = 1,
2103 TfAutoGainControl = 2,
2104 TfEchoCancellation = 3,
2105 TfNoiseSuppression = 4,
2106 TfEnhancedNoiseCancellation = 5,
2107 TfPreconnectBuffer = 6,
2109}
2110impl AudioTrackFeature {
2111 pub fn as_str_name(&self) -> &'static str {
2116 match self {
2117 AudioTrackFeature::TfStereo => "TF_STEREO",
2118 AudioTrackFeature::TfNoDtx => "TF_NO_DTX",
2119 AudioTrackFeature::TfAutoGainControl => "TF_AUTO_GAIN_CONTROL",
2120 AudioTrackFeature::TfEchoCancellation => "TF_ECHO_CANCELLATION",
2121 AudioTrackFeature::TfNoiseSuppression => "TF_NOISE_SUPPRESSION",
2122 AudioTrackFeature::TfEnhancedNoiseCancellation => "TF_ENHANCED_NOISE_CANCELLATION",
2123 AudioTrackFeature::TfPreconnectBuffer => "TF_PRECONNECT_BUFFER",
2124 }
2125 }
2126 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2128 match value {
2129 "TF_STEREO" => Some(Self::TfStereo),
2130 "TF_NO_DTX" => Some(Self::TfNoDtx),
2131 "TF_AUTO_GAIN_CONTROL" => Some(Self::TfAutoGainControl),
2132 "TF_ECHO_CANCELLATION" => Some(Self::TfEchoCancellation),
2133 "TF_NOISE_SUPPRESSION" => Some(Self::TfNoiseSuppression),
2134 "TF_ENHANCED_NOISE_CANCELLATION" => Some(Self::TfEnhancedNoiseCancellation),
2135 "TF_PRECONNECT_BUFFER" => Some(Self::TfPreconnectBuffer),
2136 _ => None,
2137 }
2138 }
2139}
2140#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2141#[repr(i32)]
2142pub enum PacketTrailerFeature {
2143 PtfUserTimestamp = 0,
2144 PtfFrameId = 1,
2145 PtfUserData = 2,
2146}
2147impl PacketTrailerFeature {
2148 pub fn as_str_name(&self) -> &'static str {
2153 match self {
2154 PacketTrailerFeature::PtfUserTimestamp => "PTF_USER_TIMESTAMP",
2155 PacketTrailerFeature::PtfFrameId => "PTF_FRAME_ID",
2156 PacketTrailerFeature::PtfUserData => "PTF_USER_DATA",
2157 }
2158 }
2159 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2161 match value {
2162 "PTF_USER_TIMESTAMP" => Some(Self::PtfUserTimestamp),
2163 "PTF_FRAME_ID" => Some(Self::PtfFrameId),
2164 "PTF_USER_DATA" => Some(Self::PtfUserData),
2165 _ => None,
2166 }
2167 }
2168}
2169#[allow(clippy::derive_partial_eq_without_eq)]
2172#[derive(Clone, PartialEq, ::prost::Message)]
2173pub struct StartEgressRequest {
2174 #[prost(string, tag="1")]
2175 pub room_name: ::prost::alloc::string::String,
2176 #[prost(message, repeated, tag="7")]
2178 pub outputs: ::prost::alloc::vec::Vec<Output>,
2179 #[prost(message, optional, tag="8")]
2181 pub storage: ::core::option::Option<StorageConfig>,
2182 #[prost(message, repeated, tag="9")]
2184 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2185 #[prost(oneof="start_egress_request::Source", tags="2, 3, 4")]
2186 pub source: ::core::option::Option<start_egress_request::Source>,
2187 #[prost(oneof="start_egress_request::Encoding", tags="5, 6")]
2189 pub encoding: ::core::option::Option<start_egress_request::Encoding>,
2190}
2191pub mod start_egress_request {
2193 #[allow(clippy::derive_partial_eq_without_eq)]
2194#[derive(Clone, PartialEq, ::prost::Oneof)]
2195 pub enum Source {
2196 #[prost(message, tag="2")]
2197 Template(super::TemplateSource),
2198 #[prost(message, tag="3")]
2199 Web(super::WebSource),
2200 #[prost(message, tag="4")]
2201 Media(super::MediaSource),
2202 }
2203 #[allow(clippy::derive_partial_eq_without_eq)]
2205#[derive(Clone, PartialEq, ::prost::Oneof)]
2206 pub enum Encoding {
2207 #[prost(enumeration="super::EncodingOptionsPreset", tag="5")]
2208 Preset(i32),
2209 #[prost(message, tag="6")]
2210 Advanced(super::EncodingOptions),
2211 }
2212}
2213#[allow(clippy::derive_partial_eq_without_eq)]
2218#[derive(Clone, PartialEq, ::prost::Message)]
2219pub struct TemplateSource {
2220 #[prost(string, tag="1")]
2221 pub layout: ::prost::alloc::string::String,
2222 #[prost(bool, tag="2")]
2223 pub audio_only: bool,
2224 #[prost(bool, tag="3")]
2225 pub video_only: bool,
2226 #[prost(string, tag="4")]
2227 pub custom_base_url: ::prost::alloc::string::String,
2228}
2229#[allow(clippy::derive_partial_eq_without_eq)]
2231#[derive(Clone, PartialEq, ::prost::Message)]
2232pub struct WebSource {
2233 #[prost(string, tag="1")]
2234 pub url: ::prost::alloc::string::String,
2235 #[prost(bool, tag="2")]
2236 pub audio_only: bool,
2237 #[prost(bool, tag="3")]
2238 pub video_only: bool,
2239 #[prost(bool, tag="4")]
2240 pub await_start_signal: bool,
2241}
2242#[allow(clippy::derive_partial_eq_without_eq)]
2245#[derive(Clone, PartialEq, ::prost::Message)]
2246pub struct MediaSource {
2247 #[prost(message, optional, tag="3")]
2249 pub audio: ::core::option::Option<AudioConfig>,
2250 #[prost(oneof="media_source::Video", tags="1, 2")]
2251 pub video: ::core::option::Option<media_source::Video>,
2252}
2253pub mod media_source {
2255 #[allow(clippy::derive_partial_eq_without_eq)]
2256#[derive(Clone, PartialEq, ::prost::Oneof)]
2257 pub enum Video {
2258 #[prost(string, tag="1")]
2259 VideoTrackId(::prost::alloc::string::String),
2260 #[prost(message, tag="2")]
2261 ParticipantVideo(super::ParticipantVideo),
2262 }
2263}
2264#[allow(clippy::derive_partial_eq_without_eq)]
2267#[derive(Clone, PartialEq, ::prost::Message)]
2268pub struct ParticipantVideo {
2269 #[prost(string, tag="1")]
2270 pub identity: ::prost::alloc::string::String,
2271 #[prost(bool, tag="2")]
2272 pub prefer_screen_share: bool,
2273}
2274#[allow(clippy::derive_partial_eq_without_eq)]
2279#[derive(Clone, PartialEq, ::prost::Message)]
2280pub struct AudioConfig {
2281 #[prost(bool, tag="1")]
2283 pub capture_all: bool,
2284 #[prost(message, repeated, tag="2")]
2285 pub routes: ::prost::alloc::vec::Vec<AudioRoute>,
2286}
2287#[allow(clippy::derive_partial_eq_without_eq)]
2288#[derive(Clone, PartialEq, ::prost::Message)]
2289pub struct AudioRoute {
2290 #[prost(enumeration="AudioChannel", tag="4")]
2291 pub channel: i32,
2292 #[prost(oneof="audio_route::Match", tags="1, 2, 3")]
2293 pub r#match: ::core::option::Option<audio_route::Match>,
2294}
2295pub mod audio_route {
2297 #[allow(clippy::derive_partial_eq_without_eq)]
2298#[derive(Clone, PartialEq, ::prost::Oneof)]
2299 pub enum Match {
2300 #[prost(string, tag="1")]
2301 TrackId(::prost::alloc::string::String),
2302 #[prost(string, tag="2")]
2303 ParticipantIdentity(::prost::alloc::string::String),
2304 #[prost(enumeration="super::participant_info::Kind", tag="3")]
2305 ParticipantKind(i32),
2306 }
2307}
2308#[allow(clippy::derive_partial_eq_without_eq)]
2311#[derive(Clone, PartialEq, ::prost::Message)]
2312pub struct DataConfig {
2313 #[prost(bool, tag="1")]
2314 pub capture_all: bool,
2315 #[prost(message, repeated, tag="2")]
2316 pub selectors: ::prost::alloc::vec::Vec<DataSelector>,
2317}
2318#[allow(clippy::derive_partial_eq_without_eq)]
2319#[derive(Clone, PartialEq, ::prost::Message)]
2320pub struct DataSelector {
2321 #[prost(oneof="data_selector::Match", tags="1, 2")]
2322 pub r#match: ::core::option::Option<data_selector::Match>,
2323}
2324pub mod data_selector {
2326 #[allow(clippy::derive_partial_eq_without_eq)]
2327#[derive(Clone, PartialEq, ::prost::Oneof)]
2328 pub enum Match {
2329 #[prost(string, tag="1")]
2330 TrackId(::prost::alloc::string::String),
2331 #[prost(string, tag="2")]
2332 ParticipantIdentity(::prost::alloc::string::String),
2333 }
2334}
2335#[allow(clippy::derive_partial_eq_without_eq)]
2336#[derive(Clone, PartialEq, ::prost::Message)]
2337pub struct EncodingOptions {
2338 #[prost(int32, tag="1")]
2340 pub width: i32,
2341 #[prost(int32, tag="2")]
2343 pub height: i32,
2344 #[prost(int32, tag="3")]
2346 pub depth: i32,
2347 #[prost(int32, tag="4")]
2349 pub framerate: i32,
2350 #[prost(enumeration="AudioCodec", tag="5")]
2352 pub audio_codec: i32,
2353 #[prost(int32, tag="6")]
2355 pub audio_bitrate: i32,
2356 #[prost(int32, tag="7")]
2358 pub audio_frequency: i32,
2359 #[prost(enumeration="VideoCodec", tag="8")]
2361 pub video_codec: i32,
2362 #[prost(int32, tag="9")]
2364 pub video_bitrate: i32,
2365 #[prost(double, tag="10")]
2367 pub key_frame_interval: f64,
2368 #[deprecated]
2372 #[prost(int32, tag="11")]
2373 pub audio_quality: i32,
2374 #[deprecated]
2376 #[prost(int32, tag="12")]
2377 pub video_quality: i32,
2378}
2379#[allow(clippy::derive_partial_eq_without_eq)]
2382#[derive(Clone, PartialEq, ::prost::Message)]
2383pub struct Output {
2384 #[prost(message, optional, tag="6")]
2386 pub storage: ::core::option::Option<StorageConfig>,
2387 #[prost(oneof="output::Config", tags="1, 2, 3, 4")]
2388 pub config: ::core::option::Option<output::Config>,
2389}
2390pub mod output {
2392 #[allow(clippy::derive_partial_eq_without_eq)]
2393#[derive(Clone, PartialEq, ::prost::Oneof)]
2394 pub enum Config {
2395 #[prost(message, tag="1")]
2396 File(super::FileOutput),
2397 #[prost(message, tag="2")]
2398 Stream(super::StreamOutput),
2399 #[prost(message, tag="3")]
2400 Segments(super::SegmentedFileOutput),
2401 #[prost(message, tag="4")]
2403 Images(super::ImageOutput),
2404 }
2405}
2406#[allow(clippy::derive_partial_eq_without_eq)]
2409#[derive(Clone, PartialEq, ::prost::Message)]
2410pub struct FileOutput {
2411 #[prost(enumeration="EncodedFileType", tag="1")]
2412 pub file_type: i32,
2413 #[prost(string, tag="2")]
2414 pub filepath: ::prost::alloc::string::String,
2415 #[prost(bool, tag="3")]
2416 pub disable_manifest: bool,
2417}
2418#[allow(clippy::derive_partial_eq_without_eq)]
2419#[derive(Clone, PartialEq, ::prost::Message)]
2420pub struct StreamOutput {
2421 #[prost(enumeration="StreamProtocol", tag="1")]
2423 pub protocol: i32,
2424 #[prost(string, repeated, tag="2")]
2426 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2427}
2428#[allow(clippy::derive_partial_eq_without_eq)]
2430#[derive(Clone, PartialEq, ::prost::Message)]
2431pub struct SegmentedFileOutput {
2432 #[prost(enumeration="SegmentedFileProtocol", tag="1")]
2434 pub protocol: i32,
2435 #[prost(string, tag="2")]
2437 pub filename_prefix: ::prost::alloc::string::String,
2438 #[prost(string, tag="3")]
2440 pub playlist_name: ::prost::alloc::string::String,
2441 #[prost(string, tag="11")]
2443 pub live_playlist_name: ::prost::alloc::string::String,
2444 #[prost(uint32, tag="4")]
2446 pub segment_duration: u32,
2447 #[prost(enumeration="SegmentedFileSuffix", tag="10")]
2449 pub filename_suffix: i32,
2450 #[prost(bool, tag="8")]
2452 pub disable_manifest: bool,
2453 #[prost(oneof="segmented_file_output::Output", tags="5, 6, 7, 9")]
2455 pub output: ::core::option::Option<segmented_file_output::Output>,
2456}
2457pub mod segmented_file_output {
2459 #[allow(clippy::derive_partial_eq_without_eq)]
2461#[derive(Clone, PartialEq, ::prost::Oneof)]
2462 pub enum Output {
2463 #[prost(message, tag="5")]
2464 S3(super::S3Upload),
2465 #[prost(message, tag="6")]
2466 Gcp(super::GcpUpload),
2467 #[prost(message, tag="7")]
2468 Azure(super::AzureBlobUpload),
2469 #[prost(message, tag="9")]
2470 AliOss(super::AliOssUpload),
2471 }
2472}
2473#[allow(clippy::derive_partial_eq_without_eq)]
2475#[derive(Clone, PartialEq, ::prost::Message)]
2476pub struct ImageOutput {
2477 #[prost(uint32, tag="1")]
2479 pub capture_interval: u32,
2480 #[prost(int32, tag="2")]
2482 pub width: i32,
2483 #[prost(int32, tag="3")]
2485 pub height: i32,
2486 #[prost(string, tag="4")]
2488 pub filename_prefix: ::prost::alloc::string::String,
2489 #[prost(enumeration="ImageFileSuffix", tag="5")]
2491 pub filename_suffix: i32,
2492 #[prost(enumeration="ImageCodec", tag="6")]
2494 pub image_codec: i32,
2495 #[prost(bool, tag="7")]
2497 pub disable_manifest: bool,
2498 #[prost(oneof="image_output::Output", tags="8, 9, 10, 11")]
2500 pub output: ::core::option::Option<image_output::Output>,
2501}
2502pub mod image_output {
2504 #[allow(clippy::derive_partial_eq_without_eq)]
2506#[derive(Clone, PartialEq, ::prost::Oneof)]
2507 pub enum Output {
2508 #[prost(message, tag="8")]
2509 S3(super::S3Upload),
2510 #[prost(message, tag="9")]
2511 Gcp(super::GcpUpload),
2512 #[prost(message, tag="10")]
2513 Azure(super::AzureBlobUpload),
2514 #[prost(message, tag="11")]
2515 AliOss(super::AliOssUpload),
2516 }
2517}
2518#[allow(clippy::derive_partial_eq_without_eq)]
2521#[derive(Clone, PartialEq, ::prost::Message)]
2522pub struct StorageConfig {
2523 #[prost(oneof="storage_config::Provider", tags="1, 2, 3, 4")]
2524 pub provider: ::core::option::Option<storage_config::Provider>,
2525}
2526pub mod storage_config {
2528 #[allow(clippy::derive_partial_eq_without_eq)]
2529#[derive(Clone, PartialEq, ::prost::Oneof)]
2530 pub enum Provider {
2531 #[prost(message, tag="1")]
2532 S3(super::S3Upload),
2533 #[prost(message, tag="2")]
2534 Gcp(super::GcpUpload),
2535 #[prost(message, tag="3")]
2536 Azure(super::AzureBlobUpload),
2537 #[prost(message, tag="4")]
2538 AliOss(super::AliOssUpload),
2539 }
2540}
2541#[allow(clippy::derive_partial_eq_without_eq)]
2542#[derive(Clone, PartialEq, ::prost::Message)]
2543pub struct S3Upload {
2544 #[prost(string, tag="1")]
2545 pub access_key: ::prost::alloc::string::String,
2546 #[prost(string, tag="2")]
2547 pub secret: ::prost::alloc::string::String,
2548 #[prost(string, tag="11")]
2549 pub session_token: ::prost::alloc::string::String,
2550 #[prost(string, tag="12")]
2552 pub assume_role_arn: ::prost::alloc::string::String,
2553 #[prost(string, tag="13")]
2555 pub assume_role_external_id: ::prost::alloc::string::String,
2556 #[prost(string, tag="3")]
2557 pub region: ::prost::alloc::string::String,
2558 #[prost(string, tag="4")]
2559 pub endpoint: ::prost::alloc::string::String,
2560 #[prost(string, tag="5")]
2561 pub bucket: ::prost::alloc::string::String,
2562 #[prost(bool, tag="6")]
2563 pub force_path_style: bool,
2564 #[prost(map="string, string", tag="7")]
2565 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2566 #[prost(string, tag="8")]
2567 pub tagging: ::prost::alloc::string::String,
2568 #[prost(string, tag="9")]
2570 pub content_disposition: ::prost::alloc::string::String,
2571 #[prost(message, optional, tag="10")]
2572 pub proxy: ::core::option::Option<ProxyConfig>,
2573}
2574#[allow(clippy::derive_partial_eq_without_eq)]
2575#[derive(Clone, PartialEq, ::prost::Message)]
2576pub struct GcpUpload {
2577 #[prost(string, tag="1")]
2579 pub credentials: ::prost::alloc::string::String,
2580 #[prost(string, tag="2")]
2581 pub bucket: ::prost::alloc::string::String,
2582 #[prost(message, optional, tag="3")]
2583 pub proxy: ::core::option::Option<ProxyConfig>,
2584}
2585#[allow(clippy::derive_partial_eq_without_eq)]
2586#[derive(Clone, PartialEq, ::prost::Message)]
2587pub struct AzureBlobUpload {
2588 #[prost(string, tag="1")]
2589 pub account_name: ::prost::alloc::string::String,
2590 #[prost(string, tag="2")]
2591 pub account_key: ::prost::alloc::string::String,
2592 #[prost(string, tag="3")]
2593 pub container_name: ::prost::alloc::string::String,
2594}
2595#[allow(clippy::derive_partial_eq_without_eq)]
2596#[derive(Clone, PartialEq, ::prost::Message)]
2597pub struct AliOssUpload {
2598 #[prost(string, tag="1")]
2599 pub access_key: ::prost::alloc::string::String,
2600 #[prost(string, tag="2")]
2601 pub secret: ::prost::alloc::string::String,
2602 #[prost(string, tag="3")]
2603 pub region: ::prost::alloc::string::String,
2604 #[prost(string, tag="4")]
2605 pub endpoint: ::prost::alloc::string::String,
2606 #[prost(string, tag="5")]
2607 pub bucket: ::prost::alloc::string::String,
2608}
2609#[allow(clippy::derive_partial_eq_without_eq)]
2610#[derive(Clone, PartialEq, ::prost::Message)]
2611pub struct ProxyConfig {
2612 #[prost(string, tag="1")]
2613 pub url: ::prost::alloc::string::String,
2614 #[prost(string, tag="2")]
2615 pub username: ::prost::alloc::string::String,
2616 #[prost(string, tag="3")]
2617 pub password: ::prost::alloc::string::String,
2618}
2619#[allow(clippy::derive_partial_eq_without_eq)]
2622#[derive(Clone, PartialEq, ::prost::Message)]
2623pub struct ListEgressRequest {
2624 #[prost(string, tag="1")]
2626 pub room_name: ::prost::alloc::string::String,
2627 #[prost(string, tag="2")]
2629 pub egress_id: ::prost::alloc::string::String,
2630 #[prost(bool, tag="3")]
2632 pub active: bool,
2633 #[prost(message, optional, tag="4")]
2635 pub page_token: ::core::option::Option<TokenPagination>,
2636}
2637#[allow(clippy::derive_partial_eq_without_eq)]
2638#[derive(Clone, PartialEq, ::prost::Message)]
2639pub struct ListEgressResponse {
2640 #[prost(message, repeated, tag="1")]
2641 pub items: ::prost::alloc::vec::Vec<EgressInfo>,
2642 #[prost(message, optional, tag="2")]
2644 pub next_page_token: ::core::option::Option<TokenPagination>,
2645}
2646#[allow(clippy::derive_partial_eq_without_eq)]
2647#[derive(Clone, PartialEq, ::prost::Message)]
2648pub struct UpdateEgressRequest {
2649 #[prost(string, tag="1")]
2650 pub egress_id: ::prost::alloc::string::String,
2651 #[prost(string, tag="2")]
2652 pub url: ::prost::alloc::string::String,
2653 #[prost(string, tag="3")]
2654 pub layout: ::prost::alloc::string::String,
2655 #[prost(string, repeated, tag="4")]
2656 pub add_stream_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2657 #[prost(string, repeated, tag="5")]
2658 pub remove_stream_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2659}
2660#[allow(clippy::derive_partial_eq_without_eq)]
2661#[derive(Clone, PartialEq, ::prost::Message)]
2662pub struct StopEgressRequest {
2663 #[prost(string, tag="1")]
2664 pub egress_id: ::prost::alloc::string::String,
2665}
2666#[allow(clippy::derive_partial_eq_without_eq)]
2669#[derive(Clone, PartialEq, ::prost::Message)]
2670pub struct EgressInfo {
2671 #[prost(string, tag="1")]
2672 pub egress_id: ::prost::alloc::string::String,
2673 #[prost(string, tag="2")]
2674 pub room_id: ::prost::alloc::string::String,
2675 #[prost(string, tag="13")]
2676 pub room_name: ::prost::alloc::string::String,
2677 #[prost(enumeration="EgressSourceType", tag="26")]
2678 pub source_type: i32,
2679 #[prost(enumeration="EgressStatus", tag="3")]
2680 pub status: i32,
2681 #[prost(int64, tag="10")]
2682 pub started_at: i64,
2683 #[prost(int64, tag="11")]
2684 pub ended_at: i64,
2685 #[prost(int64, tag="18")]
2686 pub updated_at: i64,
2687 #[prost(message, repeated, tag="15")]
2688 pub stream_results: ::prost::alloc::vec::Vec<StreamInfo>,
2689 #[prost(message, repeated, tag="16")]
2690 pub file_results: ::prost::alloc::vec::Vec<FileInfo>,
2691 #[prost(message, repeated, tag="17")]
2692 pub segment_results: ::prost::alloc::vec::Vec<SegmentsInfo>,
2693 #[prost(message, repeated, tag="20")]
2694 pub image_results: ::prost::alloc::vec::Vec<ImagesInfo>,
2695 #[prost(string, tag="9")]
2696 pub error: ::prost::alloc::string::String,
2697 #[prost(int32, tag="22")]
2698 pub error_code: i32,
2699 #[prost(string, tag="21")]
2700 pub details: ::prost::alloc::string::String,
2701 #[prost(string, tag="23")]
2702 pub manifest_location: ::prost::alloc::string::String,
2703 #[prost(bool, tag="25")]
2704 pub backup_storage_used: bool,
2705 #[prost(int32, tag="27")]
2706 pub retry_count: i32,
2707 #[prost(oneof="egress_info::Request", tags="29, 30, 4, 14, 19, 5, 6")]
2708 pub request: ::core::option::Option<egress_info::Request>,
2709 #[prost(oneof="egress_info::Result", tags="7, 8, 12")]
2713 pub result: ::core::option::Option<egress_info::Result>,
2714}
2715pub mod egress_info {
2717 #[allow(clippy::derive_partial_eq_without_eq)]
2718#[derive(Clone, PartialEq, ::prost::Oneof)]
2719 pub enum Request {
2720 #[prost(message, tag="29")]
2721 Egress(super::StartEgressRequest),
2722 #[prost(message, tag="30")]
2723 Replay(super::ExportReplayRequest),
2724 #[prost(message, tag="4")]
2726 RoomComposite(super::RoomCompositeEgressRequest),
2727 #[prost(message, tag="14")]
2728 Web(super::WebEgressRequest),
2729 #[prost(message, tag="19")]
2730 Participant(super::ParticipantEgressRequest),
2731 #[prost(message, tag="5")]
2732 TrackComposite(super::TrackCompositeEgressRequest),
2733 #[prost(message, tag="6")]
2734 Track(super::TrackEgressRequest),
2735 }
2736 #[allow(clippy::derive_partial_eq_without_eq)]
2740#[derive(Clone, PartialEq, ::prost::Oneof)]
2741 pub enum Result {
2742 #[prost(message, tag="7")]
2743 Stream(super::StreamInfoList),
2744 #[prost(message, tag="8")]
2745 File(super::FileInfo),
2746 #[prost(message, tag="12")]
2747 Segments(super::SegmentsInfo),
2748 }
2749}
2750#[allow(clippy::derive_partial_eq_without_eq)]
2751#[derive(Clone, PartialEq, ::prost::Message)]
2752pub struct StreamInfo {
2753 #[prost(string, tag="1")]
2754 pub url: ::prost::alloc::string::String,
2755 #[prost(int64, tag="2")]
2756 pub started_at: i64,
2757 #[prost(int64, tag="3")]
2758 pub ended_at: i64,
2759 #[prost(int64, tag="4")]
2760 pub duration: i64,
2761 #[prost(enumeration="stream_info::Status", tag="5")]
2762 pub status: i32,
2763 #[prost(string, tag="6")]
2764 pub error: ::prost::alloc::string::String,
2765 #[prost(int64, tag="7")]
2766 pub last_retry_at: i64,
2767 #[prost(uint32, tag="8")]
2768 pub retries: u32,
2769}
2770pub mod stream_info {
2772 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2773 #[repr(i32)]
2774 pub enum Status {
2775 Active = 0,
2776 Finished = 1,
2777 Failed = 2,
2778 }
2779 impl Status {
2780 pub fn as_str_name(&self) -> &'static str {
2785 match self {
2786 Status::Active => "ACTIVE",
2787 Status::Finished => "FINISHED",
2788 Status::Failed => "FAILED",
2789 }
2790 }
2791 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2793 match value {
2794 "ACTIVE" => Some(Self::Active),
2795 "FINISHED" => Some(Self::Finished),
2796 "FAILED" => Some(Self::Failed),
2797 _ => None,
2798 }
2799 }
2800 }
2801}
2802#[allow(clippy::derive_partial_eq_without_eq)]
2803#[derive(Clone, PartialEq, ::prost::Message)]
2804pub struct FileInfo {
2805 #[prost(string, tag="1")]
2806 pub filename: ::prost::alloc::string::String,
2807 #[prost(int64, tag="2")]
2808 pub started_at: i64,
2809 #[prost(int64, tag="3")]
2810 pub ended_at: i64,
2811 #[prost(int64, tag="6")]
2812 pub duration: i64,
2813 #[prost(int64, tag="4")]
2814 pub size: i64,
2815 #[prost(string, tag="5")]
2816 pub location: ::prost::alloc::string::String,
2817}
2818#[allow(clippy::derive_partial_eq_without_eq)]
2819#[derive(Clone, PartialEq, ::prost::Message)]
2820pub struct SegmentsInfo {
2821 #[prost(string, tag="1")]
2822 pub playlist_name: ::prost::alloc::string::String,
2823 #[prost(string, tag="8")]
2824 pub live_playlist_name: ::prost::alloc::string::String,
2825 #[prost(int64, tag="2")]
2826 pub duration: i64,
2827 #[prost(int64, tag="3")]
2828 pub size: i64,
2829 #[prost(string, tag="4")]
2830 pub playlist_location: ::prost::alloc::string::String,
2831 #[prost(string, tag="9")]
2832 pub live_playlist_location: ::prost::alloc::string::String,
2833 #[prost(int64, tag="5")]
2834 pub segment_count: i64,
2835 #[prost(int64, tag="6")]
2836 pub started_at: i64,
2837 #[prost(int64, tag="7")]
2838 pub ended_at: i64,
2839}
2840#[allow(clippy::derive_partial_eq_without_eq)]
2841#[derive(Clone, PartialEq, ::prost::Message)]
2842pub struct ImagesInfo {
2843 #[prost(string, tag="4")]
2844 pub filename_prefix: ::prost::alloc::string::String,
2845 #[prost(int64, tag="1")]
2846 pub image_count: i64,
2847 #[prost(int64, tag="2")]
2848 pub started_at: i64,
2849 #[prost(int64, tag="3")]
2850 pub ended_at: i64,
2851}
2852#[allow(clippy::derive_partial_eq_without_eq)]
2855#[derive(Clone, PartialEq, ::prost::Message)]
2856pub struct AutoParticipantEgress {
2857 #[prost(message, repeated, tag="3")]
2858 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2859 #[prost(message, repeated, tag="4")]
2860 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2861 #[prost(oneof="auto_participant_egress::Options", tags="1, 2")]
2862 pub options: ::core::option::Option<auto_participant_egress::Options>,
2863}
2864pub mod auto_participant_egress {
2866 #[allow(clippy::derive_partial_eq_without_eq)]
2867#[derive(Clone, PartialEq, ::prost::Oneof)]
2868 pub enum Options {
2869 #[prost(enumeration="super::EncodingOptionsPreset", tag="1")]
2871 Preset(i32),
2872 #[prost(message, tag="2")]
2874 Advanced(super::EncodingOptions),
2875 }
2876}
2877#[allow(clippy::derive_partial_eq_without_eq)]
2878#[derive(Clone, PartialEq, ::prost::Message)]
2879pub struct AutoTrackEgress {
2880 #[prost(string, tag="1")]
2882 pub filepath: ::prost::alloc::string::String,
2883 #[prost(bool, tag="5")]
2885 pub disable_manifest: bool,
2886 #[prost(oneof="auto_track_egress::Output", tags="2, 3, 4, 6")]
2887 pub output: ::core::option::Option<auto_track_egress::Output>,
2888}
2889pub mod auto_track_egress {
2891 #[allow(clippy::derive_partial_eq_without_eq)]
2892#[derive(Clone, PartialEq, ::prost::Oneof)]
2893 pub enum Output {
2894 #[prost(message, tag="2")]
2895 S3(super::S3Upload),
2896 #[prost(message, tag="3")]
2897 Gcp(super::GcpUpload),
2898 #[prost(message, tag="4")]
2899 Azure(super::AzureBlobUpload),
2900 #[prost(message, tag="6")]
2901 AliOss(super::AliOssUpload),
2902 }
2903}
2904#[allow(clippy::derive_partial_eq_without_eq)]
2907#[derive(Clone, PartialEq, ::prost::Message)]
2908pub struct ExportReplayRequest {
2909 #[prost(string, tag="1")]
2910 pub replay_id: ::prost::alloc::string::String,
2911 #[prost(int64, tag="2")]
2912 pub start_offset_ms: i64,
2913 #[prost(int64, tag="3")]
2914 pub end_offset_ms: i64,
2915 #[prost(message, repeated, tag="9")]
2916 pub outputs: ::prost::alloc::vec::Vec<Output>,
2917 #[prost(message, optional, tag="10")]
2918 pub storage: ::core::option::Option<StorageConfig>,
2919 #[prost(message, repeated, tag="11")]
2920 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2921 #[prost(oneof="export_replay_request::Source", tags="4, 5, 6")]
2922 pub source: ::core::option::Option<export_replay_request::Source>,
2923 #[prost(oneof="export_replay_request::Encoding", tags="7, 8")]
2924 pub encoding: ::core::option::Option<export_replay_request::Encoding>,
2925}
2926pub mod export_replay_request {
2928 #[allow(clippy::derive_partial_eq_without_eq)]
2929#[derive(Clone, PartialEq, ::prost::Oneof)]
2930 pub enum Source {
2931 #[prost(message, tag="4")]
2932 Template(super::TemplateSource),
2933 #[prost(message, tag="5")]
2934 Web(super::WebSource),
2935 #[prost(message, tag="6")]
2936 Media(super::MediaSource),
2937 }
2938 #[allow(clippy::derive_partial_eq_without_eq)]
2939#[derive(Clone, PartialEq, ::prost::Oneof)]
2940 pub enum Encoding {
2941 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
2942 Preset(i32),
2943 #[prost(message, tag="8")]
2944 Advanced(super::EncodingOptions),
2945 }
2946}
2947#[allow(clippy::derive_partial_eq_without_eq)]
2950#[derive(Clone, PartialEq, ::prost::Message)]
2951pub struct RoomCompositeEgressRequest {
2952 #[prost(string, tag="1")]
2953 pub room_name: ::prost::alloc::string::String,
2954 #[prost(string, tag="2")]
2955 pub layout: ::prost::alloc::string::String,
2956 #[prost(bool, tag="3")]
2957 pub audio_only: bool,
2958 #[prost(enumeration="AudioMixing", tag="15")]
2959 pub audio_mixing: i32,
2960 #[prost(bool, tag="4")]
2961 pub video_only: bool,
2962 #[prost(string, tag="5")]
2963 pub custom_base_url: ::prost::alloc::string::String,
2964 #[prost(message, repeated, tag="11")]
2965 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2966 #[prost(message, repeated, tag="12")]
2967 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2968 #[prost(message, repeated, tag="13")]
2969 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2970 #[prost(message, repeated, tag="14")]
2971 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2972 #[prost(message, repeated, tag="16")]
2973 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2974 #[prost(oneof="room_composite_egress_request::Output", tags="6, 7, 10")]
2975 pub output: ::core::option::Option<room_composite_egress_request::Output>,
2976 #[prost(oneof="room_composite_egress_request::Options", tags="8, 9")]
2977 pub options: ::core::option::Option<room_composite_egress_request::Options>,
2978}
2979pub mod room_composite_egress_request {
2981 #[allow(clippy::derive_partial_eq_without_eq)]
2982#[derive(Clone, PartialEq, ::prost::Oneof)]
2983 pub enum Output {
2984 #[prost(message, tag="6")]
2985 File(super::EncodedFileOutput),
2986 #[prost(message, tag="7")]
2987 Stream(super::StreamOutput),
2988 #[prost(message, tag="10")]
2989 Segments(super::SegmentedFileOutput),
2990 }
2991 #[allow(clippy::derive_partial_eq_without_eq)]
2992#[derive(Clone, PartialEq, ::prost::Oneof)]
2993 pub enum Options {
2994 #[prost(enumeration="super::EncodingOptionsPreset", tag="8")]
2995 Preset(i32),
2996 #[prost(message, tag="9")]
2997 Advanced(super::EncodingOptions),
2998 }
2999}
3000#[allow(clippy::derive_partial_eq_without_eq)]
3001#[derive(Clone, PartialEq, ::prost::Message)]
3002pub struct WebEgressRequest {
3003 #[prost(string, tag="1")]
3004 pub url: ::prost::alloc::string::String,
3005 #[prost(bool, tag="2")]
3006 pub audio_only: bool,
3007 #[prost(bool, tag="3")]
3008 pub video_only: bool,
3009 #[prost(bool, tag="12")]
3010 pub await_start_signal: bool,
3011 #[prost(message, repeated, tag="9")]
3012 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3013 #[prost(message, repeated, tag="10")]
3014 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3015 #[prost(message, repeated, tag="11")]
3016 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3017 #[prost(message, repeated, tag="13")]
3018 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3019 #[prost(message, repeated, tag="14")]
3020 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3021 #[prost(oneof="web_egress_request::Output", tags="4, 5, 6")]
3022 pub output: ::core::option::Option<web_egress_request::Output>,
3023 #[prost(oneof="web_egress_request::Options", tags="7, 8")]
3024 pub options: ::core::option::Option<web_egress_request::Options>,
3025}
3026pub mod web_egress_request {
3028 #[allow(clippy::derive_partial_eq_without_eq)]
3029#[derive(Clone, PartialEq, ::prost::Oneof)]
3030 pub enum Output {
3031 #[prost(message, tag="4")]
3032 File(super::EncodedFileOutput),
3033 #[prost(message, tag="5")]
3034 Stream(super::StreamOutput),
3035 #[prost(message, tag="6")]
3036 Segments(super::SegmentedFileOutput),
3037 }
3038 #[allow(clippy::derive_partial_eq_without_eq)]
3039#[derive(Clone, PartialEq, ::prost::Oneof)]
3040 pub enum Options {
3041 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
3042 Preset(i32),
3043 #[prost(message, tag="8")]
3044 Advanced(super::EncodingOptions),
3045 }
3046}
3047#[allow(clippy::derive_partial_eq_without_eq)]
3048#[derive(Clone, PartialEq, ::prost::Message)]
3049pub struct ParticipantEgressRequest {
3050 #[prost(string, tag="1")]
3051 pub room_name: ::prost::alloc::string::String,
3052 #[prost(string, tag="2")]
3053 pub identity: ::prost::alloc::string::String,
3054 #[prost(bool, tag="3")]
3055 pub screen_share: bool,
3056 #[prost(message, repeated, tag="6")]
3057 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3058 #[prost(message, repeated, tag="7")]
3059 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3060 #[prost(message, repeated, tag="8")]
3061 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3062 #[prost(message, repeated, tag="9")]
3063 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3064 #[prost(message, repeated, tag="10")]
3065 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3066 #[prost(oneof="participant_egress_request::Options", tags="4, 5")]
3067 pub options: ::core::option::Option<participant_egress_request::Options>,
3068}
3069pub mod participant_egress_request {
3071 #[allow(clippy::derive_partial_eq_without_eq)]
3072#[derive(Clone, PartialEq, ::prost::Oneof)]
3073 pub enum Options {
3074 #[prost(enumeration="super::EncodingOptionsPreset", tag="4")]
3075 Preset(i32),
3076 #[prost(message, tag="5")]
3077 Advanced(super::EncodingOptions),
3078 }
3079}
3080#[allow(clippy::derive_partial_eq_without_eq)]
3081#[derive(Clone, PartialEq, ::prost::Message)]
3082pub struct TrackCompositeEgressRequest {
3083 #[prost(string, tag="1")]
3084 pub room_name: ::prost::alloc::string::String,
3085 #[prost(string, tag="2")]
3086 pub audio_track_id: ::prost::alloc::string::String,
3087 #[prost(string, tag="3")]
3088 pub video_track_id: ::prost::alloc::string::String,
3089 #[prost(message, repeated, tag="11")]
3090 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3091 #[prost(message, repeated, tag="12")]
3092 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3093 #[prost(message, repeated, tag="13")]
3094 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3095 #[prost(message, repeated, tag="14")]
3096 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3097 #[prost(message, repeated, tag="15")]
3098 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3099 #[prost(oneof="track_composite_egress_request::Output", tags="4, 5, 8")]
3100 pub output: ::core::option::Option<track_composite_egress_request::Output>,
3101 #[prost(oneof="track_composite_egress_request::Options", tags="6, 7")]
3102 pub options: ::core::option::Option<track_composite_egress_request::Options>,
3103}
3104pub mod track_composite_egress_request {
3106 #[allow(clippy::derive_partial_eq_without_eq)]
3107#[derive(Clone, PartialEq, ::prost::Oneof)]
3108 pub enum Output {
3109 #[prost(message, tag="4")]
3110 File(super::EncodedFileOutput),
3111 #[prost(message, tag="5")]
3112 Stream(super::StreamOutput),
3113 #[prost(message, tag="8")]
3114 Segments(super::SegmentedFileOutput),
3115 }
3116 #[allow(clippy::derive_partial_eq_without_eq)]
3117#[derive(Clone, PartialEq, ::prost::Oneof)]
3118 pub enum Options {
3119 #[prost(enumeration="super::EncodingOptionsPreset", tag="6")]
3120 Preset(i32),
3121 #[prost(message, tag="7")]
3122 Advanced(super::EncodingOptions),
3123 }
3124}
3125#[allow(clippy::derive_partial_eq_without_eq)]
3126#[derive(Clone, PartialEq, ::prost::Message)]
3127pub struct TrackEgressRequest {
3128 #[prost(string, tag="1")]
3129 pub room_name: ::prost::alloc::string::String,
3130 #[prost(string, tag="2")]
3131 pub track_id: ::prost::alloc::string::String,
3132 #[prost(message, repeated, tag="5")]
3133 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3134 #[prost(oneof="track_egress_request::Output", tags="3, 4")]
3135 pub output: ::core::option::Option<track_egress_request::Output>,
3136}
3137pub mod track_egress_request {
3139 #[allow(clippy::derive_partial_eq_without_eq)]
3140#[derive(Clone, PartialEq, ::prost::Oneof)]
3141 pub enum Output {
3142 #[prost(message, tag="3")]
3143 File(super::DirectFileOutput),
3144 #[prost(string, tag="4")]
3145 WebsocketUrl(::prost::alloc::string::String),
3146 }
3147}
3148#[allow(clippy::derive_partial_eq_without_eq)]
3149#[derive(Clone, PartialEq, ::prost::Message)]
3150pub struct DirectFileOutput {
3151 #[prost(string, tag="1")]
3152 pub filepath: ::prost::alloc::string::String,
3153 #[prost(bool, tag="5")]
3154 pub disable_manifest: bool,
3155 #[prost(oneof="direct_file_output::Output", tags="2, 3, 4, 6")]
3156 pub output: ::core::option::Option<direct_file_output::Output>,
3157}
3158pub mod direct_file_output {
3160 #[allow(clippy::derive_partial_eq_without_eq)]
3161#[derive(Clone, PartialEq, ::prost::Oneof)]
3162 pub enum Output {
3163 #[prost(message, tag="2")]
3164 S3(super::S3Upload),
3165 #[prost(message, tag="3")]
3166 Gcp(super::GcpUpload),
3167 #[prost(message, tag="4")]
3168 Azure(super::AzureBlobUpload),
3169 #[prost(message, tag="6")]
3170 AliOss(super::AliOssUpload),
3171 }
3172}
3173#[allow(clippy::derive_partial_eq_without_eq)]
3174#[derive(Clone, PartialEq, ::prost::Message)]
3175pub struct EncodedFileOutput {
3176 #[prost(enumeration="EncodedFileType", tag="1")]
3177 pub file_type: i32,
3178 #[prost(string, tag="2")]
3179 pub filepath: ::prost::alloc::string::String,
3180 #[prost(bool, tag="6")]
3181 pub disable_manifest: bool,
3182 #[prost(oneof="encoded_file_output::Output", tags="3, 4, 5, 7")]
3183 pub output: ::core::option::Option<encoded_file_output::Output>,
3184}
3185pub mod encoded_file_output {
3187 #[allow(clippy::derive_partial_eq_without_eq)]
3188#[derive(Clone, PartialEq, ::prost::Oneof)]
3189 pub enum Output {
3190 #[prost(message, tag="3")]
3191 S3(super::S3Upload),
3192 #[prost(message, tag="4")]
3193 Gcp(super::GcpUpload),
3194 #[prost(message, tag="5")]
3195 Azure(super::AzureBlobUpload),
3196 #[prost(message, tag="7")]
3197 AliOss(super::AliOssUpload),
3198 }
3199}
3200#[allow(clippy::derive_partial_eq_without_eq)]
3201#[derive(Clone, PartialEq, ::prost::Message)]
3202pub struct UpdateLayoutRequest {
3203 #[prost(string, tag="1")]
3204 pub egress_id: ::prost::alloc::string::String,
3205 #[prost(string, tag="2")]
3206 pub layout: ::prost::alloc::string::String,
3207}
3208#[allow(clippy::derive_partial_eq_without_eq)]
3209#[derive(Clone, PartialEq, ::prost::Message)]
3210pub struct UpdateStreamRequest {
3211 #[prost(string, tag="1")]
3212 pub egress_id: ::prost::alloc::string::String,
3213 #[prost(string, repeated, tag="2")]
3214 pub add_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3215 #[prost(string, repeated, tag="3")]
3216 pub remove_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3217}
3218#[allow(clippy::derive_partial_eq_without_eq)]
3219#[derive(Clone, PartialEq, ::prost::Message)]
3220pub struct StreamInfoList {
3221 #[prost(message, repeated, tag="1")]
3222 pub info: ::prost::alloc::vec::Vec<StreamInfo>,
3223}
3224#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3225#[repr(i32)]
3226pub enum AudioChannel {
3227 Both = 0,
3228 Left = 1,
3229 Right = 2,
3230}
3231impl AudioChannel {
3232 pub fn as_str_name(&self) -> &'static str {
3237 match self {
3238 AudioChannel::Both => "AUDIO_CHANNEL_BOTH",
3239 AudioChannel::Left => "AUDIO_CHANNEL_LEFT",
3240 AudioChannel::Right => "AUDIO_CHANNEL_RIGHT",
3241 }
3242 }
3243 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3245 match value {
3246 "AUDIO_CHANNEL_BOTH" => Some(Self::Both),
3247 "AUDIO_CHANNEL_LEFT" => Some(Self::Left),
3248 "AUDIO_CHANNEL_RIGHT" => Some(Self::Right),
3249 _ => None,
3250 }
3251 }
3252}
3253#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3256#[repr(i32)]
3257pub enum EncodingOptionsPreset {
3258 H264720p30 = 0,
3260 H264720p60 = 1,
3262 H2641080p30 = 2,
3264 H2641080p60 = 3,
3266 PortraitH264720p30 = 4,
3268 PortraitH264720p60 = 5,
3270 PortraitH2641080p30 = 6,
3272 PortraitH2641080p60 = 7,
3274}
3275impl EncodingOptionsPreset {
3276 pub fn as_str_name(&self) -> &'static str {
3281 match self {
3282 EncodingOptionsPreset::H264720p30 => "H264_720P_30",
3283 EncodingOptionsPreset::H264720p60 => "H264_720P_60",
3284 EncodingOptionsPreset::H2641080p30 => "H264_1080P_30",
3285 EncodingOptionsPreset::H2641080p60 => "H264_1080P_60",
3286 EncodingOptionsPreset::PortraitH264720p30 => "PORTRAIT_H264_720P_30",
3287 EncodingOptionsPreset::PortraitH264720p60 => "PORTRAIT_H264_720P_60",
3288 EncodingOptionsPreset::PortraitH2641080p30 => "PORTRAIT_H264_1080P_30",
3289 EncodingOptionsPreset::PortraitH2641080p60 => "PORTRAIT_H264_1080P_60",
3290 }
3291 }
3292 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3294 match value {
3295 "H264_720P_30" => Some(Self::H264720p30),
3296 "H264_720P_60" => Some(Self::H264720p60),
3297 "H264_1080P_30" => Some(Self::H2641080p30),
3298 "H264_1080P_60" => Some(Self::H2641080p60),
3299 "PORTRAIT_H264_720P_30" => Some(Self::PortraitH264720p30),
3300 "PORTRAIT_H264_720P_60" => Some(Self::PortraitH264720p60),
3301 "PORTRAIT_H264_1080P_30" => Some(Self::PortraitH2641080p30),
3302 "PORTRAIT_H264_1080P_60" => Some(Self::PortraitH2641080p60),
3303 _ => None,
3304 }
3305 }
3306}
3307#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3308#[repr(i32)]
3309pub enum EncodedFileType {
3310 DefaultFiletype = 0,
3312 Mp4 = 1,
3313 Ogg = 2,
3314 Mp3 = 3,
3315}
3316impl EncodedFileType {
3317 pub fn as_str_name(&self) -> &'static str {
3322 match self {
3323 EncodedFileType::DefaultFiletype => "DEFAULT_FILETYPE",
3324 EncodedFileType::Mp4 => "MP4",
3325 EncodedFileType::Ogg => "OGG",
3326 EncodedFileType::Mp3 => "MP3",
3327 }
3328 }
3329 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3331 match value {
3332 "DEFAULT_FILETYPE" => Some(Self::DefaultFiletype),
3333 "MP4" => Some(Self::Mp4),
3334 "OGG" => Some(Self::Ogg),
3335 "MP3" => Some(Self::Mp3),
3336 _ => None,
3337 }
3338 }
3339}
3340#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3341#[repr(i32)]
3342pub enum StreamProtocol {
3343 DefaultProtocol = 0,
3345 Rtmp = 1,
3346 Srt = 2,
3347 Websocket = 3,
3348}
3349impl StreamProtocol {
3350 pub fn as_str_name(&self) -> &'static str {
3355 match self {
3356 StreamProtocol::DefaultProtocol => "DEFAULT_PROTOCOL",
3357 StreamProtocol::Rtmp => "RTMP",
3358 StreamProtocol::Srt => "SRT",
3359 StreamProtocol::Websocket => "WEBSOCKET",
3360 }
3361 }
3362 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3364 match value {
3365 "DEFAULT_PROTOCOL" => Some(Self::DefaultProtocol),
3366 "RTMP" => Some(Self::Rtmp),
3367 "SRT" => Some(Self::Srt),
3368 "WEBSOCKET" => Some(Self::Websocket),
3369 _ => None,
3370 }
3371 }
3372}
3373#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3374#[repr(i32)]
3375pub enum SegmentedFileProtocol {
3376 DefaultSegmentedFileProtocol = 0,
3377 HlsProtocol = 1,
3378}
3379impl SegmentedFileProtocol {
3380 pub fn as_str_name(&self) -> &'static str {
3385 match self {
3386 SegmentedFileProtocol::DefaultSegmentedFileProtocol => "DEFAULT_SEGMENTED_FILE_PROTOCOL",
3387 SegmentedFileProtocol::HlsProtocol => "HLS_PROTOCOL",
3388 }
3389 }
3390 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3392 match value {
3393 "DEFAULT_SEGMENTED_FILE_PROTOCOL" => Some(Self::DefaultSegmentedFileProtocol),
3394 "HLS_PROTOCOL" => Some(Self::HlsProtocol),
3395 _ => None,
3396 }
3397 }
3398}
3399#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3400#[repr(i32)]
3401pub enum SegmentedFileSuffix {
3402 Index = 0,
3403 Timestamp = 1,
3404}
3405impl SegmentedFileSuffix {
3406 pub fn as_str_name(&self) -> &'static str {
3411 match self {
3412 SegmentedFileSuffix::Index => "INDEX",
3413 SegmentedFileSuffix::Timestamp => "TIMESTAMP",
3414 }
3415 }
3416 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3418 match value {
3419 "INDEX" => Some(Self::Index),
3420 "TIMESTAMP" => Some(Self::Timestamp),
3421 _ => None,
3422 }
3423 }
3424}
3425#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3426#[repr(i32)]
3427pub enum ImageFileSuffix {
3428 ImageSuffixIndex = 0,
3429 ImageSuffixTimestamp = 1,
3430 ImageSuffixNoneOverwrite = 2,
3432}
3433impl ImageFileSuffix {
3434 pub fn as_str_name(&self) -> &'static str {
3439 match self {
3440 ImageFileSuffix::ImageSuffixIndex => "IMAGE_SUFFIX_INDEX",
3441 ImageFileSuffix::ImageSuffixTimestamp => "IMAGE_SUFFIX_TIMESTAMP",
3442 ImageFileSuffix::ImageSuffixNoneOverwrite => "IMAGE_SUFFIX_NONE_OVERWRITE",
3443 }
3444 }
3445 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3447 match value {
3448 "IMAGE_SUFFIX_INDEX" => Some(Self::ImageSuffixIndex),
3449 "IMAGE_SUFFIX_TIMESTAMP" => Some(Self::ImageSuffixTimestamp),
3450 "IMAGE_SUFFIX_NONE_OVERWRITE" => Some(Self::ImageSuffixNoneOverwrite),
3451 _ => None,
3452 }
3453 }
3454}
3455#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3456#[repr(i32)]
3457pub enum EgressSourceType {
3458 Web = 0,
3459 Sdk = 1,
3460}
3461impl EgressSourceType {
3462 pub fn as_str_name(&self) -> &'static str {
3467 match self {
3468 EgressSourceType::Web => "EGRESS_SOURCE_TYPE_WEB",
3469 EgressSourceType::Sdk => "EGRESS_SOURCE_TYPE_SDK",
3470 }
3471 }
3472 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3474 match value {
3475 "EGRESS_SOURCE_TYPE_WEB" => Some(Self::Web),
3476 "EGRESS_SOURCE_TYPE_SDK" => Some(Self::Sdk),
3477 _ => None,
3478 }
3479 }
3480}
3481#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3482#[repr(i32)]
3483pub enum EgressStatus {
3484 EgressStarting = 0,
3485 EgressActive = 1,
3486 EgressEnding = 2,
3487 EgressComplete = 3,
3488 EgressFailed = 4,
3489 EgressAborted = 5,
3490 EgressLimitReached = 6,
3491}
3492impl EgressStatus {
3493 pub fn as_str_name(&self) -> &'static str {
3498 match self {
3499 EgressStatus::EgressStarting => "EGRESS_STARTING",
3500 EgressStatus::EgressActive => "EGRESS_ACTIVE",
3501 EgressStatus::EgressEnding => "EGRESS_ENDING",
3502 EgressStatus::EgressComplete => "EGRESS_COMPLETE",
3503 EgressStatus::EgressFailed => "EGRESS_FAILED",
3504 EgressStatus::EgressAborted => "EGRESS_ABORTED",
3505 EgressStatus::EgressLimitReached => "EGRESS_LIMIT_REACHED",
3506 }
3507 }
3508 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3510 match value {
3511 "EGRESS_STARTING" => Some(Self::EgressStarting),
3512 "EGRESS_ACTIVE" => Some(Self::EgressActive),
3513 "EGRESS_ENDING" => Some(Self::EgressEnding),
3514 "EGRESS_COMPLETE" => Some(Self::EgressComplete),
3515 "EGRESS_FAILED" => Some(Self::EgressFailed),
3516 "EGRESS_ABORTED" => Some(Self::EgressAborted),
3517 "EGRESS_LIMIT_REACHED" => Some(Self::EgressLimitReached),
3518 _ => None,
3519 }
3520 }
3521}
3522#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3523#[repr(i32)]
3524pub enum AudioMixing {
3525 DefaultMixing = 0,
3526 DualChannelAgent = 1,
3527 DualChannelAlternate = 2,
3528}
3529impl AudioMixing {
3530 pub fn as_str_name(&self) -> &'static str {
3535 match self {
3536 AudioMixing::DefaultMixing => "DEFAULT_MIXING",
3537 AudioMixing::DualChannelAgent => "DUAL_CHANNEL_AGENT",
3538 AudioMixing::DualChannelAlternate => "DUAL_CHANNEL_ALTERNATE",
3539 }
3540 }
3541 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3543 match value {
3544 "DEFAULT_MIXING" => Some(Self::DefaultMixing),
3545 "DUAL_CHANNEL_AGENT" => Some(Self::DualChannelAgent),
3546 "DUAL_CHANNEL_ALTERNATE" => Some(Self::DualChannelAlternate),
3547 _ => None,
3548 }
3549 }
3550}
3551#[allow(clippy::derive_partial_eq_without_eq)]
3552#[derive(Clone, PartialEq, ::prost::Message)]
3553pub struct SignalRequest {
3554 #[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")]
3555 pub message: ::core::option::Option<signal_request::Message>,
3556}
3557pub mod signal_request {
3559 #[allow(clippy::derive_partial_eq_without_eq)]
3560#[derive(Clone, PartialEq, ::prost::Oneof)]
3561 pub enum Message {
3562 #[prost(message, tag="1")]
3564 Offer(super::SessionDescription),
3565 #[prost(message, tag="2")]
3567 Answer(super::SessionDescription),
3568 #[prost(message, tag="3")]
3569 Trickle(super::TrickleRequest),
3570 #[prost(message, tag="4")]
3571 AddTrack(super::AddTrackRequest),
3572 #[prost(message, tag="5")]
3574 Mute(super::MuteTrackRequest),
3575 #[prost(message, tag="6")]
3577 Subscription(super::UpdateSubscription),
3578 #[prost(message, tag="7")]
3580 TrackSetting(super::UpdateTrackSettings),
3581 #[prost(message, tag="8")]
3583 Leave(super::LeaveRequest),
3584 #[prost(message, tag="10")]
3586 UpdateLayers(super::UpdateVideoLayers),
3587 #[prost(message, tag="11")]
3589 SubscriptionPermission(super::SubscriptionPermission),
3590 #[prost(message, tag="12")]
3592 SyncState(super::SyncState),
3593 #[prost(message, tag="13")]
3595 Simulate(super::SimulateScenario),
3596 #[prost(int64, tag="14")]
3600 Ping(i64),
3601 #[prost(message, tag="15")]
3604 UpdateMetadata(super::UpdateParticipantMetadata),
3605 #[prost(message, tag="16")]
3606 PingReq(super::Ping),
3607 #[prost(message, tag="17")]
3609 UpdateAudioTrack(super::UpdateLocalAudioTrack),
3610 #[prost(message, tag="18")]
3612 UpdateVideoTrack(super::UpdateLocalVideoTrack),
3613 #[prost(message, tag="19")]
3615 PublishDataTrackRequest(super::PublishDataTrackRequest),
3616 #[prost(message, tag="20")]
3618 UnpublishDataTrackRequest(super::UnpublishDataTrackRequest),
3619 #[prost(message, tag="21")]
3621 UpdateDataSubscription(super::UpdateDataSubscription),
3622 }
3623}
3624#[allow(clippy::derive_partial_eq_without_eq)]
3625#[derive(Clone, PartialEq, ::prost::Message)]
3626pub struct SignalResponse {
3627 #[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")]
3628 pub message: ::core::option::Option<signal_response::Message>,
3629}
3630pub mod signal_response {
3632 #[allow(clippy::derive_partial_eq_without_eq)]
3633#[derive(Clone, PartialEq, ::prost::Oneof)]
3634 pub enum Message {
3635 #[prost(message, tag="1")]
3637 Join(super::JoinResponse),
3638 #[prost(message, tag="2")]
3640 Answer(super::SessionDescription),
3641 #[prost(message, tag="3")]
3643 Offer(super::SessionDescription),
3644 #[prost(message, tag="4")]
3646 Trickle(super::TrickleRequest),
3647 #[prost(message, tag="5")]
3649 Update(super::ParticipantUpdate),
3650 #[prost(message, tag="6")]
3652 TrackPublished(super::TrackPublishedResponse),
3653 #[prost(message, tag="8")]
3655 Leave(super::LeaveRequest),
3656 #[prost(message, tag="9")]
3658 Mute(super::MuteTrackRequest),
3659 #[prost(message, tag="10")]
3661 SpeakersChanged(super::SpeakersChanged),
3662 #[prost(message, tag="11")]
3664 RoomUpdate(super::RoomUpdate),
3665 #[prost(message, tag="12")]
3667 ConnectionQuality(super::ConnectionQualityUpdate),
3668 #[prost(message, tag="13")]
3671 StreamStateUpdate(super::StreamStateUpdate),
3672 #[prost(message, tag="14")]
3674 SubscribedQualityUpdate(super::SubscribedQualityUpdate),
3675 #[prost(message, tag="15")]
3677 SubscriptionPermissionUpdate(super::SubscriptionPermissionUpdate),
3678 #[prost(string, tag="16")]
3680 RefreshToken(::prost::alloc::string::String),
3681 #[prost(message, tag="17")]
3683 TrackUnpublished(super::TrackUnpublishedResponse),
3684 #[prost(int64, tag="18")]
3688 Pong(i64),
3689 #[prost(message, tag="19")]
3691 Reconnect(super::ReconnectResponse),
3692 #[prost(message, tag="20")]
3694 PongResp(super::Pong),
3695 #[prost(message, tag="21")]
3697 SubscriptionResponse(super::SubscriptionResponse),
3698 #[prost(message, tag="22")]
3700 RequestResponse(super::RequestResponse),
3701 #[prost(message, tag="23")]
3703 TrackSubscribed(super::TrackSubscribed),
3704 #[prost(message, tag="24")]
3706 RoomMoved(super::RoomMovedResponse),
3707 #[prost(message, tag="25")]
3709 MediaSectionsRequirement(super::MediaSectionsRequirement),
3710 #[prost(message, tag="26")]
3712 SubscribedAudioCodecUpdate(super::SubscribedAudioCodecUpdate),
3713 #[prost(message, tag="27")]
3715 PublishDataTrackResponse(super::PublishDataTrackResponse),
3716 #[prost(message, tag="28")]
3718 UnpublishDataTrackResponse(super::UnpublishDataTrackResponse),
3719 #[prost(message, tag="29")]
3721 DataTrackSubscriberHandles(super::DataTrackSubscriberHandles),
3722 }
3723}
3724#[allow(clippy::derive_partial_eq_without_eq)]
3725#[derive(Clone, PartialEq, ::prost::Message)]
3726pub struct SimulcastCodec {
3727 #[prost(string, tag="1")]
3728 pub codec: ::prost::alloc::string::String,
3729 #[prost(string, tag="2")]
3730 pub cid: ::prost::alloc::string::String,
3731 #[prost(message, repeated, tag="4")]
3732 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3733 #[prost(enumeration="video_layer::Mode", tag="5")]
3734 pub video_layer_mode: i32,
3735}
3736#[allow(clippy::derive_partial_eq_without_eq)]
3737#[derive(Clone, PartialEq, ::prost::Message)]
3738pub struct AddTrackRequest {
3739 #[prost(string, tag="1")]
3741 pub cid: ::prost::alloc::string::String,
3742 #[prost(string, tag="2")]
3743 pub name: ::prost::alloc::string::String,
3744 #[prost(enumeration="TrackType", tag="3")]
3745 pub r#type: i32,
3746 #[prost(uint32, tag="4")]
3747 pub width: u32,
3748 #[prost(uint32, tag="5")]
3749 pub height: u32,
3750 #[prost(bool, tag="6")]
3752 pub muted: bool,
3753 #[deprecated]
3757 #[prost(bool, tag="7")]
3758 pub disable_dtx: bool,
3759 #[prost(enumeration="TrackSource", tag="8")]
3760 pub source: i32,
3761 #[prost(message, repeated, tag="9")]
3762 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3763 #[prost(message, repeated, tag="10")]
3764 pub simulcast_codecs: ::prost::alloc::vec::Vec<SimulcastCodec>,
3765 #[prost(string, tag="11")]
3767 pub sid: ::prost::alloc::string::String,
3768 #[deprecated]
3770 #[prost(bool, tag="12")]
3771 pub stereo: bool,
3772 #[prost(bool, tag="13")]
3774 pub disable_red: bool,
3775 #[prost(enumeration="encryption::Type", tag="14")]
3776 pub encryption: i32,
3777 #[prost(string, tag="15")]
3780 pub stream: ::prost::alloc::string::String,
3781 #[prost(enumeration="BackupCodecPolicy", tag="16")]
3782 pub backup_codec_policy: i32,
3783 #[prost(enumeration="AudioTrackFeature", repeated, tag="17")]
3784 pub audio_features: ::prost::alloc::vec::Vec<i32>,
3785 #[prost(enumeration="PacketTrailerFeature", repeated, tag="18")]
3786 pub packet_trailer_features: ::prost::alloc::vec::Vec<i32>,
3787}
3788#[allow(clippy::derive_partial_eq_without_eq)]
3789#[derive(Clone, PartialEq, ::prost::Message)]
3790pub struct PublishDataTrackRequest {
3791 #[prost(uint32, tag="1")]
3794 pub pub_handle: u32,
3795 #[prost(string, tag="2")]
3798 pub name: ::prost::alloc::string::String,
3799 #[prost(enumeration="encryption::Type", tag="3")]
3801 pub encryption: i32,
3802}
3803#[allow(clippy::derive_partial_eq_without_eq)]
3804#[derive(Clone, PartialEq, ::prost::Message)]
3805pub struct PublishDataTrackResponse {
3806 #[prost(message, optional, tag="1")]
3808 pub info: ::core::option::Option<DataTrackInfo>,
3809}
3810#[allow(clippy::derive_partial_eq_without_eq)]
3811#[derive(Clone, PartialEq, ::prost::Message)]
3812pub struct UnpublishDataTrackRequest {
3813 #[prost(uint32, tag="1")]
3815 pub pub_handle: u32,
3816}
3817#[allow(clippy::derive_partial_eq_without_eq)]
3818#[derive(Clone, PartialEq, ::prost::Message)]
3819pub struct UnpublishDataTrackResponse {
3820 #[prost(message, optional, tag="1")]
3822 pub info: ::core::option::Option<DataTrackInfo>,
3823}
3824#[allow(clippy::derive_partial_eq_without_eq)]
3825#[derive(Clone, PartialEq, ::prost::Message)]
3826pub struct DataTrackSubscriberHandles {
3827 #[prost(map="uint32, message", tag="1")]
3829 pub sub_handles: ::std::collections::HashMap<u32, data_track_subscriber_handles::PublishedDataTrack>,
3830}
3831pub mod data_track_subscriber_handles {
3833 #[allow(clippy::derive_partial_eq_without_eq)]
3834#[derive(Clone, PartialEq, ::prost::Message)]
3835 pub struct PublishedDataTrack {
3836 #[prost(string, tag="1")]
3837 pub publisher_identity: ::prost::alloc::string::String,
3838 #[prost(string, tag="2")]
3839 pub publisher_sid: ::prost::alloc::string::String,
3840 #[prost(string, tag="3")]
3841 pub track_sid: ::prost::alloc::string::String,
3842 }
3843}
3844#[allow(clippy::derive_partial_eq_without_eq)]
3845#[derive(Clone, PartialEq, ::prost::Message)]
3846pub struct TrickleRequest {
3847 #[prost(string, tag="1")]
3848 pub candidate_init: ::prost::alloc::string::String,
3849 #[prost(enumeration="SignalTarget", tag="2")]
3850 pub target: i32,
3851 #[prost(bool, tag="3")]
3852 pub r#final: bool,
3853}
3854#[allow(clippy::derive_partial_eq_without_eq)]
3855#[derive(Clone, PartialEq, ::prost::Message)]
3856pub struct MuteTrackRequest {
3857 #[prost(string, tag="1")]
3858 pub sid: ::prost::alloc::string::String,
3859 #[prost(bool, tag="2")]
3860 pub muted: bool,
3861}
3862#[allow(clippy::derive_partial_eq_without_eq)]
3863#[derive(Clone, PartialEq, ::prost::Message)]
3864pub struct JoinResponse {
3865 #[prost(message, optional, tag="1")]
3866 pub room: ::core::option::Option<Room>,
3867 #[prost(message, optional, tag="2")]
3868 pub participant: ::core::option::Option<ParticipantInfo>,
3869 #[prost(message, repeated, tag="3")]
3870 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3871 #[prost(string, tag="4")]
3873 pub server_version: ::prost::alloc::string::String,
3874 #[prost(message, repeated, tag="5")]
3875 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3876 #[prost(bool, tag="6")]
3878 pub subscriber_primary: bool,
3879 #[prost(string, tag="7")]
3882 pub alternative_url: ::prost::alloc::string::String,
3883 #[prost(message, optional, tag="8")]
3884 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3885 #[prost(string, tag="9")]
3887 pub server_region: ::prost::alloc::string::String,
3888 #[prost(int32, tag="10")]
3889 pub ping_timeout: i32,
3890 #[prost(int32, tag="11")]
3891 pub ping_interval: i32,
3892 #[prost(message, optional, tag="12")]
3893 pub server_info: ::core::option::Option<ServerInfo>,
3894 #[prost(bytes="vec", tag="13")]
3896 pub sif_trailer: ::prost::alloc::vec::Vec<u8>,
3897 #[prost(message, repeated, tag="14")]
3898 pub enabled_publish_codecs: ::prost::alloc::vec::Vec<Codec>,
3899 #[prost(bool, tag="15")]
3901 pub fast_publish: bool,
3902}
3903#[allow(clippy::derive_partial_eq_without_eq)]
3904#[derive(Clone, PartialEq, ::prost::Message)]
3905pub struct ReconnectResponse {
3906 #[prost(message, repeated, tag="1")]
3907 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3908 #[prost(message, optional, tag="2")]
3909 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3910 #[prost(message, optional, tag="3")]
3911 pub server_info: ::core::option::Option<ServerInfo>,
3912 #[prost(uint32, tag="4")]
3914 pub last_message_seq: u32,
3915}
3916#[allow(clippy::derive_partial_eq_without_eq)]
3917#[derive(Clone, PartialEq, ::prost::Message)]
3918pub struct TrackPublishedResponse {
3919 #[prost(string, tag="1")]
3920 pub cid: ::prost::alloc::string::String,
3921 #[prost(message, optional, tag="2")]
3922 pub track: ::core::option::Option<TrackInfo>,
3923}
3924#[allow(clippy::derive_partial_eq_without_eq)]
3925#[derive(Clone, PartialEq, ::prost::Message)]
3926pub struct TrackUnpublishedResponse {
3927 #[prost(string, tag="1")]
3928 pub track_sid: ::prost::alloc::string::String,
3929}
3930#[allow(clippy::derive_partial_eq_without_eq)]
3931#[derive(Clone, PartialEq, ::prost::Message)]
3932pub struct SessionDescription {
3933 #[prost(string, tag="1")]
3935 pub r#type: ::prost::alloc::string::String,
3936 #[prost(string, tag="2")]
3937 pub sdp: ::prost::alloc::string::String,
3938 #[prost(uint32, tag="3")]
3939 pub id: u32,
3940 #[prost(map="string, string", tag="4")]
3941 pub mid_to_track_id: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3942}
3943#[allow(clippy::derive_partial_eq_without_eq)]
3944#[derive(Clone, PartialEq, ::prost::Message)]
3945pub struct ParticipantUpdate {
3946 #[prost(message, repeated, tag="1")]
3947 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3948}
3949#[allow(clippy::derive_partial_eq_without_eq)]
3950#[derive(Clone, PartialEq, ::prost::Message)]
3951pub struct UpdateSubscription {
3952 #[prost(string, repeated, tag="1")]
3953 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3954 #[prost(bool, tag="2")]
3955 pub subscribe: bool,
3956 #[prost(message, repeated, tag="3")]
3957 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
3958}
3959#[allow(clippy::derive_partial_eq_without_eq)]
3960#[derive(Clone, PartialEq, ::prost::Message)]
3961pub struct UpdateDataSubscription {
3962 #[prost(message, repeated, tag="1")]
3963 pub updates: ::prost::alloc::vec::Vec<update_data_subscription::Update>,
3964}
3965pub mod update_data_subscription {
3967 #[allow(clippy::derive_partial_eq_without_eq)]
3968#[derive(Clone, PartialEq, ::prost::Message)]
3969 pub struct Update {
3970 #[prost(string, tag="1")]
3971 pub track_sid: ::prost::alloc::string::String,
3972 #[prost(bool, tag="2")]
3973 pub subscribe: bool,
3974 #[prost(message, optional, tag="3")]
3977 pub options: ::core::option::Option<super::DataTrackSubscriptionOptions>,
3978 }
3979}
3980#[allow(clippy::derive_partial_eq_without_eq)]
3981#[derive(Clone, PartialEq, ::prost::Message)]
3982pub struct UpdateTrackSettings {
3983 #[prost(string, repeated, tag="1")]
3984 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3985 #[prost(bool, tag="3")]
3987 pub disabled: bool,
3988 #[prost(enumeration="VideoQuality", tag="4")]
3990 pub quality: i32,
3991 #[prost(uint32, tag="5")]
3993 pub width: u32,
3994 #[prost(uint32, tag="6")]
3996 pub height: u32,
3997 #[prost(uint32, tag="7")]
3998 pub fps: u32,
3999 #[prost(uint32, tag="8")]
4007 pub priority: u32,
4008}
4009#[allow(clippy::derive_partial_eq_without_eq)]
4010#[derive(Clone, PartialEq, ::prost::Message)]
4011pub struct UpdateLocalAudioTrack {
4012 #[prost(string, tag="1")]
4013 pub track_sid: ::prost::alloc::string::String,
4014 #[prost(enumeration="AudioTrackFeature", repeated, tag="2")]
4015 pub features: ::prost::alloc::vec::Vec<i32>,
4016}
4017#[allow(clippy::derive_partial_eq_without_eq)]
4018#[derive(Clone, PartialEq, ::prost::Message)]
4019pub struct UpdateLocalVideoTrack {
4020 #[prost(string, tag="1")]
4021 pub track_sid: ::prost::alloc::string::String,
4022 #[prost(uint32, tag="2")]
4023 pub width: u32,
4024 #[prost(uint32, tag="3")]
4025 pub height: u32,
4026}
4027#[allow(clippy::derive_partial_eq_without_eq)]
4028#[derive(Clone, PartialEq, ::prost::Message)]
4029pub struct LeaveRequest {
4030 #[prost(bool, tag="1")]
4034 pub can_reconnect: bool,
4035 #[prost(enumeration="DisconnectReason", tag="2")]
4036 pub reason: i32,
4037 #[prost(enumeration="leave_request::Action", tag="3")]
4038 pub action: i32,
4039 #[prost(message, optional, tag="4")]
4040 pub regions: ::core::option::Option<RegionSettings>,
4041}
4042pub mod leave_request {
4044 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4046 #[repr(i32)]
4047 pub enum Action {
4048 Disconnect = 0,
4050 Resume = 1,
4052 Reconnect = 2,
4054 }
4055 impl Action {
4056 pub fn as_str_name(&self) -> &'static str {
4061 match self {
4062 Action::Disconnect => "DISCONNECT",
4063 Action::Resume => "RESUME",
4064 Action::Reconnect => "RECONNECT",
4065 }
4066 }
4067 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4069 match value {
4070 "DISCONNECT" => Some(Self::Disconnect),
4071 "RESUME" => Some(Self::Resume),
4072 "RECONNECT" => Some(Self::Reconnect),
4073 _ => None,
4074 }
4075 }
4076 }
4077}
4078#[allow(clippy::derive_partial_eq_without_eq)]
4080#[derive(Clone, PartialEq, ::prost::Message)]
4081pub struct UpdateVideoLayers {
4082 #[prost(string, tag="1")]
4083 pub track_sid: ::prost::alloc::string::String,
4084 #[prost(message, repeated, tag="2")]
4085 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
4086}
4087#[allow(clippy::derive_partial_eq_without_eq)]
4088#[derive(Clone, PartialEq, ::prost::Message)]
4089pub struct UpdateParticipantMetadata {
4090 #[prost(string, tag="1")]
4091 pub metadata: ::prost::alloc::string::String,
4092 #[prost(string, tag="2")]
4093 pub name: ::prost::alloc::string::String,
4094 #[prost(map="string, string", tag="3")]
4097 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4098 #[prost(uint32, tag="4")]
4099 pub request_id: u32,
4100}
4101#[allow(clippy::derive_partial_eq_without_eq)]
4102#[derive(Clone, PartialEq, ::prost::Message)]
4103pub struct IceServer {
4104 #[prost(string, repeated, tag="1")]
4105 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4106 #[prost(string, tag="2")]
4107 pub username: ::prost::alloc::string::String,
4108 #[prost(string, tag="3")]
4109 pub credential: ::prost::alloc::string::String,
4110}
4111#[allow(clippy::derive_partial_eq_without_eq)]
4112#[derive(Clone, PartialEq, ::prost::Message)]
4113pub struct SpeakersChanged {
4114 #[prost(message, repeated, tag="1")]
4115 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
4116}
4117#[allow(clippy::derive_partial_eq_without_eq)]
4118#[derive(Clone, PartialEq, ::prost::Message)]
4119pub struct RoomUpdate {
4120 #[prost(message, optional, tag="1")]
4121 pub room: ::core::option::Option<Room>,
4122}
4123#[allow(clippy::derive_partial_eq_without_eq)]
4124#[derive(Clone, PartialEq, ::prost::Message)]
4125pub struct ConnectionQualityInfo {
4126 #[prost(string, tag="1")]
4127 pub participant_sid: ::prost::alloc::string::String,
4128 #[prost(enumeration="ConnectionQuality", tag="2")]
4129 pub quality: i32,
4130 #[prost(float, tag="3")]
4131 pub score: f32,
4132}
4133#[allow(clippy::derive_partial_eq_without_eq)]
4134#[derive(Clone, PartialEq, ::prost::Message)]
4135pub struct ConnectionQualityUpdate {
4136 #[prost(message, repeated, tag="1")]
4137 pub updates: ::prost::alloc::vec::Vec<ConnectionQualityInfo>,
4138}
4139#[allow(clippy::derive_partial_eq_without_eq)]
4140#[derive(Clone, PartialEq, ::prost::Message)]
4141pub struct StreamStateInfo {
4142 #[prost(string, tag="1")]
4143 pub participant_sid: ::prost::alloc::string::String,
4144 #[prost(string, tag="2")]
4145 pub track_sid: ::prost::alloc::string::String,
4146 #[prost(enumeration="StreamState", tag="3")]
4147 pub state: i32,
4148}
4149#[allow(clippy::derive_partial_eq_without_eq)]
4150#[derive(Clone, PartialEq, ::prost::Message)]
4151pub struct StreamStateUpdate {
4152 #[prost(message, repeated, tag="1")]
4153 pub stream_states: ::prost::alloc::vec::Vec<StreamStateInfo>,
4154}
4155#[allow(clippy::derive_partial_eq_without_eq)]
4156#[derive(Clone, PartialEq, ::prost::Message)]
4157pub struct SubscribedQuality {
4158 #[prost(enumeration="VideoQuality", tag="1")]
4159 pub quality: i32,
4160 #[prost(bool, tag="2")]
4161 pub enabled: bool,
4162}
4163#[allow(clippy::derive_partial_eq_without_eq)]
4164#[derive(Clone, PartialEq, ::prost::Message)]
4165pub struct SubscribedCodec {
4166 #[prost(string, tag="1")]
4167 pub codec: ::prost::alloc::string::String,
4168 #[prost(message, repeated, tag="2")]
4169 pub qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
4170}
4171#[allow(clippy::derive_partial_eq_without_eq)]
4172#[derive(Clone, PartialEq, ::prost::Message)]
4173pub struct SubscribedQualityUpdate {
4174 #[prost(string, tag="1")]
4175 pub track_sid: ::prost::alloc::string::String,
4176 #[deprecated]
4177 #[prost(message, repeated, tag="2")]
4178 pub subscribed_qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
4179 #[prost(message, repeated, tag="3")]
4180 pub subscribed_codecs: ::prost::alloc::vec::Vec<SubscribedCodec>,
4181}
4182#[allow(clippy::derive_partial_eq_without_eq)]
4183#[derive(Clone, PartialEq, ::prost::Message)]
4184pub struct SubscribedAudioCodecUpdate {
4185 #[prost(string, tag="1")]
4186 pub track_sid: ::prost::alloc::string::String,
4187 #[prost(message, repeated, tag="2")]
4188 pub subscribed_audio_codecs: ::prost::alloc::vec::Vec<SubscribedAudioCodec>,
4189}
4190#[allow(clippy::derive_partial_eq_without_eq)]
4191#[derive(Clone, PartialEq, ::prost::Message)]
4192pub struct TrackPermission {
4193 #[prost(string, tag="1")]
4195 pub participant_sid: ::prost::alloc::string::String,
4196 #[prost(bool, tag="2")]
4197 pub all_tracks: bool,
4198 #[prost(string, repeated, tag="3")]
4199 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4200 #[prost(string, tag="4")]
4201 pub participant_identity: ::prost::alloc::string::String,
4202}
4203#[allow(clippy::derive_partial_eq_without_eq)]
4204#[derive(Clone, PartialEq, ::prost::Message)]
4205pub struct SubscriptionPermission {
4206 #[prost(bool, tag="1")]
4207 pub all_participants: bool,
4208 #[prost(message, repeated, tag="2")]
4209 pub track_permissions: ::prost::alloc::vec::Vec<TrackPermission>,
4210}
4211#[allow(clippy::derive_partial_eq_without_eq)]
4212#[derive(Clone, PartialEq, ::prost::Message)]
4213pub struct SubscriptionPermissionUpdate {
4214 #[prost(string, tag="1")]
4215 pub participant_sid: ::prost::alloc::string::String,
4216 #[prost(string, tag="2")]
4217 pub track_sid: ::prost::alloc::string::String,
4218 #[prost(bool, tag="3")]
4219 pub allowed: bool,
4220}
4221#[allow(clippy::derive_partial_eq_without_eq)]
4222#[derive(Clone, PartialEq, ::prost::Message)]
4223pub struct RoomMovedResponse {
4224 #[prost(message, optional, tag="1")]
4226 pub room: ::core::option::Option<Room>,
4227 #[prost(string, tag="2")]
4229 pub token: ::prost::alloc::string::String,
4230 #[prost(message, optional, tag="3")]
4231 pub participant: ::core::option::Option<ParticipantInfo>,
4232 #[prost(message, repeated, tag="4")]
4233 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4234}
4235#[allow(clippy::derive_partial_eq_without_eq)]
4236#[derive(Clone, PartialEq, ::prost::Message)]
4237pub struct SyncState {
4238 #[prost(message, optional, tag="1")]
4242 pub answer: ::core::option::Option<SessionDescription>,
4243 #[prost(message, optional, tag="2")]
4244 pub subscription: ::core::option::Option<UpdateSubscription>,
4245 #[prost(message, repeated, tag="3")]
4246 pub publish_tracks: ::prost::alloc::vec::Vec<TrackPublishedResponse>,
4247 #[prost(message, repeated, tag="4")]
4248 pub data_channels: ::prost::alloc::vec::Vec<DataChannelInfo>,
4249 #[prost(message, optional, tag="5")]
4253 pub offer: ::core::option::Option<SessionDescription>,
4254 #[prost(string, repeated, tag="6")]
4255 pub track_sids_disabled: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4256 #[prost(message, repeated, tag="7")]
4257 pub datachannel_receive_states: ::prost::alloc::vec::Vec<DataChannelReceiveState>,
4258 #[prost(message, repeated, tag="8")]
4259 pub publish_data_tracks: ::prost::alloc::vec::Vec<PublishDataTrackResponse>,
4260}
4261#[allow(clippy::derive_partial_eq_without_eq)]
4262#[derive(Clone, PartialEq, ::prost::Message)]
4263pub struct DataChannelReceiveState {
4264 #[prost(string, tag="1")]
4265 pub publisher_sid: ::prost::alloc::string::String,
4266 #[prost(uint32, tag="2")]
4267 pub last_seq: u32,
4268}
4269#[allow(clippy::derive_partial_eq_without_eq)]
4270#[derive(Clone, PartialEq, ::prost::Message)]
4271pub struct DataChannelInfo {
4272 #[prost(string, tag="1")]
4273 pub label: ::prost::alloc::string::String,
4274 #[prost(uint32, tag="2")]
4275 pub id: u32,
4276 #[prost(enumeration="SignalTarget", tag="3")]
4277 pub target: i32,
4278}
4279#[allow(clippy::derive_partial_eq_without_eq)]
4280#[derive(Clone, PartialEq, ::prost::Message)]
4281pub struct SimulateScenario {
4282 #[prost(oneof="simulate_scenario::Scenario", tags="1, 2, 3, 4, 5, 6, 7, 8, 9")]
4283 pub scenario: ::core::option::Option<simulate_scenario::Scenario>,
4284}
4285pub mod simulate_scenario {
4287 #[allow(clippy::derive_partial_eq_without_eq)]
4288#[derive(Clone, PartialEq, ::prost::Oneof)]
4289 pub enum Scenario {
4290 #[prost(int32, tag="1")]
4292 SpeakerUpdate(i32),
4293 #[prost(bool, tag="2")]
4295 NodeFailure(bool),
4296 #[prost(bool, tag="3")]
4298 Migration(bool),
4299 #[prost(bool, tag="4")]
4301 ServerLeave(bool),
4302 #[prost(enumeration="super::CandidateProtocol", tag="5")]
4304 SwitchCandidateProtocol(i32),
4305 #[prost(int64, tag="6")]
4308 SubscriberBandwidth(i64),
4309 #[prost(bool, tag="7")]
4311 DisconnectSignalOnResume(bool),
4312 #[prost(bool, tag="8")]
4314 DisconnectSignalOnResumeNoMessages(bool),
4315 #[prost(bool, tag="9")]
4317 LeaveRequestFullReconnect(bool),
4318 }
4319}
4320#[allow(clippy::derive_partial_eq_without_eq)]
4321#[derive(Clone, PartialEq, ::prost::Message)]
4322pub struct Ping {
4323 #[prost(int64, tag="1")]
4324 pub timestamp: i64,
4325 #[prost(int64, tag="2")]
4327 pub rtt: i64,
4328}
4329#[allow(clippy::derive_partial_eq_without_eq)]
4330#[derive(Clone, PartialEq, ::prost::Message)]
4331pub struct Pong {
4332 #[prost(int64, tag="1")]
4334 pub last_ping_timestamp: i64,
4335 #[prost(int64, tag="2")]
4336 pub timestamp: i64,
4337}
4338#[allow(clippy::derive_partial_eq_without_eq)]
4339#[derive(Clone, PartialEq, ::prost::Message)]
4340pub struct RegionSettings {
4341 #[prost(message, repeated, tag="1")]
4342 pub regions: ::prost::alloc::vec::Vec<RegionInfo>,
4343}
4344#[allow(clippy::derive_partial_eq_without_eq)]
4345#[derive(Clone, PartialEq, ::prost::Message)]
4346pub struct RegionInfo {
4347 #[prost(string, tag="1")]
4348 pub region: ::prost::alloc::string::String,
4349 #[prost(string, tag="2")]
4350 pub url: ::prost::alloc::string::String,
4351 #[prost(int64, tag="3")]
4352 pub distance: i64,
4353}
4354#[allow(clippy::derive_partial_eq_without_eq)]
4355#[derive(Clone, PartialEq, ::prost::Message)]
4356pub struct SubscriptionResponse {
4357 #[prost(string, tag="1")]
4358 pub track_sid: ::prost::alloc::string::String,
4359 #[prost(enumeration="SubscriptionError", tag="2")]
4360 pub err: i32,
4361}
4362#[allow(clippy::derive_partial_eq_without_eq)]
4363#[derive(Clone, PartialEq, ::prost::Message)]
4364pub struct RequestResponse {
4365 #[prost(uint32, tag="1")]
4366 pub request_id: u32,
4367 #[prost(enumeration="request_response::Reason", tag="2")]
4368 pub reason: i32,
4369 #[prost(string, tag="3")]
4370 pub message: ::prost::alloc::string::String,
4371 #[prost(oneof="request_response::Request", tags="4, 5, 6, 7, 8, 9, 10, 11")]
4372 pub request: ::core::option::Option<request_response::Request>,
4373}
4374pub mod request_response {
4376 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4377 #[repr(i32)]
4378 pub enum Reason {
4379 Ok = 0,
4380 NotFound = 1,
4381 NotAllowed = 2,
4382 LimitExceeded = 3,
4383 Queued = 4,
4384 UnsupportedType = 5,
4385 UnclassifiedError = 6,
4386 InvalidHandle = 7,
4387 InvalidName = 8,
4388 DuplicateHandle = 9,
4389 DuplicateName = 10,
4390 }
4391 impl Reason {
4392 pub fn as_str_name(&self) -> &'static str {
4397 match self {
4398 Reason::Ok => "OK",
4399 Reason::NotFound => "NOT_FOUND",
4400 Reason::NotAllowed => "NOT_ALLOWED",
4401 Reason::LimitExceeded => "LIMIT_EXCEEDED",
4402 Reason::Queued => "QUEUED",
4403 Reason::UnsupportedType => "UNSUPPORTED_TYPE",
4404 Reason::UnclassifiedError => "UNCLASSIFIED_ERROR",
4405 Reason::InvalidHandle => "INVALID_HANDLE",
4406 Reason::InvalidName => "INVALID_NAME",
4407 Reason::DuplicateHandle => "DUPLICATE_HANDLE",
4408 Reason::DuplicateName => "DUPLICATE_NAME",
4409 }
4410 }
4411 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4413 match value {
4414 "OK" => Some(Self::Ok),
4415 "NOT_FOUND" => Some(Self::NotFound),
4416 "NOT_ALLOWED" => Some(Self::NotAllowed),
4417 "LIMIT_EXCEEDED" => Some(Self::LimitExceeded),
4418 "QUEUED" => Some(Self::Queued),
4419 "UNSUPPORTED_TYPE" => Some(Self::UnsupportedType),
4420 "UNCLASSIFIED_ERROR" => Some(Self::UnclassifiedError),
4421 "INVALID_HANDLE" => Some(Self::InvalidHandle),
4422 "INVALID_NAME" => Some(Self::InvalidName),
4423 "DUPLICATE_HANDLE" => Some(Self::DuplicateHandle),
4424 "DUPLICATE_NAME" => Some(Self::DuplicateName),
4425 _ => None,
4426 }
4427 }
4428 }
4429 #[allow(clippy::derive_partial_eq_without_eq)]
4430#[derive(Clone, PartialEq, ::prost::Oneof)]
4431 pub enum Request {
4432 #[prost(message, tag="4")]
4433 Trickle(super::TrickleRequest),
4434 #[prost(message, tag="5")]
4435 AddTrack(super::AddTrackRequest),
4436 #[prost(message, tag="6")]
4437 Mute(super::MuteTrackRequest),
4438 #[prost(message, tag="7")]
4439 UpdateMetadata(super::UpdateParticipantMetadata),
4440 #[prost(message, tag="8")]
4441 UpdateAudioTrack(super::UpdateLocalAudioTrack),
4442 #[prost(message, tag="9")]
4443 UpdateVideoTrack(super::UpdateLocalVideoTrack),
4444 #[prost(message, tag="10")]
4445 PublishDataTrack(super::PublishDataTrackRequest),
4446 #[prost(message, tag="11")]
4447 UnpublishDataTrack(super::UnpublishDataTrackRequest),
4448 }
4449}
4450#[allow(clippy::derive_partial_eq_without_eq)]
4451#[derive(Clone, PartialEq, ::prost::Message)]
4452pub struct TrackSubscribed {
4453 #[prost(string, tag="1")]
4454 pub track_sid: ::prost::alloc::string::String,
4455}
4456#[allow(clippy::derive_partial_eq_without_eq)]
4457#[derive(Clone, PartialEq, ::prost::Message)]
4458pub struct ConnectionSettings {
4459 #[prost(bool, tag="1")]
4460 pub auto_subscribe: bool,
4461 #[prost(bool, tag="2")]
4462 pub adaptive_stream: bool,
4463 #[prost(bool, optional, tag="3")]
4464 pub subscriber_allow_pause: ::core::option::Option<bool>,
4465 #[prost(bool, tag="4")]
4466 pub disable_ice_lite: bool,
4467 #[prost(bool, optional, tag="5")]
4468 pub auto_subscribe_data_track: ::core::option::Option<bool>,
4469}
4470#[allow(clippy::derive_partial_eq_without_eq)]
4471#[derive(Clone, PartialEq, ::prost::Message)]
4472pub struct JoinRequest {
4473 #[prost(message, optional, tag="1")]
4474 pub client_info: ::core::option::Option<ClientInfo>,
4475 #[prost(message, optional, tag="2")]
4476 pub connection_settings: ::core::option::Option<ConnectionSettings>,
4477 #[prost(string, tag="3")]
4479 pub metadata: ::prost::alloc::string::String,
4480 #[prost(map="string, string", tag="4")]
4484 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4485 #[prost(message, repeated, tag="5")]
4486 pub add_track_requests: ::prost::alloc::vec::Vec<AddTrackRequest>,
4487 #[prost(message, optional, tag="6")]
4488 pub publisher_offer: ::core::option::Option<SessionDescription>,
4489 #[prost(bool, tag="7")]
4490 pub reconnect: bool,
4491 #[prost(enumeration="ReconnectReason", tag="8")]
4492 pub reconnect_reason: i32,
4493 #[prost(string, tag="9")]
4494 pub participant_sid: ::prost::alloc::string::String,
4495 #[prost(message, optional, tag="10")]
4496 pub sync_state: ::core::option::Option<SyncState>,
4497}
4498#[allow(clippy::derive_partial_eq_without_eq)]
4499#[derive(Clone, PartialEq, ::prost::Message)]
4500pub struct WrappedJoinRequest {
4501 #[prost(enumeration="wrapped_join_request::Compression", tag="1")]
4502 pub compression: i32,
4503 #[prost(bytes="vec", tag="2")]
4505 pub join_request: ::prost::alloc::vec::Vec<u8>,
4506}
4507pub mod wrapped_join_request {
4509 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4510 #[repr(i32)]
4511 pub enum Compression {
4512 None = 0,
4513 Gzip = 1,
4514 }
4515 impl Compression {
4516 pub fn as_str_name(&self) -> &'static str {
4521 match self {
4522 Compression::None => "NONE",
4523 Compression::Gzip => "GZIP",
4524 }
4525 }
4526 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4528 match value {
4529 "NONE" => Some(Self::None),
4530 "GZIP" => Some(Self::Gzip),
4531 _ => None,
4532 }
4533 }
4534 }
4535}
4536#[allow(clippy::derive_partial_eq_without_eq)]
4537#[derive(Clone, PartialEq, ::prost::Message)]
4538pub struct MediaSectionsRequirement {
4539 #[prost(uint32, tag="1")]
4540 pub num_audios: u32,
4541 #[prost(uint32, tag="2")]
4542 pub num_videos: u32,
4543}
4544#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4545#[repr(i32)]
4546pub enum SignalTarget {
4547 Publisher = 0,
4548 Subscriber = 1,
4549}
4550impl SignalTarget {
4551 pub fn as_str_name(&self) -> &'static str {
4556 match self {
4557 SignalTarget::Publisher => "PUBLISHER",
4558 SignalTarget::Subscriber => "SUBSCRIBER",
4559 }
4560 }
4561 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4563 match value {
4564 "PUBLISHER" => Some(Self::Publisher),
4565 "SUBSCRIBER" => Some(Self::Subscriber),
4566 _ => None,
4567 }
4568 }
4569}
4570#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4571#[repr(i32)]
4572pub enum StreamState {
4573 Active = 0,
4574 Paused = 1,
4575}
4576impl StreamState {
4577 pub fn as_str_name(&self) -> &'static str {
4582 match self {
4583 StreamState::Active => "ACTIVE",
4584 StreamState::Paused => "PAUSED",
4585 }
4586 }
4587 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4589 match value {
4590 "ACTIVE" => Some(Self::Active),
4591 "PAUSED" => Some(Self::Paused),
4592 _ => None,
4593 }
4594 }
4595}
4596#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4597#[repr(i32)]
4598pub enum CandidateProtocol {
4599 Udp = 0,
4600 Tcp = 1,
4601 Tls = 2,
4602}
4603impl CandidateProtocol {
4604 pub fn as_str_name(&self) -> &'static str {
4609 match self {
4610 CandidateProtocol::Udp => "UDP",
4611 CandidateProtocol::Tcp => "TCP",
4612 CandidateProtocol::Tls => "TLS",
4613 }
4614 }
4615 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4617 match value {
4618 "UDP" => Some(Self::Udp),
4619 "TCP" => Some(Self::Tcp),
4620 "TLS" => Some(Self::Tls),
4621 _ => None,
4622 }
4623 }
4624}
4625#[allow(clippy::derive_partial_eq_without_eq)]
4626#[derive(Clone, PartialEq, ::prost::Message)]
4627pub struct Job {
4628 #[prost(string, tag="1")]
4629 pub id: ::prost::alloc::string::String,
4630 #[prost(string, tag="9")]
4631 pub dispatch_id: ::prost::alloc::string::String,
4632 #[prost(enumeration="JobType", tag="2")]
4633 pub r#type: i32,
4634 #[prost(message, optional, tag="3")]
4635 pub room: ::core::option::Option<Room>,
4636 #[prost(message, optional, tag="4")]
4637 pub participant: ::core::option::Option<ParticipantInfo>,
4638 #[deprecated]
4639 #[prost(string, tag="5")]
4640 pub namespace: ::prost::alloc::string::String,
4641 #[prost(string, tag="6")]
4642 pub metadata: ::prost::alloc::string::String,
4643 #[prost(string, tag="7")]
4644 pub agent_name: ::prost::alloc::string::String,
4645 #[prost(message, optional, tag="8")]
4646 pub state: ::core::option::Option<JobState>,
4647 #[prost(bool, tag="10")]
4648 pub enable_recording: bool,
4649 #[prost(string, tag="11")]
4650 pub deployment: ::prost::alloc::string::String,
4651 #[prost(map="string, string", tag="12")]
4652 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4653}
4654#[allow(clippy::derive_partial_eq_without_eq)]
4655#[derive(Clone, PartialEq, ::prost::Message)]
4656pub struct JobState {
4657 #[prost(enumeration="JobStatus", tag="1")]
4658 pub status: i32,
4659 #[prost(string, tag="2")]
4660 pub error: ::prost::alloc::string::String,
4661 #[prost(int64, tag="3")]
4662 pub started_at: i64,
4663 #[prost(int64, tag="4")]
4664 pub ended_at: i64,
4665 #[prost(int64, tag="5")]
4666 pub updated_at: i64,
4667 #[prost(string, tag="6")]
4668 pub participant_identity: ::prost::alloc::string::String,
4669 #[prost(string, tag="7")]
4670 pub worker_id: ::prost::alloc::string::String,
4671 #[prost(string, tag="8")]
4672 pub agent_id: ::prost::alloc::string::String,
4673}
4674#[allow(clippy::derive_partial_eq_without_eq)]
4676#[derive(Clone, PartialEq, ::prost::Message)]
4677pub struct WorkerMessage {
4678 #[prost(oneof="worker_message::Message", tags="1, 2, 3, 4, 5, 6, 7")]
4679 pub message: ::core::option::Option<worker_message::Message>,
4680}
4681pub mod worker_message {
4683 #[allow(clippy::derive_partial_eq_without_eq)]
4684#[derive(Clone, PartialEq, ::prost::Oneof)]
4685 pub enum Message {
4686 #[prost(message, tag="1")]
4688 Register(super::RegisterWorkerRequest),
4689 #[prost(message, tag="2")]
4691 Availability(super::AvailabilityResponse),
4692 #[prost(message, tag="3")]
4694 UpdateWorker(super::UpdateWorkerStatus),
4695 #[prost(message, tag="4")]
4697 UpdateJob(super::UpdateJobStatus),
4698 #[prost(message, tag="5")]
4699 Ping(super::WorkerPing),
4700 #[prost(message, tag="6")]
4701 SimulateJob(super::SimulateJobRequest),
4702 #[prost(message, tag="7")]
4703 MigrateJob(super::MigrateJobRequest),
4704 }
4705}
4706#[allow(clippy::derive_partial_eq_without_eq)]
4708#[derive(Clone, PartialEq, ::prost::Message)]
4709pub struct ServerMessage {
4710 #[prost(oneof="server_message::Message", tags="1, 2, 3, 5, 4")]
4711 pub message: ::core::option::Option<server_message::Message>,
4712}
4713pub mod server_message {
4715 #[allow(clippy::derive_partial_eq_without_eq)]
4716#[derive(Clone, PartialEq, ::prost::Oneof)]
4717 pub enum Message {
4718 #[prost(message, tag="1")]
4720 Register(super::RegisterWorkerResponse),
4721 #[prost(message, tag="2")]
4723 Availability(super::AvailabilityRequest),
4724 #[prost(message, tag="3")]
4725 Assignment(super::JobAssignment),
4726 #[prost(message, tag="5")]
4727 Termination(super::JobTermination),
4728 #[prost(message, tag="4")]
4729 Pong(super::WorkerPong),
4730 }
4731}
4732#[allow(clippy::derive_partial_eq_without_eq)]
4733#[derive(Clone, PartialEq, ::prost::Message)]
4734pub struct SimulateJobRequest {
4735 #[prost(enumeration="JobType", tag="1")]
4736 pub r#type: i32,
4737 #[prost(message, optional, tag="2")]
4738 pub room: ::core::option::Option<Room>,
4739 #[prost(message, optional, tag="3")]
4740 pub participant: ::core::option::Option<ParticipantInfo>,
4741}
4742#[allow(clippy::derive_partial_eq_without_eq)]
4743#[derive(Clone, PartialEq, ::prost::Message)]
4744pub struct WorkerPing {
4745 #[prost(int64, tag="1")]
4746 pub timestamp: i64,
4747}
4748#[allow(clippy::derive_partial_eq_without_eq)]
4749#[derive(Clone, PartialEq, ::prost::Message)]
4750pub struct WorkerPong {
4751 #[prost(int64, tag="1")]
4752 pub last_timestamp: i64,
4753 #[prost(int64, tag="2")]
4754 pub timestamp: i64,
4755}
4756#[allow(clippy::derive_partial_eq_without_eq)]
4757#[derive(Clone, PartialEq, ::prost::Message)]
4758pub struct RegisterWorkerRequest {
4759 #[prost(enumeration="JobType", tag="1")]
4760 pub r#type: i32,
4761 #[prost(string, tag="8")]
4762 pub agent_name: ::prost::alloc::string::String,
4763 #[prost(string, tag="3")]
4765 pub version: ::prost::alloc::string::String,
4766 #[prost(uint32, tag="5")]
4768 pub ping_interval: u32,
4769 #[prost(string, optional, tag="6")]
4770 pub namespace: ::core::option::Option<::prost::alloc::string::String>,
4771 #[prost(message, optional, tag="7")]
4772 pub allowed_permissions: ::core::option::Option<ParticipantPermission>,
4773 #[prost(string, tag="9")]
4774 pub deployment: ::prost::alloc::string::String,
4775}
4776#[allow(clippy::derive_partial_eq_without_eq)]
4777#[derive(Clone, PartialEq, ::prost::Message)]
4778pub struct RegisterWorkerResponse {
4779 #[prost(string, tag="1")]
4780 pub worker_id: ::prost::alloc::string::String,
4781 #[prost(message, optional, tag="3")]
4782 pub server_info: ::core::option::Option<ServerInfo>,
4783}
4784#[allow(clippy::derive_partial_eq_without_eq)]
4785#[derive(Clone, PartialEq, ::prost::Message)]
4786pub struct MigrateJobRequest {
4787 #[prost(string, repeated, tag="2")]
4789 pub job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4790}
4791#[allow(clippy::derive_partial_eq_without_eq)]
4792#[derive(Clone, PartialEq, ::prost::Message)]
4793pub struct AvailabilityRequest {
4794 #[prost(message, optional, tag="1")]
4795 pub job: ::core::option::Option<Job>,
4796 #[prost(bool, tag="2")]
4799 pub resuming: bool,
4800}
4801#[allow(clippy::derive_partial_eq_without_eq)]
4802#[derive(Clone, PartialEq, ::prost::Message)]
4803pub struct AvailabilityResponse {
4804 #[prost(string, tag="1")]
4805 pub job_id: ::prost::alloc::string::String,
4806 #[prost(bool, tag="2")]
4807 pub available: bool,
4808 #[prost(bool, tag="3")]
4809 pub supports_resume: bool,
4810 #[prost(bool, tag="8")]
4811 pub terminate: bool,
4812 #[prost(string, tag="4")]
4813 pub participant_name: ::prost::alloc::string::String,
4814 #[prost(string, tag="5")]
4815 pub participant_identity: ::prost::alloc::string::String,
4816 #[prost(string, tag="6")]
4817 pub participant_metadata: ::prost::alloc::string::String,
4818 #[prost(map="string, string", tag="7")]
4820 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4821}
4822#[allow(clippy::derive_partial_eq_without_eq)]
4823#[derive(Clone, PartialEq, ::prost::Message)]
4824pub struct UpdateJobStatus {
4825 #[prost(string, tag="1")]
4826 pub job_id: ::prost::alloc::string::String,
4827 #[prost(enumeration="JobStatus", tag="2")]
4829 pub status: i32,
4830 #[prost(string, tag="3")]
4832 pub error: ::prost::alloc::string::String,
4833}
4834#[allow(clippy::derive_partial_eq_without_eq)]
4835#[derive(Clone, PartialEq, ::prost::Message)]
4836pub struct UpdateWorkerStatus {
4837 #[prost(enumeration="WorkerStatus", optional, tag="1")]
4838 pub status: ::core::option::Option<i32>,
4839 #[prost(float, tag="3")]
4841 pub load: f32,
4842 #[prost(uint32, tag="4")]
4843 pub job_count: u32,
4844}
4845#[allow(clippy::derive_partial_eq_without_eq)]
4846#[derive(Clone, PartialEq, ::prost::Message)]
4847pub struct JobAssignment {
4848 #[prost(message, optional, tag="1")]
4849 pub job: ::core::option::Option<Job>,
4850 #[prost(string, optional, tag="2")]
4851 pub url: ::core::option::Option<::prost::alloc::string::String>,
4852 #[prost(string, tag="3")]
4853 pub token: ::prost::alloc::string::String,
4854}
4855#[allow(clippy::derive_partial_eq_without_eq)]
4856#[derive(Clone, PartialEq, ::prost::Message)]
4857pub struct JobTermination {
4858 #[prost(string, tag="1")]
4859 pub job_id: ::prost::alloc::string::String,
4860}
4861#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4862#[repr(i32)]
4863pub enum JobType {
4864 JtRoom = 0,
4865 JtPublisher = 1,
4866 JtParticipant = 2,
4867}
4868impl JobType {
4869 pub fn as_str_name(&self) -> &'static str {
4874 match self {
4875 JobType::JtRoom => "JT_ROOM",
4876 JobType::JtPublisher => "JT_PUBLISHER",
4877 JobType::JtParticipant => "JT_PARTICIPANT",
4878 }
4879 }
4880 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4882 match value {
4883 "JT_ROOM" => Some(Self::JtRoom),
4884 "JT_PUBLISHER" => Some(Self::JtPublisher),
4885 "JT_PARTICIPANT" => Some(Self::JtParticipant),
4886 _ => None,
4887 }
4888 }
4889}
4890#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4891#[repr(i32)]
4892pub enum WorkerStatus {
4893 WsAvailable = 0,
4894 WsFull = 1,
4895}
4896impl WorkerStatus {
4897 pub fn as_str_name(&self) -> &'static str {
4902 match self {
4903 WorkerStatus::WsAvailable => "WS_AVAILABLE",
4904 WorkerStatus::WsFull => "WS_FULL",
4905 }
4906 }
4907 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4909 match value {
4910 "WS_AVAILABLE" => Some(Self::WsAvailable),
4911 "WS_FULL" => Some(Self::WsFull),
4912 _ => None,
4913 }
4914 }
4915}
4916#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4917#[repr(i32)]
4918pub enum JobStatus {
4919 JsPending = 0,
4920 JsRunning = 1,
4921 JsSuccess = 2,
4922 JsFailed = 3,
4923}
4924impl JobStatus {
4925 pub fn as_str_name(&self) -> &'static str {
4930 match self {
4931 JobStatus::JsPending => "JS_PENDING",
4932 JobStatus::JsRunning => "JS_RUNNING",
4933 JobStatus::JsSuccess => "JS_SUCCESS",
4934 JobStatus::JsFailed => "JS_FAILED",
4935 }
4936 }
4937 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4939 match value {
4940 "JS_PENDING" => Some(Self::JsPending),
4941 "JS_RUNNING" => Some(Self::JsRunning),
4942 "JS_SUCCESS" => Some(Self::JsSuccess),
4943 "JS_FAILED" => Some(Self::JsFailed),
4944 _ => None,
4945 }
4946 }
4947}
4948#[allow(clippy::derive_partial_eq_without_eq)]
4949#[derive(Clone, PartialEq, ::prost::Message)]
4950pub struct CreateAgentDispatchRequest {
4951 #[prost(string, tag="1")]
4952 pub agent_name: ::prost::alloc::string::String,
4953 #[prost(string, tag="2")]
4954 pub room: ::prost::alloc::string::String,
4955 #[prost(string, tag="3")]
4956 pub metadata: ::prost::alloc::string::String,
4957 #[prost(enumeration="JobRestartPolicy", tag="4")]
4959 pub restart_policy: i32,
4960 #[prost(string, tag="5")]
4961 pub deployment: ::prost::alloc::string::String,
4962 #[prost(map="string, string", tag="6")]
4963 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4964}
4965#[allow(clippy::derive_partial_eq_without_eq)]
4966#[derive(Clone, PartialEq, ::prost::Message)]
4967pub struct RoomAgentDispatch {
4968 #[prost(string, tag="1")]
4969 pub agent_name: ::prost::alloc::string::String,
4970 #[prost(string, tag="2")]
4971 pub metadata: ::prost::alloc::string::String,
4972 #[prost(enumeration="JobRestartPolicy", tag="3")]
4974 pub restart_policy: i32,
4975 #[prost(string, tag="4")]
4976 pub deployment: ::prost::alloc::string::String,
4977 #[prost(map="string, string", tag="5")]
4978 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4979}
4980#[allow(clippy::derive_partial_eq_without_eq)]
4981#[derive(Clone, PartialEq, ::prost::Message)]
4982pub struct DeleteAgentDispatchRequest {
4983 #[prost(string, tag="1")]
4984 pub dispatch_id: ::prost::alloc::string::String,
4985 #[prost(string, tag="2")]
4986 pub room: ::prost::alloc::string::String,
4987}
4988#[allow(clippy::derive_partial_eq_without_eq)]
4989#[derive(Clone, PartialEq, ::prost::Message)]
4990pub struct ListAgentDispatchRequest {
4991 #[prost(string, tag="1")]
4993 pub dispatch_id: ::prost::alloc::string::String,
4994 #[prost(string, tag="2")]
4996 pub room: ::prost::alloc::string::String,
4997}
4998#[allow(clippy::derive_partial_eq_without_eq)]
4999#[derive(Clone, PartialEq, ::prost::Message)]
5000pub struct ListAgentDispatchResponse {
5001 #[prost(message, repeated, tag="1")]
5002 pub agent_dispatches: ::prost::alloc::vec::Vec<AgentDispatch>,
5003}
5004#[allow(clippy::derive_partial_eq_without_eq)]
5005#[derive(Clone, PartialEq, ::prost::Message)]
5006pub struct AgentDispatch {
5007 #[prost(string, tag="1")]
5008 pub id: ::prost::alloc::string::String,
5009 #[prost(string, tag="2")]
5010 pub agent_name: ::prost::alloc::string::String,
5011 #[prost(string, tag="3")]
5012 pub room: ::prost::alloc::string::String,
5013 #[prost(string, tag="4")]
5014 pub metadata: ::prost::alloc::string::String,
5015 #[prost(message, optional, tag="5")]
5016 pub state: ::core::option::Option<AgentDispatchState>,
5017 #[prost(enumeration="JobRestartPolicy", tag="6")]
5019 pub restart_policy: i32,
5020 #[prost(string, tag="7")]
5021 pub deployment: ::prost::alloc::string::String,
5022 #[prost(map="string, string", tag="8")]
5023 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5024}
5025#[allow(clippy::derive_partial_eq_without_eq)]
5026#[derive(Clone, PartialEq, ::prost::Message)]
5027pub struct AgentDispatchState {
5028 #[prost(message, repeated, tag="1")]
5031 pub jobs: ::prost::alloc::vec::Vec<Job>,
5032 #[prost(int64, tag="2")]
5033 pub created_at: i64,
5034 #[prost(int64, tag="3")]
5035 pub deleted_at: i64,
5036}
5037#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5038#[repr(i32)]
5039pub enum JobRestartPolicy {
5040 JrpOnFailure = 0,
5042 JrpNever = 1,
5044}
5045impl JobRestartPolicy {
5046 pub fn as_str_name(&self) -> &'static str {
5051 match self {
5052 JobRestartPolicy::JrpOnFailure => "JRP_ON_FAILURE",
5053 JobRestartPolicy::JrpNever => "JRP_NEVER",
5054 }
5055 }
5056 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5058 match value {
5059 "JRP_ON_FAILURE" => Some(Self::JrpOnFailure),
5060 "JRP_NEVER" => Some(Self::JrpNever),
5061 _ => None,
5062 }
5063 }
5064}
5065#[allow(clippy::derive_partial_eq_without_eq)]
5066#[derive(Clone, PartialEq, ::prost::Message)]
5067pub struct CreateRoomRequest {
5068 #[prost(string, tag="1")]
5070 pub name: ::prost::alloc::string::String,
5071 #[prost(string, tag="12")]
5073 pub room_preset: ::prost::alloc::string::String,
5074 #[prost(uint32, tag="2")]
5076 pub empty_timeout: u32,
5077 #[prost(uint32, tag="10")]
5079 pub departure_timeout: u32,
5080 #[prost(uint32, tag="3")]
5082 pub max_participants: u32,
5083 #[prost(string, tag="4")]
5085 pub node_id: ::prost::alloc::string::String,
5086 #[prost(string, tag="5")]
5088 pub metadata: ::prost::alloc::string::String,
5089 #[prost(map="string, string", tag="15")]
5091 pub tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5092 #[prost(message, optional, tag="6")]
5094 pub egress: ::core::option::Option<RoomEgress>,
5095 #[prost(uint32, tag="7")]
5097 pub min_playout_delay: u32,
5098 #[prost(uint32, tag="8")]
5099 pub max_playout_delay: u32,
5100 #[prost(bool, tag="9")]
5103 pub sync_streams: bool,
5104 #[prost(bool, tag="13")]
5106 pub replay_enabled: bool,
5107 #[prost(message, repeated, tag="14")]
5109 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5110}
5111#[allow(clippy::derive_partial_eq_without_eq)]
5112#[derive(Clone, PartialEq, ::prost::Message)]
5113pub struct RoomEgress {
5114 #[prost(message, optional, tag="1")]
5115 pub room: ::core::option::Option<RoomCompositeEgressRequest>,
5116 #[prost(message, optional, tag="3")]
5117 pub participant: ::core::option::Option<AutoParticipantEgress>,
5118 #[prost(message, optional, tag="2")]
5119 pub tracks: ::core::option::Option<AutoTrackEgress>,
5120}
5121#[allow(clippy::derive_partial_eq_without_eq)]
5122#[derive(Clone, PartialEq, ::prost::Message)]
5123pub struct RoomAgent {
5124 #[prost(message, repeated, tag="1")]
5125 pub dispatches: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5126}
5127#[allow(clippy::derive_partial_eq_without_eq)]
5128#[derive(Clone, PartialEq, ::prost::Message)]
5129pub struct ListRoomsRequest {
5130 #[prost(string, repeated, tag="1")]
5132 pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5133}
5134#[allow(clippy::derive_partial_eq_without_eq)]
5135#[derive(Clone, PartialEq, ::prost::Message)]
5136pub struct ListRoomsResponse {
5137 #[prost(message, repeated, tag="1")]
5138 pub rooms: ::prost::alloc::vec::Vec<Room>,
5139}
5140#[allow(clippy::derive_partial_eq_without_eq)]
5141#[derive(Clone, PartialEq, ::prost::Message)]
5142pub struct DeleteRoomRequest {
5143 #[prost(string, tag="1")]
5145 pub room: ::prost::alloc::string::String,
5146}
5147#[allow(clippy::derive_partial_eq_without_eq)]
5148#[derive(Clone, PartialEq, ::prost::Message)]
5149pub struct DeleteRoomResponse {
5150}
5151#[allow(clippy::derive_partial_eq_without_eq)]
5152#[derive(Clone, PartialEq, ::prost::Message)]
5153pub struct ListParticipantsRequest {
5154 #[prost(string, tag="1")]
5156 pub room: ::prost::alloc::string::String,
5157}
5158#[allow(clippy::derive_partial_eq_without_eq)]
5159#[derive(Clone, PartialEq, ::prost::Message)]
5160pub struct ListParticipantsResponse {
5161 #[prost(message, repeated, tag="1")]
5162 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
5163}
5164#[allow(clippy::derive_partial_eq_without_eq)]
5165#[derive(Clone, PartialEq, ::prost::Message)]
5166pub struct RoomParticipantIdentity {
5167 #[prost(string, tag="1")]
5169 pub room: ::prost::alloc::string::String,
5170 #[prost(string, tag="2")]
5172 pub identity: ::prost::alloc::string::String,
5173 #[prost(int64, tag="3")]
5176 pub revoke_token_ts: i64,
5177}
5178#[allow(clippy::derive_partial_eq_without_eq)]
5179#[derive(Clone, PartialEq, ::prost::Message)]
5180pub struct RemoveParticipantResponse {
5181}
5182#[allow(clippy::derive_partial_eq_without_eq)]
5183#[derive(Clone, PartialEq, ::prost::Message)]
5184pub struct MuteRoomTrackRequest {
5185 #[prost(string, tag="1")]
5187 pub room: ::prost::alloc::string::String,
5188 #[prost(string, tag="2")]
5189 pub identity: ::prost::alloc::string::String,
5190 #[prost(string, tag="3")]
5192 pub track_sid: ::prost::alloc::string::String,
5193 #[prost(bool, tag="4")]
5195 pub muted: bool,
5196}
5197#[allow(clippy::derive_partial_eq_without_eq)]
5198#[derive(Clone, PartialEq, ::prost::Message)]
5199pub struct MuteRoomTrackResponse {
5200 #[prost(message, optional, tag="1")]
5201 pub track: ::core::option::Option<TrackInfo>,
5202}
5203#[allow(clippy::derive_partial_eq_without_eq)]
5204#[derive(Clone, PartialEq, ::prost::Message)]
5205pub struct UpdateParticipantRequest {
5206 #[prost(string, tag="1")]
5207 pub room: ::prost::alloc::string::String,
5208 #[prost(string, tag="2")]
5209 pub identity: ::prost::alloc::string::String,
5210 #[prost(string, tag="3")]
5212 pub metadata: ::prost::alloc::string::String,
5213 #[prost(message, optional, tag="4")]
5215 pub permission: ::core::option::Option<ParticipantPermission>,
5216 #[prost(string, tag="5")]
5218 pub name: ::prost::alloc::string::String,
5219 #[prost(map="string, string", tag="6")]
5222 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5223}
5224#[allow(clippy::derive_partial_eq_without_eq)]
5225#[derive(Clone, PartialEq, ::prost::Message)]
5226pub struct UpdateSubscriptionsRequest {
5227 #[prost(string, tag="1")]
5228 pub room: ::prost::alloc::string::String,
5229 #[prost(string, tag="2")]
5230 pub identity: ::prost::alloc::string::String,
5231 #[prost(string, repeated, tag="3")]
5233 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5234 #[prost(bool, tag="4")]
5236 pub subscribe: bool,
5237 #[prost(message, repeated, tag="5")]
5239 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
5240}
5241#[allow(clippy::derive_partial_eq_without_eq)]
5243#[derive(Clone, PartialEq, ::prost::Message)]
5244pub struct UpdateSubscriptionsResponse {
5245}
5246#[allow(clippy::derive_partial_eq_without_eq)]
5247#[derive(Clone, PartialEq, ::prost::Message)]
5248pub struct SendDataRequest {
5249 #[prost(string, tag="1")]
5250 pub room: ::prost::alloc::string::String,
5251 #[prost(bytes="vec", tag="2")]
5252 pub data: ::prost::alloc::vec::Vec<u8>,
5253 #[prost(enumeration="data_packet::Kind", tag="3")]
5254 pub kind: i32,
5255 #[deprecated]
5257 #[prost(string, repeated, tag="4")]
5258 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5259 #[prost(string, repeated, tag="6")]
5261 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5262 #[prost(string, optional, tag="5")]
5263 pub topic: ::core::option::Option<::prost::alloc::string::String>,
5264 #[prost(bytes="vec", tag="7")]
5266 pub nonce: ::prost::alloc::vec::Vec<u8>,
5267}
5268#[allow(clippy::derive_partial_eq_without_eq)]
5270#[derive(Clone, PartialEq, ::prost::Message)]
5271pub struct SendDataResponse {
5272}
5273#[allow(clippy::derive_partial_eq_without_eq)]
5274#[derive(Clone, PartialEq, ::prost::Message)]
5275pub struct UpdateRoomMetadataRequest {
5276 #[prost(string, tag="1")]
5277 pub room: ::prost::alloc::string::String,
5278 #[prost(string, tag="2")]
5280 pub metadata: ::prost::alloc::string::String,
5281}
5282#[allow(clippy::derive_partial_eq_without_eq)]
5283#[derive(Clone, PartialEq, ::prost::Message)]
5284pub struct RoomConfiguration {
5285 #[prost(string, tag="1")]
5287 pub name: ::prost::alloc::string::String,
5288 #[prost(uint32, tag="2")]
5290 pub empty_timeout: u32,
5291 #[prost(uint32, tag="3")]
5293 pub departure_timeout: u32,
5294 #[prost(uint32, tag="4")]
5296 pub max_participants: u32,
5297 #[prost(string, tag="11")]
5299 pub metadata: ::prost::alloc::string::String,
5300 #[prost(message, optional, tag="5")]
5302 pub egress: ::core::option::Option<RoomEgress>,
5303 #[prost(uint32, tag="7")]
5305 pub min_playout_delay: u32,
5306 #[prost(uint32, tag="8")]
5307 pub max_playout_delay: u32,
5308 #[prost(bool, tag="9")]
5311 pub sync_streams: bool,
5312 #[prost(message, repeated, tag="10")]
5314 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5315 #[prost(map="string, string", tag="12")]
5317 pub tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5318}
5319#[allow(clippy::derive_partial_eq_without_eq)]
5320#[derive(Clone, PartialEq, ::prost::Message)]
5321pub struct ForwardParticipantRequest {
5322 #[prost(string, tag="1")]
5324 pub room: ::prost::alloc::string::String,
5325 #[prost(string, tag="2")]
5327 pub identity: ::prost::alloc::string::String,
5328 #[prost(string, tag="3")]
5330 pub destination_room: ::prost::alloc::string::String,
5331}
5332#[allow(clippy::derive_partial_eq_without_eq)]
5333#[derive(Clone, PartialEq, ::prost::Message)]
5334pub struct ForwardParticipantResponse {
5335}
5336#[allow(clippy::derive_partial_eq_without_eq)]
5337#[derive(Clone, PartialEq, ::prost::Message)]
5338pub struct MoveParticipantRequest {
5339 #[prost(string, tag="1")]
5341 pub room: ::prost::alloc::string::String,
5342 #[prost(string, tag="2")]
5344 pub identity: ::prost::alloc::string::String,
5345 #[prost(string, tag="3")]
5347 pub destination_room: ::prost::alloc::string::String,
5348}
5349#[allow(clippy::derive_partial_eq_without_eq)]
5350#[derive(Clone, PartialEq, ::prost::Message)]
5351pub struct MoveParticipantResponse {
5352}
5353#[allow(clippy::derive_partial_eq_without_eq)]
5354#[derive(Clone, PartialEq, ::prost::Message)]
5355pub struct PerformRpcRequest {
5356 #[prost(string, tag="1")]
5357 pub room: ::prost::alloc::string::String,
5358 #[prost(string, tag="2")]
5359 pub destination_identity: ::prost::alloc::string::String,
5360 #[prost(string, tag="3")]
5361 pub method: ::prost::alloc::string::String,
5362 #[prost(string, tag="4")]
5363 pub payload: ::prost::alloc::string::String,
5364 #[prost(uint32, tag="5")]
5365 pub response_timeout_ms: u32,
5366}
5367#[allow(clippy::derive_partial_eq_without_eq)]
5368#[derive(Clone, PartialEq, ::prost::Message)]
5369pub struct PerformRpcResponse {
5370 #[prost(string, tag="1")]
5371 pub payload: ::prost::alloc::string::String,
5372}
5373#[allow(clippy::derive_partial_eq_without_eq)]
5374#[derive(Clone, PartialEq, ::prost::Message)]
5375pub struct CreateIngressRequest {
5376 #[prost(enumeration="IngressInput", tag="1")]
5377 pub input_type: i32,
5378 #[prost(string, tag="9")]
5380 pub url: ::prost::alloc::string::String,
5381 #[prost(string, tag="2")]
5383 pub name: ::prost::alloc::string::String,
5384 #[prost(string, tag="3")]
5386 pub room_name: ::prost::alloc::string::String,
5387 #[prost(string, tag="4")]
5389 pub participant_identity: ::prost::alloc::string::String,
5390 #[prost(string, tag="5")]
5392 pub participant_name: ::prost::alloc::string::String,
5393 #[prost(string, tag="10")]
5395 pub participant_metadata: ::prost::alloc::string::String,
5396 #[deprecated]
5398 #[prost(bool, tag="8")]
5399 pub bypass_transcoding: bool,
5400 #[prost(bool, optional, tag="11")]
5402 pub enable_transcoding: ::core::option::Option<bool>,
5403 #[prost(message, optional, tag="6")]
5404 pub audio: ::core::option::Option<IngressAudioOptions>,
5405 #[prost(message, optional, tag="7")]
5406 pub video: ::core::option::Option<IngressVideoOptions>,
5407 #[prost(bool, optional, tag="12")]
5409 pub enabled: ::core::option::Option<bool>,
5410}
5411#[allow(clippy::derive_partial_eq_without_eq)]
5412#[derive(Clone, PartialEq, ::prost::Message)]
5413pub struct IngressAudioOptions {
5414 #[prost(string, tag="1")]
5415 pub name: ::prost::alloc::string::String,
5416 #[prost(enumeration="TrackSource", tag="2")]
5417 pub source: i32,
5418 #[prost(oneof="ingress_audio_options::EncodingOptions", tags="3, 4")]
5419 pub encoding_options: ::core::option::Option<ingress_audio_options::EncodingOptions>,
5420}
5421pub mod ingress_audio_options {
5423 #[allow(clippy::derive_partial_eq_without_eq)]
5424#[derive(Clone, PartialEq, ::prost::Oneof)]
5425 pub enum EncodingOptions {
5426 #[prost(enumeration="super::IngressAudioEncodingPreset", tag="3")]
5427 Preset(i32),
5428 #[prost(message, tag="4")]
5429 Options(super::IngressAudioEncodingOptions),
5430 }
5431}
5432#[allow(clippy::derive_partial_eq_without_eq)]
5433#[derive(Clone, PartialEq, ::prost::Message)]
5434pub struct IngressVideoOptions {
5435 #[prost(string, tag="1")]
5436 pub name: ::prost::alloc::string::String,
5437 #[prost(enumeration="TrackSource", tag="2")]
5438 pub source: i32,
5439 #[prost(oneof="ingress_video_options::EncodingOptions", tags="3, 4")]
5440 pub encoding_options: ::core::option::Option<ingress_video_options::EncodingOptions>,
5441}
5442pub mod ingress_video_options {
5444 #[allow(clippy::derive_partial_eq_without_eq)]
5445#[derive(Clone, PartialEq, ::prost::Oneof)]
5446 pub enum EncodingOptions {
5447 #[prost(enumeration="super::IngressVideoEncodingPreset", tag="3")]
5448 Preset(i32),
5449 #[prost(message, tag="4")]
5450 Options(super::IngressVideoEncodingOptions),
5451 }
5452}
5453#[allow(clippy::derive_partial_eq_without_eq)]
5454#[derive(Clone, PartialEq, ::prost::Message)]
5455pub struct IngressAudioEncodingOptions {
5456 #[prost(enumeration="AudioCodec", tag="1")]
5458 pub audio_codec: i32,
5459 #[prost(uint32, tag="2")]
5460 pub bitrate: u32,
5461 #[prost(bool, tag="3")]
5462 pub disable_dtx: bool,
5463 #[prost(uint32, tag="4")]
5464 pub channels: u32,
5465}
5466#[allow(clippy::derive_partial_eq_without_eq)]
5467#[derive(Clone, PartialEq, ::prost::Message)]
5468pub struct IngressVideoEncodingOptions {
5469 #[prost(enumeration="VideoCodec", tag="1")]
5471 pub video_codec: i32,
5472 #[prost(double, tag="2")]
5473 pub frame_rate: f64,
5474 #[prost(message, repeated, tag="3")]
5476 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
5477}
5478#[allow(clippy::derive_partial_eq_without_eq)]
5479#[derive(Clone, PartialEq, ::prost::Message)]
5480pub struct IngressInfo {
5481 #[prost(string, tag="1")]
5482 pub ingress_id: ::prost::alloc::string::String,
5483 #[prost(string, tag="2")]
5484 pub name: ::prost::alloc::string::String,
5485 #[prost(string, tag="3")]
5486 pub stream_key: ::prost::alloc::string::String,
5487 #[prost(string, tag="4")]
5489 pub url: ::prost::alloc::string::String,
5490 #[prost(enumeration="IngressInput", tag="5")]
5494 pub input_type: i32,
5495 #[deprecated]
5496 #[prost(bool, tag="13")]
5497 pub bypass_transcoding: bool,
5498 #[prost(bool, optional, tag="15")]
5499 pub enable_transcoding: ::core::option::Option<bool>,
5500 #[prost(message, optional, tag="6")]
5501 pub audio: ::core::option::Option<IngressAudioOptions>,
5502 #[prost(message, optional, tag="7")]
5503 pub video: ::core::option::Option<IngressVideoOptions>,
5504 #[prost(string, tag="8")]
5505 pub room_name: ::prost::alloc::string::String,
5506 #[prost(string, tag="9")]
5507 pub participant_identity: ::prost::alloc::string::String,
5508 #[prost(string, tag="10")]
5509 pub participant_name: ::prost::alloc::string::String,
5510 #[prost(string, tag="14")]
5511 pub participant_metadata: ::prost::alloc::string::String,
5512 #[prost(bool, tag="11")]
5513 pub reusable: bool,
5514 #[prost(message, optional, tag="12")]
5516 pub state: ::core::option::Option<IngressState>,
5517 #[prost(bool, optional, tag="16")]
5519 pub enabled: ::core::option::Option<bool>,
5520}
5521#[allow(clippy::derive_partial_eq_without_eq)]
5522#[derive(Clone, PartialEq, ::prost::Message)]
5523pub struct IngressState {
5524 #[prost(enumeration="ingress_state::Status", tag="1")]
5525 pub status: i32,
5526 #[prost(string, tag="2")]
5528 pub error: ::prost::alloc::string::String,
5529 #[prost(message, optional, tag="3")]
5530 pub video: ::core::option::Option<InputVideoState>,
5531 #[prost(message, optional, tag="4")]
5532 pub audio: ::core::option::Option<InputAudioState>,
5533 #[prost(string, tag="5")]
5535 pub room_id: ::prost::alloc::string::String,
5536 #[prost(int64, tag="7")]
5537 pub started_at: i64,
5538 #[prost(int64, tag="8")]
5539 pub ended_at: i64,
5540 #[prost(int64, tag="10")]
5541 pub updated_at: i64,
5542 #[prost(string, tag="9")]
5543 pub resource_id: ::prost::alloc::string::String,
5544 #[prost(message, repeated, tag="6")]
5545 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
5546}
5547pub mod ingress_state {
5549 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5550 #[repr(i32)]
5551 pub enum Status {
5552 EndpointInactive = 0,
5553 EndpointBuffering = 1,
5554 EndpointPublishing = 2,
5555 EndpointError = 3,
5556 EndpointComplete = 4,
5557 }
5558 impl Status {
5559 pub fn as_str_name(&self) -> &'static str {
5564 match self {
5565 Status::EndpointInactive => "ENDPOINT_INACTIVE",
5566 Status::EndpointBuffering => "ENDPOINT_BUFFERING",
5567 Status::EndpointPublishing => "ENDPOINT_PUBLISHING",
5568 Status::EndpointError => "ENDPOINT_ERROR",
5569 Status::EndpointComplete => "ENDPOINT_COMPLETE",
5570 }
5571 }
5572 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5574 match value {
5575 "ENDPOINT_INACTIVE" => Some(Self::EndpointInactive),
5576 "ENDPOINT_BUFFERING" => Some(Self::EndpointBuffering),
5577 "ENDPOINT_PUBLISHING" => Some(Self::EndpointPublishing),
5578 "ENDPOINT_ERROR" => Some(Self::EndpointError),
5579 "ENDPOINT_COMPLETE" => Some(Self::EndpointComplete),
5580 _ => None,
5581 }
5582 }
5583 }
5584}
5585#[allow(clippy::derive_partial_eq_without_eq)]
5586#[derive(Clone, PartialEq, ::prost::Message)]
5587pub struct InputVideoState {
5588 #[prost(string, tag="1")]
5589 pub mime_type: ::prost::alloc::string::String,
5590 #[prost(uint32, tag="2")]
5591 pub average_bitrate: u32,
5592 #[prost(uint32, tag="3")]
5593 pub width: u32,
5594 #[prost(uint32, tag="4")]
5595 pub height: u32,
5596 #[prost(double, tag="5")]
5597 pub framerate: f64,
5598}
5599#[allow(clippy::derive_partial_eq_without_eq)]
5600#[derive(Clone, PartialEq, ::prost::Message)]
5601pub struct InputAudioState {
5602 #[prost(string, tag="1")]
5603 pub mime_type: ::prost::alloc::string::String,
5604 #[prost(uint32, tag="2")]
5605 pub average_bitrate: u32,
5606 #[prost(uint32, tag="3")]
5607 pub channels: u32,
5608 #[prost(uint32, tag="4")]
5609 pub sample_rate: u32,
5610}
5611#[allow(clippy::derive_partial_eq_without_eq)]
5612#[derive(Clone, PartialEq, ::prost::Message)]
5613pub struct UpdateIngressRequest {
5614 #[prost(string, tag="1")]
5615 pub ingress_id: ::prost::alloc::string::String,
5616 #[prost(string, tag="2")]
5617 pub name: ::prost::alloc::string::String,
5618 #[prost(string, tag="3")]
5619 pub room_name: ::prost::alloc::string::String,
5620 #[prost(string, tag="4")]
5621 pub participant_identity: ::prost::alloc::string::String,
5622 #[prost(string, tag="5")]
5623 pub participant_name: ::prost::alloc::string::String,
5624 #[prost(string, tag="9")]
5625 pub participant_metadata: ::prost::alloc::string::String,
5626 #[deprecated]
5627 #[prost(bool, optional, tag="8")]
5628 pub bypass_transcoding: ::core::option::Option<bool>,
5629 #[prost(bool, optional, tag="10")]
5630 pub enable_transcoding: ::core::option::Option<bool>,
5631 #[prost(message, optional, tag="6")]
5632 pub audio: ::core::option::Option<IngressAudioOptions>,
5633 #[prost(message, optional, tag="7")]
5634 pub video: ::core::option::Option<IngressVideoOptions>,
5635 #[prost(bool, optional, tag="11")]
5637 pub enabled: ::core::option::Option<bool>,
5638}
5639#[allow(clippy::derive_partial_eq_without_eq)]
5640#[derive(Clone, PartialEq, ::prost::Message)]
5641pub struct ListIngressRequest {
5642 #[prost(message, optional, tag="3")]
5643 pub page_token: ::core::option::Option<TokenPagination>,
5644 #[prost(string, tag="1")]
5648 pub room_name: ::prost::alloc::string::String,
5649 #[prost(string, tag="2")]
5651 pub ingress_id: ::prost::alloc::string::String,
5652}
5653#[allow(clippy::derive_partial_eq_without_eq)]
5654#[derive(Clone, PartialEq, ::prost::Message)]
5655pub struct ListIngressResponse {
5656 #[prost(message, optional, tag="2")]
5657 pub next_page_token: ::core::option::Option<TokenPagination>,
5658 #[prost(message, repeated, tag="1")]
5660 pub items: ::prost::alloc::vec::Vec<IngressInfo>,
5661}
5662#[allow(clippy::derive_partial_eq_without_eq)]
5663#[derive(Clone, PartialEq, ::prost::Message)]
5664pub struct DeleteIngressRequest {
5665 #[prost(string, tag="1")]
5666 pub ingress_id: ::prost::alloc::string::String,
5667}
5668#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5669#[repr(i32)]
5670pub enum IngressInput {
5671 RtmpInput = 0,
5672 WhipInput = 1,
5673 UrlInput = 2,
5675}
5676impl IngressInput {
5677 pub fn as_str_name(&self) -> &'static str {
5682 match self {
5683 IngressInput::RtmpInput => "RTMP_INPUT",
5684 IngressInput::WhipInput => "WHIP_INPUT",
5685 IngressInput::UrlInput => "URL_INPUT",
5686 }
5687 }
5688 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5690 match value {
5691 "RTMP_INPUT" => Some(Self::RtmpInput),
5692 "WHIP_INPUT" => Some(Self::WhipInput),
5693 "URL_INPUT" => Some(Self::UrlInput),
5694 _ => None,
5695 }
5696 }
5697}
5698#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5699#[repr(i32)]
5700pub enum IngressAudioEncodingPreset {
5701 OpusStereo96kbps = 0,
5703 OpusMono64kbs = 1,
5705}
5706impl IngressAudioEncodingPreset {
5707 pub fn as_str_name(&self) -> &'static str {
5712 match self {
5713 IngressAudioEncodingPreset::OpusStereo96kbps => "OPUS_STEREO_96KBPS",
5714 IngressAudioEncodingPreset::OpusMono64kbs => "OPUS_MONO_64KBS",
5715 }
5716 }
5717 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5719 match value {
5720 "OPUS_STEREO_96KBPS" => Some(Self::OpusStereo96kbps),
5721 "OPUS_MONO_64KBS" => Some(Self::OpusMono64kbs),
5722 _ => None,
5723 }
5724 }
5725}
5726#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5727#[repr(i32)]
5728pub enum IngressVideoEncodingPreset {
5729 H264720p30fps3Layers = 0,
5731 H2641080p30fps3Layers = 1,
5733 H264540p25fps2Layers = 2,
5735 H264720p30fps1Layer = 3,
5737 H2641080p30fps1Layer = 4,
5739 H264720p30fps3LayersHighMotion = 5,
5741 H2641080p30fps3LayersHighMotion = 6,
5743 H264540p25fps2LayersHighMotion = 7,
5745 H264720p30fps1LayerHighMotion = 8,
5747 H2641080p30fps1LayerHighMotion = 9,
5749}
5750impl IngressVideoEncodingPreset {
5751 pub fn as_str_name(&self) -> &'static str {
5756 match self {
5757 IngressVideoEncodingPreset::H264720p30fps3Layers => "H264_720P_30FPS_3_LAYERS",
5758 IngressVideoEncodingPreset::H2641080p30fps3Layers => "H264_1080P_30FPS_3_LAYERS",
5759 IngressVideoEncodingPreset::H264540p25fps2Layers => "H264_540P_25FPS_2_LAYERS",
5760 IngressVideoEncodingPreset::H264720p30fps1Layer => "H264_720P_30FPS_1_LAYER",
5761 IngressVideoEncodingPreset::H2641080p30fps1Layer => "H264_1080P_30FPS_1_LAYER",
5762 IngressVideoEncodingPreset::H264720p30fps3LayersHighMotion => "H264_720P_30FPS_3_LAYERS_HIGH_MOTION",
5763 IngressVideoEncodingPreset::H2641080p30fps3LayersHighMotion => "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION",
5764 IngressVideoEncodingPreset::H264540p25fps2LayersHighMotion => "H264_540P_25FPS_2_LAYERS_HIGH_MOTION",
5765 IngressVideoEncodingPreset::H264720p30fps1LayerHighMotion => "H264_720P_30FPS_1_LAYER_HIGH_MOTION",
5766 IngressVideoEncodingPreset::H2641080p30fps1LayerHighMotion => "H264_1080P_30FPS_1_LAYER_HIGH_MOTION",
5767 }
5768 }
5769 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5771 match value {
5772 "H264_720P_30FPS_3_LAYERS" => Some(Self::H264720p30fps3Layers),
5773 "H264_1080P_30FPS_3_LAYERS" => Some(Self::H2641080p30fps3Layers),
5774 "H264_540P_25FPS_2_LAYERS" => Some(Self::H264540p25fps2Layers),
5775 "H264_720P_30FPS_1_LAYER" => Some(Self::H264720p30fps1Layer),
5776 "H264_1080P_30FPS_1_LAYER" => Some(Self::H2641080p30fps1Layer),
5777 "H264_720P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H264720p30fps3LayersHighMotion),
5778 "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H2641080p30fps3LayersHighMotion),
5779 "H264_540P_25FPS_2_LAYERS_HIGH_MOTION" => Some(Self::H264540p25fps2LayersHighMotion),
5780 "H264_720P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H264720p30fps1LayerHighMotion),
5781 "H264_1080P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H2641080p30fps1LayerHighMotion),
5782 _ => None,
5783 }
5784 }
5785}
5786#[allow(clippy::derive_partial_eq_without_eq)]
5787#[derive(Clone, PartialEq, ::prost::Message)]
5788pub struct WebhookEvent {
5789 #[prost(string, tag="1")]
5793 pub event: ::prost::alloc::string::String,
5794 #[prost(message, optional, tag="2")]
5795 pub room: ::core::option::Option<Room>,
5796 #[prost(message, optional, tag="3")]
5798 pub participant: ::core::option::Option<ParticipantInfo>,
5799 #[prost(message, optional, tag="9")]
5801 pub egress_info: ::core::option::Option<EgressInfo>,
5802 #[prost(message, optional, tag="10")]
5804 pub ingress_info: ::core::option::Option<IngressInfo>,
5805 #[prost(message, optional, tag="8")]
5807 pub track: ::core::option::Option<TrackInfo>,
5808 #[prost(string, tag="6")]
5810 pub id: ::prost::alloc::string::String,
5811 #[prost(int64, tag="7")]
5813 pub created_at: i64,
5814 #[deprecated]
5815 #[prost(int32, tag="11")]
5816 pub num_dropped: i32,
5817}
5818#[allow(clippy::derive_partial_eq_without_eq)]
5820#[derive(Clone, PartialEq, ::prost::Message)]
5821pub struct SipStatus {
5822 #[prost(enumeration="SipStatusCode", tag="1")]
5823 pub code: i32,
5824 #[prost(string, tag="2")]
5825 pub status: ::prost::alloc::string::String,
5826}
5827#[allow(clippy::derive_partial_eq_without_eq)]
5828#[derive(Clone, PartialEq, ::prost::Message)]
5829pub struct CreateSipTrunkRequest {
5830 #[prost(string, repeated, tag="1")]
5833 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5834 #[prost(string, tag="2")]
5836 pub outbound_address: ::prost::alloc::string::String,
5837 #[prost(string, tag="3")]
5839 pub outbound_number: ::prost::alloc::string::String,
5840 #[deprecated]
5841 #[prost(string, repeated, tag="4")]
5842 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5843 #[prost(string, repeated, tag="9")]
5847 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5848 #[prost(string, tag="5")]
5851 pub inbound_username: ::prost::alloc::string::String,
5852 #[prost(string, tag="6")]
5853 pub inbound_password: ::prost::alloc::string::String,
5854 #[prost(string, tag="7")]
5855 pub outbound_username: ::prost::alloc::string::String,
5856 #[prost(string, tag="8")]
5857 pub outbound_password: ::prost::alloc::string::String,
5858 #[prost(string, tag="10")]
5860 pub name: ::prost::alloc::string::String,
5861 #[prost(string, tag="11")]
5863 pub metadata: ::prost::alloc::string::String,
5864}
5865#[allow(clippy::derive_partial_eq_without_eq)]
5866#[derive(Clone, PartialEq, ::prost::Message)]
5867pub struct SipCodec {
5868 #[prost(string, tag="1")]
5869 pub name: ::prost::alloc::string::String,
5870 #[prost(uint32, tag="2")]
5871 pub rate: u32,
5872}
5873#[allow(clippy::derive_partial_eq_without_eq)]
5874#[derive(Clone, PartialEq, ::prost::Message)]
5875pub struct SipMediaConfig {
5876 #[prost(bool, tag="1")]
5878 pub only_listed_codecs: bool,
5879 #[prost(message, repeated, tag="2")]
5881 pub codecs: ::prost::alloc::vec::Vec<SipCodec>,
5882 #[prost(enumeration="SipMediaEncryption", optional, tag="3")]
5883 pub encryption: ::core::option::Option<i32>,
5884 #[prost(message, optional, tag="4")]
5886 pub media_timeout: ::core::option::Option<::pbjson_types::Duration>,
5887}
5888#[allow(clippy::derive_partial_eq_without_eq)]
5889#[derive(Clone, PartialEq, ::prost::Message)]
5890pub struct ProviderInfo {
5891 #[prost(string, tag="1")]
5892 pub id: ::prost::alloc::string::String,
5893 #[prost(string, tag="2")]
5894 pub name: ::prost::alloc::string::String,
5895 #[prost(enumeration="ProviderType", tag="3")]
5896 pub r#type: i32,
5897 #[prost(bool, tag="4")]
5898 pub prevent_transfer: bool,
5899}
5900#[allow(clippy::derive_partial_eq_without_eq)]
5901#[derive(Clone, PartialEq, ::prost::Message)]
5902pub struct SipTrunkInfo {
5903 #[prost(string, tag="1")]
5904 pub sip_trunk_id: ::prost::alloc::string::String,
5905 #[prost(enumeration="sip_trunk_info::TrunkKind", tag="14")]
5906 pub kind: i32,
5907 #[prost(string, repeated, tag="2")]
5910 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5911 #[prost(string, tag="3")]
5913 pub outbound_address: ::prost::alloc::string::String,
5914 #[prost(string, tag="4")]
5916 pub outbound_number: ::prost::alloc::string::String,
5917 #[prost(enumeration="SipTransport", tag="13")]
5919 pub transport: i32,
5920 #[deprecated]
5921 #[prost(string, repeated, tag="5")]
5922 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5923 #[prost(string, repeated, tag="10")]
5927 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5928 #[prost(string, tag="6")]
5931 pub inbound_username: ::prost::alloc::string::String,
5932 #[prost(string, tag="7")]
5933 pub inbound_password: ::prost::alloc::string::String,
5934 #[prost(string, tag="8")]
5935 pub outbound_username: ::prost::alloc::string::String,
5936 #[prost(string, tag="9")]
5937 pub outbound_password: ::prost::alloc::string::String,
5938 #[prost(string, tag="11")]
5940 pub name: ::prost::alloc::string::String,
5941 #[prost(string, tag="12")]
5943 pub metadata: ::prost::alloc::string::String,
5944}
5945pub mod sip_trunk_info {
5947 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5948 #[repr(i32)]
5949 pub enum TrunkKind {
5950 TrunkLegacy = 0,
5951 TrunkInbound = 1,
5952 TrunkOutbound = 2,
5953 }
5954 impl TrunkKind {
5955 pub fn as_str_name(&self) -> &'static str {
5960 match self {
5961 TrunkKind::TrunkLegacy => "TRUNK_LEGACY",
5962 TrunkKind::TrunkInbound => "TRUNK_INBOUND",
5963 TrunkKind::TrunkOutbound => "TRUNK_OUTBOUND",
5964 }
5965 }
5966 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5968 match value {
5969 "TRUNK_LEGACY" => Some(Self::TrunkLegacy),
5970 "TRUNK_INBOUND" => Some(Self::TrunkInbound),
5971 "TRUNK_OUTBOUND" => Some(Self::TrunkOutbound),
5972 _ => None,
5973 }
5974 }
5975 }
5976}
5977#[allow(clippy::derive_partial_eq_without_eq)]
5978#[derive(Clone, PartialEq, ::prost::Message)]
5979pub struct CreateSipInboundTrunkRequest {
5980 #[prost(message, optional, tag="1")]
5982 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
5983}
5984#[allow(clippy::derive_partial_eq_without_eq)]
5985#[derive(Clone, PartialEq, ::prost::Message)]
5986pub struct UpdateSipInboundTrunkRequest {
5987 #[prost(string, tag="1")]
5988 pub sip_trunk_id: ::prost::alloc::string::String,
5989 #[prost(oneof="update_sip_inbound_trunk_request::Action", tags="2, 3")]
5990 pub action: ::core::option::Option<update_sip_inbound_trunk_request::Action>,
5991}
5992pub mod update_sip_inbound_trunk_request {
5994 #[allow(clippy::derive_partial_eq_without_eq)]
5995#[derive(Clone, PartialEq, ::prost::Oneof)]
5996 pub enum Action {
5997 #[prost(message, tag="2")]
5998 Replace(super::SipInboundTrunkInfo),
5999 #[prost(message, tag="3")]
6000 Update(super::SipInboundTrunkUpdate),
6001 }
6002}
6003#[allow(clippy::derive_partial_eq_without_eq)]
6004#[derive(Clone, PartialEq, ::prost::Message)]
6005pub struct SipInboundTrunkInfo {
6006 #[prost(string, tag="1")]
6007 pub sip_trunk_id: ::prost::alloc::string::String,
6008 #[prost(string, tag="2")]
6010 pub name: ::prost::alloc::string::String,
6011 #[prost(string, tag="3")]
6013 pub metadata: ::prost::alloc::string::String,
6014 #[prost(string, repeated, tag="4")]
6017 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6018 #[prost(string, repeated, tag="5")]
6021 pub allowed_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6022 #[prost(string, repeated, tag="6")]
6025 pub allowed_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6026 #[prost(string, tag="7")]
6029 pub auth_username: ::prost::alloc::string::String,
6030 #[prost(string, tag="8")]
6031 pub auth_password: ::prost::alloc::string::String,
6032 #[prost(string, tag="19")]
6033 pub auth_realm: ::prost::alloc::string::String,
6034 #[prost(map="string, string", tag="9")]
6036 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6037 #[prost(map="string, string", tag="10")]
6039 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6040 #[prost(map="string, string", tag="14")]
6043 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6044 #[prost(enumeration="SipHeaderOptions", tag="15")]
6051 pub include_headers: i32,
6052 #[prost(message, optional, tag="11")]
6054 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6055 #[prost(message, optional, tag="12")]
6057 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
6058 #[prost(bool, tag="13")]
6059 pub krisp_enabled: bool,
6060 #[deprecated]
6061 #[prost(enumeration="SipMediaEncryption", tag="16")]
6062 pub media_encryption: i32,
6063 #[prost(message, optional, tag="20")]
6064 pub media: ::core::option::Option<SipMediaConfig>,
6065 #[prost(message, optional, tag="17")]
6066 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6067 #[prost(message, optional, tag="18")]
6068 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6069}
6070#[allow(clippy::derive_partial_eq_without_eq)]
6071#[derive(Clone, PartialEq, ::prost::Message)]
6072pub struct SipInboundTrunkUpdate {
6073 #[prost(message, optional, tag="1")]
6074 pub numbers: ::core::option::Option<ListUpdate>,
6075 #[prost(message, optional, tag="2")]
6076 pub allowed_addresses: ::core::option::Option<ListUpdate>,
6077 #[prost(message, optional, tag="3")]
6078 pub allowed_numbers: ::core::option::Option<ListUpdate>,
6079 #[prost(string, optional, tag="4")]
6080 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
6081 #[prost(string, optional, tag="5")]
6082 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
6083 #[prost(string, optional, tag="9")]
6084 pub auth_realm: ::core::option::Option<::prost::alloc::string::String>,
6085 #[prost(string, optional, tag="6")]
6086 pub name: ::core::option::Option<::prost::alloc::string::String>,
6087 #[prost(string, optional, tag="7")]
6088 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6089 #[deprecated]
6090 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
6091 pub media_encryption: ::core::option::Option<i32>,
6092 #[prost(message, optional, tag="10")]
6093 pub media: ::core::option::Option<SipMediaConfig>,
6094}
6095#[allow(clippy::derive_partial_eq_without_eq)]
6096#[derive(Clone, PartialEq, ::prost::Message)]
6097pub struct CreateSipOutboundTrunkRequest {
6098 #[prost(message, optional, tag="1")]
6100 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
6101}
6102#[allow(clippy::derive_partial_eq_without_eq)]
6103#[derive(Clone, PartialEq, ::prost::Message)]
6104pub struct UpdateSipOutboundTrunkRequest {
6105 #[prost(string, tag="1")]
6106 pub sip_trunk_id: ::prost::alloc::string::String,
6107 #[prost(oneof="update_sip_outbound_trunk_request::Action", tags="2, 3")]
6108 pub action: ::core::option::Option<update_sip_outbound_trunk_request::Action>,
6109}
6110pub mod update_sip_outbound_trunk_request {
6112 #[allow(clippy::derive_partial_eq_without_eq)]
6113#[derive(Clone, PartialEq, ::prost::Oneof)]
6114 pub enum Action {
6115 #[prost(message, tag="2")]
6116 Replace(super::SipOutboundTrunkInfo),
6117 #[prost(message, tag="3")]
6118 Update(super::SipOutboundTrunkUpdate),
6119 }
6120}
6121#[allow(clippy::derive_partial_eq_without_eq)]
6122#[derive(Clone, PartialEq, ::prost::Message)]
6123pub struct SipOutboundTrunkInfo {
6124 #[prost(string, tag="1")]
6125 pub sip_trunk_id: ::prost::alloc::string::String,
6126 #[prost(string, tag="2")]
6128 pub name: ::prost::alloc::string::String,
6129 #[prost(string, tag="3")]
6131 pub metadata: ::prost::alloc::string::String,
6132 #[prost(string, tag="4")]
6135 pub address: ::prost::alloc::string::String,
6136 #[prost(string, tag="14")]
6138 pub destination_country: ::prost::alloc::string::String,
6139 #[prost(enumeration="SipTransport", tag="5")]
6141 pub transport: i32,
6142 #[prost(string, repeated, tag="6")]
6144 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6145 #[prost(string, tag="7")]
6148 pub auth_username: ::prost::alloc::string::String,
6149 #[prost(string, tag="8")]
6150 pub auth_password: ::prost::alloc::string::String,
6151 #[prost(map="string, string", tag="9")]
6154 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6155 #[prost(map="string, string", tag="10")]
6158 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6159 #[prost(map="string, string", tag="11")]
6162 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6163 #[prost(enumeration="SipHeaderOptions", tag="12")]
6170 pub include_headers: i32,
6171 #[deprecated]
6172 #[prost(enumeration="SipMediaEncryption", tag="13")]
6173 pub media_encryption: i32,
6174 #[prost(message, optional, tag="18")]
6175 pub media: ::core::option::Option<SipMediaConfig>,
6176 #[prost(string, tag="15")]
6180 pub from_host: ::prost::alloc::string::String,
6181 #[prost(message, optional, tag="16")]
6182 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6183 #[prost(message, optional, tag="17")]
6184 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6185}
6186#[allow(clippy::derive_partial_eq_without_eq)]
6187#[derive(Clone, PartialEq, ::prost::Message)]
6188pub struct SipOutboundTrunkUpdate {
6189 #[prost(string, optional, tag="1")]
6190 pub address: ::core::option::Option<::prost::alloc::string::String>,
6191 #[prost(enumeration="SipTransport", optional, tag="2")]
6192 pub transport: ::core::option::Option<i32>,
6193 #[prost(string, optional, tag="9")]
6194 pub destination_country: ::core::option::Option<::prost::alloc::string::String>,
6195 #[prost(message, optional, tag="3")]
6196 pub numbers: ::core::option::Option<ListUpdate>,
6197 #[prost(string, optional, tag="4")]
6198 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
6199 #[prost(string, optional, tag="5")]
6200 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
6201 #[prost(string, optional, tag="6")]
6202 pub name: ::core::option::Option<::prost::alloc::string::String>,
6203 #[prost(string, optional, tag="7")]
6204 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6205 #[deprecated]
6206 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
6207 pub media_encryption: ::core::option::Option<i32>,
6208 #[prost(message, optional, tag="11")]
6209 pub media: ::core::option::Option<SipMediaConfig>,
6210 #[prost(string, optional, tag="10")]
6211 pub from_host: ::core::option::Option<::prost::alloc::string::String>,
6212}
6213#[allow(clippy::derive_partial_eq_without_eq)]
6214#[derive(Clone, PartialEq, ::prost::Message)]
6215pub struct GetSipInboundTrunkRequest {
6216 #[prost(string, tag="1")]
6217 pub sip_trunk_id: ::prost::alloc::string::String,
6218}
6219#[allow(clippy::derive_partial_eq_without_eq)]
6220#[derive(Clone, PartialEq, ::prost::Message)]
6221pub struct GetSipInboundTrunkResponse {
6222 #[prost(message, optional, tag="1")]
6223 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
6224}
6225#[allow(clippy::derive_partial_eq_without_eq)]
6226#[derive(Clone, PartialEq, ::prost::Message)]
6227pub struct GetSipOutboundTrunkRequest {
6228 #[prost(string, tag="1")]
6229 pub sip_trunk_id: ::prost::alloc::string::String,
6230}
6231#[allow(clippy::derive_partial_eq_without_eq)]
6232#[derive(Clone, PartialEq, ::prost::Message)]
6233pub struct GetSipOutboundTrunkResponse {
6234 #[prost(message, optional, tag="1")]
6235 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
6236}
6237#[allow(clippy::derive_partial_eq_without_eq)]
6238#[derive(Clone, PartialEq, ::prost::Message)]
6239pub struct ListSipTrunkRequest {
6240 #[prost(message, optional, tag="1")]
6241 pub page: ::core::option::Option<Pagination>,
6242}
6243#[allow(clippy::derive_partial_eq_without_eq)]
6244#[derive(Clone, PartialEq, ::prost::Message)]
6245pub struct ListSipTrunkResponse {
6246 #[prost(message, repeated, tag="1")]
6247 pub items: ::prost::alloc::vec::Vec<SipTrunkInfo>,
6248}
6249#[allow(clippy::derive_partial_eq_without_eq)]
6251#[derive(Clone, PartialEq, ::prost::Message)]
6252pub struct ListSipInboundTrunkRequest {
6253 #[prost(message, optional, tag="3")]
6254 pub page: ::core::option::Option<Pagination>,
6255 #[prost(string, repeated, tag="1")]
6258 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6259 #[prost(string, repeated, tag="2")]
6261 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6262}
6263#[allow(clippy::derive_partial_eq_without_eq)]
6264#[derive(Clone, PartialEq, ::prost::Message)]
6265pub struct ListSipInboundTrunkResponse {
6266 #[prost(message, repeated, tag="1")]
6267 pub items: ::prost::alloc::vec::Vec<SipInboundTrunkInfo>,
6268}
6269#[allow(clippy::derive_partial_eq_without_eq)]
6271#[derive(Clone, PartialEq, ::prost::Message)]
6272pub struct ListSipOutboundTrunkRequest {
6273 #[prost(message, optional, tag="3")]
6274 pub page: ::core::option::Option<Pagination>,
6275 #[prost(string, repeated, tag="1")]
6278 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6279 #[prost(string, repeated, tag="2")]
6281 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6282}
6283#[allow(clippy::derive_partial_eq_without_eq)]
6284#[derive(Clone, PartialEq, ::prost::Message)]
6285pub struct ListSipOutboundTrunkResponse {
6286 #[prost(message, repeated, tag="1")]
6287 pub items: ::prost::alloc::vec::Vec<SipOutboundTrunkInfo>,
6288}
6289#[allow(clippy::derive_partial_eq_without_eq)]
6290#[derive(Clone, PartialEq, ::prost::Message)]
6291pub struct DeleteSipTrunkRequest {
6292 #[prost(string, tag="1")]
6293 pub sip_trunk_id: ::prost::alloc::string::String,
6294}
6295#[allow(clippy::derive_partial_eq_without_eq)]
6296#[derive(Clone, PartialEq, ::prost::Message)]
6297pub struct SipDispatchRuleDirect {
6298 #[prost(string, tag="1")]
6300 pub room_name: ::prost::alloc::string::String,
6301 #[prost(string, tag="2")]
6303 pub pin: ::prost::alloc::string::String,
6304}
6305#[allow(clippy::derive_partial_eq_without_eq)]
6306#[derive(Clone, PartialEq, ::prost::Message)]
6307pub struct SipDispatchRuleIndividual {
6308 #[prost(string, tag="1")]
6310 pub room_prefix: ::prost::alloc::string::String,
6311 #[prost(string, tag="2")]
6313 pub pin: ::prost::alloc::string::String,
6314 #[prost(bool, tag="3")]
6316 pub no_randomness: bool,
6317}
6318#[allow(clippy::derive_partial_eq_without_eq)]
6319#[derive(Clone, PartialEq, ::prost::Message)]
6320pub struct SipDispatchRuleCallee {
6321 #[prost(string, tag="1")]
6323 pub room_prefix: ::prost::alloc::string::String,
6324 #[prost(string, tag="2")]
6326 pub pin: ::prost::alloc::string::String,
6327 #[prost(bool, tag="3")]
6329 pub randomize: bool,
6330}
6331#[allow(clippy::derive_partial_eq_without_eq)]
6332#[derive(Clone, PartialEq, ::prost::Message)]
6333pub struct SipDispatchRule {
6334 #[prost(oneof="sip_dispatch_rule::Rule", tags="1, 2, 3")]
6335 pub rule: ::core::option::Option<sip_dispatch_rule::Rule>,
6336}
6337pub mod sip_dispatch_rule {
6339 #[allow(clippy::derive_partial_eq_without_eq)]
6340#[derive(Clone, PartialEq, ::prost::Oneof)]
6341 pub enum Rule {
6342 #[prost(message, tag="1")]
6346 DispatchRuleDirect(super::SipDispatchRuleDirect),
6347 #[prost(message, tag="2")]
6349 DispatchRuleIndividual(super::SipDispatchRuleIndividual),
6350 #[prost(message, tag="3")]
6352 DispatchRuleCallee(super::SipDispatchRuleCallee),
6353 }
6354}
6355#[allow(clippy::derive_partial_eq_without_eq)]
6356#[derive(Clone, PartialEq, ::prost::Message)]
6357pub struct CreateSipDispatchRuleRequest {
6358 #[prost(message, optional, tag="10")]
6360 pub dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
6361 #[deprecated]
6362 #[prost(message, optional, tag="1")]
6363 pub rule: ::core::option::Option<SipDispatchRule>,
6364 #[deprecated]
6367 #[prost(string, repeated, tag="2")]
6368 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6369 #[deprecated]
6372 #[prost(bool, tag="3")]
6373 pub hide_phone_number: bool,
6374 #[deprecated]
6376 #[prost(string, repeated, tag="6")]
6377 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6378 #[deprecated]
6380 #[prost(string, tag="4")]
6381 pub name: ::prost::alloc::string::String,
6382 #[deprecated]
6385 #[prost(string, tag="5")]
6386 pub metadata: ::prost::alloc::string::String,
6387 #[prost(map="string, string", tag="7")]
6390 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6391 #[deprecated]
6393 #[prost(string, tag="8")]
6394 pub room_preset: ::prost::alloc::string::String,
6395 #[deprecated]
6397 #[prost(message, optional, tag="9")]
6398 pub room_config: ::core::option::Option<RoomConfiguration>,
6399}
6400#[allow(clippy::derive_partial_eq_without_eq)]
6401#[derive(Clone, PartialEq, ::prost::Message)]
6402pub struct UpdateSipDispatchRuleRequest {
6403 #[prost(string, tag="1")]
6404 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6405 #[prost(oneof="update_sip_dispatch_rule_request::Action", tags="2, 3")]
6406 pub action: ::core::option::Option<update_sip_dispatch_rule_request::Action>,
6407}
6408pub mod update_sip_dispatch_rule_request {
6410 #[allow(clippy::derive_partial_eq_without_eq)]
6411#[derive(Clone, PartialEq, ::prost::Oneof)]
6412 pub enum Action {
6413 #[prost(message, tag="2")]
6414 Replace(super::SipDispatchRuleInfo),
6415 #[prost(message, tag="3")]
6416 Update(super::SipDispatchRuleUpdate),
6417 }
6418}
6419#[allow(clippy::derive_partial_eq_without_eq)]
6420#[derive(Clone, PartialEq, ::prost::Message)]
6421pub struct SipDispatchRuleInfo {
6422 #[prost(string, tag="1")]
6423 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6424 #[prost(message, optional, tag="2")]
6425 pub rule: ::core::option::Option<SipDispatchRule>,
6426 #[prost(string, repeated, tag="3")]
6427 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6428 #[prost(bool, tag="4")]
6429 pub hide_phone_number: bool,
6430 #[prost(string, repeated, tag="7")]
6432 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6433 #[prost(string, repeated, tag="13")]
6435 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6436 #[prost(string, tag="5")]
6438 pub name: ::prost::alloc::string::String,
6439 #[prost(string, tag="6")]
6442 pub metadata: ::prost::alloc::string::String,
6443 #[prost(map="string, string", tag="8")]
6446 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6447 #[prost(string, tag="9")]
6449 pub room_preset: ::prost::alloc::string::String,
6450 #[prost(message, optional, tag="10")]
6452 pub room_config: ::core::option::Option<RoomConfiguration>,
6453 #[prost(message, optional, tag="16")]
6454 pub media: ::core::option::Option<SipMediaConfig>,
6455 #[prost(bool, tag="11")]
6456 pub krisp_enabled: bool,
6457 #[deprecated]
6458 #[prost(enumeration="SipMediaEncryption", tag="12")]
6459 pub media_encryption: i32,
6460 #[prost(message, optional, tag="14")]
6461 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6462 #[prost(message, optional, tag="15")]
6463 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6464}
6465#[allow(clippy::derive_partial_eq_without_eq)]
6466#[derive(Clone, PartialEq, ::prost::Message)]
6467pub struct SipDispatchRuleUpdate {
6468 #[prost(message, optional, tag="1")]
6469 pub trunk_ids: ::core::option::Option<ListUpdate>,
6470 #[prost(message, optional, tag="2")]
6471 pub rule: ::core::option::Option<SipDispatchRule>,
6472 #[prost(string, optional, tag="3")]
6473 pub name: ::core::option::Option<::prost::alloc::string::String>,
6474 #[prost(string, optional, tag="4")]
6475 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6476 #[prost(map="string, string", tag="5")]
6477 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6478 #[deprecated]
6479 #[prost(enumeration="SipMediaEncryption", optional, tag="6")]
6480 pub media_encryption: ::core::option::Option<i32>,
6481 #[prost(message, optional, tag="7")]
6482 pub media: ::core::option::Option<SipMediaConfig>,
6483}
6484#[allow(clippy::derive_partial_eq_without_eq)]
6486#[derive(Clone, PartialEq, ::prost::Message)]
6487pub struct ListSipDispatchRuleRequest {
6488 #[prost(message, optional, tag="3")]
6489 pub page: ::core::option::Option<Pagination>,
6490 #[prost(string, repeated, tag="1")]
6493 pub dispatch_rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6494 #[prost(string, repeated, tag="2")]
6496 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6497}
6498#[allow(clippy::derive_partial_eq_without_eq)]
6499#[derive(Clone, PartialEq, ::prost::Message)]
6500pub struct ListSipDispatchRuleResponse {
6501 #[prost(message, repeated, tag="1")]
6502 pub items: ::prost::alloc::vec::Vec<SipDispatchRuleInfo>,
6503}
6504#[allow(clippy::derive_partial_eq_without_eq)]
6505#[derive(Clone, PartialEq, ::prost::Message)]
6506pub struct DeleteSipDispatchRuleRequest {
6507 #[prost(string, tag="1")]
6508 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6509}
6510#[allow(clippy::derive_partial_eq_without_eq)]
6511#[derive(Clone, PartialEq, ::prost::Message)]
6512pub struct SipOutboundConfig {
6513 #[prost(string, tag="1")]
6515 pub hostname: ::prost::alloc::string::String,
6516 #[prost(string, tag="7")]
6518 pub destination_country: ::prost::alloc::string::String,
6519 #[prost(enumeration="SipTransport", tag="2")]
6521 pub transport: i32,
6522 #[prost(string, tag="3")]
6525 pub auth_username: ::prost::alloc::string::String,
6526 #[prost(string, tag="4")]
6527 pub auth_password: ::prost::alloc::string::String,
6528 #[prost(map="string, string", tag="5")]
6531 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6532 #[prost(map="string, string", tag="6")]
6535 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6536 #[prost(string, tag="8")]
6538 pub from_host: ::prost::alloc::string::String,
6539}
6540#[allow(clippy::derive_partial_eq_without_eq)]
6543#[derive(Clone, PartialEq, ::prost::Message)]
6544pub struct CreateSipParticipantRequest {
6545 #[prost(string, tag="1")]
6547 pub sip_trunk_id: ::prost::alloc::string::String,
6548 #[prost(message, optional, tag="20")]
6549 pub trunk: ::core::option::Option<SipOutboundConfig>,
6550 #[prost(message, optional, tag="24")]
6552 pub sip_request_uri: ::core::option::Option<SipRequestDest>,
6553 #[prost(message, optional, tag="25")]
6555 pub sip_to_header: ::core::option::Option<SipNamedDest>,
6556 #[prost(message, optional, tag="26")]
6558 pub sip_from_header: ::core::option::Option<SipNamedDest>,
6559 #[prost(string, tag="2")]
6561 pub sip_call_to: ::prost::alloc::string::String,
6562 #[prost(string, tag="15")]
6564 pub sip_number: ::prost::alloc::string::String,
6565 #[prost(string, tag="3")]
6567 pub room_name: ::prost::alloc::string::String,
6568 #[prost(string, tag="4")]
6570 pub participant_identity: ::prost::alloc::string::String,
6571 #[prost(string, tag="7")]
6573 pub participant_name: ::prost::alloc::string::String,
6574 #[prost(string, tag="8")]
6576 pub participant_metadata: ::prost::alloc::string::String,
6577 #[prost(map="string, string", tag="9")]
6579 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6580 #[prost(string, tag="5")]
6583 pub dtmf: ::prost::alloc::string::String,
6584 #[deprecated]
6586 #[prost(bool, tag="6")]
6587 pub play_ringtone: bool,
6588 #[prost(bool, tag="13")]
6589 pub play_dialtone: bool,
6590 #[prost(bool, tag="10")]
6593 pub hide_phone_number: bool,
6594 #[prost(map="string, string", tag="16")]
6596 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6597 #[prost(enumeration="SipHeaderOptions", tag="17")]
6604 pub include_headers: i32,
6605 #[prost(message, optional, tag="11")]
6607 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6608 #[prost(message, optional, tag="12")]
6610 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
6611 #[prost(bool, tag="14")]
6613 pub krisp_enabled: bool,
6614 #[deprecated]
6615 #[prost(enumeration="SipMediaEncryption", tag="18")]
6616 pub media_encryption: i32,
6617 #[prost(message, optional, tag="23")]
6618 pub media: ::core::option::Option<SipMediaConfig>,
6619 #[prost(bool, tag="19")]
6621 pub wait_until_answered: bool,
6622 #[prost(string, optional, tag="21")]
6629 pub display_name: ::core::option::Option<::prost::alloc::string::String>,
6630 #[prost(message, optional, tag="22")]
6632 pub destination: ::core::option::Option<Destination>,
6633}
6634#[allow(clippy::derive_partial_eq_without_eq)]
6635#[derive(Clone, PartialEq, ::prost::Message)]
6636pub struct SipParticipantInfo {
6637 #[prost(string, tag="1")]
6638 pub participant_id: ::prost::alloc::string::String,
6639 #[prost(string, tag="2")]
6640 pub participant_identity: ::prost::alloc::string::String,
6641 #[prost(string, tag="3")]
6642 pub room_name: ::prost::alloc::string::String,
6643 #[prost(string, tag="4")]
6644 pub sip_call_id: ::prost::alloc::string::String,
6645}
6646#[allow(clippy::derive_partial_eq_without_eq)]
6647#[derive(Clone, PartialEq, ::prost::Message)]
6648pub struct TransferSipParticipantRequest {
6649 #[prost(string, tag="1")]
6650 pub participant_identity: ::prost::alloc::string::String,
6651 #[prost(string, tag="2")]
6652 pub room_name: ::prost::alloc::string::String,
6653 #[prost(string, tag="3")]
6654 pub transfer_to: ::prost::alloc::string::String,
6655 #[prost(bool, tag="4")]
6657 pub play_dialtone: bool,
6658 #[prost(map="string, string", tag="5")]
6660 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6661 #[prost(message, optional, tag="6")]
6663 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6664}
6665#[allow(clippy::derive_partial_eq_without_eq)]
6666#[derive(Clone, PartialEq, ::prost::Message)]
6667pub struct SipCallInfo {
6668 #[prost(string, tag="1")]
6669 pub call_id: ::prost::alloc::string::String,
6670 #[prost(string, tag="2")]
6671 pub trunk_id: ::prost::alloc::string::String,
6672 #[prost(string, tag="16")]
6673 pub dispatch_rule_id: ::prost::alloc::string::String,
6674 #[prost(string, tag="17")]
6675 pub region: ::prost::alloc::string::String,
6676 #[prost(string, tag="3")]
6677 pub room_name: ::prost::alloc::string::String,
6678 #[prost(string, tag="4")]
6680 pub room_id: ::prost::alloc::string::String,
6681 #[prost(string, tag="5")]
6682 pub participant_identity: ::prost::alloc::string::String,
6683 #[prost(map="string, string", tag="18")]
6684 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6685 #[prost(message, optional, tag="6")]
6686 pub from_uri: ::core::option::Option<SipUri>,
6687 #[prost(message, optional, tag="7")]
6688 pub to_uri: ::core::option::Option<SipUri>,
6689 #[deprecated]
6690 #[prost(int64, tag="9")]
6691 pub created_at: i64,
6692 #[deprecated]
6693 #[prost(int64, tag="10")]
6694 pub started_at: i64,
6695 #[deprecated]
6696 #[prost(int64, tag="11")]
6697 pub ended_at: i64,
6698 #[prost(enumeration="SipFeature", repeated, tag="14")]
6699 pub enabled_features: ::prost::alloc::vec::Vec<i32>,
6700 #[prost(enumeration="SipCallDirection", tag="15")]
6701 pub call_direction: i32,
6702 #[prost(enumeration="SipCallStatus", tag="8")]
6703 pub call_status: i32,
6704 #[prost(int64, tag="22")]
6705 pub created_at_ns: i64,
6706 #[prost(int64, tag="23")]
6707 pub started_at_ns: i64,
6708 #[prost(int64, tag="24")]
6709 pub ended_at_ns: i64,
6710 #[prost(enumeration="DisconnectReason", tag="12")]
6711 pub disconnect_reason: i32,
6712 #[prost(string, tag="13")]
6713 pub error: ::prost::alloc::string::String,
6714 #[prost(message, optional, tag="19")]
6715 pub call_status_code: ::core::option::Option<SipStatus>,
6716 #[prost(string, tag="20")]
6717 pub audio_codec: ::prost::alloc::string::String,
6718 #[prost(string, tag="21")]
6719 pub media_encryption: ::prost::alloc::string::String,
6720 #[prost(string, tag="25")]
6721 pub pcap_file_link: ::prost::alloc::string::String,
6722 #[prost(message, repeated, tag="26")]
6723 pub call_context: ::prost::alloc::vec::Vec<::pbjson_types::Any>,
6724 #[prost(message, optional, tag="27")]
6725 pub provider_info: ::core::option::Option<ProviderInfo>,
6726 #[prost(string, tag="28")]
6727 pub sip_call_id: ::prost::alloc::string::String,
6728}
6729#[allow(clippy::derive_partial_eq_without_eq)]
6730#[derive(Clone, PartialEq, ::prost::Message)]
6731pub struct SipTransferInfo {
6732 #[prost(string, tag="1")]
6733 pub transfer_id: ::prost::alloc::string::String,
6734 #[prost(string, tag="2")]
6735 pub call_id: ::prost::alloc::string::String,
6736 #[prost(string, tag="3")]
6737 pub transfer_to: ::prost::alloc::string::String,
6738 #[prost(int64, tag="4")]
6739 pub transfer_initiated_at_ns: i64,
6740 #[prost(int64, tag="5")]
6741 pub transfer_completed_at_ns: i64,
6742 #[prost(enumeration="SipTransferStatus", tag="6")]
6743 pub transfer_status: i32,
6744 #[prost(string, tag="7")]
6745 pub error: ::prost::alloc::string::String,
6746 #[prost(message, optional, tag="8")]
6747 pub transfer_status_code: ::core::option::Option<SipStatus>,
6748}
6749#[allow(clippy::derive_partial_eq_without_eq)]
6750#[derive(Clone, PartialEq, ::prost::Message)]
6751pub struct SipUri {
6752 #[prost(string, tag="1")]
6753 pub user: ::prost::alloc::string::String,
6754 #[prost(string, tag="2")]
6755 pub host: ::prost::alloc::string::String,
6756 #[prost(string, tag="3")]
6757 pub ip: ::prost::alloc::string::String,
6758 #[prost(uint32, tag="4")]
6759 pub port: u32,
6760 #[prost(enumeration="SipTransport", tag="5")]
6761 pub transport: i32,
6762}
6763#[allow(clippy::derive_partial_eq_without_eq)]
6764#[derive(Clone, PartialEq, ::prost::Message)]
6765pub struct SipRequestDest {
6766 #[prost(oneof="sip_request_dest::Uri", tags="1, 2")]
6767 pub uri: ::core::option::Option<sip_request_dest::Uri>,
6768}
6769pub mod sip_request_dest {
6771 #[allow(clippy::derive_partial_eq_without_eq)]
6772#[derive(Clone, PartialEq, ::prost::Oneof)]
6773 pub enum Uri {
6774 #[prost(string, tag="1")]
6776 Raw(::prost::alloc::string::String),
6777 #[prost(message, tag="2")]
6778 Values(super::SipUri),
6779 }
6780}
6781#[allow(clippy::derive_partial_eq_without_eq)]
6782#[derive(Clone, PartialEq, ::prost::Message)]
6783pub struct SipNamedDest {
6784 #[prost(string, tag="3")]
6785 pub display_name: ::prost::alloc::string::String,
6786 #[prost(oneof="sip_named_dest::Uri", tags="1, 2")]
6787 pub uri: ::core::option::Option<sip_named_dest::Uri>,
6788}
6789pub mod sip_named_dest {
6791 #[allow(clippy::derive_partial_eq_without_eq)]
6792#[derive(Clone, PartialEq, ::prost::Oneof)]
6793 pub enum Uri {
6794 #[prost(string, tag="1")]
6796 Raw(::prost::alloc::string::String),
6797 #[prost(message, tag="2")]
6798 Values(super::SipUri),
6799 }
6800}
6801#[allow(clippy::derive_partial_eq_without_eq)]
6802#[derive(Clone, PartialEq, ::prost::Message)]
6803pub struct Destination {
6804 #[prost(string, tag="1")]
6805 pub city: ::prost::alloc::string::String,
6806 #[prost(string, tag="2")]
6807 pub country: ::prost::alloc::string::String,
6808 #[prost(string, tag="3")]
6809 pub region: ::prost::alloc::string::String,
6810}
6811#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6812#[repr(i32)]
6813pub enum SipStatusCode {
6814 SipStatusUnknown = 0,
6815 SipStatusTrying = 100,
6816 SipStatusRinging = 180,
6817 SipStatusCallIsForwarded = 181,
6818 SipStatusQueued = 182,
6819 SipStatusSessionProgress = 183,
6820 SipStatusEarlyDialogTerminated = 199,
6821 SipStatusOk = 200,
6822 SipStatusAccepted = 202,
6823 SipStatusNoNotification = 204,
6824 SipStatusMultipleChoices = 300,
6825 SipStatusMovedPermanently = 301,
6826 SipStatusMovedTemporarily = 302,
6827 SipStatusUseProxy = 305,
6828 SipStatusAlternativeService = 380,
6829 SipStatusBadRequest = 400,
6830 SipStatusUnauthorized = 401,
6831 SipStatusPaymentRequired = 402,
6832 SipStatusForbidden = 403,
6833 SipStatusNotfound = 404,
6834 SipStatusMethodNotAllowed = 405,
6835 SipStatusNotAcceptable = 406,
6836 SipStatusProxyAuthRequired = 407,
6837 SipStatusRequestTimeout = 408,
6838 SipStatusConflict = 409,
6839 SipStatusGone = 410,
6840 SipStatusLengthRequired = 411,
6841 SipStatusConditionalRequestFailed = 412,
6842 SipStatusRequestEntityTooLarge = 413,
6843 SipStatusRequestUriTooLong = 414,
6844 SipStatusUnsupportedMediaType = 415,
6845 SipStatusRequestedRangeNotSatisfiable = 416,
6846 SipStatusUnknownResourcePriority = 417,
6847 SipStatusBadExtension = 420,
6848 SipStatusExtensionRequired = 421,
6849 SipStatusSessionIntervalTooSmall = 422,
6850 SipStatusIntervalTooBrief = 423,
6851 SipStatusBadLocationInformation = 424,
6852 SipStatusBadAlertMessage = 425,
6853 SipStatusUseIdentityHeader = 428,
6854 SipStatusProvideReferrerIdentity = 429,
6855 SipStatusFlowFailed = 430,
6856 SipStatusAnonymityDisallowed = 433,
6857 SipStatusBadIdentityInfo = 436,
6858 SipStatusUnsupportedCertificate = 437,
6859 SipStatusInvalidIdentityHeader = 438,
6860 SipStatusFirstHopLacksOutboundSupport = 439,
6861 SipStatusMaxBreadthExceeded = 440,
6862 SipStatusBadInfoPackage = 469,
6863 SipStatusConsentNeeded = 470,
6864 SipStatusTemporarilyUnavailable = 480,
6865 SipStatusCallTransactionDoesNotExists = 481,
6866 SipStatusLoopDetected = 482,
6867 SipStatusTooManyHops = 483,
6868 SipStatusAddressIncomplete = 484,
6869 SipStatusAmbiguous = 485,
6870 SipStatusBusyHere = 486,
6871 SipStatusRequestTerminated = 487,
6872 SipStatusNotAcceptableHere = 488,
6873 SipStatusBadEvent = 489,
6874 SipStatusRequestPending = 491,
6875 SipStatusUndecipherable = 493,
6876 SipStatusSecurityAgreementRequired = 494,
6877 SipStatusInternalServerError = 500,
6878 SipStatusNotImplemented = 501,
6879 SipStatusBadGateway = 502,
6880 SipStatusServiceUnavailable = 503,
6881 SipStatusGatewayTimeout = 504,
6882 SipStatusVersionNotSupported = 505,
6883 SipStatusMessageTooLarge = 513,
6884 SipStatusGlobalBusyEverywhere = 600,
6885 SipStatusGlobalDecline = 603,
6886 SipStatusGlobalDoesNotExistAnywhere = 604,
6887 SipStatusGlobalNotAcceptable = 606,
6888 SipStatusGlobalUnwanted = 607,
6889 SipStatusGlobalRejected = 608,
6890}
6891impl SipStatusCode {
6892 pub fn as_str_name(&self) -> &'static str {
6897 match self {
6898 SipStatusCode::SipStatusUnknown => "SIP_STATUS_UNKNOWN",
6899 SipStatusCode::SipStatusTrying => "SIP_STATUS_TRYING",
6900 SipStatusCode::SipStatusRinging => "SIP_STATUS_RINGING",
6901 SipStatusCode::SipStatusCallIsForwarded => "SIP_STATUS_CALL_IS_FORWARDED",
6902 SipStatusCode::SipStatusQueued => "SIP_STATUS_QUEUED",
6903 SipStatusCode::SipStatusSessionProgress => "SIP_STATUS_SESSION_PROGRESS",
6904 SipStatusCode::SipStatusEarlyDialogTerminated => "SIP_STATUS_EARLY_DIALOG_TERMINATED",
6905 SipStatusCode::SipStatusOk => "SIP_STATUS_OK",
6906 SipStatusCode::SipStatusAccepted => "SIP_STATUS_ACCEPTED",
6907 SipStatusCode::SipStatusNoNotification => "SIP_STATUS_NO_NOTIFICATION",
6908 SipStatusCode::SipStatusMultipleChoices => "SIP_STATUS_MULTIPLE_CHOICES",
6909 SipStatusCode::SipStatusMovedPermanently => "SIP_STATUS_MOVED_PERMANENTLY",
6910 SipStatusCode::SipStatusMovedTemporarily => "SIP_STATUS_MOVED_TEMPORARILY",
6911 SipStatusCode::SipStatusUseProxy => "SIP_STATUS_USE_PROXY",
6912 SipStatusCode::SipStatusAlternativeService => "SIP_STATUS_ALTERNATIVE_SERVICE",
6913 SipStatusCode::SipStatusBadRequest => "SIP_STATUS_BAD_REQUEST",
6914 SipStatusCode::SipStatusUnauthorized => "SIP_STATUS_UNAUTHORIZED",
6915 SipStatusCode::SipStatusPaymentRequired => "SIP_STATUS_PAYMENT_REQUIRED",
6916 SipStatusCode::SipStatusForbidden => "SIP_STATUS_FORBIDDEN",
6917 SipStatusCode::SipStatusNotfound => "SIP_STATUS_NOTFOUND",
6918 SipStatusCode::SipStatusMethodNotAllowed => "SIP_STATUS_METHOD_NOT_ALLOWED",
6919 SipStatusCode::SipStatusNotAcceptable => "SIP_STATUS_NOT_ACCEPTABLE",
6920 SipStatusCode::SipStatusProxyAuthRequired => "SIP_STATUS_PROXY_AUTH_REQUIRED",
6921 SipStatusCode::SipStatusRequestTimeout => "SIP_STATUS_REQUEST_TIMEOUT",
6922 SipStatusCode::SipStatusConflict => "SIP_STATUS_CONFLICT",
6923 SipStatusCode::SipStatusGone => "SIP_STATUS_GONE",
6924 SipStatusCode::SipStatusLengthRequired => "SIP_STATUS_LENGTH_REQUIRED",
6925 SipStatusCode::SipStatusConditionalRequestFailed => "SIP_STATUS_CONDITIONAL_REQUEST_FAILED",
6926 SipStatusCode::SipStatusRequestEntityTooLarge => "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE",
6927 SipStatusCode::SipStatusRequestUriTooLong => "SIP_STATUS_REQUEST_URI_TOO_LONG",
6928 SipStatusCode::SipStatusUnsupportedMediaType => "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE",
6929 SipStatusCode::SipStatusRequestedRangeNotSatisfiable => "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE",
6930 SipStatusCode::SipStatusUnknownResourcePriority => "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY",
6931 SipStatusCode::SipStatusBadExtension => "SIP_STATUS_BAD_EXTENSION",
6932 SipStatusCode::SipStatusExtensionRequired => "SIP_STATUS_EXTENSION_REQUIRED",
6933 SipStatusCode::SipStatusSessionIntervalTooSmall => "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL",
6934 SipStatusCode::SipStatusIntervalTooBrief => "SIP_STATUS_INTERVAL_TOO_BRIEF",
6935 SipStatusCode::SipStatusBadLocationInformation => "SIP_STATUS_BAD_LOCATION_INFORMATION",
6936 SipStatusCode::SipStatusBadAlertMessage => "SIP_STATUS_BAD_ALERT_MESSAGE",
6937 SipStatusCode::SipStatusUseIdentityHeader => "SIP_STATUS_USE_IDENTITY_HEADER",
6938 SipStatusCode::SipStatusProvideReferrerIdentity => "SIP_STATUS_PROVIDE_REFERRER_IDENTITY",
6939 SipStatusCode::SipStatusFlowFailed => "SIP_STATUS_FLOW_FAILED",
6940 SipStatusCode::SipStatusAnonymityDisallowed => "SIP_STATUS_ANONYMITY_DISALLOWED",
6941 SipStatusCode::SipStatusBadIdentityInfo => "SIP_STATUS_BAD_IDENTITY_INFO",
6942 SipStatusCode::SipStatusUnsupportedCertificate => "SIP_STATUS_UNSUPPORTED_CERTIFICATE",
6943 SipStatusCode::SipStatusInvalidIdentityHeader => "SIP_STATUS_INVALID_IDENTITY_HEADER",
6944 SipStatusCode::SipStatusFirstHopLacksOutboundSupport => "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT",
6945 SipStatusCode::SipStatusMaxBreadthExceeded => "SIP_STATUS_MAX_BREADTH_EXCEEDED",
6946 SipStatusCode::SipStatusBadInfoPackage => "SIP_STATUS_BAD_INFO_PACKAGE",
6947 SipStatusCode::SipStatusConsentNeeded => "SIP_STATUS_CONSENT_NEEDED",
6948 SipStatusCode::SipStatusTemporarilyUnavailable => "SIP_STATUS_TEMPORARILY_UNAVAILABLE",
6949 SipStatusCode::SipStatusCallTransactionDoesNotExists => "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS",
6950 SipStatusCode::SipStatusLoopDetected => "SIP_STATUS_LOOP_DETECTED",
6951 SipStatusCode::SipStatusTooManyHops => "SIP_STATUS_TOO_MANY_HOPS",
6952 SipStatusCode::SipStatusAddressIncomplete => "SIP_STATUS_ADDRESS_INCOMPLETE",
6953 SipStatusCode::SipStatusAmbiguous => "SIP_STATUS_AMBIGUOUS",
6954 SipStatusCode::SipStatusBusyHere => "SIP_STATUS_BUSY_HERE",
6955 SipStatusCode::SipStatusRequestTerminated => "SIP_STATUS_REQUEST_TERMINATED",
6956 SipStatusCode::SipStatusNotAcceptableHere => "SIP_STATUS_NOT_ACCEPTABLE_HERE",
6957 SipStatusCode::SipStatusBadEvent => "SIP_STATUS_BAD_EVENT",
6958 SipStatusCode::SipStatusRequestPending => "SIP_STATUS_REQUEST_PENDING",
6959 SipStatusCode::SipStatusUndecipherable => "SIP_STATUS_UNDECIPHERABLE",
6960 SipStatusCode::SipStatusSecurityAgreementRequired => "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED",
6961 SipStatusCode::SipStatusInternalServerError => "SIP_STATUS_INTERNAL_SERVER_ERROR",
6962 SipStatusCode::SipStatusNotImplemented => "SIP_STATUS_NOT_IMPLEMENTED",
6963 SipStatusCode::SipStatusBadGateway => "SIP_STATUS_BAD_GATEWAY",
6964 SipStatusCode::SipStatusServiceUnavailable => "SIP_STATUS_SERVICE_UNAVAILABLE",
6965 SipStatusCode::SipStatusGatewayTimeout => "SIP_STATUS_GATEWAY_TIMEOUT",
6966 SipStatusCode::SipStatusVersionNotSupported => "SIP_STATUS_VERSION_NOT_SUPPORTED",
6967 SipStatusCode::SipStatusMessageTooLarge => "SIP_STATUS_MESSAGE_TOO_LARGE",
6968 SipStatusCode::SipStatusGlobalBusyEverywhere => "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE",
6969 SipStatusCode::SipStatusGlobalDecline => "SIP_STATUS_GLOBAL_DECLINE",
6970 SipStatusCode::SipStatusGlobalDoesNotExistAnywhere => "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE",
6971 SipStatusCode::SipStatusGlobalNotAcceptable => "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE",
6972 SipStatusCode::SipStatusGlobalUnwanted => "SIP_STATUS_GLOBAL_UNWANTED",
6973 SipStatusCode::SipStatusGlobalRejected => "SIP_STATUS_GLOBAL_REJECTED",
6974 }
6975 }
6976 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6978 match value {
6979 "SIP_STATUS_UNKNOWN" => Some(Self::SipStatusUnknown),
6980 "SIP_STATUS_TRYING" => Some(Self::SipStatusTrying),
6981 "SIP_STATUS_RINGING" => Some(Self::SipStatusRinging),
6982 "SIP_STATUS_CALL_IS_FORWARDED" => Some(Self::SipStatusCallIsForwarded),
6983 "SIP_STATUS_QUEUED" => Some(Self::SipStatusQueued),
6984 "SIP_STATUS_SESSION_PROGRESS" => Some(Self::SipStatusSessionProgress),
6985 "SIP_STATUS_EARLY_DIALOG_TERMINATED" => Some(Self::SipStatusEarlyDialogTerminated),
6986 "SIP_STATUS_OK" => Some(Self::SipStatusOk),
6987 "SIP_STATUS_ACCEPTED" => Some(Self::SipStatusAccepted),
6988 "SIP_STATUS_NO_NOTIFICATION" => Some(Self::SipStatusNoNotification),
6989 "SIP_STATUS_MULTIPLE_CHOICES" => Some(Self::SipStatusMultipleChoices),
6990 "SIP_STATUS_MOVED_PERMANENTLY" => Some(Self::SipStatusMovedPermanently),
6991 "SIP_STATUS_MOVED_TEMPORARILY" => Some(Self::SipStatusMovedTemporarily),
6992 "SIP_STATUS_USE_PROXY" => Some(Self::SipStatusUseProxy),
6993 "SIP_STATUS_ALTERNATIVE_SERVICE" => Some(Self::SipStatusAlternativeService),
6994 "SIP_STATUS_BAD_REQUEST" => Some(Self::SipStatusBadRequest),
6995 "SIP_STATUS_UNAUTHORIZED" => Some(Self::SipStatusUnauthorized),
6996 "SIP_STATUS_PAYMENT_REQUIRED" => Some(Self::SipStatusPaymentRequired),
6997 "SIP_STATUS_FORBIDDEN" => Some(Self::SipStatusForbidden),
6998 "SIP_STATUS_NOTFOUND" => Some(Self::SipStatusNotfound),
6999 "SIP_STATUS_METHOD_NOT_ALLOWED" => Some(Self::SipStatusMethodNotAllowed),
7000 "SIP_STATUS_NOT_ACCEPTABLE" => Some(Self::SipStatusNotAcceptable),
7001 "SIP_STATUS_PROXY_AUTH_REQUIRED" => Some(Self::SipStatusProxyAuthRequired),
7002 "SIP_STATUS_REQUEST_TIMEOUT" => Some(Self::SipStatusRequestTimeout),
7003 "SIP_STATUS_CONFLICT" => Some(Self::SipStatusConflict),
7004 "SIP_STATUS_GONE" => Some(Self::SipStatusGone),
7005 "SIP_STATUS_LENGTH_REQUIRED" => Some(Self::SipStatusLengthRequired),
7006 "SIP_STATUS_CONDITIONAL_REQUEST_FAILED" => Some(Self::SipStatusConditionalRequestFailed),
7007 "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE" => Some(Self::SipStatusRequestEntityTooLarge),
7008 "SIP_STATUS_REQUEST_URI_TOO_LONG" => Some(Self::SipStatusRequestUriTooLong),
7009 "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE" => Some(Self::SipStatusUnsupportedMediaType),
7010 "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE" => Some(Self::SipStatusRequestedRangeNotSatisfiable),
7011 "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY" => Some(Self::SipStatusUnknownResourcePriority),
7012 "SIP_STATUS_BAD_EXTENSION" => Some(Self::SipStatusBadExtension),
7013 "SIP_STATUS_EXTENSION_REQUIRED" => Some(Self::SipStatusExtensionRequired),
7014 "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL" => Some(Self::SipStatusSessionIntervalTooSmall),
7015 "SIP_STATUS_INTERVAL_TOO_BRIEF" => Some(Self::SipStatusIntervalTooBrief),
7016 "SIP_STATUS_BAD_LOCATION_INFORMATION" => Some(Self::SipStatusBadLocationInformation),
7017 "SIP_STATUS_BAD_ALERT_MESSAGE" => Some(Self::SipStatusBadAlertMessage),
7018 "SIP_STATUS_USE_IDENTITY_HEADER" => Some(Self::SipStatusUseIdentityHeader),
7019 "SIP_STATUS_PROVIDE_REFERRER_IDENTITY" => Some(Self::SipStatusProvideReferrerIdentity),
7020 "SIP_STATUS_FLOW_FAILED" => Some(Self::SipStatusFlowFailed),
7021 "SIP_STATUS_ANONYMITY_DISALLOWED" => Some(Self::SipStatusAnonymityDisallowed),
7022 "SIP_STATUS_BAD_IDENTITY_INFO" => Some(Self::SipStatusBadIdentityInfo),
7023 "SIP_STATUS_UNSUPPORTED_CERTIFICATE" => Some(Self::SipStatusUnsupportedCertificate),
7024 "SIP_STATUS_INVALID_IDENTITY_HEADER" => Some(Self::SipStatusInvalidIdentityHeader),
7025 "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT" => Some(Self::SipStatusFirstHopLacksOutboundSupport),
7026 "SIP_STATUS_MAX_BREADTH_EXCEEDED" => Some(Self::SipStatusMaxBreadthExceeded),
7027 "SIP_STATUS_BAD_INFO_PACKAGE" => Some(Self::SipStatusBadInfoPackage),
7028 "SIP_STATUS_CONSENT_NEEDED" => Some(Self::SipStatusConsentNeeded),
7029 "SIP_STATUS_TEMPORARILY_UNAVAILABLE" => Some(Self::SipStatusTemporarilyUnavailable),
7030 "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS" => Some(Self::SipStatusCallTransactionDoesNotExists),
7031 "SIP_STATUS_LOOP_DETECTED" => Some(Self::SipStatusLoopDetected),
7032 "SIP_STATUS_TOO_MANY_HOPS" => Some(Self::SipStatusTooManyHops),
7033 "SIP_STATUS_ADDRESS_INCOMPLETE" => Some(Self::SipStatusAddressIncomplete),
7034 "SIP_STATUS_AMBIGUOUS" => Some(Self::SipStatusAmbiguous),
7035 "SIP_STATUS_BUSY_HERE" => Some(Self::SipStatusBusyHere),
7036 "SIP_STATUS_REQUEST_TERMINATED" => Some(Self::SipStatusRequestTerminated),
7037 "SIP_STATUS_NOT_ACCEPTABLE_HERE" => Some(Self::SipStatusNotAcceptableHere),
7038 "SIP_STATUS_BAD_EVENT" => Some(Self::SipStatusBadEvent),
7039 "SIP_STATUS_REQUEST_PENDING" => Some(Self::SipStatusRequestPending),
7040 "SIP_STATUS_UNDECIPHERABLE" => Some(Self::SipStatusUndecipherable),
7041 "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED" => Some(Self::SipStatusSecurityAgreementRequired),
7042 "SIP_STATUS_INTERNAL_SERVER_ERROR" => Some(Self::SipStatusInternalServerError),
7043 "SIP_STATUS_NOT_IMPLEMENTED" => Some(Self::SipStatusNotImplemented),
7044 "SIP_STATUS_BAD_GATEWAY" => Some(Self::SipStatusBadGateway),
7045 "SIP_STATUS_SERVICE_UNAVAILABLE" => Some(Self::SipStatusServiceUnavailable),
7046 "SIP_STATUS_GATEWAY_TIMEOUT" => Some(Self::SipStatusGatewayTimeout),
7047 "SIP_STATUS_VERSION_NOT_SUPPORTED" => Some(Self::SipStatusVersionNotSupported),
7048 "SIP_STATUS_MESSAGE_TOO_LARGE" => Some(Self::SipStatusMessageTooLarge),
7049 "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE" => Some(Self::SipStatusGlobalBusyEverywhere),
7050 "SIP_STATUS_GLOBAL_DECLINE" => Some(Self::SipStatusGlobalDecline),
7051 "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE" => Some(Self::SipStatusGlobalDoesNotExistAnywhere),
7052 "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE" => Some(Self::SipStatusGlobalNotAcceptable),
7053 "SIP_STATUS_GLOBAL_UNWANTED" => Some(Self::SipStatusGlobalUnwanted),
7054 "SIP_STATUS_GLOBAL_REJECTED" => Some(Self::SipStatusGlobalRejected),
7055 _ => None,
7056 }
7057 }
7058}
7059#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7060#[repr(i32)]
7061pub enum SipTransport {
7062 Auto = 0,
7063 Udp = 1,
7064 Tcp = 2,
7065 Tls = 3,
7066}
7067impl SipTransport {
7068 pub fn as_str_name(&self) -> &'static str {
7073 match self {
7074 SipTransport::Auto => "SIP_TRANSPORT_AUTO",
7075 SipTransport::Udp => "SIP_TRANSPORT_UDP",
7076 SipTransport::Tcp => "SIP_TRANSPORT_TCP",
7077 SipTransport::Tls => "SIP_TRANSPORT_TLS",
7078 }
7079 }
7080 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7082 match value {
7083 "SIP_TRANSPORT_AUTO" => Some(Self::Auto),
7084 "SIP_TRANSPORT_UDP" => Some(Self::Udp),
7085 "SIP_TRANSPORT_TCP" => Some(Self::Tcp),
7086 "SIP_TRANSPORT_TLS" => Some(Self::Tls),
7087 _ => None,
7088 }
7089 }
7090}
7091#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7092#[repr(i32)]
7093pub enum SipHeaderOptions {
7094 SipNoHeaders = 0,
7096 SipXHeaders = 1,
7098 SipAllHeaders = 2,
7100}
7101impl SipHeaderOptions {
7102 pub fn as_str_name(&self) -> &'static str {
7107 match self {
7108 SipHeaderOptions::SipNoHeaders => "SIP_NO_HEADERS",
7109 SipHeaderOptions::SipXHeaders => "SIP_X_HEADERS",
7110 SipHeaderOptions::SipAllHeaders => "SIP_ALL_HEADERS",
7111 }
7112 }
7113 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7115 match value {
7116 "SIP_NO_HEADERS" => Some(Self::SipNoHeaders),
7117 "SIP_X_HEADERS" => Some(Self::SipXHeaders),
7118 "SIP_ALL_HEADERS" => Some(Self::SipAllHeaders),
7119 _ => None,
7120 }
7121 }
7122}
7123#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7124#[repr(i32)]
7125pub enum SipMediaEncryption {
7126 SipMediaEncryptDisable = 0,
7128 SipMediaEncryptAllow = 1,
7130 SipMediaEncryptRequire = 2,
7132}
7133impl SipMediaEncryption {
7134 pub fn as_str_name(&self) -> &'static str {
7139 match self {
7140 SipMediaEncryption::SipMediaEncryptDisable => "SIP_MEDIA_ENCRYPT_DISABLE",
7141 SipMediaEncryption::SipMediaEncryptAllow => "SIP_MEDIA_ENCRYPT_ALLOW",
7142 SipMediaEncryption::SipMediaEncryptRequire => "SIP_MEDIA_ENCRYPT_REQUIRE",
7143 }
7144 }
7145 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7147 match value {
7148 "SIP_MEDIA_ENCRYPT_DISABLE" => Some(Self::SipMediaEncryptDisable),
7149 "SIP_MEDIA_ENCRYPT_ALLOW" => Some(Self::SipMediaEncryptAllow),
7150 "SIP_MEDIA_ENCRYPT_REQUIRE" => Some(Self::SipMediaEncryptRequire),
7151 _ => None,
7152 }
7153 }
7154}
7155#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7156#[repr(i32)]
7157pub enum ProviderType {
7158 Unknown = 0,
7159 Internal = 1,
7161 External = 2,
7163}
7164impl ProviderType {
7165 pub fn as_str_name(&self) -> &'static str {
7170 match self {
7171 ProviderType::Unknown => "PROVIDER_TYPE_UNKNOWN",
7172 ProviderType::Internal => "PROVIDER_TYPE_INTERNAL",
7173 ProviderType::External => "PROVIDER_TYPE_EXTERNAL",
7174 }
7175 }
7176 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7178 match value {
7179 "PROVIDER_TYPE_UNKNOWN" => Some(Self::Unknown),
7180 "PROVIDER_TYPE_INTERNAL" => Some(Self::Internal),
7181 "PROVIDER_TYPE_EXTERNAL" => Some(Self::External),
7182 _ => None,
7183 }
7184 }
7185}
7186#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7187#[repr(i32)]
7188pub enum SipCallStatus {
7189 ScsCallIncoming = 0,
7191 ScsParticipantJoined = 1,
7193 ScsActive = 2,
7195 ScsDisconnected = 3,
7197 ScsError = 4,
7199}
7200impl SipCallStatus {
7201 pub fn as_str_name(&self) -> &'static str {
7206 match self {
7207 SipCallStatus::ScsCallIncoming => "SCS_CALL_INCOMING",
7208 SipCallStatus::ScsParticipantJoined => "SCS_PARTICIPANT_JOINED",
7209 SipCallStatus::ScsActive => "SCS_ACTIVE",
7210 SipCallStatus::ScsDisconnected => "SCS_DISCONNECTED",
7211 SipCallStatus::ScsError => "SCS_ERROR",
7212 }
7213 }
7214 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7216 match value {
7217 "SCS_CALL_INCOMING" => Some(Self::ScsCallIncoming),
7218 "SCS_PARTICIPANT_JOINED" => Some(Self::ScsParticipantJoined),
7219 "SCS_ACTIVE" => Some(Self::ScsActive),
7220 "SCS_DISCONNECTED" => Some(Self::ScsDisconnected),
7221 "SCS_ERROR" => Some(Self::ScsError),
7222 _ => None,
7223 }
7224 }
7225}
7226#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7227#[repr(i32)]
7228pub enum SipTransferStatus {
7229 StsTransferOngoing = 0,
7230 StsTransferFailed = 1,
7231 StsTransferSuccessful = 2,
7232}
7233impl SipTransferStatus {
7234 pub fn as_str_name(&self) -> &'static str {
7239 match self {
7240 SipTransferStatus::StsTransferOngoing => "STS_TRANSFER_ONGOING",
7241 SipTransferStatus::StsTransferFailed => "STS_TRANSFER_FAILED",
7242 SipTransferStatus::StsTransferSuccessful => "STS_TRANSFER_SUCCESSFUL",
7243 }
7244 }
7245 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7247 match value {
7248 "STS_TRANSFER_ONGOING" => Some(Self::StsTransferOngoing),
7249 "STS_TRANSFER_FAILED" => Some(Self::StsTransferFailed),
7250 "STS_TRANSFER_SUCCESSFUL" => Some(Self::StsTransferSuccessful),
7251 _ => None,
7252 }
7253 }
7254}
7255#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7256#[repr(i32)]
7257pub enum SipFeature {
7258 None = 0,
7259 KrispEnabled = 1,
7260}
7261impl SipFeature {
7262 pub fn as_str_name(&self) -> &'static str {
7267 match self {
7268 SipFeature::None => "NONE",
7269 SipFeature::KrispEnabled => "KRISP_ENABLED",
7270 }
7271 }
7272 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7274 match value {
7275 "NONE" => Some(Self::None),
7276 "KRISP_ENABLED" => Some(Self::KrispEnabled),
7277 _ => None,
7278 }
7279 }
7280}
7281#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7282#[repr(i32)]
7283pub enum SipCallDirection {
7284 ScdUnknown = 0,
7285 ScdInbound = 1,
7286 ScdOutbound = 2,
7287}
7288impl SipCallDirection {
7289 pub fn as_str_name(&self) -> &'static str {
7294 match self {
7295 SipCallDirection::ScdUnknown => "SCD_UNKNOWN",
7296 SipCallDirection::ScdInbound => "SCD_INBOUND",
7297 SipCallDirection::ScdOutbound => "SCD_OUTBOUND",
7298 }
7299 }
7300 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7302 match value {
7303 "SCD_UNKNOWN" => Some(Self::ScdUnknown),
7304 "SCD_INBOUND" => Some(Self::ScdInbound),
7305 "SCD_OUTBOUND" => Some(Self::ScdOutbound),
7306 _ => None,
7307 }
7308 }
7309}
7310#[allow(clippy::derive_partial_eq_without_eq)]
7311#[derive(Clone, PartialEq, ::prost::Message)]
7312pub struct DialWhatsAppCallRequest {
7313 #[prost(string, tag="1")]
7315 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
7316 #[prost(string, tag="2")]
7318 pub whatsapp_to_phone_number: ::prost::alloc::string::String,
7319 #[prost(string, tag="3")]
7321 pub whatsapp_api_key: ::prost::alloc::string::String,
7322 #[prost(string, tag="12")]
7324 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
7325 #[prost(string, tag="4")]
7327 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
7328 #[prost(string, tag="5")]
7330 pub room_name: ::prost::alloc::string::String,
7331 #[prost(message, repeated, tag="6")]
7333 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7334 #[prost(string, tag="7")]
7337 pub participant_identity: ::prost::alloc::string::String,
7338 #[prost(string, tag="8")]
7340 pub participant_name: ::prost::alloc::string::String,
7341 #[prost(string, tag="9")]
7343 pub participant_metadata: ::prost::alloc::string::String,
7344 #[prost(map="string, string", tag="10")]
7346 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7347 #[prost(string, tag="11")]
7349 pub destination_country: ::prost::alloc::string::String,
7350 #[prost(message, optional, tag="13")]
7352 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
7353}
7354#[allow(clippy::derive_partial_eq_without_eq)]
7355#[derive(Clone, PartialEq, ::prost::Message)]
7356pub struct DialWhatsAppCallResponse {
7357 #[prost(string, tag="1")]
7359 pub whatsapp_call_id: ::prost::alloc::string::String,
7360 #[prost(string, tag="2")]
7362 pub room_name: ::prost::alloc::string::String,
7363}
7364#[allow(clippy::derive_partial_eq_without_eq)]
7365#[derive(Clone, PartialEq, ::prost::Message)]
7366pub struct DisconnectWhatsAppCallRequest {
7367 #[prost(string, tag="1")]
7369 pub whatsapp_call_id: ::prost::alloc::string::String,
7370 #[prost(string, tag="2")]
7374 pub whatsapp_api_key: ::prost::alloc::string::String,
7375 #[prost(enumeration="disconnect_whats_app_call_request::DisconnectReason", tag="3")]
7377 pub disconnect_reason: i32,
7378}
7379pub mod disconnect_whats_app_call_request {
7381 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7382 #[repr(i32)]
7383 pub enum DisconnectReason {
7384 BusinessInitiated = 0,
7386 UserInitiated = 1,
7392 }
7393 impl DisconnectReason {
7394 pub fn as_str_name(&self) -> &'static str {
7399 match self {
7400 DisconnectReason::BusinessInitiated => "BUSINESS_INITIATED",
7401 DisconnectReason::UserInitiated => "USER_INITIATED",
7402 }
7403 }
7404 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7406 match value {
7407 "BUSINESS_INITIATED" => Some(Self::BusinessInitiated),
7408 "USER_INITIATED" => Some(Self::UserInitiated),
7409 _ => None,
7410 }
7411 }
7412 }
7413}
7414#[allow(clippy::derive_partial_eq_without_eq)]
7415#[derive(Clone, PartialEq, ::prost::Message)]
7416pub struct DisconnectWhatsAppCallResponse {
7417}
7418#[allow(clippy::derive_partial_eq_without_eq)]
7419#[derive(Clone, PartialEq, ::prost::Message)]
7420pub struct ConnectWhatsAppCallRequest {
7421 #[prost(string, tag="1")]
7423 pub whatsapp_call_id: ::prost::alloc::string::String,
7424 #[prost(message, optional, tag="2")]
7427 pub sdp: ::core::option::Option<SessionDescription>,
7428}
7429#[allow(clippy::derive_partial_eq_without_eq)]
7430#[derive(Clone, PartialEq, ::prost::Message)]
7431pub struct ConnectWhatsAppCallResponse {
7432}
7433#[allow(clippy::derive_partial_eq_without_eq)]
7434#[derive(Clone, PartialEq, ::prost::Message)]
7435pub struct AcceptWhatsAppCallRequest {
7436 #[prost(string, tag="1")]
7438 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
7439 #[prost(string, tag="2")]
7441 pub whatsapp_api_key: ::prost::alloc::string::String,
7442 #[prost(string, tag="13")]
7444 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
7445 #[prost(string, tag="3")]
7447 pub whatsapp_call_id: ::prost::alloc::string::String,
7448 #[prost(string, tag="4")]
7450 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
7451 #[prost(message, optional, tag="5")]
7454 pub sdp: ::core::option::Option<SessionDescription>,
7455 #[prost(string, tag="6")]
7457 pub room_name: ::prost::alloc::string::String,
7458 #[prost(message, repeated, tag="7")]
7460 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7461 #[prost(string, tag="8")]
7464 pub participant_identity: ::prost::alloc::string::String,
7465 #[prost(string, tag="9")]
7467 pub participant_name: ::prost::alloc::string::String,
7468 #[prost(string, tag="10")]
7470 pub participant_metadata: ::prost::alloc::string::String,
7471 #[prost(map="string, string", tag="11")]
7473 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7474 #[prost(string, tag="12")]
7476 pub destination_country: ::prost::alloc::string::String,
7477 #[prost(message, optional, tag="14")]
7479 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
7480 #[prost(bool, tag="15")]
7482 pub wait_until_answered: bool,
7483}
7484#[allow(clippy::derive_partial_eq_without_eq)]
7485#[derive(Clone, PartialEq, ::prost::Message)]
7486pub struct AcceptWhatsAppCallResponse {
7487 #[prost(string, tag="1")]
7489 pub room_name: ::prost::alloc::string::String,
7490}
7491#[allow(clippy::derive_partial_eq_without_eq)]
7492#[derive(Clone, PartialEq, ::prost::Message)]
7493pub struct WhatsAppCall {
7494 #[prost(string, tag="1")]
7496 pub whatsapp_call_id: ::prost::alloc::string::String,
7497 #[prost(enumeration="WhatsAppCallDirection", tag="2")]
7499 pub direction: i32,
7500}
7501#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7502#[repr(i32)]
7503pub enum WhatsAppCallDirection {
7504 WhatsappCallDirectionInbound = 0,
7505 WhatsappCallDirectionOutbound = 2,
7506}
7507impl WhatsAppCallDirection {
7508 pub fn as_str_name(&self) -> &'static str {
7513 match self {
7514 WhatsAppCallDirection::WhatsappCallDirectionInbound => "WHATSAPP_CALL_DIRECTION_INBOUND",
7515 WhatsAppCallDirection::WhatsappCallDirectionOutbound => "WHATSAPP_CALL_DIRECTION_OUTBOUND",
7516 }
7517 }
7518 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7520 match value {
7521 "WHATSAPP_CALL_DIRECTION_INBOUND" => Some(Self::WhatsappCallDirectionInbound),
7522 "WHATSAPP_CALL_DIRECTION_OUTBOUND" => Some(Self::WhatsappCallDirectionOutbound),
7523 _ => None,
7524 }
7525 }
7526}
7527#[allow(clippy::derive_partial_eq_without_eq)]
7528#[derive(Clone, PartialEq, ::prost::Message)]
7529pub struct ConnectTwilioCallRequest {
7530 #[prost(enumeration="connect_twilio_call_request::TwilioCallDirection", tag="1")]
7532 pub twilio_call_direction: i32,
7533 #[prost(string, tag="2")]
7535 pub room_name: ::prost::alloc::string::String,
7536 #[prost(message, repeated, tag="3")]
7538 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7539 #[prost(string, tag="4")]
7542 pub participant_identity: ::prost::alloc::string::String,
7543 #[prost(string, tag="5")]
7545 pub participant_name: ::prost::alloc::string::String,
7546 #[prost(string, tag="6")]
7548 pub participant_metadata: ::prost::alloc::string::String,
7549 #[prost(map="string, string", tag="7")]
7551 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7552 #[prost(string, tag="8")]
7554 pub destination_country: ::prost::alloc::string::String,
7555}
7556pub mod connect_twilio_call_request {
7558 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7559 #[repr(i32)]
7560 pub enum TwilioCallDirection {
7561 Inbound = 0,
7563 Outbound = 1,
7565 }
7566 impl TwilioCallDirection {
7567 pub fn as_str_name(&self) -> &'static str {
7572 match self {
7573 TwilioCallDirection::Inbound => "TWILIO_CALL_DIRECTION_INBOUND",
7574 TwilioCallDirection::Outbound => "TWILIO_CALL_DIRECTION_OUTBOUND",
7575 }
7576 }
7577 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7579 match value {
7580 "TWILIO_CALL_DIRECTION_INBOUND" => Some(Self::Inbound),
7581 "TWILIO_CALL_DIRECTION_OUTBOUND" => Some(Self::Outbound),
7582 _ => None,
7583 }
7584 }
7585 }
7586}
7587#[allow(clippy::derive_partial_eq_without_eq)]
7588#[derive(Clone, PartialEq, ::prost::Message)]
7589pub struct ConnectTwilioCallResponse {
7590 #[prost(string, tag="1")]
7592 pub connect_url: ::prost::alloc::string::String,
7593}
7594#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7595#[repr(i32)]
7596pub enum ConnectorType {
7597 Unspecified = 0,
7598 WhatsApp = 1,
7599 Twilio = 2,
7600}
7601impl ConnectorType {
7602 pub fn as_str_name(&self) -> &'static str {
7607 match self {
7608 ConnectorType::Unspecified => "Unspecified",
7609 ConnectorType::WhatsApp => "WhatsApp",
7610 ConnectorType::Twilio => "Twilio",
7611 }
7612 }
7613 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7615 match value {
7616 "Unspecified" => Some(Self::Unspecified),
7617 "WhatsApp" => Some(Self::WhatsApp),
7618 "Twilio" => Some(Self::Twilio),
7619 _ => None,
7620 }
7621 }
7622}
7623#[allow(clippy::derive_partial_eq_without_eq)]
7624#[derive(Clone, PartialEq, ::prost::Message)]
7625pub struct AnalyticsVideoLayer {
7626 #[prost(int32, tag="1")]
7627 pub layer: i32,
7628 #[prost(uint32, tag="2")]
7629 pub packets: u32,
7630 #[prost(uint64, tag="3")]
7631 pub bytes: u64,
7632 #[prost(uint32, tag="4")]
7633 pub frames: u32,
7634}
7635#[allow(clippy::derive_partial_eq_without_eq)]
7636#[derive(Clone, PartialEq, ::prost::Message)]
7637pub struct AnalyticsStream {
7638 #[prost(uint32, tag="1")]
7639 pub ssrc: u32,
7640 #[prost(uint32, tag="2")]
7641 pub primary_packets: u32,
7642 #[prost(uint64, tag="3")]
7643 pub primary_bytes: u64,
7644 #[prost(uint32, tag="4")]
7645 pub retransmit_packets: u32,
7646 #[prost(uint64, tag="5")]
7647 pub retransmit_bytes: u64,
7648 #[prost(uint32, tag="6")]
7649 pub padding_packets: u32,
7650 #[prost(uint64, tag="7")]
7651 pub padding_bytes: u64,
7652 #[prost(uint32, tag="8")]
7653 pub packets_lost: u32,
7654 #[prost(uint32, tag="9")]
7655 pub frames: u32,
7656 #[prost(uint32, tag="10")]
7657 pub rtt: u32,
7658 #[prost(uint32, tag="11")]
7659 pub jitter: u32,
7660 #[prost(uint32, tag="12")]
7661 pub nacks: u32,
7662 #[prost(uint32, tag="13")]
7663 pub plis: u32,
7664 #[prost(uint32, tag="14")]
7665 pub firs: u32,
7666 #[prost(message, repeated, tag="15")]
7667 pub video_layers: ::prost::alloc::vec::Vec<AnalyticsVideoLayer>,
7668 #[prost(message, optional, tag="17")]
7669 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
7670 #[prost(message, optional, tag="18")]
7671 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
7672 #[prost(uint32, tag="19")]
7673 pub packets_out_of_order: u32,
7674}
7675#[allow(clippy::derive_partial_eq_without_eq)]
7676#[derive(Clone, PartialEq, ::prost::Message)]
7677pub struct AnalyticsStat {
7678 #[prost(string, tag="14")]
7680 pub id: ::prost::alloc::string::String,
7681 #[prost(string, tag="1")]
7682 pub analytics_key: ::prost::alloc::string::String,
7683 #[prost(enumeration="StreamType", tag="2")]
7684 pub kind: i32,
7685 #[prost(message, optional, tag="3")]
7686 pub time_stamp: ::core::option::Option<::pbjson_types::Timestamp>,
7687 #[prost(string, tag="4")]
7688 pub node: ::prost::alloc::string::String,
7689 #[prost(string, tag="5")]
7690 pub room_id: ::prost::alloc::string::String,
7691 #[prost(string, tag="6")]
7692 pub room_name: ::prost::alloc::string::String,
7693 #[prost(string, tag="7")]
7694 pub participant_id: ::prost::alloc::string::String,
7695 #[prost(string, tag="8")]
7696 pub track_id: ::prost::alloc::string::String,
7697 #[prost(float, tag="9")]
7699 pub score: f32,
7700 #[prost(message, repeated, tag="10")]
7701 pub streams: ::prost::alloc::vec::Vec<AnalyticsStream>,
7702 #[prost(string, tag="11")]
7703 pub mime: ::prost::alloc::string::String,
7704 #[prost(float, tag="12")]
7705 pub min_score: f32,
7706 #[prost(float, tag="13")]
7707 pub median_score: f32,
7708}
7709#[allow(clippy::derive_partial_eq_without_eq)]
7710#[derive(Clone, PartialEq, ::prost::Message)]
7711pub struct AnalyticsStats {
7712 #[prost(message, repeated, tag="1")]
7713 pub stats: ::prost::alloc::vec::Vec<AnalyticsStat>,
7714}
7715#[allow(clippy::derive_partial_eq_without_eq)]
7716#[derive(Clone, PartialEq, ::prost::Message)]
7717pub struct AnalyticsClientMeta {
7718 #[prost(string, tag="1")]
7719 pub region: ::prost::alloc::string::String,
7720 #[prost(string, tag="2")]
7721 pub node: ::prost::alloc::string::String,
7722 #[prost(string, tag="3")]
7723 pub client_addr: ::prost::alloc::string::String,
7724 #[prost(uint32, tag="4")]
7725 pub client_connect_time: u32,
7726 #[prost(string, tag="5")]
7728 pub connection_type: ::prost::alloc::string::String,
7729 #[prost(enumeration="ReconnectReason", tag="6")]
7730 pub reconnect_reason: i32,
7731 #[prost(string, optional, tag="7")]
7732 pub geo_hash: ::core::option::Option<::prost::alloc::string::String>,
7733 #[prost(string, optional, tag="8")]
7734 pub country: ::core::option::Option<::prost::alloc::string::String>,
7735 #[prost(uint32, optional, tag="9")]
7736 pub isp_asn: ::core::option::Option<u32>,
7737}
7738#[allow(clippy::derive_partial_eq_without_eq)]
7739#[derive(Clone, PartialEq, ::prost::Message)]
7740pub struct AnalyticsEvent {
7741 #[prost(string, tag="25")]
7743 pub id: ::prost::alloc::string::String,
7744 #[prost(enumeration="AnalyticsEventType", tag="1")]
7745 pub r#type: i32,
7746 #[prost(message, optional, tag="2")]
7747 pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
7748 #[prost(string, tag="3")]
7749 pub room_id: ::prost::alloc::string::String,
7750 #[prost(message, optional, tag="4")]
7751 pub room: ::core::option::Option<Room>,
7752 #[prost(string, tag="5")]
7753 pub participant_id: ::prost::alloc::string::String,
7754 #[prost(message, optional, tag="6")]
7755 pub participant: ::core::option::Option<ParticipantInfo>,
7756 #[prost(string, tag="7")]
7757 pub track_id: ::prost::alloc::string::String,
7758 #[prost(message, optional, tag="8")]
7759 pub track: ::core::option::Option<TrackInfo>,
7760 #[prost(string, tag="10")]
7761 pub analytics_key: ::prost::alloc::string::String,
7762 #[prost(message, optional, tag="11")]
7763 pub client_info: ::core::option::Option<ClientInfo>,
7764 #[prost(message, optional, tag="12")]
7765 pub client_meta: ::core::option::Option<AnalyticsClientMeta>,
7766 #[prost(string, tag="13")]
7767 pub egress_id: ::prost::alloc::string::String,
7768 #[prost(string, tag="19")]
7769 pub ingress_id: ::prost::alloc::string::String,
7770 #[prost(enumeration="VideoQuality", tag="14")]
7771 pub max_subscribed_video_quality: i32,
7772 #[prost(message, optional, tag="15")]
7773 pub publisher: ::core::option::Option<ParticipantInfo>,
7774 #[prost(string, tag="16")]
7775 pub mime: ::prost::alloc::string::String,
7776 #[prost(message, optional, tag="17")]
7777 pub egress: ::core::option::Option<EgressInfo>,
7778 #[prost(message, optional, tag="18")]
7779 pub ingress: ::core::option::Option<IngressInfo>,
7780 #[prost(string, tag="20")]
7781 pub error: ::prost::alloc::string::String,
7782 #[prost(message, optional, tag="21")]
7783 pub rtp_stats: ::core::option::Option<RtpStats>,
7784 #[prost(int32, tag="22")]
7785 pub video_layer: i32,
7786 #[prost(string, tag="24")]
7787 pub node_id: ::prost::alloc::string::String,
7788 #[prost(string, tag="26")]
7789 pub sip_call_id: ::prost::alloc::string::String,
7790 #[prost(message, optional, tag="27")]
7791 pub sip_call: ::core::option::Option<SipCallInfo>,
7792 #[prost(string, tag="28")]
7793 pub sip_trunk_id: ::prost::alloc::string::String,
7794 #[prost(message, optional, tag="29")]
7795 pub sip_inbound_trunk: ::core::option::Option<SipInboundTrunkInfo>,
7796 #[prost(message, optional, tag="30")]
7797 pub sip_outbound_trunk: ::core::option::Option<SipOutboundTrunkInfo>,
7798 #[prost(string, tag="31")]
7799 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
7800 #[prost(message, optional, tag="32")]
7801 pub sip_dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
7802 #[prost(message, optional, tag="36")]
7803 pub sip_transfer: ::core::option::Option<SipTransferInfo>,
7804 #[prost(message, optional, tag="33")]
7805 pub report: ::core::option::Option<ReportInfo>,
7806 #[prost(message, optional, tag="34")]
7807 pub api_call: ::core::option::Option<ApiCallInfo>,
7808 #[prost(message, optional, tag="35")]
7809 pub webhook: ::core::option::Option<WebhookInfo>,
7810}
7811#[allow(clippy::derive_partial_eq_without_eq)]
7812#[derive(Clone, PartialEq, ::prost::Message)]
7813pub struct AnalyticsEvents {
7814 #[prost(message, repeated, tag="1")]
7815 pub events: ::prost::alloc::vec::Vec<AnalyticsEvent>,
7816}
7817#[allow(clippy::derive_partial_eq_without_eq)]
7818#[derive(Clone, PartialEq, ::prost::Message)]
7819pub struct AnalyticsRoomParticipant {
7820 #[prost(string, tag="1")]
7821 pub id: ::prost::alloc::string::String,
7822 #[prost(string, tag="2")]
7823 pub identity: ::prost::alloc::string::String,
7824 #[prost(string, tag="3")]
7825 pub name: ::prost::alloc::string::String,
7826 #[prost(enumeration="participant_info::State", tag="4")]
7827 pub state: i32,
7828 #[prost(message, optional, tag="5")]
7829 pub joined_at: ::core::option::Option<::pbjson_types::Timestamp>,
7830}
7831#[allow(clippy::derive_partial_eq_without_eq)]
7832#[derive(Clone, PartialEq, ::prost::Message)]
7833pub struct AnalyticsRoom {
7834 #[prost(string, tag="1")]
7835 pub id: ::prost::alloc::string::String,
7836 #[prost(string, tag="2")]
7837 pub name: ::prost::alloc::string::String,
7838 #[prost(string, tag="5")]
7839 pub project_id: ::prost::alloc::string::String,
7840 #[prost(message, optional, tag="3")]
7841 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
7842 #[prost(message, repeated, tag="4")]
7843 pub participants: ::prost::alloc::vec::Vec<AnalyticsRoomParticipant>,
7844}
7845#[allow(clippy::derive_partial_eq_without_eq)]
7846#[derive(Clone, PartialEq, ::prost::Message)]
7847pub struct AnalyticsNodeRooms {
7848 #[prost(string, tag="1")]
7849 pub node_id: ::prost::alloc::string::String,
7850 #[prost(uint64, tag="2")]
7851 pub sequence_number: u64,
7852 #[prost(message, optional, tag="3")]
7853 pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
7854 #[prost(message, repeated, tag="4")]
7855 pub rooms: ::prost::alloc::vec::Vec<AnalyticsRoom>,
7856}
7857#[allow(clippy::derive_partial_eq_without_eq)]
7858#[derive(Clone, PartialEq, ::prost::Message)]
7859pub struct ReportInfo {
7860 #[prost(oneof="report_info::Message", tags="1")]
7861 pub message: ::core::option::Option<report_info::Message>,
7862}
7863pub mod report_info {
7865 #[allow(clippy::derive_partial_eq_without_eq)]
7866#[derive(Clone, PartialEq, ::prost::Oneof)]
7867 pub enum Message {
7868 #[prost(message, tag="1")]
7869 FeatureUsage(super::FeatureUsageInfo),
7870 }
7871}
7872#[allow(clippy::derive_partial_eq_without_eq)]
7873#[derive(Clone, PartialEq, ::prost::Message)]
7874pub struct TimeRange {
7875 #[prost(message, optional, tag="1")]
7876 pub started_at: ::core::option::Option<::pbjson_types::Timestamp>,
7877 #[prost(message, optional, tag="2")]
7878 pub ended_at: ::core::option::Option<::pbjson_types::Timestamp>,
7879}
7880#[allow(clippy::derive_partial_eq_without_eq)]
7881#[derive(Clone, PartialEq, ::prost::Message)]
7882pub struct FeatureUsageInfo {
7883 #[prost(enumeration="feature_usage_info::Feature", tag="1")]
7884 pub feature: i32,
7885 #[prost(string, tag="2")]
7886 pub project_id: ::prost::alloc::string::String,
7887 #[prost(string, tag="3")]
7888 pub room_name: ::prost::alloc::string::String,
7889 #[prost(string, tag="4")]
7890 pub room_id: ::prost::alloc::string::String,
7891 #[prost(string, tag="5")]
7892 pub participant_identity: ::prost::alloc::string::String,
7893 #[prost(string, tag="6")]
7894 pub participant_id: ::prost::alloc::string::String,
7895 #[prost(string, tag="7")]
7896 pub track_id: ::prost::alloc::string::String,
7897 #[prost(message, repeated, tag="8")]
7901 pub time_ranges: ::prost::alloc::vec::Vec<TimeRange>,
7902 #[prost(map="string, string", tag="9")]
7904 pub feature_info: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7905}
7906pub mod feature_usage_info {
7908 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7909 #[repr(i32)]
7910 pub enum Feature {
7911 KrispNoiseCancellation = 0,
7912 KrispBackgroundVoiceCancellation = 1,
7913 AicAudioEnhancement = 2,
7914 KrispViva = 3,
7915 }
7916 impl Feature {
7917 pub fn as_str_name(&self) -> &'static str {
7922 match self {
7923 Feature::KrispNoiseCancellation => "KRISP_NOISE_CANCELLATION",
7924 Feature::KrispBackgroundVoiceCancellation => "KRISP_BACKGROUND_VOICE_CANCELLATION",
7925 Feature::AicAudioEnhancement => "AIC_AUDIO_ENHANCEMENT",
7926 Feature::KrispViva => "KRISP_VIVA",
7927 }
7928 }
7929 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7931 match value {
7932 "KRISP_NOISE_CANCELLATION" => Some(Self::KrispNoiseCancellation),
7933 "KRISP_BACKGROUND_VOICE_CANCELLATION" => Some(Self::KrispBackgroundVoiceCancellation),
7934 "AIC_AUDIO_ENHANCEMENT" => Some(Self::AicAudioEnhancement),
7935 "KRISP_VIVA" => Some(Self::KrispViva),
7936 _ => None,
7937 }
7938 }
7939 }
7940}
7941#[allow(clippy::derive_partial_eq_without_eq)]
7942#[derive(Clone, PartialEq, ::prost::Message)]
7943pub struct ApiCallRequest {
7944 #[prost(oneof="api_call_request::Message", tags="1, 2, 3, 4, 5, 6, 7, 8, 9, 10")]
7945 pub message: ::core::option::Option<api_call_request::Message>,
7946}
7947pub mod api_call_request {
7949 #[allow(clippy::derive_partial_eq_without_eq)]
7950#[derive(Clone, PartialEq, ::prost::Oneof)]
7951 pub enum Message {
7952 #[prost(message, tag="1")]
7953 CreateRoomRequest(super::CreateRoomRequest),
7954 #[prost(message, tag="2")]
7955 ListRoomsRequest(super::ListRoomsRequest),
7956 #[prost(message, tag="3")]
7957 DeleteRoomRequest(super::DeleteRoomRequest),
7958 #[prost(message, tag="4")]
7959 ListParticipantsRequest(super::ListParticipantsRequest),
7960 #[prost(message, tag="5")]
7961 RoomParticipantIdentity(super::RoomParticipantIdentity),
7962 #[prost(message, tag="6")]
7963 MuteRoomTrackRequest(super::MuteRoomTrackRequest),
7964 #[prost(message, tag="7")]
7965 UpdateParticipantRequest(super::UpdateParticipantRequest),
7966 #[prost(message, tag="8")]
7967 UpdateSubscriptionsRequest(super::UpdateSubscriptionsRequest),
7968 #[prost(message, tag="9")]
7969 SendDataRequest(super::SendDataRequest),
7970 #[prost(message, tag="10")]
7971 UpdateRoomMetadataRequest(super::UpdateRoomMetadataRequest),
7972 }
7973}
7974#[allow(clippy::derive_partial_eq_without_eq)]
7975#[derive(Clone, PartialEq, ::prost::Message)]
7976pub struct ApiCallInfo {
7977 #[prost(string, tag="1")]
7978 pub project_id: ::prost::alloc::string::String,
7979 #[prost(message, optional, tag="2")]
7980 pub request: ::core::option::Option<ApiCallRequest>,
7981 #[prost(string, tag="3")]
7982 pub service: ::prost::alloc::string::String,
7983 #[prost(string, tag="4")]
7984 pub method: ::prost::alloc::string::String,
7985 #[prost(string, tag="5")]
7986 pub node_id: ::prost::alloc::string::String,
7987 #[prost(int32, tag="6")]
7988 pub status: i32,
7989 #[prost(string, tag="7")]
7990 pub twirp_error_code: ::prost::alloc::string::String,
7991 #[prost(string, tag="8")]
7992 pub twirp_error_message: ::prost::alloc::string::String,
7993 #[prost(string, tag="9")]
7994 pub room_name: ::prost::alloc::string::String,
7995 #[prost(string, tag="10")]
7996 pub room_id: ::prost::alloc::string::String,
7997 #[prost(string, tag="11")]
7998 pub participant_identity: ::prost::alloc::string::String,
7999 #[prost(string, tag="12")]
8000 pub participant_id: ::prost::alloc::string::String,
8001 #[prost(string, tag="13")]
8002 pub track_id: ::prost::alloc::string::String,
8003 #[prost(message, optional, tag="14")]
8004 pub started_at: ::core::option::Option<::pbjson_types::Timestamp>,
8005 #[prost(int64, tag="15")]
8006 pub duration_ns: i64,
8007}
8008#[allow(clippy::derive_partial_eq_without_eq)]
8009#[derive(Clone, PartialEq, ::prost::Message)]
8010pub struct WebhookInfo {
8011 #[prost(string, tag="1")]
8012 pub event_id: ::prost::alloc::string::String,
8013 #[prost(string, tag="2")]
8014 pub event: ::prost::alloc::string::String,
8015 #[prost(string, tag="3")]
8016 pub project_id: ::prost::alloc::string::String,
8017 #[prost(string, tag="4")]
8018 pub room_name: ::prost::alloc::string::String,
8019 #[prost(string, tag="5")]
8020 pub room_id: ::prost::alloc::string::String,
8021 #[prost(string, tag="6")]
8022 pub participant_identity: ::prost::alloc::string::String,
8023 #[prost(string, tag="7")]
8024 pub participant_id: ::prost::alloc::string::String,
8025 #[prost(string, tag="8")]
8026 pub track_id: ::prost::alloc::string::String,
8027 #[prost(string, tag="9")]
8028 pub egress_id: ::prost::alloc::string::String,
8029 #[prost(string, tag="10")]
8030 pub ingress_id: ::prost::alloc::string::String,
8031 #[prost(message, optional, tag="11")]
8032 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
8033 #[prost(message, optional, tag="12")]
8034 pub queued_at: ::core::option::Option<::pbjson_types::Timestamp>,
8035 #[prost(int64, tag="13")]
8036 pub queue_duration_ns: i64,
8037 #[prost(message, optional, tag="14")]
8038 pub sent_at: ::core::option::Option<::pbjson_types::Timestamp>,
8039 #[prost(int64, tag="15")]
8040 pub send_duration_ns: i64,
8041 #[prost(string, tag="16")]
8042 pub url: ::prost::alloc::string::String,
8043 #[prost(int32, tag="17")]
8044 pub num_dropped: i32,
8045 #[prost(bool, tag="18")]
8046 pub is_dropped: bool,
8047 #[prost(string, tag="19")]
8048 pub service_status: ::prost::alloc::string::String,
8049 #[prost(int32, tag="20")]
8050 pub service_error_code: i32,
8051 #[prost(string, tag="21")]
8052 pub service_error: ::prost::alloc::string::String,
8053 #[prost(string, tag="22")]
8054 pub send_error: ::prost::alloc::string::String,
8055}
8056#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8057#[repr(i32)]
8058pub enum StreamType {
8059 Upstream = 0,
8060 Downstream = 1,
8061}
8062impl StreamType {
8063 pub fn as_str_name(&self) -> &'static str {
8068 match self {
8069 StreamType::Upstream => "UPSTREAM",
8070 StreamType::Downstream => "DOWNSTREAM",
8071 }
8072 }
8073 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8075 match value {
8076 "UPSTREAM" => Some(Self::Upstream),
8077 "DOWNSTREAM" => Some(Self::Downstream),
8078 _ => None,
8079 }
8080 }
8081}
8082#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8083#[repr(i32)]
8084pub enum AnalyticsEventType {
8085 RoomCreated = 0,
8086 RoomEnded = 1,
8087 ParticipantJoined = 2,
8088 ParticipantLeft = 3,
8089 ParticipantConnectionAborted = 45,
8090 TrackPublished = 4,
8091 TrackPublishRequested = 20,
8092 TrackUnpublished = 5,
8093 TrackSubscribed = 6,
8094 TrackSubscribeRequested = 21,
8095 TrackSubscribeFailed = 25,
8096 TrackUnsubscribed = 7,
8097 TrackPublishedUpdate = 10,
8098 TrackMuted = 23,
8099 TrackUnmuted = 24,
8100 TrackPublishStats = 26,
8101 TrackSubscribeStats = 27,
8102 ParticipantActive = 11,
8103 ParticipantResumed = 22,
8104 EgressStarted = 12,
8105 EgressEnded = 13,
8106 EgressUpdated = 28,
8107 TrackMaxSubscribedVideoQuality = 14,
8108 Reconnected = 15,
8109 IngressCreated = 18,
8110 IngressDeleted = 19,
8111 IngressStarted = 16,
8112 IngressEnded = 17,
8113 IngressUpdated = 29,
8114 SipInboundTrunkCreated = 30,
8115 SipInboundTrunkDeleted = 31,
8116 SipOutboundTrunkCreated = 32,
8117 SipOutboundTrunkDeleted = 33,
8118 SipDispatchRuleCreated = 34,
8119 SipDispatchRuleDeleted = 35,
8120 SipParticipantCreated = 36,
8121 SipCallIncoming = 37,
8122 SipCallStarted = 38,
8123 SipCallEnded = 39,
8124 SipTransferRequested = 43,
8125 SipTransferComplete = 44,
8126 SipCallUpdate = 46,
8127 Report = 40,
8128 ApiCall = 41,
8129 Webhook = 42,
8130}
8131impl AnalyticsEventType {
8132 pub fn as_str_name(&self) -> &'static str {
8137 match self {
8138 AnalyticsEventType::RoomCreated => "ROOM_CREATED",
8139 AnalyticsEventType::RoomEnded => "ROOM_ENDED",
8140 AnalyticsEventType::ParticipantJoined => "PARTICIPANT_JOINED",
8141 AnalyticsEventType::ParticipantLeft => "PARTICIPANT_LEFT",
8142 AnalyticsEventType::ParticipantConnectionAborted => "PARTICIPANT_CONNECTION_ABORTED",
8143 AnalyticsEventType::TrackPublished => "TRACK_PUBLISHED",
8144 AnalyticsEventType::TrackPublishRequested => "TRACK_PUBLISH_REQUESTED",
8145 AnalyticsEventType::TrackUnpublished => "TRACK_UNPUBLISHED",
8146 AnalyticsEventType::TrackSubscribed => "TRACK_SUBSCRIBED",
8147 AnalyticsEventType::TrackSubscribeRequested => "TRACK_SUBSCRIBE_REQUESTED",
8148 AnalyticsEventType::TrackSubscribeFailed => "TRACK_SUBSCRIBE_FAILED",
8149 AnalyticsEventType::TrackUnsubscribed => "TRACK_UNSUBSCRIBED",
8150 AnalyticsEventType::TrackPublishedUpdate => "TRACK_PUBLISHED_UPDATE",
8151 AnalyticsEventType::TrackMuted => "TRACK_MUTED",
8152 AnalyticsEventType::TrackUnmuted => "TRACK_UNMUTED",
8153 AnalyticsEventType::TrackPublishStats => "TRACK_PUBLISH_STATS",
8154 AnalyticsEventType::TrackSubscribeStats => "TRACK_SUBSCRIBE_STATS",
8155 AnalyticsEventType::ParticipantActive => "PARTICIPANT_ACTIVE",
8156 AnalyticsEventType::ParticipantResumed => "PARTICIPANT_RESUMED",
8157 AnalyticsEventType::EgressStarted => "EGRESS_STARTED",
8158 AnalyticsEventType::EgressEnded => "EGRESS_ENDED",
8159 AnalyticsEventType::EgressUpdated => "EGRESS_UPDATED",
8160 AnalyticsEventType::TrackMaxSubscribedVideoQuality => "TRACK_MAX_SUBSCRIBED_VIDEO_QUALITY",
8161 AnalyticsEventType::Reconnected => "RECONNECTED",
8162 AnalyticsEventType::IngressCreated => "INGRESS_CREATED",
8163 AnalyticsEventType::IngressDeleted => "INGRESS_DELETED",
8164 AnalyticsEventType::IngressStarted => "INGRESS_STARTED",
8165 AnalyticsEventType::IngressEnded => "INGRESS_ENDED",
8166 AnalyticsEventType::IngressUpdated => "INGRESS_UPDATED",
8167 AnalyticsEventType::SipInboundTrunkCreated => "SIP_INBOUND_TRUNK_CREATED",
8168 AnalyticsEventType::SipInboundTrunkDeleted => "SIP_INBOUND_TRUNK_DELETED",
8169 AnalyticsEventType::SipOutboundTrunkCreated => "SIP_OUTBOUND_TRUNK_CREATED",
8170 AnalyticsEventType::SipOutboundTrunkDeleted => "SIP_OUTBOUND_TRUNK_DELETED",
8171 AnalyticsEventType::SipDispatchRuleCreated => "SIP_DISPATCH_RULE_CREATED",
8172 AnalyticsEventType::SipDispatchRuleDeleted => "SIP_DISPATCH_RULE_DELETED",
8173 AnalyticsEventType::SipParticipantCreated => "SIP_PARTICIPANT_CREATED",
8174 AnalyticsEventType::SipCallIncoming => "SIP_CALL_INCOMING",
8175 AnalyticsEventType::SipCallStarted => "SIP_CALL_STARTED",
8176 AnalyticsEventType::SipCallEnded => "SIP_CALL_ENDED",
8177 AnalyticsEventType::SipTransferRequested => "SIP_TRANSFER_REQUESTED",
8178 AnalyticsEventType::SipTransferComplete => "SIP_TRANSFER_COMPLETE",
8179 AnalyticsEventType::SipCallUpdate => "SIP_CALL_UPDATE",
8180 AnalyticsEventType::Report => "REPORT",
8181 AnalyticsEventType::ApiCall => "API_CALL",
8182 AnalyticsEventType::Webhook => "WEBHOOK",
8183 }
8184 }
8185 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8187 match value {
8188 "ROOM_CREATED" => Some(Self::RoomCreated),
8189 "ROOM_ENDED" => Some(Self::RoomEnded),
8190 "PARTICIPANT_JOINED" => Some(Self::ParticipantJoined),
8191 "PARTICIPANT_LEFT" => Some(Self::ParticipantLeft),
8192 "PARTICIPANT_CONNECTION_ABORTED" => Some(Self::ParticipantConnectionAborted),
8193 "TRACK_PUBLISHED" => Some(Self::TrackPublished),
8194 "TRACK_PUBLISH_REQUESTED" => Some(Self::TrackPublishRequested),
8195 "TRACK_UNPUBLISHED" => Some(Self::TrackUnpublished),
8196 "TRACK_SUBSCRIBED" => Some(Self::TrackSubscribed),
8197 "TRACK_SUBSCRIBE_REQUESTED" => Some(Self::TrackSubscribeRequested),
8198 "TRACK_SUBSCRIBE_FAILED" => Some(Self::TrackSubscribeFailed),
8199 "TRACK_UNSUBSCRIBED" => Some(Self::TrackUnsubscribed),
8200 "TRACK_PUBLISHED_UPDATE" => Some(Self::TrackPublishedUpdate),
8201 "TRACK_MUTED" => Some(Self::TrackMuted),
8202 "TRACK_UNMUTED" => Some(Self::TrackUnmuted),
8203 "TRACK_PUBLISH_STATS" => Some(Self::TrackPublishStats),
8204 "TRACK_SUBSCRIBE_STATS" => Some(Self::TrackSubscribeStats),
8205 "PARTICIPANT_ACTIVE" => Some(Self::ParticipantActive),
8206 "PARTICIPANT_RESUMED" => Some(Self::ParticipantResumed),
8207 "EGRESS_STARTED" => Some(Self::EgressStarted),
8208 "EGRESS_ENDED" => Some(Self::EgressEnded),
8209 "EGRESS_UPDATED" => Some(Self::EgressUpdated),
8210 "TRACK_MAX_SUBSCRIBED_VIDEO_QUALITY" => Some(Self::TrackMaxSubscribedVideoQuality),
8211 "RECONNECTED" => Some(Self::Reconnected),
8212 "INGRESS_CREATED" => Some(Self::IngressCreated),
8213 "INGRESS_DELETED" => Some(Self::IngressDeleted),
8214 "INGRESS_STARTED" => Some(Self::IngressStarted),
8215 "INGRESS_ENDED" => Some(Self::IngressEnded),
8216 "INGRESS_UPDATED" => Some(Self::IngressUpdated),
8217 "SIP_INBOUND_TRUNK_CREATED" => Some(Self::SipInboundTrunkCreated),
8218 "SIP_INBOUND_TRUNK_DELETED" => Some(Self::SipInboundTrunkDeleted),
8219 "SIP_OUTBOUND_TRUNK_CREATED" => Some(Self::SipOutboundTrunkCreated),
8220 "SIP_OUTBOUND_TRUNK_DELETED" => Some(Self::SipOutboundTrunkDeleted),
8221 "SIP_DISPATCH_RULE_CREATED" => Some(Self::SipDispatchRuleCreated),
8222 "SIP_DISPATCH_RULE_DELETED" => Some(Self::SipDispatchRuleDeleted),
8223 "SIP_PARTICIPANT_CREATED" => Some(Self::SipParticipantCreated),
8224 "SIP_CALL_INCOMING" => Some(Self::SipCallIncoming),
8225 "SIP_CALL_STARTED" => Some(Self::SipCallStarted),
8226 "SIP_CALL_ENDED" => Some(Self::SipCallEnded),
8227 "SIP_TRANSFER_REQUESTED" => Some(Self::SipTransferRequested),
8228 "SIP_TRANSFER_COMPLETE" => Some(Self::SipTransferComplete),
8229 "SIP_CALL_UPDATE" => Some(Self::SipCallUpdate),
8230 "REPORT" => Some(Self::Report),
8231 "API_CALL" => Some(Self::ApiCall),
8232 "WEBHOOK" => Some(Self::Webhook),
8233 _ => None,
8234 }
8235 }
8236}
8237include!("livekit.serde.rs");
8238