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 #[prost(string, tag="8")]
98 pub job_id: ::prost::alloc::string::String,
99 #[prost(bool, tag="9")]
101 pub simulated: bool,
102 #[prost(bool, tag="10")]
104 pub redaction_enabled: bool,
105}
106#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
116#[repr(i32)]
117pub enum MetricLabel {
118 AgentsLlmTtft = 0,
120 AgentsSttTtft = 1,
122 AgentsTtsTtfb = 2,
124 ClientVideoSubscriberFreezeCount = 3,
126 ClientVideoSubscriberTotalFreezeDuration = 4,
128 ClientVideoSubscriberPauseCount = 5,
130 ClientVideoSubscriberTotalPausesDuration = 6,
132 ClientAudioSubscriberConcealedSamples = 7,
134 ClientAudioSubscriberSilentConcealedSamples = 8,
136 ClientAudioSubscriberConcealmentEvents = 9,
138 ClientAudioSubscriberInterruptionCount = 10,
140 ClientAudioSubscriberTotalInterruptionDuration = 11,
142 ClientSubscriberJitterBufferDelay = 12,
144 ClientSubscriberJitterBufferEmittedCount = 13,
146 ClientVideoPublisherQualityLimitationDurationBandwidth = 14,
148 ClientVideoPublisherQualityLimitationDurationCpu = 15,
150 ClientVideoPublisherQualityLimitationDurationOther = 16,
152 PublisherRtt = 17,
154 ServerMeshRtt = 18,
156 SubscriberRtt = 19,
158 PredefinedMaxValue = 4096,
159}
160impl MetricLabel {
161 pub fn as_str_name(&self) -> &'static str {
166 match self {
167 MetricLabel::AgentsLlmTtft => "AGENTS_LLM_TTFT",
168 MetricLabel::AgentsSttTtft => "AGENTS_STT_TTFT",
169 MetricLabel::AgentsTtsTtfb => "AGENTS_TTS_TTFB",
170 MetricLabel::ClientVideoSubscriberFreezeCount => "CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT",
171 MetricLabel::ClientVideoSubscriberTotalFreezeDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION",
172 MetricLabel::ClientVideoSubscriberPauseCount => "CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT",
173 MetricLabel::ClientVideoSubscriberTotalPausesDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION",
174 MetricLabel::ClientAudioSubscriberConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES",
175 MetricLabel::ClientAudioSubscriberSilentConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES",
176 MetricLabel::ClientAudioSubscriberConcealmentEvents => "CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS",
177 MetricLabel::ClientAudioSubscriberInterruptionCount => "CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT",
178 MetricLabel::ClientAudioSubscriberTotalInterruptionDuration => "CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION",
179 MetricLabel::ClientSubscriberJitterBufferDelay => "CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY",
180 MetricLabel::ClientSubscriberJitterBufferEmittedCount => "CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT",
181 MetricLabel::ClientVideoPublisherQualityLimitationDurationBandwidth => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH",
182 MetricLabel::ClientVideoPublisherQualityLimitationDurationCpu => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU",
183 MetricLabel::ClientVideoPublisherQualityLimitationDurationOther => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER",
184 MetricLabel::PublisherRtt => "PUBLISHER_RTT",
185 MetricLabel::ServerMeshRtt => "SERVER_MESH_RTT",
186 MetricLabel::SubscriberRtt => "SUBSCRIBER_RTT",
187 MetricLabel::PredefinedMaxValue => "METRIC_LABEL_PREDEFINED_MAX_VALUE",
188 }
189 }
190 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
192 match value {
193 "AGENTS_LLM_TTFT" => Some(Self::AgentsLlmTtft),
194 "AGENTS_STT_TTFT" => Some(Self::AgentsSttTtft),
195 "AGENTS_TTS_TTFB" => Some(Self::AgentsTtsTtfb),
196 "CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT" => Some(Self::ClientVideoSubscriberFreezeCount),
197 "CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION" => Some(Self::ClientVideoSubscriberTotalFreezeDuration),
198 "CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT" => Some(Self::ClientVideoSubscriberPauseCount),
199 "CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION" => Some(Self::ClientVideoSubscriberTotalPausesDuration),
200 "CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberConcealedSamples),
201 "CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberSilentConcealedSamples),
202 "CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS" => Some(Self::ClientAudioSubscriberConcealmentEvents),
203 "CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT" => Some(Self::ClientAudioSubscriberInterruptionCount),
204 "CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION" => Some(Self::ClientAudioSubscriberTotalInterruptionDuration),
205 "CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY" => Some(Self::ClientSubscriberJitterBufferDelay),
206 "CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT" => Some(Self::ClientSubscriberJitterBufferEmittedCount),
207 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH" => Some(Self::ClientVideoPublisherQualityLimitationDurationBandwidth),
208 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU" => Some(Self::ClientVideoPublisherQualityLimitationDurationCpu),
209 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER" => Some(Self::ClientVideoPublisherQualityLimitationDurationOther),
210 "PUBLISHER_RTT" => Some(Self::PublisherRtt),
211 "SERVER_MESH_RTT" => Some(Self::ServerMeshRtt),
212 "SUBSCRIBER_RTT" => Some(Self::SubscriberRtt),
213 "METRIC_LABEL_PREDEFINED_MAX_VALUE" => Some(Self::PredefinedMaxValue),
214 _ => None,
215 }
216 }
217}
218#[allow(clippy::derive_partial_eq_without_eq)]
219#[derive(Clone, PartialEq, ::prost::Message)]
220pub struct Pagination {
221 #[prost(string, tag="1")]
223 pub after_id: ::prost::alloc::string::String,
224 #[prost(int32, tag="2")]
225 pub limit: i32,
226}
227#[allow(clippy::derive_partial_eq_without_eq)]
228#[derive(Clone, PartialEq, ::prost::Message)]
229pub struct TokenPagination {
230 #[prost(string, tag="1")]
231 pub token: ::prost::alloc::string::String,
232}
233#[allow(clippy::derive_partial_eq_without_eq)]
235#[derive(Clone, PartialEq, ::prost::Message)]
236pub struct ListUpdate {
237 #[prost(string, repeated, tag="1")]
239 pub set: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
240 #[prost(string, repeated, tag="2")]
242 pub add: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
243 #[prost(string, repeated, tag="3")]
245 pub remove: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
246 #[prost(bool, tag="4")]
248 pub clear: bool,
249}
250#[allow(clippy::derive_partial_eq_without_eq)]
251#[derive(Clone, PartialEq, ::prost::Message)]
252pub struct Room {
253 #[prost(string, tag="1")]
254 pub sid: ::prost::alloc::string::String,
255 #[prost(string, tag="2")]
256 pub name: ::prost::alloc::string::String,
257 #[prost(uint32, tag="3")]
258 pub empty_timeout: u32,
259 #[prost(uint32, tag="14")]
260 pub departure_timeout: u32,
261 #[prost(uint32, tag="4")]
262 pub max_participants: u32,
263 #[prost(int64, tag="5")]
264 pub creation_time: i64,
265 #[prost(int64, tag="15")]
266 pub creation_time_ms: i64,
267 #[prost(string, tag="6")]
268 pub turn_password: ::prost::alloc::string::String,
269 #[prost(message, repeated, tag="7")]
270 pub enabled_codecs: ::prost::alloc::vec::Vec<Codec>,
271 #[prost(string, tag="8")]
272 pub metadata: ::prost::alloc::string::String,
273 #[prost(uint32, tag="9")]
274 pub num_participants: u32,
275 #[prost(uint32, tag="11")]
276 pub num_publishers: u32,
277 #[prost(bool, tag="10")]
278 pub active_recording: bool,
279 #[prost(message, optional, tag="13")]
280 pub version: ::core::option::Option<TimedVersion>,
281}
282#[allow(clippy::derive_partial_eq_without_eq)]
283#[derive(Clone, PartialEq, ::prost::Message)]
284pub struct Codec {
285 #[prost(string, tag="1")]
286 pub mime: ::prost::alloc::string::String,
287 #[prost(string, tag="2")]
288 pub fmtp_line: ::prost::alloc::string::String,
289}
290#[allow(clippy::derive_partial_eq_without_eq)]
291#[derive(Clone, PartialEq, ::prost::Message)]
292pub struct PlayoutDelay {
293 #[prost(bool, tag="1")]
294 pub enabled: bool,
295 #[prost(uint32, tag="2")]
296 pub min: u32,
297 #[prost(uint32, tag="3")]
298 pub max: u32,
299}
300#[allow(clippy::derive_partial_eq_without_eq)]
301#[derive(Clone, PartialEq, ::prost::Message)]
302pub struct ParticipantPermission {
303 #[prost(bool, tag="1")]
305 pub can_subscribe: bool,
306 #[prost(bool, tag="2")]
308 pub can_publish: bool,
309 #[prost(bool, tag="3")]
311 pub can_publish_data: bool,
312 #[prost(enumeration="TrackSource", repeated, tag="9")]
314 pub can_publish_sources: ::prost::alloc::vec::Vec<i32>,
315 #[prost(bool, tag="7")]
317 pub hidden: bool,
318 #[deprecated]
321 #[prost(bool, tag="8")]
322 pub recorder: bool,
323 #[prost(bool, tag="10")]
325 pub can_update_metadata: bool,
326 #[deprecated]
329 #[prost(bool, tag="11")]
330 pub agent: bool,
331 #[prost(bool, tag="12")]
333 pub can_subscribe_metrics: bool,
334 #[prost(bool, tag="13")]
336 pub can_manage_agent_session: bool,
337}
338#[allow(clippy::derive_partial_eq_without_eq)]
339#[derive(Clone, PartialEq, ::prost::Message)]
340pub struct ParticipantInfo {
341 #[prost(string, tag="1")]
342 pub sid: ::prost::alloc::string::String,
343 #[prost(string, tag="2")]
344 pub identity: ::prost::alloc::string::String,
345 #[prost(enumeration="participant_info::State", tag="3")]
346 pub state: i32,
347 #[prost(message, repeated, tag="4")]
348 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
349 #[prost(string, tag="5")]
350 pub metadata: ::prost::alloc::string::String,
351 #[prost(int64, tag="6")]
353 pub joined_at: i64,
354 #[prost(int64, tag="17")]
356 pub joined_at_ms: i64,
357 #[prost(string, tag="9")]
358 pub name: ::prost::alloc::string::String,
359 #[prost(uint32, tag="10")]
360 pub version: u32,
361 #[prost(message, optional, tag="11")]
362 pub permission: ::core::option::Option<ParticipantPermission>,
363 #[prost(string, tag="12")]
364 pub region: ::prost::alloc::string::String,
365 #[prost(bool, tag="13")]
368 pub is_publisher: bool,
369 #[prost(enumeration="participant_info::Kind", tag="14")]
370 pub kind: i32,
371 #[prost(map="string, string", tag="15")]
372 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
373 #[prost(enumeration="DisconnectReason", tag="16")]
374 pub disconnect_reason: i32,
375 #[prost(enumeration="participant_info::KindDetail", repeated, tag="18")]
376 pub kind_details: ::prost::alloc::vec::Vec<i32>,
377 #[prost(message, repeated, tag="19")]
378 pub data_tracks: ::prost::alloc::vec::Vec<DataTrackInfo>,
379 #[prost(int32, tag="20")]
381 pub client_protocol: i32,
382 #[prost(enumeration="client_info::Capability", repeated, tag="21")]
385 pub capabilities: ::prost::alloc::vec::Vec<i32>,
386}
387pub mod participant_info {
389 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
390 #[repr(i32)]
391 pub enum State {
392 Joining = 0,
394 Joined = 1,
396 Active = 2,
398 Disconnected = 3,
400 }
401 impl State {
402 pub fn as_str_name(&self) -> &'static str {
407 match self {
408 State::Joining => "JOINING",
409 State::Joined => "JOINED",
410 State::Active => "ACTIVE",
411 State::Disconnected => "DISCONNECTED",
412 }
413 }
414 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
416 match value {
417 "JOINING" => Some(Self::Joining),
418 "JOINED" => Some(Self::Joined),
419 "ACTIVE" => Some(Self::Active),
420 "DISCONNECTED" => Some(Self::Disconnected),
421 _ => None,
422 }
423 }
424 }
425 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
426 #[repr(i32)]
427 pub enum Kind {
428 Standard = 0,
430 Ingress = 1,
432 Egress = 2,
434 Sip = 3,
436 Agent = 4,
438 Connector = 7,
440 Bridge = 8,
444 }
445 impl Kind {
446 pub fn as_str_name(&self) -> &'static str {
451 match self {
452 Kind::Standard => "STANDARD",
453 Kind::Ingress => "INGRESS",
454 Kind::Egress => "EGRESS",
455 Kind::Sip => "SIP",
456 Kind::Agent => "AGENT",
457 Kind::Connector => "CONNECTOR",
458 Kind::Bridge => "BRIDGE",
459 }
460 }
461 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
463 match value {
464 "STANDARD" => Some(Self::Standard),
465 "INGRESS" => Some(Self::Ingress),
466 "EGRESS" => Some(Self::Egress),
467 "SIP" => Some(Self::Sip),
468 "AGENT" => Some(Self::Agent),
469 "CONNECTOR" => Some(Self::Connector),
470 "BRIDGE" => Some(Self::Bridge),
471 _ => None,
472 }
473 }
474 }
475 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
476 #[repr(i32)]
477 pub enum KindDetail {
478 CloudAgent = 0,
479 Forwarded = 1,
480 ConnectorWhatsapp = 2,
481 ConnectorTwilio = 3,
482 BridgeRtsp = 4,
483 Simulation = 5,
485 }
486 impl KindDetail {
487 pub fn as_str_name(&self) -> &'static str {
492 match self {
493 KindDetail::CloudAgent => "CLOUD_AGENT",
494 KindDetail::Forwarded => "FORWARDED",
495 KindDetail::ConnectorWhatsapp => "CONNECTOR_WHATSAPP",
496 KindDetail::ConnectorTwilio => "CONNECTOR_TWILIO",
497 KindDetail::BridgeRtsp => "BRIDGE_RTSP",
498 KindDetail::Simulation => "SIMULATION",
499 }
500 }
501 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
503 match value {
504 "CLOUD_AGENT" => Some(Self::CloudAgent),
505 "FORWARDED" => Some(Self::Forwarded),
506 "CONNECTOR_WHATSAPP" => Some(Self::ConnectorWhatsapp),
507 "CONNECTOR_TWILIO" => Some(Self::ConnectorTwilio),
508 "BRIDGE_RTSP" => Some(Self::BridgeRtsp),
509 "SIMULATION" => Some(Self::Simulation),
510 _ => None,
511 }
512 }
513 }
514}
515#[allow(clippy::derive_partial_eq_without_eq)]
516#[derive(Clone, PartialEq, ::prost::Message)]
517pub struct Encryption {
518}
519pub mod encryption {
521 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
522 #[repr(i32)]
523 pub enum Type {
524 None = 0,
525 Gcm = 1,
526 Custom = 2,
527 }
528 impl Type {
529 pub fn as_str_name(&self) -> &'static str {
534 match self {
535 Type::None => "NONE",
536 Type::Gcm => "GCM",
537 Type::Custom => "CUSTOM",
538 }
539 }
540 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
542 match value {
543 "NONE" => Some(Self::None),
544 "GCM" => Some(Self::Gcm),
545 "CUSTOM" => Some(Self::Custom),
546 _ => None,
547 }
548 }
549 }
550}
551#[allow(clippy::derive_partial_eq_without_eq)]
552#[derive(Clone, PartialEq, ::prost::Message)]
553pub struct SimulcastCodecInfo {
554 #[prost(string, tag="1")]
555 pub mime_type: ::prost::alloc::string::String,
556 #[prost(string, tag="2")]
557 pub mid: ::prost::alloc::string::String,
558 #[prost(string, tag="3")]
559 pub cid: ::prost::alloc::string::String,
560 #[prost(message, repeated, tag="4")]
561 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
562 #[prost(enumeration="video_layer::Mode", tag="5")]
563 pub video_layer_mode: i32,
564 #[prost(string, tag="6")]
569 pub sdp_cid: ::prost::alloc::string::String,
570}
571#[allow(clippy::derive_partial_eq_without_eq)]
572#[derive(Clone, PartialEq, ::prost::Message)]
573pub struct TrackInfo {
574 #[prost(string, tag="1")]
575 pub sid: ::prost::alloc::string::String,
576 #[prost(enumeration="TrackType", tag="2")]
577 pub r#type: i32,
578 #[prost(string, tag="3")]
579 pub name: ::prost::alloc::string::String,
580 #[prost(bool, tag="4")]
581 pub muted: bool,
582 #[prost(uint32, tag="5")]
585 pub width: u32,
586 #[prost(uint32, tag="6")]
588 pub height: u32,
589 #[deprecated]
593 #[prost(bool, tag="7")]
594 pub simulcast: bool,
595 #[deprecated]
599 #[prost(bool, tag="8")]
600 pub disable_dtx: bool,
601 #[prost(enumeration="TrackSource", tag="9")]
603 pub source: i32,
604 #[deprecated]
606 #[prost(message, repeated, tag="10")]
607 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
608 #[prost(string, tag="11")]
610 pub mime_type: ::prost::alloc::string::String,
611 #[prost(string, tag="12")]
612 pub mid: ::prost::alloc::string::String,
613 #[prost(message, repeated, tag="13")]
614 pub codecs: ::prost::alloc::vec::Vec<SimulcastCodecInfo>,
615 #[deprecated]
617 #[prost(bool, tag="14")]
618 pub stereo: bool,
619 #[prost(bool, tag="15")]
621 pub disable_red: bool,
622 #[prost(enumeration="encryption::Type", tag="16")]
623 pub encryption: i32,
624 #[prost(string, tag="17")]
625 pub stream: ::prost::alloc::string::String,
626 #[prost(message, optional, tag="18")]
627 pub version: ::core::option::Option<TimedVersion>,
628 #[prost(enumeration="AudioTrackFeature", repeated, tag="19")]
629 pub audio_features: ::prost::alloc::vec::Vec<i32>,
630 #[prost(enumeration="BackupCodecPolicy", tag="20")]
631 pub backup_codec_policy: i32,
632 #[prost(enumeration="PacketTrailerFeature", repeated, tag="21")]
633 pub packet_trailer_features: ::prost::alloc::vec::Vec<i32>,
634}
635#[allow(clippy::derive_partial_eq_without_eq)]
636#[derive(Clone, PartialEq, ::prost::Message)]
637pub struct DataTrackInfo {
638 #[prost(uint32, tag="1")]
640 pub pub_handle: u32,
641 #[prost(string, tag="2")]
643 pub sid: ::prost::alloc::string::String,
644 #[prost(string, tag="3")]
646 pub name: ::prost::alloc::string::String,
647 #[prost(enumeration="encryption::Type", tag="4")]
649 pub encryption: i32,
650 #[prost(message, optional, tag="5")]
652 pub frame_encoding: ::core::option::Option<DataTrackFrameEncoding>,
653 #[prost(message, optional, tag="6")]
655 pub schema: ::core::option::Option<DataTrackSchemaId>,
656}
657#[allow(clippy::derive_partial_eq_without_eq)]
659#[derive(Clone, PartialEq, ::prost::Message)]
660pub struct DataTrackFrameEncoding {
661 #[prost(oneof="data_track_frame_encoding::Value", tags="1, 2")]
662 pub value: ::core::option::Option<data_track_frame_encoding::Value>,
663}
664pub mod data_track_frame_encoding {
666 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
672 #[repr(i32)]
673 pub enum WellKnownFrameEncoding {
674 Unspecified = 0,
675 Ros1 = 1,
677 Cdr = 2,
679 Protobuf = 3,
681 Flatbuffer = 4,
683 Cbor = 5,
685 Msgpack = 6,
687 Json = 7,
689 }
690 impl WellKnownFrameEncoding {
691 pub fn as_str_name(&self) -> &'static str {
696 match self {
697 WellKnownFrameEncoding::Unspecified => "WELL_KNOWN_FRAME_ENCODING_UNSPECIFIED",
698 WellKnownFrameEncoding::Ros1 => "WELL_KNOWN_FRAME_ENCODING_ROS1",
699 WellKnownFrameEncoding::Cdr => "WELL_KNOWN_FRAME_ENCODING_CDR",
700 WellKnownFrameEncoding::Protobuf => "WELL_KNOWN_FRAME_ENCODING_PROTOBUF",
701 WellKnownFrameEncoding::Flatbuffer => "WELL_KNOWN_FRAME_ENCODING_FLATBUFFER",
702 WellKnownFrameEncoding::Cbor => "WELL_KNOWN_FRAME_ENCODING_CBOR",
703 WellKnownFrameEncoding::Msgpack => "WELL_KNOWN_FRAME_ENCODING_MSGPACK",
704 WellKnownFrameEncoding::Json => "WELL_KNOWN_FRAME_ENCODING_JSON",
705 }
706 }
707 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
709 match value {
710 "WELL_KNOWN_FRAME_ENCODING_UNSPECIFIED" => Some(Self::Unspecified),
711 "WELL_KNOWN_FRAME_ENCODING_ROS1" => Some(Self::Ros1),
712 "WELL_KNOWN_FRAME_ENCODING_CDR" => Some(Self::Cdr),
713 "WELL_KNOWN_FRAME_ENCODING_PROTOBUF" => Some(Self::Protobuf),
714 "WELL_KNOWN_FRAME_ENCODING_FLATBUFFER" => Some(Self::Flatbuffer),
715 "WELL_KNOWN_FRAME_ENCODING_CBOR" => Some(Self::Cbor),
716 "WELL_KNOWN_FRAME_ENCODING_MSGPACK" => Some(Self::Msgpack),
717 "WELL_KNOWN_FRAME_ENCODING_JSON" => Some(Self::Json),
718 _ => None,
719 }
720 }
721 }
722 #[allow(clippy::derive_partial_eq_without_eq)]
723#[derive(Clone, PartialEq, ::prost::Oneof)]
724 pub enum Value {
725 #[prost(enumeration="WellKnownFrameEncoding", tag="1")]
726 WellKnown(i32),
727 #[prost(string, tag="2")]
730 Custom(::prost::alloc::string::String),
731 }
732}
733#[allow(clippy::derive_partial_eq_without_eq)]
735#[derive(Clone, PartialEq, ::prost::Message)]
736pub struct DataTrackSchemaEncoding {
737 #[prost(oneof="data_track_schema_encoding::Value", tags="1, 2")]
738 pub value: ::core::option::Option<data_track_schema_encoding::Value>,
739}
740pub mod data_track_schema_encoding {
742 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
748 #[repr(i32)]
749 pub enum WellKnownSchemaEncoding {
750 Unspecified = 0,
751 Protobuf = 1,
753 Flatbuffer = 2,
755 Ros1Msg = 3,
757 Ros2Msg = 4,
759 Ros2Idl = 5,
761 OmgIdl = 6,
763 JsonSchema = 7,
765 }
766 impl WellKnownSchemaEncoding {
767 pub fn as_str_name(&self) -> &'static str {
772 match self {
773 WellKnownSchemaEncoding::Unspecified => "WELL_KNOWN_SCHEMA_ENCODING_UNSPECIFIED",
774 WellKnownSchemaEncoding::Protobuf => "WELL_KNOWN_SCHEMA_ENCODING_PROTOBUF",
775 WellKnownSchemaEncoding::Flatbuffer => "WELL_KNOWN_SCHEMA_ENCODING_FLATBUFFER",
776 WellKnownSchemaEncoding::Ros1Msg => "WELL_KNOWN_SCHEMA_ENCODING_ROS1_MSG",
777 WellKnownSchemaEncoding::Ros2Msg => "WELL_KNOWN_SCHEMA_ENCODING_ROS2_MSG",
778 WellKnownSchemaEncoding::Ros2Idl => "WELL_KNOWN_SCHEMA_ENCODING_ROS2_IDL",
779 WellKnownSchemaEncoding::OmgIdl => "WELL_KNOWN_SCHEMA_ENCODING_OMG_IDL",
780 WellKnownSchemaEncoding::JsonSchema => "WELL_KNOWN_SCHEMA_ENCODING_JSON_SCHEMA",
781 }
782 }
783 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
785 match value {
786 "WELL_KNOWN_SCHEMA_ENCODING_UNSPECIFIED" => Some(Self::Unspecified),
787 "WELL_KNOWN_SCHEMA_ENCODING_PROTOBUF" => Some(Self::Protobuf),
788 "WELL_KNOWN_SCHEMA_ENCODING_FLATBUFFER" => Some(Self::Flatbuffer),
789 "WELL_KNOWN_SCHEMA_ENCODING_ROS1_MSG" => Some(Self::Ros1Msg),
790 "WELL_KNOWN_SCHEMA_ENCODING_ROS2_MSG" => Some(Self::Ros2Msg),
791 "WELL_KNOWN_SCHEMA_ENCODING_ROS2_IDL" => Some(Self::Ros2Idl),
792 "WELL_KNOWN_SCHEMA_ENCODING_OMG_IDL" => Some(Self::OmgIdl),
793 "WELL_KNOWN_SCHEMA_ENCODING_JSON_SCHEMA" => Some(Self::JsonSchema),
794 _ => None,
795 }
796 }
797 }
798 #[allow(clippy::derive_partial_eq_without_eq)]
799#[derive(Clone, PartialEq, ::prost::Oneof)]
800 pub enum Value {
801 #[prost(enumeration="WellKnownSchemaEncoding", tag="1")]
802 WellKnown(i32),
803 #[prost(string, tag="2")]
806 Custom(::prost::alloc::string::String),
807 }
808}
809#[allow(clippy::derive_partial_eq_without_eq)]
814#[derive(Clone, PartialEq, ::prost::Message)]
815pub struct DataTrackSchemaId {
816 #[prost(string, tag="1")]
818 pub name: ::prost::alloc::string::String,
819 #[prost(message, optional, tag="2")]
820 pub encoding: ::core::option::Option<DataTrackSchemaEncoding>,
821}
822#[allow(clippy::derive_partial_eq_without_eq)]
823#[derive(Clone, PartialEq, ::prost::Message)]
824pub struct DataTrackExtensionParticipantSid {
825 #[prost(enumeration="DataTrackExtensionId", tag="1")]
826 pub id: i32,
827 #[prost(string, tag="2")]
828 pub participant_sid: ::prost::alloc::string::String,
829}
830#[allow(clippy::derive_partial_eq_without_eq)]
831#[derive(Clone, PartialEq, ::prost::Message)]
832pub struct DataTrackSubscriptionOptions {
833 #[prost(uint32, optional, tag="1")]
836 pub target_fps: ::core::option::Option<u32>,
837}
838#[allow(clippy::derive_partial_eq_without_eq)]
840#[derive(Clone, PartialEq, ::prost::Message)]
841pub struct DataBlobKey {
842 #[prost(oneof="data_blob_key::Key", tags="1, 2")]
843 pub key: ::core::option::Option<data_blob_key::Key>,
844}
845pub mod data_blob_key {
847 #[allow(clippy::derive_partial_eq_without_eq)]
848#[derive(Clone, PartialEq, ::prost::Oneof)]
849 pub enum Key {
850 #[prost(string, tag="1")]
852 Generic(::prost::alloc::string::String),
853 #[prost(message, tag="2")]
855 SchemaId(super::DataTrackSchemaId),
856 }
857}
858#[allow(clippy::derive_partial_eq_without_eq)]
860#[derive(Clone, PartialEq, ::prost::Message)]
861pub struct DataBlob {
862 #[prost(message, optional, tag="1")]
864 pub key: ::core::option::Option<DataBlobKey>,
865 #[prost(bytes="vec", tag="2")]
867 pub contents: ::prost::alloc::vec::Vec<u8>,
868}
869#[allow(clippy::derive_partial_eq_without_eq)]
871#[derive(Clone, PartialEq, ::prost::Message)]
872pub struct VideoLayer {
873 #[prost(enumeration="VideoQuality", tag="1")]
875 pub quality: i32,
876 #[prost(uint32, tag="2")]
877 pub width: u32,
878 #[prost(uint32, tag="3")]
879 pub height: u32,
880 #[prost(uint32, tag="4")]
882 pub bitrate: u32,
883 #[prost(uint32, tag="5")]
884 pub ssrc: u32,
885 #[prost(int32, tag="6")]
886 pub spatial_layer: i32,
887 #[prost(string, tag="7")]
888 pub rid: ::prost::alloc::string::String,
889 #[prost(uint32, tag="8")]
890 pub repair_ssrc: u32,
891}
892pub mod video_layer {
894 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
895 #[repr(i32)]
896 pub enum Mode {
897 Unused = 0,
898 OneSpatialLayerPerStream = 1,
899 MultipleSpatialLayersPerStream = 2,
900 OneSpatialLayerPerStreamIncompleteRtcpSr = 3,
901 }
902 impl Mode {
903 pub fn as_str_name(&self) -> &'static str {
908 match self {
909 Mode::Unused => "MODE_UNUSED",
910 Mode::OneSpatialLayerPerStream => "ONE_SPATIAL_LAYER_PER_STREAM",
911 Mode::MultipleSpatialLayersPerStream => "MULTIPLE_SPATIAL_LAYERS_PER_STREAM",
912 Mode::OneSpatialLayerPerStreamIncompleteRtcpSr => "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR",
913 }
914 }
915 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
917 match value {
918 "MODE_UNUSED" => Some(Self::Unused),
919 "ONE_SPATIAL_LAYER_PER_STREAM" => Some(Self::OneSpatialLayerPerStream),
920 "MULTIPLE_SPATIAL_LAYERS_PER_STREAM" => Some(Self::MultipleSpatialLayersPerStream),
921 "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR" => Some(Self::OneSpatialLayerPerStreamIncompleteRtcpSr),
922 _ => None,
923 }
924 }
925 }
926}
927#[allow(clippy::derive_partial_eq_without_eq)]
929#[derive(Clone, PartialEq, ::prost::Message)]
930pub struct DataPacket {
931 #[deprecated]
932 #[prost(enumeration="data_packet::Kind", tag="1")]
933 pub kind: i32,
934 #[prost(string, tag="4")]
936 pub participant_identity: ::prost::alloc::string::String,
937 #[prost(string, repeated, tag="5")]
939 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
940 #[prost(uint32, tag="16")]
942 pub sequence: u32,
943 #[prost(string, tag="17")]
945 pub participant_sid: ::prost::alloc::string::String,
946 #[prost(oneof="data_packet::Value", tags="2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18")]
947 pub value: ::core::option::Option<data_packet::Value>,
948}
949pub mod data_packet {
951 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
952 #[repr(i32)]
953 pub enum Kind {
954 Reliable = 0,
955 Lossy = 1,
956 }
957 impl Kind {
958 pub fn as_str_name(&self) -> &'static str {
963 match self {
964 Kind::Reliable => "RELIABLE",
965 Kind::Lossy => "LOSSY",
966 }
967 }
968 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
970 match value {
971 "RELIABLE" => Some(Self::Reliable),
972 "LOSSY" => Some(Self::Lossy),
973 _ => None,
974 }
975 }
976 }
977 #[allow(clippy::derive_partial_eq_without_eq)]
978#[derive(Clone, PartialEq, ::prost::Oneof)]
979 pub enum Value {
980 #[prost(message, tag="2")]
981 User(super::UserPacket),
982 #[prost(message, tag="3")]
983 Speaker(super::ActiveSpeakerUpdate),
984 #[prost(message, tag="6")]
985 SipDtmf(super::SipDtmf),
986 #[prost(message, tag="7")]
987 Transcription(super::Transcription),
988 #[prost(message, tag="8")]
989 Metrics(super::MetricsBatch),
990 #[prost(message, tag="9")]
991 ChatMessage(super::ChatMessage),
992 #[prost(message, tag="10")]
993 RpcRequest(super::RpcRequest),
994 #[prost(message, tag="11")]
995 RpcAck(super::RpcAck),
996 #[prost(message, tag="12")]
997 RpcResponse(super::RpcResponse),
998 #[prost(message, tag="13")]
999 StreamHeader(super::data_stream::Header),
1000 #[prost(message, tag="14")]
1001 StreamChunk(super::data_stream::Chunk),
1002 #[prost(message, tag="15")]
1003 StreamTrailer(super::data_stream::Trailer),
1004 #[prost(message, tag="18")]
1005 EncryptedPacket(super::EncryptedPacket),
1006 }
1007}
1008#[allow(clippy::derive_partial_eq_without_eq)]
1009#[derive(Clone, PartialEq, ::prost::Message)]
1010pub struct EncryptedPacket {
1011 #[prost(enumeration="encryption::Type", tag="1")]
1012 pub encryption_type: i32,
1013 #[prost(bytes="vec", tag="2")]
1014 pub iv: ::prost::alloc::vec::Vec<u8>,
1015 #[prost(uint32, tag="3")]
1016 pub key_index: u32,
1017 #[prost(bytes="vec", tag="4")]
1019 pub encrypted_value: ::prost::alloc::vec::Vec<u8>,
1020}
1021#[allow(clippy::derive_partial_eq_without_eq)]
1022#[derive(Clone, PartialEq, ::prost::Message)]
1023pub struct EncryptedPacketPayload {
1024 #[prost(oneof="encrypted_packet_payload::Value", tags="1, 3, 4, 5, 6, 7, 8, 9")]
1025 pub value: ::core::option::Option<encrypted_packet_payload::Value>,
1026}
1027pub mod encrypted_packet_payload {
1029 #[allow(clippy::derive_partial_eq_without_eq)]
1030#[derive(Clone, PartialEq, ::prost::Oneof)]
1031 pub enum Value {
1032 #[prost(message, tag="1")]
1033 User(super::UserPacket),
1034 #[prost(message, tag="3")]
1035 ChatMessage(super::ChatMessage),
1036 #[prost(message, tag="4")]
1037 RpcRequest(super::RpcRequest),
1038 #[prost(message, tag="5")]
1039 RpcAck(super::RpcAck),
1040 #[prost(message, tag="6")]
1041 RpcResponse(super::RpcResponse),
1042 #[prost(message, tag="7")]
1043 StreamHeader(super::data_stream::Header),
1044 #[prost(message, tag="8")]
1045 StreamChunk(super::data_stream::Chunk),
1046 #[prost(message, tag="9")]
1047 StreamTrailer(super::data_stream::Trailer),
1048 }
1049}
1050#[allow(clippy::derive_partial_eq_without_eq)]
1051#[derive(Clone, PartialEq, ::prost::Message)]
1052pub struct ActiveSpeakerUpdate {
1053 #[prost(message, repeated, tag="1")]
1054 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
1055}
1056#[allow(clippy::derive_partial_eq_without_eq)]
1057#[derive(Clone, PartialEq, ::prost::Message)]
1058pub struct SpeakerInfo {
1059 #[prost(string, tag="1")]
1060 pub sid: ::prost::alloc::string::String,
1061 #[prost(float, tag="2")]
1063 pub level: f32,
1064 #[prost(bool, tag="3")]
1066 pub active: bool,
1067}
1068#[allow(clippy::derive_partial_eq_without_eq)]
1069#[derive(Clone, PartialEq, ::prost::Message)]
1070pub struct UserPacket {
1071 #[deprecated]
1073 #[prost(string, tag="1")]
1074 pub participant_sid: ::prost::alloc::string::String,
1075 #[deprecated]
1076 #[prost(string, tag="5")]
1077 pub participant_identity: ::prost::alloc::string::String,
1078 #[prost(bytes="vec", tag="2")]
1080 pub payload: ::prost::alloc::vec::Vec<u8>,
1081 #[deprecated]
1083 #[prost(string, repeated, tag="3")]
1084 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1085 #[deprecated]
1087 #[prost(string, repeated, tag="6")]
1088 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1089 #[prost(string, optional, tag="4")]
1091 pub topic: ::core::option::Option<::prost::alloc::string::String>,
1092 #[prost(string, optional, tag="8")]
1094 pub id: ::core::option::Option<::prost::alloc::string::String>,
1095 #[prost(uint64, optional, tag="9")]
1097 pub start_time: ::core::option::Option<u64>,
1098 #[prost(uint64, optional, tag="10")]
1099 pub end_time: ::core::option::Option<u64>,
1100 #[prost(bytes="vec", tag="11")]
1102 pub nonce: ::prost::alloc::vec::Vec<u8>,
1103}
1104#[allow(clippy::derive_partial_eq_without_eq)]
1105#[derive(Clone, PartialEq, ::prost::Message)]
1106pub struct SipDtmf {
1107 #[prost(uint32, tag="3")]
1108 pub code: u32,
1109 #[prost(string, tag="4")]
1110 pub digit: ::prost::alloc::string::String,
1111}
1112#[allow(clippy::derive_partial_eq_without_eq)]
1113#[derive(Clone, PartialEq, ::prost::Message)]
1114pub struct Transcription {
1115 #[prost(string, tag="2")]
1117 pub transcribed_participant_identity: ::prost::alloc::string::String,
1118 #[prost(string, tag="3")]
1119 pub track_id: ::prost::alloc::string::String,
1120 #[prost(message, repeated, tag="4")]
1121 pub segments: ::prost::alloc::vec::Vec<TranscriptionSegment>,
1122}
1123#[allow(clippy::derive_partial_eq_without_eq)]
1124#[derive(Clone, PartialEq, ::prost::Message)]
1125pub struct TranscriptionSegment {
1126 #[prost(string, tag="1")]
1127 pub id: ::prost::alloc::string::String,
1128 #[prost(string, tag="2")]
1129 pub text: ::prost::alloc::string::String,
1130 #[prost(uint64, tag="3")]
1131 pub start_time: u64,
1132 #[prost(uint64, tag="4")]
1133 pub end_time: u64,
1134 #[prost(bool, tag="5")]
1135 pub r#final: bool,
1136 #[prost(string, tag="6")]
1137 pub language: ::prost::alloc::string::String,
1138}
1139#[allow(clippy::derive_partial_eq_without_eq)]
1140#[derive(Clone, PartialEq, ::prost::Message)]
1141pub struct ChatMessage {
1142 #[prost(string, tag="1")]
1144 pub id: ::prost::alloc::string::String,
1145 #[prost(int64, tag="2")]
1146 pub timestamp: i64,
1147 #[prost(int64, optional, tag="3")]
1149 pub edit_timestamp: ::core::option::Option<i64>,
1150 #[prost(string, tag="4")]
1151 pub message: ::prost::alloc::string::String,
1152 #[prost(bool, tag="5")]
1154 pub deleted: bool,
1155 #[prost(bool, tag="6")]
1157 pub generated: bool,
1158}
1159#[allow(clippy::derive_partial_eq_without_eq)]
1160#[derive(Clone, PartialEq, ::prost::Message)]
1161pub struct RpcRequest {
1162 #[prost(string, tag="1")]
1163 pub id: ::prost::alloc::string::String,
1164 #[prost(string, tag="2")]
1165 pub method: ::prost::alloc::string::String,
1166 #[prost(string, tag="3")]
1167 pub payload: ::prost::alloc::string::String,
1168 #[prost(uint32, tag="4")]
1169 pub response_timeout_ms: u32,
1170 #[prost(uint32, tag="5")]
1171 pub version: u32,
1172 #[prost(bytes="vec", tag="6")]
1174 pub compressed_payload: ::prost::alloc::vec::Vec<u8>,
1175}
1176#[allow(clippy::derive_partial_eq_without_eq)]
1177#[derive(Clone, PartialEq, ::prost::Message)]
1178pub struct RpcAck {
1179 #[prost(string, tag="1")]
1180 pub request_id: ::prost::alloc::string::String,
1181}
1182#[allow(clippy::derive_partial_eq_without_eq)]
1183#[derive(Clone, PartialEq, ::prost::Message)]
1184pub struct RpcResponse {
1185 #[prost(string, tag="1")]
1186 pub request_id: ::prost::alloc::string::String,
1187 #[prost(oneof="rpc_response::Value", tags="2, 3, 4")]
1188 pub value: ::core::option::Option<rpc_response::Value>,
1189}
1190pub mod rpc_response {
1192 #[allow(clippy::derive_partial_eq_without_eq)]
1193#[derive(Clone, PartialEq, ::prost::Oneof)]
1194 pub enum Value {
1195 #[prost(string, tag="2")]
1196 Payload(::prost::alloc::string::String),
1197 #[prost(message, tag="3")]
1198 Error(super::RpcError),
1199 #[prost(bytes, tag="4")]
1201 CompressedPayload(::prost::alloc::vec::Vec<u8>),
1202 }
1203}
1204#[allow(clippy::derive_partial_eq_without_eq)]
1205#[derive(Clone, PartialEq, ::prost::Message)]
1206pub struct RpcError {
1207 #[prost(uint32, tag="1")]
1208 pub code: u32,
1209 #[prost(string, tag="2")]
1210 pub message: ::prost::alloc::string::String,
1211 #[prost(string, tag="3")]
1212 pub data: ::prost::alloc::string::String,
1213}
1214#[allow(clippy::derive_partial_eq_without_eq)]
1215#[derive(Clone, PartialEq, ::prost::Message)]
1216pub struct ParticipantTracks {
1217 #[prost(string, tag="1")]
1219 pub participant_sid: ::prost::alloc::string::String,
1220 #[prost(string, repeated, tag="2")]
1221 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1222}
1223#[allow(clippy::derive_partial_eq_without_eq)]
1225#[derive(Clone, PartialEq, ::prost::Message)]
1226pub struct ServerInfo {
1227 #[prost(enumeration="server_info::Edition", tag="1")]
1228 pub edition: i32,
1229 #[prost(string, tag="2")]
1230 pub version: ::prost::alloc::string::String,
1231 #[prost(int32, tag="3")]
1232 pub protocol: i32,
1233 #[prost(string, tag="4")]
1234 pub region: ::prost::alloc::string::String,
1235 #[prost(string, tag="5")]
1236 pub node_id: ::prost::alloc::string::String,
1237 #[prost(string, tag="6")]
1239 pub debug_info: ::prost::alloc::string::String,
1240 #[prost(int32, tag="7")]
1241 pub agent_protocol: i32,
1242}
1243pub mod server_info {
1245 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1246 #[repr(i32)]
1247 pub enum Edition {
1248 Standard = 0,
1249 Cloud = 1,
1250 }
1251 impl Edition {
1252 pub fn as_str_name(&self) -> &'static str {
1257 match self {
1258 Edition::Standard => "Standard",
1259 Edition::Cloud => "Cloud",
1260 }
1261 }
1262 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1264 match value {
1265 "Standard" => Some(Self::Standard),
1266 "Cloud" => Some(Self::Cloud),
1267 _ => None,
1268 }
1269 }
1270 }
1271}
1272#[allow(clippy::derive_partial_eq_without_eq)]
1274#[derive(Clone, PartialEq, ::prost::Message)]
1275pub struct ClientInfo {
1276 #[prost(enumeration="client_info::Sdk", tag="1")]
1277 pub sdk: i32,
1278 #[prost(string, tag="2")]
1279 pub version: ::prost::alloc::string::String,
1280 #[prost(int32, tag="3")]
1281 pub protocol: i32,
1282 #[prost(string, tag="4")]
1283 pub os: ::prost::alloc::string::String,
1284 #[prost(string, tag="5")]
1285 pub os_version: ::prost::alloc::string::String,
1286 #[prost(string, tag="6")]
1287 pub device_model: ::prost::alloc::string::String,
1288 #[prost(string, tag="7")]
1289 pub browser: ::prost::alloc::string::String,
1290 #[prost(string, tag="8")]
1291 pub browser_version: ::prost::alloc::string::String,
1292 #[prost(string, tag="9")]
1293 pub address: ::prost::alloc::string::String,
1294 #[prost(string, tag="10")]
1296 pub network: ::prost::alloc::string::String,
1297 #[prost(string, tag="11")]
1300 pub other_sdks: ::prost::alloc::string::String,
1301 #[prost(int32, tag="12")]
1303 pub client_protocol: i32,
1304 #[prost(enumeration="client_info::Capability", repeated, tag="13")]
1307 pub capabilities: ::prost::alloc::vec::Vec<i32>,
1308}
1309pub mod client_info {
1311 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1312 #[repr(i32)]
1313 pub enum Sdk {
1314 Unknown = 0,
1315 Js = 1,
1316 Swift = 2,
1317 Android = 3,
1318 Flutter = 4,
1319 Go = 5,
1320 Unity = 6,
1321 ReactNative = 7,
1322 Rust = 8,
1323 Python = 9,
1324 Cpp = 10,
1325 UnityWeb = 11,
1326 Node = 12,
1327 Unreal = 13,
1328 Esp32 = 14,
1329 }
1330 impl Sdk {
1331 pub fn as_str_name(&self) -> &'static str {
1336 match self {
1337 Sdk::Unknown => "UNKNOWN",
1338 Sdk::Js => "JS",
1339 Sdk::Swift => "SWIFT",
1340 Sdk::Android => "ANDROID",
1341 Sdk::Flutter => "FLUTTER",
1342 Sdk::Go => "GO",
1343 Sdk::Unity => "UNITY",
1344 Sdk::ReactNative => "REACT_NATIVE",
1345 Sdk::Rust => "RUST",
1346 Sdk::Python => "PYTHON",
1347 Sdk::Cpp => "CPP",
1348 Sdk::UnityWeb => "UNITY_WEB",
1349 Sdk::Node => "NODE",
1350 Sdk::Unreal => "UNREAL",
1351 Sdk::Esp32 => "ESP32",
1352 }
1353 }
1354 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1356 match value {
1357 "UNKNOWN" => Some(Self::Unknown),
1358 "JS" => Some(Self::Js),
1359 "SWIFT" => Some(Self::Swift),
1360 "ANDROID" => Some(Self::Android),
1361 "FLUTTER" => Some(Self::Flutter),
1362 "GO" => Some(Self::Go),
1363 "UNITY" => Some(Self::Unity),
1364 "REACT_NATIVE" => Some(Self::ReactNative),
1365 "RUST" => Some(Self::Rust),
1366 "PYTHON" => Some(Self::Python),
1367 "CPP" => Some(Self::Cpp),
1368 "UNITY_WEB" => Some(Self::UnityWeb),
1369 "NODE" => Some(Self::Node),
1370 "UNREAL" => Some(Self::Unreal),
1371 "ESP32" => Some(Self::Esp32),
1372 _ => None,
1373 }
1374 }
1375 }
1376 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1381 #[repr(i32)]
1382 pub enum Capability {
1383 CapUnused = 0,
1384 CapPacketTrailer = 1,
1385 CapCompressionDeflateRaw = 2,
1386 }
1387 impl Capability {
1388 pub fn as_str_name(&self) -> &'static str {
1393 match self {
1394 Capability::CapUnused => "CAP_UNUSED",
1395 Capability::CapPacketTrailer => "CAP_PACKET_TRAILER",
1396 Capability::CapCompressionDeflateRaw => "CAP_COMPRESSION_DEFLATE_RAW",
1397 }
1398 }
1399 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1401 match value {
1402 "CAP_UNUSED" => Some(Self::CapUnused),
1403 "CAP_PACKET_TRAILER" => Some(Self::CapPacketTrailer),
1404 "CAP_COMPRESSION_DEFLATE_RAW" => Some(Self::CapCompressionDeflateRaw),
1405 _ => None,
1406 }
1407 }
1408 }
1409}
1410#[allow(clippy::derive_partial_eq_without_eq)]
1412#[derive(Clone, PartialEq, ::prost::Message)]
1413pub struct ClientConfiguration {
1414 #[prost(message, optional, tag="1")]
1415 pub video: ::core::option::Option<VideoConfiguration>,
1416 #[prost(message, optional, tag="2")]
1417 pub screen: ::core::option::Option<VideoConfiguration>,
1418 #[prost(enumeration="ClientConfigSetting", tag="3")]
1419 pub resume_connection: i32,
1420 #[prost(message, optional, tag="4")]
1421 pub disabled_codecs: ::core::option::Option<DisabledCodecs>,
1422 #[prost(enumeration="ClientConfigSetting", tag="5")]
1423 pub force_relay: i32,
1424}
1425#[allow(clippy::derive_partial_eq_without_eq)]
1426#[derive(Clone, PartialEq, ::prost::Message)]
1427pub struct VideoConfiguration {
1428 #[prost(enumeration="ClientConfigSetting", tag="1")]
1429 pub hardware_encoder: i32,
1430}
1431#[allow(clippy::derive_partial_eq_without_eq)]
1432#[derive(Clone, PartialEq, ::prost::Message)]
1433pub struct DisabledCodecs {
1434 #[prost(message, repeated, tag="1")]
1436 pub codecs: ::prost::alloc::vec::Vec<Codec>,
1437 #[prost(message, repeated, tag="2")]
1439 pub publish: ::prost::alloc::vec::Vec<Codec>,
1440}
1441#[allow(clippy::derive_partial_eq_without_eq)]
1442#[derive(Clone, PartialEq, ::prost::Message)]
1443pub struct RtpDrift {
1444 #[prost(message, optional, tag="1")]
1445 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1446 #[prost(message, optional, tag="2")]
1447 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1448 #[prost(double, tag="3")]
1449 pub duration: f64,
1450 #[prost(uint64, tag="4")]
1451 pub start_timestamp: u64,
1452 #[prost(uint64, tag="5")]
1453 pub end_timestamp: u64,
1454 #[prost(uint64, tag="6")]
1455 pub rtp_clock_ticks: u64,
1456 #[prost(int64, tag="7")]
1457 pub drift_samples: i64,
1458 #[prost(double, tag="8")]
1459 pub drift_ms: f64,
1460 #[prost(double, tag="9")]
1461 pub clock_rate: f64,
1462}
1463#[allow(clippy::derive_partial_eq_without_eq)]
1464#[derive(Clone, PartialEq, ::prost::Message)]
1465pub struct RtpStats {
1466 #[prost(message, optional, tag="1")]
1467 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1468 #[prost(message, optional, tag="2")]
1469 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1470 #[prost(double, tag="3")]
1471 pub duration: f64,
1472 #[prost(uint32, tag="4")]
1473 pub packets: u32,
1474 #[prost(double, tag="5")]
1475 pub packet_rate: f64,
1476 #[prost(uint64, tag="6")]
1477 pub bytes: u64,
1478 #[prost(uint64, tag="39")]
1479 pub header_bytes: u64,
1480 #[prost(double, tag="7")]
1481 pub bitrate: f64,
1482 #[prost(uint32, tag="8")]
1483 pub packets_lost: u32,
1484 #[prost(double, tag="9")]
1485 pub packet_loss_rate: f64,
1486 #[prost(float, tag="10")]
1487 pub packet_loss_percentage: f32,
1488 #[prost(uint32, tag="11")]
1489 pub packets_duplicate: u32,
1490 #[prost(double, tag="12")]
1491 pub packet_duplicate_rate: f64,
1492 #[prost(uint64, tag="13")]
1493 pub bytes_duplicate: u64,
1494 #[prost(uint64, tag="40")]
1495 pub header_bytes_duplicate: u64,
1496 #[prost(double, tag="14")]
1497 pub bitrate_duplicate: f64,
1498 #[prost(uint32, tag="15")]
1499 pub packets_padding: u32,
1500 #[prost(double, tag="16")]
1501 pub packet_padding_rate: f64,
1502 #[prost(uint64, tag="17")]
1503 pub bytes_padding: u64,
1504 #[prost(uint64, tag="41")]
1505 pub header_bytes_padding: u64,
1506 #[prost(double, tag="18")]
1507 pub bitrate_padding: f64,
1508 #[prost(uint32, tag="19")]
1509 pub packets_out_of_order: u32,
1510 #[prost(uint32, tag="20")]
1511 pub frames: u32,
1512 #[prost(double, tag="21")]
1513 pub frame_rate: f64,
1514 #[prost(double, tag="22")]
1515 pub jitter_current: f64,
1516 #[prost(double, tag="23")]
1517 pub jitter_max: f64,
1518 #[prost(map="int32, uint32", tag="24")]
1519 pub gap_histogram: ::std::collections::HashMap<i32, u32>,
1520 #[prost(uint32, tag="25")]
1521 pub nacks: u32,
1522 #[prost(uint32, tag="37")]
1523 pub nack_acks: u32,
1524 #[prost(uint32, tag="26")]
1525 pub nack_misses: u32,
1526 #[prost(uint32, tag="38")]
1527 pub nack_repeated: u32,
1528 #[prost(uint32, tag="27")]
1529 pub plis: u32,
1530 #[prost(message, optional, tag="28")]
1531 pub last_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1532 #[prost(uint32, tag="29")]
1533 pub firs: u32,
1534 #[prost(message, optional, tag="30")]
1535 pub last_fir: ::core::option::Option<::pbjson_types::Timestamp>,
1536 #[prost(uint32, tag="31")]
1537 pub rtt_current: u32,
1538 #[prost(uint32, tag="32")]
1539 pub rtt_max: u32,
1540 #[prost(uint32, tag="33")]
1541 pub key_frames: u32,
1542 #[prost(message, optional, tag="34")]
1543 pub last_key_frame: ::core::option::Option<::pbjson_types::Timestamp>,
1544 #[prost(uint32, tag="35")]
1545 pub layer_lock_plis: u32,
1546 #[prost(message, optional, tag="36")]
1547 pub last_layer_lock_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1548 #[prost(message, optional, tag="44")]
1549 pub packet_drift: ::core::option::Option<RtpDrift>,
1550 #[prost(message, optional, tag="45")]
1551 pub ntp_report_drift: ::core::option::Option<RtpDrift>,
1552 #[prost(message, optional, tag="46")]
1553 pub rebased_report_drift: ::core::option::Option<RtpDrift>,
1554 #[prost(message, optional, tag="47")]
1556 pub received_report_drift: ::core::option::Option<RtpDrift>,
1557}
1558#[allow(clippy::derive_partial_eq_without_eq)]
1559#[derive(Clone, PartialEq, ::prost::Message)]
1560pub struct RtcpSenderReportState {
1561 #[prost(uint32, tag="1")]
1562 pub rtp_timestamp: u32,
1563 #[prost(uint64, tag="2")]
1564 pub rtp_timestamp_ext: u64,
1565 #[prost(uint64, tag="3")]
1566 pub ntp_timestamp: u64,
1567 #[prost(int64, tag="4")]
1569 pub at: i64,
1570 #[prost(int64, tag="5")]
1571 pub at_adjusted: i64,
1572 #[prost(uint32, tag="6")]
1573 pub packets: u32,
1574 #[prost(uint64, tag="7")]
1575 pub octets: u64,
1576}
1577#[allow(clippy::derive_partial_eq_without_eq)]
1578#[derive(Clone, PartialEq, ::prost::Message)]
1579pub struct RtpForwarderState {
1580 #[prost(bool, tag="1")]
1581 pub started: bool,
1582 #[prost(int32, tag="2")]
1583 pub reference_layer_spatial: i32,
1584 #[prost(int64, tag="3")]
1585 pub pre_start_time: i64,
1586 #[prost(uint64, tag="4")]
1587 pub ext_first_timestamp: u64,
1588 #[prost(uint64, tag="5")]
1589 pub dummy_start_timestamp_offset: u64,
1590 #[prost(message, optional, tag="6")]
1591 pub rtp_munger: ::core::option::Option<RtpMungerState>,
1592 #[prost(message, repeated, tag="8")]
1593 pub sender_report_state: ::prost::alloc::vec::Vec<RtcpSenderReportState>,
1594 #[prost(oneof="rtp_forwarder_state::CodecMunger", tags="7")]
1595 pub codec_munger: ::core::option::Option<rtp_forwarder_state::CodecMunger>,
1596}
1597pub mod rtp_forwarder_state {
1599 #[allow(clippy::derive_partial_eq_without_eq)]
1600#[derive(Clone, PartialEq, ::prost::Oneof)]
1601 pub enum CodecMunger {
1602 #[prost(message, tag="7")]
1603 Vp8Munger(super::Vp8MungerState),
1604 }
1605}
1606#[allow(clippy::derive_partial_eq_without_eq)]
1607#[derive(Clone, PartialEq, ::prost::Message)]
1608pub struct RtpMungerState {
1609 #[prost(uint64, tag="1")]
1610 pub ext_last_sequence_number: u64,
1611 #[prost(uint64, tag="2")]
1612 pub ext_second_last_sequence_number: u64,
1613 #[prost(uint64, tag="3")]
1614 pub ext_last_timestamp: u64,
1615 #[prost(uint64, tag="4")]
1616 pub ext_second_last_timestamp: u64,
1617 #[prost(bool, tag="5")]
1618 pub last_marker: bool,
1619 #[prost(bool, tag="6")]
1620 pub second_last_marker: bool,
1621}
1622#[allow(clippy::derive_partial_eq_without_eq)]
1623#[derive(Clone, PartialEq, ::prost::Message)]
1624pub struct Vp8MungerState {
1625 #[prost(int32, tag="1")]
1626 pub ext_last_picture_id: i32,
1627 #[prost(bool, tag="2")]
1628 pub picture_id_used: bool,
1629 #[prost(uint32, tag="3")]
1630 pub last_tl0_pic_idx: u32,
1631 #[prost(bool, tag="4")]
1632 pub tl0_pic_idx_used: bool,
1633 #[prost(bool, tag="5")]
1634 pub tid_used: bool,
1635 #[prost(uint32, tag="6")]
1636 pub last_key_idx: u32,
1637 #[prost(bool, tag="7")]
1638 pub key_idx_used: bool,
1639}
1640#[allow(clippy::derive_partial_eq_without_eq)]
1641#[derive(Clone, PartialEq, ::prost::Message)]
1642pub struct TimedVersion {
1643 #[prost(int64, tag="1")]
1644 pub unix_micro: i64,
1645 #[prost(int32, tag="2")]
1646 pub ticks: i32,
1647}
1648#[allow(clippy::derive_partial_eq_without_eq)]
1649#[derive(Clone, PartialEq, ::prost::Message)]
1650pub struct DataStream {
1651}
1652pub mod data_stream {
1654 #[allow(clippy::derive_partial_eq_without_eq)]
1656#[derive(Clone, PartialEq, ::prost::Message)]
1657 pub struct TextHeader {
1658 #[prost(enumeration="OperationType", tag="1")]
1659 pub operation_type: i32,
1660 #[prost(int32, tag="2")]
1662 pub version: i32,
1663 #[prost(string, tag="3")]
1665 pub reply_to_stream_id: ::prost::alloc::string::String,
1666 #[prost(string, repeated, tag="4")]
1668 pub attached_stream_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1669 #[prost(bool, tag="5")]
1671 pub generated: bool,
1672 }
1673 #[allow(clippy::derive_partial_eq_without_eq)]
1675#[derive(Clone, PartialEq, ::prost::Message)]
1676 pub struct ByteHeader {
1677 #[prost(string, tag="1")]
1678 pub name: ::prost::alloc::string::String,
1679 }
1680 #[allow(clippy::derive_partial_eq_without_eq)]
1682#[derive(Clone, PartialEq, ::prost::Message)]
1683 pub struct Header {
1684 #[prost(string, tag="1")]
1686 pub stream_id: ::prost::alloc::string::String,
1687 #[prost(int64, tag="2")]
1689 pub timestamp: i64,
1690 #[prost(string, tag="3")]
1691 pub topic: ::prost::alloc::string::String,
1692 #[prost(string, tag="4")]
1693 pub mime_type: ::prost::alloc::string::String,
1694 #[prost(uint64, optional, tag="5")]
1696 pub total_length: ::core::option::Option<u64>,
1697 #[deprecated]
1699 #[prost(enumeration="super::encryption::Type", tag="7")]
1700 pub encryption_type: i32,
1701 #[prost(map="string, string", tag="8")]
1703 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1704 #[prost(bytes="vec", optional, tag="11")]
1708 pub inline_content: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1709 #[prost(enumeration="CompressionType", tag="12")]
1710 pub compression: i32,
1711 #[prost(oneof="header::ContentHeader", tags="9, 10")]
1713 pub content_header: ::core::option::Option<header::ContentHeader>,
1714 }
1715 pub mod header {
1717 #[allow(clippy::derive_partial_eq_without_eq)]
1719#[derive(Clone, PartialEq, ::prost::Oneof)]
1720 pub enum ContentHeader {
1721 #[prost(message, tag="9")]
1722 TextHeader(super::TextHeader),
1723 #[prost(message, tag="10")]
1724 ByteHeader(super::ByteHeader),
1725 }
1726 }
1727 #[allow(clippy::derive_partial_eq_without_eq)]
1728#[derive(Clone, PartialEq, ::prost::Message)]
1729 pub struct Chunk {
1730 #[prost(string, tag="1")]
1732 pub stream_id: ::prost::alloc::string::String,
1733 #[prost(uint64, tag="2")]
1734 pub chunk_index: u64,
1735 #[prost(bytes="vec", tag="3")]
1737 pub content: ::prost::alloc::vec::Vec<u8>,
1738 #[prost(int32, tag="4")]
1740 pub version: i32,
1741 #[deprecated]
1743 #[prost(bytes="vec", optional, tag="5")]
1744 pub iv: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1745 }
1746 #[allow(clippy::derive_partial_eq_without_eq)]
1747#[derive(Clone, PartialEq, ::prost::Message)]
1748 pub struct Trailer {
1749 #[prost(string, tag="1")]
1751 pub stream_id: ::prost::alloc::string::String,
1752 #[prost(string, tag="2")]
1754 pub reason: ::prost::alloc::string::String,
1755 #[prost(map="string, string", tag="3")]
1757 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1758 }
1759 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1761 #[repr(i32)]
1762 pub enum OperationType {
1763 Create = 0,
1764 Update = 1,
1765 Delete = 2,
1766 Reaction = 3,
1767 }
1768 impl OperationType {
1769 pub fn as_str_name(&self) -> &'static str {
1774 match self {
1775 OperationType::Create => "CREATE",
1776 OperationType::Update => "UPDATE",
1777 OperationType::Delete => "DELETE",
1778 OperationType::Reaction => "REACTION",
1779 }
1780 }
1781 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1783 match value {
1784 "CREATE" => Some(Self::Create),
1785 "UPDATE" => Some(Self::Update),
1786 "DELETE" => Some(Self::Delete),
1787 "REACTION" => Some(Self::Reaction),
1788 _ => None,
1789 }
1790 }
1791 }
1792 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1797 #[repr(i32)]
1798 pub enum CompressionType {
1799 None = 0,
1800 DeflateRaw = 1,
1802 }
1803 impl CompressionType {
1804 pub fn as_str_name(&self) -> &'static str {
1809 match self {
1810 CompressionType::None => "NONE",
1811 CompressionType::DeflateRaw => "DEFLATE_RAW",
1812 }
1813 }
1814 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1816 match value {
1817 "NONE" => Some(Self::None),
1818 "DEFLATE_RAW" => Some(Self::DeflateRaw),
1819 _ => None,
1820 }
1821 }
1822 }
1823}
1824#[allow(clippy::derive_partial_eq_without_eq)]
1825#[derive(Clone, PartialEq, ::prost::Message)]
1826pub struct FilterParams {
1827 #[prost(string, repeated, tag="1")]
1828 pub include_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1829 #[prost(string, repeated, tag="2")]
1830 pub exclude_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1831}
1832#[allow(clippy::derive_partial_eq_without_eq)]
1833#[derive(Clone, PartialEq, ::prost::Message)]
1834pub struct WebhookConfig {
1835 #[prost(string, tag="1")]
1836 pub url: ::prost::alloc::string::String,
1837 #[prost(string, tag="2")]
1838 pub signing_key: ::prost::alloc::string::String,
1839 #[prost(message, optional, tag="3")]
1840 pub filter_params: ::core::option::Option<FilterParams>,
1841}
1842#[allow(clippy::derive_partial_eq_without_eq)]
1843#[derive(Clone, PartialEq, ::prost::Message)]
1844pub struct SubscribedAudioCodec {
1845 #[prost(string, tag="1")]
1846 pub codec: ::prost::alloc::string::String,
1847 #[prost(bool, tag="2")]
1848 pub enabled: bool,
1849}
1850#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1851#[repr(i32)]
1852pub enum AudioCodec {
1853 DefaultAc = 0,
1854 Opus = 1,
1855 Aac = 2,
1856 AcMp3 = 3,
1857}
1858impl AudioCodec {
1859 pub fn as_str_name(&self) -> &'static str {
1864 match self {
1865 AudioCodec::DefaultAc => "DEFAULT_AC",
1866 AudioCodec::Opus => "OPUS",
1867 AudioCodec::Aac => "AAC",
1868 AudioCodec::AcMp3 => "AC_MP3",
1869 }
1870 }
1871 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1873 match value {
1874 "DEFAULT_AC" => Some(Self::DefaultAc),
1875 "OPUS" => Some(Self::Opus),
1876 "AAC" => Some(Self::Aac),
1877 "AC_MP3" => Some(Self::AcMp3),
1878 _ => None,
1879 }
1880 }
1881}
1882#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1883#[repr(i32)]
1884pub enum VideoCodec {
1885 DefaultVc = 0,
1886 H264Baseline = 1,
1887 H264Main = 2,
1888 H264High = 3,
1889 Vp8 = 4,
1890}
1891impl VideoCodec {
1892 pub fn as_str_name(&self) -> &'static str {
1897 match self {
1898 VideoCodec::DefaultVc => "DEFAULT_VC",
1899 VideoCodec::H264Baseline => "H264_BASELINE",
1900 VideoCodec::H264Main => "H264_MAIN",
1901 VideoCodec::H264High => "H264_HIGH",
1902 VideoCodec::Vp8 => "VP8",
1903 }
1904 }
1905 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1907 match value {
1908 "DEFAULT_VC" => Some(Self::DefaultVc),
1909 "H264_BASELINE" => Some(Self::H264Baseline),
1910 "H264_MAIN" => Some(Self::H264Main),
1911 "H264_HIGH" => Some(Self::H264High),
1912 "VP8" => Some(Self::Vp8),
1913 _ => None,
1914 }
1915 }
1916}
1917#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1918#[repr(i32)]
1919pub enum ImageCodec {
1920 IcDefault = 0,
1921 IcJpeg = 1,
1922}
1923impl ImageCodec {
1924 pub fn as_str_name(&self) -> &'static str {
1929 match self {
1930 ImageCodec::IcDefault => "IC_DEFAULT",
1931 ImageCodec::IcJpeg => "IC_JPEG",
1932 }
1933 }
1934 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1936 match value {
1937 "IC_DEFAULT" => Some(Self::IcDefault),
1938 "IC_JPEG" => Some(Self::IcJpeg),
1939 _ => None,
1940 }
1941 }
1942}
1943#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1945#[repr(i32)]
1946pub enum BackupCodecPolicy {
1947 PreferRegression = 0,
1950 Simulcast = 1,
1952 Regression = 2,
1954}
1955impl BackupCodecPolicy {
1956 pub fn as_str_name(&self) -> &'static str {
1961 match self {
1962 BackupCodecPolicy::PreferRegression => "PREFER_REGRESSION",
1963 BackupCodecPolicy::Simulcast => "SIMULCAST",
1964 BackupCodecPolicy::Regression => "REGRESSION",
1965 }
1966 }
1967 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1969 match value {
1970 "PREFER_REGRESSION" => Some(Self::PreferRegression),
1971 "SIMULCAST" => Some(Self::Simulcast),
1972 "REGRESSION" => Some(Self::Regression),
1973 _ => None,
1974 }
1975 }
1976}
1977#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1978#[repr(i32)]
1979pub enum TrackType {
1980 Audio = 0,
1981 Video = 1,
1982 Data = 2,
1983}
1984impl TrackType {
1985 pub fn as_str_name(&self) -> &'static str {
1990 match self {
1991 TrackType::Audio => "AUDIO",
1992 TrackType::Video => "VIDEO",
1993 TrackType::Data => "DATA",
1994 }
1995 }
1996 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1998 match value {
1999 "AUDIO" => Some(Self::Audio),
2000 "VIDEO" => Some(Self::Video),
2001 "DATA" => Some(Self::Data),
2002 _ => None,
2003 }
2004 }
2005}
2006#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2007#[repr(i32)]
2008pub enum TrackSource {
2009 Unknown = 0,
2010 Camera = 1,
2011 Microphone = 2,
2012 ScreenShare = 3,
2013 ScreenShareAudio = 4,
2014}
2015impl TrackSource {
2016 pub fn as_str_name(&self) -> &'static str {
2021 match self {
2022 TrackSource::Unknown => "UNKNOWN",
2023 TrackSource::Camera => "CAMERA",
2024 TrackSource::Microphone => "MICROPHONE",
2025 TrackSource::ScreenShare => "SCREEN_SHARE",
2026 TrackSource::ScreenShareAudio => "SCREEN_SHARE_AUDIO",
2027 }
2028 }
2029 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2031 match value {
2032 "UNKNOWN" => Some(Self::Unknown),
2033 "CAMERA" => Some(Self::Camera),
2034 "MICROPHONE" => Some(Self::Microphone),
2035 "SCREEN_SHARE" => Some(Self::ScreenShare),
2036 "SCREEN_SHARE_AUDIO" => Some(Self::ScreenShareAudio),
2037 _ => None,
2038 }
2039 }
2040}
2041#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2042#[repr(i32)]
2043pub enum DataTrackExtensionId {
2044 DteiInvalid = 0,
2045 DteiParticipantSid = 1,
2046}
2047impl DataTrackExtensionId {
2048 pub fn as_str_name(&self) -> &'static str {
2053 match self {
2054 DataTrackExtensionId::DteiInvalid => "DTEI_INVALID",
2055 DataTrackExtensionId::DteiParticipantSid => "DTEI_PARTICIPANT_SID",
2056 }
2057 }
2058 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2060 match value {
2061 "DTEI_INVALID" => Some(Self::DteiInvalid),
2062 "DTEI_PARTICIPANT_SID" => Some(Self::DteiParticipantSid),
2063 _ => None,
2064 }
2065 }
2066}
2067#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2068#[repr(i32)]
2069pub enum VideoQuality {
2070 Low = 0,
2071 Medium = 1,
2072 High = 2,
2073 Off = 3,
2074}
2075impl VideoQuality {
2076 pub fn as_str_name(&self) -> &'static str {
2081 match self {
2082 VideoQuality::Low => "LOW",
2083 VideoQuality::Medium => "MEDIUM",
2084 VideoQuality::High => "HIGH",
2085 VideoQuality::Off => "OFF",
2086 }
2087 }
2088 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2090 match value {
2091 "LOW" => Some(Self::Low),
2092 "MEDIUM" => Some(Self::Medium),
2093 "HIGH" => Some(Self::High),
2094 "OFF" => Some(Self::Off),
2095 _ => None,
2096 }
2097 }
2098}
2099#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2100#[repr(i32)]
2101pub enum ConnectionQuality {
2102 Poor = 0,
2103 Good = 1,
2104 Excellent = 2,
2105 Lost = 3,
2106}
2107impl ConnectionQuality {
2108 pub fn as_str_name(&self) -> &'static str {
2113 match self {
2114 ConnectionQuality::Poor => "POOR",
2115 ConnectionQuality::Good => "GOOD",
2116 ConnectionQuality::Excellent => "EXCELLENT",
2117 ConnectionQuality::Lost => "LOST",
2118 }
2119 }
2120 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2122 match value {
2123 "POOR" => Some(Self::Poor),
2124 "GOOD" => Some(Self::Good),
2125 "EXCELLENT" => Some(Self::Excellent),
2126 "LOST" => Some(Self::Lost),
2127 _ => None,
2128 }
2129 }
2130}
2131#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2132#[repr(i32)]
2133pub enum ClientConfigSetting {
2134 Unset = 0,
2135 Disabled = 1,
2136 Enabled = 2,
2137}
2138impl ClientConfigSetting {
2139 pub fn as_str_name(&self) -> &'static str {
2144 match self {
2145 ClientConfigSetting::Unset => "UNSET",
2146 ClientConfigSetting::Disabled => "DISABLED",
2147 ClientConfigSetting::Enabled => "ENABLED",
2148 }
2149 }
2150 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2152 match value {
2153 "UNSET" => Some(Self::Unset),
2154 "DISABLED" => Some(Self::Disabled),
2155 "ENABLED" => Some(Self::Enabled),
2156 _ => None,
2157 }
2158 }
2159}
2160#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2161#[repr(i32)]
2162pub enum DisconnectReason {
2163 UnknownReason = 0,
2164 ClientInitiated = 1,
2166 DuplicateIdentity = 2,
2168 ServerShutdown = 3,
2170 ParticipantRemoved = 4,
2172 RoomDeleted = 5,
2174 StateMismatch = 6,
2176 JoinFailure = 7,
2178 Migration = 8,
2180 SignalClose = 9,
2182 RoomClosed = 10,
2184 UserUnavailable = 11,
2186 UserRejected = 12,
2188 SipTrunkFailure = 13,
2190 ConnectionTimeout = 14,
2192 MediaFailure = 15,
2194 AgentError = 16,
2196}
2197impl DisconnectReason {
2198 pub fn as_str_name(&self) -> &'static str {
2203 match self {
2204 DisconnectReason::UnknownReason => "UNKNOWN_REASON",
2205 DisconnectReason::ClientInitiated => "CLIENT_INITIATED",
2206 DisconnectReason::DuplicateIdentity => "DUPLICATE_IDENTITY",
2207 DisconnectReason::ServerShutdown => "SERVER_SHUTDOWN",
2208 DisconnectReason::ParticipantRemoved => "PARTICIPANT_REMOVED",
2209 DisconnectReason::RoomDeleted => "ROOM_DELETED",
2210 DisconnectReason::StateMismatch => "STATE_MISMATCH",
2211 DisconnectReason::JoinFailure => "JOIN_FAILURE",
2212 DisconnectReason::Migration => "MIGRATION",
2213 DisconnectReason::SignalClose => "SIGNAL_CLOSE",
2214 DisconnectReason::RoomClosed => "ROOM_CLOSED",
2215 DisconnectReason::UserUnavailable => "USER_UNAVAILABLE",
2216 DisconnectReason::UserRejected => "USER_REJECTED",
2217 DisconnectReason::SipTrunkFailure => "SIP_TRUNK_FAILURE",
2218 DisconnectReason::ConnectionTimeout => "CONNECTION_TIMEOUT",
2219 DisconnectReason::MediaFailure => "MEDIA_FAILURE",
2220 DisconnectReason::AgentError => "AGENT_ERROR",
2221 }
2222 }
2223 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2225 match value {
2226 "UNKNOWN_REASON" => Some(Self::UnknownReason),
2227 "CLIENT_INITIATED" => Some(Self::ClientInitiated),
2228 "DUPLICATE_IDENTITY" => Some(Self::DuplicateIdentity),
2229 "SERVER_SHUTDOWN" => Some(Self::ServerShutdown),
2230 "PARTICIPANT_REMOVED" => Some(Self::ParticipantRemoved),
2231 "ROOM_DELETED" => Some(Self::RoomDeleted),
2232 "STATE_MISMATCH" => Some(Self::StateMismatch),
2233 "JOIN_FAILURE" => Some(Self::JoinFailure),
2234 "MIGRATION" => Some(Self::Migration),
2235 "SIGNAL_CLOSE" => Some(Self::SignalClose),
2236 "ROOM_CLOSED" => Some(Self::RoomClosed),
2237 "USER_UNAVAILABLE" => Some(Self::UserUnavailable),
2238 "USER_REJECTED" => Some(Self::UserRejected),
2239 "SIP_TRUNK_FAILURE" => Some(Self::SipTrunkFailure),
2240 "CONNECTION_TIMEOUT" => Some(Self::ConnectionTimeout),
2241 "MEDIA_FAILURE" => Some(Self::MediaFailure),
2242 "AGENT_ERROR" => Some(Self::AgentError),
2243 _ => None,
2244 }
2245 }
2246}
2247#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2248#[repr(i32)]
2249pub enum ReconnectReason {
2250 RrUnknown = 0,
2251 RrSignalDisconnected = 1,
2252 RrPublisherFailed = 2,
2253 RrSubscriberFailed = 3,
2254 RrSwitchCandidate = 4,
2255}
2256impl ReconnectReason {
2257 pub fn as_str_name(&self) -> &'static str {
2262 match self {
2263 ReconnectReason::RrUnknown => "RR_UNKNOWN",
2264 ReconnectReason::RrSignalDisconnected => "RR_SIGNAL_DISCONNECTED",
2265 ReconnectReason::RrPublisherFailed => "RR_PUBLISHER_FAILED",
2266 ReconnectReason::RrSubscriberFailed => "RR_SUBSCRIBER_FAILED",
2267 ReconnectReason::RrSwitchCandidate => "RR_SWITCH_CANDIDATE",
2268 }
2269 }
2270 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2272 match value {
2273 "RR_UNKNOWN" => Some(Self::RrUnknown),
2274 "RR_SIGNAL_DISCONNECTED" => Some(Self::RrSignalDisconnected),
2275 "RR_PUBLISHER_FAILED" => Some(Self::RrPublisherFailed),
2276 "RR_SUBSCRIBER_FAILED" => Some(Self::RrSubscriberFailed),
2277 "RR_SWITCH_CANDIDATE" => Some(Self::RrSwitchCandidate),
2278 _ => None,
2279 }
2280 }
2281}
2282#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2283#[repr(i32)]
2284pub enum SubscriptionError {
2285 SeUnknown = 0,
2286 SeCodecUnsupported = 1,
2287 SeTrackNotfound = 2,
2288}
2289impl SubscriptionError {
2290 pub fn as_str_name(&self) -> &'static str {
2295 match self {
2296 SubscriptionError::SeUnknown => "SE_UNKNOWN",
2297 SubscriptionError::SeCodecUnsupported => "SE_CODEC_UNSUPPORTED",
2298 SubscriptionError::SeTrackNotfound => "SE_TRACK_NOTFOUND",
2299 }
2300 }
2301 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2303 match value {
2304 "SE_UNKNOWN" => Some(Self::SeUnknown),
2305 "SE_CODEC_UNSUPPORTED" => Some(Self::SeCodecUnsupported),
2306 "SE_TRACK_NOTFOUND" => Some(Self::SeTrackNotfound),
2307 _ => None,
2308 }
2309 }
2310}
2311#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2312#[repr(i32)]
2313pub enum AudioTrackFeature {
2314 TfStereo = 0,
2315 TfNoDtx = 1,
2316 TfAutoGainControl = 2,
2317 TfEchoCancellation = 3,
2318 TfNoiseSuppression = 4,
2319 TfEnhancedNoiseCancellation = 5,
2320 TfPreconnectBuffer = 6,
2322}
2323impl AudioTrackFeature {
2324 pub fn as_str_name(&self) -> &'static str {
2329 match self {
2330 AudioTrackFeature::TfStereo => "TF_STEREO",
2331 AudioTrackFeature::TfNoDtx => "TF_NO_DTX",
2332 AudioTrackFeature::TfAutoGainControl => "TF_AUTO_GAIN_CONTROL",
2333 AudioTrackFeature::TfEchoCancellation => "TF_ECHO_CANCELLATION",
2334 AudioTrackFeature::TfNoiseSuppression => "TF_NOISE_SUPPRESSION",
2335 AudioTrackFeature::TfEnhancedNoiseCancellation => "TF_ENHANCED_NOISE_CANCELLATION",
2336 AudioTrackFeature::TfPreconnectBuffer => "TF_PRECONNECT_BUFFER",
2337 }
2338 }
2339 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2341 match value {
2342 "TF_STEREO" => Some(Self::TfStereo),
2343 "TF_NO_DTX" => Some(Self::TfNoDtx),
2344 "TF_AUTO_GAIN_CONTROL" => Some(Self::TfAutoGainControl),
2345 "TF_ECHO_CANCELLATION" => Some(Self::TfEchoCancellation),
2346 "TF_NOISE_SUPPRESSION" => Some(Self::TfNoiseSuppression),
2347 "TF_ENHANCED_NOISE_CANCELLATION" => Some(Self::TfEnhancedNoiseCancellation),
2348 "TF_PRECONNECT_BUFFER" => Some(Self::TfPreconnectBuffer),
2349 _ => None,
2350 }
2351 }
2352}
2353#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2354#[repr(i32)]
2355pub enum PacketTrailerFeature {
2356 PtfUserTimestamp = 0,
2357 PtfFrameId = 1,
2358 PtfUserData = 2,
2359}
2360impl PacketTrailerFeature {
2361 pub fn as_str_name(&self) -> &'static str {
2366 match self {
2367 PacketTrailerFeature::PtfUserTimestamp => "PTF_USER_TIMESTAMP",
2368 PacketTrailerFeature::PtfFrameId => "PTF_FRAME_ID",
2369 PacketTrailerFeature::PtfUserData => "PTF_USER_DATA",
2370 }
2371 }
2372 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2374 match value {
2375 "PTF_USER_TIMESTAMP" => Some(Self::PtfUserTimestamp),
2376 "PTF_FRAME_ID" => Some(Self::PtfFrameId),
2377 "PTF_USER_DATA" => Some(Self::PtfUserData),
2378 _ => None,
2379 }
2380 }
2381}
2382#[allow(clippy::derive_partial_eq_without_eq)]
2385#[derive(Clone, PartialEq, ::prost::Message)]
2386pub struct StartEgressRequest {
2387 #[prost(string, tag="1")]
2388 pub room_name: ::prost::alloc::string::String,
2389 #[prost(message, repeated, tag="7")]
2391 pub outputs: ::prost::alloc::vec::Vec<Output>,
2392 #[prost(message, optional, tag="8")]
2394 pub storage: ::core::option::Option<StorageConfig>,
2395 #[prost(message, repeated, tag="9")]
2397 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2398 #[prost(oneof="start_egress_request::Source", tags="2, 3, 4")]
2399 pub source: ::core::option::Option<start_egress_request::Source>,
2400 #[prost(oneof="start_egress_request::Encoding", tags="5, 6")]
2402 pub encoding: ::core::option::Option<start_egress_request::Encoding>,
2403}
2404pub mod start_egress_request {
2406 #[allow(clippy::derive_partial_eq_without_eq)]
2407#[derive(Clone, PartialEq, ::prost::Oneof)]
2408 pub enum Source {
2409 #[prost(message, tag="2")]
2410 Template(super::TemplateSource),
2411 #[prost(message, tag="3")]
2412 Web(super::WebSource),
2413 #[prost(message, tag="4")]
2414 Media(super::MediaSource),
2415 }
2416 #[allow(clippy::derive_partial_eq_without_eq)]
2418#[derive(Clone, PartialEq, ::prost::Oneof)]
2419 pub enum Encoding {
2420 #[prost(enumeration="super::EncodingOptionsPreset", tag="5")]
2421 Preset(i32),
2422 #[prost(message, tag="6")]
2423 Advanced(super::EncodingOptions),
2424 }
2425}
2426#[allow(clippy::derive_partial_eq_without_eq)]
2431#[derive(Clone, PartialEq, ::prost::Message)]
2432pub struct TemplateSource {
2433 #[prost(string, tag="1")]
2434 pub layout: ::prost::alloc::string::String,
2435 #[prost(bool, tag="2")]
2436 pub audio_only: bool,
2437 #[prost(bool, tag="3")]
2438 pub video_only: bool,
2439 #[prost(string, tag="4")]
2440 pub custom_base_url: ::prost::alloc::string::String,
2441}
2442#[allow(clippy::derive_partial_eq_without_eq)]
2444#[derive(Clone, PartialEq, ::prost::Message)]
2445pub struct WebSource {
2446 #[prost(string, tag="1")]
2447 pub url: ::prost::alloc::string::String,
2448 #[prost(bool, tag="2")]
2449 pub audio_only: bool,
2450 #[prost(bool, tag="3")]
2451 pub video_only: bool,
2452 #[prost(bool, tag="4")]
2453 pub await_start_signal: bool,
2454}
2455#[allow(clippy::derive_partial_eq_without_eq)]
2458#[derive(Clone, PartialEq, ::prost::Message)]
2459pub struct MediaSource {
2460 #[prost(message, optional, tag="3")]
2462 pub audio: ::core::option::Option<AudioConfig>,
2463 #[prost(oneof="media_source::Video", tags="1, 2")]
2464 pub video: ::core::option::Option<media_source::Video>,
2465}
2466pub mod media_source {
2468 #[allow(clippy::derive_partial_eq_without_eq)]
2469#[derive(Clone, PartialEq, ::prost::Oneof)]
2470 pub enum Video {
2471 #[prost(string, tag="1")]
2472 VideoTrackId(::prost::alloc::string::String),
2473 #[prost(message, tag="2")]
2474 ParticipantVideo(super::ParticipantVideo),
2475 }
2476}
2477#[allow(clippy::derive_partial_eq_without_eq)]
2480#[derive(Clone, PartialEq, ::prost::Message)]
2481pub struct ParticipantVideo {
2482 #[prost(string, tag="1")]
2483 pub identity: ::prost::alloc::string::String,
2484 #[prost(bool, tag="2")]
2485 pub prefer_screen_share: bool,
2486}
2487#[allow(clippy::derive_partial_eq_without_eq)]
2492#[derive(Clone, PartialEq, ::prost::Message)]
2493pub struct AudioConfig {
2494 #[prost(bool, tag="1")]
2496 pub capture_all: bool,
2497 #[prost(message, repeated, tag="2")]
2498 pub routes: ::prost::alloc::vec::Vec<AudioRoute>,
2499}
2500#[allow(clippy::derive_partial_eq_without_eq)]
2501#[derive(Clone, PartialEq, ::prost::Message)]
2502pub struct AudioRoute {
2503 #[prost(enumeration="AudioChannel", tag="4")]
2504 pub channel: i32,
2505 #[prost(oneof="audio_route::Match", tags="1, 2, 3")]
2506 pub r#match: ::core::option::Option<audio_route::Match>,
2507}
2508pub mod audio_route {
2510 #[allow(clippy::derive_partial_eq_without_eq)]
2511#[derive(Clone, PartialEq, ::prost::Oneof)]
2512 pub enum Match {
2513 #[prost(string, tag="1")]
2514 TrackId(::prost::alloc::string::String),
2515 #[prost(string, tag="2")]
2516 ParticipantIdentity(::prost::alloc::string::String),
2517 #[prost(enumeration="super::participant_info::Kind", tag="3")]
2518 ParticipantKind(i32),
2519 }
2520}
2521#[allow(clippy::derive_partial_eq_without_eq)]
2524#[derive(Clone, PartialEq, ::prost::Message)]
2525pub struct DataConfig {
2526 #[prost(bool, tag="1")]
2527 pub capture_all: bool,
2528 #[prost(message, repeated, tag="2")]
2529 pub selectors: ::prost::alloc::vec::Vec<DataSelector>,
2530}
2531#[allow(clippy::derive_partial_eq_without_eq)]
2532#[derive(Clone, PartialEq, ::prost::Message)]
2533pub struct DataSelector {
2534 #[prost(oneof="data_selector::Match", tags="1, 2")]
2535 pub r#match: ::core::option::Option<data_selector::Match>,
2536}
2537pub mod data_selector {
2539 #[allow(clippy::derive_partial_eq_without_eq)]
2540#[derive(Clone, PartialEq, ::prost::Oneof)]
2541 pub enum Match {
2542 #[prost(string, tag="1")]
2543 TrackId(::prost::alloc::string::String),
2544 #[prost(string, tag="2")]
2545 ParticipantIdentity(::prost::alloc::string::String),
2546 }
2547}
2548#[allow(clippy::derive_partial_eq_without_eq)]
2549#[derive(Clone, PartialEq, ::prost::Message)]
2550pub struct EncodingOptions {
2551 #[prost(int32, tag="1")]
2553 pub width: i32,
2554 #[prost(int32, tag="2")]
2556 pub height: i32,
2557 #[prost(int32, tag="3")]
2559 pub depth: i32,
2560 #[prost(int32, tag="4")]
2562 pub framerate: i32,
2563 #[prost(enumeration="AudioCodec", tag="5")]
2565 pub audio_codec: i32,
2566 #[prost(int32, tag="6")]
2568 pub audio_bitrate: i32,
2569 #[prost(int32, tag="7")]
2571 pub audio_frequency: i32,
2572 #[prost(enumeration="VideoCodec", tag="8")]
2574 pub video_codec: i32,
2575 #[prost(int32, tag="9")]
2577 pub video_bitrate: i32,
2578 #[prost(double, tag="10")]
2580 pub key_frame_interval: f64,
2581 #[deprecated]
2585 #[prost(int32, tag="11")]
2586 pub audio_quality: i32,
2587 #[deprecated]
2589 #[prost(int32, tag="12")]
2590 pub video_quality: i32,
2591}
2592#[allow(clippy::derive_partial_eq_without_eq)]
2595#[derive(Clone, PartialEq, ::prost::Message)]
2596pub struct Output {
2597 #[prost(message, optional, tag="6")]
2599 pub storage: ::core::option::Option<StorageConfig>,
2600 #[prost(oneof="output::Config", tags="1, 2, 3, 4")]
2601 pub config: ::core::option::Option<output::Config>,
2602}
2603pub mod output {
2605 #[allow(clippy::derive_partial_eq_without_eq)]
2606#[derive(Clone, PartialEq, ::prost::Oneof)]
2607 pub enum Config {
2608 #[prost(message, tag="1")]
2609 File(super::FileOutput),
2610 #[prost(message, tag="2")]
2611 Stream(super::StreamOutput),
2612 #[prost(message, tag="3")]
2613 Segments(super::SegmentedFileOutput),
2614 #[prost(message, tag="4")]
2616 Images(super::ImageOutput),
2617 }
2618}
2619#[allow(clippy::derive_partial_eq_without_eq)]
2622#[derive(Clone, PartialEq, ::prost::Message)]
2623pub struct FileOutput {
2624 #[prost(enumeration="EncodedFileType", tag="1")]
2625 pub file_type: i32,
2626 #[prost(string, tag="2")]
2627 pub filepath: ::prost::alloc::string::String,
2628 #[prost(bool, tag="3")]
2629 pub disable_manifest: bool,
2630}
2631#[allow(clippy::derive_partial_eq_without_eq)]
2632#[derive(Clone, PartialEq, ::prost::Message)]
2633pub struct StreamOutput {
2634 #[prost(enumeration="StreamProtocol", tag="1")]
2636 pub protocol: i32,
2637 #[prost(string, repeated, tag="2")]
2639 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2640}
2641#[allow(clippy::derive_partial_eq_without_eq)]
2643#[derive(Clone, PartialEq, ::prost::Message)]
2644pub struct SegmentedFileOutput {
2645 #[prost(enumeration="SegmentedFileProtocol", tag="1")]
2647 pub protocol: i32,
2648 #[prost(string, tag="2")]
2650 pub filename_prefix: ::prost::alloc::string::String,
2651 #[prost(string, tag="3")]
2653 pub playlist_name: ::prost::alloc::string::String,
2654 #[prost(string, tag="11")]
2656 pub live_playlist_name: ::prost::alloc::string::String,
2657 #[prost(uint32, tag="4")]
2659 pub segment_duration: u32,
2660 #[prost(enumeration="SegmentedFileSuffix", tag="10")]
2662 pub filename_suffix: i32,
2663 #[prost(bool, tag="8")]
2665 pub disable_manifest: bool,
2666 #[prost(oneof="segmented_file_output::Output", tags="5, 6, 7, 9")]
2668 pub output: ::core::option::Option<segmented_file_output::Output>,
2669}
2670pub mod segmented_file_output {
2672 #[allow(clippy::derive_partial_eq_without_eq)]
2674#[derive(Clone, PartialEq, ::prost::Oneof)]
2675 pub enum Output {
2676 #[prost(message, tag="5")]
2677 S3(super::S3Upload),
2678 #[prost(message, tag="6")]
2679 Gcp(super::GcpUpload),
2680 #[prost(message, tag="7")]
2681 Azure(super::AzureBlobUpload),
2682 #[prost(message, tag="9")]
2683 AliOss(super::AliOssUpload),
2684 }
2685}
2686#[allow(clippy::derive_partial_eq_without_eq)]
2688#[derive(Clone, PartialEq, ::prost::Message)]
2689pub struct ImageOutput {
2690 #[prost(uint32, tag="1")]
2692 pub capture_interval: u32,
2693 #[prost(int32, tag="2")]
2695 pub width: i32,
2696 #[prost(int32, tag="3")]
2698 pub height: i32,
2699 #[prost(string, tag="4")]
2701 pub filename_prefix: ::prost::alloc::string::String,
2702 #[prost(enumeration="ImageFileSuffix", tag="5")]
2704 pub filename_suffix: i32,
2705 #[prost(enumeration="ImageCodec", tag="6")]
2707 pub image_codec: i32,
2708 #[prost(bool, tag="7")]
2710 pub disable_manifest: bool,
2711 #[prost(oneof="image_output::Output", tags="8, 9, 10, 11")]
2713 pub output: ::core::option::Option<image_output::Output>,
2714}
2715pub mod image_output {
2717 #[allow(clippy::derive_partial_eq_without_eq)]
2719#[derive(Clone, PartialEq, ::prost::Oneof)]
2720 pub enum Output {
2721 #[prost(message, tag="8")]
2722 S3(super::S3Upload),
2723 #[prost(message, tag="9")]
2724 Gcp(super::GcpUpload),
2725 #[prost(message, tag="10")]
2726 Azure(super::AzureBlobUpload),
2727 #[prost(message, tag="11")]
2728 AliOss(super::AliOssUpload),
2729 }
2730}
2731#[allow(clippy::derive_partial_eq_without_eq)]
2734#[derive(Clone, PartialEq, ::prost::Message)]
2735pub struct StorageConfig {
2736 #[prost(oneof="storage_config::Provider", tags="1, 2, 3, 4")]
2737 pub provider: ::core::option::Option<storage_config::Provider>,
2738}
2739pub mod storage_config {
2741 #[allow(clippy::derive_partial_eq_without_eq)]
2742#[derive(Clone, PartialEq, ::prost::Oneof)]
2743 pub enum Provider {
2744 #[prost(message, tag="1")]
2745 S3(super::S3Upload),
2746 #[prost(message, tag="2")]
2747 Gcp(super::GcpUpload),
2748 #[prost(message, tag="3")]
2749 Azure(super::AzureBlobUpload),
2750 #[prost(message, tag="4")]
2751 AliOss(super::AliOssUpload),
2752 }
2753}
2754#[allow(clippy::derive_partial_eq_without_eq)]
2755#[derive(Clone, PartialEq, ::prost::Message)]
2756pub struct S3Upload {
2757 #[prost(string, tag="1")]
2758 pub access_key: ::prost::alloc::string::String,
2759 #[prost(string, tag="2")]
2760 pub secret: ::prost::alloc::string::String,
2761 #[prost(string, tag="11")]
2762 pub session_token: ::prost::alloc::string::String,
2763 #[prost(string, tag="12")]
2765 pub assume_role_arn: ::prost::alloc::string::String,
2766 #[prost(string, tag="13")]
2768 pub assume_role_external_id: ::prost::alloc::string::String,
2769 #[prost(string, tag="3")]
2770 pub region: ::prost::alloc::string::String,
2771 #[prost(string, tag="4")]
2772 pub endpoint: ::prost::alloc::string::String,
2773 #[prost(string, tag="5")]
2774 pub bucket: ::prost::alloc::string::String,
2775 #[prost(bool, tag="6")]
2776 pub force_path_style: bool,
2777 #[prost(map="string, string", tag="7")]
2778 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2779 #[prost(string, tag="8")]
2780 pub tagging: ::prost::alloc::string::String,
2781 #[prost(string, tag="9")]
2783 pub content_disposition: ::prost::alloc::string::String,
2784 #[prost(message, optional, tag="10")]
2785 pub proxy: ::core::option::Option<ProxyConfig>,
2786}
2787#[allow(clippy::derive_partial_eq_without_eq)]
2788#[derive(Clone, PartialEq, ::prost::Message)]
2789pub struct GcpUpload {
2790 #[prost(string, tag="1")]
2792 pub credentials: ::prost::alloc::string::String,
2793 #[prost(string, tag="2")]
2794 pub bucket: ::prost::alloc::string::String,
2795 #[prost(message, optional, tag="3")]
2796 pub proxy: ::core::option::Option<ProxyConfig>,
2797}
2798#[allow(clippy::derive_partial_eq_without_eq)]
2799#[derive(Clone, PartialEq, ::prost::Message)]
2800pub struct AzureBlobUpload {
2801 #[prost(string, tag="1")]
2802 pub account_name: ::prost::alloc::string::String,
2803 #[prost(string, tag="2")]
2804 pub account_key: ::prost::alloc::string::String,
2805 #[prost(string, tag="3")]
2806 pub container_name: ::prost::alloc::string::String,
2807}
2808#[allow(clippy::derive_partial_eq_without_eq)]
2809#[derive(Clone, PartialEq, ::prost::Message)]
2810pub struct AliOssUpload {
2811 #[prost(string, tag="1")]
2812 pub access_key: ::prost::alloc::string::String,
2813 #[prost(string, tag="2")]
2814 pub secret: ::prost::alloc::string::String,
2815 #[prost(string, tag="3")]
2816 pub region: ::prost::alloc::string::String,
2817 #[prost(string, tag="4")]
2818 pub endpoint: ::prost::alloc::string::String,
2819 #[prost(string, tag="5")]
2820 pub bucket: ::prost::alloc::string::String,
2821}
2822#[allow(clippy::derive_partial_eq_without_eq)]
2823#[derive(Clone, PartialEq, ::prost::Message)]
2824pub struct ProxyConfig {
2825 #[prost(string, tag="1")]
2826 pub url: ::prost::alloc::string::String,
2827 #[prost(string, tag="2")]
2828 pub username: ::prost::alloc::string::String,
2829 #[prost(string, tag="3")]
2830 pub password: ::prost::alloc::string::String,
2831}
2832#[allow(clippy::derive_partial_eq_without_eq)]
2835#[derive(Clone, PartialEq, ::prost::Message)]
2836pub struct ListEgressRequest {
2837 #[prost(string, tag="1")]
2839 pub room_name: ::prost::alloc::string::String,
2840 #[prost(string, tag="2")]
2842 pub egress_id: ::prost::alloc::string::String,
2843 #[prost(bool, tag="3")]
2845 pub active: bool,
2846 #[prost(message, optional, tag="4")]
2848 pub page_token: ::core::option::Option<TokenPagination>,
2849}
2850#[allow(clippy::derive_partial_eq_without_eq)]
2851#[derive(Clone, PartialEq, ::prost::Message)]
2852pub struct ListEgressResponse {
2853 #[prost(message, repeated, tag="1")]
2854 pub items: ::prost::alloc::vec::Vec<EgressInfo>,
2855 #[prost(message, optional, tag="2")]
2857 pub next_page_token: ::core::option::Option<TokenPagination>,
2858}
2859#[allow(clippy::derive_partial_eq_without_eq)]
2860#[derive(Clone, PartialEq, ::prost::Message)]
2861pub struct UpdateEgressRequest {
2862 #[prost(string, tag="1")]
2863 pub egress_id: ::prost::alloc::string::String,
2864 #[prost(string, tag="2")]
2865 pub url: ::prost::alloc::string::String,
2866 #[prost(string, tag="3")]
2867 pub layout: ::prost::alloc::string::String,
2868 #[prost(string, repeated, tag="4")]
2869 pub add_stream_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2870 #[prost(string, repeated, tag="5")]
2871 pub remove_stream_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2872}
2873#[allow(clippy::derive_partial_eq_without_eq)]
2874#[derive(Clone, PartialEq, ::prost::Message)]
2875pub struct StopEgressRequest {
2876 #[prost(string, tag="1")]
2877 pub egress_id: ::prost::alloc::string::String,
2878}
2879#[allow(clippy::derive_partial_eq_without_eq)]
2882#[derive(Clone, PartialEq, ::prost::Message)]
2883pub struct EgressInfo {
2884 #[prost(string, tag="1")]
2885 pub egress_id: ::prost::alloc::string::String,
2886 #[prost(string, tag="2")]
2887 pub room_id: ::prost::alloc::string::String,
2888 #[prost(string, tag="13")]
2889 pub room_name: ::prost::alloc::string::String,
2890 #[prost(enumeration="EgressSourceType", tag="26")]
2891 pub source_type: i32,
2892 #[prost(enumeration="EgressStatus", tag="3")]
2893 pub status: i32,
2894 #[prost(int64, tag="10")]
2895 pub started_at: i64,
2896 #[prost(int64, tag="11")]
2897 pub ended_at: i64,
2898 #[prost(int64, tag="18")]
2899 pub updated_at: i64,
2900 #[prost(message, repeated, tag="15")]
2901 pub stream_results: ::prost::alloc::vec::Vec<StreamInfo>,
2902 #[prost(message, repeated, tag="16")]
2903 pub file_results: ::prost::alloc::vec::Vec<FileInfo>,
2904 #[prost(message, repeated, tag="17")]
2905 pub segment_results: ::prost::alloc::vec::Vec<SegmentsInfo>,
2906 #[prost(message, repeated, tag="20")]
2907 pub image_results: ::prost::alloc::vec::Vec<ImagesInfo>,
2908 #[prost(string, tag="9")]
2909 pub error: ::prost::alloc::string::String,
2910 #[prost(int32, tag="22")]
2911 pub error_code: i32,
2912 #[prost(string, tag="21")]
2913 pub details: ::prost::alloc::string::String,
2914 #[prost(string, tag="23")]
2915 pub manifest_location: ::prost::alloc::string::String,
2916 #[prost(bool, tag="25")]
2917 pub backup_storage_used: bool,
2918 #[prost(int32, tag="27")]
2919 pub retry_count: i32,
2920 #[prost(oneof="egress_info::Request", tags="29, 30, 4, 14, 19, 5, 6")]
2921 pub request: ::core::option::Option<egress_info::Request>,
2922 #[prost(oneof="egress_info::Result", tags="7, 8, 12")]
2926 pub result: ::core::option::Option<egress_info::Result>,
2927}
2928pub mod egress_info {
2930 #[allow(clippy::derive_partial_eq_without_eq)]
2931#[derive(Clone, PartialEq, ::prost::Oneof)]
2932 pub enum Request {
2933 #[prost(message, tag="29")]
2934 Egress(super::StartEgressRequest),
2935 #[prost(message, tag="30")]
2936 Replay(super::ExportReplayRequest),
2937 #[prost(message, tag="4")]
2939 RoomComposite(super::RoomCompositeEgressRequest),
2940 #[prost(message, tag="14")]
2941 Web(super::WebEgressRequest),
2942 #[prost(message, tag="19")]
2943 Participant(super::ParticipantEgressRequest),
2944 #[prost(message, tag="5")]
2945 TrackComposite(super::TrackCompositeEgressRequest),
2946 #[prost(message, tag="6")]
2947 Track(super::TrackEgressRequest),
2948 }
2949 #[allow(clippy::derive_partial_eq_without_eq)]
2953#[derive(Clone, PartialEq, ::prost::Oneof)]
2954 pub enum Result {
2955 #[prost(message, tag="7")]
2956 Stream(super::StreamInfoList),
2957 #[prost(message, tag="8")]
2958 File(super::FileInfo),
2959 #[prost(message, tag="12")]
2960 Segments(super::SegmentsInfo),
2961 }
2962}
2963#[allow(clippy::derive_partial_eq_without_eq)]
2964#[derive(Clone, PartialEq, ::prost::Message)]
2965pub struct StreamInfo {
2966 #[prost(string, tag="1")]
2967 pub url: ::prost::alloc::string::String,
2968 #[prost(int64, tag="2")]
2969 pub started_at: i64,
2970 #[prost(int64, tag="3")]
2971 pub ended_at: i64,
2972 #[prost(int64, tag="4")]
2973 pub duration: i64,
2974 #[prost(enumeration="stream_info::Status", tag="5")]
2975 pub status: i32,
2976 #[prost(string, tag="6")]
2977 pub error: ::prost::alloc::string::String,
2978 #[prost(int64, tag="7")]
2979 pub last_retry_at: i64,
2980 #[prost(uint32, tag="8")]
2981 pub retries: u32,
2982}
2983pub mod stream_info {
2985 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2986 #[repr(i32)]
2987 pub enum Status {
2988 Active = 0,
2989 Finished = 1,
2990 Failed = 2,
2991 }
2992 impl Status {
2993 pub fn as_str_name(&self) -> &'static str {
2998 match self {
2999 Status::Active => "ACTIVE",
3000 Status::Finished => "FINISHED",
3001 Status::Failed => "FAILED",
3002 }
3003 }
3004 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3006 match value {
3007 "ACTIVE" => Some(Self::Active),
3008 "FINISHED" => Some(Self::Finished),
3009 "FAILED" => Some(Self::Failed),
3010 _ => None,
3011 }
3012 }
3013 }
3014}
3015#[allow(clippy::derive_partial_eq_without_eq)]
3016#[derive(Clone, PartialEq, ::prost::Message)]
3017pub struct FileInfo {
3018 #[prost(string, tag="1")]
3019 pub filename: ::prost::alloc::string::String,
3020 #[prost(int64, tag="2")]
3021 pub started_at: i64,
3022 #[prost(int64, tag="3")]
3023 pub ended_at: i64,
3024 #[prost(int64, tag="6")]
3025 pub duration: i64,
3026 #[prost(int64, tag="4")]
3027 pub size: i64,
3028 #[prost(string, tag="5")]
3029 pub location: ::prost::alloc::string::String,
3030}
3031#[allow(clippy::derive_partial_eq_without_eq)]
3032#[derive(Clone, PartialEq, ::prost::Message)]
3033pub struct SegmentsInfo {
3034 #[prost(string, tag="1")]
3035 pub playlist_name: ::prost::alloc::string::String,
3036 #[prost(string, tag="8")]
3037 pub live_playlist_name: ::prost::alloc::string::String,
3038 #[prost(int64, tag="2")]
3039 pub duration: i64,
3040 #[prost(int64, tag="3")]
3041 pub size: i64,
3042 #[prost(string, tag="4")]
3043 pub playlist_location: ::prost::alloc::string::String,
3044 #[prost(string, tag="9")]
3045 pub live_playlist_location: ::prost::alloc::string::String,
3046 #[prost(int64, tag="5")]
3047 pub segment_count: i64,
3048 #[prost(int64, tag="6")]
3049 pub started_at: i64,
3050 #[prost(int64, tag="7")]
3051 pub ended_at: i64,
3052}
3053#[allow(clippy::derive_partial_eq_without_eq)]
3054#[derive(Clone, PartialEq, ::prost::Message)]
3055pub struct ImagesInfo {
3056 #[prost(string, tag="4")]
3057 pub filename_prefix: ::prost::alloc::string::String,
3058 #[prost(int64, tag="1")]
3059 pub image_count: i64,
3060 #[prost(int64, tag="2")]
3061 pub started_at: i64,
3062 #[prost(int64, tag="3")]
3063 pub ended_at: i64,
3064}
3065#[allow(clippy::derive_partial_eq_without_eq)]
3068#[derive(Clone, PartialEq, ::prost::Message)]
3069pub struct AutoParticipantEgress {
3070 #[prost(message, repeated, tag="3")]
3071 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3072 #[prost(message, repeated, tag="4")]
3073 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3074 #[prost(oneof="auto_participant_egress::Options", tags="1, 2")]
3075 pub options: ::core::option::Option<auto_participant_egress::Options>,
3076}
3077pub mod auto_participant_egress {
3079 #[allow(clippy::derive_partial_eq_without_eq)]
3080#[derive(Clone, PartialEq, ::prost::Oneof)]
3081 pub enum Options {
3082 #[prost(enumeration="super::EncodingOptionsPreset", tag="1")]
3084 Preset(i32),
3085 #[prost(message, tag="2")]
3087 Advanced(super::EncodingOptions),
3088 }
3089}
3090#[allow(clippy::derive_partial_eq_without_eq)]
3091#[derive(Clone, PartialEq, ::prost::Message)]
3092pub struct AutoTrackEgress {
3093 #[prost(string, tag="1")]
3095 pub filepath: ::prost::alloc::string::String,
3096 #[prost(bool, tag="5")]
3098 pub disable_manifest: bool,
3099 #[prost(oneof="auto_track_egress::Output", tags="2, 3, 4, 6")]
3100 pub output: ::core::option::Option<auto_track_egress::Output>,
3101}
3102pub mod auto_track_egress {
3104 #[allow(clippy::derive_partial_eq_without_eq)]
3105#[derive(Clone, PartialEq, ::prost::Oneof)]
3106 pub enum Output {
3107 #[prost(message, tag="2")]
3108 S3(super::S3Upload),
3109 #[prost(message, tag="3")]
3110 Gcp(super::GcpUpload),
3111 #[prost(message, tag="4")]
3112 Azure(super::AzureBlobUpload),
3113 #[prost(message, tag="6")]
3114 AliOss(super::AliOssUpload),
3115 }
3116}
3117#[allow(clippy::derive_partial_eq_without_eq)]
3120#[derive(Clone, PartialEq, ::prost::Message)]
3121pub struct ExportReplayRequest {
3122 #[prost(string, tag="1")]
3123 pub replay_id: ::prost::alloc::string::String,
3124 #[prost(int64, tag="2")]
3125 pub start_offset_ms: i64,
3126 #[prost(int64, tag="3")]
3127 pub end_offset_ms: i64,
3128 #[prost(message, repeated, tag="9")]
3129 pub outputs: ::prost::alloc::vec::Vec<Output>,
3130 #[prost(message, optional, tag="10")]
3131 pub storage: ::core::option::Option<StorageConfig>,
3132 #[prost(message, repeated, tag="11")]
3133 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3134 #[prost(oneof="export_replay_request::Source", tags="4, 5, 6")]
3135 pub source: ::core::option::Option<export_replay_request::Source>,
3136 #[prost(oneof="export_replay_request::Encoding", tags="7, 8")]
3137 pub encoding: ::core::option::Option<export_replay_request::Encoding>,
3138}
3139pub mod export_replay_request {
3141 #[allow(clippy::derive_partial_eq_without_eq)]
3142#[derive(Clone, PartialEq, ::prost::Oneof)]
3143 pub enum Source {
3144 #[prost(message, tag="4")]
3145 Template(super::TemplateSource),
3146 #[prost(message, tag="5")]
3147 Web(super::WebSource),
3148 #[prost(message, tag="6")]
3149 Media(super::MediaSource),
3150 }
3151 #[allow(clippy::derive_partial_eq_without_eq)]
3152#[derive(Clone, PartialEq, ::prost::Oneof)]
3153 pub enum Encoding {
3154 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
3155 Preset(i32),
3156 #[prost(message, tag="8")]
3157 Advanced(super::EncodingOptions),
3158 }
3159}
3160#[allow(clippy::derive_partial_eq_without_eq)]
3163#[derive(Clone, PartialEq, ::prost::Message)]
3164pub struct RoomCompositeEgressRequest {
3165 #[prost(string, tag="1")]
3166 pub room_name: ::prost::alloc::string::String,
3167 #[prost(string, tag="2")]
3168 pub layout: ::prost::alloc::string::String,
3169 #[prost(bool, tag="3")]
3170 pub audio_only: bool,
3171 #[prost(enumeration="AudioMixing", tag="15")]
3172 pub audio_mixing: i32,
3173 #[prost(bool, tag="4")]
3174 pub video_only: bool,
3175 #[prost(string, tag="5")]
3176 pub custom_base_url: ::prost::alloc::string::String,
3177 #[prost(message, repeated, tag="11")]
3178 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3179 #[prost(message, repeated, tag="12")]
3180 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3181 #[prost(message, repeated, tag="13")]
3182 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3183 #[prost(message, repeated, tag="14")]
3184 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3185 #[prost(message, repeated, tag="16")]
3186 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3187 #[prost(oneof="room_composite_egress_request::Output", tags="6, 7, 10")]
3188 pub output: ::core::option::Option<room_composite_egress_request::Output>,
3189 #[prost(oneof="room_composite_egress_request::Options", tags="8, 9")]
3190 pub options: ::core::option::Option<room_composite_egress_request::Options>,
3191}
3192pub mod room_composite_egress_request {
3194 #[allow(clippy::derive_partial_eq_without_eq)]
3195#[derive(Clone, PartialEq, ::prost::Oneof)]
3196 pub enum Output {
3197 #[prost(message, tag="6")]
3198 File(super::EncodedFileOutput),
3199 #[prost(message, tag="7")]
3200 Stream(super::StreamOutput),
3201 #[prost(message, tag="10")]
3202 Segments(super::SegmentedFileOutput),
3203 }
3204 #[allow(clippy::derive_partial_eq_without_eq)]
3205#[derive(Clone, PartialEq, ::prost::Oneof)]
3206 pub enum Options {
3207 #[prost(enumeration="super::EncodingOptionsPreset", tag="8")]
3208 Preset(i32),
3209 #[prost(message, tag="9")]
3210 Advanced(super::EncodingOptions),
3211 }
3212}
3213#[allow(clippy::derive_partial_eq_without_eq)]
3214#[derive(Clone, PartialEq, ::prost::Message)]
3215pub struct WebEgressRequest {
3216 #[prost(string, tag="1")]
3217 pub url: ::prost::alloc::string::String,
3218 #[prost(bool, tag="2")]
3219 pub audio_only: bool,
3220 #[prost(bool, tag="3")]
3221 pub video_only: bool,
3222 #[prost(bool, tag="12")]
3223 pub await_start_signal: bool,
3224 #[prost(message, repeated, tag="9")]
3225 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3226 #[prost(message, repeated, tag="10")]
3227 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3228 #[prost(message, repeated, tag="11")]
3229 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3230 #[prost(message, repeated, tag="13")]
3231 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3232 #[prost(message, repeated, tag="14")]
3233 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3234 #[prost(oneof="web_egress_request::Output", tags="4, 5, 6")]
3235 pub output: ::core::option::Option<web_egress_request::Output>,
3236 #[prost(oneof="web_egress_request::Options", tags="7, 8")]
3237 pub options: ::core::option::Option<web_egress_request::Options>,
3238}
3239pub mod web_egress_request {
3241 #[allow(clippy::derive_partial_eq_without_eq)]
3242#[derive(Clone, PartialEq, ::prost::Oneof)]
3243 pub enum Output {
3244 #[prost(message, tag="4")]
3245 File(super::EncodedFileOutput),
3246 #[prost(message, tag="5")]
3247 Stream(super::StreamOutput),
3248 #[prost(message, tag="6")]
3249 Segments(super::SegmentedFileOutput),
3250 }
3251 #[allow(clippy::derive_partial_eq_without_eq)]
3252#[derive(Clone, PartialEq, ::prost::Oneof)]
3253 pub enum Options {
3254 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
3255 Preset(i32),
3256 #[prost(message, tag="8")]
3257 Advanced(super::EncodingOptions),
3258 }
3259}
3260#[allow(clippy::derive_partial_eq_without_eq)]
3261#[derive(Clone, PartialEq, ::prost::Message)]
3262pub struct ParticipantEgressRequest {
3263 #[prost(string, tag="1")]
3264 pub room_name: ::prost::alloc::string::String,
3265 #[prost(string, tag="2")]
3266 pub identity: ::prost::alloc::string::String,
3267 #[prost(bool, tag="3")]
3268 pub screen_share: bool,
3269 #[prost(message, repeated, tag="6")]
3270 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3271 #[prost(message, repeated, tag="7")]
3272 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3273 #[prost(message, repeated, tag="8")]
3274 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3275 #[prost(message, repeated, tag="9")]
3276 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3277 #[prost(message, repeated, tag="10")]
3278 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3279 #[prost(oneof="participant_egress_request::Options", tags="4, 5")]
3280 pub options: ::core::option::Option<participant_egress_request::Options>,
3281}
3282pub mod participant_egress_request {
3284 #[allow(clippy::derive_partial_eq_without_eq)]
3285#[derive(Clone, PartialEq, ::prost::Oneof)]
3286 pub enum Options {
3287 #[prost(enumeration="super::EncodingOptionsPreset", tag="4")]
3288 Preset(i32),
3289 #[prost(message, tag="5")]
3290 Advanced(super::EncodingOptions),
3291 }
3292}
3293#[allow(clippy::derive_partial_eq_without_eq)]
3294#[derive(Clone, PartialEq, ::prost::Message)]
3295pub struct TrackCompositeEgressRequest {
3296 #[prost(string, tag="1")]
3297 pub room_name: ::prost::alloc::string::String,
3298 #[prost(string, tag="2")]
3299 pub audio_track_id: ::prost::alloc::string::String,
3300 #[prost(string, tag="3")]
3301 pub video_track_id: ::prost::alloc::string::String,
3302 #[prost(message, repeated, tag="11")]
3303 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3304 #[prost(message, repeated, tag="12")]
3305 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3306 #[prost(message, repeated, tag="13")]
3307 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3308 #[prost(message, repeated, tag="14")]
3309 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3310 #[prost(message, repeated, tag="15")]
3311 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3312 #[prost(oneof="track_composite_egress_request::Output", tags="4, 5, 8")]
3313 pub output: ::core::option::Option<track_composite_egress_request::Output>,
3314 #[prost(oneof="track_composite_egress_request::Options", tags="6, 7")]
3315 pub options: ::core::option::Option<track_composite_egress_request::Options>,
3316}
3317pub mod track_composite_egress_request {
3319 #[allow(clippy::derive_partial_eq_without_eq)]
3320#[derive(Clone, PartialEq, ::prost::Oneof)]
3321 pub enum Output {
3322 #[prost(message, tag="4")]
3323 File(super::EncodedFileOutput),
3324 #[prost(message, tag="5")]
3325 Stream(super::StreamOutput),
3326 #[prost(message, tag="8")]
3327 Segments(super::SegmentedFileOutput),
3328 }
3329 #[allow(clippy::derive_partial_eq_without_eq)]
3330#[derive(Clone, PartialEq, ::prost::Oneof)]
3331 pub enum Options {
3332 #[prost(enumeration="super::EncodingOptionsPreset", tag="6")]
3333 Preset(i32),
3334 #[prost(message, tag="7")]
3335 Advanced(super::EncodingOptions),
3336 }
3337}
3338#[allow(clippy::derive_partial_eq_without_eq)]
3339#[derive(Clone, PartialEq, ::prost::Message)]
3340pub struct TrackEgressRequest {
3341 #[prost(string, tag="1")]
3342 pub room_name: ::prost::alloc::string::String,
3343 #[prost(string, tag="2")]
3344 pub track_id: ::prost::alloc::string::String,
3345 #[prost(message, repeated, tag="5")]
3346 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3347 #[prost(oneof="track_egress_request::Output", tags="3, 4")]
3348 pub output: ::core::option::Option<track_egress_request::Output>,
3349}
3350pub mod track_egress_request {
3352 #[allow(clippy::derive_partial_eq_without_eq)]
3353#[derive(Clone, PartialEq, ::prost::Oneof)]
3354 pub enum Output {
3355 #[prost(message, tag="3")]
3356 File(super::DirectFileOutput),
3357 #[prost(string, tag="4")]
3358 WebsocketUrl(::prost::alloc::string::String),
3359 }
3360}
3361#[allow(clippy::derive_partial_eq_without_eq)]
3362#[derive(Clone, PartialEq, ::prost::Message)]
3363pub struct DirectFileOutput {
3364 #[prost(string, tag="1")]
3365 pub filepath: ::prost::alloc::string::String,
3366 #[prost(bool, tag="5")]
3367 pub disable_manifest: bool,
3368 #[prost(oneof="direct_file_output::Output", tags="2, 3, 4, 6")]
3369 pub output: ::core::option::Option<direct_file_output::Output>,
3370}
3371pub mod direct_file_output {
3373 #[allow(clippy::derive_partial_eq_without_eq)]
3374#[derive(Clone, PartialEq, ::prost::Oneof)]
3375 pub enum Output {
3376 #[prost(message, tag="2")]
3377 S3(super::S3Upload),
3378 #[prost(message, tag="3")]
3379 Gcp(super::GcpUpload),
3380 #[prost(message, tag="4")]
3381 Azure(super::AzureBlobUpload),
3382 #[prost(message, tag="6")]
3383 AliOss(super::AliOssUpload),
3384 }
3385}
3386#[allow(clippy::derive_partial_eq_without_eq)]
3387#[derive(Clone, PartialEq, ::prost::Message)]
3388pub struct EncodedFileOutput {
3389 #[prost(enumeration="EncodedFileType", tag="1")]
3390 pub file_type: i32,
3391 #[prost(string, tag="2")]
3392 pub filepath: ::prost::alloc::string::String,
3393 #[prost(bool, tag="6")]
3394 pub disable_manifest: bool,
3395 #[prost(oneof="encoded_file_output::Output", tags="3, 4, 5, 7")]
3396 pub output: ::core::option::Option<encoded_file_output::Output>,
3397}
3398pub mod encoded_file_output {
3400 #[allow(clippy::derive_partial_eq_without_eq)]
3401#[derive(Clone, PartialEq, ::prost::Oneof)]
3402 pub enum Output {
3403 #[prost(message, tag="3")]
3404 S3(super::S3Upload),
3405 #[prost(message, tag="4")]
3406 Gcp(super::GcpUpload),
3407 #[prost(message, tag="5")]
3408 Azure(super::AzureBlobUpload),
3409 #[prost(message, tag="7")]
3410 AliOss(super::AliOssUpload),
3411 }
3412}
3413#[allow(clippy::derive_partial_eq_without_eq)]
3414#[derive(Clone, PartialEq, ::prost::Message)]
3415pub struct UpdateLayoutRequest {
3416 #[prost(string, tag="1")]
3417 pub egress_id: ::prost::alloc::string::String,
3418 #[prost(string, tag="2")]
3419 pub layout: ::prost::alloc::string::String,
3420}
3421#[allow(clippy::derive_partial_eq_without_eq)]
3422#[derive(Clone, PartialEq, ::prost::Message)]
3423pub struct UpdateStreamRequest {
3424 #[prost(string, tag="1")]
3425 pub egress_id: ::prost::alloc::string::String,
3426 #[prost(string, repeated, tag="2")]
3427 pub add_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3428 #[prost(string, repeated, tag="3")]
3429 pub remove_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3430}
3431#[allow(clippy::derive_partial_eq_without_eq)]
3432#[derive(Clone, PartialEq, ::prost::Message)]
3433pub struct StreamInfoList {
3434 #[prost(message, repeated, tag="1")]
3435 pub info: ::prost::alloc::vec::Vec<StreamInfo>,
3436}
3437#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3438#[repr(i32)]
3439pub enum AudioChannel {
3440 Both = 0,
3441 Left = 1,
3442 Right = 2,
3443}
3444impl AudioChannel {
3445 pub fn as_str_name(&self) -> &'static str {
3450 match self {
3451 AudioChannel::Both => "AUDIO_CHANNEL_BOTH",
3452 AudioChannel::Left => "AUDIO_CHANNEL_LEFT",
3453 AudioChannel::Right => "AUDIO_CHANNEL_RIGHT",
3454 }
3455 }
3456 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3458 match value {
3459 "AUDIO_CHANNEL_BOTH" => Some(Self::Both),
3460 "AUDIO_CHANNEL_LEFT" => Some(Self::Left),
3461 "AUDIO_CHANNEL_RIGHT" => Some(Self::Right),
3462 _ => None,
3463 }
3464 }
3465}
3466#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3469#[repr(i32)]
3470pub enum EncodingOptionsPreset {
3471 H264720p30 = 0,
3473 H264720p60 = 1,
3475 H2641080p30 = 2,
3477 H2641080p60 = 3,
3479 PortraitH264720p30 = 4,
3481 PortraitH264720p60 = 5,
3483 PortraitH2641080p30 = 6,
3485 PortraitH2641080p60 = 7,
3487}
3488impl EncodingOptionsPreset {
3489 pub fn as_str_name(&self) -> &'static str {
3494 match self {
3495 EncodingOptionsPreset::H264720p30 => "H264_720P_30",
3496 EncodingOptionsPreset::H264720p60 => "H264_720P_60",
3497 EncodingOptionsPreset::H2641080p30 => "H264_1080P_30",
3498 EncodingOptionsPreset::H2641080p60 => "H264_1080P_60",
3499 EncodingOptionsPreset::PortraitH264720p30 => "PORTRAIT_H264_720P_30",
3500 EncodingOptionsPreset::PortraitH264720p60 => "PORTRAIT_H264_720P_60",
3501 EncodingOptionsPreset::PortraitH2641080p30 => "PORTRAIT_H264_1080P_30",
3502 EncodingOptionsPreset::PortraitH2641080p60 => "PORTRAIT_H264_1080P_60",
3503 }
3504 }
3505 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3507 match value {
3508 "H264_720P_30" => Some(Self::H264720p30),
3509 "H264_720P_60" => Some(Self::H264720p60),
3510 "H264_1080P_30" => Some(Self::H2641080p30),
3511 "H264_1080P_60" => Some(Self::H2641080p60),
3512 "PORTRAIT_H264_720P_30" => Some(Self::PortraitH264720p30),
3513 "PORTRAIT_H264_720P_60" => Some(Self::PortraitH264720p60),
3514 "PORTRAIT_H264_1080P_30" => Some(Self::PortraitH2641080p30),
3515 "PORTRAIT_H264_1080P_60" => Some(Self::PortraitH2641080p60),
3516 _ => None,
3517 }
3518 }
3519}
3520#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3521#[repr(i32)]
3522pub enum EncodedFileType {
3523 DefaultFiletype = 0,
3525 Mp4 = 1,
3526 Ogg = 2,
3527 Mp3 = 3,
3528}
3529impl EncodedFileType {
3530 pub fn as_str_name(&self) -> &'static str {
3535 match self {
3536 EncodedFileType::DefaultFiletype => "DEFAULT_FILETYPE",
3537 EncodedFileType::Mp4 => "MP4",
3538 EncodedFileType::Ogg => "OGG",
3539 EncodedFileType::Mp3 => "MP3",
3540 }
3541 }
3542 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3544 match value {
3545 "DEFAULT_FILETYPE" => Some(Self::DefaultFiletype),
3546 "MP4" => Some(Self::Mp4),
3547 "OGG" => Some(Self::Ogg),
3548 "MP3" => Some(Self::Mp3),
3549 _ => None,
3550 }
3551 }
3552}
3553#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3554#[repr(i32)]
3555pub enum StreamProtocol {
3556 DefaultProtocol = 0,
3558 Rtmp = 1,
3559 Srt = 2,
3560 Websocket = 3,
3561}
3562impl StreamProtocol {
3563 pub fn as_str_name(&self) -> &'static str {
3568 match self {
3569 StreamProtocol::DefaultProtocol => "DEFAULT_PROTOCOL",
3570 StreamProtocol::Rtmp => "RTMP",
3571 StreamProtocol::Srt => "SRT",
3572 StreamProtocol::Websocket => "WEBSOCKET",
3573 }
3574 }
3575 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3577 match value {
3578 "DEFAULT_PROTOCOL" => Some(Self::DefaultProtocol),
3579 "RTMP" => Some(Self::Rtmp),
3580 "SRT" => Some(Self::Srt),
3581 "WEBSOCKET" => Some(Self::Websocket),
3582 _ => None,
3583 }
3584 }
3585}
3586#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3587#[repr(i32)]
3588pub enum SegmentedFileProtocol {
3589 DefaultSegmentedFileProtocol = 0,
3590 HlsProtocol = 1,
3591}
3592impl SegmentedFileProtocol {
3593 pub fn as_str_name(&self) -> &'static str {
3598 match self {
3599 SegmentedFileProtocol::DefaultSegmentedFileProtocol => "DEFAULT_SEGMENTED_FILE_PROTOCOL",
3600 SegmentedFileProtocol::HlsProtocol => "HLS_PROTOCOL",
3601 }
3602 }
3603 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3605 match value {
3606 "DEFAULT_SEGMENTED_FILE_PROTOCOL" => Some(Self::DefaultSegmentedFileProtocol),
3607 "HLS_PROTOCOL" => Some(Self::HlsProtocol),
3608 _ => None,
3609 }
3610 }
3611}
3612#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3613#[repr(i32)]
3614pub enum SegmentedFileSuffix {
3615 Index = 0,
3616 Timestamp = 1,
3617}
3618impl SegmentedFileSuffix {
3619 pub fn as_str_name(&self) -> &'static str {
3624 match self {
3625 SegmentedFileSuffix::Index => "INDEX",
3626 SegmentedFileSuffix::Timestamp => "TIMESTAMP",
3627 }
3628 }
3629 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3631 match value {
3632 "INDEX" => Some(Self::Index),
3633 "TIMESTAMP" => Some(Self::Timestamp),
3634 _ => None,
3635 }
3636 }
3637}
3638#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3639#[repr(i32)]
3640pub enum ImageFileSuffix {
3641 ImageSuffixIndex = 0,
3642 ImageSuffixTimestamp = 1,
3643 ImageSuffixNoneOverwrite = 2,
3645}
3646impl ImageFileSuffix {
3647 pub fn as_str_name(&self) -> &'static str {
3652 match self {
3653 ImageFileSuffix::ImageSuffixIndex => "IMAGE_SUFFIX_INDEX",
3654 ImageFileSuffix::ImageSuffixTimestamp => "IMAGE_SUFFIX_TIMESTAMP",
3655 ImageFileSuffix::ImageSuffixNoneOverwrite => "IMAGE_SUFFIX_NONE_OVERWRITE",
3656 }
3657 }
3658 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3660 match value {
3661 "IMAGE_SUFFIX_INDEX" => Some(Self::ImageSuffixIndex),
3662 "IMAGE_SUFFIX_TIMESTAMP" => Some(Self::ImageSuffixTimestamp),
3663 "IMAGE_SUFFIX_NONE_OVERWRITE" => Some(Self::ImageSuffixNoneOverwrite),
3664 _ => None,
3665 }
3666 }
3667}
3668#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3669#[repr(i32)]
3670pub enum EgressSourceType {
3671 Web = 0,
3672 Sdk = 1,
3673}
3674impl EgressSourceType {
3675 pub fn as_str_name(&self) -> &'static str {
3680 match self {
3681 EgressSourceType::Web => "EGRESS_SOURCE_TYPE_WEB",
3682 EgressSourceType::Sdk => "EGRESS_SOURCE_TYPE_SDK",
3683 }
3684 }
3685 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3687 match value {
3688 "EGRESS_SOURCE_TYPE_WEB" => Some(Self::Web),
3689 "EGRESS_SOURCE_TYPE_SDK" => Some(Self::Sdk),
3690 _ => None,
3691 }
3692 }
3693}
3694#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3695#[repr(i32)]
3696pub enum EgressStatus {
3697 EgressStarting = 0,
3698 EgressActive = 1,
3699 EgressEnding = 2,
3700 EgressComplete = 3,
3701 EgressFailed = 4,
3702 EgressAborted = 5,
3703 EgressLimitReached = 6,
3704}
3705impl EgressStatus {
3706 pub fn as_str_name(&self) -> &'static str {
3711 match self {
3712 EgressStatus::EgressStarting => "EGRESS_STARTING",
3713 EgressStatus::EgressActive => "EGRESS_ACTIVE",
3714 EgressStatus::EgressEnding => "EGRESS_ENDING",
3715 EgressStatus::EgressComplete => "EGRESS_COMPLETE",
3716 EgressStatus::EgressFailed => "EGRESS_FAILED",
3717 EgressStatus::EgressAborted => "EGRESS_ABORTED",
3718 EgressStatus::EgressLimitReached => "EGRESS_LIMIT_REACHED",
3719 }
3720 }
3721 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3723 match value {
3724 "EGRESS_STARTING" => Some(Self::EgressStarting),
3725 "EGRESS_ACTIVE" => Some(Self::EgressActive),
3726 "EGRESS_ENDING" => Some(Self::EgressEnding),
3727 "EGRESS_COMPLETE" => Some(Self::EgressComplete),
3728 "EGRESS_FAILED" => Some(Self::EgressFailed),
3729 "EGRESS_ABORTED" => Some(Self::EgressAborted),
3730 "EGRESS_LIMIT_REACHED" => Some(Self::EgressLimitReached),
3731 _ => None,
3732 }
3733 }
3734}
3735#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3736#[repr(i32)]
3737pub enum AudioMixing {
3738 DefaultMixing = 0,
3739 DualChannelAgent = 1,
3740 DualChannelAlternate = 2,
3741}
3742impl AudioMixing {
3743 pub fn as_str_name(&self) -> &'static str {
3748 match self {
3749 AudioMixing::DefaultMixing => "DEFAULT_MIXING",
3750 AudioMixing::DualChannelAgent => "DUAL_CHANNEL_AGENT",
3751 AudioMixing::DualChannelAlternate => "DUAL_CHANNEL_ALTERNATE",
3752 }
3753 }
3754 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3756 match value {
3757 "DEFAULT_MIXING" => Some(Self::DefaultMixing),
3758 "DUAL_CHANNEL_AGENT" => Some(Self::DualChannelAgent),
3759 "DUAL_CHANNEL_ALTERNATE" => Some(Self::DualChannelAlternate),
3760 _ => None,
3761 }
3762 }
3763}
3764#[allow(clippy::derive_partial_eq_without_eq)]
3765#[derive(Clone, PartialEq, ::prost::Message)]
3766pub struct SignalRequest {
3767 #[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, 22, 23")]
3768 pub message: ::core::option::Option<signal_request::Message>,
3769}
3770pub mod signal_request {
3772 #[allow(clippy::derive_partial_eq_without_eq)]
3773#[derive(Clone, PartialEq, ::prost::Oneof)]
3774 pub enum Message {
3775 #[prost(message, tag="1")]
3777 Offer(super::SessionDescription),
3778 #[prost(message, tag="2")]
3780 Answer(super::SessionDescription),
3781 #[prost(message, tag="3")]
3782 Trickle(super::TrickleRequest),
3783 #[prost(message, tag="4")]
3784 AddTrack(super::AddTrackRequest),
3785 #[prost(message, tag="5")]
3787 Mute(super::MuteTrackRequest),
3788 #[prost(message, tag="6")]
3790 Subscription(super::UpdateSubscription),
3791 #[prost(message, tag="7")]
3793 TrackSetting(super::UpdateTrackSettings),
3794 #[prost(message, tag="8")]
3796 Leave(super::LeaveRequest),
3797 #[prost(message, tag="10")]
3799 UpdateLayers(super::UpdateVideoLayers),
3800 #[prost(message, tag="11")]
3802 SubscriptionPermission(super::SubscriptionPermission),
3803 #[prost(message, tag="12")]
3805 SyncState(super::SyncState),
3806 #[prost(message, tag="13")]
3808 Simulate(super::SimulateScenario),
3809 #[prost(int64, tag="14")]
3813 Ping(i64),
3814 #[prost(message, tag="15")]
3817 UpdateMetadata(super::UpdateParticipantMetadata),
3818 #[prost(message, tag="16")]
3819 PingReq(super::Ping),
3820 #[prost(message, tag="17")]
3822 UpdateAudioTrack(super::UpdateLocalAudioTrack),
3823 #[prost(message, tag="18")]
3825 UpdateVideoTrack(super::UpdateLocalVideoTrack),
3826 #[prost(message, tag="19")]
3828 PublishDataTrackRequest(super::PublishDataTrackRequest),
3829 #[prost(message, tag="20")]
3831 UnpublishDataTrackRequest(super::UnpublishDataTrackRequest),
3832 #[prost(message, tag="21")]
3834 UpdateDataSubscription(super::UpdateDataSubscription),
3835 #[prost(message, tag="22")]
3837 StoreDataBlobRequest(super::StoreDataBlobRequest),
3838 #[prost(message, tag="23")]
3840 GetDataBlobRequest(super::GetDataBlobRequest),
3841 }
3842}
3843#[allow(clippy::derive_partial_eq_without_eq)]
3844#[derive(Clone, PartialEq, ::prost::Message)]
3845pub struct SignalResponse {
3846 #[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, 30, 31")]
3847 pub message: ::core::option::Option<signal_response::Message>,
3848}
3849pub mod signal_response {
3851 #[allow(clippy::derive_partial_eq_without_eq)]
3852#[derive(Clone, PartialEq, ::prost::Oneof)]
3853 pub enum Message {
3854 #[prost(message, tag="1")]
3856 Join(super::JoinResponse),
3857 #[prost(message, tag="2")]
3859 Answer(super::SessionDescription),
3860 #[prost(message, tag="3")]
3862 Offer(super::SessionDescription),
3863 #[prost(message, tag="4")]
3865 Trickle(super::TrickleRequest),
3866 #[prost(message, tag="5")]
3868 Update(super::ParticipantUpdate),
3869 #[prost(message, tag="6")]
3871 TrackPublished(super::TrackPublishedResponse),
3872 #[prost(message, tag="8")]
3874 Leave(super::LeaveRequest),
3875 #[prost(message, tag="9")]
3877 Mute(super::MuteTrackRequest),
3878 #[prost(message, tag="10")]
3880 SpeakersChanged(super::SpeakersChanged),
3881 #[prost(message, tag="11")]
3883 RoomUpdate(super::RoomUpdate),
3884 #[prost(message, tag="12")]
3886 ConnectionQuality(super::ConnectionQualityUpdate),
3887 #[prost(message, tag="13")]
3890 StreamStateUpdate(super::StreamStateUpdate),
3891 #[prost(message, tag="14")]
3893 SubscribedQualityUpdate(super::SubscribedQualityUpdate),
3894 #[prost(message, tag="15")]
3896 SubscriptionPermissionUpdate(super::SubscriptionPermissionUpdate),
3897 #[prost(string, tag="16")]
3899 RefreshToken(::prost::alloc::string::String),
3900 #[prost(message, tag="17")]
3902 TrackUnpublished(super::TrackUnpublishedResponse),
3903 #[prost(int64, tag="18")]
3907 Pong(i64),
3908 #[prost(message, tag="19")]
3910 Reconnect(super::ReconnectResponse),
3911 #[prost(message, tag="20")]
3913 PongResp(super::Pong),
3914 #[prost(message, tag="21")]
3916 SubscriptionResponse(super::SubscriptionResponse),
3917 #[prost(message, tag="22")]
3919 RequestResponse(super::RequestResponse),
3920 #[prost(message, tag="23")]
3922 TrackSubscribed(super::TrackSubscribed),
3923 #[prost(message, tag="24")]
3925 RoomMoved(super::RoomMovedResponse),
3926 #[prost(message, tag="25")]
3928 MediaSectionsRequirement(super::MediaSectionsRequirement),
3929 #[prost(message, tag="26")]
3931 SubscribedAudioCodecUpdate(super::SubscribedAudioCodecUpdate),
3932 #[prost(message, tag="27")]
3934 PublishDataTrackResponse(super::PublishDataTrackResponse),
3935 #[prost(message, tag="28")]
3937 UnpublishDataTrackResponse(super::UnpublishDataTrackResponse),
3938 #[prost(message, tag="29")]
3940 DataTrackSubscriberHandles(super::DataTrackSubscriberHandles),
3941 #[prost(message, tag="30")]
3943 StoreDataBlobResponse(super::StoreDataBlobResponse),
3944 #[prost(message, tag="31")]
3946 GetDataBlobResponse(super::GetDataBlobResponse),
3947 }
3948}
3949#[allow(clippy::derive_partial_eq_without_eq)]
3950#[derive(Clone, PartialEq, ::prost::Message)]
3951pub struct SimulcastCodec {
3952 #[prost(string, tag="1")]
3953 pub codec: ::prost::alloc::string::String,
3954 #[prost(string, tag="2")]
3955 pub cid: ::prost::alloc::string::String,
3956 #[prost(message, repeated, tag="4")]
3957 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3958 #[prost(enumeration="video_layer::Mode", tag="5")]
3959 pub video_layer_mode: i32,
3960}
3961#[allow(clippy::derive_partial_eq_without_eq)]
3962#[derive(Clone, PartialEq, ::prost::Message)]
3963pub struct AddTrackRequest {
3964 #[prost(string, tag="1")]
3966 pub cid: ::prost::alloc::string::String,
3967 #[prost(string, tag="2")]
3968 pub name: ::prost::alloc::string::String,
3969 #[prost(enumeration="TrackType", tag="3")]
3970 pub r#type: i32,
3971 #[prost(uint32, tag="4")]
3972 pub width: u32,
3973 #[prost(uint32, tag="5")]
3974 pub height: u32,
3975 #[prost(bool, tag="6")]
3977 pub muted: bool,
3978 #[deprecated]
3982 #[prost(bool, tag="7")]
3983 pub disable_dtx: bool,
3984 #[prost(enumeration="TrackSource", tag="8")]
3985 pub source: i32,
3986 #[prost(message, repeated, tag="9")]
3987 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3988 #[prost(message, repeated, tag="10")]
3989 pub simulcast_codecs: ::prost::alloc::vec::Vec<SimulcastCodec>,
3990 #[prost(string, tag="11")]
3992 pub sid: ::prost::alloc::string::String,
3993 #[deprecated]
3995 #[prost(bool, tag="12")]
3996 pub stereo: bool,
3997 #[prost(bool, tag="13")]
3999 pub disable_red: bool,
4000 #[prost(enumeration="encryption::Type", tag="14")]
4001 pub encryption: i32,
4002 #[prost(string, tag="15")]
4005 pub stream: ::prost::alloc::string::String,
4006 #[prost(enumeration="BackupCodecPolicy", tag="16")]
4007 pub backup_codec_policy: i32,
4008 #[prost(enumeration="AudioTrackFeature", repeated, tag="17")]
4009 pub audio_features: ::prost::alloc::vec::Vec<i32>,
4010 #[prost(enumeration="PacketTrailerFeature", repeated, tag="18")]
4011 pub packet_trailer_features: ::prost::alloc::vec::Vec<i32>,
4012}
4013#[allow(clippy::derive_partial_eq_without_eq)]
4014#[derive(Clone, PartialEq, ::prost::Message)]
4015pub struct PublishDataTrackRequest {
4016 #[prost(uint32, tag="1")]
4019 pub pub_handle: u32,
4020 #[prost(string, tag="2")]
4023 pub name: ::prost::alloc::string::String,
4024 #[prost(enumeration="encryption::Type", tag="3")]
4026 pub encryption: i32,
4027 #[prost(message, optional, tag="4")]
4029 pub frame_encoding: ::core::option::Option<DataTrackFrameEncoding>,
4030 #[prost(message, optional, tag="5")]
4033 pub schema: ::core::option::Option<DataTrackSchemaId>,
4034}
4035#[allow(clippy::derive_partial_eq_without_eq)]
4036#[derive(Clone, PartialEq, ::prost::Message)]
4037pub struct PublishDataTrackResponse {
4038 #[prost(message, optional, tag="1")]
4040 pub info: ::core::option::Option<DataTrackInfo>,
4041}
4042#[allow(clippy::derive_partial_eq_without_eq)]
4043#[derive(Clone, PartialEq, ::prost::Message)]
4044pub struct UnpublishDataTrackRequest {
4045 #[prost(uint32, tag="1")]
4047 pub pub_handle: u32,
4048}
4049#[allow(clippy::derive_partial_eq_without_eq)]
4050#[derive(Clone, PartialEq, ::prost::Message)]
4051pub struct UnpublishDataTrackResponse {
4052 #[prost(message, optional, tag="1")]
4054 pub info: ::core::option::Option<DataTrackInfo>,
4055}
4056#[allow(clippy::derive_partial_eq_without_eq)]
4057#[derive(Clone, PartialEq, ::prost::Message)]
4058pub struct DataTrackSubscriberHandles {
4059 #[prost(map="uint32, message", tag="1")]
4061 pub sub_handles: ::std::collections::HashMap<u32, data_track_subscriber_handles::PublishedDataTrack>,
4062}
4063pub mod data_track_subscriber_handles {
4065 #[allow(clippy::derive_partial_eq_without_eq)]
4066#[derive(Clone, PartialEq, ::prost::Message)]
4067 pub struct PublishedDataTrack {
4068 #[prost(string, tag="1")]
4069 pub publisher_identity: ::prost::alloc::string::String,
4070 #[prost(string, tag="2")]
4071 pub publisher_sid: ::prost::alloc::string::String,
4072 #[prost(string, tag="3")]
4073 pub track_sid: ::prost::alloc::string::String,
4074 }
4075}
4076#[allow(clippy::derive_partial_eq_without_eq)]
4077#[derive(Clone, PartialEq, ::prost::Message)]
4078pub struct TrickleRequest {
4079 #[prost(string, tag="1")]
4080 pub candidate_init: ::prost::alloc::string::String,
4081 #[prost(enumeration="SignalTarget", tag="2")]
4082 pub target: i32,
4083 #[prost(bool, tag="3")]
4084 pub r#final: bool,
4085}
4086#[allow(clippy::derive_partial_eq_without_eq)]
4087#[derive(Clone, PartialEq, ::prost::Message)]
4088pub struct MuteTrackRequest {
4089 #[prost(string, tag="1")]
4090 pub sid: ::prost::alloc::string::String,
4091 #[prost(bool, tag="2")]
4092 pub muted: bool,
4093}
4094#[allow(clippy::derive_partial_eq_without_eq)]
4095#[derive(Clone, PartialEq, ::prost::Message)]
4096pub struct JoinResponse {
4097 #[prost(message, optional, tag="1")]
4098 pub room: ::core::option::Option<Room>,
4099 #[prost(message, optional, tag="2")]
4100 pub participant: ::core::option::Option<ParticipantInfo>,
4101 #[prost(message, repeated, tag="3")]
4102 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4103 #[prost(string, tag="4")]
4105 pub server_version: ::prost::alloc::string::String,
4106 #[prost(message, repeated, tag="5")]
4107 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
4108 #[prost(bool, tag="6")]
4110 pub subscriber_primary: bool,
4111 #[prost(string, tag="7")]
4114 pub alternative_url: ::prost::alloc::string::String,
4115 #[prost(message, optional, tag="8")]
4116 pub client_configuration: ::core::option::Option<ClientConfiguration>,
4117 #[prost(string, tag="9")]
4119 pub server_region: ::prost::alloc::string::String,
4120 #[prost(int32, tag="10")]
4121 pub ping_timeout: i32,
4122 #[prost(int32, tag="11")]
4123 pub ping_interval: i32,
4124 #[prost(message, optional, tag="12")]
4125 pub server_info: ::core::option::Option<ServerInfo>,
4126 #[prost(bytes="vec", tag="13")]
4128 pub sif_trailer: ::prost::alloc::vec::Vec<u8>,
4129 #[prost(message, repeated, tag="14")]
4130 pub enabled_publish_codecs: ::prost::alloc::vec::Vec<Codec>,
4131 #[prost(bool, tag="15")]
4133 pub fast_publish: bool,
4134}
4135#[allow(clippy::derive_partial_eq_without_eq)]
4136#[derive(Clone, PartialEq, ::prost::Message)]
4137pub struct ReconnectResponse {
4138 #[prost(message, repeated, tag="1")]
4139 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
4140 #[prost(message, optional, tag="2")]
4141 pub client_configuration: ::core::option::Option<ClientConfiguration>,
4142 #[prost(message, optional, tag="3")]
4143 pub server_info: ::core::option::Option<ServerInfo>,
4144 #[prost(uint32, tag="4")]
4146 pub last_message_seq: u32,
4147}
4148#[allow(clippy::derive_partial_eq_without_eq)]
4149#[derive(Clone, PartialEq, ::prost::Message)]
4150pub struct TrackPublishedResponse {
4151 #[prost(string, tag="1")]
4152 pub cid: ::prost::alloc::string::String,
4153 #[prost(message, optional, tag="2")]
4154 pub track: ::core::option::Option<TrackInfo>,
4155}
4156#[allow(clippy::derive_partial_eq_without_eq)]
4157#[derive(Clone, PartialEq, ::prost::Message)]
4158pub struct TrackUnpublishedResponse {
4159 #[prost(string, tag="1")]
4160 pub track_sid: ::prost::alloc::string::String,
4161}
4162#[allow(clippy::derive_partial_eq_without_eq)]
4163#[derive(Clone, PartialEq, ::prost::Message)]
4164pub struct SessionDescription {
4165 #[prost(string, tag="1")]
4167 pub r#type: ::prost::alloc::string::String,
4168 #[prost(string, tag="2")]
4169 pub sdp: ::prost::alloc::string::String,
4170 #[prost(uint32, tag="3")]
4171 pub id: u32,
4172 #[prost(map="string, string", tag="4")]
4173 pub mid_to_track_id: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4174}
4175#[allow(clippy::derive_partial_eq_without_eq)]
4176#[derive(Clone, PartialEq, ::prost::Message)]
4177pub struct ParticipantUpdate {
4178 #[prost(message, repeated, tag="1")]
4179 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4180}
4181#[allow(clippy::derive_partial_eq_without_eq)]
4182#[derive(Clone, PartialEq, ::prost::Message)]
4183pub struct UpdateSubscription {
4184 #[prost(string, repeated, tag="1")]
4185 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4186 #[prost(bool, tag="2")]
4187 pub subscribe: bool,
4188 #[prost(message, repeated, tag="3")]
4189 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
4190}
4191#[allow(clippy::derive_partial_eq_without_eq)]
4192#[derive(Clone, PartialEq, ::prost::Message)]
4193pub struct UpdateDataSubscription {
4194 #[prost(message, repeated, tag="1")]
4195 pub updates: ::prost::alloc::vec::Vec<update_data_subscription::Update>,
4196}
4197pub mod update_data_subscription {
4199 #[allow(clippy::derive_partial_eq_without_eq)]
4200#[derive(Clone, PartialEq, ::prost::Message)]
4201 pub struct Update {
4202 #[prost(string, tag="1")]
4203 pub track_sid: ::prost::alloc::string::String,
4204 #[prost(bool, tag="2")]
4205 pub subscribe: bool,
4206 #[prost(message, optional, tag="3")]
4209 pub options: ::core::option::Option<super::DataTrackSubscriptionOptions>,
4210 }
4211}
4212#[allow(clippy::derive_partial_eq_without_eq)]
4213#[derive(Clone, PartialEq, ::prost::Message)]
4214pub struct StoreDataBlobRequest {
4215 #[prost(uint32, tag="1")]
4216 pub request_id: u32,
4217 #[prost(message, optional, tag="2")]
4218 pub blob: ::core::option::Option<DataBlob>,
4219}
4220#[allow(clippy::derive_partial_eq_without_eq)]
4221#[derive(Clone, PartialEq, ::prost::Message)]
4222pub struct StoreDataBlobResponse {
4223 #[prost(uint32, tag="1")]
4224 pub request_id: u32,
4225 #[prost(message, optional, tag="2")]
4227 pub key: ::core::option::Option<DataBlobKey>,
4228}
4229#[allow(clippy::derive_partial_eq_without_eq)]
4230#[derive(Clone, PartialEq, ::prost::Message)]
4231pub struct GetDataBlobRequest {
4232 #[prost(uint32, tag="1")]
4233 pub request_id: u32,
4234 #[prost(string, tag="2")]
4236 pub participant_identity: ::prost::alloc::string::String,
4237 #[prost(message, optional, tag="3")]
4239 pub key: ::core::option::Option<DataBlobKey>,
4240}
4241#[allow(clippy::derive_partial_eq_without_eq)]
4242#[derive(Clone, PartialEq, ::prost::Message)]
4243pub struct GetDataBlobResponse {
4244 #[prost(uint32, tag="1")]
4245 pub request_id: u32,
4246 #[prost(message, optional, tag="2")]
4247 pub blob: ::core::option::Option<DataBlob>,
4248}
4249#[allow(clippy::derive_partial_eq_without_eq)]
4250#[derive(Clone, PartialEq, ::prost::Message)]
4251pub struct UpdateTrackSettings {
4252 #[prost(string, repeated, tag="1")]
4253 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4254 #[prost(bool, tag="3")]
4256 pub disabled: bool,
4257 #[prost(enumeration="VideoQuality", tag="4")]
4259 pub quality: i32,
4260 #[prost(uint32, tag="5")]
4262 pub width: u32,
4263 #[prost(uint32, tag="6")]
4265 pub height: u32,
4266 #[prost(uint32, tag="7")]
4267 pub fps: u32,
4268 #[prost(uint32, tag="8")]
4276 pub priority: u32,
4277}
4278#[allow(clippy::derive_partial_eq_without_eq)]
4279#[derive(Clone, PartialEq, ::prost::Message)]
4280pub struct UpdateLocalAudioTrack {
4281 #[prost(string, tag="1")]
4282 pub track_sid: ::prost::alloc::string::String,
4283 #[prost(enumeration="AudioTrackFeature", repeated, tag="2")]
4284 pub features: ::prost::alloc::vec::Vec<i32>,
4285}
4286#[allow(clippy::derive_partial_eq_without_eq)]
4287#[derive(Clone, PartialEq, ::prost::Message)]
4288pub struct UpdateLocalVideoTrack {
4289 #[prost(string, tag="1")]
4290 pub track_sid: ::prost::alloc::string::String,
4291 #[prost(uint32, tag="2")]
4292 pub width: u32,
4293 #[prost(uint32, tag="3")]
4294 pub height: u32,
4295}
4296#[allow(clippy::derive_partial_eq_without_eq)]
4297#[derive(Clone, PartialEq, ::prost::Message)]
4298pub struct LeaveRequest {
4299 #[prost(bool, tag="1")]
4303 pub can_reconnect: bool,
4304 #[prost(enumeration="DisconnectReason", tag="2")]
4305 pub reason: i32,
4306 #[prost(enumeration="leave_request::Action", tag="3")]
4307 pub action: i32,
4308 #[prost(message, optional, tag="4")]
4309 pub regions: ::core::option::Option<RegionSettings>,
4310}
4311pub mod leave_request {
4313 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4315 #[repr(i32)]
4316 pub enum Action {
4317 Disconnect = 0,
4319 Resume = 1,
4321 Reconnect = 2,
4323 }
4324 impl Action {
4325 pub fn as_str_name(&self) -> &'static str {
4330 match self {
4331 Action::Disconnect => "DISCONNECT",
4332 Action::Resume => "RESUME",
4333 Action::Reconnect => "RECONNECT",
4334 }
4335 }
4336 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4338 match value {
4339 "DISCONNECT" => Some(Self::Disconnect),
4340 "RESUME" => Some(Self::Resume),
4341 "RECONNECT" => Some(Self::Reconnect),
4342 _ => None,
4343 }
4344 }
4345 }
4346}
4347#[allow(clippy::derive_partial_eq_without_eq)]
4349#[derive(Clone, PartialEq, ::prost::Message)]
4350pub struct UpdateVideoLayers {
4351 #[prost(string, tag="1")]
4352 pub track_sid: ::prost::alloc::string::String,
4353 #[prost(message, repeated, tag="2")]
4354 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
4355}
4356#[allow(clippy::derive_partial_eq_without_eq)]
4357#[derive(Clone, PartialEq, ::prost::Message)]
4358pub struct UpdateParticipantMetadata {
4359 #[prost(string, tag="1")]
4360 pub metadata: ::prost::alloc::string::String,
4361 #[prost(string, tag="2")]
4362 pub name: ::prost::alloc::string::String,
4363 #[prost(map="string, string", tag="3")]
4366 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4367 #[prost(uint32, tag="4")]
4368 pub request_id: u32,
4369}
4370#[allow(clippy::derive_partial_eq_without_eq)]
4371#[derive(Clone, PartialEq, ::prost::Message)]
4372pub struct IceServer {
4373 #[prost(string, repeated, tag="1")]
4374 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4375 #[prost(string, tag="2")]
4376 pub username: ::prost::alloc::string::String,
4377 #[prost(string, tag="3")]
4378 pub credential: ::prost::alloc::string::String,
4379}
4380#[allow(clippy::derive_partial_eq_without_eq)]
4381#[derive(Clone, PartialEq, ::prost::Message)]
4382pub struct SpeakersChanged {
4383 #[prost(message, repeated, tag="1")]
4384 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
4385}
4386#[allow(clippy::derive_partial_eq_without_eq)]
4387#[derive(Clone, PartialEq, ::prost::Message)]
4388pub struct RoomUpdate {
4389 #[prost(message, optional, tag="1")]
4390 pub room: ::core::option::Option<Room>,
4391}
4392#[allow(clippy::derive_partial_eq_without_eq)]
4393#[derive(Clone, PartialEq, ::prost::Message)]
4394pub struct ConnectionQualityInfo {
4395 #[prost(string, tag="1")]
4396 pub participant_sid: ::prost::alloc::string::String,
4397 #[prost(enumeration="ConnectionQuality", tag="2")]
4398 pub quality: i32,
4399 #[prost(float, tag="3")]
4400 pub score: f32,
4401}
4402#[allow(clippy::derive_partial_eq_without_eq)]
4403#[derive(Clone, PartialEq, ::prost::Message)]
4404pub struct ConnectionQualityUpdate {
4405 #[prost(message, repeated, tag="1")]
4406 pub updates: ::prost::alloc::vec::Vec<ConnectionQualityInfo>,
4407}
4408#[allow(clippy::derive_partial_eq_without_eq)]
4409#[derive(Clone, PartialEq, ::prost::Message)]
4410pub struct StreamStateInfo {
4411 #[prost(string, tag="1")]
4412 pub participant_sid: ::prost::alloc::string::String,
4413 #[prost(string, tag="2")]
4414 pub track_sid: ::prost::alloc::string::String,
4415 #[prost(enumeration="StreamState", tag="3")]
4416 pub state: i32,
4417}
4418#[allow(clippy::derive_partial_eq_without_eq)]
4419#[derive(Clone, PartialEq, ::prost::Message)]
4420pub struct StreamStateUpdate {
4421 #[prost(message, repeated, tag="1")]
4422 pub stream_states: ::prost::alloc::vec::Vec<StreamStateInfo>,
4423}
4424#[allow(clippy::derive_partial_eq_without_eq)]
4425#[derive(Clone, PartialEq, ::prost::Message)]
4426pub struct SubscribedQuality {
4427 #[prost(enumeration="VideoQuality", tag="1")]
4428 pub quality: i32,
4429 #[prost(bool, tag="2")]
4430 pub enabled: bool,
4431}
4432#[allow(clippy::derive_partial_eq_without_eq)]
4433#[derive(Clone, PartialEq, ::prost::Message)]
4434pub struct SubscribedCodec {
4435 #[prost(string, tag="1")]
4436 pub codec: ::prost::alloc::string::String,
4437 #[prost(message, repeated, tag="2")]
4438 pub qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
4439}
4440#[allow(clippy::derive_partial_eq_without_eq)]
4441#[derive(Clone, PartialEq, ::prost::Message)]
4442pub struct SubscribedQualityUpdate {
4443 #[prost(string, tag="1")]
4444 pub track_sid: ::prost::alloc::string::String,
4445 #[deprecated]
4446 #[prost(message, repeated, tag="2")]
4447 pub subscribed_qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
4448 #[prost(message, repeated, tag="3")]
4449 pub subscribed_codecs: ::prost::alloc::vec::Vec<SubscribedCodec>,
4450}
4451#[allow(clippy::derive_partial_eq_without_eq)]
4452#[derive(Clone, PartialEq, ::prost::Message)]
4453pub struct SubscribedAudioCodecUpdate {
4454 #[prost(string, tag="1")]
4455 pub track_sid: ::prost::alloc::string::String,
4456 #[prost(message, repeated, tag="2")]
4457 pub subscribed_audio_codecs: ::prost::alloc::vec::Vec<SubscribedAudioCodec>,
4458}
4459#[allow(clippy::derive_partial_eq_without_eq)]
4460#[derive(Clone, PartialEq, ::prost::Message)]
4461pub struct TrackPermission {
4462 #[prost(string, tag="1")]
4464 pub participant_sid: ::prost::alloc::string::String,
4465 #[prost(bool, tag="2")]
4466 pub all_tracks: bool,
4467 #[prost(string, repeated, tag="3")]
4468 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4469 #[prost(string, tag="4")]
4470 pub participant_identity: ::prost::alloc::string::String,
4471}
4472#[allow(clippy::derive_partial_eq_without_eq)]
4473#[derive(Clone, PartialEq, ::prost::Message)]
4474pub struct SubscriptionPermission {
4475 #[prost(bool, tag="1")]
4476 pub all_participants: bool,
4477 #[prost(message, repeated, tag="2")]
4478 pub track_permissions: ::prost::alloc::vec::Vec<TrackPermission>,
4479}
4480#[allow(clippy::derive_partial_eq_without_eq)]
4481#[derive(Clone, PartialEq, ::prost::Message)]
4482pub struct SubscriptionPermissionUpdate {
4483 #[prost(string, tag="1")]
4484 pub participant_sid: ::prost::alloc::string::String,
4485 #[prost(string, tag="2")]
4486 pub track_sid: ::prost::alloc::string::String,
4487 #[prost(bool, tag="3")]
4488 pub allowed: bool,
4489}
4490#[allow(clippy::derive_partial_eq_without_eq)]
4491#[derive(Clone, PartialEq, ::prost::Message)]
4492pub struct RoomMovedResponse {
4493 #[prost(message, optional, tag="1")]
4495 pub room: ::core::option::Option<Room>,
4496 #[prost(string, tag="2")]
4498 pub token: ::prost::alloc::string::String,
4499 #[prost(message, optional, tag="3")]
4500 pub participant: ::core::option::Option<ParticipantInfo>,
4501 #[prost(message, repeated, tag="4")]
4502 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4503}
4504#[allow(clippy::derive_partial_eq_without_eq)]
4505#[derive(Clone, PartialEq, ::prost::Message)]
4506pub struct SyncState {
4507 #[prost(message, optional, tag="1")]
4511 pub answer: ::core::option::Option<SessionDescription>,
4512 #[prost(message, optional, tag="2")]
4513 pub subscription: ::core::option::Option<UpdateSubscription>,
4514 #[prost(message, repeated, tag="3")]
4515 pub publish_tracks: ::prost::alloc::vec::Vec<TrackPublishedResponse>,
4516 #[prost(message, repeated, tag="4")]
4517 pub data_channels: ::prost::alloc::vec::Vec<DataChannelInfo>,
4518 #[prost(message, optional, tag="5")]
4522 pub offer: ::core::option::Option<SessionDescription>,
4523 #[prost(string, repeated, tag="6")]
4524 pub track_sids_disabled: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4525 #[prost(message, repeated, tag="7")]
4526 pub datachannel_receive_states: ::prost::alloc::vec::Vec<DataChannelReceiveState>,
4527 #[prost(message, repeated, tag="8")]
4528 pub publish_data_tracks: ::prost::alloc::vec::Vec<PublishDataTrackResponse>,
4529}
4530#[allow(clippy::derive_partial_eq_without_eq)]
4531#[derive(Clone, PartialEq, ::prost::Message)]
4532pub struct DataChannelReceiveState {
4533 #[prost(string, tag="1")]
4534 pub publisher_sid: ::prost::alloc::string::String,
4535 #[prost(uint32, tag="2")]
4536 pub last_seq: u32,
4537}
4538#[allow(clippy::derive_partial_eq_without_eq)]
4539#[derive(Clone, PartialEq, ::prost::Message)]
4540pub struct DataChannelInfo {
4541 #[prost(string, tag="1")]
4542 pub label: ::prost::alloc::string::String,
4543 #[prost(uint32, tag="2")]
4544 pub id: u32,
4545 #[prost(enumeration="SignalTarget", tag="3")]
4546 pub target: i32,
4547}
4548#[allow(clippy::derive_partial_eq_without_eq)]
4549#[derive(Clone, PartialEq, ::prost::Message)]
4550pub struct SimulateScenario {
4551 #[prost(oneof="simulate_scenario::Scenario", tags="1, 2, 3, 4, 5, 6, 7, 8, 9")]
4552 pub scenario: ::core::option::Option<simulate_scenario::Scenario>,
4553}
4554pub mod simulate_scenario {
4556 #[allow(clippy::derive_partial_eq_without_eq)]
4557#[derive(Clone, PartialEq, ::prost::Oneof)]
4558 pub enum Scenario {
4559 #[prost(int32, tag="1")]
4561 SpeakerUpdate(i32),
4562 #[prost(bool, tag="2")]
4564 NodeFailure(bool),
4565 #[prost(bool, tag="3")]
4567 Migration(bool),
4568 #[prost(bool, tag="4")]
4570 ServerLeave(bool),
4571 #[prost(enumeration="super::CandidateProtocol", tag="5")]
4573 SwitchCandidateProtocol(i32),
4574 #[prost(int64, tag="6")]
4577 SubscriberBandwidth(i64),
4578 #[prost(bool, tag="7")]
4580 DisconnectSignalOnResume(bool),
4581 #[prost(bool, tag="8")]
4583 DisconnectSignalOnResumeNoMessages(bool),
4584 #[prost(bool, tag="9")]
4586 LeaveRequestFullReconnect(bool),
4587 }
4588}
4589#[allow(clippy::derive_partial_eq_without_eq)]
4590#[derive(Clone, PartialEq, ::prost::Message)]
4591pub struct Ping {
4592 #[prost(int64, tag="1")]
4593 pub timestamp: i64,
4594 #[prost(int64, tag="2")]
4596 pub rtt: i64,
4597}
4598#[allow(clippy::derive_partial_eq_without_eq)]
4599#[derive(Clone, PartialEq, ::prost::Message)]
4600pub struct Pong {
4601 #[prost(int64, tag="1")]
4603 pub last_ping_timestamp: i64,
4604 #[prost(int64, tag="2")]
4605 pub timestamp: i64,
4606}
4607#[allow(clippy::derive_partial_eq_without_eq)]
4608#[derive(Clone, PartialEq, ::prost::Message)]
4609pub struct RegionSettings {
4610 #[prost(message, repeated, tag="1")]
4611 pub regions: ::prost::alloc::vec::Vec<RegionInfo>,
4612}
4613#[allow(clippy::derive_partial_eq_without_eq)]
4614#[derive(Clone, PartialEq, ::prost::Message)]
4615pub struct RegionInfo {
4616 #[prost(string, tag="1")]
4617 pub region: ::prost::alloc::string::String,
4618 #[prost(string, tag="2")]
4619 pub url: ::prost::alloc::string::String,
4620 #[prost(int64, tag="3")]
4621 pub distance: i64,
4622}
4623#[allow(clippy::derive_partial_eq_without_eq)]
4624#[derive(Clone, PartialEq, ::prost::Message)]
4625pub struct SubscriptionResponse {
4626 #[prost(string, tag="1")]
4627 pub track_sid: ::prost::alloc::string::String,
4628 #[prost(enumeration="SubscriptionError", tag="2")]
4629 pub err: i32,
4630}
4631#[allow(clippy::derive_partial_eq_without_eq)]
4632#[derive(Clone, PartialEq, ::prost::Message)]
4633pub struct RequestResponse {
4634 #[prost(uint32, tag="1")]
4635 pub request_id: u32,
4636 #[prost(enumeration="request_response::Reason", tag="2")]
4637 pub reason: i32,
4638 #[prost(string, tag="3")]
4639 pub message: ::prost::alloc::string::String,
4640 #[prost(oneof="request_response::Request", tags="4, 5, 6, 7, 8, 9, 10, 11")]
4641 pub request: ::core::option::Option<request_response::Request>,
4642}
4643pub mod request_response {
4645 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4646 #[repr(i32)]
4647 pub enum Reason {
4648 Ok = 0,
4649 NotFound = 1,
4650 NotAllowed = 2,
4651 LimitExceeded = 3,
4652 Queued = 4,
4653 UnsupportedType = 5,
4654 UnclassifiedError = 6,
4655 InvalidHandle = 7,
4656 InvalidName = 8,
4657 DuplicateHandle = 9,
4658 DuplicateName = 10,
4659 InvalidRequest = 11,
4660 }
4661 impl Reason {
4662 pub fn as_str_name(&self) -> &'static str {
4667 match self {
4668 Reason::Ok => "OK",
4669 Reason::NotFound => "NOT_FOUND",
4670 Reason::NotAllowed => "NOT_ALLOWED",
4671 Reason::LimitExceeded => "LIMIT_EXCEEDED",
4672 Reason::Queued => "QUEUED",
4673 Reason::UnsupportedType => "UNSUPPORTED_TYPE",
4674 Reason::UnclassifiedError => "UNCLASSIFIED_ERROR",
4675 Reason::InvalidHandle => "INVALID_HANDLE",
4676 Reason::InvalidName => "INVALID_NAME",
4677 Reason::DuplicateHandle => "DUPLICATE_HANDLE",
4678 Reason::DuplicateName => "DUPLICATE_NAME",
4679 Reason::InvalidRequest => "INVALID_REQUEST",
4680 }
4681 }
4682 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4684 match value {
4685 "OK" => Some(Self::Ok),
4686 "NOT_FOUND" => Some(Self::NotFound),
4687 "NOT_ALLOWED" => Some(Self::NotAllowed),
4688 "LIMIT_EXCEEDED" => Some(Self::LimitExceeded),
4689 "QUEUED" => Some(Self::Queued),
4690 "UNSUPPORTED_TYPE" => Some(Self::UnsupportedType),
4691 "UNCLASSIFIED_ERROR" => Some(Self::UnclassifiedError),
4692 "INVALID_HANDLE" => Some(Self::InvalidHandle),
4693 "INVALID_NAME" => Some(Self::InvalidName),
4694 "DUPLICATE_HANDLE" => Some(Self::DuplicateHandle),
4695 "DUPLICATE_NAME" => Some(Self::DuplicateName),
4696 "INVALID_REQUEST" => Some(Self::InvalidRequest),
4697 _ => None,
4698 }
4699 }
4700 }
4701 #[allow(clippy::derive_partial_eq_without_eq)]
4702#[derive(Clone, PartialEq, ::prost::Oneof)]
4703 pub enum Request {
4704 #[prost(message, tag="4")]
4705 Trickle(super::TrickleRequest),
4706 #[prost(message, tag="5")]
4707 AddTrack(super::AddTrackRequest),
4708 #[prost(message, tag="6")]
4709 Mute(super::MuteTrackRequest),
4710 #[prost(message, tag="7")]
4711 UpdateMetadata(super::UpdateParticipantMetadata),
4712 #[prost(message, tag="8")]
4713 UpdateAudioTrack(super::UpdateLocalAudioTrack),
4714 #[prost(message, tag="9")]
4715 UpdateVideoTrack(super::UpdateLocalVideoTrack),
4716 #[prost(message, tag="10")]
4717 PublishDataTrack(super::PublishDataTrackRequest),
4718 #[prost(message, tag="11")]
4719 UnpublishDataTrack(super::UnpublishDataTrackRequest),
4720 }
4721}
4722#[allow(clippy::derive_partial_eq_without_eq)]
4723#[derive(Clone, PartialEq, ::prost::Message)]
4724pub struct TrackSubscribed {
4725 #[prost(string, tag="1")]
4726 pub track_sid: ::prost::alloc::string::String,
4727}
4728#[allow(clippy::derive_partial_eq_without_eq)]
4729#[derive(Clone, PartialEq, ::prost::Message)]
4730pub struct ConnectionSettings {
4731 #[prost(bool, tag="1")]
4732 pub auto_subscribe: bool,
4733 #[prost(bool, tag="2")]
4734 pub adaptive_stream: bool,
4735 #[prost(bool, optional, tag="3")]
4736 pub subscriber_allow_pause: ::core::option::Option<bool>,
4737 #[prost(bool, tag="4")]
4738 pub disable_ice_lite: bool,
4739 #[prost(bool, optional, tag="5")]
4740 pub auto_subscribe_data_track: ::core::option::Option<bool>,
4741}
4742#[allow(clippy::derive_partial_eq_without_eq)]
4743#[derive(Clone, PartialEq, ::prost::Message)]
4744pub struct JoinRequest {
4745 #[prost(message, optional, tag="1")]
4746 pub client_info: ::core::option::Option<ClientInfo>,
4747 #[prost(message, optional, tag="2")]
4748 pub connection_settings: ::core::option::Option<ConnectionSettings>,
4749 #[prost(string, tag="3")]
4751 pub metadata: ::prost::alloc::string::String,
4752 #[prost(map="string, string", tag="4")]
4756 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4757 #[prost(message, repeated, tag="5")]
4758 pub add_track_requests: ::prost::alloc::vec::Vec<AddTrackRequest>,
4759 #[prost(message, optional, tag="6")]
4760 pub publisher_offer: ::core::option::Option<SessionDescription>,
4761 #[prost(bool, tag="7")]
4762 pub reconnect: bool,
4763 #[prost(enumeration="ReconnectReason", tag="8")]
4764 pub reconnect_reason: i32,
4765 #[prost(string, tag="9")]
4766 pub participant_sid: ::prost::alloc::string::String,
4767 #[prost(message, optional, tag="10")]
4768 pub sync_state: ::core::option::Option<SyncState>,
4769}
4770#[allow(clippy::derive_partial_eq_without_eq)]
4771#[derive(Clone, PartialEq, ::prost::Message)]
4772pub struct WrappedJoinRequest {
4773 #[prost(enumeration="wrapped_join_request::Compression", tag="1")]
4774 pub compression: i32,
4775 #[prost(bytes="vec", tag="2")]
4777 pub join_request: ::prost::alloc::vec::Vec<u8>,
4778}
4779pub mod wrapped_join_request {
4781 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4782 #[repr(i32)]
4783 pub enum Compression {
4784 None = 0,
4785 Gzip = 1,
4786 }
4787 impl Compression {
4788 pub fn as_str_name(&self) -> &'static str {
4793 match self {
4794 Compression::None => "NONE",
4795 Compression::Gzip => "GZIP",
4796 }
4797 }
4798 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4800 match value {
4801 "NONE" => Some(Self::None),
4802 "GZIP" => Some(Self::Gzip),
4803 _ => None,
4804 }
4805 }
4806 }
4807}
4808#[allow(clippy::derive_partial_eq_without_eq)]
4809#[derive(Clone, PartialEq, ::prost::Message)]
4810pub struct MediaSectionsRequirement {
4811 #[prost(uint32, tag="1")]
4812 pub num_audios: u32,
4813 #[prost(uint32, tag="2")]
4814 pub num_videos: u32,
4815}
4816#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4817#[repr(i32)]
4818pub enum SignalTarget {
4819 Publisher = 0,
4820 Subscriber = 1,
4821}
4822impl SignalTarget {
4823 pub fn as_str_name(&self) -> &'static str {
4828 match self {
4829 SignalTarget::Publisher => "PUBLISHER",
4830 SignalTarget::Subscriber => "SUBSCRIBER",
4831 }
4832 }
4833 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4835 match value {
4836 "PUBLISHER" => Some(Self::Publisher),
4837 "SUBSCRIBER" => Some(Self::Subscriber),
4838 _ => None,
4839 }
4840 }
4841}
4842#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4843#[repr(i32)]
4844pub enum StreamState {
4845 Active = 0,
4846 Paused = 1,
4847}
4848impl StreamState {
4849 pub fn as_str_name(&self) -> &'static str {
4854 match self {
4855 StreamState::Active => "ACTIVE",
4856 StreamState::Paused => "PAUSED",
4857 }
4858 }
4859 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4861 match value {
4862 "ACTIVE" => Some(Self::Active),
4863 "PAUSED" => Some(Self::Paused),
4864 _ => None,
4865 }
4866 }
4867}
4868#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4869#[repr(i32)]
4870pub enum CandidateProtocol {
4871 Udp = 0,
4872 Tcp = 1,
4873 Tls = 2,
4874}
4875impl CandidateProtocol {
4876 pub fn as_str_name(&self) -> &'static str {
4881 match self {
4882 CandidateProtocol::Udp => "UDP",
4883 CandidateProtocol::Tcp => "TCP",
4884 CandidateProtocol::Tls => "TLS",
4885 }
4886 }
4887 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4889 match value {
4890 "UDP" => Some(Self::Udp),
4891 "TCP" => Some(Self::Tcp),
4892 "TLS" => Some(Self::Tls),
4893 _ => None,
4894 }
4895 }
4896}
4897#[allow(clippy::derive_partial_eq_without_eq)]
4898#[derive(Clone, PartialEq, ::prost::Message)]
4899pub struct Job {
4900 #[prost(string, tag="1")]
4901 pub id: ::prost::alloc::string::String,
4902 #[prost(string, tag="9")]
4903 pub dispatch_id: ::prost::alloc::string::String,
4904 #[prost(enumeration="JobType", tag="2")]
4905 pub r#type: i32,
4906 #[prost(message, optional, tag="3")]
4907 pub room: ::core::option::Option<Room>,
4908 #[prost(message, optional, tag="4")]
4909 pub participant: ::core::option::Option<ParticipantInfo>,
4910 #[deprecated]
4911 #[prost(string, tag="5")]
4912 pub namespace: ::prost::alloc::string::String,
4913 #[prost(string, tag="6")]
4914 pub metadata: ::prost::alloc::string::String,
4915 #[prost(string, tag="7")]
4916 pub agent_name: ::prost::alloc::string::String,
4917 #[prost(message, optional, tag="8")]
4918 pub state: ::core::option::Option<JobState>,
4919 #[prost(bool, tag="10")]
4920 pub enable_recording: bool,
4921 #[prost(string, tag="11")]
4922 pub deployment: ::prost::alloc::string::String,
4923 #[prost(map="string, string", tag="12")]
4924 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4925 #[prost(bool, tag="13")]
4926 pub enable_redaction: bool,
4927}
4928#[allow(clippy::derive_partial_eq_without_eq)]
4929#[derive(Clone, PartialEq, ::prost::Message)]
4930pub struct JobState {
4931 #[prost(enumeration="JobStatus", tag="1")]
4932 pub status: i32,
4933 #[prost(string, tag="2")]
4934 pub error: ::prost::alloc::string::String,
4935 #[prost(int64, tag="3")]
4936 pub started_at: i64,
4937 #[prost(int64, tag="4")]
4938 pub ended_at: i64,
4939 #[prost(int64, tag="5")]
4940 pub updated_at: i64,
4941 #[prost(string, tag="6")]
4942 pub participant_identity: ::prost::alloc::string::String,
4943 #[prost(string, tag="7")]
4944 pub worker_id: ::prost::alloc::string::String,
4945 #[prost(string, tag="8")]
4946 pub agent_id: ::prost::alloc::string::String,
4947}
4948#[allow(clippy::derive_partial_eq_without_eq)]
4950#[derive(Clone, PartialEq, ::prost::Message)]
4951pub struct WorkerMessage {
4952 #[prost(oneof="worker_message::Message", tags="1, 2, 3, 4, 5, 6, 7")]
4953 pub message: ::core::option::Option<worker_message::Message>,
4954}
4955pub mod worker_message {
4957 #[allow(clippy::derive_partial_eq_without_eq)]
4958#[derive(Clone, PartialEq, ::prost::Oneof)]
4959 pub enum Message {
4960 #[prost(message, tag="1")]
4962 Register(super::RegisterWorkerRequest),
4963 #[prost(message, tag="2")]
4965 Availability(super::AvailabilityResponse),
4966 #[prost(message, tag="3")]
4968 UpdateWorker(super::UpdateWorkerStatus),
4969 #[prost(message, tag="4")]
4971 UpdateJob(super::UpdateJobStatus),
4972 #[prost(message, tag="5")]
4973 Ping(super::WorkerPing),
4974 #[prost(message, tag="6")]
4975 SimulateJob(super::SimulateJobRequest),
4976 #[prost(message, tag="7")]
4977 MigrateJob(super::MigrateJobRequest),
4978 }
4979}
4980#[allow(clippy::derive_partial_eq_without_eq)]
4982#[derive(Clone, PartialEq, ::prost::Message)]
4983pub struct ServerMessage {
4984 #[prost(oneof="server_message::Message", tags="1, 2, 3, 5, 4")]
4985 pub message: ::core::option::Option<server_message::Message>,
4986}
4987pub mod server_message {
4989 #[allow(clippy::derive_partial_eq_without_eq)]
4990#[derive(Clone, PartialEq, ::prost::Oneof)]
4991 pub enum Message {
4992 #[prost(message, tag="1")]
4994 Register(super::RegisterWorkerResponse),
4995 #[prost(message, tag="2")]
4997 Availability(super::AvailabilityRequest),
4998 #[prost(message, tag="3")]
4999 Assignment(super::JobAssignment),
5000 #[prost(message, tag="5")]
5001 Termination(super::JobTermination),
5002 #[prost(message, tag="4")]
5003 Pong(super::WorkerPong),
5004 }
5005}
5006#[allow(clippy::derive_partial_eq_without_eq)]
5007#[derive(Clone, PartialEq, ::prost::Message)]
5008pub struct SimulateJobRequest {
5009 #[prost(enumeration="JobType", tag="1")]
5010 pub r#type: i32,
5011 #[prost(message, optional, tag="2")]
5012 pub room: ::core::option::Option<Room>,
5013 #[prost(message, optional, tag="3")]
5014 pub participant: ::core::option::Option<ParticipantInfo>,
5015}
5016#[allow(clippy::derive_partial_eq_without_eq)]
5017#[derive(Clone, PartialEq, ::prost::Message)]
5018pub struct WorkerPing {
5019 #[prost(int64, tag="1")]
5020 pub timestamp: i64,
5021}
5022#[allow(clippy::derive_partial_eq_without_eq)]
5023#[derive(Clone, PartialEq, ::prost::Message)]
5024pub struct WorkerPong {
5025 #[prost(int64, tag="1")]
5026 pub last_timestamp: i64,
5027 #[prost(int64, tag="2")]
5028 pub timestamp: i64,
5029}
5030#[allow(clippy::derive_partial_eq_without_eq)]
5031#[derive(Clone, PartialEq, ::prost::Message)]
5032pub struct RegisterWorkerRequest {
5033 #[prost(enumeration="JobType", tag="1")]
5034 pub r#type: i32,
5035 #[prost(string, tag="8")]
5036 pub agent_name: ::prost::alloc::string::String,
5037 #[prost(string, tag="3")]
5039 pub version: ::prost::alloc::string::String,
5040 #[prost(uint32, tag="5")]
5042 pub ping_interval: u32,
5043 #[prost(string, optional, tag="6")]
5044 pub namespace: ::core::option::Option<::prost::alloc::string::String>,
5045 #[prost(message, optional, tag="7")]
5046 pub allowed_permissions: ::core::option::Option<ParticipantPermission>,
5047 #[prost(string, tag="9")]
5048 pub deployment: ::prost::alloc::string::String,
5049}
5050#[allow(clippy::derive_partial_eq_without_eq)]
5051#[derive(Clone, PartialEq, ::prost::Message)]
5052pub struct RegisterWorkerResponse {
5053 #[prost(string, tag="1")]
5054 pub worker_id: ::prost::alloc::string::String,
5055 #[prost(message, optional, tag="3")]
5056 pub server_info: ::core::option::Option<ServerInfo>,
5057}
5058#[allow(clippy::derive_partial_eq_without_eq)]
5059#[derive(Clone, PartialEq, ::prost::Message)]
5060pub struct MigrateJobRequest {
5061 #[prost(string, repeated, tag="2")]
5063 pub job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5064}
5065#[allow(clippy::derive_partial_eq_without_eq)]
5066#[derive(Clone, PartialEq, ::prost::Message)]
5067pub struct AvailabilityRequest {
5068 #[prost(message, optional, tag="1")]
5069 pub job: ::core::option::Option<Job>,
5070 #[prost(bool, tag="2")]
5073 pub resuming: bool,
5074}
5075#[allow(clippy::derive_partial_eq_without_eq)]
5076#[derive(Clone, PartialEq, ::prost::Message)]
5077pub struct AvailabilityResponse {
5078 #[prost(string, tag="1")]
5079 pub job_id: ::prost::alloc::string::String,
5080 #[prost(bool, tag="2")]
5081 pub available: bool,
5082 #[prost(bool, tag="3")]
5083 pub supports_resume: bool,
5084 #[prost(bool, tag="8")]
5085 pub terminate: bool,
5086 #[prost(string, tag="4")]
5087 pub participant_name: ::prost::alloc::string::String,
5088 #[prost(string, tag="5")]
5089 pub participant_identity: ::prost::alloc::string::String,
5090 #[prost(string, tag="6")]
5091 pub participant_metadata: ::prost::alloc::string::String,
5092 #[prost(map="string, string", tag="7")]
5094 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5095}
5096#[allow(clippy::derive_partial_eq_without_eq)]
5097#[derive(Clone, PartialEq, ::prost::Message)]
5098pub struct UpdateJobStatus {
5099 #[prost(string, tag="1")]
5100 pub job_id: ::prost::alloc::string::String,
5101 #[prost(enumeration="JobStatus", tag="2")]
5103 pub status: i32,
5104 #[prost(string, tag="3")]
5106 pub error: ::prost::alloc::string::String,
5107}
5108#[allow(clippy::derive_partial_eq_without_eq)]
5109#[derive(Clone, PartialEq, ::prost::Message)]
5110pub struct UpdateWorkerStatus {
5111 #[prost(enumeration="WorkerStatus", optional, tag="1")]
5112 pub status: ::core::option::Option<i32>,
5113 #[prost(float, tag="3")]
5115 pub load: f32,
5116 #[prost(uint32, tag="4")]
5117 pub job_count: u32,
5118}
5119#[allow(clippy::derive_partial_eq_without_eq)]
5120#[derive(Clone, PartialEq, ::prost::Message)]
5121pub struct JobAssignment {
5122 #[prost(message, optional, tag="1")]
5123 pub job: ::core::option::Option<Job>,
5124 #[prost(string, optional, tag="2")]
5125 pub url: ::core::option::Option<::prost::alloc::string::String>,
5126 #[prost(string, tag="3")]
5127 pub token: ::prost::alloc::string::String,
5128}
5129#[allow(clippy::derive_partial_eq_without_eq)]
5130#[derive(Clone, PartialEq, ::prost::Message)]
5131pub struct JobTermination {
5132 #[prost(string, tag="1")]
5133 pub job_id: ::prost::alloc::string::String,
5134}
5135#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5136#[repr(i32)]
5137pub enum JobType {
5138 JtRoom = 0,
5139 JtPublisher = 1,
5140 JtParticipant = 2,
5141}
5142impl JobType {
5143 pub fn as_str_name(&self) -> &'static str {
5148 match self {
5149 JobType::JtRoom => "JT_ROOM",
5150 JobType::JtPublisher => "JT_PUBLISHER",
5151 JobType::JtParticipant => "JT_PARTICIPANT",
5152 }
5153 }
5154 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5156 match value {
5157 "JT_ROOM" => Some(Self::JtRoom),
5158 "JT_PUBLISHER" => Some(Self::JtPublisher),
5159 "JT_PARTICIPANT" => Some(Self::JtParticipant),
5160 _ => None,
5161 }
5162 }
5163}
5164#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5165#[repr(i32)]
5166pub enum WorkerStatus {
5167 WsAvailable = 0,
5168 WsFull = 1,
5169}
5170impl WorkerStatus {
5171 pub fn as_str_name(&self) -> &'static str {
5176 match self {
5177 WorkerStatus::WsAvailable => "WS_AVAILABLE",
5178 WorkerStatus::WsFull => "WS_FULL",
5179 }
5180 }
5181 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5183 match value {
5184 "WS_AVAILABLE" => Some(Self::WsAvailable),
5185 "WS_FULL" => Some(Self::WsFull),
5186 _ => None,
5187 }
5188 }
5189}
5190#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5191#[repr(i32)]
5192pub enum JobStatus {
5193 JsPending = 0,
5194 JsRunning = 1,
5195 JsSuccess = 2,
5196 JsFailed = 3,
5197}
5198impl JobStatus {
5199 pub fn as_str_name(&self) -> &'static str {
5204 match self {
5205 JobStatus::JsPending => "JS_PENDING",
5206 JobStatus::JsRunning => "JS_RUNNING",
5207 JobStatus::JsSuccess => "JS_SUCCESS",
5208 JobStatus::JsFailed => "JS_FAILED",
5209 }
5210 }
5211 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5213 match value {
5214 "JS_PENDING" => Some(Self::JsPending),
5215 "JS_RUNNING" => Some(Self::JsRunning),
5216 "JS_SUCCESS" => Some(Self::JsSuccess),
5217 "JS_FAILED" => Some(Self::JsFailed),
5218 _ => None,
5219 }
5220 }
5221}
5222#[allow(clippy::derive_partial_eq_without_eq)]
5223#[derive(Clone, PartialEq, ::prost::Message)]
5224pub struct CreateAgentDispatchRequest {
5225 #[prost(string, tag="1")]
5226 pub agent_name: ::prost::alloc::string::String,
5227 #[prost(string, tag="2")]
5228 pub room: ::prost::alloc::string::String,
5229 #[prost(string, tag="3")]
5230 pub metadata: ::prost::alloc::string::String,
5231 #[prost(enumeration="JobRestartPolicy", tag="4")]
5233 pub restart_policy: i32,
5234 #[prost(string, tag="5")]
5235 pub deployment: ::prost::alloc::string::String,
5236 #[prost(map="string, string", tag="6")]
5237 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5238}
5239#[allow(clippy::derive_partial_eq_without_eq)]
5240#[derive(Clone, PartialEq, ::prost::Message)]
5241pub struct RoomAgentDispatch {
5242 #[prost(string, tag="1")]
5243 pub agent_name: ::prost::alloc::string::String,
5244 #[prost(string, tag="2")]
5245 pub metadata: ::prost::alloc::string::String,
5246 #[prost(enumeration="JobRestartPolicy", tag="3")]
5248 pub restart_policy: i32,
5249 #[prost(string, tag="4")]
5250 pub deployment: ::prost::alloc::string::String,
5251 #[prost(map="string, string", tag="5")]
5252 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5253}
5254#[allow(clippy::derive_partial_eq_without_eq)]
5255#[derive(Clone, PartialEq, ::prost::Message)]
5256pub struct DeleteAgentDispatchRequest {
5257 #[prost(string, tag="1")]
5258 pub dispatch_id: ::prost::alloc::string::String,
5259 #[prost(string, tag="2")]
5260 pub room: ::prost::alloc::string::String,
5261}
5262#[allow(clippy::derive_partial_eq_without_eq)]
5263#[derive(Clone, PartialEq, ::prost::Message)]
5264pub struct ListAgentDispatchRequest {
5265 #[prost(string, tag="1")]
5267 pub dispatch_id: ::prost::alloc::string::String,
5268 #[prost(string, tag="2")]
5270 pub room: ::prost::alloc::string::String,
5271}
5272#[allow(clippy::derive_partial_eq_without_eq)]
5273#[derive(Clone, PartialEq, ::prost::Message)]
5274pub struct ListAgentDispatchResponse {
5275 #[prost(message, repeated, tag="1")]
5276 pub agent_dispatches: ::prost::alloc::vec::Vec<AgentDispatch>,
5277}
5278#[allow(clippy::derive_partial_eq_without_eq)]
5279#[derive(Clone, PartialEq, ::prost::Message)]
5280pub struct AgentDispatch {
5281 #[prost(string, tag="1")]
5282 pub id: ::prost::alloc::string::String,
5283 #[prost(string, tag="2")]
5284 pub agent_name: ::prost::alloc::string::String,
5285 #[prost(string, tag="3")]
5286 pub room: ::prost::alloc::string::String,
5287 #[prost(string, tag="4")]
5288 pub metadata: ::prost::alloc::string::String,
5289 #[prost(message, optional, tag="5")]
5290 pub state: ::core::option::Option<AgentDispatchState>,
5291 #[prost(enumeration="JobRestartPolicy", tag="6")]
5293 pub restart_policy: i32,
5294 #[prost(string, tag="7")]
5295 pub deployment: ::prost::alloc::string::String,
5296 #[prost(map="string, string", tag="8")]
5297 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5298}
5299#[allow(clippy::derive_partial_eq_without_eq)]
5300#[derive(Clone, PartialEq, ::prost::Message)]
5301pub struct AgentDispatchState {
5302 #[prost(message, repeated, tag="1")]
5305 pub jobs: ::prost::alloc::vec::Vec<Job>,
5306 #[prost(int64, tag="2")]
5307 pub created_at: i64,
5308 #[prost(int64, tag="3")]
5309 pub deleted_at: i64,
5310}
5311#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5312#[repr(i32)]
5313pub enum JobRestartPolicy {
5314 JrpOnFailure = 0,
5316 JrpNever = 1,
5318}
5319impl JobRestartPolicy {
5320 pub fn as_str_name(&self) -> &'static str {
5325 match self {
5326 JobRestartPolicy::JrpOnFailure => "JRP_ON_FAILURE",
5327 JobRestartPolicy::JrpNever => "JRP_NEVER",
5328 }
5329 }
5330 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5332 match value {
5333 "JRP_ON_FAILURE" => Some(Self::JrpOnFailure),
5334 "JRP_NEVER" => Some(Self::JrpNever),
5335 _ => None,
5336 }
5337 }
5338}
5339#[allow(clippy::derive_partial_eq_without_eq)]
5340#[derive(Clone, PartialEq, ::prost::Message)]
5341pub struct CreateRoomRequest {
5342 #[prost(string, tag="1")]
5344 pub name: ::prost::alloc::string::String,
5345 #[prost(string, tag="12")]
5347 pub room_preset: ::prost::alloc::string::String,
5348 #[prost(uint32, tag="2")]
5350 pub empty_timeout: u32,
5351 #[prost(uint32, tag="10")]
5353 pub departure_timeout: u32,
5354 #[prost(uint32, tag="3")]
5356 pub max_participants: u32,
5357 #[prost(string, tag="4")]
5359 pub node_id: ::prost::alloc::string::String,
5360 #[prost(string, tag="5")]
5362 pub metadata: ::prost::alloc::string::String,
5363 #[prost(map="string, string", tag="15")]
5365 pub tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5366 #[prost(message, optional, tag="6")]
5368 pub egress: ::core::option::Option<RoomEgress>,
5369 #[prost(uint32, tag="7")]
5371 pub min_playout_delay: u32,
5372 #[prost(uint32, tag="8")]
5373 pub max_playout_delay: u32,
5374 #[prost(bool, tag="9")]
5377 pub sync_streams: bool,
5378 #[prost(bool, tag="13")]
5380 pub replay_enabled: bool,
5381 #[prost(message, repeated, tag="14")]
5383 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5384}
5385#[allow(clippy::derive_partial_eq_without_eq)]
5386#[derive(Clone, PartialEq, ::prost::Message)]
5387pub struct RoomEgress {
5388 #[prost(message, optional, tag="1")]
5389 pub room: ::core::option::Option<RoomCompositeEgressRequest>,
5390 #[prost(message, optional, tag="3")]
5391 pub participant: ::core::option::Option<AutoParticipantEgress>,
5392 #[prost(message, optional, tag="2")]
5393 pub tracks: ::core::option::Option<AutoTrackEgress>,
5394}
5395#[allow(clippy::derive_partial_eq_without_eq)]
5396#[derive(Clone, PartialEq, ::prost::Message)]
5397pub struct RoomAgent {
5398 #[prost(message, repeated, tag="1")]
5399 pub dispatches: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5400}
5401#[allow(clippy::derive_partial_eq_without_eq)]
5402#[derive(Clone, PartialEq, ::prost::Message)]
5403pub struct ListRoomsRequest {
5404 #[prost(string, repeated, tag="1")]
5406 pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5407}
5408#[allow(clippy::derive_partial_eq_without_eq)]
5409#[derive(Clone, PartialEq, ::prost::Message)]
5410pub struct ListRoomsResponse {
5411 #[prost(message, repeated, tag="1")]
5412 pub rooms: ::prost::alloc::vec::Vec<Room>,
5413}
5414#[allow(clippy::derive_partial_eq_without_eq)]
5415#[derive(Clone, PartialEq, ::prost::Message)]
5416pub struct DeleteRoomRequest {
5417 #[prost(string, tag="1")]
5419 pub room: ::prost::alloc::string::String,
5420}
5421#[allow(clippy::derive_partial_eq_without_eq)]
5422#[derive(Clone, PartialEq, ::prost::Message)]
5423pub struct DeleteRoomResponse {
5424}
5425#[allow(clippy::derive_partial_eq_without_eq)]
5426#[derive(Clone, PartialEq, ::prost::Message)]
5427pub struct ListParticipantsRequest {
5428 #[prost(string, tag="1")]
5430 pub room: ::prost::alloc::string::String,
5431}
5432#[allow(clippy::derive_partial_eq_without_eq)]
5433#[derive(Clone, PartialEq, ::prost::Message)]
5434pub struct ListParticipantsResponse {
5435 #[prost(message, repeated, tag="1")]
5436 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
5437}
5438#[allow(clippy::derive_partial_eq_without_eq)]
5439#[derive(Clone, PartialEq, ::prost::Message)]
5440pub struct RoomParticipantIdentity {
5441 #[prost(string, tag="1")]
5443 pub room: ::prost::alloc::string::String,
5444 #[prost(string, tag="2")]
5446 pub identity: ::prost::alloc::string::String,
5447 #[prost(int64, tag="3")]
5450 pub revoke_token_ts: i64,
5451}
5452#[allow(clippy::derive_partial_eq_without_eq)]
5453#[derive(Clone, PartialEq, ::prost::Message)]
5454pub struct RemoveParticipantResponse {
5455}
5456#[allow(clippy::derive_partial_eq_without_eq)]
5457#[derive(Clone, PartialEq, ::prost::Message)]
5458pub struct MuteRoomTrackRequest {
5459 #[prost(string, tag="1")]
5461 pub room: ::prost::alloc::string::String,
5462 #[prost(string, tag="2")]
5463 pub identity: ::prost::alloc::string::String,
5464 #[prost(string, tag="3")]
5466 pub track_sid: ::prost::alloc::string::String,
5467 #[prost(bool, tag="4")]
5469 pub muted: bool,
5470}
5471#[allow(clippy::derive_partial_eq_without_eq)]
5472#[derive(Clone, PartialEq, ::prost::Message)]
5473pub struct MuteRoomTrackResponse {
5474 #[prost(message, optional, tag="1")]
5475 pub track: ::core::option::Option<TrackInfo>,
5476}
5477#[allow(clippy::derive_partial_eq_without_eq)]
5478#[derive(Clone, PartialEq, ::prost::Message)]
5479pub struct UpdateParticipantRequest {
5480 #[prost(string, tag="1")]
5481 pub room: ::prost::alloc::string::String,
5482 #[prost(string, tag="2")]
5483 pub identity: ::prost::alloc::string::String,
5484 #[prost(string, tag="3")]
5486 pub metadata: ::prost::alloc::string::String,
5487 #[prost(message, optional, tag="4")]
5489 pub permission: ::core::option::Option<ParticipantPermission>,
5490 #[prost(string, tag="5")]
5492 pub name: ::prost::alloc::string::String,
5493 #[prost(map="string, string", tag="6")]
5496 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5497}
5498#[allow(clippy::derive_partial_eq_without_eq)]
5499#[derive(Clone, PartialEq, ::prost::Message)]
5500pub struct UpdateSubscriptionsRequest {
5501 #[prost(string, tag="1")]
5502 pub room: ::prost::alloc::string::String,
5503 #[prost(string, tag="2")]
5504 pub identity: ::prost::alloc::string::String,
5505 #[prost(string, repeated, tag="3")]
5507 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5508 #[prost(bool, tag="4")]
5510 pub subscribe: bool,
5511 #[prost(message, repeated, tag="5")]
5513 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
5514}
5515#[allow(clippy::derive_partial_eq_without_eq)]
5517#[derive(Clone, PartialEq, ::prost::Message)]
5518pub struct UpdateSubscriptionsResponse {
5519}
5520#[allow(clippy::derive_partial_eq_without_eq)]
5521#[derive(Clone, PartialEq, ::prost::Message)]
5522pub struct SendDataRequest {
5523 #[prost(string, tag="1")]
5524 pub room: ::prost::alloc::string::String,
5525 #[prost(bytes="vec", tag="2")]
5526 pub data: ::prost::alloc::vec::Vec<u8>,
5527 #[prost(enumeration="data_packet::Kind", tag="3")]
5528 pub kind: i32,
5529 #[deprecated]
5531 #[prost(string, repeated, tag="4")]
5532 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5533 #[prost(string, repeated, tag="6")]
5535 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5536 #[prost(string, optional, tag="5")]
5537 pub topic: ::core::option::Option<::prost::alloc::string::String>,
5538 #[prost(bytes="vec", tag="7")]
5540 pub nonce: ::prost::alloc::vec::Vec<u8>,
5541}
5542#[allow(clippy::derive_partial_eq_without_eq)]
5544#[derive(Clone, PartialEq, ::prost::Message)]
5545pub struct SendDataResponse {
5546}
5547#[allow(clippy::derive_partial_eq_without_eq)]
5548#[derive(Clone, PartialEq, ::prost::Message)]
5549pub struct UpdateRoomMetadataRequest {
5550 #[prost(string, tag="1")]
5551 pub room: ::prost::alloc::string::String,
5552 #[prost(string, tag="2")]
5554 pub metadata: ::prost::alloc::string::String,
5555}
5556#[allow(clippy::derive_partial_eq_without_eq)]
5557#[derive(Clone, PartialEq, ::prost::Message)]
5558pub struct RoomConfiguration {
5559 #[prost(string, tag="1")]
5561 pub name: ::prost::alloc::string::String,
5562 #[prost(uint32, tag="2")]
5564 pub empty_timeout: u32,
5565 #[prost(uint32, tag="3")]
5567 pub departure_timeout: u32,
5568 #[prost(uint32, tag="4")]
5570 pub max_participants: u32,
5571 #[prost(string, tag="11")]
5573 pub metadata: ::prost::alloc::string::String,
5574 #[prost(message, optional, tag="5")]
5576 pub egress: ::core::option::Option<RoomEgress>,
5577 #[prost(uint32, tag="7")]
5579 pub min_playout_delay: u32,
5580 #[prost(uint32, tag="8")]
5581 pub max_playout_delay: u32,
5582 #[prost(bool, tag="9")]
5585 pub sync_streams: bool,
5586 #[prost(message, repeated, tag="10")]
5588 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5589 #[prost(map="string, string", tag="12")]
5591 pub tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5592}
5593#[allow(clippy::derive_partial_eq_without_eq)]
5594#[derive(Clone, PartialEq, ::prost::Message)]
5595pub struct ForwardParticipantRequest {
5596 #[prost(string, tag="1")]
5598 pub room: ::prost::alloc::string::String,
5599 #[prost(string, tag="2")]
5601 pub identity: ::prost::alloc::string::String,
5602 #[prost(string, tag="3")]
5604 pub destination_room: ::prost::alloc::string::String,
5605}
5606#[allow(clippy::derive_partial_eq_without_eq)]
5607#[derive(Clone, PartialEq, ::prost::Message)]
5608pub struct ForwardParticipantResponse {
5609}
5610#[allow(clippy::derive_partial_eq_without_eq)]
5611#[derive(Clone, PartialEq, ::prost::Message)]
5612pub struct MoveParticipantRequest {
5613 #[prost(string, tag="1")]
5615 pub room: ::prost::alloc::string::String,
5616 #[prost(string, tag="2")]
5618 pub identity: ::prost::alloc::string::String,
5619 #[prost(string, tag="3")]
5621 pub destination_room: ::prost::alloc::string::String,
5622}
5623#[allow(clippy::derive_partial_eq_without_eq)]
5624#[derive(Clone, PartialEq, ::prost::Message)]
5625pub struct MoveParticipantResponse {
5626}
5627#[allow(clippy::derive_partial_eq_without_eq)]
5628#[derive(Clone, PartialEq, ::prost::Message)]
5629pub struct PerformRpcRequest {
5630 #[prost(string, tag="1")]
5631 pub room: ::prost::alloc::string::String,
5632 #[prost(string, tag="2")]
5633 pub destination_identity: ::prost::alloc::string::String,
5634 #[prost(string, tag="3")]
5635 pub method: ::prost::alloc::string::String,
5636 #[prost(string, tag="4")]
5637 pub payload: ::prost::alloc::string::String,
5638 #[prost(uint32, tag="5")]
5639 pub response_timeout_ms: u32,
5640}
5641#[allow(clippy::derive_partial_eq_without_eq)]
5642#[derive(Clone, PartialEq, ::prost::Message)]
5643pub struct PerformRpcResponse {
5644 #[prost(string, tag="1")]
5645 pub payload: ::prost::alloc::string::String,
5646}
5647#[allow(clippy::derive_partial_eq_without_eq)]
5648#[derive(Clone, PartialEq, ::prost::Message)]
5649pub struct CreateIngressRequest {
5650 #[prost(enumeration="IngressInput", tag="1")]
5651 pub input_type: i32,
5652 #[prost(string, tag="9")]
5654 pub url: ::prost::alloc::string::String,
5655 #[prost(string, tag="2")]
5657 pub name: ::prost::alloc::string::String,
5658 #[prost(string, tag="3")]
5660 pub room_name: ::prost::alloc::string::String,
5661 #[prost(string, tag="4")]
5663 pub participant_identity: ::prost::alloc::string::String,
5664 #[prost(string, tag="5")]
5666 pub participant_name: ::prost::alloc::string::String,
5667 #[prost(string, tag="10")]
5669 pub participant_metadata: ::prost::alloc::string::String,
5670 #[deprecated]
5672 #[prost(bool, tag="8")]
5673 pub bypass_transcoding: bool,
5674 #[prost(bool, optional, tag="11")]
5676 pub enable_transcoding: ::core::option::Option<bool>,
5677 #[prost(message, optional, tag="6")]
5678 pub audio: ::core::option::Option<IngressAudioOptions>,
5679 #[prost(message, optional, tag="7")]
5680 pub video: ::core::option::Option<IngressVideoOptions>,
5681 #[prost(bool, optional, tag="12")]
5683 pub enabled: ::core::option::Option<bool>,
5684}
5685#[allow(clippy::derive_partial_eq_without_eq)]
5686#[derive(Clone, PartialEq, ::prost::Message)]
5687pub struct IngressAudioOptions {
5688 #[prost(string, tag="1")]
5689 pub name: ::prost::alloc::string::String,
5690 #[prost(enumeration="TrackSource", tag="2")]
5691 pub source: i32,
5692 #[prost(oneof="ingress_audio_options::EncodingOptions", tags="3, 4")]
5693 pub encoding_options: ::core::option::Option<ingress_audio_options::EncodingOptions>,
5694}
5695pub mod ingress_audio_options {
5697 #[allow(clippy::derive_partial_eq_without_eq)]
5698#[derive(Clone, PartialEq, ::prost::Oneof)]
5699 pub enum EncodingOptions {
5700 #[prost(enumeration="super::IngressAudioEncodingPreset", tag="3")]
5701 Preset(i32),
5702 #[prost(message, tag="4")]
5703 Options(super::IngressAudioEncodingOptions),
5704 }
5705}
5706#[allow(clippy::derive_partial_eq_without_eq)]
5707#[derive(Clone, PartialEq, ::prost::Message)]
5708pub struct IngressVideoOptions {
5709 #[prost(string, tag="1")]
5710 pub name: ::prost::alloc::string::String,
5711 #[prost(enumeration="TrackSource", tag="2")]
5712 pub source: i32,
5713 #[prost(oneof="ingress_video_options::EncodingOptions", tags="3, 4")]
5714 pub encoding_options: ::core::option::Option<ingress_video_options::EncodingOptions>,
5715}
5716pub mod ingress_video_options {
5718 #[allow(clippy::derive_partial_eq_without_eq)]
5719#[derive(Clone, PartialEq, ::prost::Oneof)]
5720 pub enum EncodingOptions {
5721 #[prost(enumeration="super::IngressVideoEncodingPreset", tag="3")]
5722 Preset(i32),
5723 #[prost(message, tag="4")]
5724 Options(super::IngressVideoEncodingOptions),
5725 }
5726}
5727#[allow(clippy::derive_partial_eq_without_eq)]
5728#[derive(Clone, PartialEq, ::prost::Message)]
5729pub struct IngressAudioEncodingOptions {
5730 #[prost(enumeration="AudioCodec", tag="1")]
5732 pub audio_codec: i32,
5733 #[prost(uint32, tag="2")]
5734 pub bitrate: u32,
5735 #[prost(bool, tag="3")]
5736 pub disable_dtx: bool,
5737 #[prost(uint32, tag="4")]
5738 pub channels: u32,
5739}
5740#[allow(clippy::derive_partial_eq_without_eq)]
5741#[derive(Clone, PartialEq, ::prost::Message)]
5742pub struct IngressVideoEncodingOptions {
5743 #[prost(enumeration="VideoCodec", tag="1")]
5745 pub video_codec: i32,
5746 #[prost(double, tag="2")]
5747 pub frame_rate: f64,
5748 #[prost(message, repeated, tag="3")]
5750 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
5751}
5752#[allow(clippy::derive_partial_eq_without_eq)]
5753#[derive(Clone, PartialEq, ::prost::Message)]
5754pub struct IngressInfo {
5755 #[prost(string, tag="1")]
5756 pub ingress_id: ::prost::alloc::string::String,
5757 #[prost(string, tag="2")]
5758 pub name: ::prost::alloc::string::String,
5759 #[prost(string, tag="3")]
5760 pub stream_key: ::prost::alloc::string::String,
5761 #[prost(string, tag="4")]
5763 pub url: ::prost::alloc::string::String,
5764 #[prost(enumeration="IngressInput", tag="5")]
5768 pub input_type: i32,
5769 #[deprecated]
5770 #[prost(bool, tag="13")]
5771 pub bypass_transcoding: bool,
5772 #[prost(bool, optional, tag="15")]
5773 pub enable_transcoding: ::core::option::Option<bool>,
5774 #[prost(message, optional, tag="6")]
5775 pub audio: ::core::option::Option<IngressAudioOptions>,
5776 #[prost(message, optional, tag="7")]
5777 pub video: ::core::option::Option<IngressVideoOptions>,
5778 #[prost(string, tag="8")]
5779 pub room_name: ::prost::alloc::string::String,
5780 #[prost(string, tag="9")]
5781 pub participant_identity: ::prost::alloc::string::String,
5782 #[prost(string, tag="10")]
5783 pub participant_name: ::prost::alloc::string::String,
5784 #[prost(string, tag="14")]
5785 pub participant_metadata: ::prost::alloc::string::String,
5786 #[prost(bool, tag="11")]
5787 pub reusable: bool,
5788 #[prost(message, optional, tag="12")]
5790 pub state: ::core::option::Option<IngressState>,
5791 #[prost(bool, optional, tag="16")]
5793 pub enabled: ::core::option::Option<bool>,
5794}
5795#[allow(clippy::derive_partial_eq_without_eq)]
5796#[derive(Clone, PartialEq, ::prost::Message)]
5797pub struct IngressState {
5798 #[prost(enumeration="ingress_state::Status", tag="1")]
5799 pub status: i32,
5800 #[prost(string, tag="2")]
5802 pub error: ::prost::alloc::string::String,
5803 #[prost(message, optional, tag="3")]
5804 pub video: ::core::option::Option<InputVideoState>,
5805 #[prost(message, optional, tag="4")]
5806 pub audio: ::core::option::Option<InputAudioState>,
5807 #[prost(string, tag="5")]
5809 pub room_id: ::prost::alloc::string::String,
5810 #[prost(int64, tag="7")]
5811 pub started_at: i64,
5812 #[prost(int64, tag="8")]
5813 pub ended_at: i64,
5814 #[prost(int64, tag="10")]
5815 pub updated_at: i64,
5816 #[prost(string, tag="9")]
5817 pub resource_id: ::prost::alloc::string::String,
5818 #[prost(message, repeated, tag="6")]
5819 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
5820}
5821pub mod ingress_state {
5823 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5824 #[repr(i32)]
5825 pub enum Status {
5826 EndpointInactive = 0,
5827 EndpointBuffering = 1,
5828 EndpointPublishing = 2,
5829 EndpointError = 3,
5830 EndpointComplete = 4,
5831 }
5832 impl Status {
5833 pub fn as_str_name(&self) -> &'static str {
5838 match self {
5839 Status::EndpointInactive => "ENDPOINT_INACTIVE",
5840 Status::EndpointBuffering => "ENDPOINT_BUFFERING",
5841 Status::EndpointPublishing => "ENDPOINT_PUBLISHING",
5842 Status::EndpointError => "ENDPOINT_ERROR",
5843 Status::EndpointComplete => "ENDPOINT_COMPLETE",
5844 }
5845 }
5846 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5848 match value {
5849 "ENDPOINT_INACTIVE" => Some(Self::EndpointInactive),
5850 "ENDPOINT_BUFFERING" => Some(Self::EndpointBuffering),
5851 "ENDPOINT_PUBLISHING" => Some(Self::EndpointPublishing),
5852 "ENDPOINT_ERROR" => Some(Self::EndpointError),
5853 "ENDPOINT_COMPLETE" => Some(Self::EndpointComplete),
5854 _ => None,
5855 }
5856 }
5857 }
5858}
5859#[allow(clippy::derive_partial_eq_without_eq)]
5860#[derive(Clone, PartialEq, ::prost::Message)]
5861pub struct InputVideoState {
5862 #[prost(string, tag="1")]
5863 pub mime_type: ::prost::alloc::string::String,
5864 #[prost(uint32, tag="2")]
5865 pub average_bitrate: u32,
5866 #[prost(uint32, tag="3")]
5867 pub width: u32,
5868 #[prost(uint32, tag="4")]
5869 pub height: u32,
5870 #[prost(double, tag="5")]
5871 pub framerate: f64,
5872}
5873#[allow(clippy::derive_partial_eq_without_eq)]
5874#[derive(Clone, PartialEq, ::prost::Message)]
5875pub struct InputAudioState {
5876 #[prost(string, tag="1")]
5877 pub mime_type: ::prost::alloc::string::String,
5878 #[prost(uint32, tag="2")]
5879 pub average_bitrate: u32,
5880 #[prost(uint32, tag="3")]
5881 pub channels: u32,
5882 #[prost(uint32, tag="4")]
5883 pub sample_rate: u32,
5884}
5885#[allow(clippy::derive_partial_eq_without_eq)]
5886#[derive(Clone, PartialEq, ::prost::Message)]
5887pub struct UpdateIngressRequest {
5888 #[prost(string, tag="1")]
5889 pub ingress_id: ::prost::alloc::string::String,
5890 #[prost(string, tag="2")]
5891 pub name: ::prost::alloc::string::String,
5892 #[prost(string, tag="3")]
5893 pub room_name: ::prost::alloc::string::String,
5894 #[prost(string, tag="4")]
5895 pub participant_identity: ::prost::alloc::string::String,
5896 #[prost(string, tag="5")]
5897 pub participant_name: ::prost::alloc::string::String,
5898 #[prost(string, tag="9")]
5899 pub participant_metadata: ::prost::alloc::string::String,
5900 #[deprecated]
5901 #[prost(bool, optional, tag="8")]
5902 pub bypass_transcoding: ::core::option::Option<bool>,
5903 #[prost(bool, optional, tag="10")]
5904 pub enable_transcoding: ::core::option::Option<bool>,
5905 #[prost(message, optional, tag="6")]
5906 pub audio: ::core::option::Option<IngressAudioOptions>,
5907 #[prost(message, optional, tag="7")]
5908 pub video: ::core::option::Option<IngressVideoOptions>,
5909 #[prost(bool, optional, tag="11")]
5911 pub enabled: ::core::option::Option<bool>,
5912}
5913#[allow(clippy::derive_partial_eq_without_eq)]
5914#[derive(Clone, PartialEq, ::prost::Message)]
5915pub struct ListIngressRequest {
5916 #[prost(message, optional, tag="3")]
5917 pub page_token: ::core::option::Option<TokenPagination>,
5918 #[prost(string, tag="1")]
5922 pub room_name: ::prost::alloc::string::String,
5923 #[prost(string, tag="2")]
5925 pub ingress_id: ::prost::alloc::string::String,
5926}
5927#[allow(clippy::derive_partial_eq_without_eq)]
5928#[derive(Clone, PartialEq, ::prost::Message)]
5929pub struct ListIngressResponse {
5930 #[prost(message, optional, tag="2")]
5931 pub next_page_token: ::core::option::Option<TokenPagination>,
5932 #[prost(message, repeated, tag="1")]
5934 pub items: ::prost::alloc::vec::Vec<IngressInfo>,
5935}
5936#[allow(clippy::derive_partial_eq_without_eq)]
5937#[derive(Clone, PartialEq, ::prost::Message)]
5938pub struct DeleteIngressRequest {
5939 #[prost(string, tag="1")]
5940 pub ingress_id: ::prost::alloc::string::String,
5941}
5942#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5943#[repr(i32)]
5944pub enum IngressInput {
5945 RtmpInput = 0,
5946 WhipInput = 1,
5947 UrlInput = 2,
5949}
5950impl IngressInput {
5951 pub fn as_str_name(&self) -> &'static str {
5956 match self {
5957 IngressInput::RtmpInput => "RTMP_INPUT",
5958 IngressInput::WhipInput => "WHIP_INPUT",
5959 IngressInput::UrlInput => "URL_INPUT",
5960 }
5961 }
5962 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5964 match value {
5965 "RTMP_INPUT" => Some(Self::RtmpInput),
5966 "WHIP_INPUT" => Some(Self::WhipInput),
5967 "URL_INPUT" => Some(Self::UrlInput),
5968 _ => None,
5969 }
5970 }
5971}
5972#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5973#[repr(i32)]
5974pub enum IngressAudioEncodingPreset {
5975 OpusStereo96kbps = 0,
5977 OpusMono64kbs = 1,
5979}
5980impl IngressAudioEncodingPreset {
5981 pub fn as_str_name(&self) -> &'static str {
5986 match self {
5987 IngressAudioEncodingPreset::OpusStereo96kbps => "OPUS_STEREO_96KBPS",
5988 IngressAudioEncodingPreset::OpusMono64kbs => "OPUS_MONO_64KBS",
5989 }
5990 }
5991 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5993 match value {
5994 "OPUS_STEREO_96KBPS" => Some(Self::OpusStereo96kbps),
5995 "OPUS_MONO_64KBS" => Some(Self::OpusMono64kbs),
5996 _ => None,
5997 }
5998 }
5999}
6000#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6001#[repr(i32)]
6002pub enum IngressVideoEncodingPreset {
6003 H264720p30fps3Layers = 0,
6005 H2641080p30fps3Layers = 1,
6007 H264540p25fps2Layers = 2,
6009 H264720p30fps1Layer = 3,
6011 H2641080p30fps1Layer = 4,
6013 H264720p30fps3LayersHighMotion = 5,
6015 H2641080p30fps3LayersHighMotion = 6,
6017 H264540p25fps2LayersHighMotion = 7,
6019 H264720p30fps1LayerHighMotion = 8,
6021 H2641080p30fps1LayerHighMotion = 9,
6023}
6024impl IngressVideoEncodingPreset {
6025 pub fn as_str_name(&self) -> &'static str {
6030 match self {
6031 IngressVideoEncodingPreset::H264720p30fps3Layers => "H264_720P_30FPS_3_LAYERS",
6032 IngressVideoEncodingPreset::H2641080p30fps3Layers => "H264_1080P_30FPS_3_LAYERS",
6033 IngressVideoEncodingPreset::H264540p25fps2Layers => "H264_540P_25FPS_2_LAYERS",
6034 IngressVideoEncodingPreset::H264720p30fps1Layer => "H264_720P_30FPS_1_LAYER",
6035 IngressVideoEncodingPreset::H2641080p30fps1Layer => "H264_1080P_30FPS_1_LAYER",
6036 IngressVideoEncodingPreset::H264720p30fps3LayersHighMotion => "H264_720P_30FPS_3_LAYERS_HIGH_MOTION",
6037 IngressVideoEncodingPreset::H2641080p30fps3LayersHighMotion => "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION",
6038 IngressVideoEncodingPreset::H264540p25fps2LayersHighMotion => "H264_540P_25FPS_2_LAYERS_HIGH_MOTION",
6039 IngressVideoEncodingPreset::H264720p30fps1LayerHighMotion => "H264_720P_30FPS_1_LAYER_HIGH_MOTION",
6040 IngressVideoEncodingPreset::H2641080p30fps1LayerHighMotion => "H264_1080P_30FPS_1_LAYER_HIGH_MOTION",
6041 }
6042 }
6043 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6045 match value {
6046 "H264_720P_30FPS_3_LAYERS" => Some(Self::H264720p30fps3Layers),
6047 "H264_1080P_30FPS_3_LAYERS" => Some(Self::H2641080p30fps3Layers),
6048 "H264_540P_25FPS_2_LAYERS" => Some(Self::H264540p25fps2Layers),
6049 "H264_720P_30FPS_1_LAYER" => Some(Self::H264720p30fps1Layer),
6050 "H264_1080P_30FPS_1_LAYER" => Some(Self::H2641080p30fps1Layer),
6051 "H264_720P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H264720p30fps3LayersHighMotion),
6052 "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H2641080p30fps3LayersHighMotion),
6053 "H264_540P_25FPS_2_LAYERS_HIGH_MOTION" => Some(Self::H264540p25fps2LayersHighMotion),
6054 "H264_720P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H264720p30fps1LayerHighMotion),
6055 "H264_1080P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H2641080p30fps1LayerHighMotion),
6056 _ => None,
6057 }
6058 }
6059}
6060#[allow(clippy::derive_partial_eq_without_eq)]
6061#[derive(Clone, PartialEq, ::prost::Message)]
6062pub struct WebhookEvent {
6063 #[prost(string, tag="1")]
6067 pub event: ::prost::alloc::string::String,
6068 #[prost(message, optional, tag="2")]
6069 pub room: ::core::option::Option<Room>,
6070 #[prost(message, optional, tag="3")]
6072 pub participant: ::core::option::Option<ParticipantInfo>,
6073 #[prost(message, optional, tag="9")]
6075 pub egress_info: ::core::option::Option<EgressInfo>,
6076 #[prost(message, optional, tag="10")]
6078 pub ingress_info: ::core::option::Option<IngressInfo>,
6079 #[prost(message, optional, tag="8")]
6081 pub track: ::core::option::Option<TrackInfo>,
6082 #[prost(string, tag="6")]
6084 pub id: ::prost::alloc::string::String,
6085 #[prost(int64, tag="7")]
6087 pub created_at: i64,
6088 #[deprecated]
6089 #[prost(int32, tag="11")]
6090 pub num_dropped: i32,
6091}
6092#[allow(clippy::derive_partial_eq_without_eq)]
6094#[derive(Clone, PartialEq, ::prost::Message)]
6095pub struct SipStatus {
6096 #[prost(enumeration="SipStatusCode", tag="1")]
6097 pub code: i32,
6098 #[prost(string, tag="2")]
6099 pub status: ::prost::alloc::string::String,
6100}
6101#[allow(clippy::derive_partial_eq_without_eq)]
6102#[derive(Clone, PartialEq, ::prost::Message)]
6103pub struct CreateSipTrunkRequest {
6104 #[prost(string, repeated, tag="1")]
6107 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6108 #[prost(string, tag="2")]
6110 pub outbound_address: ::prost::alloc::string::String,
6111 #[prost(string, tag="3")]
6113 pub outbound_number: ::prost::alloc::string::String,
6114 #[deprecated]
6115 #[prost(string, repeated, tag="4")]
6116 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6117 #[prost(string, repeated, tag="9")]
6121 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6122 #[prost(string, tag="5")]
6125 pub inbound_username: ::prost::alloc::string::String,
6126 #[prost(string, tag="6")]
6127 pub inbound_password: ::prost::alloc::string::String,
6128 #[prost(string, tag="7")]
6129 pub outbound_username: ::prost::alloc::string::String,
6130 #[prost(string, tag="8")]
6131 pub outbound_password: ::prost::alloc::string::String,
6132 #[prost(string, tag="10")]
6134 pub name: ::prost::alloc::string::String,
6135 #[prost(string, tag="11")]
6137 pub metadata: ::prost::alloc::string::String,
6138}
6139#[allow(clippy::derive_partial_eq_without_eq)]
6140#[derive(Clone, PartialEq, ::prost::Message)]
6141pub struct SipCodec {
6142 #[prost(string, tag="1")]
6143 pub name: ::prost::alloc::string::String,
6144 #[prost(uint32, tag="2")]
6145 pub rate: u32,
6146}
6147#[allow(clippy::derive_partial_eq_without_eq)]
6148#[derive(Clone, PartialEq, ::prost::Message)]
6149pub struct SipMediaConfig {
6150 #[prost(bool, tag="1")]
6152 pub only_listed_codecs: bool,
6153 #[prost(message, repeated, tag="2")]
6155 pub codecs: ::prost::alloc::vec::Vec<SipCodec>,
6156 #[prost(enumeration="SipMediaEncryption", optional, tag="3")]
6157 pub encryption: ::core::option::Option<i32>,
6158 #[prost(message, optional, tag="4")]
6160 pub media_timeout: ::core::option::Option<::pbjson_types::Duration>,
6161}
6162#[allow(clippy::derive_partial_eq_without_eq)]
6163#[derive(Clone, PartialEq, ::prost::Message)]
6164pub struct ProviderInfo {
6165 #[prost(string, tag="1")]
6166 pub id: ::prost::alloc::string::String,
6167 #[prost(string, tag="2")]
6168 pub name: ::prost::alloc::string::String,
6169 #[prost(enumeration="ProviderType", tag="3")]
6170 pub r#type: i32,
6171 #[prost(bool, tag="4")]
6172 pub prevent_transfer: bool,
6173}
6174#[allow(clippy::derive_partial_eq_without_eq)]
6175#[derive(Clone, PartialEq, ::prost::Message)]
6176pub struct SipTrunkInfo {
6177 #[prost(string, tag="1")]
6178 pub sip_trunk_id: ::prost::alloc::string::String,
6179 #[prost(enumeration="sip_trunk_info::TrunkKind", tag="14")]
6180 pub kind: i32,
6181 #[prost(string, repeated, tag="2")]
6184 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6185 #[prost(string, tag="3")]
6187 pub outbound_address: ::prost::alloc::string::String,
6188 #[prost(string, tag="4")]
6190 pub outbound_number: ::prost::alloc::string::String,
6191 #[prost(enumeration="SipTransport", tag="13")]
6193 pub transport: i32,
6194 #[deprecated]
6195 #[prost(string, repeated, tag="5")]
6196 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6197 #[prost(string, repeated, tag="10")]
6201 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6202 #[prost(string, tag="6")]
6205 pub inbound_username: ::prost::alloc::string::String,
6206 #[prost(string, tag="7")]
6207 pub inbound_password: ::prost::alloc::string::String,
6208 #[prost(string, tag="8")]
6209 pub outbound_username: ::prost::alloc::string::String,
6210 #[prost(string, tag="9")]
6211 pub outbound_password: ::prost::alloc::string::String,
6212 #[prost(string, tag="11")]
6214 pub name: ::prost::alloc::string::String,
6215 #[prost(string, tag="12")]
6217 pub metadata: ::prost::alloc::string::String,
6218}
6219pub mod sip_trunk_info {
6221 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6222 #[repr(i32)]
6223 pub enum TrunkKind {
6224 TrunkLegacy = 0,
6225 TrunkInbound = 1,
6226 TrunkOutbound = 2,
6227 }
6228 impl TrunkKind {
6229 pub fn as_str_name(&self) -> &'static str {
6234 match self {
6235 TrunkKind::TrunkLegacy => "TRUNK_LEGACY",
6236 TrunkKind::TrunkInbound => "TRUNK_INBOUND",
6237 TrunkKind::TrunkOutbound => "TRUNK_OUTBOUND",
6238 }
6239 }
6240 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6242 match value {
6243 "TRUNK_LEGACY" => Some(Self::TrunkLegacy),
6244 "TRUNK_INBOUND" => Some(Self::TrunkInbound),
6245 "TRUNK_OUTBOUND" => Some(Self::TrunkOutbound),
6246 _ => None,
6247 }
6248 }
6249 }
6250}
6251#[allow(clippy::derive_partial_eq_without_eq)]
6252#[derive(Clone, PartialEq, ::prost::Message)]
6253pub struct CreateSipInboundTrunkRequest {
6254 #[prost(message, optional, tag="1")]
6256 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
6257}
6258#[allow(clippy::derive_partial_eq_without_eq)]
6259#[derive(Clone, PartialEq, ::prost::Message)]
6260pub struct UpdateSipInboundTrunkRequest {
6261 #[prost(string, tag="1")]
6262 pub sip_trunk_id: ::prost::alloc::string::String,
6263 #[prost(oneof="update_sip_inbound_trunk_request::Action", tags="2, 3")]
6264 pub action: ::core::option::Option<update_sip_inbound_trunk_request::Action>,
6265}
6266pub mod update_sip_inbound_trunk_request {
6268 #[allow(clippy::derive_partial_eq_without_eq)]
6269#[derive(Clone, PartialEq, ::prost::Oneof)]
6270 pub enum Action {
6271 #[prost(message, tag="2")]
6272 Replace(super::SipInboundTrunkInfo),
6273 #[prost(message, tag="3")]
6274 Update(super::SipInboundTrunkUpdate),
6275 }
6276}
6277#[allow(clippy::derive_partial_eq_without_eq)]
6278#[derive(Clone, PartialEq, ::prost::Message)]
6279pub struct SipInboundTrunkInfo {
6280 #[prost(string, tag="1")]
6281 pub sip_trunk_id: ::prost::alloc::string::String,
6282 #[prost(string, tag="2")]
6284 pub name: ::prost::alloc::string::String,
6285 #[prost(string, tag="3")]
6287 pub metadata: ::prost::alloc::string::String,
6288 #[prost(string, repeated, tag="4")]
6291 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6292 #[prost(string, repeated, tag="5")]
6295 pub allowed_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6296 #[prost(string, repeated, tag="6")]
6299 pub allowed_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6300 #[prost(string, tag="7")]
6303 pub auth_username: ::prost::alloc::string::String,
6304 #[prost(string, tag="8")]
6305 pub auth_password: ::prost::alloc::string::String,
6306 #[prost(string, tag="19")]
6307 pub auth_realm: ::prost::alloc::string::String,
6308 #[prost(map="string, string", tag="9")]
6310 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6311 #[prost(map="string, string", tag="10")]
6313 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6314 #[prost(map="string, string", tag="14")]
6317 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6318 #[prost(enumeration="SipHeaderOptions", tag="15")]
6325 pub include_headers: i32,
6326 #[prost(message, optional, tag="11")]
6328 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6329 #[prost(message, optional, tag="12")]
6331 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
6332 #[prost(bool, tag="13")]
6333 pub krisp_enabled: bool,
6334 #[deprecated]
6335 #[prost(enumeration="SipMediaEncryption", tag="16")]
6336 pub media_encryption: i32,
6337 #[prost(message, optional, tag="20")]
6338 pub media: ::core::option::Option<SipMediaConfig>,
6339 #[prost(message, optional, tag="17")]
6340 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6341 #[prost(message, optional, tag="18")]
6342 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6343}
6344#[allow(clippy::derive_partial_eq_without_eq)]
6345#[derive(Clone, PartialEq, ::prost::Message)]
6346pub struct SipInboundTrunkUpdate {
6347 #[prost(message, optional, tag="1")]
6348 pub numbers: ::core::option::Option<ListUpdate>,
6349 #[prost(message, optional, tag="2")]
6350 pub allowed_addresses: ::core::option::Option<ListUpdate>,
6351 #[prost(message, optional, tag="3")]
6352 pub allowed_numbers: ::core::option::Option<ListUpdate>,
6353 #[prost(string, optional, tag="4")]
6354 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
6355 #[prost(string, optional, tag="5")]
6356 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
6357 #[prost(string, optional, tag="9")]
6358 pub auth_realm: ::core::option::Option<::prost::alloc::string::String>,
6359 #[prost(string, optional, tag="6")]
6360 pub name: ::core::option::Option<::prost::alloc::string::String>,
6361 #[prost(string, optional, tag="7")]
6362 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6363 #[deprecated]
6364 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
6365 pub media_encryption: ::core::option::Option<i32>,
6366 #[prost(message, optional, tag="10")]
6367 pub media: ::core::option::Option<SipMediaConfig>,
6368}
6369#[allow(clippy::derive_partial_eq_without_eq)]
6370#[derive(Clone, PartialEq, ::prost::Message)]
6371pub struct CreateSipOutboundTrunkRequest {
6372 #[prost(message, optional, tag="1")]
6374 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
6375}
6376#[allow(clippy::derive_partial_eq_without_eq)]
6377#[derive(Clone, PartialEq, ::prost::Message)]
6378pub struct UpdateSipOutboundTrunkRequest {
6379 #[prost(string, tag="1")]
6380 pub sip_trunk_id: ::prost::alloc::string::String,
6381 #[prost(oneof="update_sip_outbound_trunk_request::Action", tags="2, 3")]
6382 pub action: ::core::option::Option<update_sip_outbound_trunk_request::Action>,
6383}
6384pub mod update_sip_outbound_trunk_request {
6386 #[allow(clippy::derive_partial_eq_without_eq)]
6387#[derive(Clone, PartialEq, ::prost::Oneof)]
6388 pub enum Action {
6389 #[prost(message, tag="2")]
6390 Replace(super::SipOutboundTrunkInfo),
6391 #[prost(message, tag="3")]
6392 Update(super::SipOutboundTrunkUpdate),
6393 }
6394}
6395#[allow(clippy::derive_partial_eq_without_eq)]
6396#[derive(Clone, PartialEq, ::prost::Message)]
6397pub struct SipOutboundTrunkInfo {
6398 #[prost(string, tag="1")]
6399 pub sip_trunk_id: ::prost::alloc::string::String,
6400 #[prost(string, tag="2")]
6402 pub name: ::prost::alloc::string::String,
6403 #[prost(string, tag="3")]
6405 pub metadata: ::prost::alloc::string::String,
6406 #[prost(string, tag="4")]
6409 pub address: ::prost::alloc::string::String,
6410 #[prost(string, tag="14")]
6412 pub destination_country: ::prost::alloc::string::String,
6413 #[prost(enumeration="SipTransport", tag="5")]
6415 pub transport: i32,
6416 #[prost(string, repeated, tag="6")]
6418 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6419 #[prost(string, tag="7")]
6422 pub auth_username: ::prost::alloc::string::String,
6423 #[prost(string, tag="8")]
6424 pub auth_password: ::prost::alloc::string::String,
6425 #[prost(map="string, string", tag="9")]
6428 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6429 #[prost(map="string, string", tag="10")]
6432 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6433 #[prost(map="string, string", tag="11")]
6436 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6437 #[prost(enumeration="SipHeaderOptions", tag="12")]
6444 pub include_headers: i32,
6445 #[deprecated]
6446 #[prost(enumeration="SipMediaEncryption", tag="13")]
6447 pub media_encryption: i32,
6448 #[prost(message, optional, tag="18")]
6449 pub media: ::core::option::Option<SipMediaConfig>,
6450 #[prost(string, tag="15")]
6454 pub from_host: ::prost::alloc::string::String,
6455 #[prost(message, optional, tag="16")]
6456 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6457 #[prost(message, optional, tag="17")]
6458 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6459}
6460#[allow(clippy::derive_partial_eq_without_eq)]
6461#[derive(Clone, PartialEq, ::prost::Message)]
6462pub struct SipOutboundTrunkUpdate {
6463 #[prost(string, optional, tag="1")]
6464 pub address: ::core::option::Option<::prost::alloc::string::String>,
6465 #[prost(enumeration="SipTransport", optional, tag="2")]
6466 pub transport: ::core::option::Option<i32>,
6467 #[prost(string, optional, tag="9")]
6468 pub destination_country: ::core::option::Option<::prost::alloc::string::String>,
6469 #[prost(message, optional, tag="3")]
6470 pub numbers: ::core::option::Option<ListUpdate>,
6471 #[prost(string, optional, tag="4")]
6472 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
6473 #[prost(string, optional, tag="5")]
6474 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
6475 #[prost(string, optional, tag="6")]
6476 pub name: ::core::option::Option<::prost::alloc::string::String>,
6477 #[prost(string, optional, tag="7")]
6478 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6479 #[deprecated]
6480 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
6481 pub media_encryption: ::core::option::Option<i32>,
6482 #[prost(message, optional, tag="11")]
6483 pub media: ::core::option::Option<SipMediaConfig>,
6484 #[prost(string, optional, tag="10")]
6485 pub from_host: ::core::option::Option<::prost::alloc::string::String>,
6486}
6487#[allow(clippy::derive_partial_eq_without_eq)]
6488#[derive(Clone, PartialEq, ::prost::Message)]
6489pub struct GetSipInboundTrunkRequest {
6490 #[prost(string, tag="1")]
6491 pub sip_trunk_id: ::prost::alloc::string::String,
6492}
6493#[allow(clippy::derive_partial_eq_without_eq)]
6494#[derive(Clone, PartialEq, ::prost::Message)]
6495pub struct GetSipInboundTrunkResponse {
6496 #[prost(message, optional, tag="1")]
6497 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
6498}
6499#[allow(clippy::derive_partial_eq_without_eq)]
6500#[derive(Clone, PartialEq, ::prost::Message)]
6501pub struct GetSipOutboundTrunkRequest {
6502 #[prost(string, tag="1")]
6503 pub sip_trunk_id: ::prost::alloc::string::String,
6504}
6505#[allow(clippy::derive_partial_eq_without_eq)]
6506#[derive(Clone, PartialEq, ::prost::Message)]
6507pub struct GetSipOutboundTrunkResponse {
6508 #[prost(message, optional, tag="1")]
6509 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
6510}
6511#[allow(clippy::derive_partial_eq_without_eq)]
6512#[derive(Clone, PartialEq, ::prost::Message)]
6513pub struct ListSipTrunkRequest {
6514 #[prost(message, optional, tag="1")]
6515 pub page: ::core::option::Option<Pagination>,
6516}
6517#[allow(clippy::derive_partial_eq_without_eq)]
6518#[derive(Clone, PartialEq, ::prost::Message)]
6519pub struct ListSipTrunkResponse {
6520 #[prost(message, repeated, tag="1")]
6521 pub items: ::prost::alloc::vec::Vec<SipTrunkInfo>,
6522}
6523#[allow(clippy::derive_partial_eq_without_eq)]
6525#[derive(Clone, PartialEq, ::prost::Message)]
6526pub struct ListSipInboundTrunkRequest {
6527 #[prost(message, optional, tag="3")]
6528 pub page: ::core::option::Option<Pagination>,
6529 #[prost(string, repeated, tag="1")]
6532 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6533 #[prost(string, repeated, tag="2")]
6535 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6536}
6537#[allow(clippy::derive_partial_eq_without_eq)]
6538#[derive(Clone, PartialEq, ::prost::Message)]
6539pub struct ListSipInboundTrunkResponse {
6540 #[prost(message, repeated, tag="1")]
6541 pub items: ::prost::alloc::vec::Vec<SipInboundTrunkInfo>,
6542}
6543#[allow(clippy::derive_partial_eq_without_eq)]
6545#[derive(Clone, PartialEq, ::prost::Message)]
6546pub struct ListSipOutboundTrunkRequest {
6547 #[prost(message, optional, tag="3")]
6548 pub page: ::core::option::Option<Pagination>,
6549 #[prost(string, repeated, tag="1")]
6552 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6553 #[prost(string, repeated, tag="2")]
6555 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6556}
6557#[allow(clippy::derive_partial_eq_without_eq)]
6558#[derive(Clone, PartialEq, ::prost::Message)]
6559pub struct ListSipOutboundTrunkResponse {
6560 #[prost(message, repeated, tag="1")]
6561 pub items: ::prost::alloc::vec::Vec<SipOutboundTrunkInfo>,
6562}
6563#[allow(clippy::derive_partial_eq_without_eq)]
6564#[derive(Clone, PartialEq, ::prost::Message)]
6565pub struct DeleteSipTrunkRequest {
6566 #[prost(string, tag="1")]
6567 pub sip_trunk_id: ::prost::alloc::string::String,
6568}
6569#[allow(clippy::derive_partial_eq_without_eq)]
6570#[derive(Clone, PartialEq, ::prost::Message)]
6571pub struct SipDispatchRuleDirect {
6572 #[prost(string, tag="1")]
6574 pub room_name: ::prost::alloc::string::String,
6575 #[prost(string, tag="2")]
6577 pub pin: ::prost::alloc::string::String,
6578}
6579#[allow(clippy::derive_partial_eq_without_eq)]
6580#[derive(Clone, PartialEq, ::prost::Message)]
6581pub struct SipDispatchRuleIndividual {
6582 #[prost(string, tag="1")]
6584 pub room_prefix: ::prost::alloc::string::String,
6585 #[prost(string, tag="2")]
6587 pub pin: ::prost::alloc::string::String,
6588 #[prost(bool, tag="3")]
6590 pub no_randomness: bool,
6591}
6592#[allow(clippy::derive_partial_eq_without_eq)]
6593#[derive(Clone, PartialEq, ::prost::Message)]
6594pub struct SipDispatchRuleCallee {
6595 #[prost(string, tag="1")]
6597 pub room_prefix: ::prost::alloc::string::String,
6598 #[prost(string, tag="2")]
6600 pub pin: ::prost::alloc::string::String,
6601 #[prost(bool, tag="3")]
6603 pub randomize: bool,
6604}
6605#[allow(clippy::derive_partial_eq_without_eq)]
6606#[derive(Clone, PartialEq, ::prost::Message)]
6607pub struct SipDispatchRule {
6608 #[prost(oneof="sip_dispatch_rule::Rule", tags="1, 2, 3")]
6609 pub rule: ::core::option::Option<sip_dispatch_rule::Rule>,
6610}
6611pub mod sip_dispatch_rule {
6613 #[allow(clippy::derive_partial_eq_without_eq)]
6614#[derive(Clone, PartialEq, ::prost::Oneof)]
6615 pub enum Rule {
6616 #[prost(message, tag="1")]
6620 DispatchRuleDirect(super::SipDispatchRuleDirect),
6621 #[prost(message, tag="2")]
6623 DispatchRuleIndividual(super::SipDispatchRuleIndividual),
6624 #[prost(message, tag="3")]
6626 DispatchRuleCallee(super::SipDispatchRuleCallee),
6627 }
6628}
6629#[allow(clippy::derive_partial_eq_without_eq)]
6630#[derive(Clone, PartialEq, ::prost::Message)]
6631pub struct CreateSipDispatchRuleRequest {
6632 #[prost(message, optional, tag="10")]
6634 pub dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
6635 #[deprecated]
6636 #[prost(message, optional, tag="1")]
6637 pub rule: ::core::option::Option<SipDispatchRule>,
6638 #[deprecated]
6641 #[prost(string, repeated, tag="2")]
6642 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6643 #[deprecated]
6646 #[prost(bool, tag="3")]
6647 pub hide_phone_number: bool,
6648 #[deprecated]
6650 #[prost(string, repeated, tag="6")]
6651 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6652 #[deprecated]
6654 #[prost(string, tag="4")]
6655 pub name: ::prost::alloc::string::String,
6656 #[deprecated]
6659 #[prost(string, tag="5")]
6660 pub metadata: ::prost::alloc::string::String,
6661 #[prost(map="string, string", tag="7")]
6664 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6665 #[deprecated]
6667 #[prost(string, tag="8")]
6668 pub room_preset: ::prost::alloc::string::String,
6669 #[deprecated]
6671 #[prost(message, optional, tag="9")]
6672 pub room_config: ::core::option::Option<RoomConfiguration>,
6673}
6674#[allow(clippy::derive_partial_eq_without_eq)]
6675#[derive(Clone, PartialEq, ::prost::Message)]
6676pub struct UpdateSipDispatchRuleRequest {
6677 #[prost(string, tag="1")]
6678 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6679 #[prost(oneof="update_sip_dispatch_rule_request::Action", tags="2, 3")]
6680 pub action: ::core::option::Option<update_sip_dispatch_rule_request::Action>,
6681}
6682pub mod update_sip_dispatch_rule_request {
6684 #[allow(clippy::derive_partial_eq_without_eq)]
6685#[derive(Clone, PartialEq, ::prost::Oneof)]
6686 pub enum Action {
6687 #[prost(message, tag="2")]
6688 Replace(super::SipDispatchRuleInfo),
6689 #[prost(message, tag="3")]
6690 Update(super::SipDispatchRuleUpdate),
6691 }
6692}
6693#[allow(clippy::derive_partial_eq_without_eq)]
6694#[derive(Clone, PartialEq, ::prost::Message)]
6695pub struct SipDispatchRuleInfo {
6696 #[prost(string, tag="1")]
6697 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6698 #[prost(message, optional, tag="2")]
6699 pub rule: ::core::option::Option<SipDispatchRule>,
6700 #[prost(string, repeated, tag="3")]
6701 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6702 #[prost(bool, tag="4")]
6703 pub hide_phone_number: bool,
6704 #[prost(string, repeated, tag="7")]
6706 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6707 #[prost(string, repeated, tag="13")]
6709 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6710 #[prost(string, tag="5")]
6712 pub name: ::prost::alloc::string::String,
6713 #[prost(string, tag="6")]
6716 pub metadata: ::prost::alloc::string::String,
6717 #[prost(map="string, string", tag="8")]
6720 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6721 #[prost(string, tag="9")]
6723 pub room_preset: ::prost::alloc::string::String,
6724 #[prost(message, optional, tag="10")]
6726 pub room_config: ::core::option::Option<RoomConfiguration>,
6727 #[prost(message, optional, tag="16")]
6728 pub media: ::core::option::Option<SipMediaConfig>,
6729 #[prost(bool, tag="11")]
6730 pub krisp_enabled: bool,
6731 #[deprecated]
6732 #[prost(enumeration="SipMediaEncryption", tag="12")]
6733 pub media_encryption: i32,
6734 #[prost(message, optional, tag="14")]
6735 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6736 #[prost(message, optional, tag="15")]
6737 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6738}
6739#[allow(clippy::derive_partial_eq_without_eq)]
6740#[derive(Clone, PartialEq, ::prost::Message)]
6741pub struct SipDispatchRuleUpdate {
6742 #[prost(message, optional, tag="1")]
6743 pub trunk_ids: ::core::option::Option<ListUpdate>,
6744 #[prost(message, optional, tag="2")]
6745 pub rule: ::core::option::Option<SipDispatchRule>,
6746 #[prost(string, optional, tag="3")]
6747 pub name: ::core::option::Option<::prost::alloc::string::String>,
6748 #[prost(string, optional, tag="4")]
6749 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6750 #[prost(map="string, string", tag="5")]
6751 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6752 #[deprecated]
6753 #[prost(enumeration="SipMediaEncryption", optional, tag="6")]
6754 pub media_encryption: ::core::option::Option<i32>,
6755 #[prost(message, optional, tag="7")]
6756 pub media: ::core::option::Option<SipMediaConfig>,
6757}
6758#[allow(clippy::derive_partial_eq_without_eq)]
6760#[derive(Clone, PartialEq, ::prost::Message)]
6761pub struct ListSipDispatchRuleRequest {
6762 #[prost(message, optional, tag="3")]
6763 pub page: ::core::option::Option<Pagination>,
6764 #[prost(string, repeated, tag="1")]
6767 pub dispatch_rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6768 #[prost(string, repeated, tag="2")]
6770 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6771}
6772#[allow(clippy::derive_partial_eq_without_eq)]
6773#[derive(Clone, PartialEq, ::prost::Message)]
6774pub struct ListSipDispatchRuleResponse {
6775 #[prost(message, repeated, tag="1")]
6776 pub items: ::prost::alloc::vec::Vec<SipDispatchRuleInfo>,
6777}
6778#[allow(clippy::derive_partial_eq_without_eq)]
6779#[derive(Clone, PartialEq, ::prost::Message)]
6780pub struct DeleteSipDispatchRuleRequest {
6781 #[prost(string, tag="1")]
6782 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6783}
6784#[allow(clippy::derive_partial_eq_without_eq)]
6785#[derive(Clone, PartialEq, ::prost::Message)]
6786pub struct SipOutboundConfig {
6787 #[prost(string, tag="1")]
6789 pub hostname: ::prost::alloc::string::String,
6790 #[prost(string, tag="7")]
6792 pub destination_country: ::prost::alloc::string::String,
6793 #[prost(enumeration="SipTransport", tag="2")]
6795 pub transport: i32,
6796 #[prost(string, tag="3")]
6799 pub auth_username: ::prost::alloc::string::String,
6800 #[prost(string, tag="4")]
6801 pub auth_password: ::prost::alloc::string::String,
6802 #[prost(map="string, string", tag="5")]
6805 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6806 #[prost(map="string, string", tag="6")]
6809 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6810 #[prost(string, tag="8")]
6812 pub from_host: ::prost::alloc::string::String,
6813}
6814#[allow(clippy::derive_partial_eq_without_eq)]
6817#[derive(Clone, PartialEq, ::prost::Message)]
6818pub struct CreateSipParticipantRequest {
6819 #[prost(string, tag="1")]
6821 pub sip_trunk_id: ::prost::alloc::string::String,
6822 #[prost(message, optional, tag="20")]
6823 pub trunk: ::core::option::Option<SipOutboundConfig>,
6824 #[prost(message, optional, tag="24")]
6826 pub sip_request_uri: ::core::option::Option<SipRequestDest>,
6827 #[prost(message, optional, tag="25")]
6829 pub sip_to_header: ::core::option::Option<SipNamedDest>,
6830 #[prost(message, optional, tag="26")]
6832 pub sip_from_header: ::core::option::Option<SipNamedDest>,
6833 #[prost(string, tag="2")]
6835 pub sip_call_to: ::prost::alloc::string::String,
6836 #[prost(string, tag="15")]
6838 pub sip_number: ::prost::alloc::string::String,
6839 #[prost(string, tag="3")]
6841 pub room_name: ::prost::alloc::string::String,
6842 #[prost(string, tag="4")]
6844 pub participant_identity: ::prost::alloc::string::String,
6845 #[prost(string, tag="7")]
6847 pub participant_name: ::prost::alloc::string::String,
6848 #[prost(string, tag="8")]
6850 pub participant_metadata: ::prost::alloc::string::String,
6851 #[prost(map="string, string", tag="9")]
6853 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6854 #[prost(string, tag="5")]
6857 pub dtmf: ::prost::alloc::string::String,
6858 #[deprecated]
6860 #[prost(bool, tag="6")]
6861 pub play_ringtone: bool,
6862 #[prost(bool, tag="13")]
6863 pub play_dialtone: bool,
6864 #[prost(bool, tag="10")]
6867 pub hide_phone_number: bool,
6868 #[prost(map="string, string", tag="16")]
6870 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6871 #[prost(enumeration="SipHeaderOptions", tag="17")]
6878 pub include_headers: i32,
6879 #[prost(message, optional, tag="11")]
6881 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6882 #[prost(message, optional, tag="12")]
6884 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
6885 #[prost(bool, tag="14")]
6887 pub krisp_enabled: bool,
6888 #[deprecated]
6889 #[prost(enumeration="SipMediaEncryption", tag="18")]
6890 pub media_encryption: i32,
6891 #[prost(message, optional, tag="23")]
6892 pub media: ::core::option::Option<SipMediaConfig>,
6893 #[prost(bool, tag="19")]
6895 pub wait_until_answered: bool,
6896 #[prost(string, optional, tag="21")]
6903 pub display_name: ::core::option::Option<::prost::alloc::string::String>,
6904 #[prost(message, optional, tag="22")]
6906 pub destination: ::core::option::Option<Destination>,
6907}
6908#[allow(clippy::derive_partial_eq_without_eq)]
6909#[derive(Clone, PartialEq, ::prost::Message)]
6910pub struct SipParticipantInfo {
6911 #[prost(string, tag="1")]
6912 pub participant_id: ::prost::alloc::string::String,
6913 #[prost(string, tag="2")]
6914 pub participant_identity: ::prost::alloc::string::String,
6915 #[prost(string, tag="3")]
6916 pub room_name: ::prost::alloc::string::String,
6917 #[prost(string, tag="4")]
6918 pub sip_call_id: ::prost::alloc::string::String,
6919}
6920#[allow(clippy::derive_partial_eq_without_eq)]
6921#[derive(Clone, PartialEq, ::prost::Message)]
6922pub struct TransferSipParticipantRequest {
6923 #[prost(string, tag="1")]
6924 pub participant_identity: ::prost::alloc::string::String,
6925 #[prost(string, tag="2")]
6926 pub room_name: ::prost::alloc::string::String,
6927 #[prost(string, tag="3")]
6928 pub transfer_to: ::prost::alloc::string::String,
6929 #[prost(bool, tag="4")]
6931 pub play_dialtone: bool,
6932 #[prost(map="string, string", tag="5")]
6934 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6935 #[prost(message, optional, tag="6")]
6937 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6938}
6939#[allow(clippy::derive_partial_eq_without_eq)]
6940#[derive(Clone, PartialEq, ::prost::Message)]
6941pub struct SipCallInfo {
6942 #[prost(string, tag="1")]
6943 pub call_id: ::prost::alloc::string::String,
6944 #[prost(string, tag="2")]
6945 pub trunk_id: ::prost::alloc::string::String,
6946 #[prost(string, tag="16")]
6947 pub dispatch_rule_id: ::prost::alloc::string::String,
6948 #[prost(string, tag="17")]
6949 pub region: ::prost::alloc::string::String,
6950 #[prost(string, tag="3")]
6951 pub room_name: ::prost::alloc::string::String,
6952 #[prost(string, tag="4")]
6954 pub room_id: ::prost::alloc::string::String,
6955 #[prost(string, tag="5")]
6956 pub participant_identity: ::prost::alloc::string::String,
6957 #[prost(map="string, string", tag="18")]
6958 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6959 #[prost(message, optional, tag="6")]
6960 pub from_uri: ::core::option::Option<SipUri>,
6961 #[prost(message, optional, tag="7")]
6962 pub to_uri: ::core::option::Option<SipUri>,
6963 #[deprecated]
6964 #[prost(int64, tag="9")]
6965 pub created_at: i64,
6966 #[deprecated]
6967 #[prost(int64, tag="10")]
6968 pub started_at: i64,
6969 #[deprecated]
6970 #[prost(int64, tag="11")]
6971 pub ended_at: i64,
6972 #[prost(enumeration="SipFeature", repeated, tag="14")]
6973 pub enabled_features: ::prost::alloc::vec::Vec<i32>,
6974 #[prost(enumeration="SipCallDirection", tag="15")]
6975 pub call_direction: i32,
6976 #[prost(enumeration="SipCallStatus", tag="8")]
6977 pub call_status: i32,
6978 #[prost(int64, tag="22")]
6979 pub created_at_ns: i64,
6980 #[prost(int64, tag="23")]
6981 pub started_at_ns: i64,
6982 #[prost(int64, tag="24")]
6983 pub ended_at_ns: i64,
6984 #[prost(enumeration="DisconnectReason", tag="12")]
6985 pub disconnect_reason: i32,
6986 #[prost(string, tag="13")]
6987 pub error: ::prost::alloc::string::String,
6988 #[prost(message, optional, tag="19")]
6989 pub call_status_code: ::core::option::Option<SipStatus>,
6990 #[prost(string, tag="20")]
6991 pub audio_codec: ::prost::alloc::string::String,
6992 #[prost(string, tag="21")]
6993 pub media_encryption: ::prost::alloc::string::String,
6994 #[prost(string, tag="25")]
6995 pub pcap_file_link: ::prost::alloc::string::String,
6996 #[prost(message, repeated, tag="26")]
6997 pub call_context: ::prost::alloc::vec::Vec<::pbjson_types::Any>,
6998 #[prost(message, optional, tag="27")]
6999 pub provider_info: ::core::option::Option<ProviderInfo>,
7000 #[prost(string, tag="28")]
7001 pub sip_call_id: ::prost::alloc::string::String,
7002}
7003#[allow(clippy::derive_partial_eq_without_eq)]
7004#[derive(Clone, PartialEq, ::prost::Message)]
7005pub struct SipTransferInfo {
7006 #[prost(string, tag="1")]
7007 pub transfer_id: ::prost::alloc::string::String,
7008 #[prost(string, tag="2")]
7009 pub call_id: ::prost::alloc::string::String,
7010 #[prost(string, tag="3")]
7011 pub transfer_to: ::prost::alloc::string::String,
7012 #[prost(int64, tag="4")]
7013 pub transfer_initiated_at_ns: i64,
7014 #[prost(int64, tag="5")]
7015 pub transfer_completed_at_ns: i64,
7016 #[prost(enumeration="SipTransferStatus", tag="6")]
7017 pub transfer_status: i32,
7018 #[prost(string, tag="7")]
7019 pub error: ::prost::alloc::string::String,
7020 #[prost(message, optional, tag="8")]
7021 pub transfer_status_code: ::core::option::Option<SipStatus>,
7022}
7023#[allow(clippy::derive_partial_eq_without_eq)]
7024#[derive(Clone, PartialEq, ::prost::Message)]
7025pub struct SipUri {
7026 #[prost(string, tag="1")]
7027 pub user: ::prost::alloc::string::String,
7028 #[prost(string, tag="2")]
7029 pub host: ::prost::alloc::string::String,
7030 #[prost(string, tag="3")]
7031 pub ip: ::prost::alloc::string::String,
7032 #[prost(uint32, tag="4")]
7033 pub port: u32,
7034 #[prost(enumeration="SipTransport", tag="5")]
7035 pub transport: i32,
7036}
7037#[allow(clippy::derive_partial_eq_without_eq)]
7038#[derive(Clone, PartialEq, ::prost::Message)]
7039pub struct SipRequestDest {
7040 #[prost(oneof="sip_request_dest::Uri", tags="1, 2")]
7041 pub uri: ::core::option::Option<sip_request_dest::Uri>,
7042}
7043pub mod sip_request_dest {
7045 #[allow(clippy::derive_partial_eq_without_eq)]
7046#[derive(Clone, PartialEq, ::prost::Oneof)]
7047 pub enum Uri {
7048 #[prost(string, tag="1")]
7050 Raw(::prost::alloc::string::String),
7051 #[prost(message, tag="2")]
7052 Values(super::SipUri),
7053 }
7054}
7055#[allow(clippy::derive_partial_eq_without_eq)]
7056#[derive(Clone, PartialEq, ::prost::Message)]
7057pub struct SipNamedDest {
7058 #[prost(string, tag="3")]
7059 pub display_name: ::prost::alloc::string::String,
7060 #[prost(oneof="sip_named_dest::Uri", tags="1, 2")]
7061 pub uri: ::core::option::Option<sip_named_dest::Uri>,
7062}
7063pub mod sip_named_dest {
7065 #[allow(clippy::derive_partial_eq_without_eq)]
7066#[derive(Clone, PartialEq, ::prost::Oneof)]
7067 pub enum Uri {
7068 #[prost(string, tag="1")]
7070 Raw(::prost::alloc::string::String),
7071 #[prost(message, tag="2")]
7072 Values(super::SipUri),
7073 }
7074}
7075#[allow(clippy::derive_partial_eq_without_eq)]
7076#[derive(Clone, PartialEq, ::prost::Message)]
7077pub struct Destination {
7078 #[prost(string, tag="1")]
7079 pub city: ::prost::alloc::string::String,
7080 #[prost(string, tag="2")]
7081 pub country: ::prost::alloc::string::String,
7082 #[prost(string, tag="3")]
7083 pub region: ::prost::alloc::string::String,
7084}
7085#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7086#[repr(i32)]
7087pub enum SipStatusCode {
7088 SipStatusUnknown = 0,
7089 SipStatusTrying = 100,
7090 SipStatusRinging = 180,
7091 SipStatusCallIsForwarded = 181,
7092 SipStatusQueued = 182,
7093 SipStatusSessionProgress = 183,
7094 SipStatusEarlyDialogTerminated = 199,
7095 SipStatusOk = 200,
7096 SipStatusAccepted = 202,
7097 SipStatusNoNotification = 204,
7098 SipStatusMultipleChoices = 300,
7099 SipStatusMovedPermanently = 301,
7100 SipStatusMovedTemporarily = 302,
7101 SipStatusUseProxy = 305,
7102 SipStatusAlternativeService = 380,
7103 SipStatusBadRequest = 400,
7104 SipStatusUnauthorized = 401,
7105 SipStatusPaymentRequired = 402,
7106 SipStatusForbidden = 403,
7107 SipStatusNotfound = 404,
7108 SipStatusMethodNotAllowed = 405,
7109 SipStatusNotAcceptable = 406,
7110 SipStatusProxyAuthRequired = 407,
7111 SipStatusRequestTimeout = 408,
7112 SipStatusConflict = 409,
7113 SipStatusGone = 410,
7114 SipStatusLengthRequired = 411,
7115 SipStatusConditionalRequestFailed = 412,
7116 SipStatusRequestEntityTooLarge = 413,
7117 SipStatusRequestUriTooLong = 414,
7118 SipStatusUnsupportedMediaType = 415,
7119 SipStatusRequestedRangeNotSatisfiable = 416,
7120 SipStatusUnknownResourcePriority = 417,
7121 SipStatusBadExtension = 420,
7122 SipStatusExtensionRequired = 421,
7123 SipStatusSessionIntervalTooSmall = 422,
7124 SipStatusIntervalTooBrief = 423,
7125 SipStatusBadLocationInformation = 424,
7126 SipStatusBadAlertMessage = 425,
7127 SipStatusUseIdentityHeader = 428,
7128 SipStatusProvideReferrerIdentity = 429,
7129 SipStatusFlowFailed = 430,
7130 SipStatusAnonymityDisallowed = 433,
7131 SipStatusBadIdentityInfo = 436,
7132 SipStatusUnsupportedCertificate = 437,
7133 SipStatusInvalidIdentityHeader = 438,
7134 SipStatusFirstHopLacksOutboundSupport = 439,
7135 SipStatusMaxBreadthExceeded = 440,
7136 SipStatusBadInfoPackage = 469,
7137 SipStatusConsentNeeded = 470,
7138 SipStatusTemporarilyUnavailable = 480,
7139 SipStatusCallTransactionDoesNotExists = 481,
7140 SipStatusLoopDetected = 482,
7141 SipStatusTooManyHops = 483,
7142 SipStatusAddressIncomplete = 484,
7143 SipStatusAmbiguous = 485,
7144 SipStatusBusyHere = 486,
7145 SipStatusRequestTerminated = 487,
7146 SipStatusNotAcceptableHere = 488,
7147 SipStatusBadEvent = 489,
7148 SipStatusRequestPending = 491,
7149 SipStatusUndecipherable = 493,
7150 SipStatusSecurityAgreementRequired = 494,
7151 SipStatusInternalServerError = 500,
7152 SipStatusNotImplemented = 501,
7153 SipStatusBadGateway = 502,
7154 SipStatusServiceUnavailable = 503,
7155 SipStatusGatewayTimeout = 504,
7156 SipStatusVersionNotSupported = 505,
7157 SipStatusMessageTooLarge = 513,
7158 SipStatusGlobalBusyEverywhere = 600,
7159 SipStatusGlobalDecline = 603,
7160 SipStatusGlobalDoesNotExistAnywhere = 604,
7161 SipStatusGlobalNotAcceptable = 606,
7162 SipStatusGlobalUnwanted = 607,
7163 SipStatusGlobalRejected = 608,
7164}
7165impl SipStatusCode {
7166 pub fn as_str_name(&self) -> &'static str {
7171 match self {
7172 SipStatusCode::SipStatusUnknown => "SIP_STATUS_UNKNOWN",
7173 SipStatusCode::SipStatusTrying => "SIP_STATUS_TRYING",
7174 SipStatusCode::SipStatusRinging => "SIP_STATUS_RINGING",
7175 SipStatusCode::SipStatusCallIsForwarded => "SIP_STATUS_CALL_IS_FORWARDED",
7176 SipStatusCode::SipStatusQueued => "SIP_STATUS_QUEUED",
7177 SipStatusCode::SipStatusSessionProgress => "SIP_STATUS_SESSION_PROGRESS",
7178 SipStatusCode::SipStatusEarlyDialogTerminated => "SIP_STATUS_EARLY_DIALOG_TERMINATED",
7179 SipStatusCode::SipStatusOk => "SIP_STATUS_OK",
7180 SipStatusCode::SipStatusAccepted => "SIP_STATUS_ACCEPTED",
7181 SipStatusCode::SipStatusNoNotification => "SIP_STATUS_NO_NOTIFICATION",
7182 SipStatusCode::SipStatusMultipleChoices => "SIP_STATUS_MULTIPLE_CHOICES",
7183 SipStatusCode::SipStatusMovedPermanently => "SIP_STATUS_MOVED_PERMANENTLY",
7184 SipStatusCode::SipStatusMovedTemporarily => "SIP_STATUS_MOVED_TEMPORARILY",
7185 SipStatusCode::SipStatusUseProxy => "SIP_STATUS_USE_PROXY",
7186 SipStatusCode::SipStatusAlternativeService => "SIP_STATUS_ALTERNATIVE_SERVICE",
7187 SipStatusCode::SipStatusBadRequest => "SIP_STATUS_BAD_REQUEST",
7188 SipStatusCode::SipStatusUnauthorized => "SIP_STATUS_UNAUTHORIZED",
7189 SipStatusCode::SipStatusPaymentRequired => "SIP_STATUS_PAYMENT_REQUIRED",
7190 SipStatusCode::SipStatusForbidden => "SIP_STATUS_FORBIDDEN",
7191 SipStatusCode::SipStatusNotfound => "SIP_STATUS_NOTFOUND",
7192 SipStatusCode::SipStatusMethodNotAllowed => "SIP_STATUS_METHOD_NOT_ALLOWED",
7193 SipStatusCode::SipStatusNotAcceptable => "SIP_STATUS_NOT_ACCEPTABLE",
7194 SipStatusCode::SipStatusProxyAuthRequired => "SIP_STATUS_PROXY_AUTH_REQUIRED",
7195 SipStatusCode::SipStatusRequestTimeout => "SIP_STATUS_REQUEST_TIMEOUT",
7196 SipStatusCode::SipStatusConflict => "SIP_STATUS_CONFLICT",
7197 SipStatusCode::SipStatusGone => "SIP_STATUS_GONE",
7198 SipStatusCode::SipStatusLengthRequired => "SIP_STATUS_LENGTH_REQUIRED",
7199 SipStatusCode::SipStatusConditionalRequestFailed => "SIP_STATUS_CONDITIONAL_REQUEST_FAILED",
7200 SipStatusCode::SipStatusRequestEntityTooLarge => "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE",
7201 SipStatusCode::SipStatusRequestUriTooLong => "SIP_STATUS_REQUEST_URI_TOO_LONG",
7202 SipStatusCode::SipStatusUnsupportedMediaType => "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE",
7203 SipStatusCode::SipStatusRequestedRangeNotSatisfiable => "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE",
7204 SipStatusCode::SipStatusUnknownResourcePriority => "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY",
7205 SipStatusCode::SipStatusBadExtension => "SIP_STATUS_BAD_EXTENSION",
7206 SipStatusCode::SipStatusExtensionRequired => "SIP_STATUS_EXTENSION_REQUIRED",
7207 SipStatusCode::SipStatusSessionIntervalTooSmall => "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL",
7208 SipStatusCode::SipStatusIntervalTooBrief => "SIP_STATUS_INTERVAL_TOO_BRIEF",
7209 SipStatusCode::SipStatusBadLocationInformation => "SIP_STATUS_BAD_LOCATION_INFORMATION",
7210 SipStatusCode::SipStatusBadAlertMessage => "SIP_STATUS_BAD_ALERT_MESSAGE",
7211 SipStatusCode::SipStatusUseIdentityHeader => "SIP_STATUS_USE_IDENTITY_HEADER",
7212 SipStatusCode::SipStatusProvideReferrerIdentity => "SIP_STATUS_PROVIDE_REFERRER_IDENTITY",
7213 SipStatusCode::SipStatusFlowFailed => "SIP_STATUS_FLOW_FAILED",
7214 SipStatusCode::SipStatusAnonymityDisallowed => "SIP_STATUS_ANONYMITY_DISALLOWED",
7215 SipStatusCode::SipStatusBadIdentityInfo => "SIP_STATUS_BAD_IDENTITY_INFO",
7216 SipStatusCode::SipStatusUnsupportedCertificate => "SIP_STATUS_UNSUPPORTED_CERTIFICATE",
7217 SipStatusCode::SipStatusInvalidIdentityHeader => "SIP_STATUS_INVALID_IDENTITY_HEADER",
7218 SipStatusCode::SipStatusFirstHopLacksOutboundSupport => "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT",
7219 SipStatusCode::SipStatusMaxBreadthExceeded => "SIP_STATUS_MAX_BREADTH_EXCEEDED",
7220 SipStatusCode::SipStatusBadInfoPackage => "SIP_STATUS_BAD_INFO_PACKAGE",
7221 SipStatusCode::SipStatusConsentNeeded => "SIP_STATUS_CONSENT_NEEDED",
7222 SipStatusCode::SipStatusTemporarilyUnavailable => "SIP_STATUS_TEMPORARILY_UNAVAILABLE",
7223 SipStatusCode::SipStatusCallTransactionDoesNotExists => "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS",
7224 SipStatusCode::SipStatusLoopDetected => "SIP_STATUS_LOOP_DETECTED",
7225 SipStatusCode::SipStatusTooManyHops => "SIP_STATUS_TOO_MANY_HOPS",
7226 SipStatusCode::SipStatusAddressIncomplete => "SIP_STATUS_ADDRESS_INCOMPLETE",
7227 SipStatusCode::SipStatusAmbiguous => "SIP_STATUS_AMBIGUOUS",
7228 SipStatusCode::SipStatusBusyHere => "SIP_STATUS_BUSY_HERE",
7229 SipStatusCode::SipStatusRequestTerminated => "SIP_STATUS_REQUEST_TERMINATED",
7230 SipStatusCode::SipStatusNotAcceptableHere => "SIP_STATUS_NOT_ACCEPTABLE_HERE",
7231 SipStatusCode::SipStatusBadEvent => "SIP_STATUS_BAD_EVENT",
7232 SipStatusCode::SipStatusRequestPending => "SIP_STATUS_REQUEST_PENDING",
7233 SipStatusCode::SipStatusUndecipherable => "SIP_STATUS_UNDECIPHERABLE",
7234 SipStatusCode::SipStatusSecurityAgreementRequired => "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED",
7235 SipStatusCode::SipStatusInternalServerError => "SIP_STATUS_INTERNAL_SERVER_ERROR",
7236 SipStatusCode::SipStatusNotImplemented => "SIP_STATUS_NOT_IMPLEMENTED",
7237 SipStatusCode::SipStatusBadGateway => "SIP_STATUS_BAD_GATEWAY",
7238 SipStatusCode::SipStatusServiceUnavailable => "SIP_STATUS_SERVICE_UNAVAILABLE",
7239 SipStatusCode::SipStatusGatewayTimeout => "SIP_STATUS_GATEWAY_TIMEOUT",
7240 SipStatusCode::SipStatusVersionNotSupported => "SIP_STATUS_VERSION_NOT_SUPPORTED",
7241 SipStatusCode::SipStatusMessageTooLarge => "SIP_STATUS_MESSAGE_TOO_LARGE",
7242 SipStatusCode::SipStatusGlobalBusyEverywhere => "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE",
7243 SipStatusCode::SipStatusGlobalDecline => "SIP_STATUS_GLOBAL_DECLINE",
7244 SipStatusCode::SipStatusGlobalDoesNotExistAnywhere => "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE",
7245 SipStatusCode::SipStatusGlobalNotAcceptable => "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE",
7246 SipStatusCode::SipStatusGlobalUnwanted => "SIP_STATUS_GLOBAL_UNWANTED",
7247 SipStatusCode::SipStatusGlobalRejected => "SIP_STATUS_GLOBAL_REJECTED",
7248 }
7249 }
7250 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7252 match value {
7253 "SIP_STATUS_UNKNOWN" => Some(Self::SipStatusUnknown),
7254 "SIP_STATUS_TRYING" => Some(Self::SipStatusTrying),
7255 "SIP_STATUS_RINGING" => Some(Self::SipStatusRinging),
7256 "SIP_STATUS_CALL_IS_FORWARDED" => Some(Self::SipStatusCallIsForwarded),
7257 "SIP_STATUS_QUEUED" => Some(Self::SipStatusQueued),
7258 "SIP_STATUS_SESSION_PROGRESS" => Some(Self::SipStatusSessionProgress),
7259 "SIP_STATUS_EARLY_DIALOG_TERMINATED" => Some(Self::SipStatusEarlyDialogTerminated),
7260 "SIP_STATUS_OK" => Some(Self::SipStatusOk),
7261 "SIP_STATUS_ACCEPTED" => Some(Self::SipStatusAccepted),
7262 "SIP_STATUS_NO_NOTIFICATION" => Some(Self::SipStatusNoNotification),
7263 "SIP_STATUS_MULTIPLE_CHOICES" => Some(Self::SipStatusMultipleChoices),
7264 "SIP_STATUS_MOVED_PERMANENTLY" => Some(Self::SipStatusMovedPermanently),
7265 "SIP_STATUS_MOVED_TEMPORARILY" => Some(Self::SipStatusMovedTemporarily),
7266 "SIP_STATUS_USE_PROXY" => Some(Self::SipStatusUseProxy),
7267 "SIP_STATUS_ALTERNATIVE_SERVICE" => Some(Self::SipStatusAlternativeService),
7268 "SIP_STATUS_BAD_REQUEST" => Some(Self::SipStatusBadRequest),
7269 "SIP_STATUS_UNAUTHORIZED" => Some(Self::SipStatusUnauthorized),
7270 "SIP_STATUS_PAYMENT_REQUIRED" => Some(Self::SipStatusPaymentRequired),
7271 "SIP_STATUS_FORBIDDEN" => Some(Self::SipStatusForbidden),
7272 "SIP_STATUS_NOTFOUND" => Some(Self::SipStatusNotfound),
7273 "SIP_STATUS_METHOD_NOT_ALLOWED" => Some(Self::SipStatusMethodNotAllowed),
7274 "SIP_STATUS_NOT_ACCEPTABLE" => Some(Self::SipStatusNotAcceptable),
7275 "SIP_STATUS_PROXY_AUTH_REQUIRED" => Some(Self::SipStatusProxyAuthRequired),
7276 "SIP_STATUS_REQUEST_TIMEOUT" => Some(Self::SipStatusRequestTimeout),
7277 "SIP_STATUS_CONFLICT" => Some(Self::SipStatusConflict),
7278 "SIP_STATUS_GONE" => Some(Self::SipStatusGone),
7279 "SIP_STATUS_LENGTH_REQUIRED" => Some(Self::SipStatusLengthRequired),
7280 "SIP_STATUS_CONDITIONAL_REQUEST_FAILED" => Some(Self::SipStatusConditionalRequestFailed),
7281 "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE" => Some(Self::SipStatusRequestEntityTooLarge),
7282 "SIP_STATUS_REQUEST_URI_TOO_LONG" => Some(Self::SipStatusRequestUriTooLong),
7283 "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE" => Some(Self::SipStatusUnsupportedMediaType),
7284 "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE" => Some(Self::SipStatusRequestedRangeNotSatisfiable),
7285 "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY" => Some(Self::SipStatusUnknownResourcePriority),
7286 "SIP_STATUS_BAD_EXTENSION" => Some(Self::SipStatusBadExtension),
7287 "SIP_STATUS_EXTENSION_REQUIRED" => Some(Self::SipStatusExtensionRequired),
7288 "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL" => Some(Self::SipStatusSessionIntervalTooSmall),
7289 "SIP_STATUS_INTERVAL_TOO_BRIEF" => Some(Self::SipStatusIntervalTooBrief),
7290 "SIP_STATUS_BAD_LOCATION_INFORMATION" => Some(Self::SipStatusBadLocationInformation),
7291 "SIP_STATUS_BAD_ALERT_MESSAGE" => Some(Self::SipStatusBadAlertMessage),
7292 "SIP_STATUS_USE_IDENTITY_HEADER" => Some(Self::SipStatusUseIdentityHeader),
7293 "SIP_STATUS_PROVIDE_REFERRER_IDENTITY" => Some(Self::SipStatusProvideReferrerIdentity),
7294 "SIP_STATUS_FLOW_FAILED" => Some(Self::SipStatusFlowFailed),
7295 "SIP_STATUS_ANONYMITY_DISALLOWED" => Some(Self::SipStatusAnonymityDisallowed),
7296 "SIP_STATUS_BAD_IDENTITY_INFO" => Some(Self::SipStatusBadIdentityInfo),
7297 "SIP_STATUS_UNSUPPORTED_CERTIFICATE" => Some(Self::SipStatusUnsupportedCertificate),
7298 "SIP_STATUS_INVALID_IDENTITY_HEADER" => Some(Self::SipStatusInvalidIdentityHeader),
7299 "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT" => Some(Self::SipStatusFirstHopLacksOutboundSupport),
7300 "SIP_STATUS_MAX_BREADTH_EXCEEDED" => Some(Self::SipStatusMaxBreadthExceeded),
7301 "SIP_STATUS_BAD_INFO_PACKAGE" => Some(Self::SipStatusBadInfoPackage),
7302 "SIP_STATUS_CONSENT_NEEDED" => Some(Self::SipStatusConsentNeeded),
7303 "SIP_STATUS_TEMPORARILY_UNAVAILABLE" => Some(Self::SipStatusTemporarilyUnavailable),
7304 "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS" => Some(Self::SipStatusCallTransactionDoesNotExists),
7305 "SIP_STATUS_LOOP_DETECTED" => Some(Self::SipStatusLoopDetected),
7306 "SIP_STATUS_TOO_MANY_HOPS" => Some(Self::SipStatusTooManyHops),
7307 "SIP_STATUS_ADDRESS_INCOMPLETE" => Some(Self::SipStatusAddressIncomplete),
7308 "SIP_STATUS_AMBIGUOUS" => Some(Self::SipStatusAmbiguous),
7309 "SIP_STATUS_BUSY_HERE" => Some(Self::SipStatusBusyHere),
7310 "SIP_STATUS_REQUEST_TERMINATED" => Some(Self::SipStatusRequestTerminated),
7311 "SIP_STATUS_NOT_ACCEPTABLE_HERE" => Some(Self::SipStatusNotAcceptableHere),
7312 "SIP_STATUS_BAD_EVENT" => Some(Self::SipStatusBadEvent),
7313 "SIP_STATUS_REQUEST_PENDING" => Some(Self::SipStatusRequestPending),
7314 "SIP_STATUS_UNDECIPHERABLE" => Some(Self::SipStatusUndecipherable),
7315 "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED" => Some(Self::SipStatusSecurityAgreementRequired),
7316 "SIP_STATUS_INTERNAL_SERVER_ERROR" => Some(Self::SipStatusInternalServerError),
7317 "SIP_STATUS_NOT_IMPLEMENTED" => Some(Self::SipStatusNotImplemented),
7318 "SIP_STATUS_BAD_GATEWAY" => Some(Self::SipStatusBadGateway),
7319 "SIP_STATUS_SERVICE_UNAVAILABLE" => Some(Self::SipStatusServiceUnavailable),
7320 "SIP_STATUS_GATEWAY_TIMEOUT" => Some(Self::SipStatusGatewayTimeout),
7321 "SIP_STATUS_VERSION_NOT_SUPPORTED" => Some(Self::SipStatusVersionNotSupported),
7322 "SIP_STATUS_MESSAGE_TOO_LARGE" => Some(Self::SipStatusMessageTooLarge),
7323 "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE" => Some(Self::SipStatusGlobalBusyEverywhere),
7324 "SIP_STATUS_GLOBAL_DECLINE" => Some(Self::SipStatusGlobalDecline),
7325 "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE" => Some(Self::SipStatusGlobalDoesNotExistAnywhere),
7326 "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE" => Some(Self::SipStatusGlobalNotAcceptable),
7327 "SIP_STATUS_GLOBAL_UNWANTED" => Some(Self::SipStatusGlobalUnwanted),
7328 "SIP_STATUS_GLOBAL_REJECTED" => Some(Self::SipStatusGlobalRejected),
7329 _ => None,
7330 }
7331 }
7332}
7333#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7334#[repr(i32)]
7335pub enum SipTransport {
7336 Auto = 0,
7337 Udp = 1,
7338 Tcp = 2,
7339 Tls = 3,
7340}
7341impl SipTransport {
7342 pub fn as_str_name(&self) -> &'static str {
7347 match self {
7348 SipTransport::Auto => "SIP_TRANSPORT_AUTO",
7349 SipTransport::Udp => "SIP_TRANSPORT_UDP",
7350 SipTransport::Tcp => "SIP_TRANSPORT_TCP",
7351 SipTransport::Tls => "SIP_TRANSPORT_TLS",
7352 }
7353 }
7354 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7356 match value {
7357 "SIP_TRANSPORT_AUTO" => Some(Self::Auto),
7358 "SIP_TRANSPORT_UDP" => Some(Self::Udp),
7359 "SIP_TRANSPORT_TCP" => Some(Self::Tcp),
7360 "SIP_TRANSPORT_TLS" => Some(Self::Tls),
7361 _ => None,
7362 }
7363 }
7364}
7365#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7366#[repr(i32)]
7367pub enum SipHeaderOptions {
7368 SipNoHeaders = 0,
7370 SipXHeaders = 1,
7372 SipAllHeaders = 2,
7374}
7375impl SipHeaderOptions {
7376 pub fn as_str_name(&self) -> &'static str {
7381 match self {
7382 SipHeaderOptions::SipNoHeaders => "SIP_NO_HEADERS",
7383 SipHeaderOptions::SipXHeaders => "SIP_X_HEADERS",
7384 SipHeaderOptions::SipAllHeaders => "SIP_ALL_HEADERS",
7385 }
7386 }
7387 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7389 match value {
7390 "SIP_NO_HEADERS" => Some(Self::SipNoHeaders),
7391 "SIP_X_HEADERS" => Some(Self::SipXHeaders),
7392 "SIP_ALL_HEADERS" => Some(Self::SipAllHeaders),
7393 _ => None,
7394 }
7395 }
7396}
7397#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7398#[repr(i32)]
7399pub enum SipMediaEncryption {
7400 SipMediaEncryptDisable = 0,
7402 SipMediaEncryptAllow = 1,
7404 SipMediaEncryptRequire = 2,
7406}
7407impl SipMediaEncryption {
7408 pub fn as_str_name(&self) -> &'static str {
7413 match self {
7414 SipMediaEncryption::SipMediaEncryptDisable => "SIP_MEDIA_ENCRYPT_DISABLE",
7415 SipMediaEncryption::SipMediaEncryptAllow => "SIP_MEDIA_ENCRYPT_ALLOW",
7416 SipMediaEncryption::SipMediaEncryptRequire => "SIP_MEDIA_ENCRYPT_REQUIRE",
7417 }
7418 }
7419 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7421 match value {
7422 "SIP_MEDIA_ENCRYPT_DISABLE" => Some(Self::SipMediaEncryptDisable),
7423 "SIP_MEDIA_ENCRYPT_ALLOW" => Some(Self::SipMediaEncryptAllow),
7424 "SIP_MEDIA_ENCRYPT_REQUIRE" => Some(Self::SipMediaEncryptRequire),
7425 _ => None,
7426 }
7427 }
7428}
7429#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7430#[repr(i32)]
7431pub enum ProviderType {
7432 Unknown = 0,
7433 Internal = 1,
7435 External = 2,
7437}
7438impl ProviderType {
7439 pub fn as_str_name(&self) -> &'static str {
7444 match self {
7445 ProviderType::Unknown => "PROVIDER_TYPE_UNKNOWN",
7446 ProviderType::Internal => "PROVIDER_TYPE_INTERNAL",
7447 ProviderType::External => "PROVIDER_TYPE_EXTERNAL",
7448 }
7449 }
7450 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7452 match value {
7453 "PROVIDER_TYPE_UNKNOWN" => Some(Self::Unknown),
7454 "PROVIDER_TYPE_INTERNAL" => Some(Self::Internal),
7455 "PROVIDER_TYPE_EXTERNAL" => Some(Self::External),
7456 _ => None,
7457 }
7458 }
7459}
7460#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7461#[repr(i32)]
7462pub enum SipCallStatus {
7463 ScsCallIncoming = 0,
7465 ScsParticipantJoined = 1,
7467 ScsActive = 2,
7469 ScsDisconnected = 3,
7471 ScsError = 4,
7473}
7474impl SipCallStatus {
7475 pub fn as_str_name(&self) -> &'static str {
7480 match self {
7481 SipCallStatus::ScsCallIncoming => "SCS_CALL_INCOMING",
7482 SipCallStatus::ScsParticipantJoined => "SCS_PARTICIPANT_JOINED",
7483 SipCallStatus::ScsActive => "SCS_ACTIVE",
7484 SipCallStatus::ScsDisconnected => "SCS_DISCONNECTED",
7485 SipCallStatus::ScsError => "SCS_ERROR",
7486 }
7487 }
7488 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7490 match value {
7491 "SCS_CALL_INCOMING" => Some(Self::ScsCallIncoming),
7492 "SCS_PARTICIPANT_JOINED" => Some(Self::ScsParticipantJoined),
7493 "SCS_ACTIVE" => Some(Self::ScsActive),
7494 "SCS_DISCONNECTED" => Some(Self::ScsDisconnected),
7495 "SCS_ERROR" => Some(Self::ScsError),
7496 _ => None,
7497 }
7498 }
7499}
7500#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7501#[repr(i32)]
7502pub enum SipTransferStatus {
7503 StsTransferOngoing = 0,
7504 StsTransferFailed = 1,
7505 StsTransferSuccessful = 2,
7506}
7507impl SipTransferStatus {
7508 pub fn as_str_name(&self) -> &'static str {
7513 match self {
7514 SipTransferStatus::StsTransferOngoing => "STS_TRANSFER_ONGOING",
7515 SipTransferStatus::StsTransferFailed => "STS_TRANSFER_FAILED",
7516 SipTransferStatus::StsTransferSuccessful => "STS_TRANSFER_SUCCESSFUL",
7517 }
7518 }
7519 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7521 match value {
7522 "STS_TRANSFER_ONGOING" => Some(Self::StsTransferOngoing),
7523 "STS_TRANSFER_FAILED" => Some(Self::StsTransferFailed),
7524 "STS_TRANSFER_SUCCESSFUL" => Some(Self::StsTransferSuccessful),
7525 _ => None,
7526 }
7527 }
7528}
7529#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7530#[repr(i32)]
7531pub enum SipFeature {
7532 None = 0,
7533 KrispEnabled = 1,
7534}
7535impl SipFeature {
7536 pub fn as_str_name(&self) -> &'static str {
7541 match self {
7542 SipFeature::None => "NONE",
7543 SipFeature::KrispEnabled => "KRISP_ENABLED",
7544 }
7545 }
7546 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7548 match value {
7549 "NONE" => Some(Self::None),
7550 "KRISP_ENABLED" => Some(Self::KrispEnabled),
7551 _ => None,
7552 }
7553 }
7554}
7555#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7556#[repr(i32)]
7557pub enum SipCallDirection {
7558 ScdUnknown = 0,
7559 ScdInbound = 1,
7560 ScdOutbound = 2,
7561}
7562impl SipCallDirection {
7563 pub fn as_str_name(&self) -> &'static str {
7568 match self {
7569 SipCallDirection::ScdUnknown => "SCD_UNKNOWN",
7570 SipCallDirection::ScdInbound => "SCD_INBOUND",
7571 SipCallDirection::ScdOutbound => "SCD_OUTBOUND",
7572 }
7573 }
7574 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7576 match value {
7577 "SCD_UNKNOWN" => Some(Self::ScdUnknown),
7578 "SCD_INBOUND" => Some(Self::ScdInbound),
7579 "SCD_OUTBOUND" => Some(Self::ScdOutbound),
7580 _ => None,
7581 }
7582 }
7583}
7584#[allow(clippy::derive_partial_eq_without_eq)]
7585#[derive(Clone, PartialEq, ::prost::Message)]
7586pub struct DialWhatsAppCallRequest {
7587 #[prost(string, tag="1")]
7589 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
7590 #[prost(string, tag="2")]
7592 pub whatsapp_to_phone_number: ::prost::alloc::string::String,
7593 #[prost(string, tag="3")]
7595 pub whatsapp_api_key: ::prost::alloc::string::String,
7596 #[prost(string, tag="12")]
7598 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
7599 #[prost(string, tag="4")]
7601 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
7602 #[prost(string, tag="5")]
7604 pub room_name: ::prost::alloc::string::String,
7605 #[prost(message, repeated, tag="6")]
7607 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7608 #[prost(string, tag="7")]
7611 pub participant_identity: ::prost::alloc::string::String,
7612 #[prost(string, tag="8")]
7614 pub participant_name: ::prost::alloc::string::String,
7615 #[prost(string, tag="9")]
7617 pub participant_metadata: ::prost::alloc::string::String,
7618 #[prost(map="string, string", tag="10")]
7620 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7621 #[prost(string, tag="11")]
7623 pub destination_country: ::prost::alloc::string::String,
7624 #[prost(message, optional, tag="13")]
7626 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
7627}
7628#[allow(clippy::derive_partial_eq_without_eq)]
7629#[derive(Clone, PartialEq, ::prost::Message)]
7630pub struct DialWhatsAppCallResponse {
7631 #[prost(string, tag="1")]
7633 pub whatsapp_call_id: ::prost::alloc::string::String,
7634 #[prost(string, tag="2")]
7636 pub room_name: ::prost::alloc::string::String,
7637}
7638#[allow(clippy::derive_partial_eq_without_eq)]
7639#[derive(Clone, PartialEq, ::prost::Message)]
7640pub struct DisconnectWhatsAppCallRequest {
7641 #[prost(string, tag="1")]
7643 pub whatsapp_call_id: ::prost::alloc::string::String,
7644 #[prost(string, tag="2")]
7648 pub whatsapp_api_key: ::prost::alloc::string::String,
7649 #[prost(enumeration="disconnect_whats_app_call_request::DisconnectReason", tag="3")]
7651 pub disconnect_reason: i32,
7652}
7653pub mod disconnect_whats_app_call_request {
7655 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7656 #[repr(i32)]
7657 pub enum DisconnectReason {
7658 BusinessInitiated = 0,
7660 UserInitiated = 1,
7666 }
7667 impl DisconnectReason {
7668 pub fn as_str_name(&self) -> &'static str {
7673 match self {
7674 DisconnectReason::BusinessInitiated => "BUSINESS_INITIATED",
7675 DisconnectReason::UserInitiated => "USER_INITIATED",
7676 }
7677 }
7678 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7680 match value {
7681 "BUSINESS_INITIATED" => Some(Self::BusinessInitiated),
7682 "USER_INITIATED" => Some(Self::UserInitiated),
7683 _ => None,
7684 }
7685 }
7686 }
7687}
7688#[allow(clippy::derive_partial_eq_without_eq)]
7689#[derive(Clone, PartialEq, ::prost::Message)]
7690pub struct DisconnectWhatsAppCallResponse {
7691}
7692#[allow(clippy::derive_partial_eq_without_eq)]
7693#[derive(Clone, PartialEq, ::prost::Message)]
7694pub struct ConnectWhatsAppCallRequest {
7695 #[prost(string, tag="1")]
7697 pub whatsapp_call_id: ::prost::alloc::string::String,
7698 #[prost(message, optional, tag="2")]
7701 pub sdp: ::core::option::Option<SessionDescription>,
7702 #[prost(bool, tag="3")]
7704 pub wait_until_answered: bool,
7705}
7706#[allow(clippy::derive_partial_eq_without_eq)]
7707#[derive(Clone, PartialEq, ::prost::Message)]
7708pub struct ConnectWhatsAppCallResponse {
7709}
7710#[allow(clippy::derive_partial_eq_without_eq)]
7711#[derive(Clone, PartialEq, ::prost::Message)]
7712pub struct AcceptWhatsAppCallRequest {
7713 #[prost(string, tag="1")]
7715 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
7716 #[prost(string, tag="2")]
7718 pub whatsapp_api_key: ::prost::alloc::string::String,
7719 #[prost(string, tag="13")]
7721 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
7722 #[prost(string, tag="3")]
7724 pub whatsapp_call_id: ::prost::alloc::string::String,
7725 #[prost(string, tag="4")]
7727 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
7728 #[prost(message, optional, tag="5")]
7731 pub sdp: ::core::option::Option<SessionDescription>,
7732 #[prost(string, tag="6")]
7734 pub room_name: ::prost::alloc::string::String,
7735 #[prost(message, repeated, tag="7")]
7737 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7738 #[prost(string, tag="8")]
7741 pub participant_identity: ::prost::alloc::string::String,
7742 #[prost(string, tag="9")]
7744 pub participant_name: ::prost::alloc::string::String,
7745 #[prost(string, tag="10")]
7747 pub participant_metadata: ::prost::alloc::string::String,
7748 #[prost(map="string, string", tag="11")]
7750 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7751 #[prost(string, tag="12")]
7753 pub destination_country: ::prost::alloc::string::String,
7754 #[prost(message, optional, tag="14")]
7756 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
7757 #[prost(bool, tag="15")]
7759 pub wait_until_answered: bool,
7760}
7761#[allow(clippy::derive_partial_eq_without_eq)]
7762#[derive(Clone, PartialEq, ::prost::Message)]
7763pub struct AcceptWhatsAppCallResponse {
7764 #[prost(string, tag="1")]
7766 pub room_name: ::prost::alloc::string::String,
7767}
7768#[allow(clippy::derive_partial_eq_without_eq)]
7769#[derive(Clone, PartialEq, ::prost::Message)]
7770pub struct WhatsAppCall {
7771 #[prost(string, tag="1")]
7773 pub whatsapp_call_id: ::prost::alloc::string::String,
7774 #[prost(enumeration="WhatsAppCallDirection", tag="2")]
7776 pub direction: i32,
7777}
7778#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7779#[repr(i32)]
7780pub enum WhatsAppCallDirection {
7781 WhatsappCallDirectionInbound = 0,
7782 WhatsappCallDirectionOutbound = 2,
7783}
7784impl WhatsAppCallDirection {
7785 pub fn as_str_name(&self) -> &'static str {
7790 match self {
7791 WhatsAppCallDirection::WhatsappCallDirectionInbound => "WHATSAPP_CALL_DIRECTION_INBOUND",
7792 WhatsAppCallDirection::WhatsappCallDirectionOutbound => "WHATSAPP_CALL_DIRECTION_OUTBOUND",
7793 }
7794 }
7795 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7797 match value {
7798 "WHATSAPP_CALL_DIRECTION_INBOUND" => Some(Self::WhatsappCallDirectionInbound),
7799 "WHATSAPP_CALL_DIRECTION_OUTBOUND" => Some(Self::WhatsappCallDirectionOutbound),
7800 _ => None,
7801 }
7802 }
7803}
7804#[allow(clippy::derive_partial_eq_without_eq)]
7805#[derive(Clone, PartialEq, ::prost::Message)]
7806pub struct ConnectTwilioCallRequest {
7807 #[prost(enumeration="connect_twilio_call_request::TwilioCallDirection", tag="1")]
7809 pub twilio_call_direction: i32,
7810 #[prost(string, tag="2")]
7812 pub room_name: ::prost::alloc::string::String,
7813 #[prost(message, repeated, tag="3")]
7815 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7816 #[prost(string, tag="4")]
7819 pub participant_identity: ::prost::alloc::string::String,
7820 #[prost(string, tag="5")]
7822 pub participant_name: ::prost::alloc::string::String,
7823 #[prost(string, tag="6")]
7825 pub participant_metadata: ::prost::alloc::string::String,
7826 #[prost(map="string, string", tag="7")]
7828 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7829 #[prost(string, tag="8")]
7831 pub destination_country: ::prost::alloc::string::String,
7832}
7833pub mod connect_twilio_call_request {
7835 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7836 #[repr(i32)]
7837 pub enum TwilioCallDirection {
7838 Inbound = 0,
7840 Outbound = 1,
7842 }
7843 impl TwilioCallDirection {
7844 pub fn as_str_name(&self) -> &'static str {
7849 match self {
7850 TwilioCallDirection::Inbound => "TWILIO_CALL_DIRECTION_INBOUND",
7851 TwilioCallDirection::Outbound => "TWILIO_CALL_DIRECTION_OUTBOUND",
7852 }
7853 }
7854 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7856 match value {
7857 "TWILIO_CALL_DIRECTION_INBOUND" => Some(Self::Inbound),
7858 "TWILIO_CALL_DIRECTION_OUTBOUND" => Some(Self::Outbound),
7859 _ => None,
7860 }
7861 }
7862 }
7863}
7864#[allow(clippy::derive_partial_eq_without_eq)]
7865#[derive(Clone, PartialEq, ::prost::Message)]
7866pub struct ConnectTwilioCallResponse {
7867 #[prost(string, tag="1")]
7869 pub connect_url: ::prost::alloc::string::String,
7870}
7871#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7872#[repr(i32)]
7873pub enum ConnectorType {
7874 Unspecified = 0,
7875 WhatsApp = 1,
7876 Twilio = 2,
7877}
7878impl ConnectorType {
7879 pub fn as_str_name(&self) -> &'static str {
7884 match self {
7885 ConnectorType::Unspecified => "Unspecified",
7886 ConnectorType::WhatsApp => "WhatsApp",
7887 ConnectorType::Twilio => "Twilio",
7888 }
7889 }
7890 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7892 match value {
7893 "Unspecified" => Some(Self::Unspecified),
7894 "WhatsApp" => Some(Self::WhatsApp),
7895 "Twilio" => Some(Self::Twilio),
7896 _ => None,
7897 }
7898 }
7899}
7900#[allow(clippy::derive_partial_eq_without_eq)]
7901#[derive(Clone, PartialEq, ::prost::Message)]
7902pub struct AnalyticsVideoLayer {
7903 #[prost(int32, tag="1")]
7904 pub layer: i32,
7905 #[prost(uint32, tag="2")]
7906 pub packets: u32,
7907 #[prost(uint64, tag="3")]
7908 pub bytes: u64,
7909 #[prost(uint32, tag="4")]
7910 pub frames: u32,
7911}
7912#[allow(clippy::derive_partial_eq_without_eq)]
7913#[derive(Clone, PartialEq, ::prost::Message)]
7914pub struct AnalyticsStream {
7915 #[prost(uint32, tag="1")]
7916 pub ssrc: u32,
7917 #[prost(uint32, tag="2")]
7918 pub primary_packets: u32,
7919 #[prost(uint64, tag="3")]
7920 pub primary_bytes: u64,
7921 #[prost(uint32, tag="4")]
7922 pub retransmit_packets: u32,
7923 #[prost(uint64, tag="5")]
7924 pub retransmit_bytes: u64,
7925 #[prost(uint32, tag="6")]
7926 pub padding_packets: u32,
7927 #[prost(uint64, tag="7")]
7928 pub padding_bytes: u64,
7929 #[prost(uint32, tag="8")]
7930 pub packets_lost: u32,
7931 #[prost(uint32, tag="9")]
7932 pub frames: u32,
7933 #[prost(uint32, tag="10")]
7934 pub rtt: u32,
7935 #[prost(uint32, tag="11")]
7936 pub jitter: u32,
7937 #[prost(uint32, tag="12")]
7938 pub nacks: u32,
7939 #[prost(uint32, tag="13")]
7940 pub plis: u32,
7941 #[prost(uint32, tag="14")]
7942 pub firs: u32,
7943 #[prost(message, repeated, tag="15")]
7944 pub video_layers: ::prost::alloc::vec::Vec<AnalyticsVideoLayer>,
7945 #[prost(message, optional, tag="17")]
7946 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
7947 #[prost(message, optional, tag="18")]
7948 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
7949 #[prost(uint32, tag="19")]
7950 pub packets_out_of_order: u32,
7951}
7952#[allow(clippy::derive_partial_eq_without_eq)]
7953#[derive(Clone, PartialEq, ::prost::Message)]
7954pub struct AnalyticsStat {
7955 #[prost(string, tag="14")]
7957 pub id: ::prost::alloc::string::String,
7958 #[prost(string, tag="1")]
7959 pub analytics_key: ::prost::alloc::string::String,
7960 #[prost(enumeration="StreamType", tag="2")]
7961 pub kind: i32,
7962 #[prost(message, optional, tag="3")]
7963 pub time_stamp: ::core::option::Option<::pbjson_types::Timestamp>,
7964 #[prost(string, tag="4")]
7965 pub node: ::prost::alloc::string::String,
7966 #[prost(string, tag="5")]
7967 pub room_id: ::prost::alloc::string::String,
7968 #[prost(string, tag="6")]
7969 pub room_name: ::prost::alloc::string::String,
7970 #[prost(string, tag="7")]
7971 pub participant_id: ::prost::alloc::string::String,
7972 #[prost(string, tag="8")]
7973 pub track_id: ::prost::alloc::string::String,
7974 #[prost(float, tag="9")]
7976 pub score: f32,
7977 #[prost(message, repeated, tag="10")]
7978 pub streams: ::prost::alloc::vec::Vec<AnalyticsStream>,
7979 #[prost(string, tag="11")]
7980 pub mime: ::prost::alloc::string::String,
7981 #[prost(float, tag="12")]
7982 pub min_score: f32,
7983 #[prost(float, tag="13")]
7984 pub median_score: f32,
7985}
7986#[allow(clippy::derive_partial_eq_without_eq)]
7987#[derive(Clone, PartialEq, ::prost::Message)]
7988pub struct AnalyticsStats {
7989 #[prost(message, repeated, tag="1")]
7990 pub stats: ::prost::alloc::vec::Vec<AnalyticsStat>,
7991}
7992#[allow(clippy::derive_partial_eq_without_eq)]
7993#[derive(Clone, PartialEq, ::prost::Message)]
7994pub struct AnalyticsClientMeta {
7995 #[prost(string, tag="1")]
7996 pub region: ::prost::alloc::string::String,
7997 #[prost(string, tag="2")]
7998 pub node: ::prost::alloc::string::String,
7999 #[prost(string, tag="3")]
8000 pub client_addr: ::prost::alloc::string::String,
8001 #[prost(uint32, tag="4")]
8002 pub client_connect_time: u32,
8003 #[prost(string, tag="5")]
8005 pub connection_type: ::prost::alloc::string::String,
8006 #[prost(enumeration="ReconnectReason", tag="6")]
8007 pub reconnect_reason: i32,
8008 #[prost(string, optional, tag="7")]
8009 pub geo_hash: ::core::option::Option<::prost::alloc::string::String>,
8010 #[prost(string, optional, tag="8")]
8011 pub country: ::core::option::Option<::prost::alloc::string::String>,
8012 #[prost(uint32, optional, tag="9")]
8013 pub isp_asn: ::core::option::Option<u32>,
8014}
8015#[allow(clippy::derive_partial_eq_without_eq)]
8016#[derive(Clone, PartialEq, ::prost::Message)]
8017pub struct AnalyticsEvent {
8018 #[prost(string, tag="25")]
8020 pub id: ::prost::alloc::string::String,
8021 #[prost(enumeration="AnalyticsEventType", tag="1")]
8022 pub r#type: i32,
8023 #[prost(message, optional, tag="2")]
8024 pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
8025 #[prost(string, tag="3")]
8026 pub room_id: ::prost::alloc::string::String,
8027 #[prost(message, optional, tag="4")]
8028 pub room: ::core::option::Option<Room>,
8029 #[prost(string, tag="5")]
8030 pub participant_id: ::prost::alloc::string::String,
8031 #[prost(message, optional, tag="6")]
8032 pub participant: ::core::option::Option<ParticipantInfo>,
8033 #[prost(string, tag="7")]
8034 pub track_id: ::prost::alloc::string::String,
8035 #[prost(message, optional, tag="8")]
8036 pub track: ::core::option::Option<TrackInfo>,
8037 #[prost(string, tag="10")]
8038 pub analytics_key: ::prost::alloc::string::String,
8039 #[prost(message, optional, tag="11")]
8040 pub client_info: ::core::option::Option<ClientInfo>,
8041 #[prost(message, optional, tag="12")]
8042 pub client_meta: ::core::option::Option<AnalyticsClientMeta>,
8043 #[prost(string, tag="13")]
8044 pub egress_id: ::prost::alloc::string::String,
8045 #[prost(string, tag="19")]
8046 pub ingress_id: ::prost::alloc::string::String,
8047 #[prost(enumeration="VideoQuality", tag="14")]
8048 pub max_subscribed_video_quality: i32,
8049 #[prost(message, optional, tag="15")]
8050 pub publisher: ::core::option::Option<ParticipantInfo>,
8051 #[prost(string, tag="16")]
8052 pub mime: ::prost::alloc::string::String,
8053 #[prost(message, optional, tag="17")]
8054 pub egress: ::core::option::Option<EgressInfo>,
8055 #[prost(message, optional, tag="18")]
8056 pub ingress: ::core::option::Option<IngressInfo>,
8057 #[prost(string, tag="20")]
8058 pub error: ::prost::alloc::string::String,
8059 #[prost(message, optional, tag="21")]
8060 pub rtp_stats: ::core::option::Option<RtpStats>,
8061 #[prost(int32, tag="22")]
8062 pub video_layer: i32,
8063 #[prost(string, tag="24")]
8064 pub node_id: ::prost::alloc::string::String,
8065 #[prost(string, tag="26")]
8066 pub sip_call_id: ::prost::alloc::string::String,
8067 #[prost(message, optional, tag="27")]
8068 pub sip_call: ::core::option::Option<SipCallInfo>,
8069 #[prost(string, tag="28")]
8070 pub sip_trunk_id: ::prost::alloc::string::String,
8071 #[prost(message, optional, tag="29")]
8072 pub sip_inbound_trunk: ::core::option::Option<SipInboundTrunkInfo>,
8073 #[prost(message, optional, tag="30")]
8074 pub sip_outbound_trunk: ::core::option::Option<SipOutboundTrunkInfo>,
8075 #[prost(string, tag="31")]
8076 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
8077 #[prost(message, optional, tag="32")]
8078 pub sip_dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
8079 #[prost(message, optional, tag="36")]
8080 pub sip_transfer: ::core::option::Option<SipTransferInfo>,
8081 #[prost(message, optional, tag="33")]
8082 pub report: ::core::option::Option<ReportInfo>,
8083 #[prost(message, optional, tag="34")]
8084 pub api_call: ::core::option::Option<ApiCallInfo>,
8085 #[prost(message, optional, tag="35")]
8086 pub webhook: ::core::option::Option<WebhookInfo>,
8087}
8088#[allow(clippy::derive_partial_eq_without_eq)]
8089#[derive(Clone, PartialEq, ::prost::Message)]
8090pub struct AnalyticsEvents {
8091 #[prost(message, repeated, tag="1")]
8092 pub events: ::prost::alloc::vec::Vec<AnalyticsEvent>,
8093}
8094#[allow(clippy::derive_partial_eq_without_eq)]
8095#[derive(Clone, PartialEq, ::prost::Message)]
8096pub struct AnalyticsRoomParticipant {
8097 #[prost(string, tag="1")]
8098 pub id: ::prost::alloc::string::String,
8099 #[prost(string, tag="2")]
8100 pub identity: ::prost::alloc::string::String,
8101 #[prost(string, tag="3")]
8102 pub name: ::prost::alloc::string::String,
8103 #[prost(enumeration="participant_info::State", tag="4")]
8104 pub state: i32,
8105 #[prost(message, optional, tag="5")]
8106 pub joined_at: ::core::option::Option<::pbjson_types::Timestamp>,
8107}
8108#[allow(clippy::derive_partial_eq_without_eq)]
8109#[derive(Clone, PartialEq, ::prost::Message)]
8110pub struct AnalyticsRoom {
8111 #[prost(string, tag="1")]
8112 pub id: ::prost::alloc::string::String,
8113 #[prost(string, tag="2")]
8114 pub name: ::prost::alloc::string::String,
8115 #[prost(string, tag="5")]
8116 pub project_id: ::prost::alloc::string::String,
8117 #[prost(message, optional, tag="3")]
8118 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
8119 #[prost(message, repeated, tag="4")]
8120 pub participants: ::prost::alloc::vec::Vec<AnalyticsRoomParticipant>,
8121}
8122#[allow(clippy::derive_partial_eq_without_eq)]
8123#[derive(Clone, PartialEq, ::prost::Message)]
8124pub struct AnalyticsNodeRooms {
8125 #[prost(string, tag="1")]
8126 pub node_id: ::prost::alloc::string::String,
8127 #[prost(uint64, tag="2")]
8128 pub sequence_number: u64,
8129 #[prost(message, optional, tag="3")]
8130 pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
8131 #[prost(message, repeated, tag="4")]
8132 pub rooms: ::prost::alloc::vec::Vec<AnalyticsRoom>,
8133}
8134#[allow(clippy::derive_partial_eq_without_eq)]
8135#[derive(Clone, PartialEq, ::prost::Message)]
8136pub struct ReportInfo {
8137 #[prost(oneof="report_info::Message", tags="1")]
8138 pub message: ::core::option::Option<report_info::Message>,
8139}
8140pub mod report_info {
8142 #[allow(clippy::derive_partial_eq_without_eq)]
8143#[derive(Clone, PartialEq, ::prost::Oneof)]
8144 pub enum Message {
8145 #[prost(message, tag="1")]
8146 FeatureUsage(super::FeatureUsageInfo),
8147 }
8148}
8149#[allow(clippy::derive_partial_eq_without_eq)]
8150#[derive(Clone, PartialEq, ::prost::Message)]
8151pub struct TimeRange {
8152 #[prost(message, optional, tag="1")]
8153 pub started_at: ::core::option::Option<::pbjson_types::Timestamp>,
8154 #[prost(message, optional, tag="2")]
8155 pub ended_at: ::core::option::Option<::pbjson_types::Timestamp>,
8156}
8157#[allow(clippy::derive_partial_eq_without_eq)]
8158#[derive(Clone, PartialEq, ::prost::Message)]
8159pub struct FeatureUsageInfo {
8160 #[prost(enumeration="feature_usage_info::Feature", tag="1")]
8161 pub feature: i32,
8162 #[prost(string, tag="2")]
8163 pub project_id: ::prost::alloc::string::String,
8164 #[prost(string, tag="3")]
8165 pub room_name: ::prost::alloc::string::String,
8166 #[prost(string, tag="4")]
8167 pub room_id: ::prost::alloc::string::String,
8168 #[prost(string, tag="5")]
8169 pub participant_identity: ::prost::alloc::string::String,
8170 #[prost(string, tag="6")]
8171 pub participant_id: ::prost::alloc::string::String,
8172 #[prost(string, tag="7")]
8173 pub track_id: ::prost::alloc::string::String,
8174 #[prost(message, repeated, tag="8")]
8178 pub time_ranges: ::prost::alloc::vec::Vec<TimeRange>,
8179 #[prost(map="string, string", tag="9")]
8181 pub feature_info: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
8182}
8183pub mod feature_usage_info {
8185 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8186 #[repr(i32)]
8187 pub enum Feature {
8188 KrispNoiseCancellation = 0,
8189 KrispBackgroundVoiceCancellation = 1,
8190 AicAudioEnhancement = 2,
8191 KrispViva = 3,
8192 }
8193 impl Feature {
8194 pub fn as_str_name(&self) -> &'static str {
8199 match self {
8200 Feature::KrispNoiseCancellation => "KRISP_NOISE_CANCELLATION",
8201 Feature::KrispBackgroundVoiceCancellation => "KRISP_BACKGROUND_VOICE_CANCELLATION",
8202 Feature::AicAudioEnhancement => "AIC_AUDIO_ENHANCEMENT",
8203 Feature::KrispViva => "KRISP_VIVA",
8204 }
8205 }
8206 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8208 match value {
8209 "KRISP_NOISE_CANCELLATION" => Some(Self::KrispNoiseCancellation),
8210 "KRISP_BACKGROUND_VOICE_CANCELLATION" => Some(Self::KrispBackgroundVoiceCancellation),
8211 "AIC_AUDIO_ENHANCEMENT" => Some(Self::AicAudioEnhancement),
8212 "KRISP_VIVA" => Some(Self::KrispViva),
8213 _ => None,
8214 }
8215 }
8216 }
8217}
8218#[allow(clippy::derive_partial_eq_without_eq)]
8219#[derive(Clone, PartialEq, ::prost::Message)]
8220pub struct ApiCallRequest {
8221 #[prost(oneof="api_call_request::Message", tags="1, 2, 3, 4, 5, 6, 7, 8, 9, 10")]
8222 pub message: ::core::option::Option<api_call_request::Message>,
8223}
8224pub mod api_call_request {
8226 #[allow(clippy::derive_partial_eq_without_eq)]
8227#[derive(Clone, PartialEq, ::prost::Oneof)]
8228 pub enum Message {
8229 #[prost(message, tag="1")]
8230 CreateRoomRequest(super::CreateRoomRequest),
8231 #[prost(message, tag="2")]
8232 ListRoomsRequest(super::ListRoomsRequest),
8233 #[prost(message, tag="3")]
8234 DeleteRoomRequest(super::DeleteRoomRequest),
8235 #[prost(message, tag="4")]
8236 ListParticipantsRequest(super::ListParticipantsRequest),
8237 #[prost(message, tag="5")]
8238 RoomParticipantIdentity(super::RoomParticipantIdentity),
8239 #[prost(message, tag="6")]
8240 MuteRoomTrackRequest(super::MuteRoomTrackRequest),
8241 #[prost(message, tag="7")]
8242 UpdateParticipantRequest(super::UpdateParticipantRequest),
8243 #[prost(message, tag="8")]
8244 UpdateSubscriptionsRequest(super::UpdateSubscriptionsRequest),
8245 #[prost(message, tag="9")]
8246 SendDataRequest(super::SendDataRequest),
8247 #[prost(message, tag="10")]
8248 UpdateRoomMetadataRequest(super::UpdateRoomMetadataRequest),
8249 }
8250}
8251#[allow(clippy::derive_partial_eq_without_eq)]
8252#[derive(Clone, PartialEq, ::prost::Message)]
8253pub struct ApiCallInfo {
8254 #[prost(string, tag="1")]
8255 pub project_id: ::prost::alloc::string::String,
8256 #[prost(message, optional, tag="2")]
8257 pub request: ::core::option::Option<ApiCallRequest>,
8258 #[prost(string, tag="3")]
8259 pub service: ::prost::alloc::string::String,
8260 #[prost(string, tag="4")]
8261 pub method: ::prost::alloc::string::String,
8262 #[prost(string, tag="5")]
8263 pub node_id: ::prost::alloc::string::String,
8264 #[prost(int32, tag="6")]
8265 pub status: i32,
8266 #[prost(string, tag="7")]
8267 pub twirp_error_code: ::prost::alloc::string::String,
8268 #[prost(string, tag="8")]
8269 pub twirp_error_message: ::prost::alloc::string::String,
8270 #[prost(string, tag="9")]
8271 pub room_name: ::prost::alloc::string::String,
8272 #[prost(string, tag="10")]
8273 pub room_id: ::prost::alloc::string::String,
8274 #[prost(string, tag="11")]
8275 pub participant_identity: ::prost::alloc::string::String,
8276 #[prost(string, tag="12")]
8277 pub participant_id: ::prost::alloc::string::String,
8278 #[prost(string, tag="13")]
8279 pub track_id: ::prost::alloc::string::String,
8280 #[prost(message, optional, tag="14")]
8281 pub started_at: ::core::option::Option<::pbjson_types::Timestamp>,
8282 #[prost(int64, tag="15")]
8283 pub duration_ns: i64,
8284}
8285#[allow(clippy::derive_partial_eq_without_eq)]
8286#[derive(Clone, PartialEq, ::prost::Message)]
8287pub struct WebhookInfo {
8288 #[prost(string, tag="1")]
8289 pub event_id: ::prost::alloc::string::String,
8290 #[prost(string, tag="2")]
8291 pub event: ::prost::alloc::string::String,
8292 #[prost(string, tag="3")]
8293 pub project_id: ::prost::alloc::string::String,
8294 #[prost(string, tag="4")]
8295 pub room_name: ::prost::alloc::string::String,
8296 #[prost(string, tag="5")]
8297 pub room_id: ::prost::alloc::string::String,
8298 #[prost(string, tag="6")]
8299 pub participant_identity: ::prost::alloc::string::String,
8300 #[prost(string, tag="7")]
8301 pub participant_id: ::prost::alloc::string::String,
8302 #[prost(string, tag="8")]
8303 pub track_id: ::prost::alloc::string::String,
8304 #[prost(string, tag="9")]
8305 pub egress_id: ::prost::alloc::string::String,
8306 #[prost(string, tag="10")]
8307 pub ingress_id: ::prost::alloc::string::String,
8308 #[prost(message, optional, tag="11")]
8309 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
8310 #[prost(message, optional, tag="12")]
8311 pub queued_at: ::core::option::Option<::pbjson_types::Timestamp>,
8312 #[prost(int64, tag="13")]
8313 pub queue_duration_ns: i64,
8314 #[prost(message, optional, tag="14")]
8315 pub sent_at: ::core::option::Option<::pbjson_types::Timestamp>,
8316 #[prost(int64, tag="15")]
8317 pub send_duration_ns: i64,
8318 #[prost(string, tag="16")]
8319 pub url: ::prost::alloc::string::String,
8320 #[prost(int32, tag="17")]
8321 pub num_dropped: i32,
8322 #[prost(bool, tag="18")]
8323 pub is_dropped: bool,
8324 #[prost(string, tag="19")]
8325 pub service_status: ::prost::alloc::string::String,
8326 #[prost(int32, tag="20")]
8327 pub service_error_code: i32,
8328 #[prost(string, tag="21")]
8329 pub service_error: ::prost::alloc::string::String,
8330 #[prost(string, tag="22")]
8331 pub send_error: ::prost::alloc::string::String,
8332}
8333#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8334#[repr(i32)]
8335pub enum StreamType {
8336 Upstream = 0,
8337 Downstream = 1,
8338}
8339impl StreamType {
8340 pub fn as_str_name(&self) -> &'static str {
8345 match self {
8346 StreamType::Upstream => "UPSTREAM",
8347 StreamType::Downstream => "DOWNSTREAM",
8348 }
8349 }
8350 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8352 match value {
8353 "UPSTREAM" => Some(Self::Upstream),
8354 "DOWNSTREAM" => Some(Self::Downstream),
8355 _ => None,
8356 }
8357 }
8358}
8359#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8360#[repr(i32)]
8361pub enum AnalyticsEventType {
8362 RoomCreated = 0,
8363 RoomEnded = 1,
8364 ParticipantJoined = 2,
8365 ParticipantLeft = 3,
8366 ParticipantConnectionAborted = 45,
8367 TrackPublished = 4,
8368 TrackPublishRequested = 20,
8369 TrackUnpublished = 5,
8370 TrackSubscribed = 6,
8371 TrackSubscribeRequested = 21,
8372 TrackSubscribeFailed = 25,
8373 TrackUnsubscribed = 7,
8374 TrackPublishedUpdate = 10,
8375 TrackMuted = 23,
8376 TrackUnmuted = 24,
8377 TrackPublishStats = 26,
8378 TrackSubscribeStats = 27,
8379 ParticipantActive = 11,
8380 ParticipantResumed = 22,
8381 EgressStarted = 12,
8382 EgressEnded = 13,
8383 EgressUpdated = 28,
8384 TrackMaxSubscribedVideoQuality = 14,
8385 Reconnected = 15,
8386 IngressCreated = 18,
8387 IngressDeleted = 19,
8388 IngressStarted = 16,
8389 IngressEnded = 17,
8390 IngressUpdated = 29,
8391 SipInboundTrunkCreated = 30,
8392 SipInboundTrunkDeleted = 31,
8393 SipOutboundTrunkCreated = 32,
8394 SipOutboundTrunkDeleted = 33,
8395 SipDispatchRuleCreated = 34,
8396 SipDispatchRuleDeleted = 35,
8397 SipParticipantCreated = 36,
8398 SipCallIncoming = 37,
8399 SipCallStarted = 38,
8400 SipCallEnded = 39,
8401 SipTransferRequested = 43,
8402 SipTransferComplete = 44,
8403 SipCallUpdate = 46,
8404 Report = 40,
8405 ApiCall = 41,
8406 Webhook = 42,
8407}
8408impl AnalyticsEventType {
8409 pub fn as_str_name(&self) -> &'static str {
8414 match self {
8415 AnalyticsEventType::RoomCreated => "ROOM_CREATED",
8416 AnalyticsEventType::RoomEnded => "ROOM_ENDED",
8417 AnalyticsEventType::ParticipantJoined => "PARTICIPANT_JOINED",
8418 AnalyticsEventType::ParticipantLeft => "PARTICIPANT_LEFT",
8419 AnalyticsEventType::ParticipantConnectionAborted => "PARTICIPANT_CONNECTION_ABORTED",
8420 AnalyticsEventType::TrackPublished => "TRACK_PUBLISHED",
8421 AnalyticsEventType::TrackPublishRequested => "TRACK_PUBLISH_REQUESTED",
8422 AnalyticsEventType::TrackUnpublished => "TRACK_UNPUBLISHED",
8423 AnalyticsEventType::TrackSubscribed => "TRACK_SUBSCRIBED",
8424 AnalyticsEventType::TrackSubscribeRequested => "TRACK_SUBSCRIBE_REQUESTED",
8425 AnalyticsEventType::TrackSubscribeFailed => "TRACK_SUBSCRIBE_FAILED",
8426 AnalyticsEventType::TrackUnsubscribed => "TRACK_UNSUBSCRIBED",
8427 AnalyticsEventType::TrackPublishedUpdate => "TRACK_PUBLISHED_UPDATE",
8428 AnalyticsEventType::TrackMuted => "TRACK_MUTED",
8429 AnalyticsEventType::TrackUnmuted => "TRACK_UNMUTED",
8430 AnalyticsEventType::TrackPublishStats => "TRACK_PUBLISH_STATS",
8431 AnalyticsEventType::TrackSubscribeStats => "TRACK_SUBSCRIBE_STATS",
8432 AnalyticsEventType::ParticipantActive => "PARTICIPANT_ACTIVE",
8433 AnalyticsEventType::ParticipantResumed => "PARTICIPANT_RESUMED",
8434 AnalyticsEventType::EgressStarted => "EGRESS_STARTED",
8435 AnalyticsEventType::EgressEnded => "EGRESS_ENDED",
8436 AnalyticsEventType::EgressUpdated => "EGRESS_UPDATED",
8437 AnalyticsEventType::TrackMaxSubscribedVideoQuality => "TRACK_MAX_SUBSCRIBED_VIDEO_QUALITY",
8438 AnalyticsEventType::Reconnected => "RECONNECTED",
8439 AnalyticsEventType::IngressCreated => "INGRESS_CREATED",
8440 AnalyticsEventType::IngressDeleted => "INGRESS_DELETED",
8441 AnalyticsEventType::IngressStarted => "INGRESS_STARTED",
8442 AnalyticsEventType::IngressEnded => "INGRESS_ENDED",
8443 AnalyticsEventType::IngressUpdated => "INGRESS_UPDATED",
8444 AnalyticsEventType::SipInboundTrunkCreated => "SIP_INBOUND_TRUNK_CREATED",
8445 AnalyticsEventType::SipInboundTrunkDeleted => "SIP_INBOUND_TRUNK_DELETED",
8446 AnalyticsEventType::SipOutboundTrunkCreated => "SIP_OUTBOUND_TRUNK_CREATED",
8447 AnalyticsEventType::SipOutboundTrunkDeleted => "SIP_OUTBOUND_TRUNK_DELETED",
8448 AnalyticsEventType::SipDispatchRuleCreated => "SIP_DISPATCH_RULE_CREATED",
8449 AnalyticsEventType::SipDispatchRuleDeleted => "SIP_DISPATCH_RULE_DELETED",
8450 AnalyticsEventType::SipParticipantCreated => "SIP_PARTICIPANT_CREATED",
8451 AnalyticsEventType::SipCallIncoming => "SIP_CALL_INCOMING",
8452 AnalyticsEventType::SipCallStarted => "SIP_CALL_STARTED",
8453 AnalyticsEventType::SipCallEnded => "SIP_CALL_ENDED",
8454 AnalyticsEventType::SipTransferRequested => "SIP_TRANSFER_REQUESTED",
8455 AnalyticsEventType::SipTransferComplete => "SIP_TRANSFER_COMPLETE",
8456 AnalyticsEventType::SipCallUpdate => "SIP_CALL_UPDATE",
8457 AnalyticsEventType::Report => "REPORT",
8458 AnalyticsEventType::ApiCall => "API_CALL",
8459 AnalyticsEventType::Webhook => "WEBHOOK",
8460 }
8461 }
8462 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8464 match value {
8465 "ROOM_CREATED" => Some(Self::RoomCreated),
8466 "ROOM_ENDED" => Some(Self::RoomEnded),
8467 "PARTICIPANT_JOINED" => Some(Self::ParticipantJoined),
8468 "PARTICIPANT_LEFT" => Some(Self::ParticipantLeft),
8469 "PARTICIPANT_CONNECTION_ABORTED" => Some(Self::ParticipantConnectionAborted),
8470 "TRACK_PUBLISHED" => Some(Self::TrackPublished),
8471 "TRACK_PUBLISH_REQUESTED" => Some(Self::TrackPublishRequested),
8472 "TRACK_UNPUBLISHED" => Some(Self::TrackUnpublished),
8473 "TRACK_SUBSCRIBED" => Some(Self::TrackSubscribed),
8474 "TRACK_SUBSCRIBE_REQUESTED" => Some(Self::TrackSubscribeRequested),
8475 "TRACK_SUBSCRIBE_FAILED" => Some(Self::TrackSubscribeFailed),
8476 "TRACK_UNSUBSCRIBED" => Some(Self::TrackUnsubscribed),
8477 "TRACK_PUBLISHED_UPDATE" => Some(Self::TrackPublishedUpdate),
8478 "TRACK_MUTED" => Some(Self::TrackMuted),
8479 "TRACK_UNMUTED" => Some(Self::TrackUnmuted),
8480 "TRACK_PUBLISH_STATS" => Some(Self::TrackPublishStats),
8481 "TRACK_SUBSCRIBE_STATS" => Some(Self::TrackSubscribeStats),
8482 "PARTICIPANT_ACTIVE" => Some(Self::ParticipantActive),
8483 "PARTICIPANT_RESUMED" => Some(Self::ParticipantResumed),
8484 "EGRESS_STARTED" => Some(Self::EgressStarted),
8485 "EGRESS_ENDED" => Some(Self::EgressEnded),
8486 "EGRESS_UPDATED" => Some(Self::EgressUpdated),
8487 "TRACK_MAX_SUBSCRIBED_VIDEO_QUALITY" => Some(Self::TrackMaxSubscribedVideoQuality),
8488 "RECONNECTED" => Some(Self::Reconnected),
8489 "INGRESS_CREATED" => Some(Self::IngressCreated),
8490 "INGRESS_DELETED" => Some(Self::IngressDeleted),
8491 "INGRESS_STARTED" => Some(Self::IngressStarted),
8492 "INGRESS_ENDED" => Some(Self::IngressEnded),
8493 "INGRESS_UPDATED" => Some(Self::IngressUpdated),
8494 "SIP_INBOUND_TRUNK_CREATED" => Some(Self::SipInboundTrunkCreated),
8495 "SIP_INBOUND_TRUNK_DELETED" => Some(Self::SipInboundTrunkDeleted),
8496 "SIP_OUTBOUND_TRUNK_CREATED" => Some(Self::SipOutboundTrunkCreated),
8497 "SIP_OUTBOUND_TRUNK_DELETED" => Some(Self::SipOutboundTrunkDeleted),
8498 "SIP_DISPATCH_RULE_CREATED" => Some(Self::SipDispatchRuleCreated),
8499 "SIP_DISPATCH_RULE_DELETED" => Some(Self::SipDispatchRuleDeleted),
8500 "SIP_PARTICIPANT_CREATED" => Some(Self::SipParticipantCreated),
8501 "SIP_CALL_INCOMING" => Some(Self::SipCallIncoming),
8502 "SIP_CALL_STARTED" => Some(Self::SipCallStarted),
8503 "SIP_CALL_ENDED" => Some(Self::SipCallEnded),
8504 "SIP_TRANSFER_REQUESTED" => Some(Self::SipTransferRequested),
8505 "SIP_TRANSFER_COMPLETE" => Some(Self::SipTransferComplete),
8506 "SIP_CALL_UPDATE" => Some(Self::SipCallUpdate),
8507 "REPORT" => Some(Self::Report),
8508 "API_CALL" => Some(Self::ApiCall),
8509 "WEBHOOK" => Some(Self::Webhook),
8510 _ => None,
8511 }
8512 }
8513}
8514include!("livekit.serde.rs");
8515