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}
375pub mod participant_info {
377 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
378 #[repr(i32)]
379 pub enum State {
380 Joining = 0,
382 Joined = 1,
384 Active = 2,
386 Disconnected = 3,
388 }
389 impl State {
390 pub fn as_str_name(&self) -> &'static str {
395 match self {
396 State::Joining => "JOINING",
397 State::Joined => "JOINED",
398 State::Active => "ACTIVE",
399 State::Disconnected => "DISCONNECTED",
400 }
401 }
402 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
404 match value {
405 "JOINING" => Some(Self::Joining),
406 "JOINED" => Some(Self::Joined),
407 "ACTIVE" => Some(Self::Active),
408 "DISCONNECTED" => Some(Self::Disconnected),
409 _ => None,
410 }
411 }
412 }
413 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
414 #[repr(i32)]
415 pub enum Kind {
416 Standard = 0,
418 Ingress = 1,
420 Egress = 2,
422 Sip = 3,
424 Agent = 4,
426 Connector = 7,
428 Bridge = 8,
432 }
433 impl Kind {
434 pub fn as_str_name(&self) -> &'static str {
439 match self {
440 Kind::Standard => "STANDARD",
441 Kind::Ingress => "INGRESS",
442 Kind::Egress => "EGRESS",
443 Kind::Sip => "SIP",
444 Kind::Agent => "AGENT",
445 Kind::Connector => "CONNECTOR",
446 Kind::Bridge => "BRIDGE",
447 }
448 }
449 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
451 match value {
452 "STANDARD" => Some(Self::Standard),
453 "INGRESS" => Some(Self::Ingress),
454 "EGRESS" => Some(Self::Egress),
455 "SIP" => Some(Self::Sip),
456 "AGENT" => Some(Self::Agent),
457 "CONNECTOR" => Some(Self::Connector),
458 "BRIDGE" => Some(Self::Bridge),
459 _ => None,
460 }
461 }
462 }
463 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
464 #[repr(i32)]
465 pub enum KindDetail {
466 CloudAgent = 0,
467 Forwarded = 1,
468 ConnectorWhatsapp = 2,
469 ConnectorTwilio = 3,
470 BridgeRtsp = 4,
472 }
473 impl KindDetail {
474 pub fn as_str_name(&self) -> &'static str {
479 match self {
480 KindDetail::CloudAgent => "CLOUD_AGENT",
481 KindDetail::Forwarded => "FORWARDED",
482 KindDetail::ConnectorWhatsapp => "CONNECTOR_WHATSAPP",
483 KindDetail::ConnectorTwilio => "CONNECTOR_TWILIO",
484 KindDetail::BridgeRtsp => "BRIDGE_RTSP",
485 }
486 }
487 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
489 match value {
490 "CLOUD_AGENT" => Some(Self::CloudAgent),
491 "FORWARDED" => Some(Self::Forwarded),
492 "CONNECTOR_WHATSAPP" => Some(Self::ConnectorWhatsapp),
493 "CONNECTOR_TWILIO" => Some(Self::ConnectorTwilio),
494 "BRIDGE_RTSP" => Some(Self::BridgeRtsp),
495 _ => None,
496 }
497 }
498 }
499}
500#[allow(clippy::derive_partial_eq_without_eq)]
501#[derive(Clone, PartialEq, ::prost::Message)]
502pub struct Encryption {
503}
504pub mod encryption {
506 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
507 #[repr(i32)]
508 pub enum Type {
509 None = 0,
510 Gcm = 1,
511 Custom = 2,
512 }
513 impl Type {
514 pub fn as_str_name(&self) -> &'static str {
519 match self {
520 Type::None => "NONE",
521 Type::Gcm => "GCM",
522 Type::Custom => "CUSTOM",
523 }
524 }
525 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
527 match value {
528 "NONE" => Some(Self::None),
529 "GCM" => Some(Self::Gcm),
530 "CUSTOM" => Some(Self::Custom),
531 _ => None,
532 }
533 }
534 }
535}
536#[allow(clippy::derive_partial_eq_without_eq)]
537#[derive(Clone, PartialEq, ::prost::Message)]
538pub struct SimulcastCodecInfo {
539 #[prost(string, tag="1")]
540 pub mime_type: ::prost::alloc::string::String,
541 #[prost(string, tag="2")]
542 pub mid: ::prost::alloc::string::String,
543 #[prost(string, tag="3")]
544 pub cid: ::prost::alloc::string::String,
545 #[prost(message, repeated, tag="4")]
546 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
547 #[prost(enumeration="video_layer::Mode", tag="5")]
548 pub video_layer_mode: i32,
549 #[prost(string, tag="6")]
554 pub sdp_cid: ::prost::alloc::string::String,
555}
556#[allow(clippy::derive_partial_eq_without_eq)]
557#[derive(Clone, PartialEq, ::prost::Message)]
558pub struct TrackInfo {
559 #[prost(string, tag="1")]
560 pub sid: ::prost::alloc::string::String,
561 #[prost(enumeration="TrackType", tag="2")]
562 pub r#type: i32,
563 #[prost(string, tag="3")]
564 pub name: ::prost::alloc::string::String,
565 #[prost(bool, tag="4")]
566 pub muted: bool,
567 #[prost(uint32, tag="5")]
570 pub width: u32,
571 #[prost(uint32, tag="6")]
573 pub height: u32,
574 #[deprecated]
578 #[prost(bool, tag="7")]
579 pub simulcast: bool,
580 #[deprecated]
584 #[prost(bool, tag="8")]
585 pub disable_dtx: bool,
586 #[prost(enumeration="TrackSource", tag="9")]
588 pub source: i32,
589 #[deprecated]
591 #[prost(message, repeated, tag="10")]
592 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
593 #[prost(string, tag="11")]
595 pub mime_type: ::prost::alloc::string::String,
596 #[prost(string, tag="12")]
597 pub mid: ::prost::alloc::string::String,
598 #[prost(message, repeated, tag="13")]
599 pub codecs: ::prost::alloc::vec::Vec<SimulcastCodecInfo>,
600 #[deprecated]
602 #[prost(bool, tag="14")]
603 pub stereo: bool,
604 #[prost(bool, tag="15")]
606 pub disable_red: bool,
607 #[prost(enumeration="encryption::Type", tag="16")]
608 pub encryption: i32,
609 #[prost(string, tag="17")]
610 pub stream: ::prost::alloc::string::String,
611 #[prost(message, optional, tag="18")]
612 pub version: ::core::option::Option<TimedVersion>,
613 #[prost(enumeration="AudioTrackFeature", repeated, tag="19")]
614 pub audio_features: ::prost::alloc::vec::Vec<i32>,
615 #[prost(enumeration="BackupCodecPolicy", tag="20")]
616 pub backup_codec_policy: i32,
617 #[prost(enumeration="PacketTrailerFeature", repeated, tag="21")]
618 pub packet_trailer_features: ::prost::alloc::vec::Vec<i32>,
619}
620#[allow(clippy::derive_partial_eq_without_eq)]
621#[derive(Clone, PartialEq, ::prost::Message)]
622pub struct DataTrackInfo {
623 #[prost(uint32, tag="1")]
625 pub pub_handle: u32,
626 #[prost(string, tag="2")]
628 pub sid: ::prost::alloc::string::String,
629 #[prost(string, tag="3")]
631 pub name: ::prost::alloc::string::String,
632 #[prost(enumeration="encryption::Type", tag="4")]
634 pub encryption: i32,
635}
636#[allow(clippy::derive_partial_eq_without_eq)]
637#[derive(Clone, PartialEq, ::prost::Message)]
638pub struct DataTrackExtensionParticipantSid {
639 #[prost(enumeration="DataTrackExtensionId", tag="1")]
640 pub id: i32,
641 #[prost(string, tag="2")]
642 pub participant_sid: ::prost::alloc::string::String,
643}
644#[allow(clippy::derive_partial_eq_without_eq)]
645#[derive(Clone, PartialEq, ::prost::Message)]
646pub struct DataTrackSubscriptionOptions {
647 #[prost(uint32, optional, tag="1")]
650 pub target_fps: ::core::option::Option<u32>,
651}
652#[allow(clippy::derive_partial_eq_without_eq)]
654#[derive(Clone, PartialEq, ::prost::Message)]
655pub struct VideoLayer {
656 #[prost(enumeration="VideoQuality", tag="1")]
658 pub quality: i32,
659 #[prost(uint32, tag="2")]
660 pub width: u32,
661 #[prost(uint32, tag="3")]
662 pub height: u32,
663 #[prost(uint32, tag="4")]
665 pub bitrate: u32,
666 #[prost(uint32, tag="5")]
667 pub ssrc: u32,
668 #[prost(int32, tag="6")]
669 pub spatial_layer: i32,
670 #[prost(string, tag="7")]
671 pub rid: ::prost::alloc::string::String,
672 #[prost(uint32, tag="8")]
673 pub repair_ssrc: u32,
674}
675pub mod video_layer {
677 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
678 #[repr(i32)]
679 pub enum Mode {
680 Unused = 0,
681 OneSpatialLayerPerStream = 1,
682 MultipleSpatialLayersPerStream = 2,
683 OneSpatialLayerPerStreamIncompleteRtcpSr = 3,
684 }
685 impl Mode {
686 pub fn as_str_name(&self) -> &'static str {
691 match self {
692 Mode::Unused => "MODE_UNUSED",
693 Mode::OneSpatialLayerPerStream => "ONE_SPATIAL_LAYER_PER_STREAM",
694 Mode::MultipleSpatialLayersPerStream => "MULTIPLE_SPATIAL_LAYERS_PER_STREAM",
695 Mode::OneSpatialLayerPerStreamIncompleteRtcpSr => "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR",
696 }
697 }
698 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
700 match value {
701 "MODE_UNUSED" => Some(Self::Unused),
702 "ONE_SPATIAL_LAYER_PER_STREAM" => Some(Self::OneSpatialLayerPerStream),
703 "MULTIPLE_SPATIAL_LAYERS_PER_STREAM" => Some(Self::MultipleSpatialLayersPerStream),
704 "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR" => Some(Self::OneSpatialLayerPerStreamIncompleteRtcpSr),
705 _ => None,
706 }
707 }
708 }
709}
710#[allow(clippy::derive_partial_eq_without_eq)]
712#[derive(Clone, PartialEq, ::prost::Message)]
713pub struct DataPacket {
714 #[deprecated]
715 #[prost(enumeration="data_packet::Kind", tag="1")]
716 pub kind: i32,
717 #[prost(string, tag="4")]
719 pub participant_identity: ::prost::alloc::string::String,
720 #[prost(string, repeated, tag="5")]
722 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
723 #[prost(uint32, tag="16")]
725 pub sequence: u32,
726 #[prost(string, tag="17")]
728 pub participant_sid: ::prost::alloc::string::String,
729 #[prost(oneof="data_packet::Value", tags="2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18")]
730 pub value: ::core::option::Option<data_packet::Value>,
731}
732pub mod data_packet {
734 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
735 #[repr(i32)]
736 pub enum Kind {
737 Reliable = 0,
738 Lossy = 1,
739 }
740 impl Kind {
741 pub fn as_str_name(&self) -> &'static str {
746 match self {
747 Kind::Reliable => "RELIABLE",
748 Kind::Lossy => "LOSSY",
749 }
750 }
751 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
753 match value {
754 "RELIABLE" => Some(Self::Reliable),
755 "LOSSY" => Some(Self::Lossy),
756 _ => None,
757 }
758 }
759 }
760 #[allow(clippy::derive_partial_eq_without_eq)]
761#[derive(Clone, PartialEq, ::prost::Oneof)]
762 pub enum Value {
763 #[prost(message, tag="2")]
764 User(super::UserPacket),
765 #[prost(message, tag="3")]
766 Speaker(super::ActiveSpeakerUpdate),
767 #[prost(message, tag="6")]
768 SipDtmf(super::SipDtmf),
769 #[prost(message, tag="7")]
770 Transcription(super::Transcription),
771 #[prost(message, tag="8")]
772 Metrics(super::MetricsBatch),
773 #[prost(message, tag="9")]
774 ChatMessage(super::ChatMessage),
775 #[prost(message, tag="10")]
776 RpcRequest(super::RpcRequest),
777 #[prost(message, tag="11")]
778 RpcAck(super::RpcAck),
779 #[prost(message, tag="12")]
780 RpcResponse(super::RpcResponse),
781 #[prost(message, tag="13")]
782 StreamHeader(super::data_stream::Header),
783 #[prost(message, tag="14")]
784 StreamChunk(super::data_stream::Chunk),
785 #[prost(message, tag="15")]
786 StreamTrailer(super::data_stream::Trailer),
787 #[prost(message, tag="18")]
788 EncryptedPacket(super::EncryptedPacket),
789 }
790}
791#[allow(clippy::derive_partial_eq_without_eq)]
792#[derive(Clone, PartialEq, ::prost::Message)]
793pub struct EncryptedPacket {
794 #[prost(enumeration="encryption::Type", tag="1")]
795 pub encryption_type: i32,
796 #[prost(bytes="vec", tag="2")]
797 pub iv: ::prost::alloc::vec::Vec<u8>,
798 #[prost(uint32, tag="3")]
799 pub key_index: u32,
800 #[prost(bytes="vec", tag="4")]
802 pub encrypted_value: ::prost::alloc::vec::Vec<u8>,
803}
804#[allow(clippy::derive_partial_eq_without_eq)]
805#[derive(Clone, PartialEq, ::prost::Message)]
806pub struct EncryptedPacketPayload {
807 #[prost(oneof="encrypted_packet_payload::Value", tags="1, 3, 4, 5, 6, 7, 8, 9")]
808 pub value: ::core::option::Option<encrypted_packet_payload::Value>,
809}
810pub mod encrypted_packet_payload {
812 #[allow(clippy::derive_partial_eq_without_eq)]
813#[derive(Clone, PartialEq, ::prost::Oneof)]
814 pub enum Value {
815 #[prost(message, tag="1")]
816 User(super::UserPacket),
817 #[prost(message, tag="3")]
818 ChatMessage(super::ChatMessage),
819 #[prost(message, tag="4")]
820 RpcRequest(super::RpcRequest),
821 #[prost(message, tag="5")]
822 RpcAck(super::RpcAck),
823 #[prost(message, tag="6")]
824 RpcResponse(super::RpcResponse),
825 #[prost(message, tag="7")]
826 StreamHeader(super::data_stream::Header),
827 #[prost(message, tag="8")]
828 StreamChunk(super::data_stream::Chunk),
829 #[prost(message, tag="9")]
830 StreamTrailer(super::data_stream::Trailer),
831 }
832}
833#[allow(clippy::derive_partial_eq_without_eq)]
834#[derive(Clone, PartialEq, ::prost::Message)]
835pub struct ActiveSpeakerUpdate {
836 #[prost(message, repeated, tag="1")]
837 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
838}
839#[allow(clippy::derive_partial_eq_without_eq)]
840#[derive(Clone, PartialEq, ::prost::Message)]
841pub struct SpeakerInfo {
842 #[prost(string, tag="1")]
843 pub sid: ::prost::alloc::string::String,
844 #[prost(float, tag="2")]
846 pub level: f32,
847 #[prost(bool, tag="3")]
849 pub active: bool,
850}
851#[allow(clippy::derive_partial_eq_without_eq)]
852#[derive(Clone, PartialEq, ::prost::Message)]
853pub struct UserPacket {
854 #[deprecated]
856 #[prost(string, tag="1")]
857 pub participant_sid: ::prost::alloc::string::String,
858 #[deprecated]
859 #[prost(string, tag="5")]
860 pub participant_identity: ::prost::alloc::string::String,
861 #[prost(bytes="vec", tag="2")]
863 pub payload: ::prost::alloc::vec::Vec<u8>,
864 #[deprecated]
866 #[prost(string, repeated, tag="3")]
867 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
868 #[deprecated]
870 #[prost(string, repeated, tag="6")]
871 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
872 #[prost(string, optional, tag="4")]
874 pub topic: ::core::option::Option<::prost::alloc::string::String>,
875 #[prost(string, optional, tag="8")]
877 pub id: ::core::option::Option<::prost::alloc::string::String>,
878 #[prost(uint64, optional, tag="9")]
880 pub start_time: ::core::option::Option<u64>,
881 #[prost(uint64, optional, tag="10")]
882 pub end_time: ::core::option::Option<u64>,
883 #[prost(bytes="vec", tag="11")]
885 pub nonce: ::prost::alloc::vec::Vec<u8>,
886}
887#[allow(clippy::derive_partial_eq_without_eq)]
888#[derive(Clone, PartialEq, ::prost::Message)]
889pub struct SipDtmf {
890 #[prost(uint32, tag="3")]
891 pub code: u32,
892 #[prost(string, tag="4")]
893 pub digit: ::prost::alloc::string::String,
894}
895#[allow(clippy::derive_partial_eq_without_eq)]
896#[derive(Clone, PartialEq, ::prost::Message)]
897pub struct Transcription {
898 #[prost(string, tag="2")]
900 pub transcribed_participant_identity: ::prost::alloc::string::String,
901 #[prost(string, tag="3")]
902 pub track_id: ::prost::alloc::string::String,
903 #[prost(message, repeated, tag="4")]
904 pub segments: ::prost::alloc::vec::Vec<TranscriptionSegment>,
905}
906#[allow(clippy::derive_partial_eq_without_eq)]
907#[derive(Clone, PartialEq, ::prost::Message)]
908pub struct TranscriptionSegment {
909 #[prost(string, tag="1")]
910 pub id: ::prost::alloc::string::String,
911 #[prost(string, tag="2")]
912 pub text: ::prost::alloc::string::String,
913 #[prost(uint64, tag="3")]
914 pub start_time: u64,
915 #[prost(uint64, tag="4")]
916 pub end_time: u64,
917 #[prost(bool, tag="5")]
918 pub r#final: bool,
919 #[prost(string, tag="6")]
920 pub language: ::prost::alloc::string::String,
921}
922#[allow(clippy::derive_partial_eq_without_eq)]
923#[derive(Clone, PartialEq, ::prost::Message)]
924pub struct ChatMessage {
925 #[prost(string, tag="1")]
927 pub id: ::prost::alloc::string::String,
928 #[prost(int64, tag="2")]
929 pub timestamp: i64,
930 #[prost(int64, optional, tag="3")]
932 pub edit_timestamp: ::core::option::Option<i64>,
933 #[prost(string, tag="4")]
934 pub message: ::prost::alloc::string::String,
935 #[prost(bool, tag="5")]
937 pub deleted: bool,
938 #[prost(bool, tag="6")]
940 pub generated: bool,
941}
942#[allow(clippy::derive_partial_eq_without_eq)]
943#[derive(Clone, PartialEq, ::prost::Message)]
944pub struct RpcRequest {
945 #[prost(string, tag="1")]
946 pub id: ::prost::alloc::string::String,
947 #[prost(string, tag="2")]
948 pub method: ::prost::alloc::string::String,
949 #[prost(string, tag="3")]
950 pub payload: ::prost::alloc::string::String,
951 #[prost(uint32, tag="4")]
952 pub response_timeout_ms: u32,
953 #[prost(uint32, tag="5")]
954 pub version: u32,
955 #[prost(bytes="vec", tag="6")]
957 pub compressed_payload: ::prost::alloc::vec::Vec<u8>,
958}
959#[allow(clippy::derive_partial_eq_without_eq)]
960#[derive(Clone, PartialEq, ::prost::Message)]
961pub struct RpcAck {
962 #[prost(string, tag="1")]
963 pub request_id: ::prost::alloc::string::String,
964}
965#[allow(clippy::derive_partial_eq_without_eq)]
966#[derive(Clone, PartialEq, ::prost::Message)]
967pub struct RpcResponse {
968 #[prost(string, tag="1")]
969 pub request_id: ::prost::alloc::string::String,
970 #[prost(oneof="rpc_response::Value", tags="2, 3, 4")]
971 pub value: ::core::option::Option<rpc_response::Value>,
972}
973pub mod rpc_response {
975 #[allow(clippy::derive_partial_eq_without_eq)]
976#[derive(Clone, PartialEq, ::prost::Oneof)]
977 pub enum Value {
978 #[prost(string, tag="2")]
979 Payload(::prost::alloc::string::String),
980 #[prost(message, tag="3")]
981 Error(super::RpcError),
982 #[prost(bytes, tag="4")]
984 CompressedPayload(::prost::alloc::vec::Vec<u8>),
985 }
986}
987#[allow(clippy::derive_partial_eq_without_eq)]
988#[derive(Clone, PartialEq, ::prost::Message)]
989pub struct RpcError {
990 #[prost(uint32, tag="1")]
991 pub code: u32,
992 #[prost(string, tag="2")]
993 pub message: ::prost::alloc::string::String,
994 #[prost(string, tag="3")]
995 pub data: ::prost::alloc::string::String,
996}
997#[allow(clippy::derive_partial_eq_without_eq)]
998#[derive(Clone, PartialEq, ::prost::Message)]
999pub struct ParticipantTracks {
1000 #[prost(string, tag="1")]
1002 pub participant_sid: ::prost::alloc::string::String,
1003 #[prost(string, repeated, tag="2")]
1004 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1005}
1006#[allow(clippy::derive_partial_eq_without_eq)]
1008#[derive(Clone, PartialEq, ::prost::Message)]
1009pub struct ServerInfo {
1010 #[prost(enumeration="server_info::Edition", tag="1")]
1011 pub edition: i32,
1012 #[prost(string, tag="2")]
1013 pub version: ::prost::alloc::string::String,
1014 #[prost(int32, tag="3")]
1015 pub protocol: i32,
1016 #[prost(string, tag="4")]
1017 pub region: ::prost::alloc::string::String,
1018 #[prost(string, tag="5")]
1019 pub node_id: ::prost::alloc::string::String,
1020 #[prost(string, tag="6")]
1022 pub debug_info: ::prost::alloc::string::String,
1023 #[prost(int32, tag="7")]
1024 pub agent_protocol: i32,
1025}
1026pub mod server_info {
1028 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1029 #[repr(i32)]
1030 pub enum Edition {
1031 Standard = 0,
1032 Cloud = 1,
1033 }
1034 impl Edition {
1035 pub fn as_str_name(&self) -> &'static str {
1040 match self {
1041 Edition::Standard => "Standard",
1042 Edition::Cloud => "Cloud",
1043 }
1044 }
1045 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1047 match value {
1048 "Standard" => Some(Self::Standard),
1049 "Cloud" => Some(Self::Cloud),
1050 _ => None,
1051 }
1052 }
1053 }
1054}
1055#[allow(clippy::derive_partial_eq_without_eq)]
1057#[derive(Clone, PartialEq, ::prost::Message)]
1058pub struct ClientInfo {
1059 #[prost(enumeration="client_info::Sdk", tag="1")]
1060 pub sdk: i32,
1061 #[prost(string, tag="2")]
1062 pub version: ::prost::alloc::string::String,
1063 #[prost(int32, tag="3")]
1064 pub protocol: i32,
1065 #[prost(string, tag="4")]
1066 pub os: ::prost::alloc::string::String,
1067 #[prost(string, tag="5")]
1068 pub os_version: ::prost::alloc::string::String,
1069 #[prost(string, tag="6")]
1070 pub device_model: ::prost::alloc::string::String,
1071 #[prost(string, tag="7")]
1072 pub browser: ::prost::alloc::string::String,
1073 #[prost(string, tag="8")]
1074 pub browser_version: ::prost::alloc::string::String,
1075 #[prost(string, tag="9")]
1076 pub address: ::prost::alloc::string::String,
1077 #[prost(string, tag="10")]
1079 pub network: ::prost::alloc::string::String,
1080 #[prost(string, tag="11")]
1083 pub other_sdks: ::prost::alloc::string::String,
1084 #[prost(int32, tag="12")]
1086 pub client_protocol: i32,
1087 #[prost(enumeration="client_info::Capability", repeated, tag="13")]
1090 pub capabilities: ::prost::alloc::vec::Vec<i32>,
1091}
1092pub mod client_info {
1094 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1095 #[repr(i32)]
1096 pub enum Sdk {
1097 Unknown = 0,
1098 Js = 1,
1099 Swift = 2,
1100 Android = 3,
1101 Flutter = 4,
1102 Go = 5,
1103 Unity = 6,
1104 ReactNative = 7,
1105 Rust = 8,
1106 Python = 9,
1107 Cpp = 10,
1108 UnityWeb = 11,
1109 Node = 12,
1110 Unreal = 13,
1111 Esp32 = 14,
1112 }
1113 impl Sdk {
1114 pub fn as_str_name(&self) -> &'static str {
1119 match self {
1120 Sdk::Unknown => "UNKNOWN",
1121 Sdk::Js => "JS",
1122 Sdk::Swift => "SWIFT",
1123 Sdk::Android => "ANDROID",
1124 Sdk::Flutter => "FLUTTER",
1125 Sdk::Go => "GO",
1126 Sdk::Unity => "UNITY",
1127 Sdk::ReactNative => "REACT_NATIVE",
1128 Sdk::Rust => "RUST",
1129 Sdk::Python => "PYTHON",
1130 Sdk::Cpp => "CPP",
1131 Sdk::UnityWeb => "UNITY_WEB",
1132 Sdk::Node => "NODE",
1133 Sdk::Unreal => "UNREAL",
1134 Sdk::Esp32 => "ESP32",
1135 }
1136 }
1137 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1139 match value {
1140 "UNKNOWN" => Some(Self::Unknown),
1141 "JS" => Some(Self::Js),
1142 "SWIFT" => Some(Self::Swift),
1143 "ANDROID" => Some(Self::Android),
1144 "FLUTTER" => Some(Self::Flutter),
1145 "GO" => Some(Self::Go),
1146 "UNITY" => Some(Self::Unity),
1147 "REACT_NATIVE" => Some(Self::ReactNative),
1148 "RUST" => Some(Self::Rust),
1149 "PYTHON" => Some(Self::Python),
1150 "CPP" => Some(Self::Cpp),
1151 "UNITY_WEB" => Some(Self::UnityWeb),
1152 "NODE" => Some(Self::Node),
1153 "UNREAL" => Some(Self::Unreal),
1154 "ESP32" => Some(Self::Esp32),
1155 _ => None,
1156 }
1157 }
1158 }
1159 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1164 #[repr(i32)]
1165 pub enum Capability {
1166 CapUnused = 0,
1167 CapPacketTrailer = 1,
1168 }
1169 impl Capability {
1170 pub fn as_str_name(&self) -> &'static str {
1175 match self {
1176 Capability::CapUnused => "CAP_UNUSED",
1177 Capability::CapPacketTrailer => "CAP_PACKET_TRAILER",
1178 }
1179 }
1180 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1182 match value {
1183 "CAP_UNUSED" => Some(Self::CapUnused),
1184 "CAP_PACKET_TRAILER" => Some(Self::CapPacketTrailer),
1185 _ => None,
1186 }
1187 }
1188 }
1189}
1190#[allow(clippy::derive_partial_eq_without_eq)]
1192#[derive(Clone, PartialEq, ::prost::Message)]
1193pub struct ClientConfiguration {
1194 #[prost(message, optional, tag="1")]
1195 pub video: ::core::option::Option<VideoConfiguration>,
1196 #[prost(message, optional, tag="2")]
1197 pub screen: ::core::option::Option<VideoConfiguration>,
1198 #[prost(enumeration="ClientConfigSetting", tag="3")]
1199 pub resume_connection: i32,
1200 #[prost(message, optional, tag="4")]
1201 pub disabled_codecs: ::core::option::Option<DisabledCodecs>,
1202 #[prost(enumeration="ClientConfigSetting", tag="5")]
1203 pub force_relay: i32,
1204}
1205#[allow(clippy::derive_partial_eq_without_eq)]
1206#[derive(Clone, PartialEq, ::prost::Message)]
1207pub struct VideoConfiguration {
1208 #[prost(enumeration="ClientConfigSetting", tag="1")]
1209 pub hardware_encoder: i32,
1210}
1211#[allow(clippy::derive_partial_eq_without_eq)]
1212#[derive(Clone, PartialEq, ::prost::Message)]
1213pub struct DisabledCodecs {
1214 #[prost(message, repeated, tag="1")]
1216 pub codecs: ::prost::alloc::vec::Vec<Codec>,
1217 #[prost(message, repeated, tag="2")]
1219 pub publish: ::prost::alloc::vec::Vec<Codec>,
1220}
1221#[allow(clippy::derive_partial_eq_without_eq)]
1222#[derive(Clone, PartialEq, ::prost::Message)]
1223pub struct RtpDrift {
1224 #[prost(message, optional, tag="1")]
1225 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1226 #[prost(message, optional, tag="2")]
1227 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1228 #[prost(double, tag="3")]
1229 pub duration: f64,
1230 #[prost(uint64, tag="4")]
1231 pub start_timestamp: u64,
1232 #[prost(uint64, tag="5")]
1233 pub end_timestamp: u64,
1234 #[prost(uint64, tag="6")]
1235 pub rtp_clock_ticks: u64,
1236 #[prost(int64, tag="7")]
1237 pub drift_samples: i64,
1238 #[prost(double, tag="8")]
1239 pub drift_ms: f64,
1240 #[prost(double, tag="9")]
1241 pub clock_rate: f64,
1242}
1243#[allow(clippy::derive_partial_eq_without_eq)]
1244#[derive(Clone, PartialEq, ::prost::Message)]
1245pub struct RtpStats {
1246 #[prost(message, optional, tag="1")]
1247 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1248 #[prost(message, optional, tag="2")]
1249 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1250 #[prost(double, tag="3")]
1251 pub duration: f64,
1252 #[prost(uint32, tag="4")]
1253 pub packets: u32,
1254 #[prost(double, tag="5")]
1255 pub packet_rate: f64,
1256 #[prost(uint64, tag="6")]
1257 pub bytes: u64,
1258 #[prost(uint64, tag="39")]
1259 pub header_bytes: u64,
1260 #[prost(double, tag="7")]
1261 pub bitrate: f64,
1262 #[prost(uint32, tag="8")]
1263 pub packets_lost: u32,
1264 #[prost(double, tag="9")]
1265 pub packet_loss_rate: f64,
1266 #[prost(float, tag="10")]
1267 pub packet_loss_percentage: f32,
1268 #[prost(uint32, tag="11")]
1269 pub packets_duplicate: u32,
1270 #[prost(double, tag="12")]
1271 pub packet_duplicate_rate: f64,
1272 #[prost(uint64, tag="13")]
1273 pub bytes_duplicate: u64,
1274 #[prost(uint64, tag="40")]
1275 pub header_bytes_duplicate: u64,
1276 #[prost(double, tag="14")]
1277 pub bitrate_duplicate: f64,
1278 #[prost(uint32, tag="15")]
1279 pub packets_padding: u32,
1280 #[prost(double, tag="16")]
1281 pub packet_padding_rate: f64,
1282 #[prost(uint64, tag="17")]
1283 pub bytes_padding: u64,
1284 #[prost(uint64, tag="41")]
1285 pub header_bytes_padding: u64,
1286 #[prost(double, tag="18")]
1287 pub bitrate_padding: f64,
1288 #[prost(uint32, tag="19")]
1289 pub packets_out_of_order: u32,
1290 #[prost(uint32, tag="20")]
1291 pub frames: u32,
1292 #[prost(double, tag="21")]
1293 pub frame_rate: f64,
1294 #[prost(double, tag="22")]
1295 pub jitter_current: f64,
1296 #[prost(double, tag="23")]
1297 pub jitter_max: f64,
1298 #[prost(map="int32, uint32", tag="24")]
1299 pub gap_histogram: ::std::collections::HashMap<i32, u32>,
1300 #[prost(uint32, tag="25")]
1301 pub nacks: u32,
1302 #[prost(uint32, tag="37")]
1303 pub nack_acks: u32,
1304 #[prost(uint32, tag="26")]
1305 pub nack_misses: u32,
1306 #[prost(uint32, tag="38")]
1307 pub nack_repeated: u32,
1308 #[prost(uint32, tag="27")]
1309 pub plis: u32,
1310 #[prost(message, optional, tag="28")]
1311 pub last_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1312 #[prost(uint32, tag="29")]
1313 pub firs: u32,
1314 #[prost(message, optional, tag="30")]
1315 pub last_fir: ::core::option::Option<::pbjson_types::Timestamp>,
1316 #[prost(uint32, tag="31")]
1317 pub rtt_current: u32,
1318 #[prost(uint32, tag="32")]
1319 pub rtt_max: u32,
1320 #[prost(uint32, tag="33")]
1321 pub key_frames: u32,
1322 #[prost(message, optional, tag="34")]
1323 pub last_key_frame: ::core::option::Option<::pbjson_types::Timestamp>,
1324 #[prost(uint32, tag="35")]
1325 pub layer_lock_plis: u32,
1326 #[prost(message, optional, tag="36")]
1327 pub last_layer_lock_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1328 #[prost(message, optional, tag="44")]
1329 pub packet_drift: ::core::option::Option<RtpDrift>,
1330 #[prost(message, optional, tag="45")]
1331 pub ntp_report_drift: ::core::option::Option<RtpDrift>,
1332 #[prost(message, optional, tag="46")]
1333 pub rebased_report_drift: ::core::option::Option<RtpDrift>,
1334 #[prost(message, optional, tag="47")]
1336 pub received_report_drift: ::core::option::Option<RtpDrift>,
1337}
1338#[allow(clippy::derive_partial_eq_without_eq)]
1339#[derive(Clone, PartialEq, ::prost::Message)]
1340pub struct RtcpSenderReportState {
1341 #[prost(uint32, tag="1")]
1342 pub rtp_timestamp: u32,
1343 #[prost(uint64, tag="2")]
1344 pub rtp_timestamp_ext: u64,
1345 #[prost(uint64, tag="3")]
1346 pub ntp_timestamp: u64,
1347 #[prost(int64, tag="4")]
1349 pub at: i64,
1350 #[prost(int64, tag="5")]
1351 pub at_adjusted: i64,
1352 #[prost(uint32, tag="6")]
1353 pub packets: u32,
1354 #[prost(uint64, tag="7")]
1355 pub octets: u64,
1356}
1357#[allow(clippy::derive_partial_eq_without_eq)]
1358#[derive(Clone, PartialEq, ::prost::Message)]
1359pub struct RtpForwarderState {
1360 #[prost(bool, tag="1")]
1361 pub started: bool,
1362 #[prost(int32, tag="2")]
1363 pub reference_layer_spatial: i32,
1364 #[prost(int64, tag="3")]
1365 pub pre_start_time: i64,
1366 #[prost(uint64, tag="4")]
1367 pub ext_first_timestamp: u64,
1368 #[prost(uint64, tag="5")]
1369 pub dummy_start_timestamp_offset: u64,
1370 #[prost(message, optional, tag="6")]
1371 pub rtp_munger: ::core::option::Option<RtpMungerState>,
1372 #[prost(message, repeated, tag="8")]
1373 pub sender_report_state: ::prost::alloc::vec::Vec<RtcpSenderReportState>,
1374 #[prost(oneof="rtp_forwarder_state::CodecMunger", tags="7")]
1375 pub codec_munger: ::core::option::Option<rtp_forwarder_state::CodecMunger>,
1376}
1377pub mod rtp_forwarder_state {
1379 #[allow(clippy::derive_partial_eq_without_eq)]
1380#[derive(Clone, PartialEq, ::prost::Oneof)]
1381 pub enum CodecMunger {
1382 #[prost(message, tag="7")]
1383 Vp8Munger(super::Vp8MungerState),
1384 }
1385}
1386#[allow(clippy::derive_partial_eq_without_eq)]
1387#[derive(Clone, PartialEq, ::prost::Message)]
1388pub struct RtpMungerState {
1389 #[prost(uint64, tag="1")]
1390 pub ext_last_sequence_number: u64,
1391 #[prost(uint64, tag="2")]
1392 pub ext_second_last_sequence_number: u64,
1393 #[prost(uint64, tag="3")]
1394 pub ext_last_timestamp: u64,
1395 #[prost(uint64, tag="4")]
1396 pub ext_second_last_timestamp: u64,
1397 #[prost(bool, tag="5")]
1398 pub last_marker: bool,
1399 #[prost(bool, tag="6")]
1400 pub second_last_marker: bool,
1401}
1402#[allow(clippy::derive_partial_eq_without_eq)]
1403#[derive(Clone, PartialEq, ::prost::Message)]
1404pub struct Vp8MungerState {
1405 #[prost(int32, tag="1")]
1406 pub ext_last_picture_id: i32,
1407 #[prost(bool, tag="2")]
1408 pub picture_id_used: bool,
1409 #[prost(uint32, tag="3")]
1410 pub last_tl0_pic_idx: u32,
1411 #[prost(bool, tag="4")]
1412 pub tl0_pic_idx_used: bool,
1413 #[prost(bool, tag="5")]
1414 pub tid_used: bool,
1415 #[prost(uint32, tag="6")]
1416 pub last_key_idx: u32,
1417 #[prost(bool, tag="7")]
1418 pub key_idx_used: bool,
1419}
1420#[allow(clippy::derive_partial_eq_without_eq)]
1421#[derive(Clone, PartialEq, ::prost::Message)]
1422pub struct TimedVersion {
1423 #[prost(int64, tag="1")]
1424 pub unix_micro: i64,
1425 #[prost(int32, tag="2")]
1426 pub ticks: i32,
1427}
1428#[allow(clippy::derive_partial_eq_without_eq)]
1429#[derive(Clone, PartialEq, ::prost::Message)]
1430pub struct DataStream {
1431}
1432pub mod data_stream {
1434 #[allow(clippy::derive_partial_eq_without_eq)]
1436#[derive(Clone, PartialEq, ::prost::Message)]
1437 pub struct TextHeader {
1438 #[prost(enumeration="OperationType", tag="1")]
1439 pub operation_type: i32,
1440 #[prost(int32, tag="2")]
1442 pub version: i32,
1443 #[prost(string, tag="3")]
1445 pub reply_to_stream_id: ::prost::alloc::string::String,
1446 #[prost(string, repeated, tag="4")]
1448 pub attached_stream_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1449 #[prost(bool, tag="5")]
1451 pub generated: bool,
1452 }
1453 #[allow(clippy::derive_partial_eq_without_eq)]
1455#[derive(Clone, PartialEq, ::prost::Message)]
1456 pub struct ByteHeader {
1457 #[prost(string, tag="1")]
1458 pub name: ::prost::alloc::string::String,
1459 }
1460 #[allow(clippy::derive_partial_eq_without_eq)]
1462#[derive(Clone, PartialEq, ::prost::Message)]
1463 pub struct Header {
1464 #[prost(string, tag="1")]
1466 pub stream_id: ::prost::alloc::string::String,
1467 #[prost(int64, tag="2")]
1469 pub timestamp: i64,
1470 #[prost(string, tag="3")]
1471 pub topic: ::prost::alloc::string::String,
1472 #[prost(string, tag="4")]
1473 pub mime_type: ::prost::alloc::string::String,
1474 #[prost(uint64, optional, tag="5")]
1476 pub total_length: ::core::option::Option<u64>,
1477 #[deprecated]
1479 #[prost(enumeration="super::encryption::Type", tag="7")]
1480 pub encryption_type: i32,
1481 #[prost(map="string, string", tag="8")]
1483 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1484 #[prost(oneof="header::ContentHeader", tags="9, 10")]
1486 pub content_header: ::core::option::Option<header::ContentHeader>,
1487 }
1488 pub mod header {
1490 #[allow(clippy::derive_partial_eq_without_eq)]
1492#[derive(Clone, PartialEq, ::prost::Oneof)]
1493 pub enum ContentHeader {
1494 #[prost(message, tag="9")]
1495 TextHeader(super::TextHeader),
1496 #[prost(message, tag="10")]
1497 ByteHeader(super::ByteHeader),
1498 }
1499 }
1500 #[allow(clippy::derive_partial_eq_without_eq)]
1501#[derive(Clone, PartialEq, ::prost::Message)]
1502 pub struct Chunk {
1503 #[prost(string, tag="1")]
1505 pub stream_id: ::prost::alloc::string::String,
1506 #[prost(uint64, tag="2")]
1507 pub chunk_index: u64,
1508 #[prost(bytes="vec", tag="3")]
1510 pub content: ::prost::alloc::vec::Vec<u8>,
1511 #[prost(int32, tag="4")]
1513 pub version: i32,
1514 #[deprecated]
1516 #[prost(bytes="vec", optional, tag="5")]
1517 pub iv: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1518 }
1519 #[allow(clippy::derive_partial_eq_without_eq)]
1520#[derive(Clone, PartialEq, ::prost::Message)]
1521 pub struct Trailer {
1522 #[prost(string, tag="1")]
1524 pub stream_id: ::prost::alloc::string::String,
1525 #[prost(string, tag="2")]
1527 pub reason: ::prost::alloc::string::String,
1528 #[prost(map="string, string", tag="3")]
1530 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1531 }
1532 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1534 #[repr(i32)]
1535 pub enum OperationType {
1536 Create = 0,
1537 Update = 1,
1538 Delete = 2,
1539 Reaction = 3,
1540 }
1541 impl OperationType {
1542 pub fn as_str_name(&self) -> &'static str {
1547 match self {
1548 OperationType::Create => "CREATE",
1549 OperationType::Update => "UPDATE",
1550 OperationType::Delete => "DELETE",
1551 OperationType::Reaction => "REACTION",
1552 }
1553 }
1554 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1556 match value {
1557 "CREATE" => Some(Self::Create),
1558 "UPDATE" => Some(Self::Update),
1559 "DELETE" => Some(Self::Delete),
1560 "REACTION" => Some(Self::Reaction),
1561 _ => None,
1562 }
1563 }
1564 }
1565}
1566#[allow(clippy::derive_partial_eq_without_eq)]
1567#[derive(Clone, PartialEq, ::prost::Message)]
1568pub struct FilterParams {
1569 #[prost(string, repeated, tag="1")]
1570 pub include_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1571 #[prost(string, repeated, tag="2")]
1572 pub exclude_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1573}
1574#[allow(clippy::derive_partial_eq_without_eq)]
1575#[derive(Clone, PartialEq, ::prost::Message)]
1576pub struct WebhookConfig {
1577 #[prost(string, tag="1")]
1578 pub url: ::prost::alloc::string::String,
1579 #[prost(string, tag="2")]
1580 pub signing_key: ::prost::alloc::string::String,
1581 #[prost(message, optional, tag="3")]
1582 pub filter_params: ::core::option::Option<FilterParams>,
1583}
1584#[allow(clippy::derive_partial_eq_without_eq)]
1585#[derive(Clone, PartialEq, ::prost::Message)]
1586pub struct SubscribedAudioCodec {
1587 #[prost(string, tag="1")]
1588 pub codec: ::prost::alloc::string::String,
1589 #[prost(bool, tag="2")]
1590 pub enabled: bool,
1591}
1592#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1593#[repr(i32)]
1594pub enum AudioCodec {
1595 DefaultAc = 0,
1596 Opus = 1,
1597 Aac = 2,
1598 AcMp3 = 3,
1599}
1600impl AudioCodec {
1601 pub fn as_str_name(&self) -> &'static str {
1606 match self {
1607 AudioCodec::DefaultAc => "DEFAULT_AC",
1608 AudioCodec::Opus => "OPUS",
1609 AudioCodec::Aac => "AAC",
1610 AudioCodec::AcMp3 => "AC_MP3",
1611 }
1612 }
1613 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1615 match value {
1616 "DEFAULT_AC" => Some(Self::DefaultAc),
1617 "OPUS" => Some(Self::Opus),
1618 "AAC" => Some(Self::Aac),
1619 "AC_MP3" => Some(Self::AcMp3),
1620 _ => None,
1621 }
1622 }
1623}
1624#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1625#[repr(i32)]
1626pub enum VideoCodec {
1627 DefaultVc = 0,
1628 H264Baseline = 1,
1629 H264Main = 2,
1630 H264High = 3,
1631 Vp8 = 4,
1632}
1633impl VideoCodec {
1634 pub fn as_str_name(&self) -> &'static str {
1639 match self {
1640 VideoCodec::DefaultVc => "DEFAULT_VC",
1641 VideoCodec::H264Baseline => "H264_BASELINE",
1642 VideoCodec::H264Main => "H264_MAIN",
1643 VideoCodec::H264High => "H264_HIGH",
1644 VideoCodec::Vp8 => "VP8",
1645 }
1646 }
1647 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1649 match value {
1650 "DEFAULT_VC" => Some(Self::DefaultVc),
1651 "H264_BASELINE" => Some(Self::H264Baseline),
1652 "H264_MAIN" => Some(Self::H264Main),
1653 "H264_HIGH" => Some(Self::H264High),
1654 "VP8" => Some(Self::Vp8),
1655 _ => None,
1656 }
1657 }
1658}
1659#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1660#[repr(i32)]
1661pub enum ImageCodec {
1662 IcDefault = 0,
1663 IcJpeg = 1,
1664}
1665impl ImageCodec {
1666 pub fn as_str_name(&self) -> &'static str {
1671 match self {
1672 ImageCodec::IcDefault => "IC_DEFAULT",
1673 ImageCodec::IcJpeg => "IC_JPEG",
1674 }
1675 }
1676 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1678 match value {
1679 "IC_DEFAULT" => Some(Self::IcDefault),
1680 "IC_JPEG" => Some(Self::IcJpeg),
1681 _ => None,
1682 }
1683 }
1684}
1685#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1687#[repr(i32)]
1688pub enum BackupCodecPolicy {
1689 PreferRegression = 0,
1692 Simulcast = 1,
1694 Regression = 2,
1696}
1697impl BackupCodecPolicy {
1698 pub fn as_str_name(&self) -> &'static str {
1703 match self {
1704 BackupCodecPolicy::PreferRegression => "PREFER_REGRESSION",
1705 BackupCodecPolicy::Simulcast => "SIMULCAST",
1706 BackupCodecPolicy::Regression => "REGRESSION",
1707 }
1708 }
1709 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1711 match value {
1712 "PREFER_REGRESSION" => Some(Self::PreferRegression),
1713 "SIMULCAST" => Some(Self::Simulcast),
1714 "REGRESSION" => Some(Self::Regression),
1715 _ => None,
1716 }
1717 }
1718}
1719#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1720#[repr(i32)]
1721pub enum TrackType {
1722 Audio = 0,
1723 Video = 1,
1724 Data = 2,
1725}
1726impl TrackType {
1727 pub fn as_str_name(&self) -> &'static str {
1732 match self {
1733 TrackType::Audio => "AUDIO",
1734 TrackType::Video => "VIDEO",
1735 TrackType::Data => "DATA",
1736 }
1737 }
1738 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1740 match value {
1741 "AUDIO" => Some(Self::Audio),
1742 "VIDEO" => Some(Self::Video),
1743 "DATA" => Some(Self::Data),
1744 _ => None,
1745 }
1746 }
1747}
1748#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1749#[repr(i32)]
1750pub enum TrackSource {
1751 Unknown = 0,
1752 Camera = 1,
1753 Microphone = 2,
1754 ScreenShare = 3,
1755 ScreenShareAudio = 4,
1756}
1757impl TrackSource {
1758 pub fn as_str_name(&self) -> &'static str {
1763 match self {
1764 TrackSource::Unknown => "UNKNOWN",
1765 TrackSource::Camera => "CAMERA",
1766 TrackSource::Microphone => "MICROPHONE",
1767 TrackSource::ScreenShare => "SCREEN_SHARE",
1768 TrackSource::ScreenShareAudio => "SCREEN_SHARE_AUDIO",
1769 }
1770 }
1771 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1773 match value {
1774 "UNKNOWN" => Some(Self::Unknown),
1775 "CAMERA" => Some(Self::Camera),
1776 "MICROPHONE" => Some(Self::Microphone),
1777 "SCREEN_SHARE" => Some(Self::ScreenShare),
1778 "SCREEN_SHARE_AUDIO" => Some(Self::ScreenShareAudio),
1779 _ => None,
1780 }
1781 }
1782}
1783#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1784#[repr(i32)]
1785pub enum DataTrackExtensionId {
1786 DteiInvalid = 0,
1787 DteiParticipantSid = 1,
1788}
1789impl DataTrackExtensionId {
1790 pub fn as_str_name(&self) -> &'static str {
1795 match self {
1796 DataTrackExtensionId::DteiInvalid => "DTEI_INVALID",
1797 DataTrackExtensionId::DteiParticipantSid => "DTEI_PARTICIPANT_SID",
1798 }
1799 }
1800 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1802 match value {
1803 "DTEI_INVALID" => Some(Self::DteiInvalid),
1804 "DTEI_PARTICIPANT_SID" => Some(Self::DteiParticipantSid),
1805 _ => None,
1806 }
1807 }
1808}
1809#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1810#[repr(i32)]
1811pub enum VideoQuality {
1812 Low = 0,
1813 Medium = 1,
1814 High = 2,
1815 Off = 3,
1816}
1817impl VideoQuality {
1818 pub fn as_str_name(&self) -> &'static str {
1823 match self {
1824 VideoQuality::Low => "LOW",
1825 VideoQuality::Medium => "MEDIUM",
1826 VideoQuality::High => "HIGH",
1827 VideoQuality::Off => "OFF",
1828 }
1829 }
1830 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1832 match value {
1833 "LOW" => Some(Self::Low),
1834 "MEDIUM" => Some(Self::Medium),
1835 "HIGH" => Some(Self::High),
1836 "OFF" => Some(Self::Off),
1837 _ => None,
1838 }
1839 }
1840}
1841#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1842#[repr(i32)]
1843pub enum ConnectionQuality {
1844 Poor = 0,
1845 Good = 1,
1846 Excellent = 2,
1847 Lost = 3,
1848}
1849impl ConnectionQuality {
1850 pub fn as_str_name(&self) -> &'static str {
1855 match self {
1856 ConnectionQuality::Poor => "POOR",
1857 ConnectionQuality::Good => "GOOD",
1858 ConnectionQuality::Excellent => "EXCELLENT",
1859 ConnectionQuality::Lost => "LOST",
1860 }
1861 }
1862 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1864 match value {
1865 "POOR" => Some(Self::Poor),
1866 "GOOD" => Some(Self::Good),
1867 "EXCELLENT" => Some(Self::Excellent),
1868 "LOST" => Some(Self::Lost),
1869 _ => None,
1870 }
1871 }
1872}
1873#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1874#[repr(i32)]
1875pub enum ClientConfigSetting {
1876 Unset = 0,
1877 Disabled = 1,
1878 Enabled = 2,
1879}
1880impl ClientConfigSetting {
1881 pub fn as_str_name(&self) -> &'static str {
1886 match self {
1887 ClientConfigSetting::Unset => "UNSET",
1888 ClientConfigSetting::Disabled => "DISABLED",
1889 ClientConfigSetting::Enabled => "ENABLED",
1890 }
1891 }
1892 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1894 match value {
1895 "UNSET" => Some(Self::Unset),
1896 "DISABLED" => Some(Self::Disabled),
1897 "ENABLED" => Some(Self::Enabled),
1898 _ => None,
1899 }
1900 }
1901}
1902#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1903#[repr(i32)]
1904pub enum DisconnectReason {
1905 UnknownReason = 0,
1906 ClientInitiated = 1,
1908 DuplicateIdentity = 2,
1910 ServerShutdown = 3,
1912 ParticipantRemoved = 4,
1914 RoomDeleted = 5,
1916 StateMismatch = 6,
1918 JoinFailure = 7,
1920 Migration = 8,
1922 SignalClose = 9,
1924 RoomClosed = 10,
1926 UserUnavailable = 11,
1928 UserRejected = 12,
1930 SipTrunkFailure = 13,
1932 ConnectionTimeout = 14,
1934 MediaFailure = 15,
1936 AgentError = 16,
1938}
1939impl DisconnectReason {
1940 pub fn as_str_name(&self) -> &'static str {
1945 match self {
1946 DisconnectReason::UnknownReason => "UNKNOWN_REASON",
1947 DisconnectReason::ClientInitiated => "CLIENT_INITIATED",
1948 DisconnectReason::DuplicateIdentity => "DUPLICATE_IDENTITY",
1949 DisconnectReason::ServerShutdown => "SERVER_SHUTDOWN",
1950 DisconnectReason::ParticipantRemoved => "PARTICIPANT_REMOVED",
1951 DisconnectReason::RoomDeleted => "ROOM_DELETED",
1952 DisconnectReason::StateMismatch => "STATE_MISMATCH",
1953 DisconnectReason::JoinFailure => "JOIN_FAILURE",
1954 DisconnectReason::Migration => "MIGRATION",
1955 DisconnectReason::SignalClose => "SIGNAL_CLOSE",
1956 DisconnectReason::RoomClosed => "ROOM_CLOSED",
1957 DisconnectReason::UserUnavailable => "USER_UNAVAILABLE",
1958 DisconnectReason::UserRejected => "USER_REJECTED",
1959 DisconnectReason::SipTrunkFailure => "SIP_TRUNK_FAILURE",
1960 DisconnectReason::ConnectionTimeout => "CONNECTION_TIMEOUT",
1961 DisconnectReason::MediaFailure => "MEDIA_FAILURE",
1962 DisconnectReason::AgentError => "AGENT_ERROR",
1963 }
1964 }
1965 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1967 match value {
1968 "UNKNOWN_REASON" => Some(Self::UnknownReason),
1969 "CLIENT_INITIATED" => Some(Self::ClientInitiated),
1970 "DUPLICATE_IDENTITY" => Some(Self::DuplicateIdentity),
1971 "SERVER_SHUTDOWN" => Some(Self::ServerShutdown),
1972 "PARTICIPANT_REMOVED" => Some(Self::ParticipantRemoved),
1973 "ROOM_DELETED" => Some(Self::RoomDeleted),
1974 "STATE_MISMATCH" => Some(Self::StateMismatch),
1975 "JOIN_FAILURE" => Some(Self::JoinFailure),
1976 "MIGRATION" => Some(Self::Migration),
1977 "SIGNAL_CLOSE" => Some(Self::SignalClose),
1978 "ROOM_CLOSED" => Some(Self::RoomClosed),
1979 "USER_UNAVAILABLE" => Some(Self::UserUnavailable),
1980 "USER_REJECTED" => Some(Self::UserRejected),
1981 "SIP_TRUNK_FAILURE" => Some(Self::SipTrunkFailure),
1982 "CONNECTION_TIMEOUT" => Some(Self::ConnectionTimeout),
1983 "MEDIA_FAILURE" => Some(Self::MediaFailure),
1984 "AGENT_ERROR" => Some(Self::AgentError),
1985 _ => None,
1986 }
1987 }
1988}
1989#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1990#[repr(i32)]
1991pub enum ReconnectReason {
1992 RrUnknown = 0,
1993 RrSignalDisconnected = 1,
1994 RrPublisherFailed = 2,
1995 RrSubscriberFailed = 3,
1996 RrSwitchCandidate = 4,
1997}
1998impl ReconnectReason {
1999 pub fn as_str_name(&self) -> &'static str {
2004 match self {
2005 ReconnectReason::RrUnknown => "RR_UNKNOWN",
2006 ReconnectReason::RrSignalDisconnected => "RR_SIGNAL_DISCONNECTED",
2007 ReconnectReason::RrPublisherFailed => "RR_PUBLISHER_FAILED",
2008 ReconnectReason::RrSubscriberFailed => "RR_SUBSCRIBER_FAILED",
2009 ReconnectReason::RrSwitchCandidate => "RR_SWITCH_CANDIDATE",
2010 }
2011 }
2012 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2014 match value {
2015 "RR_UNKNOWN" => Some(Self::RrUnknown),
2016 "RR_SIGNAL_DISCONNECTED" => Some(Self::RrSignalDisconnected),
2017 "RR_PUBLISHER_FAILED" => Some(Self::RrPublisherFailed),
2018 "RR_SUBSCRIBER_FAILED" => Some(Self::RrSubscriberFailed),
2019 "RR_SWITCH_CANDIDATE" => Some(Self::RrSwitchCandidate),
2020 _ => None,
2021 }
2022 }
2023}
2024#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2025#[repr(i32)]
2026pub enum SubscriptionError {
2027 SeUnknown = 0,
2028 SeCodecUnsupported = 1,
2029 SeTrackNotfound = 2,
2030}
2031impl SubscriptionError {
2032 pub fn as_str_name(&self) -> &'static str {
2037 match self {
2038 SubscriptionError::SeUnknown => "SE_UNKNOWN",
2039 SubscriptionError::SeCodecUnsupported => "SE_CODEC_UNSUPPORTED",
2040 SubscriptionError::SeTrackNotfound => "SE_TRACK_NOTFOUND",
2041 }
2042 }
2043 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2045 match value {
2046 "SE_UNKNOWN" => Some(Self::SeUnknown),
2047 "SE_CODEC_UNSUPPORTED" => Some(Self::SeCodecUnsupported),
2048 "SE_TRACK_NOTFOUND" => Some(Self::SeTrackNotfound),
2049 _ => None,
2050 }
2051 }
2052}
2053#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2054#[repr(i32)]
2055pub enum AudioTrackFeature {
2056 TfStereo = 0,
2057 TfNoDtx = 1,
2058 TfAutoGainControl = 2,
2059 TfEchoCancellation = 3,
2060 TfNoiseSuppression = 4,
2061 TfEnhancedNoiseCancellation = 5,
2062 TfPreconnectBuffer = 6,
2064}
2065impl AudioTrackFeature {
2066 pub fn as_str_name(&self) -> &'static str {
2071 match self {
2072 AudioTrackFeature::TfStereo => "TF_STEREO",
2073 AudioTrackFeature::TfNoDtx => "TF_NO_DTX",
2074 AudioTrackFeature::TfAutoGainControl => "TF_AUTO_GAIN_CONTROL",
2075 AudioTrackFeature::TfEchoCancellation => "TF_ECHO_CANCELLATION",
2076 AudioTrackFeature::TfNoiseSuppression => "TF_NOISE_SUPPRESSION",
2077 AudioTrackFeature::TfEnhancedNoiseCancellation => "TF_ENHANCED_NOISE_CANCELLATION",
2078 AudioTrackFeature::TfPreconnectBuffer => "TF_PRECONNECT_BUFFER",
2079 }
2080 }
2081 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2083 match value {
2084 "TF_STEREO" => Some(Self::TfStereo),
2085 "TF_NO_DTX" => Some(Self::TfNoDtx),
2086 "TF_AUTO_GAIN_CONTROL" => Some(Self::TfAutoGainControl),
2087 "TF_ECHO_CANCELLATION" => Some(Self::TfEchoCancellation),
2088 "TF_NOISE_SUPPRESSION" => Some(Self::TfNoiseSuppression),
2089 "TF_ENHANCED_NOISE_CANCELLATION" => Some(Self::TfEnhancedNoiseCancellation),
2090 "TF_PRECONNECT_BUFFER" => Some(Self::TfPreconnectBuffer),
2091 _ => None,
2092 }
2093 }
2094}
2095#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2096#[repr(i32)]
2097pub enum PacketTrailerFeature {
2098 PtfUserTimestamp = 0,
2099 PtfFrameId = 1,
2100}
2101impl PacketTrailerFeature {
2102 pub fn as_str_name(&self) -> &'static str {
2107 match self {
2108 PacketTrailerFeature::PtfUserTimestamp => "PTF_USER_TIMESTAMP",
2109 PacketTrailerFeature::PtfFrameId => "PTF_FRAME_ID",
2110 }
2111 }
2112 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2114 match value {
2115 "PTF_USER_TIMESTAMP" => Some(Self::PtfUserTimestamp),
2116 "PTF_FRAME_ID" => Some(Self::PtfFrameId),
2117 _ => None,
2118 }
2119 }
2120}
2121#[allow(clippy::derive_partial_eq_without_eq)]
2124#[derive(Clone, PartialEq, ::prost::Message)]
2125pub struct StartEgressRequest {
2126 #[prost(string, tag="1")]
2127 pub room_name: ::prost::alloc::string::String,
2128 #[prost(message, repeated, tag="7")]
2130 pub outputs: ::prost::alloc::vec::Vec<Output>,
2131 #[prost(message, optional, tag="8")]
2133 pub storage: ::core::option::Option<StorageConfig>,
2134 #[prost(message, repeated, tag="9")]
2136 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2137 #[prost(oneof="start_egress_request::Source", tags="2, 3, 4")]
2138 pub source: ::core::option::Option<start_egress_request::Source>,
2139 #[prost(oneof="start_egress_request::Encoding", tags="5, 6")]
2141 pub encoding: ::core::option::Option<start_egress_request::Encoding>,
2142}
2143pub mod start_egress_request {
2145 #[allow(clippy::derive_partial_eq_without_eq)]
2146#[derive(Clone, PartialEq, ::prost::Oneof)]
2147 pub enum Source {
2148 #[prost(message, tag="2")]
2149 Template(super::TemplateSource),
2150 #[prost(message, tag="3")]
2151 Web(super::WebSource),
2152 #[prost(message, tag="4")]
2153 Media(super::MediaSource),
2154 }
2155 #[allow(clippy::derive_partial_eq_without_eq)]
2157#[derive(Clone, PartialEq, ::prost::Oneof)]
2158 pub enum Encoding {
2159 #[prost(enumeration="super::EncodingOptionsPreset", tag="5")]
2160 Preset(i32),
2161 #[prost(message, tag="6")]
2162 Advanced(super::EncodingOptions),
2163 }
2164}
2165#[allow(clippy::derive_partial_eq_without_eq)]
2170#[derive(Clone, PartialEq, ::prost::Message)]
2171pub struct TemplateSource {
2172 #[prost(string, tag="1")]
2173 pub layout: ::prost::alloc::string::String,
2174 #[prost(bool, tag="2")]
2175 pub audio_only: bool,
2176 #[prost(bool, tag="3")]
2177 pub video_only: bool,
2178 #[prost(string, tag="4")]
2179 pub custom_base_url: ::prost::alloc::string::String,
2180}
2181#[allow(clippy::derive_partial_eq_without_eq)]
2183#[derive(Clone, PartialEq, ::prost::Message)]
2184pub struct WebSource {
2185 #[prost(string, tag="1")]
2186 pub url: ::prost::alloc::string::String,
2187 #[prost(bool, tag="2")]
2188 pub audio_only: bool,
2189 #[prost(bool, tag="3")]
2190 pub video_only: bool,
2191 #[prost(bool, tag="4")]
2192 pub await_start_signal: bool,
2193}
2194#[allow(clippy::derive_partial_eq_without_eq)]
2197#[derive(Clone, PartialEq, ::prost::Message)]
2198pub struct MediaSource {
2199 #[prost(message, optional, tag="3")]
2200 pub audio: ::core::option::Option<AudioConfig>,
2201 #[prost(message, optional, tag="4")]
2202 pub data: ::core::option::Option<DataConfig>,
2203 #[prost(oneof="media_source::Video", tags="1, 2")]
2204 pub video: ::core::option::Option<media_source::Video>,
2205}
2206pub mod media_source {
2208 #[allow(clippy::derive_partial_eq_without_eq)]
2209#[derive(Clone, PartialEq, ::prost::Oneof)]
2210 pub enum Video {
2211 #[prost(string, tag="1")]
2212 VideoTrackId(::prost::alloc::string::String),
2213 #[prost(message, tag="2")]
2214 ParticipantVideo(super::ParticipantVideo),
2215 }
2216}
2217#[allow(clippy::derive_partial_eq_without_eq)]
2218#[derive(Clone, PartialEq, ::prost::Message)]
2219pub struct ParticipantVideo {
2220 #[prost(string, tag="1")]
2221 pub identity: ::prost::alloc::string::String,
2222 #[prost(bool, tag="2")]
2223 pub prefer_screen_share: bool,
2224}
2225#[allow(clippy::derive_partial_eq_without_eq)]
2230#[derive(Clone, PartialEq, ::prost::Message)]
2231pub struct AudioConfig {
2232 #[prost(message, repeated, tag="1")]
2235 pub routes: ::prost::alloc::vec::Vec<AudioRoute>,
2236}
2237#[allow(clippy::derive_partial_eq_without_eq)]
2238#[derive(Clone, PartialEq, ::prost::Message)]
2239pub struct AudioRoute {
2240 #[prost(enumeration="AudioChannel", tag="4")]
2241 pub channel: i32,
2242 #[prost(oneof="audio_route::Match", tags="1, 2, 3")]
2243 pub r#match: ::core::option::Option<audio_route::Match>,
2244}
2245pub mod audio_route {
2247 #[allow(clippy::derive_partial_eq_without_eq)]
2248#[derive(Clone, PartialEq, ::prost::Oneof)]
2249 pub enum Match {
2250 #[prost(string, tag="1")]
2251 TrackId(::prost::alloc::string::String),
2252 #[prost(string, tag="2")]
2253 ParticipantIdentity(::prost::alloc::string::String),
2254 #[prost(enumeration="super::participant_info::Kind", tag="3")]
2255 ParticipantKind(i32),
2256 }
2257}
2258#[allow(clippy::derive_partial_eq_without_eq)]
2261#[derive(Clone, PartialEq, ::prost::Message)]
2262pub struct DataConfig {
2263 #[prost(message, repeated, tag="1")]
2266 pub selectors: ::prost::alloc::vec::Vec<DataSelector>,
2267}
2268#[allow(clippy::derive_partial_eq_without_eq)]
2269#[derive(Clone, PartialEq, ::prost::Message)]
2270pub struct DataSelector {
2271 #[prost(oneof="data_selector::Match", tags="1, 2, 3")]
2272 pub r#match: ::core::option::Option<data_selector::Match>,
2273}
2274pub mod data_selector {
2276 #[allow(clippy::derive_partial_eq_without_eq)]
2277#[derive(Clone, PartialEq, ::prost::Oneof)]
2278 pub enum Match {
2279 #[prost(string, tag="1")]
2280 TrackId(::prost::alloc::string::String),
2281 #[prost(string, tag="2")]
2282 ParticipantIdentity(::prost::alloc::string::String),
2283 #[prost(string, tag="3")]
2284 Topic(::prost::alloc::string::String),
2285 }
2286}
2287#[allow(clippy::derive_partial_eq_without_eq)]
2288#[derive(Clone, PartialEq, ::prost::Message)]
2289pub struct EncodingOptions {
2290 #[prost(int32, tag="1")]
2292 pub width: i32,
2293 #[prost(int32, tag="2")]
2295 pub height: i32,
2296 #[prost(int32, tag="3")]
2298 pub depth: i32,
2299 #[prost(int32, tag="4")]
2301 pub framerate: i32,
2302 #[prost(enumeration="AudioCodec", tag="5")]
2304 pub audio_codec: i32,
2305 #[prost(int32, tag="6")]
2307 pub audio_bitrate: i32,
2308 #[prost(int32, tag="7")]
2310 pub audio_frequency: i32,
2311 #[prost(enumeration="VideoCodec", tag="8")]
2313 pub video_codec: i32,
2314 #[prost(int32, tag="9")]
2316 pub video_bitrate: i32,
2317 #[prost(double, tag="10")]
2319 pub key_frame_interval: f64,
2320 #[deprecated]
2324 #[prost(int32, tag="11")]
2325 pub audio_quality: i32,
2326 #[deprecated]
2328 #[prost(int32, tag="12")]
2329 pub video_quality: i32,
2330}
2331#[allow(clippy::derive_partial_eq_without_eq)]
2334#[derive(Clone, PartialEq, ::prost::Message)]
2335pub struct Output {
2336 #[prost(message, optional, tag="6")]
2338 pub storage: ::core::option::Option<StorageConfig>,
2339 #[prost(oneof="output::Config", tags="1, 2, 3, 4")]
2340 pub config: ::core::option::Option<output::Config>,
2341}
2342pub mod output {
2344 #[allow(clippy::derive_partial_eq_without_eq)]
2345#[derive(Clone, PartialEq, ::prost::Oneof)]
2346 pub enum Config {
2347 #[prost(message, tag="1")]
2348 File(super::FileOutput),
2349 #[prost(message, tag="2")]
2350 Stream(super::StreamOutput),
2351 #[prost(message, tag="3")]
2352 Segments(super::SegmentedFileOutput),
2353 #[prost(message, tag="4")]
2355 Images(super::ImageOutput),
2356 }
2357}
2358#[allow(clippy::derive_partial_eq_without_eq)]
2361#[derive(Clone, PartialEq, ::prost::Message)]
2362pub struct FileOutput {
2363 #[prost(enumeration="EncodedFileType", tag="1")]
2364 pub file_type: i32,
2365 #[prost(string, tag="2")]
2366 pub filepath: ::prost::alloc::string::String,
2367 #[prost(bool, tag="3")]
2368 pub disable_manifest: bool,
2369}
2370#[allow(clippy::derive_partial_eq_without_eq)]
2371#[derive(Clone, PartialEq, ::prost::Message)]
2372pub struct StreamOutput {
2373 #[prost(enumeration="StreamProtocol", tag="1")]
2375 pub protocol: i32,
2376 #[prost(string, repeated, tag="2")]
2378 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2379}
2380#[allow(clippy::derive_partial_eq_without_eq)]
2382#[derive(Clone, PartialEq, ::prost::Message)]
2383pub struct SegmentedFileOutput {
2384 #[prost(enumeration="SegmentedFileProtocol", tag="1")]
2386 pub protocol: i32,
2387 #[prost(string, tag="2")]
2389 pub filename_prefix: ::prost::alloc::string::String,
2390 #[prost(string, tag="3")]
2392 pub playlist_name: ::prost::alloc::string::String,
2393 #[prost(string, tag="11")]
2395 pub live_playlist_name: ::prost::alloc::string::String,
2396 #[prost(uint32, tag="4")]
2398 pub segment_duration: u32,
2399 #[prost(enumeration="SegmentedFileSuffix", tag="10")]
2401 pub filename_suffix: i32,
2402 #[prost(bool, tag="8")]
2404 pub disable_manifest: bool,
2405 #[prost(oneof="segmented_file_output::Output", tags="5, 6, 7, 9")]
2406 pub output: ::core::option::Option<segmented_file_output::Output>,
2407}
2408pub mod segmented_file_output {
2410 #[allow(clippy::derive_partial_eq_without_eq)]
2411#[derive(Clone, PartialEq, ::prost::Oneof)]
2412 pub enum Output {
2413 #[prost(message, tag="5")]
2414 S3(super::S3Upload),
2415 #[prost(message, tag="6")]
2416 Gcp(super::GcpUpload),
2417 #[prost(message, tag="7")]
2418 Azure(super::AzureBlobUpload),
2419 #[prost(message, tag="9")]
2420 AliOss(super::AliOssUpload),
2421 }
2422}
2423#[allow(clippy::derive_partial_eq_without_eq)]
2425#[derive(Clone, PartialEq, ::prost::Message)]
2426pub struct ImageOutput {
2427 #[prost(uint32, tag="1")]
2429 pub capture_interval: u32,
2430 #[prost(int32, tag="2")]
2432 pub width: i32,
2433 #[prost(int32, tag="3")]
2435 pub height: i32,
2436 #[prost(string, tag="4")]
2438 pub filename_prefix: ::prost::alloc::string::String,
2439 #[prost(enumeration="ImageFileSuffix", tag="5")]
2441 pub filename_suffix: i32,
2442 #[prost(enumeration="ImageCodec", tag="6")]
2444 pub image_codec: i32,
2445 #[prost(bool, tag="7")]
2447 pub disable_manifest: bool,
2448 #[prost(oneof="image_output::Output", tags="8, 9, 10, 11")]
2449 pub output: ::core::option::Option<image_output::Output>,
2450}
2451pub mod image_output {
2453 #[allow(clippy::derive_partial_eq_without_eq)]
2454#[derive(Clone, PartialEq, ::prost::Oneof)]
2455 pub enum Output {
2456 #[prost(message, tag="8")]
2457 S3(super::S3Upload),
2458 #[prost(message, tag="9")]
2459 Gcp(super::GcpUpload),
2460 #[prost(message, tag="10")]
2461 Azure(super::AzureBlobUpload),
2462 #[prost(message, tag="11")]
2463 AliOss(super::AliOssUpload),
2464 }
2465}
2466#[allow(clippy::derive_partial_eq_without_eq)]
2469#[derive(Clone, PartialEq, ::prost::Message)]
2470pub struct StorageConfig {
2471 #[prost(oneof="storage_config::Provider", tags="1, 2, 3, 4")]
2472 pub provider: ::core::option::Option<storage_config::Provider>,
2473}
2474pub mod storage_config {
2476 #[allow(clippy::derive_partial_eq_without_eq)]
2477#[derive(Clone, PartialEq, ::prost::Oneof)]
2478 pub enum Provider {
2479 #[prost(message, tag="1")]
2480 S3(super::S3Upload),
2481 #[prost(message, tag="2")]
2482 Gcp(super::GcpUpload),
2483 #[prost(message, tag="3")]
2484 Azure(super::AzureBlobUpload),
2485 #[prost(message, tag="4")]
2486 AliOss(super::AliOssUpload),
2487 }
2488}
2489#[allow(clippy::derive_partial_eq_without_eq)]
2490#[derive(Clone, PartialEq, ::prost::Message)]
2491pub struct S3Upload {
2492 #[prost(string, tag="1")]
2493 pub access_key: ::prost::alloc::string::String,
2494 #[prost(string, tag="2")]
2495 pub secret: ::prost::alloc::string::String,
2496 #[prost(string, tag="11")]
2497 pub session_token: ::prost::alloc::string::String,
2498 #[prost(string, tag="12")]
2500 pub assume_role_arn: ::prost::alloc::string::String,
2501 #[prost(string, tag="13")]
2503 pub assume_role_external_id: ::prost::alloc::string::String,
2504 #[prost(string, tag="3")]
2505 pub region: ::prost::alloc::string::String,
2506 #[prost(string, tag="4")]
2507 pub endpoint: ::prost::alloc::string::String,
2508 #[prost(string, tag="5")]
2509 pub bucket: ::prost::alloc::string::String,
2510 #[prost(bool, tag="6")]
2511 pub force_path_style: bool,
2512 #[prost(map="string, string", tag="7")]
2513 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2514 #[prost(string, tag="8")]
2515 pub tagging: ::prost::alloc::string::String,
2516 #[prost(string, tag="9")]
2518 pub content_disposition: ::prost::alloc::string::String,
2519 #[prost(message, optional, tag="10")]
2520 pub proxy: ::core::option::Option<ProxyConfig>,
2521}
2522#[allow(clippy::derive_partial_eq_without_eq)]
2523#[derive(Clone, PartialEq, ::prost::Message)]
2524pub struct GcpUpload {
2525 #[prost(string, tag="1")]
2527 pub credentials: ::prost::alloc::string::String,
2528 #[prost(string, tag="2")]
2529 pub bucket: ::prost::alloc::string::String,
2530 #[prost(message, optional, tag="3")]
2531 pub proxy: ::core::option::Option<ProxyConfig>,
2532}
2533#[allow(clippy::derive_partial_eq_without_eq)]
2534#[derive(Clone, PartialEq, ::prost::Message)]
2535pub struct AzureBlobUpload {
2536 #[prost(string, tag="1")]
2537 pub account_name: ::prost::alloc::string::String,
2538 #[prost(string, tag="2")]
2539 pub account_key: ::prost::alloc::string::String,
2540 #[prost(string, tag="3")]
2541 pub container_name: ::prost::alloc::string::String,
2542}
2543#[allow(clippy::derive_partial_eq_without_eq)]
2544#[derive(Clone, PartialEq, ::prost::Message)]
2545pub struct AliOssUpload {
2546 #[prost(string, tag="1")]
2547 pub access_key: ::prost::alloc::string::String,
2548 #[prost(string, tag="2")]
2549 pub secret: ::prost::alloc::string::String,
2550 #[prost(string, tag="3")]
2551 pub region: ::prost::alloc::string::String,
2552 #[prost(string, tag="4")]
2553 pub endpoint: ::prost::alloc::string::String,
2554 #[prost(string, tag="5")]
2555 pub bucket: ::prost::alloc::string::String,
2556}
2557#[allow(clippy::derive_partial_eq_without_eq)]
2558#[derive(Clone, PartialEq, ::prost::Message)]
2559pub struct ProxyConfig {
2560 #[prost(string, tag="1")]
2561 pub url: ::prost::alloc::string::String,
2562 #[prost(string, tag="2")]
2563 pub username: ::prost::alloc::string::String,
2564 #[prost(string, tag="3")]
2565 pub password: ::prost::alloc::string::String,
2566}
2567#[allow(clippy::derive_partial_eq_without_eq)]
2570#[derive(Clone, PartialEq, ::prost::Message)]
2571pub struct ListEgressRequest {
2572 #[prost(string, tag="1")]
2574 pub room_name: ::prost::alloc::string::String,
2575 #[prost(string, tag="2")]
2577 pub egress_id: ::prost::alloc::string::String,
2578 #[prost(bool, tag="3")]
2580 pub active: bool,
2581 #[prost(message, optional, tag="4")]
2583 pub page_token: ::core::option::Option<TokenPagination>,
2584}
2585#[allow(clippy::derive_partial_eq_without_eq)]
2586#[derive(Clone, PartialEq, ::prost::Message)]
2587pub struct ListEgressResponse {
2588 #[prost(message, repeated, tag="1")]
2589 pub items: ::prost::alloc::vec::Vec<EgressInfo>,
2590 #[prost(message, optional, tag="2")]
2592 pub next_page_token: ::core::option::Option<TokenPagination>,
2593}
2594#[allow(clippy::derive_partial_eq_without_eq)]
2595#[derive(Clone, PartialEq, ::prost::Message)]
2596pub struct UpdateEgressRequest {
2597 #[prost(string, tag="1")]
2598 pub egress_id: ::prost::alloc::string::String,
2599 #[prost(string, tag="2")]
2600 pub url: ::prost::alloc::string::String,
2601 #[prost(string, tag="3")]
2602 pub layout: ::prost::alloc::string::String,
2603 #[prost(string, repeated, tag="4")]
2604 pub add_stream_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2605 #[prost(string, repeated, tag="5")]
2606 pub remove_stream_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2607}
2608#[allow(clippy::derive_partial_eq_without_eq)]
2609#[derive(Clone, PartialEq, ::prost::Message)]
2610pub struct StopEgressRequest {
2611 #[prost(string, tag="1")]
2612 pub egress_id: ::prost::alloc::string::String,
2613}
2614#[allow(clippy::derive_partial_eq_without_eq)]
2617#[derive(Clone, PartialEq, ::prost::Message)]
2618pub struct EgressInfo {
2619 #[prost(string, tag="1")]
2620 pub egress_id: ::prost::alloc::string::String,
2621 #[prost(string, tag="2")]
2622 pub room_id: ::prost::alloc::string::String,
2623 #[prost(string, tag="13")]
2624 pub room_name: ::prost::alloc::string::String,
2625 #[prost(enumeration="EgressSourceType", tag="26")]
2626 pub source_type: i32,
2627 #[prost(enumeration="EgressStatus", tag="3")]
2628 pub status: i32,
2629 #[prost(int64, tag="10")]
2630 pub started_at: i64,
2631 #[prost(int64, tag="11")]
2632 pub ended_at: i64,
2633 #[prost(int64, tag="18")]
2634 pub updated_at: i64,
2635 #[prost(message, repeated, tag="15")]
2636 pub stream_results: ::prost::alloc::vec::Vec<StreamInfo>,
2637 #[prost(message, repeated, tag="16")]
2638 pub file_results: ::prost::alloc::vec::Vec<FileInfo>,
2639 #[prost(message, repeated, tag="17")]
2640 pub segment_results: ::prost::alloc::vec::Vec<SegmentsInfo>,
2641 #[prost(message, repeated, tag="20")]
2642 pub image_results: ::prost::alloc::vec::Vec<ImagesInfo>,
2643 #[prost(string, tag="9")]
2644 pub error: ::prost::alloc::string::String,
2645 #[prost(int32, tag="22")]
2646 pub error_code: i32,
2647 #[prost(string, tag="21")]
2648 pub details: ::prost::alloc::string::String,
2649 #[prost(string, tag="23")]
2650 pub manifest_location: ::prost::alloc::string::String,
2651 #[prost(bool, tag="25")]
2652 pub backup_storage_used: bool,
2653 #[prost(int32, tag="27")]
2654 pub retry_count: i32,
2655 #[prost(oneof="egress_info::Request", tags="30, 4, 14, 19, 5, 6")]
2656 pub request: ::core::option::Option<egress_info::Request>,
2657 #[prost(oneof="egress_info::Result", tags="7, 8, 12")]
2661 pub result: ::core::option::Option<egress_info::Result>,
2662}
2663pub mod egress_info {
2665 #[allow(clippy::derive_partial_eq_without_eq)]
2666#[derive(Clone, PartialEq, ::prost::Oneof)]
2667 pub enum Request {
2668 #[prost(message, tag="30")]
2670 Replay(super::ExportReplayRequest),
2671 #[prost(message, tag="4")]
2672 RoomComposite(super::RoomCompositeEgressRequest),
2673 #[prost(message, tag="14")]
2674 Web(super::WebEgressRequest),
2675 #[prost(message, tag="19")]
2676 Participant(super::ParticipantEgressRequest),
2677 #[prost(message, tag="5")]
2678 TrackComposite(super::TrackCompositeEgressRequest),
2679 #[prost(message, tag="6")]
2680 Track(super::TrackEgressRequest),
2681 }
2682 #[allow(clippy::derive_partial_eq_without_eq)]
2686#[derive(Clone, PartialEq, ::prost::Oneof)]
2687 pub enum Result {
2688 #[prost(message, tag="7")]
2689 Stream(super::StreamInfoList),
2690 #[prost(message, tag="8")]
2691 File(super::FileInfo),
2692 #[prost(message, tag="12")]
2693 Segments(super::SegmentsInfo),
2694 }
2695}
2696#[allow(clippy::derive_partial_eq_without_eq)]
2697#[derive(Clone, PartialEq, ::prost::Message)]
2698pub struct StreamInfo {
2699 #[prost(string, tag="1")]
2700 pub url: ::prost::alloc::string::String,
2701 #[prost(int64, tag="2")]
2702 pub started_at: i64,
2703 #[prost(int64, tag="3")]
2704 pub ended_at: i64,
2705 #[prost(int64, tag="4")]
2706 pub duration: i64,
2707 #[prost(enumeration="stream_info::Status", tag="5")]
2708 pub status: i32,
2709 #[prost(string, tag="6")]
2710 pub error: ::prost::alloc::string::String,
2711 #[prost(int64, tag="7")]
2712 pub last_retry_at: i64,
2713 #[prost(uint32, tag="8")]
2714 pub retries: u32,
2715}
2716pub mod stream_info {
2718 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2719 #[repr(i32)]
2720 pub enum Status {
2721 Active = 0,
2722 Finished = 1,
2723 Failed = 2,
2724 }
2725 impl Status {
2726 pub fn as_str_name(&self) -> &'static str {
2731 match self {
2732 Status::Active => "ACTIVE",
2733 Status::Finished => "FINISHED",
2734 Status::Failed => "FAILED",
2735 }
2736 }
2737 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2739 match value {
2740 "ACTIVE" => Some(Self::Active),
2741 "FINISHED" => Some(Self::Finished),
2742 "FAILED" => Some(Self::Failed),
2743 _ => None,
2744 }
2745 }
2746 }
2747}
2748#[allow(clippy::derive_partial_eq_without_eq)]
2749#[derive(Clone, PartialEq, ::prost::Message)]
2750pub struct FileInfo {
2751 #[prost(string, tag="1")]
2752 pub filename: ::prost::alloc::string::String,
2753 #[prost(int64, tag="2")]
2754 pub started_at: i64,
2755 #[prost(int64, tag="3")]
2756 pub ended_at: i64,
2757 #[prost(int64, tag="6")]
2758 pub duration: i64,
2759 #[prost(int64, tag="4")]
2760 pub size: i64,
2761 #[prost(string, tag="5")]
2762 pub location: ::prost::alloc::string::String,
2763}
2764#[allow(clippy::derive_partial_eq_without_eq)]
2765#[derive(Clone, PartialEq, ::prost::Message)]
2766pub struct SegmentsInfo {
2767 #[prost(string, tag="1")]
2768 pub playlist_name: ::prost::alloc::string::String,
2769 #[prost(string, tag="8")]
2770 pub live_playlist_name: ::prost::alloc::string::String,
2771 #[prost(int64, tag="2")]
2772 pub duration: i64,
2773 #[prost(int64, tag="3")]
2774 pub size: i64,
2775 #[prost(string, tag="4")]
2776 pub playlist_location: ::prost::alloc::string::String,
2777 #[prost(string, tag="9")]
2778 pub live_playlist_location: ::prost::alloc::string::String,
2779 #[prost(int64, tag="5")]
2780 pub segment_count: i64,
2781 #[prost(int64, tag="6")]
2782 pub started_at: i64,
2783 #[prost(int64, tag="7")]
2784 pub ended_at: i64,
2785}
2786#[allow(clippy::derive_partial_eq_without_eq)]
2787#[derive(Clone, PartialEq, ::prost::Message)]
2788pub struct ImagesInfo {
2789 #[prost(string, tag="4")]
2790 pub filename_prefix: ::prost::alloc::string::String,
2791 #[prost(int64, tag="1")]
2792 pub image_count: i64,
2793 #[prost(int64, tag="2")]
2794 pub started_at: i64,
2795 #[prost(int64, tag="3")]
2796 pub ended_at: i64,
2797}
2798#[allow(clippy::derive_partial_eq_without_eq)]
2801#[derive(Clone, PartialEq, ::prost::Message)]
2802pub struct AutoParticipantEgress {
2803 #[prost(message, repeated, tag="3")]
2804 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2805 #[prost(message, repeated, tag="4")]
2806 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2807 #[prost(oneof="auto_participant_egress::Options", tags="1, 2")]
2808 pub options: ::core::option::Option<auto_participant_egress::Options>,
2809}
2810pub mod auto_participant_egress {
2812 #[allow(clippy::derive_partial_eq_without_eq)]
2813#[derive(Clone, PartialEq, ::prost::Oneof)]
2814 pub enum Options {
2815 #[prost(enumeration="super::EncodingOptionsPreset", tag="1")]
2817 Preset(i32),
2818 #[prost(message, tag="2")]
2820 Advanced(super::EncodingOptions),
2821 }
2822}
2823#[allow(clippy::derive_partial_eq_without_eq)]
2824#[derive(Clone, PartialEq, ::prost::Message)]
2825pub struct AutoTrackEgress {
2826 #[prost(string, tag="1")]
2828 pub filepath: ::prost::alloc::string::String,
2829 #[prost(bool, tag="5")]
2831 pub disable_manifest: bool,
2832 #[prost(oneof="auto_track_egress::Output", tags="2, 3, 4, 6")]
2833 pub output: ::core::option::Option<auto_track_egress::Output>,
2834}
2835pub mod auto_track_egress {
2837 #[allow(clippy::derive_partial_eq_without_eq)]
2838#[derive(Clone, PartialEq, ::prost::Oneof)]
2839 pub enum Output {
2840 #[prost(message, tag="2")]
2841 S3(super::S3Upload),
2842 #[prost(message, tag="3")]
2843 Gcp(super::GcpUpload),
2844 #[prost(message, tag="4")]
2845 Azure(super::AzureBlobUpload),
2846 #[prost(message, tag="6")]
2847 AliOss(super::AliOssUpload),
2848 }
2849}
2850#[allow(clippy::derive_partial_eq_without_eq)]
2853#[derive(Clone, PartialEq, ::prost::Message)]
2854pub struct ExportReplayRequest {
2855 #[prost(string, tag="1")]
2856 pub replay_id: ::prost::alloc::string::String,
2857 #[prost(int64, tag="2")]
2858 pub start_offset_ms: i64,
2859 #[prost(int64, tag="3")]
2860 pub end_offset_ms: i64,
2861 #[prost(message, repeated, tag="9")]
2862 pub outputs: ::prost::alloc::vec::Vec<Output>,
2863 #[prost(message, optional, tag="10")]
2864 pub storage: ::core::option::Option<StorageConfig>,
2865 #[prost(message, repeated, tag="11")]
2866 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2867 #[prost(oneof="export_replay_request::Source", tags="4, 5, 6")]
2868 pub source: ::core::option::Option<export_replay_request::Source>,
2869 #[prost(oneof="export_replay_request::Encoding", tags="7, 8")]
2870 pub encoding: ::core::option::Option<export_replay_request::Encoding>,
2871}
2872pub mod export_replay_request {
2874 #[allow(clippy::derive_partial_eq_without_eq)]
2875#[derive(Clone, PartialEq, ::prost::Oneof)]
2876 pub enum Source {
2877 #[prost(message, tag="4")]
2878 Template(super::TemplateSource),
2879 #[prost(message, tag="5")]
2880 Web(super::WebSource),
2881 #[prost(message, tag="6")]
2882 Media(super::MediaSource),
2883 }
2884 #[allow(clippy::derive_partial_eq_without_eq)]
2885#[derive(Clone, PartialEq, ::prost::Oneof)]
2886 pub enum Encoding {
2887 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
2888 Preset(i32),
2889 #[prost(message, tag="8")]
2890 Advanced(super::EncodingOptions),
2891 }
2892}
2893#[allow(clippy::derive_partial_eq_without_eq)]
2896#[derive(Clone, PartialEq, ::prost::Message)]
2897pub struct RoomCompositeEgressRequest {
2898 #[prost(string, tag="1")]
2899 pub room_name: ::prost::alloc::string::String,
2900 #[prost(string, tag="2")]
2901 pub layout: ::prost::alloc::string::String,
2902 #[prost(bool, tag="3")]
2903 pub audio_only: bool,
2904 #[prost(enumeration="AudioMixing", tag="15")]
2905 pub audio_mixing: i32,
2906 #[prost(bool, tag="4")]
2907 pub video_only: bool,
2908 #[prost(string, tag="5")]
2909 pub custom_base_url: ::prost::alloc::string::String,
2910 #[prost(message, repeated, tag="11")]
2911 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2912 #[prost(message, repeated, tag="12")]
2913 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2914 #[prost(message, repeated, tag="13")]
2915 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2916 #[prost(message, repeated, tag="14")]
2917 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2918 #[prost(message, repeated, tag="16")]
2919 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2920 #[prost(oneof="room_composite_egress_request::Output", tags="6, 7, 10")]
2921 pub output: ::core::option::Option<room_composite_egress_request::Output>,
2922 #[prost(oneof="room_composite_egress_request::Options", tags="8, 9")]
2923 pub options: ::core::option::Option<room_composite_egress_request::Options>,
2924}
2925pub mod room_composite_egress_request {
2927 #[allow(clippy::derive_partial_eq_without_eq)]
2928#[derive(Clone, PartialEq, ::prost::Oneof)]
2929 pub enum Output {
2930 #[prost(message, tag="6")]
2931 File(super::EncodedFileOutput),
2932 #[prost(message, tag="7")]
2933 Stream(super::StreamOutput),
2934 #[prost(message, tag="10")]
2935 Segments(super::SegmentedFileOutput),
2936 }
2937 #[allow(clippy::derive_partial_eq_without_eq)]
2938#[derive(Clone, PartialEq, ::prost::Oneof)]
2939 pub enum Options {
2940 #[prost(enumeration="super::EncodingOptionsPreset", tag="8")]
2941 Preset(i32),
2942 #[prost(message, tag="9")]
2943 Advanced(super::EncodingOptions),
2944 }
2945}
2946#[allow(clippy::derive_partial_eq_without_eq)]
2947#[derive(Clone, PartialEq, ::prost::Message)]
2948pub struct WebEgressRequest {
2949 #[prost(string, tag="1")]
2950 pub url: ::prost::alloc::string::String,
2951 #[prost(bool, tag="2")]
2952 pub audio_only: bool,
2953 #[prost(bool, tag="3")]
2954 pub video_only: bool,
2955 #[prost(bool, tag="12")]
2956 pub await_start_signal: bool,
2957 #[prost(message, repeated, tag="9")]
2958 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2959 #[prost(message, repeated, tag="10")]
2960 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2961 #[prost(message, repeated, tag="11")]
2962 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2963 #[prost(message, repeated, tag="13")]
2964 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2965 #[prost(message, repeated, tag="14")]
2966 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2967 #[prost(oneof="web_egress_request::Output", tags="4, 5, 6")]
2968 pub output: ::core::option::Option<web_egress_request::Output>,
2969 #[prost(oneof="web_egress_request::Options", tags="7, 8")]
2970 pub options: ::core::option::Option<web_egress_request::Options>,
2971}
2972pub mod web_egress_request {
2974 #[allow(clippy::derive_partial_eq_without_eq)]
2975#[derive(Clone, PartialEq, ::prost::Oneof)]
2976 pub enum Output {
2977 #[prost(message, tag="4")]
2978 File(super::EncodedFileOutput),
2979 #[prost(message, tag="5")]
2980 Stream(super::StreamOutput),
2981 #[prost(message, tag="6")]
2982 Segments(super::SegmentedFileOutput),
2983 }
2984 #[allow(clippy::derive_partial_eq_without_eq)]
2985#[derive(Clone, PartialEq, ::prost::Oneof)]
2986 pub enum Options {
2987 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
2988 Preset(i32),
2989 #[prost(message, tag="8")]
2990 Advanced(super::EncodingOptions),
2991 }
2992}
2993#[allow(clippy::derive_partial_eq_without_eq)]
2994#[derive(Clone, PartialEq, ::prost::Message)]
2995pub struct ParticipantEgressRequest {
2996 #[prost(string, tag="1")]
2997 pub room_name: ::prost::alloc::string::String,
2998 #[prost(string, tag="2")]
2999 pub identity: ::prost::alloc::string::String,
3000 #[prost(bool, tag="3")]
3001 pub screen_share: bool,
3002 #[prost(message, repeated, tag="6")]
3003 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3004 #[prost(message, repeated, tag="7")]
3005 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3006 #[prost(message, repeated, tag="8")]
3007 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3008 #[prost(message, repeated, tag="9")]
3009 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3010 #[prost(message, repeated, tag="10")]
3011 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3012 #[prost(oneof="participant_egress_request::Options", tags="4, 5")]
3013 pub options: ::core::option::Option<participant_egress_request::Options>,
3014}
3015pub mod participant_egress_request {
3017 #[allow(clippy::derive_partial_eq_without_eq)]
3018#[derive(Clone, PartialEq, ::prost::Oneof)]
3019 pub enum Options {
3020 #[prost(enumeration="super::EncodingOptionsPreset", tag="4")]
3021 Preset(i32),
3022 #[prost(message, tag="5")]
3023 Advanced(super::EncodingOptions),
3024 }
3025}
3026#[allow(clippy::derive_partial_eq_without_eq)]
3027#[derive(Clone, PartialEq, ::prost::Message)]
3028pub struct TrackCompositeEgressRequest {
3029 #[prost(string, tag="1")]
3030 pub room_name: ::prost::alloc::string::String,
3031 #[prost(string, tag="2")]
3032 pub audio_track_id: ::prost::alloc::string::String,
3033 #[prost(string, tag="3")]
3034 pub video_track_id: ::prost::alloc::string::String,
3035 #[prost(message, repeated, tag="11")]
3036 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3037 #[prost(message, repeated, tag="12")]
3038 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3039 #[prost(message, repeated, tag="13")]
3040 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3041 #[prost(message, repeated, tag="14")]
3042 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3043 #[prost(message, repeated, tag="15")]
3044 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3045 #[prost(oneof="track_composite_egress_request::Output", tags="4, 5, 8")]
3046 pub output: ::core::option::Option<track_composite_egress_request::Output>,
3047 #[prost(oneof="track_composite_egress_request::Options", tags="6, 7")]
3048 pub options: ::core::option::Option<track_composite_egress_request::Options>,
3049}
3050pub mod track_composite_egress_request {
3052 #[allow(clippy::derive_partial_eq_without_eq)]
3053#[derive(Clone, PartialEq, ::prost::Oneof)]
3054 pub enum Output {
3055 #[prost(message, tag="4")]
3056 File(super::EncodedFileOutput),
3057 #[prost(message, tag="5")]
3058 Stream(super::StreamOutput),
3059 #[prost(message, tag="8")]
3060 Segments(super::SegmentedFileOutput),
3061 }
3062 #[allow(clippy::derive_partial_eq_without_eq)]
3063#[derive(Clone, PartialEq, ::prost::Oneof)]
3064 pub enum Options {
3065 #[prost(enumeration="super::EncodingOptionsPreset", tag="6")]
3066 Preset(i32),
3067 #[prost(message, tag="7")]
3068 Advanced(super::EncodingOptions),
3069 }
3070}
3071#[allow(clippy::derive_partial_eq_without_eq)]
3072#[derive(Clone, PartialEq, ::prost::Message)]
3073pub struct TrackEgressRequest {
3074 #[prost(string, tag="1")]
3075 pub room_name: ::prost::alloc::string::String,
3076 #[prost(string, tag="2")]
3077 pub track_id: ::prost::alloc::string::String,
3078 #[prost(message, repeated, tag="5")]
3079 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3080 #[prost(oneof="track_egress_request::Output", tags="3, 4")]
3081 pub output: ::core::option::Option<track_egress_request::Output>,
3082}
3083pub mod track_egress_request {
3085 #[allow(clippy::derive_partial_eq_without_eq)]
3086#[derive(Clone, PartialEq, ::prost::Oneof)]
3087 pub enum Output {
3088 #[prost(message, tag="3")]
3089 File(super::DirectFileOutput),
3090 #[prost(string, tag="4")]
3091 WebsocketUrl(::prost::alloc::string::String),
3092 }
3093}
3094#[allow(clippy::derive_partial_eq_without_eq)]
3095#[derive(Clone, PartialEq, ::prost::Message)]
3096pub struct DirectFileOutput {
3097 #[prost(string, tag="1")]
3098 pub filepath: ::prost::alloc::string::String,
3099 #[prost(bool, tag="5")]
3100 pub disable_manifest: bool,
3101 #[prost(oneof="direct_file_output::Output", tags="2, 3, 4, 6")]
3102 pub output: ::core::option::Option<direct_file_output::Output>,
3103}
3104pub mod direct_file_output {
3106 #[allow(clippy::derive_partial_eq_without_eq)]
3107#[derive(Clone, PartialEq, ::prost::Oneof)]
3108 pub enum Output {
3109 #[prost(message, tag="2")]
3110 S3(super::S3Upload),
3111 #[prost(message, tag="3")]
3112 Gcp(super::GcpUpload),
3113 #[prost(message, tag="4")]
3114 Azure(super::AzureBlobUpload),
3115 #[prost(message, tag="6")]
3116 AliOss(super::AliOssUpload),
3117 }
3118}
3119#[allow(clippy::derive_partial_eq_without_eq)]
3120#[derive(Clone, PartialEq, ::prost::Message)]
3121pub struct EncodedFileOutput {
3122 #[prost(enumeration="EncodedFileType", tag="1")]
3123 pub file_type: i32,
3124 #[prost(string, tag="2")]
3125 pub filepath: ::prost::alloc::string::String,
3126 #[prost(bool, tag="6")]
3127 pub disable_manifest: bool,
3128 #[prost(oneof="encoded_file_output::Output", tags="3, 4, 5, 7")]
3129 pub output: ::core::option::Option<encoded_file_output::Output>,
3130}
3131pub mod encoded_file_output {
3133 #[allow(clippy::derive_partial_eq_without_eq)]
3134#[derive(Clone, PartialEq, ::prost::Oneof)]
3135 pub enum Output {
3136 #[prost(message, tag="3")]
3137 S3(super::S3Upload),
3138 #[prost(message, tag="4")]
3139 Gcp(super::GcpUpload),
3140 #[prost(message, tag="5")]
3141 Azure(super::AzureBlobUpload),
3142 #[prost(message, tag="7")]
3143 AliOss(super::AliOssUpload),
3144 }
3145}
3146#[allow(clippy::derive_partial_eq_without_eq)]
3147#[derive(Clone, PartialEq, ::prost::Message)]
3148pub struct UpdateLayoutRequest {
3149 #[prost(string, tag="1")]
3150 pub egress_id: ::prost::alloc::string::String,
3151 #[prost(string, tag="2")]
3152 pub layout: ::prost::alloc::string::String,
3153}
3154#[allow(clippy::derive_partial_eq_without_eq)]
3155#[derive(Clone, PartialEq, ::prost::Message)]
3156pub struct UpdateStreamRequest {
3157 #[prost(string, tag="1")]
3158 pub egress_id: ::prost::alloc::string::String,
3159 #[prost(string, repeated, tag="2")]
3160 pub add_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3161 #[prost(string, repeated, tag="3")]
3162 pub remove_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3163}
3164#[allow(clippy::derive_partial_eq_without_eq)]
3165#[derive(Clone, PartialEq, ::prost::Message)]
3166pub struct StreamInfoList {
3167 #[prost(message, repeated, tag="1")]
3168 pub info: ::prost::alloc::vec::Vec<StreamInfo>,
3169}
3170#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3171#[repr(i32)]
3172pub enum AudioChannel {
3173 Both = 0,
3174 Left = 1,
3175 Right = 2,
3176}
3177impl AudioChannel {
3178 pub fn as_str_name(&self) -> &'static str {
3183 match self {
3184 AudioChannel::Both => "AUDIO_CHANNEL_BOTH",
3185 AudioChannel::Left => "AUDIO_CHANNEL_LEFT",
3186 AudioChannel::Right => "AUDIO_CHANNEL_RIGHT",
3187 }
3188 }
3189 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3191 match value {
3192 "AUDIO_CHANNEL_BOTH" => Some(Self::Both),
3193 "AUDIO_CHANNEL_LEFT" => Some(Self::Left),
3194 "AUDIO_CHANNEL_RIGHT" => Some(Self::Right),
3195 _ => None,
3196 }
3197 }
3198}
3199#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3202#[repr(i32)]
3203pub enum EncodingOptionsPreset {
3204 H264720p30 = 0,
3206 H264720p60 = 1,
3208 H2641080p30 = 2,
3210 H2641080p60 = 3,
3212 PortraitH264720p30 = 4,
3214 PortraitH264720p60 = 5,
3216 PortraitH2641080p30 = 6,
3218 PortraitH2641080p60 = 7,
3220}
3221impl EncodingOptionsPreset {
3222 pub fn as_str_name(&self) -> &'static str {
3227 match self {
3228 EncodingOptionsPreset::H264720p30 => "H264_720P_30",
3229 EncodingOptionsPreset::H264720p60 => "H264_720P_60",
3230 EncodingOptionsPreset::H2641080p30 => "H264_1080P_30",
3231 EncodingOptionsPreset::H2641080p60 => "H264_1080P_60",
3232 EncodingOptionsPreset::PortraitH264720p30 => "PORTRAIT_H264_720P_30",
3233 EncodingOptionsPreset::PortraitH264720p60 => "PORTRAIT_H264_720P_60",
3234 EncodingOptionsPreset::PortraitH2641080p30 => "PORTRAIT_H264_1080P_30",
3235 EncodingOptionsPreset::PortraitH2641080p60 => "PORTRAIT_H264_1080P_60",
3236 }
3237 }
3238 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3240 match value {
3241 "H264_720P_30" => Some(Self::H264720p30),
3242 "H264_720P_60" => Some(Self::H264720p60),
3243 "H264_1080P_30" => Some(Self::H2641080p30),
3244 "H264_1080P_60" => Some(Self::H2641080p60),
3245 "PORTRAIT_H264_720P_30" => Some(Self::PortraitH264720p30),
3246 "PORTRAIT_H264_720P_60" => Some(Self::PortraitH264720p60),
3247 "PORTRAIT_H264_1080P_30" => Some(Self::PortraitH2641080p30),
3248 "PORTRAIT_H264_1080P_60" => Some(Self::PortraitH2641080p60),
3249 _ => None,
3250 }
3251 }
3252}
3253#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3254#[repr(i32)]
3255pub enum EncodedFileType {
3256 DefaultFiletype = 0,
3258 Mp4 = 1,
3259 Ogg = 2,
3260 Mp3 = 3,
3261}
3262impl EncodedFileType {
3263 pub fn as_str_name(&self) -> &'static str {
3268 match self {
3269 EncodedFileType::DefaultFiletype => "DEFAULT_FILETYPE",
3270 EncodedFileType::Mp4 => "MP4",
3271 EncodedFileType::Ogg => "OGG",
3272 EncodedFileType::Mp3 => "MP3",
3273 }
3274 }
3275 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3277 match value {
3278 "DEFAULT_FILETYPE" => Some(Self::DefaultFiletype),
3279 "MP4" => Some(Self::Mp4),
3280 "OGG" => Some(Self::Ogg),
3281 "MP3" => Some(Self::Mp3),
3282 _ => None,
3283 }
3284 }
3285}
3286#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3287#[repr(i32)]
3288pub enum StreamProtocol {
3289 DefaultProtocol = 0,
3291 Rtmp = 1,
3292 Srt = 2,
3293 Websocket = 3,
3294}
3295impl StreamProtocol {
3296 pub fn as_str_name(&self) -> &'static str {
3301 match self {
3302 StreamProtocol::DefaultProtocol => "DEFAULT_PROTOCOL",
3303 StreamProtocol::Rtmp => "RTMP",
3304 StreamProtocol::Srt => "SRT",
3305 StreamProtocol::Websocket => "WEBSOCKET",
3306 }
3307 }
3308 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3310 match value {
3311 "DEFAULT_PROTOCOL" => Some(Self::DefaultProtocol),
3312 "RTMP" => Some(Self::Rtmp),
3313 "SRT" => Some(Self::Srt),
3314 "WEBSOCKET" => Some(Self::Websocket),
3315 _ => None,
3316 }
3317 }
3318}
3319#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3320#[repr(i32)]
3321pub enum SegmentedFileProtocol {
3322 DefaultSegmentedFileProtocol = 0,
3323 HlsProtocol = 1,
3324}
3325impl SegmentedFileProtocol {
3326 pub fn as_str_name(&self) -> &'static str {
3331 match self {
3332 SegmentedFileProtocol::DefaultSegmentedFileProtocol => "DEFAULT_SEGMENTED_FILE_PROTOCOL",
3333 SegmentedFileProtocol::HlsProtocol => "HLS_PROTOCOL",
3334 }
3335 }
3336 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3338 match value {
3339 "DEFAULT_SEGMENTED_FILE_PROTOCOL" => Some(Self::DefaultSegmentedFileProtocol),
3340 "HLS_PROTOCOL" => Some(Self::HlsProtocol),
3341 _ => None,
3342 }
3343 }
3344}
3345#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3346#[repr(i32)]
3347pub enum SegmentedFileSuffix {
3348 Index = 0,
3349 Timestamp = 1,
3350}
3351impl SegmentedFileSuffix {
3352 pub fn as_str_name(&self) -> &'static str {
3357 match self {
3358 SegmentedFileSuffix::Index => "INDEX",
3359 SegmentedFileSuffix::Timestamp => "TIMESTAMP",
3360 }
3361 }
3362 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3364 match value {
3365 "INDEX" => Some(Self::Index),
3366 "TIMESTAMP" => Some(Self::Timestamp),
3367 _ => None,
3368 }
3369 }
3370}
3371#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3372#[repr(i32)]
3373pub enum ImageFileSuffix {
3374 ImageSuffixIndex = 0,
3375 ImageSuffixTimestamp = 1,
3376 ImageSuffixNoneOverwrite = 2,
3378}
3379impl ImageFileSuffix {
3380 pub fn as_str_name(&self) -> &'static str {
3385 match self {
3386 ImageFileSuffix::ImageSuffixIndex => "IMAGE_SUFFIX_INDEX",
3387 ImageFileSuffix::ImageSuffixTimestamp => "IMAGE_SUFFIX_TIMESTAMP",
3388 ImageFileSuffix::ImageSuffixNoneOverwrite => "IMAGE_SUFFIX_NONE_OVERWRITE",
3389 }
3390 }
3391 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3393 match value {
3394 "IMAGE_SUFFIX_INDEX" => Some(Self::ImageSuffixIndex),
3395 "IMAGE_SUFFIX_TIMESTAMP" => Some(Self::ImageSuffixTimestamp),
3396 "IMAGE_SUFFIX_NONE_OVERWRITE" => Some(Self::ImageSuffixNoneOverwrite),
3397 _ => None,
3398 }
3399 }
3400}
3401#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3402#[repr(i32)]
3403pub enum EgressSourceType {
3404 Web = 0,
3405 Sdk = 1,
3406}
3407impl EgressSourceType {
3408 pub fn as_str_name(&self) -> &'static str {
3413 match self {
3414 EgressSourceType::Web => "EGRESS_SOURCE_TYPE_WEB",
3415 EgressSourceType::Sdk => "EGRESS_SOURCE_TYPE_SDK",
3416 }
3417 }
3418 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3420 match value {
3421 "EGRESS_SOURCE_TYPE_WEB" => Some(Self::Web),
3422 "EGRESS_SOURCE_TYPE_SDK" => Some(Self::Sdk),
3423 _ => None,
3424 }
3425 }
3426}
3427#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3428#[repr(i32)]
3429pub enum EgressStatus {
3430 EgressStarting = 0,
3431 EgressActive = 1,
3432 EgressEnding = 2,
3433 EgressComplete = 3,
3434 EgressFailed = 4,
3435 EgressAborted = 5,
3436 EgressLimitReached = 6,
3437}
3438impl EgressStatus {
3439 pub fn as_str_name(&self) -> &'static str {
3444 match self {
3445 EgressStatus::EgressStarting => "EGRESS_STARTING",
3446 EgressStatus::EgressActive => "EGRESS_ACTIVE",
3447 EgressStatus::EgressEnding => "EGRESS_ENDING",
3448 EgressStatus::EgressComplete => "EGRESS_COMPLETE",
3449 EgressStatus::EgressFailed => "EGRESS_FAILED",
3450 EgressStatus::EgressAborted => "EGRESS_ABORTED",
3451 EgressStatus::EgressLimitReached => "EGRESS_LIMIT_REACHED",
3452 }
3453 }
3454 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3456 match value {
3457 "EGRESS_STARTING" => Some(Self::EgressStarting),
3458 "EGRESS_ACTIVE" => Some(Self::EgressActive),
3459 "EGRESS_ENDING" => Some(Self::EgressEnding),
3460 "EGRESS_COMPLETE" => Some(Self::EgressComplete),
3461 "EGRESS_FAILED" => Some(Self::EgressFailed),
3462 "EGRESS_ABORTED" => Some(Self::EgressAborted),
3463 "EGRESS_LIMIT_REACHED" => Some(Self::EgressLimitReached),
3464 _ => None,
3465 }
3466 }
3467}
3468#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3469#[repr(i32)]
3470pub enum AudioMixing {
3471 DefaultMixing = 0,
3472 DualChannelAgent = 1,
3473 DualChannelAlternate = 2,
3474}
3475impl AudioMixing {
3476 pub fn as_str_name(&self) -> &'static str {
3481 match self {
3482 AudioMixing::DefaultMixing => "DEFAULT_MIXING",
3483 AudioMixing::DualChannelAgent => "DUAL_CHANNEL_AGENT",
3484 AudioMixing::DualChannelAlternate => "DUAL_CHANNEL_ALTERNATE",
3485 }
3486 }
3487 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3489 match value {
3490 "DEFAULT_MIXING" => Some(Self::DefaultMixing),
3491 "DUAL_CHANNEL_AGENT" => Some(Self::DualChannelAgent),
3492 "DUAL_CHANNEL_ALTERNATE" => Some(Self::DualChannelAlternate),
3493 _ => None,
3494 }
3495 }
3496}
3497#[allow(clippy::derive_partial_eq_without_eq)]
3498#[derive(Clone, PartialEq, ::prost::Message)]
3499pub struct SignalRequest {
3500 #[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")]
3501 pub message: ::core::option::Option<signal_request::Message>,
3502}
3503pub mod signal_request {
3505 #[allow(clippy::derive_partial_eq_without_eq)]
3506#[derive(Clone, PartialEq, ::prost::Oneof)]
3507 pub enum Message {
3508 #[prost(message, tag="1")]
3510 Offer(super::SessionDescription),
3511 #[prost(message, tag="2")]
3513 Answer(super::SessionDescription),
3514 #[prost(message, tag="3")]
3515 Trickle(super::TrickleRequest),
3516 #[prost(message, tag="4")]
3517 AddTrack(super::AddTrackRequest),
3518 #[prost(message, tag="5")]
3520 Mute(super::MuteTrackRequest),
3521 #[prost(message, tag="6")]
3523 Subscription(super::UpdateSubscription),
3524 #[prost(message, tag="7")]
3526 TrackSetting(super::UpdateTrackSettings),
3527 #[prost(message, tag="8")]
3529 Leave(super::LeaveRequest),
3530 #[prost(message, tag="10")]
3532 UpdateLayers(super::UpdateVideoLayers),
3533 #[prost(message, tag="11")]
3535 SubscriptionPermission(super::SubscriptionPermission),
3536 #[prost(message, tag="12")]
3538 SyncState(super::SyncState),
3539 #[prost(message, tag="13")]
3541 Simulate(super::SimulateScenario),
3542 #[prost(int64, tag="14")]
3546 Ping(i64),
3547 #[prost(message, tag="15")]
3550 UpdateMetadata(super::UpdateParticipantMetadata),
3551 #[prost(message, tag="16")]
3552 PingReq(super::Ping),
3553 #[prost(message, tag="17")]
3555 UpdateAudioTrack(super::UpdateLocalAudioTrack),
3556 #[prost(message, tag="18")]
3558 UpdateVideoTrack(super::UpdateLocalVideoTrack),
3559 #[prost(message, tag="19")]
3561 PublishDataTrackRequest(super::PublishDataTrackRequest),
3562 #[prost(message, tag="20")]
3564 UnpublishDataTrackRequest(super::UnpublishDataTrackRequest),
3565 #[prost(message, tag="21")]
3567 UpdateDataSubscription(super::UpdateDataSubscription),
3568 }
3569}
3570#[allow(clippy::derive_partial_eq_without_eq)]
3571#[derive(Clone, PartialEq, ::prost::Message)]
3572pub struct SignalResponse {
3573 #[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")]
3574 pub message: ::core::option::Option<signal_response::Message>,
3575}
3576pub mod signal_response {
3578 #[allow(clippy::derive_partial_eq_without_eq)]
3579#[derive(Clone, PartialEq, ::prost::Oneof)]
3580 pub enum Message {
3581 #[prost(message, tag="1")]
3583 Join(super::JoinResponse),
3584 #[prost(message, tag="2")]
3586 Answer(super::SessionDescription),
3587 #[prost(message, tag="3")]
3589 Offer(super::SessionDescription),
3590 #[prost(message, tag="4")]
3592 Trickle(super::TrickleRequest),
3593 #[prost(message, tag="5")]
3595 Update(super::ParticipantUpdate),
3596 #[prost(message, tag="6")]
3598 TrackPublished(super::TrackPublishedResponse),
3599 #[prost(message, tag="8")]
3601 Leave(super::LeaveRequest),
3602 #[prost(message, tag="9")]
3604 Mute(super::MuteTrackRequest),
3605 #[prost(message, tag="10")]
3607 SpeakersChanged(super::SpeakersChanged),
3608 #[prost(message, tag="11")]
3610 RoomUpdate(super::RoomUpdate),
3611 #[prost(message, tag="12")]
3613 ConnectionQuality(super::ConnectionQualityUpdate),
3614 #[prost(message, tag="13")]
3617 StreamStateUpdate(super::StreamStateUpdate),
3618 #[prost(message, tag="14")]
3620 SubscribedQualityUpdate(super::SubscribedQualityUpdate),
3621 #[prost(message, tag="15")]
3623 SubscriptionPermissionUpdate(super::SubscriptionPermissionUpdate),
3624 #[prost(string, tag="16")]
3626 RefreshToken(::prost::alloc::string::String),
3627 #[prost(message, tag="17")]
3629 TrackUnpublished(super::TrackUnpublishedResponse),
3630 #[prost(int64, tag="18")]
3634 Pong(i64),
3635 #[prost(message, tag="19")]
3637 Reconnect(super::ReconnectResponse),
3638 #[prost(message, tag="20")]
3640 PongResp(super::Pong),
3641 #[prost(message, tag="21")]
3643 SubscriptionResponse(super::SubscriptionResponse),
3644 #[prost(message, tag="22")]
3646 RequestResponse(super::RequestResponse),
3647 #[prost(message, tag="23")]
3649 TrackSubscribed(super::TrackSubscribed),
3650 #[prost(message, tag="24")]
3652 RoomMoved(super::RoomMovedResponse),
3653 #[prost(message, tag="25")]
3655 MediaSectionsRequirement(super::MediaSectionsRequirement),
3656 #[prost(message, tag="26")]
3658 SubscribedAudioCodecUpdate(super::SubscribedAudioCodecUpdate),
3659 #[prost(message, tag="27")]
3661 PublishDataTrackResponse(super::PublishDataTrackResponse),
3662 #[prost(message, tag="28")]
3664 UnpublishDataTrackResponse(super::UnpublishDataTrackResponse),
3665 #[prost(message, tag="29")]
3667 DataTrackSubscriberHandles(super::DataTrackSubscriberHandles),
3668 }
3669}
3670#[allow(clippy::derive_partial_eq_without_eq)]
3671#[derive(Clone, PartialEq, ::prost::Message)]
3672pub struct SimulcastCodec {
3673 #[prost(string, tag="1")]
3674 pub codec: ::prost::alloc::string::String,
3675 #[prost(string, tag="2")]
3676 pub cid: ::prost::alloc::string::String,
3677 #[prost(message, repeated, tag="4")]
3678 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3679 #[prost(enumeration="video_layer::Mode", tag="5")]
3680 pub video_layer_mode: i32,
3681}
3682#[allow(clippy::derive_partial_eq_without_eq)]
3683#[derive(Clone, PartialEq, ::prost::Message)]
3684pub struct AddTrackRequest {
3685 #[prost(string, tag="1")]
3687 pub cid: ::prost::alloc::string::String,
3688 #[prost(string, tag="2")]
3689 pub name: ::prost::alloc::string::String,
3690 #[prost(enumeration="TrackType", tag="3")]
3691 pub r#type: i32,
3692 #[prost(uint32, tag="4")]
3693 pub width: u32,
3694 #[prost(uint32, tag="5")]
3695 pub height: u32,
3696 #[prost(bool, tag="6")]
3698 pub muted: bool,
3699 #[deprecated]
3703 #[prost(bool, tag="7")]
3704 pub disable_dtx: bool,
3705 #[prost(enumeration="TrackSource", tag="8")]
3706 pub source: i32,
3707 #[prost(message, repeated, tag="9")]
3708 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3709 #[prost(message, repeated, tag="10")]
3710 pub simulcast_codecs: ::prost::alloc::vec::Vec<SimulcastCodec>,
3711 #[prost(string, tag="11")]
3713 pub sid: ::prost::alloc::string::String,
3714 #[deprecated]
3716 #[prost(bool, tag="12")]
3717 pub stereo: bool,
3718 #[prost(bool, tag="13")]
3720 pub disable_red: bool,
3721 #[prost(enumeration="encryption::Type", tag="14")]
3722 pub encryption: i32,
3723 #[prost(string, tag="15")]
3726 pub stream: ::prost::alloc::string::String,
3727 #[prost(enumeration="BackupCodecPolicy", tag="16")]
3728 pub backup_codec_policy: i32,
3729 #[prost(enumeration="AudioTrackFeature", repeated, tag="17")]
3730 pub audio_features: ::prost::alloc::vec::Vec<i32>,
3731 #[prost(enumeration="PacketTrailerFeature", repeated, tag="18")]
3732 pub packet_trailer_features: ::prost::alloc::vec::Vec<i32>,
3733}
3734#[allow(clippy::derive_partial_eq_without_eq)]
3735#[derive(Clone, PartialEq, ::prost::Message)]
3736pub struct PublishDataTrackRequest {
3737 #[prost(uint32, tag="1")]
3740 pub pub_handle: u32,
3741 #[prost(string, tag="2")]
3744 pub name: ::prost::alloc::string::String,
3745 #[prost(enumeration="encryption::Type", tag="3")]
3747 pub encryption: i32,
3748}
3749#[allow(clippy::derive_partial_eq_without_eq)]
3750#[derive(Clone, PartialEq, ::prost::Message)]
3751pub struct PublishDataTrackResponse {
3752 #[prost(message, optional, tag="1")]
3754 pub info: ::core::option::Option<DataTrackInfo>,
3755}
3756#[allow(clippy::derive_partial_eq_without_eq)]
3757#[derive(Clone, PartialEq, ::prost::Message)]
3758pub struct UnpublishDataTrackRequest {
3759 #[prost(uint32, tag="1")]
3761 pub pub_handle: u32,
3762}
3763#[allow(clippy::derive_partial_eq_without_eq)]
3764#[derive(Clone, PartialEq, ::prost::Message)]
3765pub struct UnpublishDataTrackResponse {
3766 #[prost(message, optional, tag="1")]
3768 pub info: ::core::option::Option<DataTrackInfo>,
3769}
3770#[allow(clippy::derive_partial_eq_without_eq)]
3771#[derive(Clone, PartialEq, ::prost::Message)]
3772pub struct DataTrackSubscriberHandles {
3773 #[prost(map="uint32, message", tag="1")]
3775 pub sub_handles: ::std::collections::HashMap<u32, data_track_subscriber_handles::PublishedDataTrack>,
3776}
3777pub mod data_track_subscriber_handles {
3779 #[allow(clippy::derive_partial_eq_without_eq)]
3780#[derive(Clone, PartialEq, ::prost::Message)]
3781 pub struct PublishedDataTrack {
3782 #[prost(string, tag="1")]
3783 pub publisher_identity: ::prost::alloc::string::String,
3784 #[prost(string, tag="2")]
3785 pub publisher_sid: ::prost::alloc::string::String,
3786 #[prost(string, tag="3")]
3787 pub track_sid: ::prost::alloc::string::String,
3788 }
3789}
3790#[allow(clippy::derive_partial_eq_without_eq)]
3791#[derive(Clone, PartialEq, ::prost::Message)]
3792pub struct TrickleRequest {
3793 #[prost(string, tag="1")]
3794 pub candidate_init: ::prost::alloc::string::String,
3795 #[prost(enumeration="SignalTarget", tag="2")]
3796 pub target: i32,
3797 #[prost(bool, tag="3")]
3798 pub r#final: bool,
3799}
3800#[allow(clippy::derive_partial_eq_without_eq)]
3801#[derive(Clone, PartialEq, ::prost::Message)]
3802pub struct MuteTrackRequest {
3803 #[prost(string, tag="1")]
3804 pub sid: ::prost::alloc::string::String,
3805 #[prost(bool, tag="2")]
3806 pub muted: bool,
3807}
3808#[allow(clippy::derive_partial_eq_without_eq)]
3809#[derive(Clone, PartialEq, ::prost::Message)]
3810pub struct JoinResponse {
3811 #[prost(message, optional, tag="1")]
3812 pub room: ::core::option::Option<Room>,
3813 #[prost(message, optional, tag="2")]
3814 pub participant: ::core::option::Option<ParticipantInfo>,
3815 #[prost(message, repeated, tag="3")]
3816 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3817 #[prost(string, tag="4")]
3819 pub server_version: ::prost::alloc::string::String,
3820 #[prost(message, repeated, tag="5")]
3821 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3822 #[prost(bool, tag="6")]
3824 pub subscriber_primary: bool,
3825 #[prost(string, tag="7")]
3828 pub alternative_url: ::prost::alloc::string::String,
3829 #[prost(message, optional, tag="8")]
3830 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3831 #[prost(string, tag="9")]
3833 pub server_region: ::prost::alloc::string::String,
3834 #[prost(int32, tag="10")]
3835 pub ping_timeout: i32,
3836 #[prost(int32, tag="11")]
3837 pub ping_interval: i32,
3838 #[prost(message, optional, tag="12")]
3839 pub server_info: ::core::option::Option<ServerInfo>,
3840 #[prost(bytes="vec", tag="13")]
3842 pub sif_trailer: ::prost::alloc::vec::Vec<u8>,
3843 #[prost(message, repeated, tag="14")]
3844 pub enabled_publish_codecs: ::prost::alloc::vec::Vec<Codec>,
3845 #[prost(bool, tag="15")]
3847 pub fast_publish: bool,
3848}
3849#[allow(clippy::derive_partial_eq_without_eq)]
3850#[derive(Clone, PartialEq, ::prost::Message)]
3851pub struct ReconnectResponse {
3852 #[prost(message, repeated, tag="1")]
3853 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3854 #[prost(message, optional, tag="2")]
3855 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3856 #[prost(message, optional, tag="3")]
3857 pub server_info: ::core::option::Option<ServerInfo>,
3858 #[prost(uint32, tag="4")]
3860 pub last_message_seq: u32,
3861}
3862#[allow(clippy::derive_partial_eq_without_eq)]
3863#[derive(Clone, PartialEq, ::prost::Message)]
3864pub struct TrackPublishedResponse {
3865 #[prost(string, tag="1")]
3866 pub cid: ::prost::alloc::string::String,
3867 #[prost(message, optional, tag="2")]
3868 pub track: ::core::option::Option<TrackInfo>,
3869}
3870#[allow(clippy::derive_partial_eq_without_eq)]
3871#[derive(Clone, PartialEq, ::prost::Message)]
3872pub struct TrackUnpublishedResponse {
3873 #[prost(string, tag="1")]
3874 pub track_sid: ::prost::alloc::string::String,
3875}
3876#[allow(clippy::derive_partial_eq_without_eq)]
3877#[derive(Clone, PartialEq, ::prost::Message)]
3878pub struct SessionDescription {
3879 #[prost(string, tag="1")]
3881 pub r#type: ::prost::alloc::string::String,
3882 #[prost(string, tag="2")]
3883 pub sdp: ::prost::alloc::string::String,
3884 #[prost(uint32, tag="3")]
3885 pub id: u32,
3886 #[prost(map="string, string", tag="4")]
3887 pub mid_to_track_id: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3888}
3889#[allow(clippy::derive_partial_eq_without_eq)]
3890#[derive(Clone, PartialEq, ::prost::Message)]
3891pub struct ParticipantUpdate {
3892 #[prost(message, repeated, tag="1")]
3893 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3894}
3895#[allow(clippy::derive_partial_eq_without_eq)]
3896#[derive(Clone, PartialEq, ::prost::Message)]
3897pub struct UpdateSubscription {
3898 #[prost(string, repeated, tag="1")]
3899 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3900 #[prost(bool, tag="2")]
3901 pub subscribe: bool,
3902 #[prost(message, repeated, tag="3")]
3903 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
3904}
3905#[allow(clippy::derive_partial_eq_without_eq)]
3906#[derive(Clone, PartialEq, ::prost::Message)]
3907pub struct UpdateDataSubscription {
3908 #[prost(message, repeated, tag="1")]
3909 pub updates: ::prost::alloc::vec::Vec<update_data_subscription::Update>,
3910}
3911pub mod update_data_subscription {
3913 #[allow(clippy::derive_partial_eq_without_eq)]
3914#[derive(Clone, PartialEq, ::prost::Message)]
3915 pub struct Update {
3916 #[prost(string, tag="1")]
3917 pub track_sid: ::prost::alloc::string::String,
3918 #[prost(bool, tag="2")]
3919 pub subscribe: bool,
3920 #[prost(message, optional, tag="3")]
3923 pub options: ::core::option::Option<super::DataTrackSubscriptionOptions>,
3924 }
3925}
3926#[allow(clippy::derive_partial_eq_without_eq)]
3927#[derive(Clone, PartialEq, ::prost::Message)]
3928pub struct UpdateTrackSettings {
3929 #[prost(string, repeated, tag="1")]
3930 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3931 #[prost(bool, tag="3")]
3933 pub disabled: bool,
3934 #[prost(enumeration="VideoQuality", tag="4")]
3936 pub quality: i32,
3937 #[prost(uint32, tag="5")]
3939 pub width: u32,
3940 #[prost(uint32, tag="6")]
3942 pub height: u32,
3943 #[prost(uint32, tag="7")]
3944 pub fps: u32,
3945 #[prost(uint32, tag="8")]
3953 pub priority: u32,
3954}
3955#[allow(clippy::derive_partial_eq_without_eq)]
3956#[derive(Clone, PartialEq, ::prost::Message)]
3957pub struct UpdateLocalAudioTrack {
3958 #[prost(string, tag="1")]
3959 pub track_sid: ::prost::alloc::string::String,
3960 #[prost(enumeration="AudioTrackFeature", repeated, tag="2")]
3961 pub features: ::prost::alloc::vec::Vec<i32>,
3962}
3963#[allow(clippy::derive_partial_eq_without_eq)]
3964#[derive(Clone, PartialEq, ::prost::Message)]
3965pub struct UpdateLocalVideoTrack {
3966 #[prost(string, tag="1")]
3967 pub track_sid: ::prost::alloc::string::String,
3968 #[prost(uint32, tag="2")]
3969 pub width: u32,
3970 #[prost(uint32, tag="3")]
3971 pub height: u32,
3972}
3973#[allow(clippy::derive_partial_eq_without_eq)]
3974#[derive(Clone, PartialEq, ::prost::Message)]
3975pub struct LeaveRequest {
3976 #[prost(bool, tag="1")]
3980 pub can_reconnect: bool,
3981 #[prost(enumeration="DisconnectReason", tag="2")]
3982 pub reason: i32,
3983 #[prost(enumeration="leave_request::Action", tag="3")]
3984 pub action: i32,
3985 #[prost(message, optional, tag="4")]
3986 pub regions: ::core::option::Option<RegionSettings>,
3987}
3988pub mod leave_request {
3990 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3992 #[repr(i32)]
3993 pub enum Action {
3994 Disconnect = 0,
3996 Resume = 1,
3998 Reconnect = 2,
4000 }
4001 impl Action {
4002 pub fn as_str_name(&self) -> &'static str {
4007 match self {
4008 Action::Disconnect => "DISCONNECT",
4009 Action::Resume => "RESUME",
4010 Action::Reconnect => "RECONNECT",
4011 }
4012 }
4013 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4015 match value {
4016 "DISCONNECT" => Some(Self::Disconnect),
4017 "RESUME" => Some(Self::Resume),
4018 "RECONNECT" => Some(Self::Reconnect),
4019 _ => None,
4020 }
4021 }
4022 }
4023}
4024#[allow(clippy::derive_partial_eq_without_eq)]
4026#[derive(Clone, PartialEq, ::prost::Message)]
4027pub struct UpdateVideoLayers {
4028 #[prost(string, tag="1")]
4029 pub track_sid: ::prost::alloc::string::String,
4030 #[prost(message, repeated, tag="2")]
4031 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
4032}
4033#[allow(clippy::derive_partial_eq_without_eq)]
4034#[derive(Clone, PartialEq, ::prost::Message)]
4035pub struct UpdateParticipantMetadata {
4036 #[prost(string, tag="1")]
4037 pub metadata: ::prost::alloc::string::String,
4038 #[prost(string, tag="2")]
4039 pub name: ::prost::alloc::string::String,
4040 #[prost(map="string, string", tag="3")]
4043 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4044 #[prost(uint32, tag="4")]
4045 pub request_id: u32,
4046}
4047#[allow(clippy::derive_partial_eq_without_eq)]
4048#[derive(Clone, PartialEq, ::prost::Message)]
4049pub struct IceServer {
4050 #[prost(string, repeated, tag="1")]
4051 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4052 #[prost(string, tag="2")]
4053 pub username: ::prost::alloc::string::String,
4054 #[prost(string, tag="3")]
4055 pub credential: ::prost::alloc::string::String,
4056}
4057#[allow(clippy::derive_partial_eq_without_eq)]
4058#[derive(Clone, PartialEq, ::prost::Message)]
4059pub struct SpeakersChanged {
4060 #[prost(message, repeated, tag="1")]
4061 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
4062}
4063#[allow(clippy::derive_partial_eq_without_eq)]
4064#[derive(Clone, PartialEq, ::prost::Message)]
4065pub struct RoomUpdate {
4066 #[prost(message, optional, tag="1")]
4067 pub room: ::core::option::Option<Room>,
4068}
4069#[allow(clippy::derive_partial_eq_without_eq)]
4070#[derive(Clone, PartialEq, ::prost::Message)]
4071pub struct ConnectionQualityInfo {
4072 #[prost(string, tag="1")]
4073 pub participant_sid: ::prost::alloc::string::String,
4074 #[prost(enumeration="ConnectionQuality", tag="2")]
4075 pub quality: i32,
4076 #[prost(float, tag="3")]
4077 pub score: f32,
4078}
4079#[allow(clippy::derive_partial_eq_without_eq)]
4080#[derive(Clone, PartialEq, ::prost::Message)]
4081pub struct ConnectionQualityUpdate {
4082 #[prost(message, repeated, tag="1")]
4083 pub updates: ::prost::alloc::vec::Vec<ConnectionQualityInfo>,
4084}
4085#[allow(clippy::derive_partial_eq_without_eq)]
4086#[derive(Clone, PartialEq, ::prost::Message)]
4087pub struct StreamStateInfo {
4088 #[prost(string, tag="1")]
4089 pub participant_sid: ::prost::alloc::string::String,
4090 #[prost(string, tag="2")]
4091 pub track_sid: ::prost::alloc::string::String,
4092 #[prost(enumeration="StreamState", tag="3")]
4093 pub state: i32,
4094}
4095#[allow(clippy::derive_partial_eq_without_eq)]
4096#[derive(Clone, PartialEq, ::prost::Message)]
4097pub struct StreamStateUpdate {
4098 #[prost(message, repeated, tag="1")]
4099 pub stream_states: ::prost::alloc::vec::Vec<StreamStateInfo>,
4100}
4101#[allow(clippy::derive_partial_eq_without_eq)]
4102#[derive(Clone, PartialEq, ::prost::Message)]
4103pub struct SubscribedQuality {
4104 #[prost(enumeration="VideoQuality", tag="1")]
4105 pub quality: i32,
4106 #[prost(bool, tag="2")]
4107 pub enabled: bool,
4108}
4109#[allow(clippy::derive_partial_eq_without_eq)]
4110#[derive(Clone, PartialEq, ::prost::Message)]
4111pub struct SubscribedCodec {
4112 #[prost(string, tag="1")]
4113 pub codec: ::prost::alloc::string::String,
4114 #[prost(message, repeated, tag="2")]
4115 pub qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
4116}
4117#[allow(clippy::derive_partial_eq_without_eq)]
4118#[derive(Clone, PartialEq, ::prost::Message)]
4119pub struct SubscribedQualityUpdate {
4120 #[prost(string, tag="1")]
4121 pub track_sid: ::prost::alloc::string::String,
4122 #[deprecated]
4123 #[prost(message, repeated, tag="2")]
4124 pub subscribed_qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
4125 #[prost(message, repeated, tag="3")]
4126 pub subscribed_codecs: ::prost::alloc::vec::Vec<SubscribedCodec>,
4127}
4128#[allow(clippy::derive_partial_eq_without_eq)]
4129#[derive(Clone, PartialEq, ::prost::Message)]
4130pub struct SubscribedAudioCodecUpdate {
4131 #[prost(string, tag="1")]
4132 pub track_sid: ::prost::alloc::string::String,
4133 #[prost(message, repeated, tag="2")]
4134 pub subscribed_audio_codecs: ::prost::alloc::vec::Vec<SubscribedAudioCodec>,
4135}
4136#[allow(clippy::derive_partial_eq_without_eq)]
4137#[derive(Clone, PartialEq, ::prost::Message)]
4138pub struct TrackPermission {
4139 #[prost(string, tag="1")]
4141 pub participant_sid: ::prost::alloc::string::String,
4142 #[prost(bool, tag="2")]
4143 pub all_tracks: bool,
4144 #[prost(string, repeated, tag="3")]
4145 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4146 #[prost(string, tag="4")]
4147 pub participant_identity: ::prost::alloc::string::String,
4148}
4149#[allow(clippy::derive_partial_eq_without_eq)]
4150#[derive(Clone, PartialEq, ::prost::Message)]
4151pub struct SubscriptionPermission {
4152 #[prost(bool, tag="1")]
4153 pub all_participants: bool,
4154 #[prost(message, repeated, tag="2")]
4155 pub track_permissions: ::prost::alloc::vec::Vec<TrackPermission>,
4156}
4157#[allow(clippy::derive_partial_eq_without_eq)]
4158#[derive(Clone, PartialEq, ::prost::Message)]
4159pub struct SubscriptionPermissionUpdate {
4160 #[prost(string, tag="1")]
4161 pub participant_sid: ::prost::alloc::string::String,
4162 #[prost(string, tag="2")]
4163 pub track_sid: ::prost::alloc::string::String,
4164 #[prost(bool, tag="3")]
4165 pub allowed: bool,
4166}
4167#[allow(clippy::derive_partial_eq_without_eq)]
4168#[derive(Clone, PartialEq, ::prost::Message)]
4169pub struct RoomMovedResponse {
4170 #[prost(message, optional, tag="1")]
4172 pub room: ::core::option::Option<Room>,
4173 #[prost(string, tag="2")]
4175 pub token: ::prost::alloc::string::String,
4176 #[prost(message, optional, tag="3")]
4177 pub participant: ::core::option::Option<ParticipantInfo>,
4178 #[prost(message, repeated, tag="4")]
4179 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4180}
4181#[allow(clippy::derive_partial_eq_without_eq)]
4182#[derive(Clone, PartialEq, ::prost::Message)]
4183pub struct SyncState {
4184 #[prost(message, optional, tag="1")]
4188 pub answer: ::core::option::Option<SessionDescription>,
4189 #[prost(message, optional, tag="2")]
4190 pub subscription: ::core::option::Option<UpdateSubscription>,
4191 #[prost(message, repeated, tag="3")]
4192 pub publish_tracks: ::prost::alloc::vec::Vec<TrackPublishedResponse>,
4193 #[prost(message, repeated, tag="4")]
4194 pub data_channels: ::prost::alloc::vec::Vec<DataChannelInfo>,
4195 #[prost(message, optional, tag="5")]
4199 pub offer: ::core::option::Option<SessionDescription>,
4200 #[prost(string, repeated, tag="6")]
4201 pub track_sids_disabled: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4202 #[prost(message, repeated, tag="7")]
4203 pub datachannel_receive_states: ::prost::alloc::vec::Vec<DataChannelReceiveState>,
4204 #[prost(message, repeated, tag="8")]
4205 pub publish_data_tracks: ::prost::alloc::vec::Vec<PublishDataTrackResponse>,
4206}
4207#[allow(clippy::derive_partial_eq_without_eq)]
4208#[derive(Clone, PartialEq, ::prost::Message)]
4209pub struct DataChannelReceiveState {
4210 #[prost(string, tag="1")]
4211 pub publisher_sid: ::prost::alloc::string::String,
4212 #[prost(uint32, tag="2")]
4213 pub last_seq: u32,
4214}
4215#[allow(clippy::derive_partial_eq_without_eq)]
4216#[derive(Clone, PartialEq, ::prost::Message)]
4217pub struct DataChannelInfo {
4218 #[prost(string, tag="1")]
4219 pub label: ::prost::alloc::string::String,
4220 #[prost(uint32, tag="2")]
4221 pub id: u32,
4222 #[prost(enumeration="SignalTarget", tag="3")]
4223 pub target: i32,
4224}
4225#[allow(clippy::derive_partial_eq_without_eq)]
4226#[derive(Clone, PartialEq, ::prost::Message)]
4227pub struct SimulateScenario {
4228 #[prost(oneof="simulate_scenario::Scenario", tags="1, 2, 3, 4, 5, 6, 7, 8, 9")]
4229 pub scenario: ::core::option::Option<simulate_scenario::Scenario>,
4230}
4231pub mod simulate_scenario {
4233 #[allow(clippy::derive_partial_eq_without_eq)]
4234#[derive(Clone, PartialEq, ::prost::Oneof)]
4235 pub enum Scenario {
4236 #[prost(int32, tag="1")]
4238 SpeakerUpdate(i32),
4239 #[prost(bool, tag="2")]
4241 NodeFailure(bool),
4242 #[prost(bool, tag="3")]
4244 Migration(bool),
4245 #[prost(bool, tag="4")]
4247 ServerLeave(bool),
4248 #[prost(enumeration="super::CandidateProtocol", tag="5")]
4250 SwitchCandidateProtocol(i32),
4251 #[prost(int64, tag="6")]
4254 SubscriberBandwidth(i64),
4255 #[prost(bool, tag="7")]
4257 DisconnectSignalOnResume(bool),
4258 #[prost(bool, tag="8")]
4260 DisconnectSignalOnResumeNoMessages(bool),
4261 #[prost(bool, tag="9")]
4263 LeaveRequestFullReconnect(bool),
4264 }
4265}
4266#[allow(clippy::derive_partial_eq_without_eq)]
4267#[derive(Clone, PartialEq, ::prost::Message)]
4268pub struct Ping {
4269 #[prost(int64, tag="1")]
4270 pub timestamp: i64,
4271 #[prost(int64, tag="2")]
4273 pub rtt: i64,
4274}
4275#[allow(clippy::derive_partial_eq_without_eq)]
4276#[derive(Clone, PartialEq, ::prost::Message)]
4277pub struct Pong {
4278 #[prost(int64, tag="1")]
4280 pub last_ping_timestamp: i64,
4281 #[prost(int64, tag="2")]
4282 pub timestamp: i64,
4283}
4284#[allow(clippy::derive_partial_eq_without_eq)]
4285#[derive(Clone, PartialEq, ::prost::Message)]
4286pub struct RegionSettings {
4287 #[prost(message, repeated, tag="1")]
4288 pub regions: ::prost::alloc::vec::Vec<RegionInfo>,
4289}
4290#[allow(clippy::derive_partial_eq_without_eq)]
4291#[derive(Clone, PartialEq, ::prost::Message)]
4292pub struct RegionInfo {
4293 #[prost(string, tag="1")]
4294 pub region: ::prost::alloc::string::String,
4295 #[prost(string, tag="2")]
4296 pub url: ::prost::alloc::string::String,
4297 #[prost(int64, tag="3")]
4298 pub distance: i64,
4299}
4300#[allow(clippy::derive_partial_eq_without_eq)]
4301#[derive(Clone, PartialEq, ::prost::Message)]
4302pub struct SubscriptionResponse {
4303 #[prost(string, tag="1")]
4304 pub track_sid: ::prost::alloc::string::String,
4305 #[prost(enumeration="SubscriptionError", tag="2")]
4306 pub err: i32,
4307}
4308#[allow(clippy::derive_partial_eq_without_eq)]
4309#[derive(Clone, PartialEq, ::prost::Message)]
4310pub struct RequestResponse {
4311 #[prost(uint32, tag="1")]
4312 pub request_id: u32,
4313 #[prost(enumeration="request_response::Reason", tag="2")]
4314 pub reason: i32,
4315 #[prost(string, tag="3")]
4316 pub message: ::prost::alloc::string::String,
4317 #[prost(oneof="request_response::Request", tags="4, 5, 6, 7, 8, 9, 10, 11")]
4318 pub request: ::core::option::Option<request_response::Request>,
4319}
4320pub mod request_response {
4322 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4323 #[repr(i32)]
4324 pub enum Reason {
4325 Ok = 0,
4326 NotFound = 1,
4327 NotAllowed = 2,
4328 LimitExceeded = 3,
4329 Queued = 4,
4330 UnsupportedType = 5,
4331 UnclassifiedError = 6,
4332 InvalidHandle = 7,
4333 InvalidName = 8,
4334 DuplicateHandle = 9,
4335 DuplicateName = 10,
4336 }
4337 impl Reason {
4338 pub fn as_str_name(&self) -> &'static str {
4343 match self {
4344 Reason::Ok => "OK",
4345 Reason::NotFound => "NOT_FOUND",
4346 Reason::NotAllowed => "NOT_ALLOWED",
4347 Reason::LimitExceeded => "LIMIT_EXCEEDED",
4348 Reason::Queued => "QUEUED",
4349 Reason::UnsupportedType => "UNSUPPORTED_TYPE",
4350 Reason::UnclassifiedError => "UNCLASSIFIED_ERROR",
4351 Reason::InvalidHandle => "INVALID_HANDLE",
4352 Reason::InvalidName => "INVALID_NAME",
4353 Reason::DuplicateHandle => "DUPLICATE_HANDLE",
4354 Reason::DuplicateName => "DUPLICATE_NAME",
4355 }
4356 }
4357 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4359 match value {
4360 "OK" => Some(Self::Ok),
4361 "NOT_FOUND" => Some(Self::NotFound),
4362 "NOT_ALLOWED" => Some(Self::NotAllowed),
4363 "LIMIT_EXCEEDED" => Some(Self::LimitExceeded),
4364 "QUEUED" => Some(Self::Queued),
4365 "UNSUPPORTED_TYPE" => Some(Self::UnsupportedType),
4366 "UNCLASSIFIED_ERROR" => Some(Self::UnclassifiedError),
4367 "INVALID_HANDLE" => Some(Self::InvalidHandle),
4368 "INVALID_NAME" => Some(Self::InvalidName),
4369 "DUPLICATE_HANDLE" => Some(Self::DuplicateHandle),
4370 "DUPLICATE_NAME" => Some(Self::DuplicateName),
4371 _ => None,
4372 }
4373 }
4374 }
4375 #[allow(clippy::derive_partial_eq_without_eq)]
4376#[derive(Clone, PartialEq, ::prost::Oneof)]
4377 pub enum Request {
4378 #[prost(message, tag="4")]
4379 Trickle(super::TrickleRequest),
4380 #[prost(message, tag="5")]
4381 AddTrack(super::AddTrackRequest),
4382 #[prost(message, tag="6")]
4383 Mute(super::MuteTrackRequest),
4384 #[prost(message, tag="7")]
4385 UpdateMetadata(super::UpdateParticipantMetadata),
4386 #[prost(message, tag="8")]
4387 UpdateAudioTrack(super::UpdateLocalAudioTrack),
4388 #[prost(message, tag="9")]
4389 UpdateVideoTrack(super::UpdateLocalVideoTrack),
4390 #[prost(message, tag="10")]
4391 PublishDataTrack(super::PublishDataTrackRequest),
4392 #[prost(message, tag="11")]
4393 UnpublishDataTrack(super::UnpublishDataTrackRequest),
4394 }
4395}
4396#[allow(clippy::derive_partial_eq_without_eq)]
4397#[derive(Clone, PartialEq, ::prost::Message)]
4398pub struct TrackSubscribed {
4399 #[prost(string, tag="1")]
4400 pub track_sid: ::prost::alloc::string::String,
4401}
4402#[allow(clippy::derive_partial_eq_without_eq)]
4403#[derive(Clone, PartialEq, ::prost::Message)]
4404pub struct ConnectionSettings {
4405 #[prost(bool, tag="1")]
4406 pub auto_subscribe: bool,
4407 #[prost(bool, tag="2")]
4408 pub adaptive_stream: bool,
4409 #[prost(bool, optional, tag="3")]
4410 pub subscriber_allow_pause: ::core::option::Option<bool>,
4411 #[prost(bool, tag="4")]
4412 pub disable_ice_lite: bool,
4413 #[prost(bool, optional, tag="5")]
4414 pub auto_subscribe_data_track: ::core::option::Option<bool>,
4415}
4416#[allow(clippy::derive_partial_eq_without_eq)]
4417#[derive(Clone, PartialEq, ::prost::Message)]
4418pub struct JoinRequest {
4419 #[prost(message, optional, tag="1")]
4420 pub client_info: ::core::option::Option<ClientInfo>,
4421 #[prost(message, optional, tag="2")]
4422 pub connection_settings: ::core::option::Option<ConnectionSettings>,
4423 #[prost(string, tag="3")]
4425 pub metadata: ::prost::alloc::string::String,
4426 #[prost(map="string, string", tag="4")]
4430 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4431 #[prost(message, repeated, tag="5")]
4432 pub add_track_requests: ::prost::alloc::vec::Vec<AddTrackRequest>,
4433 #[prost(message, optional, tag="6")]
4434 pub publisher_offer: ::core::option::Option<SessionDescription>,
4435 #[prost(bool, tag="7")]
4436 pub reconnect: bool,
4437 #[prost(enumeration="ReconnectReason", tag="8")]
4438 pub reconnect_reason: i32,
4439 #[prost(string, tag="9")]
4440 pub participant_sid: ::prost::alloc::string::String,
4441 #[prost(message, optional, tag="10")]
4442 pub sync_state: ::core::option::Option<SyncState>,
4443}
4444#[allow(clippy::derive_partial_eq_without_eq)]
4445#[derive(Clone, PartialEq, ::prost::Message)]
4446pub struct WrappedJoinRequest {
4447 #[prost(enumeration="wrapped_join_request::Compression", tag="1")]
4448 pub compression: i32,
4449 #[prost(bytes="vec", tag="2")]
4451 pub join_request: ::prost::alloc::vec::Vec<u8>,
4452}
4453pub mod wrapped_join_request {
4455 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4456 #[repr(i32)]
4457 pub enum Compression {
4458 None = 0,
4459 Gzip = 1,
4460 }
4461 impl Compression {
4462 pub fn as_str_name(&self) -> &'static str {
4467 match self {
4468 Compression::None => "NONE",
4469 Compression::Gzip => "GZIP",
4470 }
4471 }
4472 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4474 match value {
4475 "NONE" => Some(Self::None),
4476 "GZIP" => Some(Self::Gzip),
4477 _ => None,
4478 }
4479 }
4480 }
4481}
4482#[allow(clippy::derive_partial_eq_without_eq)]
4483#[derive(Clone, PartialEq, ::prost::Message)]
4484pub struct MediaSectionsRequirement {
4485 #[prost(uint32, tag="1")]
4486 pub num_audios: u32,
4487 #[prost(uint32, tag="2")]
4488 pub num_videos: u32,
4489}
4490#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4491#[repr(i32)]
4492pub enum SignalTarget {
4493 Publisher = 0,
4494 Subscriber = 1,
4495}
4496impl SignalTarget {
4497 pub fn as_str_name(&self) -> &'static str {
4502 match self {
4503 SignalTarget::Publisher => "PUBLISHER",
4504 SignalTarget::Subscriber => "SUBSCRIBER",
4505 }
4506 }
4507 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4509 match value {
4510 "PUBLISHER" => Some(Self::Publisher),
4511 "SUBSCRIBER" => Some(Self::Subscriber),
4512 _ => None,
4513 }
4514 }
4515}
4516#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4517#[repr(i32)]
4518pub enum StreamState {
4519 Active = 0,
4520 Paused = 1,
4521}
4522impl StreamState {
4523 pub fn as_str_name(&self) -> &'static str {
4528 match self {
4529 StreamState::Active => "ACTIVE",
4530 StreamState::Paused => "PAUSED",
4531 }
4532 }
4533 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4535 match value {
4536 "ACTIVE" => Some(Self::Active),
4537 "PAUSED" => Some(Self::Paused),
4538 _ => None,
4539 }
4540 }
4541}
4542#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4543#[repr(i32)]
4544pub enum CandidateProtocol {
4545 Udp = 0,
4546 Tcp = 1,
4547 Tls = 2,
4548}
4549impl CandidateProtocol {
4550 pub fn as_str_name(&self) -> &'static str {
4555 match self {
4556 CandidateProtocol::Udp => "UDP",
4557 CandidateProtocol::Tcp => "TCP",
4558 CandidateProtocol::Tls => "TLS",
4559 }
4560 }
4561 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4563 match value {
4564 "UDP" => Some(Self::Udp),
4565 "TCP" => Some(Self::Tcp),
4566 "TLS" => Some(Self::Tls),
4567 _ => None,
4568 }
4569 }
4570}
4571#[allow(clippy::derive_partial_eq_without_eq)]
4572#[derive(Clone, PartialEq, ::prost::Message)]
4573pub struct Job {
4574 #[prost(string, tag="1")]
4575 pub id: ::prost::alloc::string::String,
4576 #[prost(string, tag="9")]
4577 pub dispatch_id: ::prost::alloc::string::String,
4578 #[prost(enumeration="JobType", tag="2")]
4579 pub r#type: i32,
4580 #[prost(message, optional, tag="3")]
4581 pub room: ::core::option::Option<Room>,
4582 #[prost(message, optional, tag="4")]
4583 pub participant: ::core::option::Option<ParticipantInfo>,
4584 #[deprecated]
4585 #[prost(string, tag="5")]
4586 pub namespace: ::prost::alloc::string::String,
4587 #[prost(string, tag="6")]
4588 pub metadata: ::prost::alloc::string::String,
4589 #[prost(string, tag="7")]
4590 pub agent_name: ::prost::alloc::string::String,
4591 #[prost(message, optional, tag="8")]
4592 pub state: ::core::option::Option<JobState>,
4593 #[prost(bool, tag="10")]
4594 pub enable_recording: bool,
4595 #[prost(string, tag="11")]
4596 pub deployment: ::prost::alloc::string::String,
4597}
4598#[allow(clippy::derive_partial_eq_without_eq)]
4599#[derive(Clone, PartialEq, ::prost::Message)]
4600pub struct JobState {
4601 #[prost(enumeration="JobStatus", tag="1")]
4602 pub status: i32,
4603 #[prost(string, tag="2")]
4604 pub error: ::prost::alloc::string::String,
4605 #[prost(int64, tag="3")]
4606 pub started_at: i64,
4607 #[prost(int64, tag="4")]
4608 pub ended_at: i64,
4609 #[prost(int64, tag="5")]
4610 pub updated_at: i64,
4611 #[prost(string, tag="6")]
4612 pub participant_identity: ::prost::alloc::string::String,
4613 #[prost(string, tag="7")]
4614 pub worker_id: ::prost::alloc::string::String,
4615 #[prost(string, tag="8")]
4616 pub agent_id: ::prost::alloc::string::String,
4617}
4618#[allow(clippy::derive_partial_eq_without_eq)]
4620#[derive(Clone, PartialEq, ::prost::Message)]
4621pub struct WorkerMessage {
4622 #[prost(oneof="worker_message::Message", tags="1, 2, 3, 4, 5, 6, 7")]
4623 pub message: ::core::option::Option<worker_message::Message>,
4624}
4625pub mod worker_message {
4627 #[allow(clippy::derive_partial_eq_without_eq)]
4628#[derive(Clone, PartialEq, ::prost::Oneof)]
4629 pub enum Message {
4630 #[prost(message, tag="1")]
4632 Register(super::RegisterWorkerRequest),
4633 #[prost(message, tag="2")]
4635 Availability(super::AvailabilityResponse),
4636 #[prost(message, tag="3")]
4638 UpdateWorker(super::UpdateWorkerStatus),
4639 #[prost(message, tag="4")]
4641 UpdateJob(super::UpdateJobStatus),
4642 #[prost(message, tag="5")]
4643 Ping(super::WorkerPing),
4644 #[prost(message, tag="6")]
4645 SimulateJob(super::SimulateJobRequest),
4646 #[prost(message, tag="7")]
4647 MigrateJob(super::MigrateJobRequest),
4648 }
4649}
4650#[allow(clippy::derive_partial_eq_without_eq)]
4652#[derive(Clone, PartialEq, ::prost::Message)]
4653pub struct ServerMessage {
4654 #[prost(oneof="server_message::Message", tags="1, 2, 3, 5, 4")]
4655 pub message: ::core::option::Option<server_message::Message>,
4656}
4657pub mod server_message {
4659 #[allow(clippy::derive_partial_eq_without_eq)]
4660#[derive(Clone, PartialEq, ::prost::Oneof)]
4661 pub enum Message {
4662 #[prost(message, tag="1")]
4664 Register(super::RegisterWorkerResponse),
4665 #[prost(message, tag="2")]
4667 Availability(super::AvailabilityRequest),
4668 #[prost(message, tag="3")]
4669 Assignment(super::JobAssignment),
4670 #[prost(message, tag="5")]
4671 Termination(super::JobTermination),
4672 #[prost(message, tag="4")]
4673 Pong(super::WorkerPong),
4674 }
4675}
4676#[allow(clippy::derive_partial_eq_without_eq)]
4677#[derive(Clone, PartialEq, ::prost::Message)]
4678pub struct SimulateJobRequest {
4679 #[prost(enumeration="JobType", tag="1")]
4680 pub r#type: i32,
4681 #[prost(message, optional, tag="2")]
4682 pub room: ::core::option::Option<Room>,
4683 #[prost(message, optional, tag="3")]
4684 pub participant: ::core::option::Option<ParticipantInfo>,
4685}
4686#[allow(clippy::derive_partial_eq_without_eq)]
4687#[derive(Clone, PartialEq, ::prost::Message)]
4688pub struct WorkerPing {
4689 #[prost(int64, tag="1")]
4690 pub timestamp: i64,
4691}
4692#[allow(clippy::derive_partial_eq_without_eq)]
4693#[derive(Clone, PartialEq, ::prost::Message)]
4694pub struct WorkerPong {
4695 #[prost(int64, tag="1")]
4696 pub last_timestamp: i64,
4697 #[prost(int64, tag="2")]
4698 pub timestamp: i64,
4699}
4700#[allow(clippy::derive_partial_eq_without_eq)]
4701#[derive(Clone, PartialEq, ::prost::Message)]
4702pub struct RegisterWorkerRequest {
4703 #[prost(enumeration="JobType", tag="1")]
4704 pub r#type: i32,
4705 #[prost(string, tag="8")]
4706 pub agent_name: ::prost::alloc::string::String,
4707 #[prost(string, tag="3")]
4709 pub version: ::prost::alloc::string::String,
4710 #[prost(uint32, tag="5")]
4712 pub ping_interval: u32,
4713 #[prost(string, optional, tag="6")]
4714 pub namespace: ::core::option::Option<::prost::alloc::string::String>,
4715 #[prost(message, optional, tag="7")]
4716 pub allowed_permissions: ::core::option::Option<ParticipantPermission>,
4717 #[prost(string, tag="9")]
4718 pub deployment: ::prost::alloc::string::String,
4719}
4720#[allow(clippy::derive_partial_eq_without_eq)]
4721#[derive(Clone, PartialEq, ::prost::Message)]
4722pub struct RegisterWorkerResponse {
4723 #[prost(string, tag="1")]
4724 pub worker_id: ::prost::alloc::string::String,
4725 #[prost(message, optional, tag="3")]
4726 pub server_info: ::core::option::Option<ServerInfo>,
4727}
4728#[allow(clippy::derive_partial_eq_without_eq)]
4729#[derive(Clone, PartialEq, ::prost::Message)]
4730pub struct MigrateJobRequest {
4731 #[prost(string, repeated, tag="2")]
4733 pub job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4734}
4735#[allow(clippy::derive_partial_eq_without_eq)]
4736#[derive(Clone, PartialEq, ::prost::Message)]
4737pub struct AvailabilityRequest {
4738 #[prost(message, optional, tag="1")]
4739 pub job: ::core::option::Option<Job>,
4740 #[prost(bool, tag="2")]
4743 pub resuming: bool,
4744}
4745#[allow(clippy::derive_partial_eq_without_eq)]
4746#[derive(Clone, PartialEq, ::prost::Message)]
4747pub struct AvailabilityResponse {
4748 #[prost(string, tag="1")]
4749 pub job_id: ::prost::alloc::string::String,
4750 #[prost(bool, tag="2")]
4751 pub available: bool,
4752 #[prost(bool, tag="3")]
4753 pub supports_resume: bool,
4754 #[prost(bool, tag="8")]
4755 pub terminate: bool,
4756 #[prost(string, tag="4")]
4757 pub participant_name: ::prost::alloc::string::String,
4758 #[prost(string, tag="5")]
4759 pub participant_identity: ::prost::alloc::string::String,
4760 #[prost(string, tag="6")]
4761 pub participant_metadata: ::prost::alloc::string::String,
4762 #[prost(map="string, string", tag="7")]
4764 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4765}
4766#[allow(clippy::derive_partial_eq_without_eq)]
4767#[derive(Clone, PartialEq, ::prost::Message)]
4768pub struct UpdateJobStatus {
4769 #[prost(string, tag="1")]
4770 pub job_id: ::prost::alloc::string::String,
4771 #[prost(enumeration="JobStatus", tag="2")]
4773 pub status: i32,
4774 #[prost(string, tag="3")]
4776 pub error: ::prost::alloc::string::String,
4777}
4778#[allow(clippy::derive_partial_eq_without_eq)]
4779#[derive(Clone, PartialEq, ::prost::Message)]
4780pub struct UpdateWorkerStatus {
4781 #[prost(enumeration="WorkerStatus", optional, tag="1")]
4782 pub status: ::core::option::Option<i32>,
4783 #[prost(float, tag="3")]
4785 pub load: f32,
4786 #[prost(uint32, tag="4")]
4787 pub job_count: u32,
4788}
4789#[allow(clippy::derive_partial_eq_without_eq)]
4790#[derive(Clone, PartialEq, ::prost::Message)]
4791pub struct JobAssignment {
4792 #[prost(message, optional, tag="1")]
4793 pub job: ::core::option::Option<Job>,
4794 #[prost(string, optional, tag="2")]
4795 pub url: ::core::option::Option<::prost::alloc::string::String>,
4796 #[prost(string, tag="3")]
4797 pub token: ::prost::alloc::string::String,
4798}
4799#[allow(clippy::derive_partial_eq_without_eq)]
4800#[derive(Clone, PartialEq, ::prost::Message)]
4801pub struct JobTermination {
4802 #[prost(string, tag="1")]
4803 pub job_id: ::prost::alloc::string::String,
4804}
4805#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4806#[repr(i32)]
4807pub enum JobType {
4808 JtRoom = 0,
4809 JtPublisher = 1,
4810 JtParticipant = 2,
4811}
4812impl JobType {
4813 pub fn as_str_name(&self) -> &'static str {
4818 match self {
4819 JobType::JtRoom => "JT_ROOM",
4820 JobType::JtPublisher => "JT_PUBLISHER",
4821 JobType::JtParticipant => "JT_PARTICIPANT",
4822 }
4823 }
4824 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4826 match value {
4827 "JT_ROOM" => Some(Self::JtRoom),
4828 "JT_PUBLISHER" => Some(Self::JtPublisher),
4829 "JT_PARTICIPANT" => Some(Self::JtParticipant),
4830 _ => None,
4831 }
4832 }
4833}
4834#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4835#[repr(i32)]
4836pub enum WorkerStatus {
4837 WsAvailable = 0,
4838 WsFull = 1,
4839}
4840impl WorkerStatus {
4841 pub fn as_str_name(&self) -> &'static str {
4846 match self {
4847 WorkerStatus::WsAvailable => "WS_AVAILABLE",
4848 WorkerStatus::WsFull => "WS_FULL",
4849 }
4850 }
4851 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4853 match value {
4854 "WS_AVAILABLE" => Some(Self::WsAvailable),
4855 "WS_FULL" => Some(Self::WsFull),
4856 _ => None,
4857 }
4858 }
4859}
4860#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4861#[repr(i32)]
4862pub enum JobStatus {
4863 JsPending = 0,
4864 JsRunning = 1,
4865 JsSuccess = 2,
4866 JsFailed = 3,
4867}
4868impl JobStatus {
4869 pub fn as_str_name(&self) -> &'static str {
4874 match self {
4875 JobStatus::JsPending => "JS_PENDING",
4876 JobStatus::JsRunning => "JS_RUNNING",
4877 JobStatus::JsSuccess => "JS_SUCCESS",
4878 JobStatus::JsFailed => "JS_FAILED",
4879 }
4880 }
4881 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4883 match value {
4884 "JS_PENDING" => Some(Self::JsPending),
4885 "JS_RUNNING" => Some(Self::JsRunning),
4886 "JS_SUCCESS" => Some(Self::JsSuccess),
4887 "JS_FAILED" => Some(Self::JsFailed),
4888 _ => None,
4889 }
4890 }
4891}
4892#[allow(clippy::derive_partial_eq_without_eq)]
4893#[derive(Clone, PartialEq, ::prost::Message)]
4894pub struct CreateAgentDispatchRequest {
4895 #[prost(string, tag="1")]
4896 pub agent_name: ::prost::alloc::string::String,
4897 #[prost(string, tag="2")]
4898 pub room: ::prost::alloc::string::String,
4899 #[prost(string, tag="3")]
4900 pub metadata: ::prost::alloc::string::String,
4901 #[prost(enumeration="JobRestartPolicy", tag="4")]
4903 pub restart_policy: i32,
4904 #[prost(string, tag="5")]
4905 pub deployment: ::prost::alloc::string::String,
4906}
4907#[allow(clippy::derive_partial_eq_without_eq)]
4908#[derive(Clone, PartialEq, ::prost::Message)]
4909pub struct RoomAgentDispatch {
4910 #[prost(string, tag="1")]
4911 pub agent_name: ::prost::alloc::string::String,
4912 #[prost(string, tag="2")]
4913 pub metadata: ::prost::alloc::string::String,
4914 #[prost(enumeration="JobRestartPolicy", tag="3")]
4916 pub restart_policy: i32,
4917 #[prost(string, tag="4")]
4918 pub deployment: ::prost::alloc::string::String,
4919}
4920#[allow(clippy::derive_partial_eq_without_eq)]
4921#[derive(Clone, PartialEq, ::prost::Message)]
4922pub struct DeleteAgentDispatchRequest {
4923 #[prost(string, tag="1")]
4924 pub dispatch_id: ::prost::alloc::string::String,
4925 #[prost(string, tag="2")]
4926 pub room: ::prost::alloc::string::String,
4927}
4928#[allow(clippy::derive_partial_eq_without_eq)]
4929#[derive(Clone, PartialEq, ::prost::Message)]
4930pub struct ListAgentDispatchRequest {
4931 #[prost(string, tag="1")]
4933 pub dispatch_id: ::prost::alloc::string::String,
4934 #[prost(string, tag="2")]
4936 pub room: ::prost::alloc::string::String,
4937}
4938#[allow(clippy::derive_partial_eq_without_eq)]
4939#[derive(Clone, PartialEq, ::prost::Message)]
4940pub struct ListAgentDispatchResponse {
4941 #[prost(message, repeated, tag="1")]
4942 pub agent_dispatches: ::prost::alloc::vec::Vec<AgentDispatch>,
4943}
4944#[allow(clippy::derive_partial_eq_without_eq)]
4945#[derive(Clone, PartialEq, ::prost::Message)]
4946pub struct AgentDispatch {
4947 #[prost(string, tag="1")]
4948 pub id: ::prost::alloc::string::String,
4949 #[prost(string, tag="2")]
4950 pub agent_name: ::prost::alloc::string::String,
4951 #[prost(string, tag="3")]
4952 pub room: ::prost::alloc::string::String,
4953 #[prost(string, tag="4")]
4954 pub metadata: ::prost::alloc::string::String,
4955 #[prost(message, optional, tag="5")]
4956 pub state: ::core::option::Option<AgentDispatchState>,
4957 #[prost(enumeration="JobRestartPolicy", tag="6")]
4959 pub restart_policy: i32,
4960 #[prost(string, tag="7")]
4961 pub deployment: ::prost::alloc::string::String,
4962}
4963#[allow(clippy::derive_partial_eq_without_eq)]
4964#[derive(Clone, PartialEq, ::prost::Message)]
4965pub struct AgentDispatchState {
4966 #[prost(message, repeated, tag="1")]
4969 pub jobs: ::prost::alloc::vec::Vec<Job>,
4970 #[prost(int64, tag="2")]
4971 pub created_at: i64,
4972 #[prost(int64, tag="3")]
4973 pub deleted_at: i64,
4974}
4975#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4976#[repr(i32)]
4977pub enum JobRestartPolicy {
4978 JrpOnFailure = 0,
4980 JrpNever = 1,
4982}
4983impl JobRestartPolicy {
4984 pub fn as_str_name(&self) -> &'static str {
4989 match self {
4990 JobRestartPolicy::JrpOnFailure => "JRP_ON_FAILURE",
4991 JobRestartPolicy::JrpNever => "JRP_NEVER",
4992 }
4993 }
4994 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4996 match value {
4997 "JRP_ON_FAILURE" => Some(Self::JrpOnFailure),
4998 "JRP_NEVER" => Some(Self::JrpNever),
4999 _ => None,
5000 }
5001 }
5002}
5003#[allow(clippy::derive_partial_eq_without_eq)]
5004#[derive(Clone, PartialEq, ::prost::Message)]
5005pub struct CreateRoomRequest {
5006 #[prost(string, tag="1")]
5008 pub name: ::prost::alloc::string::String,
5009 #[prost(string, tag="12")]
5011 pub room_preset: ::prost::alloc::string::String,
5012 #[prost(uint32, tag="2")]
5014 pub empty_timeout: u32,
5015 #[prost(uint32, tag="10")]
5017 pub departure_timeout: u32,
5018 #[prost(uint32, tag="3")]
5020 pub max_participants: u32,
5021 #[prost(string, tag="4")]
5023 pub node_id: ::prost::alloc::string::String,
5024 #[prost(string, tag="5")]
5026 pub metadata: ::prost::alloc::string::String,
5027 #[prost(map="string, string", tag="15")]
5029 pub tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5030 #[prost(message, optional, tag="6")]
5032 pub egress: ::core::option::Option<RoomEgress>,
5033 #[prost(uint32, tag="7")]
5035 pub min_playout_delay: u32,
5036 #[prost(uint32, tag="8")]
5037 pub max_playout_delay: u32,
5038 #[prost(bool, tag="9")]
5041 pub sync_streams: bool,
5042 #[prost(bool, tag="13")]
5044 pub replay_enabled: bool,
5045 #[prost(message, repeated, tag="14")]
5047 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5048}
5049#[allow(clippy::derive_partial_eq_without_eq)]
5050#[derive(Clone, PartialEq, ::prost::Message)]
5051pub struct RoomEgress {
5052 #[prost(message, optional, tag="1")]
5053 pub room: ::core::option::Option<RoomCompositeEgressRequest>,
5054 #[prost(message, optional, tag="3")]
5055 pub participant: ::core::option::Option<AutoParticipantEgress>,
5056 #[prost(message, optional, tag="2")]
5057 pub tracks: ::core::option::Option<AutoTrackEgress>,
5058}
5059#[allow(clippy::derive_partial_eq_without_eq)]
5060#[derive(Clone, PartialEq, ::prost::Message)]
5061pub struct RoomAgent {
5062 #[prost(message, repeated, tag="1")]
5063 pub dispatches: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5064}
5065#[allow(clippy::derive_partial_eq_without_eq)]
5066#[derive(Clone, PartialEq, ::prost::Message)]
5067pub struct ListRoomsRequest {
5068 #[prost(string, repeated, tag="1")]
5070 pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5071}
5072#[allow(clippy::derive_partial_eq_without_eq)]
5073#[derive(Clone, PartialEq, ::prost::Message)]
5074pub struct ListRoomsResponse {
5075 #[prost(message, repeated, tag="1")]
5076 pub rooms: ::prost::alloc::vec::Vec<Room>,
5077}
5078#[allow(clippy::derive_partial_eq_without_eq)]
5079#[derive(Clone, PartialEq, ::prost::Message)]
5080pub struct DeleteRoomRequest {
5081 #[prost(string, tag="1")]
5083 pub room: ::prost::alloc::string::String,
5084}
5085#[allow(clippy::derive_partial_eq_without_eq)]
5086#[derive(Clone, PartialEq, ::prost::Message)]
5087pub struct DeleteRoomResponse {
5088}
5089#[allow(clippy::derive_partial_eq_without_eq)]
5090#[derive(Clone, PartialEq, ::prost::Message)]
5091pub struct ListParticipantsRequest {
5092 #[prost(string, tag="1")]
5094 pub room: ::prost::alloc::string::String,
5095}
5096#[allow(clippy::derive_partial_eq_without_eq)]
5097#[derive(Clone, PartialEq, ::prost::Message)]
5098pub struct ListParticipantsResponse {
5099 #[prost(message, repeated, tag="1")]
5100 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
5101}
5102#[allow(clippy::derive_partial_eq_without_eq)]
5103#[derive(Clone, PartialEq, ::prost::Message)]
5104pub struct RoomParticipantIdentity {
5105 #[prost(string, tag="1")]
5107 pub room: ::prost::alloc::string::String,
5108 #[prost(string, tag="2")]
5110 pub identity: ::prost::alloc::string::String,
5111 #[prost(int64, tag="3")]
5114 pub revoke_token_ts: i64,
5115}
5116#[allow(clippy::derive_partial_eq_without_eq)]
5117#[derive(Clone, PartialEq, ::prost::Message)]
5118pub struct RemoveParticipantResponse {
5119}
5120#[allow(clippy::derive_partial_eq_without_eq)]
5121#[derive(Clone, PartialEq, ::prost::Message)]
5122pub struct MuteRoomTrackRequest {
5123 #[prost(string, tag="1")]
5125 pub room: ::prost::alloc::string::String,
5126 #[prost(string, tag="2")]
5127 pub identity: ::prost::alloc::string::String,
5128 #[prost(string, tag="3")]
5130 pub track_sid: ::prost::alloc::string::String,
5131 #[prost(bool, tag="4")]
5133 pub muted: bool,
5134}
5135#[allow(clippy::derive_partial_eq_without_eq)]
5136#[derive(Clone, PartialEq, ::prost::Message)]
5137pub struct MuteRoomTrackResponse {
5138 #[prost(message, optional, tag="1")]
5139 pub track: ::core::option::Option<TrackInfo>,
5140}
5141#[allow(clippy::derive_partial_eq_without_eq)]
5142#[derive(Clone, PartialEq, ::prost::Message)]
5143pub struct UpdateParticipantRequest {
5144 #[prost(string, tag="1")]
5145 pub room: ::prost::alloc::string::String,
5146 #[prost(string, tag="2")]
5147 pub identity: ::prost::alloc::string::String,
5148 #[prost(string, tag="3")]
5150 pub metadata: ::prost::alloc::string::String,
5151 #[prost(message, optional, tag="4")]
5153 pub permission: ::core::option::Option<ParticipantPermission>,
5154 #[prost(string, tag="5")]
5156 pub name: ::prost::alloc::string::String,
5157 #[prost(map="string, string", tag="6")]
5160 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5161}
5162#[allow(clippy::derive_partial_eq_without_eq)]
5163#[derive(Clone, PartialEq, ::prost::Message)]
5164pub struct UpdateSubscriptionsRequest {
5165 #[prost(string, tag="1")]
5166 pub room: ::prost::alloc::string::String,
5167 #[prost(string, tag="2")]
5168 pub identity: ::prost::alloc::string::String,
5169 #[prost(string, repeated, tag="3")]
5171 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5172 #[prost(bool, tag="4")]
5174 pub subscribe: bool,
5175 #[prost(message, repeated, tag="5")]
5177 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
5178}
5179#[allow(clippy::derive_partial_eq_without_eq)]
5181#[derive(Clone, PartialEq, ::prost::Message)]
5182pub struct UpdateSubscriptionsResponse {
5183}
5184#[allow(clippy::derive_partial_eq_without_eq)]
5185#[derive(Clone, PartialEq, ::prost::Message)]
5186pub struct SendDataRequest {
5187 #[prost(string, tag="1")]
5188 pub room: ::prost::alloc::string::String,
5189 #[prost(bytes="vec", tag="2")]
5190 pub data: ::prost::alloc::vec::Vec<u8>,
5191 #[prost(enumeration="data_packet::Kind", tag="3")]
5192 pub kind: i32,
5193 #[deprecated]
5195 #[prost(string, repeated, tag="4")]
5196 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5197 #[prost(string, repeated, tag="6")]
5199 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5200 #[prost(string, optional, tag="5")]
5201 pub topic: ::core::option::Option<::prost::alloc::string::String>,
5202 #[prost(bytes="vec", tag="7")]
5204 pub nonce: ::prost::alloc::vec::Vec<u8>,
5205}
5206#[allow(clippy::derive_partial_eq_without_eq)]
5208#[derive(Clone, PartialEq, ::prost::Message)]
5209pub struct SendDataResponse {
5210}
5211#[allow(clippy::derive_partial_eq_without_eq)]
5212#[derive(Clone, PartialEq, ::prost::Message)]
5213pub struct UpdateRoomMetadataRequest {
5214 #[prost(string, tag="1")]
5215 pub room: ::prost::alloc::string::String,
5216 #[prost(string, tag="2")]
5218 pub metadata: ::prost::alloc::string::String,
5219}
5220#[allow(clippy::derive_partial_eq_without_eq)]
5221#[derive(Clone, PartialEq, ::prost::Message)]
5222pub struct RoomConfiguration {
5223 #[prost(string, tag="1")]
5225 pub name: ::prost::alloc::string::String,
5226 #[prost(uint32, tag="2")]
5228 pub empty_timeout: u32,
5229 #[prost(uint32, tag="3")]
5231 pub departure_timeout: u32,
5232 #[prost(uint32, tag="4")]
5234 pub max_participants: u32,
5235 #[prost(string, tag="11")]
5237 pub metadata: ::prost::alloc::string::String,
5238 #[prost(message, optional, tag="5")]
5240 pub egress: ::core::option::Option<RoomEgress>,
5241 #[prost(uint32, tag="7")]
5243 pub min_playout_delay: u32,
5244 #[prost(uint32, tag="8")]
5245 pub max_playout_delay: u32,
5246 #[prost(bool, tag="9")]
5249 pub sync_streams: bool,
5250 #[prost(message, repeated, tag="10")]
5252 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5253 #[prost(map="string, string", tag="12")]
5255 pub tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5256}
5257#[allow(clippy::derive_partial_eq_without_eq)]
5258#[derive(Clone, PartialEq, ::prost::Message)]
5259pub struct ForwardParticipantRequest {
5260 #[prost(string, tag="1")]
5262 pub room: ::prost::alloc::string::String,
5263 #[prost(string, tag="2")]
5265 pub identity: ::prost::alloc::string::String,
5266 #[prost(string, tag="3")]
5268 pub destination_room: ::prost::alloc::string::String,
5269}
5270#[allow(clippy::derive_partial_eq_without_eq)]
5271#[derive(Clone, PartialEq, ::prost::Message)]
5272pub struct ForwardParticipantResponse {
5273}
5274#[allow(clippy::derive_partial_eq_without_eq)]
5275#[derive(Clone, PartialEq, ::prost::Message)]
5276pub struct MoveParticipantRequest {
5277 #[prost(string, tag="1")]
5279 pub room: ::prost::alloc::string::String,
5280 #[prost(string, tag="2")]
5282 pub identity: ::prost::alloc::string::String,
5283 #[prost(string, tag="3")]
5285 pub destination_room: ::prost::alloc::string::String,
5286}
5287#[allow(clippy::derive_partial_eq_without_eq)]
5288#[derive(Clone, PartialEq, ::prost::Message)]
5289pub struct MoveParticipantResponse {
5290}
5291#[allow(clippy::derive_partial_eq_without_eq)]
5292#[derive(Clone, PartialEq, ::prost::Message)]
5293pub struct PerformRpcRequest {
5294 #[prost(string, tag="1")]
5295 pub room: ::prost::alloc::string::String,
5296 #[prost(string, tag="2")]
5297 pub destination_identity: ::prost::alloc::string::String,
5298 #[prost(string, tag="3")]
5299 pub method: ::prost::alloc::string::String,
5300 #[prost(string, tag="4")]
5301 pub payload: ::prost::alloc::string::String,
5302 #[prost(uint32, tag="5")]
5303 pub response_timeout_ms: u32,
5304}
5305#[allow(clippy::derive_partial_eq_without_eq)]
5306#[derive(Clone, PartialEq, ::prost::Message)]
5307pub struct PerformRpcResponse {
5308 #[prost(string, tag="1")]
5309 pub payload: ::prost::alloc::string::String,
5310}
5311#[allow(clippy::derive_partial_eq_without_eq)]
5312#[derive(Clone, PartialEq, ::prost::Message)]
5313pub struct CreateIngressRequest {
5314 #[prost(enumeration="IngressInput", tag="1")]
5315 pub input_type: i32,
5316 #[prost(string, tag="9")]
5318 pub url: ::prost::alloc::string::String,
5319 #[prost(string, tag="2")]
5321 pub name: ::prost::alloc::string::String,
5322 #[prost(string, tag="3")]
5324 pub room_name: ::prost::alloc::string::String,
5325 #[prost(string, tag="4")]
5327 pub participant_identity: ::prost::alloc::string::String,
5328 #[prost(string, tag="5")]
5330 pub participant_name: ::prost::alloc::string::String,
5331 #[prost(string, tag="10")]
5333 pub participant_metadata: ::prost::alloc::string::String,
5334 #[deprecated]
5336 #[prost(bool, tag="8")]
5337 pub bypass_transcoding: bool,
5338 #[prost(bool, optional, tag="11")]
5340 pub enable_transcoding: ::core::option::Option<bool>,
5341 #[prost(message, optional, tag="6")]
5342 pub audio: ::core::option::Option<IngressAudioOptions>,
5343 #[prost(message, optional, tag="7")]
5344 pub video: ::core::option::Option<IngressVideoOptions>,
5345 #[prost(bool, optional, tag="12")]
5347 pub enabled: ::core::option::Option<bool>,
5348}
5349#[allow(clippy::derive_partial_eq_without_eq)]
5350#[derive(Clone, PartialEq, ::prost::Message)]
5351pub struct IngressAudioOptions {
5352 #[prost(string, tag="1")]
5353 pub name: ::prost::alloc::string::String,
5354 #[prost(enumeration="TrackSource", tag="2")]
5355 pub source: i32,
5356 #[prost(oneof="ingress_audio_options::EncodingOptions", tags="3, 4")]
5357 pub encoding_options: ::core::option::Option<ingress_audio_options::EncodingOptions>,
5358}
5359pub mod ingress_audio_options {
5361 #[allow(clippy::derive_partial_eq_without_eq)]
5362#[derive(Clone, PartialEq, ::prost::Oneof)]
5363 pub enum EncodingOptions {
5364 #[prost(enumeration="super::IngressAudioEncodingPreset", tag="3")]
5365 Preset(i32),
5366 #[prost(message, tag="4")]
5367 Options(super::IngressAudioEncodingOptions),
5368 }
5369}
5370#[allow(clippy::derive_partial_eq_without_eq)]
5371#[derive(Clone, PartialEq, ::prost::Message)]
5372pub struct IngressVideoOptions {
5373 #[prost(string, tag="1")]
5374 pub name: ::prost::alloc::string::String,
5375 #[prost(enumeration="TrackSource", tag="2")]
5376 pub source: i32,
5377 #[prost(oneof="ingress_video_options::EncodingOptions", tags="3, 4")]
5378 pub encoding_options: ::core::option::Option<ingress_video_options::EncodingOptions>,
5379}
5380pub mod ingress_video_options {
5382 #[allow(clippy::derive_partial_eq_without_eq)]
5383#[derive(Clone, PartialEq, ::prost::Oneof)]
5384 pub enum EncodingOptions {
5385 #[prost(enumeration="super::IngressVideoEncodingPreset", tag="3")]
5386 Preset(i32),
5387 #[prost(message, tag="4")]
5388 Options(super::IngressVideoEncodingOptions),
5389 }
5390}
5391#[allow(clippy::derive_partial_eq_without_eq)]
5392#[derive(Clone, PartialEq, ::prost::Message)]
5393pub struct IngressAudioEncodingOptions {
5394 #[prost(enumeration="AudioCodec", tag="1")]
5396 pub audio_codec: i32,
5397 #[prost(uint32, tag="2")]
5398 pub bitrate: u32,
5399 #[prost(bool, tag="3")]
5400 pub disable_dtx: bool,
5401 #[prost(uint32, tag="4")]
5402 pub channels: u32,
5403}
5404#[allow(clippy::derive_partial_eq_without_eq)]
5405#[derive(Clone, PartialEq, ::prost::Message)]
5406pub struct IngressVideoEncodingOptions {
5407 #[prost(enumeration="VideoCodec", tag="1")]
5409 pub video_codec: i32,
5410 #[prost(double, tag="2")]
5411 pub frame_rate: f64,
5412 #[prost(message, repeated, tag="3")]
5414 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
5415}
5416#[allow(clippy::derive_partial_eq_without_eq)]
5417#[derive(Clone, PartialEq, ::prost::Message)]
5418pub struct IngressInfo {
5419 #[prost(string, tag="1")]
5420 pub ingress_id: ::prost::alloc::string::String,
5421 #[prost(string, tag="2")]
5422 pub name: ::prost::alloc::string::String,
5423 #[prost(string, tag="3")]
5424 pub stream_key: ::prost::alloc::string::String,
5425 #[prost(string, tag="4")]
5427 pub url: ::prost::alloc::string::String,
5428 #[prost(enumeration="IngressInput", tag="5")]
5432 pub input_type: i32,
5433 #[deprecated]
5434 #[prost(bool, tag="13")]
5435 pub bypass_transcoding: bool,
5436 #[prost(bool, optional, tag="15")]
5437 pub enable_transcoding: ::core::option::Option<bool>,
5438 #[prost(message, optional, tag="6")]
5439 pub audio: ::core::option::Option<IngressAudioOptions>,
5440 #[prost(message, optional, tag="7")]
5441 pub video: ::core::option::Option<IngressVideoOptions>,
5442 #[prost(string, tag="8")]
5443 pub room_name: ::prost::alloc::string::String,
5444 #[prost(string, tag="9")]
5445 pub participant_identity: ::prost::alloc::string::String,
5446 #[prost(string, tag="10")]
5447 pub participant_name: ::prost::alloc::string::String,
5448 #[prost(string, tag="14")]
5449 pub participant_metadata: ::prost::alloc::string::String,
5450 #[prost(bool, tag="11")]
5451 pub reusable: bool,
5452 #[prost(message, optional, tag="12")]
5454 pub state: ::core::option::Option<IngressState>,
5455 #[prost(bool, optional, tag="16")]
5457 pub enabled: ::core::option::Option<bool>,
5458}
5459#[allow(clippy::derive_partial_eq_without_eq)]
5460#[derive(Clone, PartialEq, ::prost::Message)]
5461pub struct IngressState {
5462 #[prost(enumeration="ingress_state::Status", tag="1")]
5463 pub status: i32,
5464 #[prost(string, tag="2")]
5466 pub error: ::prost::alloc::string::String,
5467 #[prost(message, optional, tag="3")]
5468 pub video: ::core::option::Option<InputVideoState>,
5469 #[prost(message, optional, tag="4")]
5470 pub audio: ::core::option::Option<InputAudioState>,
5471 #[prost(string, tag="5")]
5473 pub room_id: ::prost::alloc::string::String,
5474 #[prost(int64, tag="7")]
5475 pub started_at: i64,
5476 #[prost(int64, tag="8")]
5477 pub ended_at: i64,
5478 #[prost(int64, tag="10")]
5479 pub updated_at: i64,
5480 #[prost(string, tag="9")]
5481 pub resource_id: ::prost::alloc::string::String,
5482 #[prost(message, repeated, tag="6")]
5483 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
5484}
5485pub mod ingress_state {
5487 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5488 #[repr(i32)]
5489 pub enum Status {
5490 EndpointInactive = 0,
5491 EndpointBuffering = 1,
5492 EndpointPublishing = 2,
5493 EndpointError = 3,
5494 EndpointComplete = 4,
5495 }
5496 impl Status {
5497 pub fn as_str_name(&self) -> &'static str {
5502 match self {
5503 Status::EndpointInactive => "ENDPOINT_INACTIVE",
5504 Status::EndpointBuffering => "ENDPOINT_BUFFERING",
5505 Status::EndpointPublishing => "ENDPOINT_PUBLISHING",
5506 Status::EndpointError => "ENDPOINT_ERROR",
5507 Status::EndpointComplete => "ENDPOINT_COMPLETE",
5508 }
5509 }
5510 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5512 match value {
5513 "ENDPOINT_INACTIVE" => Some(Self::EndpointInactive),
5514 "ENDPOINT_BUFFERING" => Some(Self::EndpointBuffering),
5515 "ENDPOINT_PUBLISHING" => Some(Self::EndpointPublishing),
5516 "ENDPOINT_ERROR" => Some(Self::EndpointError),
5517 "ENDPOINT_COMPLETE" => Some(Self::EndpointComplete),
5518 _ => None,
5519 }
5520 }
5521 }
5522}
5523#[allow(clippy::derive_partial_eq_without_eq)]
5524#[derive(Clone, PartialEq, ::prost::Message)]
5525pub struct InputVideoState {
5526 #[prost(string, tag="1")]
5527 pub mime_type: ::prost::alloc::string::String,
5528 #[prost(uint32, tag="2")]
5529 pub average_bitrate: u32,
5530 #[prost(uint32, tag="3")]
5531 pub width: u32,
5532 #[prost(uint32, tag="4")]
5533 pub height: u32,
5534 #[prost(double, tag="5")]
5535 pub framerate: f64,
5536}
5537#[allow(clippy::derive_partial_eq_without_eq)]
5538#[derive(Clone, PartialEq, ::prost::Message)]
5539pub struct InputAudioState {
5540 #[prost(string, tag="1")]
5541 pub mime_type: ::prost::alloc::string::String,
5542 #[prost(uint32, tag="2")]
5543 pub average_bitrate: u32,
5544 #[prost(uint32, tag="3")]
5545 pub channels: u32,
5546 #[prost(uint32, tag="4")]
5547 pub sample_rate: u32,
5548}
5549#[allow(clippy::derive_partial_eq_without_eq)]
5550#[derive(Clone, PartialEq, ::prost::Message)]
5551pub struct UpdateIngressRequest {
5552 #[prost(string, tag="1")]
5553 pub ingress_id: ::prost::alloc::string::String,
5554 #[prost(string, tag="2")]
5555 pub name: ::prost::alloc::string::String,
5556 #[prost(string, tag="3")]
5557 pub room_name: ::prost::alloc::string::String,
5558 #[prost(string, tag="4")]
5559 pub participant_identity: ::prost::alloc::string::String,
5560 #[prost(string, tag="5")]
5561 pub participant_name: ::prost::alloc::string::String,
5562 #[prost(string, tag="9")]
5563 pub participant_metadata: ::prost::alloc::string::String,
5564 #[deprecated]
5565 #[prost(bool, optional, tag="8")]
5566 pub bypass_transcoding: ::core::option::Option<bool>,
5567 #[prost(bool, optional, tag="10")]
5568 pub enable_transcoding: ::core::option::Option<bool>,
5569 #[prost(message, optional, tag="6")]
5570 pub audio: ::core::option::Option<IngressAudioOptions>,
5571 #[prost(message, optional, tag="7")]
5572 pub video: ::core::option::Option<IngressVideoOptions>,
5573 #[prost(bool, optional, tag="11")]
5575 pub enabled: ::core::option::Option<bool>,
5576}
5577#[allow(clippy::derive_partial_eq_without_eq)]
5578#[derive(Clone, PartialEq, ::prost::Message)]
5579pub struct ListIngressRequest {
5580 #[prost(message, optional, tag="3")]
5581 pub page_token: ::core::option::Option<TokenPagination>,
5582 #[prost(string, tag="1")]
5586 pub room_name: ::prost::alloc::string::String,
5587 #[prost(string, tag="2")]
5589 pub ingress_id: ::prost::alloc::string::String,
5590}
5591#[allow(clippy::derive_partial_eq_without_eq)]
5592#[derive(Clone, PartialEq, ::prost::Message)]
5593pub struct ListIngressResponse {
5594 #[prost(message, optional, tag="2")]
5595 pub next_page_token: ::core::option::Option<TokenPagination>,
5596 #[prost(message, repeated, tag="1")]
5598 pub items: ::prost::alloc::vec::Vec<IngressInfo>,
5599}
5600#[allow(clippy::derive_partial_eq_without_eq)]
5601#[derive(Clone, PartialEq, ::prost::Message)]
5602pub struct DeleteIngressRequest {
5603 #[prost(string, tag="1")]
5604 pub ingress_id: ::prost::alloc::string::String,
5605}
5606#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5607#[repr(i32)]
5608pub enum IngressInput {
5609 RtmpInput = 0,
5610 WhipInput = 1,
5611 UrlInput = 2,
5613}
5614impl IngressInput {
5615 pub fn as_str_name(&self) -> &'static str {
5620 match self {
5621 IngressInput::RtmpInput => "RTMP_INPUT",
5622 IngressInput::WhipInput => "WHIP_INPUT",
5623 IngressInput::UrlInput => "URL_INPUT",
5624 }
5625 }
5626 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5628 match value {
5629 "RTMP_INPUT" => Some(Self::RtmpInput),
5630 "WHIP_INPUT" => Some(Self::WhipInput),
5631 "URL_INPUT" => Some(Self::UrlInput),
5632 _ => None,
5633 }
5634 }
5635}
5636#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5637#[repr(i32)]
5638pub enum IngressAudioEncodingPreset {
5639 OpusStereo96kbps = 0,
5641 OpusMono64kbs = 1,
5643}
5644impl IngressAudioEncodingPreset {
5645 pub fn as_str_name(&self) -> &'static str {
5650 match self {
5651 IngressAudioEncodingPreset::OpusStereo96kbps => "OPUS_STEREO_96KBPS",
5652 IngressAudioEncodingPreset::OpusMono64kbs => "OPUS_MONO_64KBS",
5653 }
5654 }
5655 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5657 match value {
5658 "OPUS_STEREO_96KBPS" => Some(Self::OpusStereo96kbps),
5659 "OPUS_MONO_64KBS" => Some(Self::OpusMono64kbs),
5660 _ => None,
5661 }
5662 }
5663}
5664#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5665#[repr(i32)]
5666pub enum IngressVideoEncodingPreset {
5667 H264720p30fps3Layers = 0,
5669 H2641080p30fps3Layers = 1,
5671 H264540p25fps2Layers = 2,
5673 H264720p30fps1Layer = 3,
5675 H2641080p30fps1Layer = 4,
5677 H264720p30fps3LayersHighMotion = 5,
5679 H2641080p30fps3LayersHighMotion = 6,
5681 H264540p25fps2LayersHighMotion = 7,
5683 H264720p30fps1LayerHighMotion = 8,
5685 H2641080p30fps1LayerHighMotion = 9,
5687}
5688impl IngressVideoEncodingPreset {
5689 pub fn as_str_name(&self) -> &'static str {
5694 match self {
5695 IngressVideoEncodingPreset::H264720p30fps3Layers => "H264_720P_30FPS_3_LAYERS",
5696 IngressVideoEncodingPreset::H2641080p30fps3Layers => "H264_1080P_30FPS_3_LAYERS",
5697 IngressVideoEncodingPreset::H264540p25fps2Layers => "H264_540P_25FPS_2_LAYERS",
5698 IngressVideoEncodingPreset::H264720p30fps1Layer => "H264_720P_30FPS_1_LAYER",
5699 IngressVideoEncodingPreset::H2641080p30fps1Layer => "H264_1080P_30FPS_1_LAYER",
5700 IngressVideoEncodingPreset::H264720p30fps3LayersHighMotion => "H264_720P_30FPS_3_LAYERS_HIGH_MOTION",
5701 IngressVideoEncodingPreset::H2641080p30fps3LayersHighMotion => "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION",
5702 IngressVideoEncodingPreset::H264540p25fps2LayersHighMotion => "H264_540P_25FPS_2_LAYERS_HIGH_MOTION",
5703 IngressVideoEncodingPreset::H264720p30fps1LayerHighMotion => "H264_720P_30FPS_1_LAYER_HIGH_MOTION",
5704 IngressVideoEncodingPreset::H2641080p30fps1LayerHighMotion => "H264_1080P_30FPS_1_LAYER_HIGH_MOTION",
5705 }
5706 }
5707 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5709 match value {
5710 "H264_720P_30FPS_3_LAYERS" => Some(Self::H264720p30fps3Layers),
5711 "H264_1080P_30FPS_3_LAYERS" => Some(Self::H2641080p30fps3Layers),
5712 "H264_540P_25FPS_2_LAYERS" => Some(Self::H264540p25fps2Layers),
5713 "H264_720P_30FPS_1_LAYER" => Some(Self::H264720p30fps1Layer),
5714 "H264_1080P_30FPS_1_LAYER" => Some(Self::H2641080p30fps1Layer),
5715 "H264_720P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H264720p30fps3LayersHighMotion),
5716 "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H2641080p30fps3LayersHighMotion),
5717 "H264_540P_25FPS_2_LAYERS_HIGH_MOTION" => Some(Self::H264540p25fps2LayersHighMotion),
5718 "H264_720P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H264720p30fps1LayerHighMotion),
5719 "H264_1080P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H2641080p30fps1LayerHighMotion),
5720 _ => None,
5721 }
5722 }
5723}
5724#[allow(clippy::derive_partial_eq_without_eq)]
5725#[derive(Clone, PartialEq, ::prost::Message)]
5726pub struct WebhookEvent {
5727 #[prost(string, tag="1")]
5731 pub event: ::prost::alloc::string::String,
5732 #[prost(message, optional, tag="2")]
5733 pub room: ::core::option::Option<Room>,
5734 #[prost(message, optional, tag="3")]
5736 pub participant: ::core::option::Option<ParticipantInfo>,
5737 #[prost(message, optional, tag="9")]
5739 pub egress_info: ::core::option::Option<EgressInfo>,
5740 #[prost(message, optional, tag="10")]
5742 pub ingress_info: ::core::option::Option<IngressInfo>,
5743 #[prost(message, optional, tag="8")]
5745 pub track: ::core::option::Option<TrackInfo>,
5746 #[prost(string, tag="6")]
5748 pub id: ::prost::alloc::string::String,
5749 #[prost(int64, tag="7")]
5751 pub created_at: i64,
5752 #[deprecated]
5753 #[prost(int32, tag="11")]
5754 pub num_dropped: i32,
5755}
5756#[allow(clippy::derive_partial_eq_without_eq)]
5758#[derive(Clone, PartialEq, ::prost::Message)]
5759pub struct SipStatus {
5760 #[prost(enumeration="SipStatusCode", tag="1")]
5761 pub code: i32,
5762 #[prost(string, tag="2")]
5763 pub status: ::prost::alloc::string::String,
5764}
5765#[allow(clippy::derive_partial_eq_without_eq)]
5766#[derive(Clone, PartialEq, ::prost::Message)]
5767pub struct CreateSipTrunkRequest {
5768 #[prost(string, repeated, tag="1")]
5771 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5772 #[prost(string, tag="2")]
5774 pub outbound_address: ::prost::alloc::string::String,
5775 #[prost(string, tag="3")]
5777 pub outbound_number: ::prost::alloc::string::String,
5778 #[deprecated]
5779 #[prost(string, repeated, tag="4")]
5780 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5781 #[prost(string, repeated, tag="9")]
5785 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5786 #[prost(string, tag="5")]
5789 pub inbound_username: ::prost::alloc::string::String,
5790 #[prost(string, tag="6")]
5791 pub inbound_password: ::prost::alloc::string::String,
5792 #[prost(string, tag="7")]
5793 pub outbound_username: ::prost::alloc::string::String,
5794 #[prost(string, tag="8")]
5795 pub outbound_password: ::prost::alloc::string::String,
5796 #[prost(string, tag="10")]
5798 pub name: ::prost::alloc::string::String,
5799 #[prost(string, tag="11")]
5801 pub metadata: ::prost::alloc::string::String,
5802}
5803#[allow(clippy::derive_partial_eq_without_eq)]
5804#[derive(Clone, PartialEq, ::prost::Message)]
5805pub struct SipCodec {
5806 #[prost(string, tag="1")]
5807 pub name: ::prost::alloc::string::String,
5808 #[prost(uint32, tag="2")]
5809 pub rate: u32,
5810}
5811#[allow(clippy::derive_partial_eq_without_eq)]
5812#[derive(Clone, PartialEq, ::prost::Message)]
5813pub struct SipMediaConfig {
5814 #[prost(bool, tag="1")]
5816 pub only_listed_codecs: bool,
5817 #[prost(message, repeated, tag="2")]
5819 pub codecs: ::prost::alloc::vec::Vec<SipCodec>,
5820 #[prost(enumeration="SipMediaEncryption", optional, tag="3")]
5821 pub encryption: ::core::option::Option<i32>,
5822 #[prost(message, optional, tag="4")]
5824 pub media_timeout: ::core::option::Option<::pbjson_types::Duration>,
5825}
5826#[allow(clippy::derive_partial_eq_without_eq)]
5827#[derive(Clone, PartialEq, ::prost::Message)]
5828pub struct ProviderInfo {
5829 #[prost(string, tag="1")]
5830 pub id: ::prost::alloc::string::String,
5831 #[prost(string, tag="2")]
5832 pub name: ::prost::alloc::string::String,
5833 #[prost(enumeration="ProviderType", tag="3")]
5834 pub r#type: i32,
5835 #[prost(bool, tag="4")]
5836 pub prevent_transfer: bool,
5837}
5838#[allow(clippy::derive_partial_eq_without_eq)]
5839#[derive(Clone, PartialEq, ::prost::Message)]
5840pub struct SipTrunkInfo {
5841 #[prost(string, tag="1")]
5842 pub sip_trunk_id: ::prost::alloc::string::String,
5843 #[prost(enumeration="sip_trunk_info::TrunkKind", tag="14")]
5844 pub kind: i32,
5845 #[prost(string, repeated, tag="2")]
5848 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5849 #[prost(string, tag="3")]
5851 pub outbound_address: ::prost::alloc::string::String,
5852 #[prost(string, tag="4")]
5854 pub outbound_number: ::prost::alloc::string::String,
5855 #[prost(enumeration="SipTransport", tag="13")]
5857 pub transport: i32,
5858 #[deprecated]
5859 #[prost(string, repeated, tag="5")]
5860 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5861 #[prost(string, repeated, tag="10")]
5865 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5866 #[prost(string, tag="6")]
5869 pub inbound_username: ::prost::alloc::string::String,
5870 #[prost(string, tag="7")]
5871 pub inbound_password: ::prost::alloc::string::String,
5872 #[prost(string, tag="8")]
5873 pub outbound_username: ::prost::alloc::string::String,
5874 #[prost(string, tag="9")]
5875 pub outbound_password: ::prost::alloc::string::String,
5876 #[prost(string, tag="11")]
5878 pub name: ::prost::alloc::string::String,
5879 #[prost(string, tag="12")]
5881 pub metadata: ::prost::alloc::string::String,
5882}
5883pub mod sip_trunk_info {
5885 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5886 #[repr(i32)]
5887 pub enum TrunkKind {
5888 TrunkLegacy = 0,
5889 TrunkInbound = 1,
5890 TrunkOutbound = 2,
5891 }
5892 impl TrunkKind {
5893 pub fn as_str_name(&self) -> &'static str {
5898 match self {
5899 TrunkKind::TrunkLegacy => "TRUNK_LEGACY",
5900 TrunkKind::TrunkInbound => "TRUNK_INBOUND",
5901 TrunkKind::TrunkOutbound => "TRUNK_OUTBOUND",
5902 }
5903 }
5904 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5906 match value {
5907 "TRUNK_LEGACY" => Some(Self::TrunkLegacy),
5908 "TRUNK_INBOUND" => Some(Self::TrunkInbound),
5909 "TRUNK_OUTBOUND" => Some(Self::TrunkOutbound),
5910 _ => None,
5911 }
5912 }
5913 }
5914}
5915#[allow(clippy::derive_partial_eq_without_eq)]
5916#[derive(Clone, PartialEq, ::prost::Message)]
5917pub struct CreateSipInboundTrunkRequest {
5918 #[prost(message, optional, tag="1")]
5920 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
5921}
5922#[allow(clippy::derive_partial_eq_without_eq)]
5923#[derive(Clone, PartialEq, ::prost::Message)]
5924pub struct UpdateSipInboundTrunkRequest {
5925 #[prost(string, tag="1")]
5926 pub sip_trunk_id: ::prost::alloc::string::String,
5927 #[prost(oneof="update_sip_inbound_trunk_request::Action", tags="2, 3")]
5928 pub action: ::core::option::Option<update_sip_inbound_trunk_request::Action>,
5929}
5930pub mod update_sip_inbound_trunk_request {
5932 #[allow(clippy::derive_partial_eq_without_eq)]
5933#[derive(Clone, PartialEq, ::prost::Oneof)]
5934 pub enum Action {
5935 #[prost(message, tag="2")]
5936 Replace(super::SipInboundTrunkInfo),
5937 #[prost(message, tag="3")]
5938 Update(super::SipInboundTrunkUpdate),
5939 }
5940}
5941#[allow(clippy::derive_partial_eq_without_eq)]
5942#[derive(Clone, PartialEq, ::prost::Message)]
5943pub struct SipInboundTrunkInfo {
5944 #[prost(string, tag="1")]
5945 pub sip_trunk_id: ::prost::alloc::string::String,
5946 #[prost(string, tag="2")]
5948 pub name: ::prost::alloc::string::String,
5949 #[prost(string, tag="3")]
5951 pub metadata: ::prost::alloc::string::String,
5952 #[prost(string, repeated, tag="4")]
5955 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5956 #[prost(string, repeated, tag="5")]
5959 pub allowed_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5960 #[prost(string, repeated, tag="6")]
5963 pub allowed_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5964 #[prost(string, tag="7")]
5967 pub auth_username: ::prost::alloc::string::String,
5968 #[prost(string, tag="8")]
5969 pub auth_password: ::prost::alloc::string::String,
5970 #[prost(string, tag="19")]
5971 pub auth_realm: ::prost::alloc::string::String,
5972 #[prost(map="string, string", tag="9")]
5974 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5975 #[prost(map="string, string", tag="10")]
5977 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5978 #[prost(map="string, string", tag="14")]
5981 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5982 #[prost(enumeration="SipHeaderOptions", tag="15")]
5989 pub include_headers: i32,
5990 #[prost(message, optional, tag="11")]
5992 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
5993 #[prost(message, optional, tag="12")]
5995 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
5996 #[prost(bool, tag="13")]
5997 pub krisp_enabled: bool,
5998 #[prost(enumeration="SipMediaEncryption", tag="16")]
5999 pub media_encryption: i32,
6000 #[prost(message, optional, tag="17")]
6001 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6002 #[prost(message, optional, tag="18")]
6003 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6004}
6005#[allow(clippy::derive_partial_eq_without_eq)]
6006#[derive(Clone, PartialEq, ::prost::Message)]
6007pub struct SipInboundTrunkUpdate {
6008 #[prost(message, optional, tag="1")]
6009 pub numbers: ::core::option::Option<ListUpdate>,
6010 #[prost(message, optional, tag="2")]
6011 pub allowed_addresses: ::core::option::Option<ListUpdate>,
6012 #[prost(message, optional, tag="3")]
6013 pub allowed_numbers: ::core::option::Option<ListUpdate>,
6014 #[prost(string, optional, tag="4")]
6015 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
6016 #[prost(string, optional, tag="5")]
6017 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
6018 #[prost(string, optional, tag="9")]
6019 pub auth_realm: ::core::option::Option<::prost::alloc::string::String>,
6020 #[prost(string, optional, tag="6")]
6021 pub name: ::core::option::Option<::prost::alloc::string::String>,
6022 #[prost(string, optional, tag="7")]
6023 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6024 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
6025 pub media_encryption: ::core::option::Option<i32>,
6026}
6027#[allow(clippy::derive_partial_eq_without_eq)]
6028#[derive(Clone, PartialEq, ::prost::Message)]
6029pub struct CreateSipOutboundTrunkRequest {
6030 #[prost(message, optional, tag="1")]
6032 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
6033}
6034#[allow(clippy::derive_partial_eq_without_eq)]
6035#[derive(Clone, PartialEq, ::prost::Message)]
6036pub struct UpdateSipOutboundTrunkRequest {
6037 #[prost(string, tag="1")]
6038 pub sip_trunk_id: ::prost::alloc::string::String,
6039 #[prost(oneof="update_sip_outbound_trunk_request::Action", tags="2, 3")]
6040 pub action: ::core::option::Option<update_sip_outbound_trunk_request::Action>,
6041}
6042pub mod update_sip_outbound_trunk_request {
6044 #[allow(clippy::derive_partial_eq_without_eq)]
6045#[derive(Clone, PartialEq, ::prost::Oneof)]
6046 pub enum Action {
6047 #[prost(message, tag="2")]
6048 Replace(super::SipOutboundTrunkInfo),
6049 #[prost(message, tag="3")]
6050 Update(super::SipOutboundTrunkUpdate),
6051 }
6052}
6053#[allow(clippy::derive_partial_eq_without_eq)]
6054#[derive(Clone, PartialEq, ::prost::Message)]
6055pub struct SipOutboundTrunkInfo {
6056 #[prost(string, tag="1")]
6057 pub sip_trunk_id: ::prost::alloc::string::String,
6058 #[prost(string, tag="2")]
6060 pub name: ::prost::alloc::string::String,
6061 #[prost(string, tag="3")]
6063 pub metadata: ::prost::alloc::string::String,
6064 #[prost(string, tag="4")]
6067 pub address: ::prost::alloc::string::String,
6068 #[prost(string, tag="14")]
6070 pub destination_country: ::prost::alloc::string::String,
6071 #[prost(enumeration="SipTransport", tag="5")]
6073 pub transport: i32,
6074 #[prost(string, repeated, tag="6")]
6076 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6077 #[prost(string, tag="7")]
6080 pub auth_username: ::prost::alloc::string::String,
6081 #[prost(string, tag="8")]
6082 pub auth_password: ::prost::alloc::string::String,
6083 #[prost(map="string, string", tag="9")]
6086 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6087 #[prost(map="string, string", tag="10")]
6090 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6091 #[prost(map="string, string", tag="11")]
6094 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6095 #[prost(enumeration="SipHeaderOptions", tag="12")]
6102 pub include_headers: i32,
6103 #[prost(enumeration="SipMediaEncryption", tag="13")]
6104 pub media_encryption: i32,
6105 #[prost(string, tag="15")]
6109 pub from_host: ::prost::alloc::string::String,
6110 #[prost(message, optional, tag="16")]
6111 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6112 #[prost(message, optional, tag="17")]
6113 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6114}
6115#[allow(clippy::derive_partial_eq_without_eq)]
6116#[derive(Clone, PartialEq, ::prost::Message)]
6117pub struct SipOutboundTrunkUpdate {
6118 #[prost(string, optional, tag="1")]
6119 pub address: ::core::option::Option<::prost::alloc::string::String>,
6120 #[prost(enumeration="SipTransport", optional, tag="2")]
6121 pub transport: ::core::option::Option<i32>,
6122 #[prost(string, optional, tag="9")]
6123 pub destination_country: ::core::option::Option<::prost::alloc::string::String>,
6124 #[prost(message, optional, tag="3")]
6125 pub numbers: ::core::option::Option<ListUpdate>,
6126 #[prost(string, optional, tag="4")]
6127 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
6128 #[prost(string, optional, tag="5")]
6129 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
6130 #[prost(string, optional, tag="6")]
6131 pub name: ::core::option::Option<::prost::alloc::string::String>,
6132 #[prost(string, optional, tag="7")]
6133 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6134 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
6135 pub media_encryption: ::core::option::Option<i32>,
6136 #[prost(string, optional, tag="10")]
6137 pub from_host: ::core::option::Option<::prost::alloc::string::String>,
6138}
6139#[allow(clippy::derive_partial_eq_without_eq)]
6140#[derive(Clone, PartialEq, ::prost::Message)]
6141pub struct GetSipInboundTrunkRequest {
6142 #[prost(string, tag="1")]
6143 pub sip_trunk_id: ::prost::alloc::string::String,
6144}
6145#[allow(clippy::derive_partial_eq_without_eq)]
6146#[derive(Clone, PartialEq, ::prost::Message)]
6147pub struct GetSipInboundTrunkResponse {
6148 #[prost(message, optional, tag="1")]
6149 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
6150}
6151#[allow(clippy::derive_partial_eq_without_eq)]
6152#[derive(Clone, PartialEq, ::prost::Message)]
6153pub struct GetSipOutboundTrunkRequest {
6154 #[prost(string, tag="1")]
6155 pub sip_trunk_id: ::prost::alloc::string::String,
6156}
6157#[allow(clippy::derive_partial_eq_without_eq)]
6158#[derive(Clone, PartialEq, ::prost::Message)]
6159pub struct GetSipOutboundTrunkResponse {
6160 #[prost(message, optional, tag="1")]
6161 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
6162}
6163#[allow(clippy::derive_partial_eq_without_eq)]
6164#[derive(Clone, PartialEq, ::prost::Message)]
6165pub struct ListSipTrunkRequest {
6166 #[prost(message, optional, tag="1")]
6167 pub page: ::core::option::Option<Pagination>,
6168}
6169#[allow(clippy::derive_partial_eq_without_eq)]
6170#[derive(Clone, PartialEq, ::prost::Message)]
6171pub struct ListSipTrunkResponse {
6172 #[prost(message, repeated, tag="1")]
6173 pub items: ::prost::alloc::vec::Vec<SipTrunkInfo>,
6174}
6175#[allow(clippy::derive_partial_eq_without_eq)]
6177#[derive(Clone, PartialEq, ::prost::Message)]
6178pub struct ListSipInboundTrunkRequest {
6179 #[prost(message, optional, tag="3")]
6180 pub page: ::core::option::Option<Pagination>,
6181 #[prost(string, repeated, tag="1")]
6184 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6185 #[prost(string, repeated, tag="2")]
6187 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6188}
6189#[allow(clippy::derive_partial_eq_without_eq)]
6190#[derive(Clone, PartialEq, ::prost::Message)]
6191pub struct ListSipInboundTrunkResponse {
6192 #[prost(message, repeated, tag="1")]
6193 pub items: ::prost::alloc::vec::Vec<SipInboundTrunkInfo>,
6194}
6195#[allow(clippy::derive_partial_eq_without_eq)]
6197#[derive(Clone, PartialEq, ::prost::Message)]
6198pub struct ListSipOutboundTrunkRequest {
6199 #[prost(message, optional, tag="3")]
6200 pub page: ::core::option::Option<Pagination>,
6201 #[prost(string, repeated, tag="1")]
6204 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6205 #[prost(string, repeated, tag="2")]
6207 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6208}
6209#[allow(clippy::derive_partial_eq_without_eq)]
6210#[derive(Clone, PartialEq, ::prost::Message)]
6211pub struct ListSipOutboundTrunkResponse {
6212 #[prost(message, repeated, tag="1")]
6213 pub items: ::prost::alloc::vec::Vec<SipOutboundTrunkInfo>,
6214}
6215#[allow(clippy::derive_partial_eq_without_eq)]
6216#[derive(Clone, PartialEq, ::prost::Message)]
6217pub struct DeleteSipTrunkRequest {
6218 #[prost(string, tag="1")]
6219 pub sip_trunk_id: ::prost::alloc::string::String,
6220}
6221#[allow(clippy::derive_partial_eq_without_eq)]
6222#[derive(Clone, PartialEq, ::prost::Message)]
6223pub struct SipDispatchRuleDirect {
6224 #[prost(string, tag="1")]
6226 pub room_name: ::prost::alloc::string::String,
6227 #[prost(string, tag="2")]
6229 pub pin: ::prost::alloc::string::String,
6230}
6231#[allow(clippy::derive_partial_eq_without_eq)]
6232#[derive(Clone, PartialEq, ::prost::Message)]
6233pub struct SipDispatchRuleIndividual {
6234 #[prost(string, tag="1")]
6236 pub room_prefix: ::prost::alloc::string::String,
6237 #[prost(string, tag="2")]
6239 pub pin: ::prost::alloc::string::String,
6240 #[prost(bool, tag="3")]
6242 pub no_randomness: bool,
6243}
6244#[allow(clippy::derive_partial_eq_without_eq)]
6245#[derive(Clone, PartialEq, ::prost::Message)]
6246pub struct SipDispatchRuleCallee {
6247 #[prost(string, tag="1")]
6249 pub room_prefix: ::prost::alloc::string::String,
6250 #[prost(string, tag="2")]
6252 pub pin: ::prost::alloc::string::String,
6253 #[prost(bool, tag="3")]
6255 pub randomize: bool,
6256}
6257#[allow(clippy::derive_partial_eq_without_eq)]
6258#[derive(Clone, PartialEq, ::prost::Message)]
6259pub struct SipDispatchRule {
6260 #[prost(oneof="sip_dispatch_rule::Rule", tags="1, 2, 3")]
6261 pub rule: ::core::option::Option<sip_dispatch_rule::Rule>,
6262}
6263pub mod sip_dispatch_rule {
6265 #[allow(clippy::derive_partial_eq_without_eq)]
6266#[derive(Clone, PartialEq, ::prost::Oneof)]
6267 pub enum Rule {
6268 #[prost(message, tag="1")]
6272 DispatchRuleDirect(super::SipDispatchRuleDirect),
6273 #[prost(message, tag="2")]
6275 DispatchRuleIndividual(super::SipDispatchRuleIndividual),
6276 #[prost(message, tag="3")]
6278 DispatchRuleCallee(super::SipDispatchRuleCallee),
6279 }
6280}
6281#[allow(clippy::derive_partial_eq_without_eq)]
6282#[derive(Clone, PartialEq, ::prost::Message)]
6283pub struct CreateSipDispatchRuleRequest {
6284 #[prost(message, optional, tag="10")]
6286 pub dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
6287 #[deprecated]
6288 #[prost(message, optional, tag="1")]
6289 pub rule: ::core::option::Option<SipDispatchRule>,
6290 #[deprecated]
6293 #[prost(string, repeated, tag="2")]
6294 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6295 #[deprecated]
6298 #[prost(bool, tag="3")]
6299 pub hide_phone_number: bool,
6300 #[deprecated]
6302 #[prost(string, repeated, tag="6")]
6303 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6304 #[deprecated]
6306 #[prost(string, tag="4")]
6307 pub name: ::prost::alloc::string::String,
6308 #[deprecated]
6311 #[prost(string, tag="5")]
6312 pub metadata: ::prost::alloc::string::String,
6313 #[prost(map="string, string", tag="7")]
6316 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6317 #[deprecated]
6319 #[prost(string, tag="8")]
6320 pub room_preset: ::prost::alloc::string::String,
6321 #[deprecated]
6323 #[prost(message, optional, tag="9")]
6324 pub room_config: ::core::option::Option<RoomConfiguration>,
6325}
6326#[allow(clippy::derive_partial_eq_without_eq)]
6327#[derive(Clone, PartialEq, ::prost::Message)]
6328pub struct UpdateSipDispatchRuleRequest {
6329 #[prost(string, tag="1")]
6330 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6331 #[prost(oneof="update_sip_dispatch_rule_request::Action", tags="2, 3")]
6332 pub action: ::core::option::Option<update_sip_dispatch_rule_request::Action>,
6333}
6334pub mod update_sip_dispatch_rule_request {
6336 #[allow(clippy::derive_partial_eq_without_eq)]
6337#[derive(Clone, PartialEq, ::prost::Oneof)]
6338 pub enum Action {
6339 #[prost(message, tag="2")]
6340 Replace(super::SipDispatchRuleInfo),
6341 #[prost(message, tag="3")]
6342 Update(super::SipDispatchRuleUpdate),
6343 }
6344}
6345#[allow(clippy::derive_partial_eq_without_eq)]
6346#[derive(Clone, PartialEq, ::prost::Message)]
6347pub struct SipDispatchRuleInfo {
6348 #[prost(string, tag="1")]
6349 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6350 #[prost(message, optional, tag="2")]
6351 pub rule: ::core::option::Option<SipDispatchRule>,
6352 #[prost(string, repeated, tag="3")]
6353 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6354 #[prost(bool, tag="4")]
6355 pub hide_phone_number: bool,
6356 #[prost(string, repeated, tag="7")]
6358 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6359 #[prost(string, repeated, tag="13")]
6361 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6362 #[prost(string, tag="5")]
6364 pub name: ::prost::alloc::string::String,
6365 #[prost(string, tag="6")]
6368 pub metadata: ::prost::alloc::string::String,
6369 #[prost(map="string, string", tag="8")]
6372 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6373 #[prost(string, tag="9")]
6375 pub room_preset: ::prost::alloc::string::String,
6376 #[prost(message, optional, tag="10")]
6378 pub room_config: ::core::option::Option<RoomConfiguration>,
6379 #[prost(message, optional, tag="16")]
6380 pub media: ::core::option::Option<SipMediaConfig>,
6381 #[prost(bool, tag="11")]
6382 pub krisp_enabled: bool,
6383 #[deprecated]
6384 #[prost(enumeration="SipMediaEncryption", tag="12")]
6385 pub media_encryption: i32,
6386 #[prost(message, optional, tag="14")]
6387 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6388 #[prost(message, optional, tag="15")]
6389 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6390}
6391#[allow(clippy::derive_partial_eq_without_eq)]
6392#[derive(Clone, PartialEq, ::prost::Message)]
6393pub struct SipDispatchRuleUpdate {
6394 #[prost(message, optional, tag="1")]
6395 pub trunk_ids: ::core::option::Option<ListUpdate>,
6396 #[prost(message, optional, tag="2")]
6397 pub rule: ::core::option::Option<SipDispatchRule>,
6398 #[prost(string, optional, tag="3")]
6399 pub name: ::core::option::Option<::prost::alloc::string::String>,
6400 #[prost(string, optional, tag="4")]
6401 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6402 #[prost(map="string, string", tag="5")]
6403 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6404 #[deprecated]
6405 #[prost(enumeration="SipMediaEncryption", optional, tag="6")]
6406 pub media_encryption: ::core::option::Option<i32>,
6407 #[prost(message, optional, tag="7")]
6408 pub media: ::core::option::Option<SipMediaConfig>,
6409}
6410#[allow(clippy::derive_partial_eq_without_eq)]
6412#[derive(Clone, PartialEq, ::prost::Message)]
6413pub struct ListSipDispatchRuleRequest {
6414 #[prost(message, optional, tag="3")]
6415 pub page: ::core::option::Option<Pagination>,
6416 #[prost(string, repeated, tag="1")]
6419 pub dispatch_rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6420 #[prost(string, repeated, tag="2")]
6422 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6423}
6424#[allow(clippy::derive_partial_eq_without_eq)]
6425#[derive(Clone, PartialEq, ::prost::Message)]
6426pub struct ListSipDispatchRuleResponse {
6427 #[prost(message, repeated, tag="1")]
6428 pub items: ::prost::alloc::vec::Vec<SipDispatchRuleInfo>,
6429}
6430#[allow(clippy::derive_partial_eq_without_eq)]
6431#[derive(Clone, PartialEq, ::prost::Message)]
6432pub struct DeleteSipDispatchRuleRequest {
6433 #[prost(string, tag="1")]
6434 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6435}
6436#[allow(clippy::derive_partial_eq_without_eq)]
6437#[derive(Clone, PartialEq, ::prost::Message)]
6438pub struct SipOutboundConfig {
6439 #[prost(string, tag="1")]
6441 pub hostname: ::prost::alloc::string::String,
6442 #[prost(string, tag="7")]
6444 pub destination_country: ::prost::alloc::string::String,
6445 #[prost(enumeration="SipTransport", tag="2")]
6447 pub transport: i32,
6448 #[prost(string, tag="3")]
6451 pub auth_username: ::prost::alloc::string::String,
6452 #[prost(string, tag="4")]
6453 pub auth_password: ::prost::alloc::string::String,
6454 #[prost(map="string, string", tag="5")]
6457 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6458 #[prost(map="string, string", tag="6")]
6461 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6462 #[prost(string, tag="8")]
6464 pub from_host: ::prost::alloc::string::String,
6465}
6466#[allow(clippy::derive_partial_eq_without_eq)]
6469#[derive(Clone, PartialEq, ::prost::Message)]
6470pub struct CreateSipParticipantRequest {
6471 #[prost(string, tag="1")]
6473 pub sip_trunk_id: ::prost::alloc::string::String,
6474 #[prost(message, optional, tag="20")]
6475 pub trunk: ::core::option::Option<SipOutboundConfig>,
6476 #[prost(message, optional, tag="24")]
6478 pub sip_request_uri: ::core::option::Option<SipRequestDest>,
6479 #[prost(message, optional, tag="25")]
6481 pub sip_to_header: ::core::option::Option<SipNamedDest>,
6482 #[prost(message, optional, tag="26")]
6484 pub sip_from_header: ::core::option::Option<SipNamedDest>,
6485 #[prost(string, tag="2")]
6487 pub sip_call_to: ::prost::alloc::string::String,
6488 #[prost(string, tag="15")]
6490 pub sip_number: ::prost::alloc::string::String,
6491 #[prost(string, tag="3")]
6493 pub room_name: ::prost::alloc::string::String,
6494 #[prost(string, tag="4")]
6496 pub participant_identity: ::prost::alloc::string::String,
6497 #[prost(string, tag="7")]
6499 pub participant_name: ::prost::alloc::string::String,
6500 #[prost(string, tag="8")]
6502 pub participant_metadata: ::prost::alloc::string::String,
6503 #[prost(map="string, string", tag="9")]
6505 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6506 #[prost(string, tag="5")]
6509 pub dtmf: ::prost::alloc::string::String,
6510 #[deprecated]
6512 #[prost(bool, tag="6")]
6513 pub play_ringtone: bool,
6514 #[prost(bool, tag="13")]
6515 pub play_dialtone: bool,
6516 #[prost(bool, tag="10")]
6519 pub hide_phone_number: bool,
6520 #[prost(map="string, string", tag="16")]
6522 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6523 #[prost(enumeration="SipHeaderOptions", tag="17")]
6530 pub include_headers: i32,
6531 #[prost(message, optional, tag="11")]
6533 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6534 #[prost(message, optional, tag="12")]
6536 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
6537 #[prost(bool, tag="14")]
6539 pub krisp_enabled: bool,
6540 #[deprecated]
6541 #[prost(enumeration="SipMediaEncryption", tag="18")]
6542 pub media_encryption: i32,
6543 #[prost(message, optional, tag="23")]
6544 pub media: ::core::option::Option<SipMediaConfig>,
6545 #[prost(bool, tag="19")]
6547 pub wait_until_answered: bool,
6548 #[prost(string, optional, tag="21")]
6555 pub display_name: ::core::option::Option<::prost::alloc::string::String>,
6556 #[prost(message, optional, tag="22")]
6558 pub destination: ::core::option::Option<Destination>,
6559}
6560#[allow(clippy::derive_partial_eq_without_eq)]
6561#[derive(Clone, PartialEq, ::prost::Message)]
6562pub struct SipParticipantInfo {
6563 #[prost(string, tag="1")]
6564 pub participant_id: ::prost::alloc::string::String,
6565 #[prost(string, tag="2")]
6566 pub participant_identity: ::prost::alloc::string::String,
6567 #[prost(string, tag="3")]
6568 pub room_name: ::prost::alloc::string::String,
6569 #[prost(string, tag="4")]
6570 pub sip_call_id: ::prost::alloc::string::String,
6571}
6572#[allow(clippy::derive_partial_eq_without_eq)]
6573#[derive(Clone, PartialEq, ::prost::Message)]
6574pub struct TransferSipParticipantRequest {
6575 #[prost(string, tag="1")]
6576 pub participant_identity: ::prost::alloc::string::String,
6577 #[prost(string, tag="2")]
6578 pub room_name: ::prost::alloc::string::String,
6579 #[prost(string, tag="3")]
6580 pub transfer_to: ::prost::alloc::string::String,
6581 #[prost(bool, tag="4")]
6583 pub play_dialtone: bool,
6584 #[prost(map="string, string", tag="5")]
6586 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6587 #[prost(message, optional, tag="6")]
6589 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6590}
6591#[allow(clippy::derive_partial_eq_without_eq)]
6592#[derive(Clone, PartialEq, ::prost::Message)]
6593pub struct SipCallInfo {
6594 #[prost(string, tag="1")]
6595 pub call_id: ::prost::alloc::string::String,
6596 #[prost(string, tag="2")]
6597 pub trunk_id: ::prost::alloc::string::String,
6598 #[prost(string, tag="16")]
6599 pub dispatch_rule_id: ::prost::alloc::string::String,
6600 #[prost(string, tag="17")]
6601 pub region: ::prost::alloc::string::String,
6602 #[prost(string, tag="3")]
6603 pub room_name: ::prost::alloc::string::String,
6604 #[prost(string, tag="4")]
6606 pub room_id: ::prost::alloc::string::String,
6607 #[prost(string, tag="5")]
6608 pub participant_identity: ::prost::alloc::string::String,
6609 #[prost(map="string, string", tag="18")]
6610 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6611 #[prost(message, optional, tag="6")]
6612 pub from_uri: ::core::option::Option<SipUri>,
6613 #[prost(message, optional, tag="7")]
6614 pub to_uri: ::core::option::Option<SipUri>,
6615 #[deprecated]
6616 #[prost(int64, tag="9")]
6617 pub created_at: i64,
6618 #[deprecated]
6619 #[prost(int64, tag="10")]
6620 pub started_at: i64,
6621 #[deprecated]
6622 #[prost(int64, tag="11")]
6623 pub ended_at: i64,
6624 #[prost(enumeration="SipFeature", repeated, tag="14")]
6625 pub enabled_features: ::prost::alloc::vec::Vec<i32>,
6626 #[prost(enumeration="SipCallDirection", tag="15")]
6627 pub call_direction: i32,
6628 #[prost(enumeration="SipCallStatus", tag="8")]
6629 pub call_status: i32,
6630 #[prost(int64, tag="22")]
6631 pub created_at_ns: i64,
6632 #[prost(int64, tag="23")]
6633 pub started_at_ns: i64,
6634 #[prost(int64, tag="24")]
6635 pub ended_at_ns: i64,
6636 #[prost(enumeration="DisconnectReason", tag="12")]
6637 pub disconnect_reason: i32,
6638 #[prost(string, tag="13")]
6639 pub error: ::prost::alloc::string::String,
6640 #[prost(message, optional, tag="19")]
6641 pub call_status_code: ::core::option::Option<SipStatus>,
6642 #[prost(string, tag="20")]
6643 pub audio_codec: ::prost::alloc::string::String,
6644 #[prost(string, tag="21")]
6645 pub media_encryption: ::prost::alloc::string::String,
6646 #[prost(string, tag="25")]
6647 pub pcap_file_link: ::prost::alloc::string::String,
6648 #[prost(message, repeated, tag="26")]
6649 pub call_context: ::prost::alloc::vec::Vec<::pbjson_types::Any>,
6650 #[prost(message, optional, tag="27")]
6651 pub provider_info: ::core::option::Option<ProviderInfo>,
6652 #[prost(string, tag="28")]
6653 pub sip_call_id: ::prost::alloc::string::String,
6654}
6655#[allow(clippy::derive_partial_eq_without_eq)]
6656#[derive(Clone, PartialEq, ::prost::Message)]
6657pub struct SipTransferInfo {
6658 #[prost(string, tag="1")]
6659 pub transfer_id: ::prost::alloc::string::String,
6660 #[prost(string, tag="2")]
6661 pub call_id: ::prost::alloc::string::String,
6662 #[prost(string, tag="3")]
6663 pub transfer_to: ::prost::alloc::string::String,
6664 #[prost(int64, tag="4")]
6665 pub transfer_initiated_at_ns: i64,
6666 #[prost(int64, tag="5")]
6667 pub transfer_completed_at_ns: i64,
6668 #[prost(enumeration="SipTransferStatus", tag="6")]
6669 pub transfer_status: i32,
6670 #[prost(string, tag="7")]
6671 pub error: ::prost::alloc::string::String,
6672 #[prost(message, optional, tag="8")]
6673 pub transfer_status_code: ::core::option::Option<SipStatus>,
6674}
6675#[allow(clippy::derive_partial_eq_without_eq)]
6676#[derive(Clone, PartialEq, ::prost::Message)]
6677pub struct SipUri {
6678 #[prost(string, tag="1")]
6679 pub user: ::prost::alloc::string::String,
6680 #[prost(string, tag="2")]
6681 pub host: ::prost::alloc::string::String,
6682 #[prost(string, tag="3")]
6683 pub ip: ::prost::alloc::string::String,
6684 #[prost(uint32, tag="4")]
6685 pub port: u32,
6686 #[prost(enumeration="SipTransport", tag="5")]
6687 pub transport: i32,
6688}
6689#[allow(clippy::derive_partial_eq_without_eq)]
6690#[derive(Clone, PartialEq, ::prost::Message)]
6691pub struct SipRequestDest {
6692 #[prost(oneof="sip_request_dest::Uri", tags="1, 2")]
6693 pub uri: ::core::option::Option<sip_request_dest::Uri>,
6694}
6695pub mod sip_request_dest {
6697 #[allow(clippy::derive_partial_eq_without_eq)]
6698#[derive(Clone, PartialEq, ::prost::Oneof)]
6699 pub enum Uri {
6700 #[prost(string, tag="1")]
6702 Raw(::prost::alloc::string::String),
6703 #[prost(message, tag="2")]
6704 Values(super::SipUri),
6705 }
6706}
6707#[allow(clippy::derive_partial_eq_without_eq)]
6708#[derive(Clone, PartialEq, ::prost::Message)]
6709pub struct SipNamedDest {
6710 #[prost(string, tag="3")]
6711 pub display_name: ::prost::alloc::string::String,
6712 #[prost(oneof="sip_named_dest::Uri", tags="1, 2")]
6713 pub uri: ::core::option::Option<sip_named_dest::Uri>,
6714}
6715pub mod sip_named_dest {
6717 #[allow(clippy::derive_partial_eq_without_eq)]
6718#[derive(Clone, PartialEq, ::prost::Oneof)]
6719 pub enum Uri {
6720 #[prost(string, tag="1")]
6722 Raw(::prost::alloc::string::String),
6723 #[prost(message, tag="2")]
6724 Values(super::SipUri),
6725 }
6726}
6727#[allow(clippy::derive_partial_eq_without_eq)]
6728#[derive(Clone, PartialEq, ::prost::Message)]
6729pub struct Destination {
6730 #[prost(string, tag="1")]
6731 pub city: ::prost::alloc::string::String,
6732 #[prost(string, tag="2")]
6733 pub country: ::prost::alloc::string::String,
6734 #[prost(string, tag="3")]
6735 pub region: ::prost::alloc::string::String,
6736}
6737#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6738#[repr(i32)]
6739pub enum SipStatusCode {
6740 SipStatusUnknown = 0,
6741 SipStatusTrying = 100,
6742 SipStatusRinging = 180,
6743 SipStatusCallIsForwarded = 181,
6744 SipStatusQueued = 182,
6745 SipStatusSessionProgress = 183,
6746 SipStatusEarlyDialogTerminated = 199,
6747 SipStatusOk = 200,
6748 SipStatusAccepted = 202,
6749 SipStatusNoNotification = 204,
6750 SipStatusMultipleChoices = 300,
6751 SipStatusMovedPermanently = 301,
6752 SipStatusMovedTemporarily = 302,
6753 SipStatusUseProxy = 305,
6754 SipStatusAlternativeService = 380,
6755 SipStatusBadRequest = 400,
6756 SipStatusUnauthorized = 401,
6757 SipStatusPaymentRequired = 402,
6758 SipStatusForbidden = 403,
6759 SipStatusNotfound = 404,
6760 SipStatusMethodNotAllowed = 405,
6761 SipStatusNotAcceptable = 406,
6762 SipStatusProxyAuthRequired = 407,
6763 SipStatusRequestTimeout = 408,
6764 SipStatusConflict = 409,
6765 SipStatusGone = 410,
6766 SipStatusLengthRequired = 411,
6767 SipStatusConditionalRequestFailed = 412,
6768 SipStatusRequestEntityTooLarge = 413,
6769 SipStatusRequestUriTooLong = 414,
6770 SipStatusUnsupportedMediaType = 415,
6771 SipStatusRequestedRangeNotSatisfiable = 416,
6772 SipStatusUnknownResourcePriority = 417,
6773 SipStatusBadExtension = 420,
6774 SipStatusExtensionRequired = 421,
6775 SipStatusSessionIntervalTooSmall = 422,
6776 SipStatusIntervalTooBrief = 423,
6777 SipStatusBadLocationInformation = 424,
6778 SipStatusBadAlertMessage = 425,
6779 SipStatusUseIdentityHeader = 428,
6780 SipStatusProvideReferrerIdentity = 429,
6781 SipStatusFlowFailed = 430,
6782 SipStatusAnonymityDisallowed = 433,
6783 SipStatusBadIdentityInfo = 436,
6784 SipStatusUnsupportedCertificate = 437,
6785 SipStatusInvalidIdentityHeader = 438,
6786 SipStatusFirstHopLacksOutboundSupport = 439,
6787 SipStatusMaxBreadthExceeded = 440,
6788 SipStatusBadInfoPackage = 469,
6789 SipStatusConsentNeeded = 470,
6790 SipStatusTemporarilyUnavailable = 480,
6791 SipStatusCallTransactionDoesNotExists = 481,
6792 SipStatusLoopDetected = 482,
6793 SipStatusTooManyHops = 483,
6794 SipStatusAddressIncomplete = 484,
6795 SipStatusAmbiguous = 485,
6796 SipStatusBusyHere = 486,
6797 SipStatusRequestTerminated = 487,
6798 SipStatusNotAcceptableHere = 488,
6799 SipStatusBadEvent = 489,
6800 SipStatusRequestPending = 491,
6801 SipStatusUndecipherable = 493,
6802 SipStatusSecurityAgreementRequired = 494,
6803 SipStatusInternalServerError = 500,
6804 SipStatusNotImplemented = 501,
6805 SipStatusBadGateway = 502,
6806 SipStatusServiceUnavailable = 503,
6807 SipStatusGatewayTimeout = 504,
6808 SipStatusVersionNotSupported = 505,
6809 SipStatusMessageTooLarge = 513,
6810 SipStatusGlobalBusyEverywhere = 600,
6811 SipStatusGlobalDecline = 603,
6812 SipStatusGlobalDoesNotExistAnywhere = 604,
6813 SipStatusGlobalNotAcceptable = 606,
6814 SipStatusGlobalUnwanted = 607,
6815 SipStatusGlobalRejected = 608,
6816}
6817impl SipStatusCode {
6818 pub fn as_str_name(&self) -> &'static str {
6823 match self {
6824 SipStatusCode::SipStatusUnknown => "SIP_STATUS_UNKNOWN",
6825 SipStatusCode::SipStatusTrying => "SIP_STATUS_TRYING",
6826 SipStatusCode::SipStatusRinging => "SIP_STATUS_RINGING",
6827 SipStatusCode::SipStatusCallIsForwarded => "SIP_STATUS_CALL_IS_FORWARDED",
6828 SipStatusCode::SipStatusQueued => "SIP_STATUS_QUEUED",
6829 SipStatusCode::SipStatusSessionProgress => "SIP_STATUS_SESSION_PROGRESS",
6830 SipStatusCode::SipStatusEarlyDialogTerminated => "SIP_STATUS_EARLY_DIALOG_TERMINATED",
6831 SipStatusCode::SipStatusOk => "SIP_STATUS_OK",
6832 SipStatusCode::SipStatusAccepted => "SIP_STATUS_ACCEPTED",
6833 SipStatusCode::SipStatusNoNotification => "SIP_STATUS_NO_NOTIFICATION",
6834 SipStatusCode::SipStatusMultipleChoices => "SIP_STATUS_MULTIPLE_CHOICES",
6835 SipStatusCode::SipStatusMovedPermanently => "SIP_STATUS_MOVED_PERMANENTLY",
6836 SipStatusCode::SipStatusMovedTemporarily => "SIP_STATUS_MOVED_TEMPORARILY",
6837 SipStatusCode::SipStatusUseProxy => "SIP_STATUS_USE_PROXY",
6838 SipStatusCode::SipStatusAlternativeService => "SIP_STATUS_ALTERNATIVE_SERVICE",
6839 SipStatusCode::SipStatusBadRequest => "SIP_STATUS_BAD_REQUEST",
6840 SipStatusCode::SipStatusUnauthorized => "SIP_STATUS_UNAUTHORIZED",
6841 SipStatusCode::SipStatusPaymentRequired => "SIP_STATUS_PAYMENT_REQUIRED",
6842 SipStatusCode::SipStatusForbidden => "SIP_STATUS_FORBIDDEN",
6843 SipStatusCode::SipStatusNotfound => "SIP_STATUS_NOTFOUND",
6844 SipStatusCode::SipStatusMethodNotAllowed => "SIP_STATUS_METHOD_NOT_ALLOWED",
6845 SipStatusCode::SipStatusNotAcceptable => "SIP_STATUS_NOT_ACCEPTABLE",
6846 SipStatusCode::SipStatusProxyAuthRequired => "SIP_STATUS_PROXY_AUTH_REQUIRED",
6847 SipStatusCode::SipStatusRequestTimeout => "SIP_STATUS_REQUEST_TIMEOUT",
6848 SipStatusCode::SipStatusConflict => "SIP_STATUS_CONFLICT",
6849 SipStatusCode::SipStatusGone => "SIP_STATUS_GONE",
6850 SipStatusCode::SipStatusLengthRequired => "SIP_STATUS_LENGTH_REQUIRED",
6851 SipStatusCode::SipStatusConditionalRequestFailed => "SIP_STATUS_CONDITIONAL_REQUEST_FAILED",
6852 SipStatusCode::SipStatusRequestEntityTooLarge => "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE",
6853 SipStatusCode::SipStatusRequestUriTooLong => "SIP_STATUS_REQUEST_URI_TOO_LONG",
6854 SipStatusCode::SipStatusUnsupportedMediaType => "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE",
6855 SipStatusCode::SipStatusRequestedRangeNotSatisfiable => "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE",
6856 SipStatusCode::SipStatusUnknownResourcePriority => "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY",
6857 SipStatusCode::SipStatusBadExtension => "SIP_STATUS_BAD_EXTENSION",
6858 SipStatusCode::SipStatusExtensionRequired => "SIP_STATUS_EXTENSION_REQUIRED",
6859 SipStatusCode::SipStatusSessionIntervalTooSmall => "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL",
6860 SipStatusCode::SipStatusIntervalTooBrief => "SIP_STATUS_INTERVAL_TOO_BRIEF",
6861 SipStatusCode::SipStatusBadLocationInformation => "SIP_STATUS_BAD_LOCATION_INFORMATION",
6862 SipStatusCode::SipStatusBadAlertMessage => "SIP_STATUS_BAD_ALERT_MESSAGE",
6863 SipStatusCode::SipStatusUseIdentityHeader => "SIP_STATUS_USE_IDENTITY_HEADER",
6864 SipStatusCode::SipStatusProvideReferrerIdentity => "SIP_STATUS_PROVIDE_REFERRER_IDENTITY",
6865 SipStatusCode::SipStatusFlowFailed => "SIP_STATUS_FLOW_FAILED",
6866 SipStatusCode::SipStatusAnonymityDisallowed => "SIP_STATUS_ANONYMITY_DISALLOWED",
6867 SipStatusCode::SipStatusBadIdentityInfo => "SIP_STATUS_BAD_IDENTITY_INFO",
6868 SipStatusCode::SipStatusUnsupportedCertificate => "SIP_STATUS_UNSUPPORTED_CERTIFICATE",
6869 SipStatusCode::SipStatusInvalidIdentityHeader => "SIP_STATUS_INVALID_IDENTITY_HEADER",
6870 SipStatusCode::SipStatusFirstHopLacksOutboundSupport => "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT",
6871 SipStatusCode::SipStatusMaxBreadthExceeded => "SIP_STATUS_MAX_BREADTH_EXCEEDED",
6872 SipStatusCode::SipStatusBadInfoPackage => "SIP_STATUS_BAD_INFO_PACKAGE",
6873 SipStatusCode::SipStatusConsentNeeded => "SIP_STATUS_CONSENT_NEEDED",
6874 SipStatusCode::SipStatusTemporarilyUnavailable => "SIP_STATUS_TEMPORARILY_UNAVAILABLE",
6875 SipStatusCode::SipStatusCallTransactionDoesNotExists => "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS",
6876 SipStatusCode::SipStatusLoopDetected => "SIP_STATUS_LOOP_DETECTED",
6877 SipStatusCode::SipStatusTooManyHops => "SIP_STATUS_TOO_MANY_HOPS",
6878 SipStatusCode::SipStatusAddressIncomplete => "SIP_STATUS_ADDRESS_INCOMPLETE",
6879 SipStatusCode::SipStatusAmbiguous => "SIP_STATUS_AMBIGUOUS",
6880 SipStatusCode::SipStatusBusyHere => "SIP_STATUS_BUSY_HERE",
6881 SipStatusCode::SipStatusRequestTerminated => "SIP_STATUS_REQUEST_TERMINATED",
6882 SipStatusCode::SipStatusNotAcceptableHere => "SIP_STATUS_NOT_ACCEPTABLE_HERE",
6883 SipStatusCode::SipStatusBadEvent => "SIP_STATUS_BAD_EVENT",
6884 SipStatusCode::SipStatusRequestPending => "SIP_STATUS_REQUEST_PENDING",
6885 SipStatusCode::SipStatusUndecipherable => "SIP_STATUS_UNDECIPHERABLE",
6886 SipStatusCode::SipStatusSecurityAgreementRequired => "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED",
6887 SipStatusCode::SipStatusInternalServerError => "SIP_STATUS_INTERNAL_SERVER_ERROR",
6888 SipStatusCode::SipStatusNotImplemented => "SIP_STATUS_NOT_IMPLEMENTED",
6889 SipStatusCode::SipStatusBadGateway => "SIP_STATUS_BAD_GATEWAY",
6890 SipStatusCode::SipStatusServiceUnavailable => "SIP_STATUS_SERVICE_UNAVAILABLE",
6891 SipStatusCode::SipStatusGatewayTimeout => "SIP_STATUS_GATEWAY_TIMEOUT",
6892 SipStatusCode::SipStatusVersionNotSupported => "SIP_STATUS_VERSION_NOT_SUPPORTED",
6893 SipStatusCode::SipStatusMessageTooLarge => "SIP_STATUS_MESSAGE_TOO_LARGE",
6894 SipStatusCode::SipStatusGlobalBusyEverywhere => "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE",
6895 SipStatusCode::SipStatusGlobalDecline => "SIP_STATUS_GLOBAL_DECLINE",
6896 SipStatusCode::SipStatusGlobalDoesNotExistAnywhere => "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE",
6897 SipStatusCode::SipStatusGlobalNotAcceptable => "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE",
6898 SipStatusCode::SipStatusGlobalUnwanted => "SIP_STATUS_GLOBAL_UNWANTED",
6899 SipStatusCode::SipStatusGlobalRejected => "SIP_STATUS_GLOBAL_REJECTED",
6900 }
6901 }
6902 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6904 match value {
6905 "SIP_STATUS_UNKNOWN" => Some(Self::SipStatusUnknown),
6906 "SIP_STATUS_TRYING" => Some(Self::SipStatusTrying),
6907 "SIP_STATUS_RINGING" => Some(Self::SipStatusRinging),
6908 "SIP_STATUS_CALL_IS_FORWARDED" => Some(Self::SipStatusCallIsForwarded),
6909 "SIP_STATUS_QUEUED" => Some(Self::SipStatusQueued),
6910 "SIP_STATUS_SESSION_PROGRESS" => Some(Self::SipStatusSessionProgress),
6911 "SIP_STATUS_EARLY_DIALOG_TERMINATED" => Some(Self::SipStatusEarlyDialogTerminated),
6912 "SIP_STATUS_OK" => Some(Self::SipStatusOk),
6913 "SIP_STATUS_ACCEPTED" => Some(Self::SipStatusAccepted),
6914 "SIP_STATUS_NO_NOTIFICATION" => Some(Self::SipStatusNoNotification),
6915 "SIP_STATUS_MULTIPLE_CHOICES" => Some(Self::SipStatusMultipleChoices),
6916 "SIP_STATUS_MOVED_PERMANENTLY" => Some(Self::SipStatusMovedPermanently),
6917 "SIP_STATUS_MOVED_TEMPORARILY" => Some(Self::SipStatusMovedTemporarily),
6918 "SIP_STATUS_USE_PROXY" => Some(Self::SipStatusUseProxy),
6919 "SIP_STATUS_ALTERNATIVE_SERVICE" => Some(Self::SipStatusAlternativeService),
6920 "SIP_STATUS_BAD_REQUEST" => Some(Self::SipStatusBadRequest),
6921 "SIP_STATUS_UNAUTHORIZED" => Some(Self::SipStatusUnauthorized),
6922 "SIP_STATUS_PAYMENT_REQUIRED" => Some(Self::SipStatusPaymentRequired),
6923 "SIP_STATUS_FORBIDDEN" => Some(Self::SipStatusForbidden),
6924 "SIP_STATUS_NOTFOUND" => Some(Self::SipStatusNotfound),
6925 "SIP_STATUS_METHOD_NOT_ALLOWED" => Some(Self::SipStatusMethodNotAllowed),
6926 "SIP_STATUS_NOT_ACCEPTABLE" => Some(Self::SipStatusNotAcceptable),
6927 "SIP_STATUS_PROXY_AUTH_REQUIRED" => Some(Self::SipStatusProxyAuthRequired),
6928 "SIP_STATUS_REQUEST_TIMEOUT" => Some(Self::SipStatusRequestTimeout),
6929 "SIP_STATUS_CONFLICT" => Some(Self::SipStatusConflict),
6930 "SIP_STATUS_GONE" => Some(Self::SipStatusGone),
6931 "SIP_STATUS_LENGTH_REQUIRED" => Some(Self::SipStatusLengthRequired),
6932 "SIP_STATUS_CONDITIONAL_REQUEST_FAILED" => Some(Self::SipStatusConditionalRequestFailed),
6933 "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE" => Some(Self::SipStatusRequestEntityTooLarge),
6934 "SIP_STATUS_REQUEST_URI_TOO_LONG" => Some(Self::SipStatusRequestUriTooLong),
6935 "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE" => Some(Self::SipStatusUnsupportedMediaType),
6936 "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE" => Some(Self::SipStatusRequestedRangeNotSatisfiable),
6937 "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY" => Some(Self::SipStatusUnknownResourcePriority),
6938 "SIP_STATUS_BAD_EXTENSION" => Some(Self::SipStatusBadExtension),
6939 "SIP_STATUS_EXTENSION_REQUIRED" => Some(Self::SipStatusExtensionRequired),
6940 "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL" => Some(Self::SipStatusSessionIntervalTooSmall),
6941 "SIP_STATUS_INTERVAL_TOO_BRIEF" => Some(Self::SipStatusIntervalTooBrief),
6942 "SIP_STATUS_BAD_LOCATION_INFORMATION" => Some(Self::SipStatusBadLocationInformation),
6943 "SIP_STATUS_BAD_ALERT_MESSAGE" => Some(Self::SipStatusBadAlertMessage),
6944 "SIP_STATUS_USE_IDENTITY_HEADER" => Some(Self::SipStatusUseIdentityHeader),
6945 "SIP_STATUS_PROVIDE_REFERRER_IDENTITY" => Some(Self::SipStatusProvideReferrerIdentity),
6946 "SIP_STATUS_FLOW_FAILED" => Some(Self::SipStatusFlowFailed),
6947 "SIP_STATUS_ANONYMITY_DISALLOWED" => Some(Self::SipStatusAnonymityDisallowed),
6948 "SIP_STATUS_BAD_IDENTITY_INFO" => Some(Self::SipStatusBadIdentityInfo),
6949 "SIP_STATUS_UNSUPPORTED_CERTIFICATE" => Some(Self::SipStatusUnsupportedCertificate),
6950 "SIP_STATUS_INVALID_IDENTITY_HEADER" => Some(Self::SipStatusInvalidIdentityHeader),
6951 "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT" => Some(Self::SipStatusFirstHopLacksOutboundSupport),
6952 "SIP_STATUS_MAX_BREADTH_EXCEEDED" => Some(Self::SipStatusMaxBreadthExceeded),
6953 "SIP_STATUS_BAD_INFO_PACKAGE" => Some(Self::SipStatusBadInfoPackage),
6954 "SIP_STATUS_CONSENT_NEEDED" => Some(Self::SipStatusConsentNeeded),
6955 "SIP_STATUS_TEMPORARILY_UNAVAILABLE" => Some(Self::SipStatusTemporarilyUnavailable),
6956 "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS" => Some(Self::SipStatusCallTransactionDoesNotExists),
6957 "SIP_STATUS_LOOP_DETECTED" => Some(Self::SipStatusLoopDetected),
6958 "SIP_STATUS_TOO_MANY_HOPS" => Some(Self::SipStatusTooManyHops),
6959 "SIP_STATUS_ADDRESS_INCOMPLETE" => Some(Self::SipStatusAddressIncomplete),
6960 "SIP_STATUS_AMBIGUOUS" => Some(Self::SipStatusAmbiguous),
6961 "SIP_STATUS_BUSY_HERE" => Some(Self::SipStatusBusyHere),
6962 "SIP_STATUS_REQUEST_TERMINATED" => Some(Self::SipStatusRequestTerminated),
6963 "SIP_STATUS_NOT_ACCEPTABLE_HERE" => Some(Self::SipStatusNotAcceptableHere),
6964 "SIP_STATUS_BAD_EVENT" => Some(Self::SipStatusBadEvent),
6965 "SIP_STATUS_REQUEST_PENDING" => Some(Self::SipStatusRequestPending),
6966 "SIP_STATUS_UNDECIPHERABLE" => Some(Self::SipStatusUndecipherable),
6967 "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED" => Some(Self::SipStatusSecurityAgreementRequired),
6968 "SIP_STATUS_INTERNAL_SERVER_ERROR" => Some(Self::SipStatusInternalServerError),
6969 "SIP_STATUS_NOT_IMPLEMENTED" => Some(Self::SipStatusNotImplemented),
6970 "SIP_STATUS_BAD_GATEWAY" => Some(Self::SipStatusBadGateway),
6971 "SIP_STATUS_SERVICE_UNAVAILABLE" => Some(Self::SipStatusServiceUnavailable),
6972 "SIP_STATUS_GATEWAY_TIMEOUT" => Some(Self::SipStatusGatewayTimeout),
6973 "SIP_STATUS_VERSION_NOT_SUPPORTED" => Some(Self::SipStatusVersionNotSupported),
6974 "SIP_STATUS_MESSAGE_TOO_LARGE" => Some(Self::SipStatusMessageTooLarge),
6975 "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE" => Some(Self::SipStatusGlobalBusyEverywhere),
6976 "SIP_STATUS_GLOBAL_DECLINE" => Some(Self::SipStatusGlobalDecline),
6977 "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE" => Some(Self::SipStatusGlobalDoesNotExistAnywhere),
6978 "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE" => Some(Self::SipStatusGlobalNotAcceptable),
6979 "SIP_STATUS_GLOBAL_UNWANTED" => Some(Self::SipStatusGlobalUnwanted),
6980 "SIP_STATUS_GLOBAL_REJECTED" => Some(Self::SipStatusGlobalRejected),
6981 _ => None,
6982 }
6983 }
6984}
6985#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6986#[repr(i32)]
6987pub enum SipTransport {
6988 Auto = 0,
6989 Udp = 1,
6990 Tcp = 2,
6991 Tls = 3,
6992}
6993impl SipTransport {
6994 pub fn as_str_name(&self) -> &'static str {
6999 match self {
7000 SipTransport::Auto => "SIP_TRANSPORT_AUTO",
7001 SipTransport::Udp => "SIP_TRANSPORT_UDP",
7002 SipTransport::Tcp => "SIP_TRANSPORT_TCP",
7003 SipTransport::Tls => "SIP_TRANSPORT_TLS",
7004 }
7005 }
7006 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7008 match value {
7009 "SIP_TRANSPORT_AUTO" => Some(Self::Auto),
7010 "SIP_TRANSPORT_UDP" => Some(Self::Udp),
7011 "SIP_TRANSPORT_TCP" => Some(Self::Tcp),
7012 "SIP_TRANSPORT_TLS" => Some(Self::Tls),
7013 _ => None,
7014 }
7015 }
7016}
7017#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7018#[repr(i32)]
7019pub enum SipHeaderOptions {
7020 SipNoHeaders = 0,
7022 SipXHeaders = 1,
7024 SipAllHeaders = 2,
7026}
7027impl SipHeaderOptions {
7028 pub fn as_str_name(&self) -> &'static str {
7033 match self {
7034 SipHeaderOptions::SipNoHeaders => "SIP_NO_HEADERS",
7035 SipHeaderOptions::SipXHeaders => "SIP_X_HEADERS",
7036 SipHeaderOptions::SipAllHeaders => "SIP_ALL_HEADERS",
7037 }
7038 }
7039 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7041 match value {
7042 "SIP_NO_HEADERS" => Some(Self::SipNoHeaders),
7043 "SIP_X_HEADERS" => Some(Self::SipXHeaders),
7044 "SIP_ALL_HEADERS" => Some(Self::SipAllHeaders),
7045 _ => None,
7046 }
7047 }
7048}
7049#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7050#[repr(i32)]
7051pub enum SipMediaEncryption {
7052 SipMediaEncryptDisable = 0,
7054 SipMediaEncryptAllow = 1,
7056 SipMediaEncryptRequire = 2,
7058}
7059impl SipMediaEncryption {
7060 pub fn as_str_name(&self) -> &'static str {
7065 match self {
7066 SipMediaEncryption::SipMediaEncryptDisable => "SIP_MEDIA_ENCRYPT_DISABLE",
7067 SipMediaEncryption::SipMediaEncryptAllow => "SIP_MEDIA_ENCRYPT_ALLOW",
7068 SipMediaEncryption::SipMediaEncryptRequire => "SIP_MEDIA_ENCRYPT_REQUIRE",
7069 }
7070 }
7071 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7073 match value {
7074 "SIP_MEDIA_ENCRYPT_DISABLE" => Some(Self::SipMediaEncryptDisable),
7075 "SIP_MEDIA_ENCRYPT_ALLOW" => Some(Self::SipMediaEncryptAllow),
7076 "SIP_MEDIA_ENCRYPT_REQUIRE" => Some(Self::SipMediaEncryptRequire),
7077 _ => None,
7078 }
7079 }
7080}
7081#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7082#[repr(i32)]
7083pub enum ProviderType {
7084 Unknown = 0,
7085 Internal = 1,
7087 External = 2,
7089}
7090impl ProviderType {
7091 pub fn as_str_name(&self) -> &'static str {
7096 match self {
7097 ProviderType::Unknown => "PROVIDER_TYPE_UNKNOWN",
7098 ProviderType::Internal => "PROVIDER_TYPE_INTERNAL",
7099 ProviderType::External => "PROVIDER_TYPE_EXTERNAL",
7100 }
7101 }
7102 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7104 match value {
7105 "PROVIDER_TYPE_UNKNOWN" => Some(Self::Unknown),
7106 "PROVIDER_TYPE_INTERNAL" => Some(Self::Internal),
7107 "PROVIDER_TYPE_EXTERNAL" => Some(Self::External),
7108 _ => None,
7109 }
7110 }
7111}
7112#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7113#[repr(i32)]
7114pub enum SipCallStatus {
7115 ScsCallIncoming = 0,
7117 ScsParticipantJoined = 1,
7119 ScsActive = 2,
7121 ScsDisconnected = 3,
7123 ScsError = 4,
7125}
7126impl SipCallStatus {
7127 pub fn as_str_name(&self) -> &'static str {
7132 match self {
7133 SipCallStatus::ScsCallIncoming => "SCS_CALL_INCOMING",
7134 SipCallStatus::ScsParticipantJoined => "SCS_PARTICIPANT_JOINED",
7135 SipCallStatus::ScsActive => "SCS_ACTIVE",
7136 SipCallStatus::ScsDisconnected => "SCS_DISCONNECTED",
7137 SipCallStatus::ScsError => "SCS_ERROR",
7138 }
7139 }
7140 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7142 match value {
7143 "SCS_CALL_INCOMING" => Some(Self::ScsCallIncoming),
7144 "SCS_PARTICIPANT_JOINED" => Some(Self::ScsParticipantJoined),
7145 "SCS_ACTIVE" => Some(Self::ScsActive),
7146 "SCS_DISCONNECTED" => Some(Self::ScsDisconnected),
7147 "SCS_ERROR" => Some(Self::ScsError),
7148 _ => None,
7149 }
7150 }
7151}
7152#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7153#[repr(i32)]
7154pub enum SipTransferStatus {
7155 StsTransferOngoing = 0,
7156 StsTransferFailed = 1,
7157 StsTransferSuccessful = 2,
7158}
7159impl SipTransferStatus {
7160 pub fn as_str_name(&self) -> &'static str {
7165 match self {
7166 SipTransferStatus::StsTransferOngoing => "STS_TRANSFER_ONGOING",
7167 SipTransferStatus::StsTransferFailed => "STS_TRANSFER_FAILED",
7168 SipTransferStatus::StsTransferSuccessful => "STS_TRANSFER_SUCCESSFUL",
7169 }
7170 }
7171 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7173 match value {
7174 "STS_TRANSFER_ONGOING" => Some(Self::StsTransferOngoing),
7175 "STS_TRANSFER_FAILED" => Some(Self::StsTransferFailed),
7176 "STS_TRANSFER_SUCCESSFUL" => Some(Self::StsTransferSuccessful),
7177 _ => None,
7178 }
7179 }
7180}
7181#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7182#[repr(i32)]
7183pub enum SipFeature {
7184 None = 0,
7185 KrispEnabled = 1,
7186}
7187impl SipFeature {
7188 pub fn as_str_name(&self) -> &'static str {
7193 match self {
7194 SipFeature::None => "NONE",
7195 SipFeature::KrispEnabled => "KRISP_ENABLED",
7196 }
7197 }
7198 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7200 match value {
7201 "NONE" => Some(Self::None),
7202 "KRISP_ENABLED" => Some(Self::KrispEnabled),
7203 _ => None,
7204 }
7205 }
7206}
7207#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7208#[repr(i32)]
7209pub enum SipCallDirection {
7210 ScdUnknown = 0,
7211 ScdInbound = 1,
7212 ScdOutbound = 2,
7213}
7214impl SipCallDirection {
7215 pub fn as_str_name(&self) -> &'static str {
7220 match self {
7221 SipCallDirection::ScdUnknown => "SCD_UNKNOWN",
7222 SipCallDirection::ScdInbound => "SCD_INBOUND",
7223 SipCallDirection::ScdOutbound => "SCD_OUTBOUND",
7224 }
7225 }
7226 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7228 match value {
7229 "SCD_UNKNOWN" => Some(Self::ScdUnknown),
7230 "SCD_INBOUND" => Some(Self::ScdInbound),
7231 "SCD_OUTBOUND" => Some(Self::ScdOutbound),
7232 _ => None,
7233 }
7234 }
7235}
7236#[allow(clippy::derive_partial_eq_without_eq)]
7237#[derive(Clone, PartialEq, ::prost::Message)]
7238pub struct DialWhatsAppCallRequest {
7239 #[prost(string, tag="1")]
7241 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
7242 #[prost(string, tag="2")]
7244 pub whatsapp_to_phone_number: ::prost::alloc::string::String,
7245 #[prost(string, tag="3")]
7247 pub whatsapp_api_key: ::prost::alloc::string::String,
7248 #[prost(string, tag="12")]
7250 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
7251 #[prost(string, tag="4")]
7253 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
7254 #[prost(string, tag="5")]
7256 pub room_name: ::prost::alloc::string::String,
7257 #[prost(message, repeated, tag="6")]
7259 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7260 #[prost(string, tag="7")]
7263 pub participant_identity: ::prost::alloc::string::String,
7264 #[prost(string, tag="8")]
7266 pub participant_name: ::prost::alloc::string::String,
7267 #[prost(string, tag="9")]
7269 pub participant_metadata: ::prost::alloc::string::String,
7270 #[prost(map="string, string", tag="10")]
7272 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7273 #[prost(string, tag="11")]
7275 pub destination_country: ::prost::alloc::string::String,
7276 #[prost(message, optional, tag="13")]
7278 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
7279}
7280#[allow(clippy::derive_partial_eq_without_eq)]
7281#[derive(Clone, PartialEq, ::prost::Message)]
7282pub struct DialWhatsAppCallResponse {
7283 #[prost(string, tag="1")]
7285 pub whatsapp_call_id: ::prost::alloc::string::String,
7286 #[prost(string, tag="2")]
7288 pub room_name: ::prost::alloc::string::String,
7289}
7290#[allow(clippy::derive_partial_eq_without_eq)]
7291#[derive(Clone, PartialEq, ::prost::Message)]
7292pub struct DisconnectWhatsAppCallRequest {
7293 #[prost(string, tag="1")]
7295 pub whatsapp_call_id: ::prost::alloc::string::String,
7296 #[prost(string, tag="2")]
7300 pub whatsapp_api_key: ::prost::alloc::string::String,
7301 #[prost(enumeration="disconnect_whats_app_call_request::DisconnectReason", tag="3")]
7303 pub disconnect_reason: i32,
7304}
7305pub mod disconnect_whats_app_call_request {
7307 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7308 #[repr(i32)]
7309 pub enum DisconnectReason {
7310 BusinessInitiated = 0,
7312 UserInitiated = 1,
7318 }
7319 impl DisconnectReason {
7320 pub fn as_str_name(&self) -> &'static str {
7325 match self {
7326 DisconnectReason::BusinessInitiated => "BUSINESS_INITIATED",
7327 DisconnectReason::UserInitiated => "USER_INITIATED",
7328 }
7329 }
7330 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7332 match value {
7333 "BUSINESS_INITIATED" => Some(Self::BusinessInitiated),
7334 "USER_INITIATED" => Some(Self::UserInitiated),
7335 _ => None,
7336 }
7337 }
7338 }
7339}
7340#[allow(clippy::derive_partial_eq_without_eq)]
7341#[derive(Clone, PartialEq, ::prost::Message)]
7342pub struct DisconnectWhatsAppCallResponse {
7343}
7344#[allow(clippy::derive_partial_eq_without_eq)]
7345#[derive(Clone, PartialEq, ::prost::Message)]
7346pub struct ConnectWhatsAppCallRequest {
7347 #[prost(string, tag="1")]
7349 pub whatsapp_call_id: ::prost::alloc::string::String,
7350 #[prost(message, optional, tag="2")]
7353 pub sdp: ::core::option::Option<SessionDescription>,
7354}
7355#[allow(clippy::derive_partial_eq_without_eq)]
7356#[derive(Clone, PartialEq, ::prost::Message)]
7357pub struct ConnectWhatsAppCallResponse {
7358}
7359#[allow(clippy::derive_partial_eq_without_eq)]
7360#[derive(Clone, PartialEq, ::prost::Message)]
7361pub struct AcceptWhatsAppCallRequest {
7362 #[prost(string, tag="1")]
7364 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
7365 #[prost(string, tag="2")]
7367 pub whatsapp_api_key: ::prost::alloc::string::String,
7368 #[prost(string, tag="13")]
7370 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
7371 #[prost(string, tag="3")]
7373 pub whatsapp_call_id: ::prost::alloc::string::String,
7374 #[prost(string, tag="4")]
7376 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
7377 #[prost(message, optional, tag="5")]
7380 pub sdp: ::core::option::Option<SessionDescription>,
7381 #[prost(string, tag="6")]
7383 pub room_name: ::prost::alloc::string::String,
7384 #[prost(message, repeated, tag="7")]
7386 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7387 #[prost(string, tag="8")]
7390 pub participant_identity: ::prost::alloc::string::String,
7391 #[prost(string, tag="9")]
7393 pub participant_name: ::prost::alloc::string::String,
7394 #[prost(string, tag="10")]
7396 pub participant_metadata: ::prost::alloc::string::String,
7397 #[prost(map="string, string", tag="11")]
7399 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7400 #[prost(string, tag="12")]
7402 pub destination_country: ::prost::alloc::string::String,
7403 #[prost(message, optional, tag="14")]
7405 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
7406 #[prost(bool, tag="15")]
7408 pub wait_until_answered: bool,
7409}
7410#[allow(clippy::derive_partial_eq_without_eq)]
7411#[derive(Clone, PartialEq, ::prost::Message)]
7412pub struct AcceptWhatsAppCallResponse {
7413 #[prost(string, tag="1")]
7415 pub room_name: ::prost::alloc::string::String,
7416}
7417#[allow(clippy::derive_partial_eq_without_eq)]
7418#[derive(Clone, PartialEq, ::prost::Message)]
7419pub struct WhatsAppCall {
7420 #[prost(string, tag="1")]
7422 pub whatsapp_call_id: ::prost::alloc::string::String,
7423 #[prost(enumeration="WhatsAppCallDirection", tag="2")]
7425 pub direction: i32,
7426}
7427#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7428#[repr(i32)]
7429pub enum WhatsAppCallDirection {
7430 WhatsappCallDirectionInbound = 0,
7431 WhatsappCallDirectionOutbound = 2,
7432}
7433impl WhatsAppCallDirection {
7434 pub fn as_str_name(&self) -> &'static str {
7439 match self {
7440 WhatsAppCallDirection::WhatsappCallDirectionInbound => "WHATSAPP_CALL_DIRECTION_INBOUND",
7441 WhatsAppCallDirection::WhatsappCallDirectionOutbound => "WHATSAPP_CALL_DIRECTION_OUTBOUND",
7442 }
7443 }
7444 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7446 match value {
7447 "WHATSAPP_CALL_DIRECTION_INBOUND" => Some(Self::WhatsappCallDirectionInbound),
7448 "WHATSAPP_CALL_DIRECTION_OUTBOUND" => Some(Self::WhatsappCallDirectionOutbound),
7449 _ => None,
7450 }
7451 }
7452}
7453#[allow(clippy::derive_partial_eq_without_eq)]
7454#[derive(Clone, PartialEq, ::prost::Message)]
7455pub struct ConnectTwilioCallRequest {
7456 #[prost(enumeration="connect_twilio_call_request::TwilioCallDirection", tag="1")]
7458 pub twilio_call_direction: i32,
7459 #[prost(string, tag="2")]
7461 pub room_name: ::prost::alloc::string::String,
7462 #[prost(message, repeated, tag="3")]
7464 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7465 #[prost(string, tag="4")]
7468 pub participant_identity: ::prost::alloc::string::String,
7469 #[prost(string, tag="5")]
7471 pub participant_name: ::prost::alloc::string::String,
7472 #[prost(string, tag="6")]
7474 pub participant_metadata: ::prost::alloc::string::String,
7475 #[prost(map="string, string", tag="7")]
7477 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7478 #[prost(string, tag="8")]
7480 pub destination_country: ::prost::alloc::string::String,
7481}
7482pub mod connect_twilio_call_request {
7484 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7485 #[repr(i32)]
7486 pub enum TwilioCallDirection {
7487 Inbound = 0,
7489 Outbound = 1,
7491 }
7492 impl TwilioCallDirection {
7493 pub fn as_str_name(&self) -> &'static str {
7498 match self {
7499 TwilioCallDirection::Inbound => "TWILIO_CALL_DIRECTION_INBOUND",
7500 TwilioCallDirection::Outbound => "TWILIO_CALL_DIRECTION_OUTBOUND",
7501 }
7502 }
7503 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7505 match value {
7506 "TWILIO_CALL_DIRECTION_INBOUND" => Some(Self::Inbound),
7507 "TWILIO_CALL_DIRECTION_OUTBOUND" => Some(Self::Outbound),
7508 _ => None,
7509 }
7510 }
7511 }
7512}
7513#[allow(clippy::derive_partial_eq_without_eq)]
7514#[derive(Clone, PartialEq, ::prost::Message)]
7515pub struct ConnectTwilioCallResponse {
7516 #[prost(string, tag="1")]
7518 pub connect_url: ::prost::alloc::string::String,
7519}
7520#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7521#[repr(i32)]
7522pub enum ConnectorType {
7523 Unspecified = 0,
7524 WhatsApp = 1,
7525 Twilio = 2,
7526}
7527impl ConnectorType {
7528 pub fn as_str_name(&self) -> &'static str {
7533 match self {
7534 ConnectorType::Unspecified => "Unspecified",
7535 ConnectorType::WhatsApp => "WhatsApp",
7536 ConnectorType::Twilio => "Twilio",
7537 }
7538 }
7539 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7541 match value {
7542 "Unspecified" => Some(Self::Unspecified),
7543 "WhatsApp" => Some(Self::WhatsApp),
7544 "Twilio" => Some(Self::Twilio),
7545 _ => None,
7546 }
7547 }
7548}
7549#[allow(clippy::derive_partial_eq_without_eq)]
7550#[derive(Clone, PartialEq, ::prost::Message)]
7551pub struct AnalyticsVideoLayer {
7552 #[prost(int32, tag="1")]
7553 pub layer: i32,
7554 #[prost(uint32, tag="2")]
7555 pub packets: u32,
7556 #[prost(uint64, tag="3")]
7557 pub bytes: u64,
7558 #[prost(uint32, tag="4")]
7559 pub frames: u32,
7560}
7561#[allow(clippy::derive_partial_eq_without_eq)]
7562#[derive(Clone, PartialEq, ::prost::Message)]
7563pub struct AnalyticsStream {
7564 #[prost(uint32, tag="1")]
7565 pub ssrc: u32,
7566 #[prost(uint32, tag="2")]
7567 pub primary_packets: u32,
7568 #[prost(uint64, tag="3")]
7569 pub primary_bytes: u64,
7570 #[prost(uint32, tag="4")]
7571 pub retransmit_packets: u32,
7572 #[prost(uint64, tag="5")]
7573 pub retransmit_bytes: u64,
7574 #[prost(uint32, tag="6")]
7575 pub padding_packets: u32,
7576 #[prost(uint64, tag="7")]
7577 pub padding_bytes: u64,
7578 #[prost(uint32, tag="8")]
7579 pub packets_lost: u32,
7580 #[prost(uint32, tag="9")]
7581 pub frames: u32,
7582 #[prost(uint32, tag="10")]
7583 pub rtt: u32,
7584 #[prost(uint32, tag="11")]
7585 pub jitter: u32,
7586 #[prost(uint32, tag="12")]
7587 pub nacks: u32,
7588 #[prost(uint32, tag="13")]
7589 pub plis: u32,
7590 #[prost(uint32, tag="14")]
7591 pub firs: u32,
7592 #[prost(message, repeated, tag="15")]
7593 pub video_layers: ::prost::alloc::vec::Vec<AnalyticsVideoLayer>,
7594 #[prost(message, optional, tag="17")]
7595 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
7596 #[prost(message, optional, tag="18")]
7597 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
7598 #[prost(uint32, tag="19")]
7599 pub packets_out_of_order: u32,
7600}
7601#[allow(clippy::derive_partial_eq_without_eq)]
7602#[derive(Clone, PartialEq, ::prost::Message)]
7603pub struct AnalyticsStat {
7604 #[prost(string, tag="14")]
7606 pub id: ::prost::alloc::string::String,
7607 #[prost(string, tag="1")]
7608 pub analytics_key: ::prost::alloc::string::String,
7609 #[prost(enumeration="StreamType", tag="2")]
7610 pub kind: i32,
7611 #[prost(message, optional, tag="3")]
7612 pub time_stamp: ::core::option::Option<::pbjson_types::Timestamp>,
7613 #[prost(string, tag="4")]
7614 pub node: ::prost::alloc::string::String,
7615 #[prost(string, tag="5")]
7616 pub room_id: ::prost::alloc::string::String,
7617 #[prost(string, tag="6")]
7618 pub room_name: ::prost::alloc::string::String,
7619 #[prost(string, tag="7")]
7620 pub participant_id: ::prost::alloc::string::String,
7621 #[prost(string, tag="8")]
7622 pub track_id: ::prost::alloc::string::String,
7623 #[prost(float, tag="9")]
7625 pub score: f32,
7626 #[prost(message, repeated, tag="10")]
7627 pub streams: ::prost::alloc::vec::Vec<AnalyticsStream>,
7628 #[prost(string, tag="11")]
7629 pub mime: ::prost::alloc::string::String,
7630 #[prost(float, tag="12")]
7631 pub min_score: f32,
7632 #[prost(float, tag="13")]
7633 pub median_score: f32,
7634}
7635#[allow(clippy::derive_partial_eq_without_eq)]
7636#[derive(Clone, PartialEq, ::prost::Message)]
7637pub struct AnalyticsStats {
7638 #[prost(message, repeated, tag="1")]
7639 pub stats: ::prost::alloc::vec::Vec<AnalyticsStat>,
7640}
7641#[allow(clippy::derive_partial_eq_without_eq)]
7642#[derive(Clone, PartialEq, ::prost::Message)]
7643pub struct AnalyticsClientMeta {
7644 #[prost(string, tag="1")]
7645 pub region: ::prost::alloc::string::String,
7646 #[prost(string, tag="2")]
7647 pub node: ::prost::alloc::string::String,
7648 #[prost(string, tag="3")]
7649 pub client_addr: ::prost::alloc::string::String,
7650 #[prost(uint32, tag="4")]
7651 pub client_connect_time: u32,
7652 #[prost(string, tag="5")]
7654 pub connection_type: ::prost::alloc::string::String,
7655 #[prost(enumeration="ReconnectReason", tag="6")]
7656 pub reconnect_reason: i32,
7657 #[prost(string, optional, tag="7")]
7658 pub geo_hash: ::core::option::Option<::prost::alloc::string::String>,
7659 #[prost(string, optional, tag="8")]
7660 pub country: ::core::option::Option<::prost::alloc::string::String>,
7661 #[prost(uint32, optional, tag="9")]
7662 pub isp_asn: ::core::option::Option<u32>,
7663}
7664#[allow(clippy::derive_partial_eq_without_eq)]
7665#[derive(Clone, PartialEq, ::prost::Message)]
7666pub struct AnalyticsEvent {
7667 #[prost(string, tag="25")]
7669 pub id: ::prost::alloc::string::String,
7670 #[prost(enumeration="AnalyticsEventType", tag="1")]
7671 pub r#type: i32,
7672 #[prost(message, optional, tag="2")]
7673 pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
7674 #[prost(string, tag="3")]
7675 pub room_id: ::prost::alloc::string::String,
7676 #[prost(message, optional, tag="4")]
7677 pub room: ::core::option::Option<Room>,
7678 #[prost(string, tag="5")]
7679 pub participant_id: ::prost::alloc::string::String,
7680 #[prost(message, optional, tag="6")]
7681 pub participant: ::core::option::Option<ParticipantInfo>,
7682 #[prost(string, tag="7")]
7683 pub track_id: ::prost::alloc::string::String,
7684 #[prost(message, optional, tag="8")]
7685 pub track: ::core::option::Option<TrackInfo>,
7686 #[prost(string, tag="10")]
7687 pub analytics_key: ::prost::alloc::string::String,
7688 #[prost(message, optional, tag="11")]
7689 pub client_info: ::core::option::Option<ClientInfo>,
7690 #[prost(message, optional, tag="12")]
7691 pub client_meta: ::core::option::Option<AnalyticsClientMeta>,
7692 #[prost(string, tag="13")]
7693 pub egress_id: ::prost::alloc::string::String,
7694 #[prost(string, tag="19")]
7695 pub ingress_id: ::prost::alloc::string::String,
7696 #[prost(enumeration="VideoQuality", tag="14")]
7697 pub max_subscribed_video_quality: i32,
7698 #[prost(message, optional, tag="15")]
7699 pub publisher: ::core::option::Option<ParticipantInfo>,
7700 #[prost(string, tag="16")]
7701 pub mime: ::prost::alloc::string::String,
7702 #[prost(message, optional, tag="17")]
7703 pub egress: ::core::option::Option<EgressInfo>,
7704 #[prost(message, optional, tag="18")]
7705 pub ingress: ::core::option::Option<IngressInfo>,
7706 #[prost(string, tag="20")]
7707 pub error: ::prost::alloc::string::String,
7708 #[prost(message, optional, tag="21")]
7709 pub rtp_stats: ::core::option::Option<RtpStats>,
7710 #[prost(int32, tag="22")]
7711 pub video_layer: i32,
7712 #[prost(string, tag="24")]
7713 pub node_id: ::prost::alloc::string::String,
7714 #[prost(string, tag="26")]
7715 pub sip_call_id: ::prost::alloc::string::String,
7716 #[prost(message, optional, tag="27")]
7717 pub sip_call: ::core::option::Option<SipCallInfo>,
7718 #[prost(string, tag="28")]
7719 pub sip_trunk_id: ::prost::alloc::string::String,
7720 #[prost(message, optional, tag="29")]
7721 pub sip_inbound_trunk: ::core::option::Option<SipInboundTrunkInfo>,
7722 #[prost(message, optional, tag="30")]
7723 pub sip_outbound_trunk: ::core::option::Option<SipOutboundTrunkInfo>,
7724 #[prost(string, tag="31")]
7725 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
7726 #[prost(message, optional, tag="32")]
7727 pub sip_dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
7728 #[prost(message, optional, tag="36")]
7729 pub sip_transfer: ::core::option::Option<SipTransferInfo>,
7730 #[prost(message, optional, tag="33")]
7731 pub report: ::core::option::Option<ReportInfo>,
7732 #[prost(message, optional, tag="34")]
7733 pub api_call: ::core::option::Option<ApiCallInfo>,
7734 #[prost(message, optional, tag="35")]
7735 pub webhook: ::core::option::Option<WebhookInfo>,
7736}
7737#[allow(clippy::derive_partial_eq_without_eq)]
7738#[derive(Clone, PartialEq, ::prost::Message)]
7739pub struct AnalyticsEvents {
7740 #[prost(message, repeated, tag="1")]
7741 pub events: ::prost::alloc::vec::Vec<AnalyticsEvent>,
7742}
7743#[allow(clippy::derive_partial_eq_without_eq)]
7744#[derive(Clone, PartialEq, ::prost::Message)]
7745pub struct AnalyticsRoomParticipant {
7746 #[prost(string, tag="1")]
7747 pub id: ::prost::alloc::string::String,
7748 #[prost(string, tag="2")]
7749 pub identity: ::prost::alloc::string::String,
7750 #[prost(string, tag="3")]
7751 pub name: ::prost::alloc::string::String,
7752 #[prost(enumeration="participant_info::State", tag="4")]
7753 pub state: i32,
7754 #[prost(message, optional, tag="5")]
7755 pub joined_at: ::core::option::Option<::pbjson_types::Timestamp>,
7756}
7757#[allow(clippy::derive_partial_eq_without_eq)]
7758#[derive(Clone, PartialEq, ::prost::Message)]
7759pub struct AnalyticsRoom {
7760 #[prost(string, tag="1")]
7761 pub id: ::prost::alloc::string::String,
7762 #[prost(string, tag="2")]
7763 pub name: ::prost::alloc::string::String,
7764 #[prost(string, tag="5")]
7765 pub project_id: ::prost::alloc::string::String,
7766 #[prost(message, optional, tag="3")]
7767 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
7768 #[prost(message, repeated, tag="4")]
7769 pub participants: ::prost::alloc::vec::Vec<AnalyticsRoomParticipant>,
7770}
7771#[allow(clippy::derive_partial_eq_without_eq)]
7772#[derive(Clone, PartialEq, ::prost::Message)]
7773pub struct AnalyticsNodeRooms {
7774 #[prost(string, tag="1")]
7775 pub node_id: ::prost::alloc::string::String,
7776 #[prost(uint64, tag="2")]
7777 pub sequence_number: u64,
7778 #[prost(message, optional, tag="3")]
7779 pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
7780 #[prost(message, repeated, tag="4")]
7781 pub rooms: ::prost::alloc::vec::Vec<AnalyticsRoom>,
7782}
7783#[allow(clippy::derive_partial_eq_without_eq)]
7784#[derive(Clone, PartialEq, ::prost::Message)]
7785pub struct ReportInfo {
7786 #[prost(oneof="report_info::Message", tags="1")]
7787 pub message: ::core::option::Option<report_info::Message>,
7788}
7789pub mod report_info {
7791 #[allow(clippy::derive_partial_eq_without_eq)]
7792#[derive(Clone, PartialEq, ::prost::Oneof)]
7793 pub enum Message {
7794 #[prost(message, tag="1")]
7795 FeatureUsage(super::FeatureUsageInfo),
7796 }
7797}
7798#[allow(clippy::derive_partial_eq_without_eq)]
7799#[derive(Clone, PartialEq, ::prost::Message)]
7800pub struct TimeRange {
7801 #[prost(message, optional, tag="1")]
7802 pub started_at: ::core::option::Option<::pbjson_types::Timestamp>,
7803 #[prost(message, optional, tag="2")]
7804 pub ended_at: ::core::option::Option<::pbjson_types::Timestamp>,
7805}
7806#[allow(clippy::derive_partial_eq_without_eq)]
7807#[derive(Clone, PartialEq, ::prost::Message)]
7808pub struct FeatureUsageInfo {
7809 #[prost(enumeration="feature_usage_info::Feature", tag="1")]
7810 pub feature: i32,
7811 #[prost(string, tag="2")]
7812 pub project_id: ::prost::alloc::string::String,
7813 #[prost(string, tag="3")]
7814 pub room_name: ::prost::alloc::string::String,
7815 #[prost(string, tag="4")]
7816 pub room_id: ::prost::alloc::string::String,
7817 #[prost(string, tag="5")]
7818 pub participant_identity: ::prost::alloc::string::String,
7819 #[prost(string, tag="6")]
7820 pub participant_id: ::prost::alloc::string::String,
7821 #[prost(string, tag="7")]
7822 pub track_id: ::prost::alloc::string::String,
7823 #[prost(message, repeated, tag="8")]
7827 pub time_ranges: ::prost::alloc::vec::Vec<TimeRange>,
7828 #[prost(map="string, string", tag="9")]
7830 pub feature_info: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7831}
7832pub mod feature_usage_info {
7834 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7835 #[repr(i32)]
7836 pub enum Feature {
7837 KrispNoiseCancellation = 0,
7838 KrispBackgroundVoiceCancellation = 1,
7839 AicAudioEnhancement = 2,
7840 KrispViva = 3,
7841 }
7842 impl Feature {
7843 pub fn as_str_name(&self) -> &'static str {
7848 match self {
7849 Feature::KrispNoiseCancellation => "KRISP_NOISE_CANCELLATION",
7850 Feature::KrispBackgroundVoiceCancellation => "KRISP_BACKGROUND_VOICE_CANCELLATION",
7851 Feature::AicAudioEnhancement => "AIC_AUDIO_ENHANCEMENT",
7852 Feature::KrispViva => "KRISP_VIVA",
7853 }
7854 }
7855 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7857 match value {
7858 "KRISP_NOISE_CANCELLATION" => Some(Self::KrispNoiseCancellation),
7859 "KRISP_BACKGROUND_VOICE_CANCELLATION" => Some(Self::KrispBackgroundVoiceCancellation),
7860 "AIC_AUDIO_ENHANCEMENT" => Some(Self::AicAudioEnhancement),
7861 "KRISP_VIVA" => Some(Self::KrispViva),
7862 _ => None,
7863 }
7864 }
7865 }
7866}
7867#[allow(clippy::derive_partial_eq_without_eq)]
7868#[derive(Clone, PartialEq, ::prost::Message)]
7869pub struct ApiCallRequest {
7870 #[prost(oneof="api_call_request::Message", tags="1, 2, 3, 4, 5, 6, 7, 8, 9, 10")]
7871 pub message: ::core::option::Option<api_call_request::Message>,
7872}
7873pub mod api_call_request {
7875 #[allow(clippy::derive_partial_eq_without_eq)]
7876#[derive(Clone, PartialEq, ::prost::Oneof)]
7877 pub enum Message {
7878 #[prost(message, tag="1")]
7879 CreateRoomRequest(super::CreateRoomRequest),
7880 #[prost(message, tag="2")]
7881 ListRoomsRequest(super::ListRoomsRequest),
7882 #[prost(message, tag="3")]
7883 DeleteRoomRequest(super::DeleteRoomRequest),
7884 #[prost(message, tag="4")]
7885 ListParticipantsRequest(super::ListParticipantsRequest),
7886 #[prost(message, tag="5")]
7887 RoomParticipantIdentity(super::RoomParticipantIdentity),
7888 #[prost(message, tag="6")]
7889 MuteRoomTrackRequest(super::MuteRoomTrackRequest),
7890 #[prost(message, tag="7")]
7891 UpdateParticipantRequest(super::UpdateParticipantRequest),
7892 #[prost(message, tag="8")]
7893 UpdateSubscriptionsRequest(super::UpdateSubscriptionsRequest),
7894 #[prost(message, tag="9")]
7895 SendDataRequest(super::SendDataRequest),
7896 #[prost(message, tag="10")]
7897 UpdateRoomMetadataRequest(super::UpdateRoomMetadataRequest),
7898 }
7899}
7900#[allow(clippy::derive_partial_eq_without_eq)]
7901#[derive(Clone, PartialEq, ::prost::Message)]
7902pub struct ApiCallInfo {
7903 #[prost(string, tag="1")]
7904 pub project_id: ::prost::alloc::string::String,
7905 #[prost(message, optional, tag="2")]
7906 pub request: ::core::option::Option<ApiCallRequest>,
7907 #[prost(string, tag="3")]
7908 pub service: ::prost::alloc::string::String,
7909 #[prost(string, tag="4")]
7910 pub method: ::prost::alloc::string::String,
7911 #[prost(string, tag="5")]
7912 pub node_id: ::prost::alloc::string::String,
7913 #[prost(int32, tag="6")]
7914 pub status: i32,
7915 #[prost(string, tag="7")]
7916 pub twirp_error_code: ::prost::alloc::string::String,
7917 #[prost(string, tag="8")]
7918 pub twirp_error_message: ::prost::alloc::string::String,
7919 #[prost(string, tag="9")]
7920 pub room_name: ::prost::alloc::string::String,
7921 #[prost(string, tag="10")]
7922 pub room_id: ::prost::alloc::string::String,
7923 #[prost(string, tag="11")]
7924 pub participant_identity: ::prost::alloc::string::String,
7925 #[prost(string, tag="12")]
7926 pub participant_id: ::prost::alloc::string::String,
7927 #[prost(string, tag="13")]
7928 pub track_id: ::prost::alloc::string::String,
7929 #[prost(message, optional, tag="14")]
7930 pub started_at: ::core::option::Option<::pbjson_types::Timestamp>,
7931 #[prost(int64, tag="15")]
7932 pub duration_ns: i64,
7933}
7934#[allow(clippy::derive_partial_eq_without_eq)]
7935#[derive(Clone, PartialEq, ::prost::Message)]
7936pub struct WebhookInfo {
7937 #[prost(string, tag="1")]
7938 pub event_id: ::prost::alloc::string::String,
7939 #[prost(string, tag="2")]
7940 pub event: ::prost::alloc::string::String,
7941 #[prost(string, tag="3")]
7942 pub project_id: ::prost::alloc::string::String,
7943 #[prost(string, tag="4")]
7944 pub room_name: ::prost::alloc::string::String,
7945 #[prost(string, tag="5")]
7946 pub room_id: ::prost::alloc::string::String,
7947 #[prost(string, tag="6")]
7948 pub participant_identity: ::prost::alloc::string::String,
7949 #[prost(string, tag="7")]
7950 pub participant_id: ::prost::alloc::string::String,
7951 #[prost(string, tag="8")]
7952 pub track_id: ::prost::alloc::string::String,
7953 #[prost(string, tag="9")]
7954 pub egress_id: ::prost::alloc::string::String,
7955 #[prost(string, tag="10")]
7956 pub ingress_id: ::prost::alloc::string::String,
7957 #[prost(message, optional, tag="11")]
7958 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
7959 #[prost(message, optional, tag="12")]
7960 pub queued_at: ::core::option::Option<::pbjson_types::Timestamp>,
7961 #[prost(int64, tag="13")]
7962 pub queue_duration_ns: i64,
7963 #[prost(message, optional, tag="14")]
7964 pub sent_at: ::core::option::Option<::pbjson_types::Timestamp>,
7965 #[prost(int64, tag="15")]
7966 pub send_duration_ns: i64,
7967 #[prost(string, tag="16")]
7968 pub url: ::prost::alloc::string::String,
7969 #[prost(int32, tag="17")]
7970 pub num_dropped: i32,
7971 #[prost(bool, tag="18")]
7972 pub is_dropped: bool,
7973 #[prost(string, tag="19")]
7974 pub service_status: ::prost::alloc::string::String,
7975 #[prost(int32, tag="20")]
7976 pub service_error_code: i32,
7977 #[prost(string, tag="21")]
7978 pub service_error: ::prost::alloc::string::String,
7979 #[prost(string, tag="22")]
7980 pub send_error: ::prost::alloc::string::String,
7981}
7982#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7983#[repr(i32)]
7984pub enum StreamType {
7985 Upstream = 0,
7986 Downstream = 1,
7987}
7988impl StreamType {
7989 pub fn as_str_name(&self) -> &'static str {
7994 match self {
7995 StreamType::Upstream => "UPSTREAM",
7996 StreamType::Downstream => "DOWNSTREAM",
7997 }
7998 }
7999 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8001 match value {
8002 "UPSTREAM" => Some(Self::Upstream),
8003 "DOWNSTREAM" => Some(Self::Downstream),
8004 _ => None,
8005 }
8006 }
8007}
8008#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8009#[repr(i32)]
8010pub enum AnalyticsEventType {
8011 RoomCreated = 0,
8012 RoomEnded = 1,
8013 ParticipantJoined = 2,
8014 ParticipantLeft = 3,
8015 ParticipantConnectionAborted = 45,
8016 TrackPublished = 4,
8017 TrackPublishRequested = 20,
8018 TrackUnpublished = 5,
8019 TrackSubscribed = 6,
8020 TrackSubscribeRequested = 21,
8021 TrackSubscribeFailed = 25,
8022 TrackUnsubscribed = 7,
8023 TrackPublishedUpdate = 10,
8024 TrackMuted = 23,
8025 TrackUnmuted = 24,
8026 TrackPublishStats = 26,
8027 TrackSubscribeStats = 27,
8028 ParticipantActive = 11,
8029 ParticipantResumed = 22,
8030 EgressStarted = 12,
8031 EgressEnded = 13,
8032 EgressUpdated = 28,
8033 TrackMaxSubscribedVideoQuality = 14,
8034 Reconnected = 15,
8035 IngressCreated = 18,
8036 IngressDeleted = 19,
8037 IngressStarted = 16,
8038 IngressEnded = 17,
8039 IngressUpdated = 29,
8040 SipInboundTrunkCreated = 30,
8041 SipInboundTrunkDeleted = 31,
8042 SipOutboundTrunkCreated = 32,
8043 SipOutboundTrunkDeleted = 33,
8044 SipDispatchRuleCreated = 34,
8045 SipDispatchRuleDeleted = 35,
8046 SipParticipantCreated = 36,
8047 SipCallIncoming = 37,
8048 SipCallStarted = 38,
8049 SipCallEnded = 39,
8050 SipTransferRequested = 43,
8051 SipTransferComplete = 44,
8052 SipCallUpdate = 46,
8053 Report = 40,
8054 ApiCall = 41,
8055 Webhook = 42,
8056}
8057impl AnalyticsEventType {
8058 pub fn as_str_name(&self) -> &'static str {
8063 match self {
8064 AnalyticsEventType::RoomCreated => "ROOM_CREATED",
8065 AnalyticsEventType::RoomEnded => "ROOM_ENDED",
8066 AnalyticsEventType::ParticipantJoined => "PARTICIPANT_JOINED",
8067 AnalyticsEventType::ParticipantLeft => "PARTICIPANT_LEFT",
8068 AnalyticsEventType::ParticipantConnectionAborted => "PARTICIPANT_CONNECTION_ABORTED",
8069 AnalyticsEventType::TrackPublished => "TRACK_PUBLISHED",
8070 AnalyticsEventType::TrackPublishRequested => "TRACK_PUBLISH_REQUESTED",
8071 AnalyticsEventType::TrackUnpublished => "TRACK_UNPUBLISHED",
8072 AnalyticsEventType::TrackSubscribed => "TRACK_SUBSCRIBED",
8073 AnalyticsEventType::TrackSubscribeRequested => "TRACK_SUBSCRIBE_REQUESTED",
8074 AnalyticsEventType::TrackSubscribeFailed => "TRACK_SUBSCRIBE_FAILED",
8075 AnalyticsEventType::TrackUnsubscribed => "TRACK_UNSUBSCRIBED",
8076 AnalyticsEventType::TrackPublishedUpdate => "TRACK_PUBLISHED_UPDATE",
8077 AnalyticsEventType::TrackMuted => "TRACK_MUTED",
8078 AnalyticsEventType::TrackUnmuted => "TRACK_UNMUTED",
8079 AnalyticsEventType::TrackPublishStats => "TRACK_PUBLISH_STATS",
8080 AnalyticsEventType::TrackSubscribeStats => "TRACK_SUBSCRIBE_STATS",
8081 AnalyticsEventType::ParticipantActive => "PARTICIPANT_ACTIVE",
8082 AnalyticsEventType::ParticipantResumed => "PARTICIPANT_RESUMED",
8083 AnalyticsEventType::EgressStarted => "EGRESS_STARTED",
8084 AnalyticsEventType::EgressEnded => "EGRESS_ENDED",
8085 AnalyticsEventType::EgressUpdated => "EGRESS_UPDATED",
8086 AnalyticsEventType::TrackMaxSubscribedVideoQuality => "TRACK_MAX_SUBSCRIBED_VIDEO_QUALITY",
8087 AnalyticsEventType::Reconnected => "RECONNECTED",
8088 AnalyticsEventType::IngressCreated => "INGRESS_CREATED",
8089 AnalyticsEventType::IngressDeleted => "INGRESS_DELETED",
8090 AnalyticsEventType::IngressStarted => "INGRESS_STARTED",
8091 AnalyticsEventType::IngressEnded => "INGRESS_ENDED",
8092 AnalyticsEventType::IngressUpdated => "INGRESS_UPDATED",
8093 AnalyticsEventType::SipInboundTrunkCreated => "SIP_INBOUND_TRUNK_CREATED",
8094 AnalyticsEventType::SipInboundTrunkDeleted => "SIP_INBOUND_TRUNK_DELETED",
8095 AnalyticsEventType::SipOutboundTrunkCreated => "SIP_OUTBOUND_TRUNK_CREATED",
8096 AnalyticsEventType::SipOutboundTrunkDeleted => "SIP_OUTBOUND_TRUNK_DELETED",
8097 AnalyticsEventType::SipDispatchRuleCreated => "SIP_DISPATCH_RULE_CREATED",
8098 AnalyticsEventType::SipDispatchRuleDeleted => "SIP_DISPATCH_RULE_DELETED",
8099 AnalyticsEventType::SipParticipantCreated => "SIP_PARTICIPANT_CREATED",
8100 AnalyticsEventType::SipCallIncoming => "SIP_CALL_INCOMING",
8101 AnalyticsEventType::SipCallStarted => "SIP_CALL_STARTED",
8102 AnalyticsEventType::SipCallEnded => "SIP_CALL_ENDED",
8103 AnalyticsEventType::SipTransferRequested => "SIP_TRANSFER_REQUESTED",
8104 AnalyticsEventType::SipTransferComplete => "SIP_TRANSFER_COMPLETE",
8105 AnalyticsEventType::SipCallUpdate => "SIP_CALL_UPDATE",
8106 AnalyticsEventType::Report => "REPORT",
8107 AnalyticsEventType::ApiCall => "API_CALL",
8108 AnalyticsEventType::Webhook => "WEBHOOK",
8109 }
8110 }
8111 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8113 match value {
8114 "ROOM_CREATED" => Some(Self::RoomCreated),
8115 "ROOM_ENDED" => Some(Self::RoomEnded),
8116 "PARTICIPANT_JOINED" => Some(Self::ParticipantJoined),
8117 "PARTICIPANT_LEFT" => Some(Self::ParticipantLeft),
8118 "PARTICIPANT_CONNECTION_ABORTED" => Some(Self::ParticipantConnectionAborted),
8119 "TRACK_PUBLISHED" => Some(Self::TrackPublished),
8120 "TRACK_PUBLISH_REQUESTED" => Some(Self::TrackPublishRequested),
8121 "TRACK_UNPUBLISHED" => Some(Self::TrackUnpublished),
8122 "TRACK_SUBSCRIBED" => Some(Self::TrackSubscribed),
8123 "TRACK_SUBSCRIBE_REQUESTED" => Some(Self::TrackSubscribeRequested),
8124 "TRACK_SUBSCRIBE_FAILED" => Some(Self::TrackSubscribeFailed),
8125 "TRACK_UNSUBSCRIBED" => Some(Self::TrackUnsubscribed),
8126 "TRACK_PUBLISHED_UPDATE" => Some(Self::TrackPublishedUpdate),
8127 "TRACK_MUTED" => Some(Self::TrackMuted),
8128 "TRACK_UNMUTED" => Some(Self::TrackUnmuted),
8129 "TRACK_PUBLISH_STATS" => Some(Self::TrackPublishStats),
8130 "TRACK_SUBSCRIBE_STATS" => Some(Self::TrackSubscribeStats),
8131 "PARTICIPANT_ACTIVE" => Some(Self::ParticipantActive),
8132 "PARTICIPANT_RESUMED" => Some(Self::ParticipantResumed),
8133 "EGRESS_STARTED" => Some(Self::EgressStarted),
8134 "EGRESS_ENDED" => Some(Self::EgressEnded),
8135 "EGRESS_UPDATED" => Some(Self::EgressUpdated),
8136 "TRACK_MAX_SUBSCRIBED_VIDEO_QUALITY" => Some(Self::TrackMaxSubscribedVideoQuality),
8137 "RECONNECTED" => Some(Self::Reconnected),
8138 "INGRESS_CREATED" => Some(Self::IngressCreated),
8139 "INGRESS_DELETED" => Some(Self::IngressDeleted),
8140 "INGRESS_STARTED" => Some(Self::IngressStarted),
8141 "INGRESS_ENDED" => Some(Self::IngressEnded),
8142 "INGRESS_UPDATED" => Some(Self::IngressUpdated),
8143 "SIP_INBOUND_TRUNK_CREATED" => Some(Self::SipInboundTrunkCreated),
8144 "SIP_INBOUND_TRUNK_DELETED" => Some(Self::SipInboundTrunkDeleted),
8145 "SIP_OUTBOUND_TRUNK_CREATED" => Some(Self::SipOutboundTrunkCreated),
8146 "SIP_OUTBOUND_TRUNK_DELETED" => Some(Self::SipOutboundTrunkDeleted),
8147 "SIP_DISPATCH_RULE_CREATED" => Some(Self::SipDispatchRuleCreated),
8148 "SIP_DISPATCH_RULE_DELETED" => Some(Self::SipDispatchRuleDeleted),
8149 "SIP_PARTICIPANT_CREATED" => Some(Self::SipParticipantCreated),
8150 "SIP_CALL_INCOMING" => Some(Self::SipCallIncoming),
8151 "SIP_CALL_STARTED" => Some(Self::SipCallStarted),
8152 "SIP_CALL_ENDED" => Some(Self::SipCallEnded),
8153 "SIP_TRANSFER_REQUESTED" => Some(Self::SipTransferRequested),
8154 "SIP_TRANSFER_COMPLETE" => Some(Self::SipTransferComplete),
8155 "SIP_CALL_UPDATE" => Some(Self::SipCallUpdate),
8156 "REPORT" => Some(Self::Report),
8157 "API_CALL" => Some(Self::ApiCall),
8158 "WEBHOOK" => Some(Self::Webhook),
8159 _ => None,
8160 }
8161 }
8162}
8163include!("livekit.serde.rs");
8164