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 StopEgressRequest {
2862 #[prost(string, tag="1")]
2863 pub egress_id: ::prost::alloc::string::String,
2864}
2865#[allow(clippy::derive_partial_eq_without_eq)]
2868#[derive(Clone, PartialEq, ::prost::Message)]
2869pub struct EgressInfo {
2870 #[prost(string, tag="1")]
2871 pub egress_id: ::prost::alloc::string::String,
2872 #[prost(string, tag="2")]
2873 pub room_id: ::prost::alloc::string::String,
2874 #[prost(string, tag="13")]
2875 pub room_name: ::prost::alloc::string::String,
2876 #[prost(enumeration="EgressSourceType", tag="26")]
2877 pub source_type: i32,
2878 #[prost(enumeration="EgressStatus", tag="3")]
2879 pub status: i32,
2880 #[prost(int64, tag="10")]
2881 pub started_at: i64,
2882 #[prost(int64, tag="11")]
2883 pub ended_at: i64,
2884 #[prost(int64, tag="18")]
2885 pub updated_at: i64,
2886 #[prost(message, repeated, tag="15")]
2887 pub stream_results: ::prost::alloc::vec::Vec<StreamInfo>,
2888 #[prost(message, repeated, tag="16")]
2889 pub file_results: ::prost::alloc::vec::Vec<FileInfo>,
2890 #[prost(message, repeated, tag="17")]
2891 pub segment_results: ::prost::alloc::vec::Vec<SegmentsInfo>,
2892 #[prost(message, repeated, tag="20")]
2893 pub image_results: ::prost::alloc::vec::Vec<ImagesInfo>,
2894 #[prost(string, tag="9")]
2895 pub error: ::prost::alloc::string::String,
2896 #[prost(int32, tag="22")]
2897 pub error_code: i32,
2898 #[prost(string, tag="21")]
2899 pub details: ::prost::alloc::string::String,
2900 #[prost(string, tag="23")]
2901 pub manifest_location: ::prost::alloc::string::String,
2902 #[prost(bool, tag="25")]
2903 pub backup_storage_used: bool,
2904 #[prost(int32, tag="27")]
2905 pub retry_count: i32,
2906 #[prost(oneof="egress_info::Request", tags="29, 30, 4, 14, 19, 5, 6")]
2907 pub request: ::core::option::Option<egress_info::Request>,
2908 #[prost(oneof="egress_info::Result", tags="7, 8, 12")]
2912 pub result: ::core::option::Option<egress_info::Result>,
2913}
2914pub mod egress_info {
2916 #[allow(clippy::derive_partial_eq_without_eq)]
2917#[derive(Clone, PartialEq, ::prost::Oneof)]
2918 pub enum Request {
2919 #[prost(message, tag="29")]
2920 Egress(super::StartEgressRequest),
2921 #[prost(message, tag="30")]
2922 Replay(super::ExportReplayRequest),
2923 #[prost(message, tag="4")]
2925 RoomComposite(super::RoomCompositeEgressRequest),
2926 #[prost(message, tag="14")]
2927 Web(super::WebEgressRequest),
2928 #[prost(message, tag="19")]
2929 Participant(super::ParticipantEgressRequest),
2930 #[prost(message, tag="5")]
2931 TrackComposite(super::TrackCompositeEgressRequest),
2932 #[prost(message, tag="6")]
2933 Track(super::TrackEgressRequest),
2934 }
2935 #[allow(clippy::derive_partial_eq_without_eq)]
2939#[derive(Clone, PartialEq, ::prost::Oneof)]
2940 pub enum Result {
2941 #[prost(message, tag="7")]
2942 Stream(super::StreamInfoList),
2943 #[prost(message, tag="8")]
2944 File(super::FileInfo),
2945 #[prost(message, tag="12")]
2946 Segments(super::SegmentsInfo),
2947 }
2948}
2949#[allow(clippy::derive_partial_eq_without_eq)]
2950#[derive(Clone, PartialEq, ::prost::Message)]
2951pub struct StreamInfo {
2952 #[prost(string, tag="1")]
2953 pub url: ::prost::alloc::string::String,
2954 #[prost(int64, tag="2")]
2955 pub started_at: i64,
2956 #[prost(int64, tag="3")]
2957 pub ended_at: i64,
2958 #[prost(int64, tag="4")]
2959 pub duration: i64,
2960 #[prost(enumeration="stream_info::Status", tag="5")]
2961 pub status: i32,
2962 #[prost(string, tag="6")]
2963 pub error: ::prost::alloc::string::String,
2964 #[prost(int64, tag="7")]
2965 pub last_retry_at: i64,
2966 #[prost(uint32, tag="8")]
2967 pub retries: u32,
2968}
2969pub mod stream_info {
2971 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2972 #[repr(i32)]
2973 pub enum Status {
2974 Active = 0,
2975 Finished = 1,
2976 Failed = 2,
2977 }
2978 impl Status {
2979 pub fn as_str_name(&self) -> &'static str {
2984 match self {
2985 Status::Active => "ACTIVE",
2986 Status::Finished => "FINISHED",
2987 Status::Failed => "FAILED",
2988 }
2989 }
2990 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2992 match value {
2993 "ACTIVE" => Some(Self::Active),
2994 "FINISHED" => Some(Self::Finished),
2995 "FAILED" => Some(Self::Failed),
2996 _ => None,
2997 }
2998 }
2999 }
3000}
3001#[allow(clippy::derive_partial_eq_without_eq)]
3002#[derive(Clone, PartialEq, ::prost::Message)]
3003pub struct FileInfo {
3004 #[prost(string, tag="1")]
3005 pub filename: ::prost::alloc::string::String,
3006 #[prost(int64, tag="2")]
3007 pub started_at: i64,
3008 #[prost(int64, tag="3")]
3009 pub ended_at: i64,
3010 #[prost(int64, tag="6")]
3011 pub duration: i64,
3012 #[prost(int64, tag="4")]
3013 pub size: i64,
3014 #[prost(string, tag="5")]
3015 pub location: ::prost::alloc::string::String,
3016}
3017#[allow(clippy::derive_partial_eq_without_eq)]
3018#[derive(Clone, PartialEq, ::prost::Message)]
3019pub struct SegmentsInfo {
3020 #[prost(string, tag="1")]
3021 pub playlist_name: ::prost::alloc::string::String,
3022 #[prost(string, tag="8")]
3023 pub live_playlist_name: ::prost::alloc::string::String,
3024 #[prost(int64, tag="2")]
3025 pub duration: i64,
3026 #[prost(int64, tag="3")]
3027 pub size: i64,
3028 #[prost(string, tag="4")]
3029 pub playlist_location: ::prost::alloc::string::String,
3030 #[prost(string, tag="9")]
3031 pub live_playlist_location: ::prost::alloc::string::String,
3032 #[prost(int64, tag="5")]
3033 pub segment_count: i64,
3034 #[prost(int64, tag="6")]
3035 pub started_at: i64,
3036 #[prost(int64, tag="7")]
3037 pub ended_at: i64,
3038}
3039#[allow(clippy::derive_partial_eq_without_eq)]
3040#[derive(Clone, PartialEq, ::prost::Message)]
3041pub struct ImagesInfo {
3042 #[prost(string, tag="4")]
3043 pub filename_prefix: ::prost::alloc::string::String,
3044 #[prost(int64, tag="1")]
3045 pub image_count: i64,
3046 #[prost(int64, tag="2")]
3047 pub started_at: i64,
3048 #[prost(int64, tag="3")]
3049 pub ended_at: i64,
3050}
3051#[allow(clippy::derive_partial_eq_without_eq)]
3054#[derive(Clone, PartialEq, ::prost::Message)]
3055pub struct AutoParticipantEgress {
3056 #[prost(message, repeated, tag="3")]
3057 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3058 #[prost(message, repeated, tag="4")]
3059 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3060 #[prost(oneof="auto_participant_egress::Options", tags="1, 2")]
3061 pub options: ::core::option::Option<auto_participant_egress::Options>,
3062}
3063pub mod auto_participant_egress {
3065 #[allow(clippy::derive_partial_eq_without_eq)]
3066#[derive(Clone, PartialEq, ::prost::Oneof)]
3067 pub enum Options {
3068 #[prost(enumeration="super::EncodingOptionsPreset", tag="1")]
3070 Preset(i32),
3071 #[prost(message, tag="2")]
3073 Advanced(super::EncodingOptions),
3074 }
3075}
3076#[allow(clippy::derive_partial_eq_without_eq)]
3077#[derive(Clone, PartialEq, ::prost::Message)]
3078pub struct AutoTrackEgress {
3079 #[prost(string, tag="1")]
3081 pub filepath: ::prost::alloc::string::String,
3082 #[prost(bool, tag="5")]
3084 pub disable_manifest: bool,
3085 #[prost(oneof="auto_track_egress::Output", tags="2, 3, 4, 6")]
3086 pub output: ::core::option::Option<auto_track_egress::Output>,
3087}
3088pub mod auto_track_egress {
3090 #[allow(clippy::derive_partial_eq_without_eq)]
3091#[derive(Clone, PartialEq, ::prost::Oneof)]
3092 pub enum Output {
3093 #[prost(message, tag="2")]
3094 S3(super::S3Upload),
3095 #[prost(message, tag="3")]
3096 Gcp(super::GcpUpload),
3097 #[prost(message, tag="4")]
3098 Azure(super::AzureBlobUpload),
3099 #[prost(message, tag="6")]
3100 AliOss(super::AliOssUpload),
3101 }
3102}
3103#[allow(clippy::derive_partial_eq_without_eq)]
3106#[derive(Clone, PartialEq, ::prost::Message)]
3107pub struct ExportReplayRequest {
3108 #[prost(string, tag="1")]
3109 pub replay_id: ::prost::alloc::string::String,
3110 #[prost(int64, tag="2")]
3111 pub start_offset_ms: i64,
3112 #[prost(int64, tag="3")]
3113 pub end_offset_ms: i64,
3114 #[prost(message, repeated, tag="9")]
3115 pub outputs: ::prost::alloc::vec::Vec<Output>,
3116 #[prost(message, optional, tag="10")]
3117 pub storage: ::core::option::Option<StorageConfig>,
3118 #[prost(message, repeated, tag="11")]
3119 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3120 #[prost(oneof="export_replay_request::Source", tags="4, 5, 6")]
3121 pub source: ::core::option::Option<export_replay_request::Source>,
3122 #[prost(oneof="export_replay_request::Encoding", tags="7, 8")]
3123 pub encoding: ::core::option::Option<export_replay_request::Encoding>,
3124}
3125pub mod export_replay_request {
3127 #[allow(clippy::derive_partial_eq_without_eq)]
3128#[derive(Clone, PartialEq, ::prost::Oneof)]
3129 pub enum Source {
3130 #[prost(message, tag="4")]
3131 Template(super::TemplateSource),
3132 #[prost(message, tag="5")]
3133 Web(super::WebSource),
3134 #[prost(message, tag="6")]
3135 Media(super::MediaSource),
3136 }
3137 #[allow(clippy::derive_partial_eq_without_eq)]
3138#[derive(Clone, PartialEq, ::prost::Oneof)]
3139 pub enum Encoding {
3140 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
3141 Preset(i32),
3142 #[prost(message, tag="8")]
3143 Advanced(super::EncodingOptions),
3144 }
3145}
3146#[allow(clippy::derive_partial_eq_without_eq)]
3149#[derive(Clone, PartialEq, ::prost::Message)]
3150pub struct RoomCompositeEgressRequest {
3151 #[prost(string, tag="1")]
3152 pub room_name: ::prost::alloc::string::String,
3153 #[prost(string, tag="2")]
3154 pub layout: ::prost::alloc::string::String,
3155 #[prost(bool, tag="3")]
3156 pub audio_only: bool,
3157 #[prost(enumeration="AudioMixing", tag="15")]
3158 pub audio_mixing: i32,
3159 #[prost(bool, tag="4")]
3160 pub video_only: bool,
3161 #[prost(string, tag="5")]
3162 pub custom_base_url: ::prost::alloc::string::String,
3163 #[prost(message, repeated, tag="11")]
3164 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3165 #[prost(message, repeated, tag="12")]
3166 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3167 #[prost(message, repeated, tag="13")]
3168 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3169 #[prost(message, repeated, tag="14")]
3170 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3171 #[prost(message, repeated, tag="16")]
3172 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3173 #[prost(oneof="room_composite_egress_request::Output", tags="6, 7, 10")]
3174 pub output: ::core::option::Option<room_composite_egress_request::Output>,
3175 #[prost(oneof="room_composite_egress_request::Options", tags="8, 9")]
3176 pub options: ::core::option::Option<room_composite_egress_request::Options>,
3177}
3178pub mod room_composite_egress_request {
3180 #[allow(clippy::derive_partial_eq_without_eq)]
3181#[derive(Clone, PartialEq, ::prost::Oneof)]
3182 pub enum Output {
3183 #[prost(message, tag="6")]
3184 File(super::EncodedFileOutput),
3185 #[prost(message, tag="7")]
3186 Stream(super::StreamOutput),
3187 #[prost(message, tag="10")]
3188 Segments(super::SegmentedFileOutput),
3189 }
3190 #[allow(clippy::derive_partial_eq_without_eq)]
3191#[derive(Clone, PartialEq, ::prost::Oneof)]
3192 pub enum Options {
3193 #[prost(enumeration="super::EncodingOptionsPreset", tag="8")]
3194 Preset(i32),
3195 #[prost(message, tag="9")]
3196 Advanced(super::EncodingOptions),
3197 }
3198}
3199#[allow(clippy::derive_partial_eq_without_eq)]
3200#[derive(Clone, PartialEq, ::prost::Message)]
3201pub struct WebEgressRequest {
3202 #[prost(string, tag="1")]
3203 pub url: ::prost::alloc::string::String,
3204 #[prost(bool, tag="2")]
3205 pub audio_only: bool,
3206 #[prost(bool, tag="3")]
3207 pub video_only: bool,
3208 #[prost(bool, tag="12")]
3209 pub await_start_signal: bool,
3210 #[prost(message, repeated, tag="9")]
3211 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3212 #[prost(message, repeated, tag="10")]
3213 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3214 #[prost(message, repeated, tag="11")]
3215 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3216 #[prost(message, repeated, tag="13")]
3217 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3218 #[prost(message, repeated, tag="14")]
3219 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3220 #[prost(oneof="web_egress_request::Output", tags="4, 5, 6")]
3221 pub output: ::core::option::Option<web_egress_request::Output>,
3222 #[prost(oneof="web_egress_request::Options", tags="7, 8")]
3223 pub options: ::core::option::Option<web_egress_request::Options>,
3224}
3225pub mod web_egress_request {
3227 #[allow(clippy::derive_partial_eq_without_eq)]
3228#[derive(Clone, PartialEq, ::prost::Oneof)]
3229 pub enum Output {
3230 #[prost(message, tag="4")]
3231 File(super::EncodedFileOutput),
3232 #[prost(message, tag="5")]
3233 Stream(super::StreamOutput),
3234 #[prost(message, tag="6")]
3235 Segments(super::SegmentedFileOutput),
3236 }
3237 #[allow(clippy::derive_partial_eq_without_eq)]
3238#[derive(Clone, PartialEq, ::prost::Oneof)]
3239 pub enum Options {
3240 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
3241 Preset(i32),
3242 #[prost(message, tag="8")]
3243 Advanced(super::EncodingOptions),
3244 }
3245}
3246#[allow(clippy::derive_partial_eq_without_eq)]
3247#[derive(Clone, PartialEq, ::prost::Message)]
3248pub struct ParticipantEgressRequest {
3249 #[prost(string, tag="1")]
3250 pub room_name: ::prost::alloc::string::String,
3251 #[prost(string, tag="2")]
3252 pub identity: ::prost::alloc::string::String,
3253 #[prost(bool, tag="3")]
3254 pub screen_share: bool,
3255 #[prost(message, repeated, tag="6")]
3256 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3257 #[prost(message, repeated, tag="7")]
3258 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3259 #[prost(message, repeated, tag="8")]
3260 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3261 #[prost(message, repeated, tag="9")]
3262 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3263 #[prost(message, repeated, tag="10")]
3264 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3265 #[prost(oneof="participant_egress_request::Options", tags="4, 5")]
3266 pub options: ::core::option::Option<participant_egress_request::Options>,
3267}
3268pub mod participant_egress_request {
3270 #[allow(clippy::derive_partial_eq_without_eq)]
3271#[derive(Clone, PartialEq, ::prost::Oneof)]
3272 pub enum Options {
3273 #[prost(enumeration="super::EncodingOptionsPreset", tag="4")]
3274 Preset(i32),
3275 #[prost(message, tag="5")]
3276 Advanced(super::EncodingOptions),
3277 }
3278}
3279#[allow(clippy::derive_partial_eq_without_eq)]
3280#[derive(Clone, PartialEq, ::prost::Message)]
3281pub struct TrackCompositeEgressRequest {
3282 #[prost(string, tag="1")]
3283 pub room_name: ::prost::alloc::string::String,
3284 #[prost(string, tag="2")]
3285 pub audio_track_id: ::prost::alloc::string::String,
3286 #[prost(string, tag="3")]
3287 pub video_track_id: ::prost::alloc::string::String,
3288 #[prost(message, repeated, tag="11")]
3289 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3290 #[prost(message, repeated, tag="12")]
3291 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3292 #[prost(message, repeated, tag="13")]
3293 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3294 #[prost(message, repeated, tag="14")]
3295 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3296 #[prost(message, repeated, tag="15")]
3297 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3298 #[prost(oneof="track_composite_egress_request::Output", tags="4, 5, 8")]
3299 pub output: ::core::option::Option<track_composite_egress_request::Output>,
3300 #[prost(oneof="track_composite_egress_request::Options", tags="6, 7")]
3301 pub options: ::core::option::Option<track_composite_egress_request::Options>,
3302}
3303pub mod track_composite_egress_request {
3305 #[allow(clippy::derive_partial_eq_without_eq)]
3306#[derive(Clone, PartialEq, ::prost::Oneof)]
3307 pub enum Output {
3308 #[prost(message, tag="4")]
3309 File(super::EncodedFileOutput),
3310 #[prost(message, tag="5")]
3311 Stream(super::StreamOutput),
3312 #[prost(message, tag="8")]
3313 Segments(super::SegmentedFileOutput),
3314 }
3315 #[allow(clippy::derive_partial_eq_without_eq)]
3316#[derive(Clone, PartialEq, ::prost::Oneof)]
3317 pub enum Options {
3318 #[prost(enumeration="super::EncodingOptionsPreset", tag="6")]
3319 Preset(i32),
3320 #[prost(message, tag="7")]
3321 Advanced(super::EncodingOptions),
3322 }
3323}
3324#[allow(clippy::derive_partial_eq_without_eq)]
3325#[derive(Clone, PartialEq, ::prost::Message)]
3326pub struct TrackEgressRequest {
3327 #[prost(string, tag="1")]
3328 pub room_name: ::prost::alloc::string::String,
3329 #[prost(string, tag="2")]
3330 pub track_id: ::prost::alloc::string::String,
3331 #[prost(message, repeated, tag="5")]
3332 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3333 #[prost(oneof="track_egress_request::Output", tags="3, 4")]
3334 pub output: ::core::option::Option<track_egress_request::Output>,
3335}
3336pub mod track_egress_request {
3338 #[allow(clippy::derive_partial_eq_without_eq)]
3339#[derive(Clone, PartialEq, ::prost::Oneof)]
3340 pub enum Output {
3341 #[prost(message, tag="3")]
3342 File(super::DirectFileOutput),
3343 #[prost(string, tag="4")]
3344 WebsocketUrl(::prost::alloc::string::String),
3345 }
3346}
3347#[allow(clippy::derive_partial_eq_without_eq)]
3348#[derive(Clone, PartialEq, ::prost::Message)]
3349pub struct DirectFileOutput {
3350 #[prost(string, tag="1")]
3351 pub filepath: ::prost::alloc::string::String,
3352 #[prost(bool, tag="5")]
3353 pub disable_manifest: bool,
3354 #[prost(oneof="direct_file_output::Output", tags="2, 3, 4, 6")]
3355 pub output: ::core::option::Option<direct_file_output::Output>,
3356}
3357pub mod direct_file_output {
3359 #[allow(clippy::derive_partial_eq_without_eq)]
3360#[derive(Clone, PartialEq, ::prost::Oneof)]
3361 pub enum Output {
3362 #[prost(message, tag="2")]
3363 S3(super::S3Upload),
3364 #[prost(message, tag="3")]
3365 Gcp(super::GcpUpload),
3366 #[prost(message, tag="4")]
3367 Azure(super::AzureBlobUpload),
3368 #[prost(message, tag="6")]
3369 AliOss(super::AliOssUpload),
3370 }
3371}
3372#[allow(clippy::derive_partial_eq_without_eq)]
3373#[derive(Clone, PartialEq, ::prost::Message)]
3374pub struct EncodedFileOutput {
3375 #[prost(enumeration="EncodedFileType", tag="1")]
3376 pub file_type: i32,
3377 #[prost(string, tag="2")]
3378 pub filepath: ::prost::alloc::string::String,
3379 #[prost(bool, tag="6")]
3380 pub disable_manifest: bool,
3381 #[prost(oneof="encoded_file_output::Output", tags="3, 4, 5, 7")]
3382 pub output: ::core::option::Option<encoded_file_output::Output>,
3383}
3384pub mod encoded_file_output {
3386 #[allow(clippy::derive_partial_eq_without_eq)]
3387#[derive(Clone, PartialEq, ::prost::Oneof)]
3388 pub enum Output {
3389 #[prost(message, tag="3")]
3390 S3(super::S3Upload),
3391 #[prost(message, tag="4")]
3392 Gcp(super::GcpUpload),
3393 #[prost(message, tag="5")]
3394 Azure(super::AzureBlobUpload),
3395 #[prost(message, tag="7")]
3396 AliOss(super::AliOssUpload),
3397 }
3398}
3399#[allow(clippy::derive_partial_eq_without_eq)]
3400#[derive(Clone, PartialEq, ::prost::Message)]
3401pub struct UpdateLayoutRequest {
3402 #[prost(string, tag="1")]
3403 pub egress_id: ::prost::alloc::string::String,
3404 #[prost(string, tag="2")]
3405 pub layout: ::prost::alloc::string::String,
3406}
3407#[allow(clippy::derive_partial_eq_without_eq)]
3408#[derive(Clone, PartialEq, ::prost::Message)]
3409pub struct UpdateStreamRequest {
3410 #[prost(string, tag="1")]
3411 pub egress_id: ::prost::alloc::string::String,
3412 #[prost(string, repeated, tag="2")]
3413 pub add_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3414 #[prost(string, repeated, tag="3")]
3415 pub remove_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3416}
3417#[allow(clippy::derive_partial_eq_without_eq)]
3418#[derive(Clone, PartialEq, ::prost::Message)]
3419pub struct StreamInfoList {
3420 #[prost(message, repeated, tag="1")]
3421 pub info: ::prost::alloc::vec::Vec<StreamInfo>,
3422}
3423#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3424#[repr(i32)]
3425pub enum AudioChannel {
3426 Both = 0,
3427 Left = 1,
3428 Right = 2,
3429}
3430impl AudioChannel {
3431 pub fn as_str_name(&self) -> &'static str {
3436 match self {
3437 AudioChannel::Both => "AUDIO_CHANNEL_BOTH",
3438 AudioChannel::Left => "AUDIO_CHANNEL_LEFT",
3439 AudioChannel::Right => "AUDIO_CHANNEL_RIGHT",
3440 }
3441 }
3442 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3444 match value {
3445 "AUDIO_CHANNEL_BOTH" => Some(Self::Both),
3446 "AUDIO_CHANNEL_LEFT" => Some(Self::Left),
3447 "AUDIO_CHANNEL_RIGHT" => Some(Self::Right),
3448 _ => None,
3449 }
3450 }
3451}
3452#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3455#[repr(i32)]
3456pub enum EncodingOptionsPreset {
3457 H264720p30 = 0,
3459 H264720p60 = 1,
3461 H2641080p30 = 2,
3463 H2641080p60 = 3,
3465 PortraitH264720p30 = 4,
3467 PortraitH264720p60 = 5,
3469 PortraitH2641080p30 = 6,
3471 PortraitH2641080p60 = 7,
3473 Passthrough = 8,
3475}
3476impl EncodingOptionsPreset {
3477 pub fn as_str_name(&self) -> &'static str {
3482 match self {
3483 EncodingOptionsPreset::H264720p30 => "H264_720P_30",
3484 EncodingOptionsPreset::H264720p60 => "H264_720P_60",
3485 EncodingOptionsPreset::H2641080p30 => "H264_1080P_30",
3486 EncodingOptionsPreset::H2641080p60 => "H264_1080P_60",
3487 EncodingOptionsPreset::PortraitH264720p30 => "PORTRAIT_H264_720P_30",
3488 EncodingOptionsPreset::PortraitH264720p60 => "PORTRAIT_H264_720P_60",
3489 EncodingOptionsPreset::PortraitH2641080p30 => "PORTRAIT_H264_1080P_30",
3490 EncodingOptionsPreset::PortraitH2641080p60 => "PORTRAIT_H264_1080P_60",
3491 EncodingOptionsPreset::Passthrough => "PASSTHROUGH",
3492 }
3493 }
3494 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3496 match value {
3497 "H264_720P_30" => Some(Self::H264720p30),
3498 "H264_720P_60" => Some(Self::H264720p60),
3499 "H264_1080P_30" => Some(Self::H2641080p30),
3500 "H264_1080P_60" => Some(Self::H2641080p60),
3501 "PORTRAIT_H264_720P_30" => Some(Self::PortraitH264720p30),
3502 "PORTRAIT_H264_720P_60" => Some(Self::PortraitH264720p60),
3503 "PORTRAIT_H264_1080P_30" => Some(Self::PortraitH2641080p30),
3504 "PORTRAIT_H264_1080P_60" => Some(Self::PortraitH2641080p60),
3505 "PASSTHROUGH" => Some(Self::Passthrough),
3506 _ => None,
3507 }
3508 }
3509}
3510#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3511#[repr(i32)]
3512pub enum EncodedFileType {
3513 DefaultFiletype = 0,
3515 Mp4 = 1,
3516 Ogg = 2,
3517 Mp3 = 3,
3518}
3519impl EncodedFileType {
3520 pub fn as_str_name(&self) -> &'static str {
3525 match self {
3526 EncodedFileType::DefaultFiletype => "DEFAULT_FILETYPE",
3527 EncodedFileType::Mp4 => "MP4",
3528 EncodedFileType::Ogg => "OGG",
3529 EncodedFileType::Mp3 => "MP3",
3530 }
3531 }
3532 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3534 match value {
3535 "DEFAULT_FILETYPE" => Some(Self::DefaultFiletype),
3536 "MP4" => Some(Self::Mp4),
3537 "OGG" => Some(Self::Ogg),
3538 "MP3" => Some(Self::Mp3),
3539 _ => None,
3540 }
3541 }
3542}
3543#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3544#[repr(i32)]
3545pub enum StreamProtocol {
3546 DefaultProtocol = 0,
3548 Rtmp = 1,
3549 Srt = 2,
3550 Websocket = 3,
3551}
3552impl StreamProtocol {
3553 pub fn as_str_name(&self) -> &'static str {
3558 match self {
3559 StreamProtocol::DefaultProtocol => "DEFAULT_PROTOCOL",
3560 StreamProtocol::Rtmp => "RTMP",
3561 StreamProtocol::Srt => "SRT",
3562 StreamProtocol::Websocket => "WEBSOCKET",
3563 }
3564 }
3565 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3567 match value {
3568 "DEFAULT_PROTOCOL" => Some(Self::DefaultProtocol),
3569 "RTMP" => Some(Self::Rtmp),
3570 "SRT" => Some(Self::Srt),
3571 "WEBSOCKET" => Some(Self::Websocket),
3572 _ => None,
3573 }
3574 }
3575}
3576#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3577#[repr(i32)]
3578pub enum SegmentedFileProtocol {
3579 DefaultSegmentedFileProtocol = 0,
3580 HlsProtocol = 1,
3581}
3582impl SegmentedFileProtocol {
3583 pub fn as_str_name(&self) -> &'static str {
3588 match self {
3589 SegmentedFileProtocol::DefaultSegmentedFileProtocol => "DEFAULT_SEGMENTED_FILE_PROTOCOL",
3590 SegmentedFileProtocol::HlsProtocol => "HLS_PROTOCOL",
3591 }
3592 }
3593 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3595 match value {
3596 "DEFAULT_SEGMENTED_FILE_PROTOCOL" => Some(Self::DefaultSegmentedFileProtocol),
3597 "HLS_PROTOCOL" => Some(Self::HlsProtocol),
3598 _ => None,
3599 }
3600 }
3601}
3602#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3603#[repr(i32)]
3604pub enum SegmentedFileSuffix {
3605 Index = 0,
3606 Timestamp = 1,
3607}
3608impl SegmentedFileSuffix {
3609 pub fn as_str_name(&self) -> &'static str {
3614 match self {
3615 SegmentedFileSuffix::Index => "INDEX",
3616 SegmentedFileSuffix::Timestamp => "TIMESTAMP",
3617 }
3618 }
3619 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3621 match value {
3622 "INDEX" => Some(Self::Index),
3623 "TIMESTAMP" => Some(Self::Timestamp),
3624 _ => None,
3625 }
3626 }
3627}
3628#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3629#[repr(i32)]
3630pub enum ImageFileSuffix {
3631 ImageSuffixIndex = 0,
3632 ImageSuffixTimestamp = 1,
3633 ImageSuffixNoneOverwrite = 2,
3635}
3636impl ImageFileSuffix {
3637 pub fn as_str_name(&self) -> &'static str {
3642 match self {
3643 ImageFileSuffix::ImageSuffixIndex => "IMAGE_SUFFIX_INDEX",
3644 ImageFileSuffix::ImageSuffixTimestamp => "IMAGE_SUFFIX_TIMESTAMP",
3645 ImageFileSuffix::ImageSuffixNoneOverwrite => "IMAGE_SUFFIX_NONE_OVERWRITE",
3646 }
3647 }
3648 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3650 match value {
3651 "IMAGE_SUFFIX_INDEX" => Some(Self::ImageSuffixIndex),
3652 "IMAGE_SUFFIX_TIMESTAMP" => Some(Self::ImageSuffixTimestamp),
3653 "IMAGE_SUFFIX_NONE_OVERWRITE" => Some(Self::ImageSuffixNoneOverwrite),
3654 _ => None,
3655 }
3656 }
3657}
3658#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3659#[repr(i32)]
3660pub enum EgressSourceType {
3661 Web = 0,
3662 Sdk = 1,
3663}
3664impl EgressSourceType {
3665 pub fn as_str_name(&self) -> &'static str {
3670 match self {
3671 EgressSourceType::Web => "EGRESS_SOURCE_TYPE_WEB",
3672 EgressSourceType::Sdk => "EGRESS_SOURCE_TYPE_SDK",
3673 }
3674 }
3675 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3677 match value {
3678 "EGRESS_SOURCE_TYPE_WEB" => Some(Self::Web),
3679 "EGRESS_SOURCE_TYPE_SDK" => Some(Self::Sdk),
3680 _ => None,
3681 }
3682 }
3683}
3684#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3685#[repr(i32)]
3686pub enum EgressStatus {
3687 EgressStarting = 0,
3688 EgressActive = 1,
3689 EgressEnding = 2,
3690 EgressComplete = 3,
3691 EgressFailed = 4,
3692 EgressAborted = 5,
3693 EgressLimitReached = 6,
3694}
3695impl EgressStatus {
3696 pub fn as_str_name(&self) -> &'static str {
3701 match self {
3702 EgressStatus::EgressStarting => "EGRESS_STARTING",
3703 EgressStatus::EgressActive => "EGRESS_ACTIVE",
3704 EgressStatus::EgressEnding => "EGRESS_ENDING",
3705 EgressStatus::EgressComplete => "EGRESS_COMPLETE",
3706 EgressStatus::EgressFailed => "EGRESS_FAILED",
3707 EgressStatus::EgressAborted => "EGRESS_ABORTED",
3708 EgressStatus::EgressLimitReached => "EGRESS_LIMIT_REACHED",
3709 }
3710 }
3711 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3713 match value {
3714 "EGRESS_STARTING" => Some(Self::EgressStarting),
3715 "EGRESS_ACTIVE" => Some(Self::EgressActive),
3716 "EGRESS_ENDING" => Some(Self::EgressEnding),
3717 "EGRESS_COMPLETE" => Some(Self::EgressComplete),
3718 "EGRESS_FAILED" => Some(Self::EgressFailed),
3719 "EGRESS_ABORTED" => Some(Self::EgressAborted),
3720 "EGRESS_LIMIT_REACHED" => Some(Self::EgressLimitReached),
3721 _ => None,
3722 }
3723 }
3724}
3725#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3726#[repr(i32)]
3727pub enum AudioMixing {
3728 DefaultMixing = 0,
3729 DualChannelAgent = 1,
3730 DualChannelAlternate = 2,
3731}
3732impl AudioMixing {
3733 pub fn as_str_name(&self) -> &'static str {
3738 match self {
3739 AudioMixing::DefaultMixing => "DEFAULT_MIXING",
3740 AudioMixing::DualChannelAgent => "DUAL_CHANNEL_AGENT",
3741 AudioMixing::DualChannelAlternate => "DUAL_CHANNEL_ALTERNATE",
3742 }
3743 }
3744 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3746 match value {
3747 "DEFAULT_MIXING" => Some(Self::DefaultMixing),
3748 "DUAL_CHANNEL_AGENT" => Some(Self::DualChannelAgent),
3749 "DUAL_CHANNEL_ALTERNATE" => Some(Self::DualChannelAlternate),
3750 _ => None,
3751 }
3752 }
3753}
3754#[allow(clippy::derive_partial_eq_without_eq)]
3755#[derive(Clone, PartialEq, ::prost::Message)]
3756pub struct SignalRequest {
3757 #[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")]
3758 pub message: ::core::option::Option<signal_request::Message>,
3759}
3760pub mod signal_request {
3762 #[allow(clippy::derive_partial_eq_without_eq)]
3763#[derive(Clone, PartialEq, ::prost::Oneof)]
3764 pub enum Message {
3765 #[prost(message, tag="1")]
3767 Offer(super::SessionDescription),
3768 #[prost(message, tag="2")]
3770 Answer(super::SessionDescription),
3771 #[prost(message, tag="3")]
3772 Trickle(super::TrickleRequest),
3773 #[prost(message, tag="4")]
3774 AddTrack(super::AddTrackRequest),
3775 #[prost(message, tag="5")]
3777 Mute(super::MuteTrackRequest),
3778 #[prost(message, tag="6")]
3780 Subscription(super::UpdateSubscription),
3781 #[prost(message, tag="7")]
3783 TrackSetting(super::UpdateTrackSettings),
3784 #[prost(message, tag="8")]
3786 Leave(super::LeaveRequest),
3787 #[prost(message, tag="10")]
3789 UpdateLayers(super::UpdateVideoLayers),
3790 #[prost(message, tag="11")]
3792 SubscriptionPermission(super::SubscriptionPermission),
3793 #[prost(message, tag="12")]
3795 SyncState(super::SyncState),
3796 #[prost(message, tag="13")]
3798 Simulate(super::SimulateScenario),
3799 #[prost(int64, tag="14")]
3803 Ping(i64),
3804 #[prost(message, tag="15")]
3807 UpdateMetadata(super::UpdateParticipantMetadata),
3808 #[prost(message, tag="16")]
3809 PingReq(super::Ping),
3810 #[prost(message, tag="17")]
3812 UpdateAudioTrack(super::UpdateLocalAudioTrack),
3813 #[prost(message, tag="18")]
3815 UpdateVideoTrack(super::UpdateLocalVideoTrack),
3816 #[prost(message, tag="19")]
3818 PublishDataTrackRequest(super::PublishDataTrackRequest),
3819 #[prost(message, tag="20")]
3821 UnpublishDataTrackRequest(super::UnpublishDataTrackRequest),
3822 #[prost(message, tag="21")]
3824 UpdateDataSubscription(super::UpdateDataSubscription),
3825 #[prost(message, tag="22")]
3827 StoreDataBlobRequest(super::StoreDataBlobRequest),
3828 #[prost(message, tag="23")]
3830 GetDataBlobRequest(super::GetDataBlobRequest),
3831 }
3832}
3833#[allow(clippy::derive_partial_eq_without_eq)]
3834#[derive(Clone, PartialEq, ::prost::Message)]
3835pub struct SignalResponse {
3836 #[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")]
3837 pub message: ::core::option::Option<signal_response::Message>,
3838}
3839pub mod signal_response {
3841 #[allow(clippy::derive_partial_eq_without_eq)]
3842#[derive(Clone, PartialEq, ::prost::Oneof)]
3843 pub enum Message {
3844 #[prost(message, tag="1")]
3846 Join(super::JoinResponse),
3847 #[prost(message, tag="2")]
3849 Answer(super::SessionDescription),
3850 #[prost(message, tag="3")]
3852 Offer(super::SessionDescription),
3853 #[prost(message, tag="4")]
3855 Trickle(super::TrickleRequest),
3856 #[prost(message, tag="5")]
3858 Update(super::ParticipantUpdate),
3859 #[prost(message, tag="6")]
3861 TrackPublished(super::TrackPublishedResponse),
3862 #[prost(message, tag="8")]
3864 Leave(super::LeaveRequest),
3865 #[prost(message, tag="9")]
3867 Mute(super::MuteTrackRequest),
3868 #[prost(message, tag="10")]
3870 SpeakersChanged(super::SpeakersChanged),
3871 #[prost(message, tag="11")]
3873 RoomUpdate(super::RoomUpdate),
3874 #[prost(message, tag="12")]
3876 ConnectionQuality(super::ConnectionQualityUpdate),
3877 #[prost(message, tag="13")]
3880 StreamStateUpdate(super::StreamStateUpdate),
3881 #[prost(message, tag="14")]
3883 SubscribedQualityUpdate(super::SubscribedQualityUpdate),
3884 #[prost(message, tag="15")]
3886 SubscriptionPermissionUpdate(super::SubscriptionPermissionUpdate),
3887 #[prost(string, tag="16")]
3889 RefreshToken(::prost::alloc::string::String),
3890 #[prost(message, tag="17")]
3892 TrackUnpublished(super::TrackUnpublishedResponse),
3893 #[prost(int64, tag="18")]
3897 Pong(i64),
3898 #[prost(message, tag="19")]
3900 Reconnect(super::ReconnectResponse),
3901 #[prost(message, tag="20")]
3903 PongResp(super::Pong),
3904 #[prost(message, tag="21")]
3906 SubscriptionResponse(super::SubscriptionResponse),
3907 #[prost(message, tag="22")]
3909 RequestResponse(super::RequestResponse),
3910 #[prost(message, tag="23")]
3912 TrackSubscribed(super::TrackSubscribed),
3913 #[prost(message, tag="24")]
3915 RoomMoved(super::RoomMovedResponse),
3916 #[prost(message, tag="25")]
3918 MediaSectionsRequirement(super::MediaSectionsRequirement),
3919 #[prost(message, tag="26")]
3921 SubscribedAudioCodecUpdate(super::SubscribedAudioCodecUpdate),
3922 #[prost(message, tag="27")]
3924 PublishDataTrackResponse(super::PublishDataTrackResponse),
3925 #[prost(message, tag="28")]
3927 UnpublishDataTrackResponse(super::UnpublishDataTrackResponse),
3928 #[prost(message, tag="29")]
3930 DataTrackSubscriberHandles(super::DataTrackSubscriberHandles),
3931 #[prost(message, tag="30")]
3933 StoreDataBlobResponse(super::StoreDataBlobResponse),
3934 #[prost(message, tag="31")]
3936 GetDataBlobResponse(super::GetDataBlobResponse),
3937 }
3938}
3939#[allow(clippy::derive_partial_eq_without_eq)]
3940#[derive(Clone, PartialEq, ::prost::Message)]
3941pub struct SimulcastCodec {
3942 #[prost(string, tag="1")]
3943 pub codec: ::prost::alloc::string::String,
3944 #[prost(string, tag="2")]
3945 pub cid: ::prost::alloc::string::String,
3946 #[prost(message, repeated, tag="4")]
3947 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3948 #[prost(enumeration="video_layer::Mode", tag="5")]
3949 pub video_layer_mode: i32,
3950}
3951#[allow(clippy::derive_partial_eq_without_eq)]
3952#[derive(Clone, PartialEq, ::prost::Message)]
3953pub struct AddTrackRequest {
3954 #[prost(string, tag="1")]
3956 pub cid: ::prost::alloc::string::String,
3957 #[prost(string, tag="2")]
3958 pub name: ::prost::alloc::string::String,
3959 #[prost(enumeration="TrackType", tag="3")]
3960 pub r#type: i32,
3961 #[prost(uint32, tag="4")]
3962 pub width: u32,
3963 #[prost(uint32, tag="5")]
3964 pub height: u32,
3965 #[prost(bool, tag="6")]
3967 pub muted: bool,
3968 #[deprecated]
3972 #[prost(bool, tag="7")]
3973 pub disable_dtx: bool,
3974 #[prost(enumeration="TrackSource", tag="8")]
3975 pub source: i32,
3976 #[prost(message, repeated, tag="9")]
3977 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3978 #[prost(message, repeated, tag="10")]
3979 pub simulcast_codecs: ::prost::alloc::vec::Vec<SimulcastCodec>,
3980 #[prost(string, tag="11")]
3982 pub sid: ::prost::alloc::string::String,
3983 #[deprecated]
3985 #[prost(bool, tag="12")]
3986 pub stereo: bool,
3987 #[prost(bool, tag="13")]
3989 pub disable_red: bool,
3990 #[prost(enumeration="encryption::Type", tag="14")]
3991 pub encryption: i32,
3992 #[prost(string, tag="15")]
3995 pub stream: ::prost::alloc::string::String,
3996 #[prost(enumeration="BackupCodecPolicy", tag="16")]
3997 pub backup_codec_policy: i32,
3998 #[prost(enumeration="AudioTrackFeature", repeated, tag="17")]
3999 pub audio_features: ::prost::alloc::vec::Vec<i32>,
4000 #[prost(enumeration="PacketTrailerFeature", repeated, tag="18")]
4001 pub packet_trailer_features: ::prost::alloc::vec::Vec<i32>,
4002}
4003#[allow(clippy::derive_partial_eq_without_eq)]
4004#[derive(Clone, PartialEq, ::prost::Message)]
4005pub struct PublishDataTrackRequest {
4006 #[prost(uint32, tag="1")]
4009 pub pub_handle: u32,
4010 #[prost(string, tag="2")]
4013 pub name: ::prost::alloc::string::String,
4014 #[prost(enumeration="encryption::Type", tag="3")]
4016 pub encryption: i32,
4017 #[prost(message, optional, tag="4")]
4019 pub frame_encoding: ::core::option::Option<DataTrackFrameEncoding>,
4020 #[prost(message, optional, tag="5")]
4023 pub schema: ::core::option::Option<DataTrackSchemaId>,
4024}
4025#[allow(clippy::derive_partial_eq_without_eq)]
4026#[derive(Clone, PartialEq, ::prost::Message)]
4027pub struct PublishDataTrackResponse {
4028 #[prost(message, optional, tag="1")]
4030 pub info: ::core::option::Option<DataTrackInfo>,
4031}
4032#[allow(clippy::derive_partial_eq_without_eq)]
4033#[derive(Clone, PartialEq, ::prost::Message)]
4034pub struct UnpublishDataTrackRequest {
4035 #[prost(uint32, tag="1")]
4037 pub pub_handle: u32,
4038}
4039#[allow(clippy::derive_partial_eq_without_eq)]
4040#[derive(Clone, PartialEq, ::prost::Message)]
4041pub struct UnpublishDataTrackResponse {
4042 #[prost(message, optional, tag="1")]
4044 pub info: ::core::option::Option<DataTrackInfo>,
4045}
4046#[allow(clippy::derive_partial_eq_without_eq)]
4047#[derive(Clone, PartialEq, ::prost::Message)]
4048pub struct DataTrackSubscriberHandles {
4049 #[prost(map="uint32, message", tag="1")]
4051 pub sub_handles: ::std::collections::HashMap<u32, data_track_subscriber_handles::PublishedDataTrack>,
4052}
4053pub mod data_track_subscriber_handles {
4055 #[allow(clippy::derive_partial_eq_without_eq)]
4056#[derive(Clone, PartialEq, ::prost::Message)]
4057 pub struct PublishedDataTrack {
4058 #[prost(string, tag="1")]
4059 pub publisher_identity: ::prost::alloc::string::String,
4060 #[prost(string, tag="2")]
4061 pub publisher_sid: ::prost::alloc::string::String,
4062 #[prost(string, tag="3")]
4063 pub track_sid: ::prost::alloc::string::String,
4064 }
4065}
4066#[allow(clippy::derive_partial_eq_without_eq)]
4067#[derive(Clone, PartialEq, ::prost::Message)]
4068pub struct TrickleRequest {
4069 #[prost(string, tag="1")]
4070 pub candidate_init: ::prost::alloc::string::String,
4071 #[prost(enumeration="SignalTarget", tag="2")]
4072 pub target: i32,
4073 #[prost(bool, tag="3")]
4074 pub r#final: bool,
4075}
4076#[allow(clippy::derive_partial_eq_without_eq)]
4077#[derive(Clone, PartialEq, ::prost::Message)]
4078pub struct MuteTrackRequest {
4079 #[prost(string, tag="1")]
4080 pub sid: ::prost::alloc::string::String,
4081 #[prost(bool, tag="2")]
4082 pub muted: bool,
4083}
4084#[allow(clippy::derive_partial_eq_without_eq)]
4085#[derive(Clone, PartialEq, ::prost::Message)]
4086pub struct JoinResponse {
4087 #[prost(message, optional, tag="1")]
4088 pub room: ::core::option::Option<Room>,
4089 #[prost(message, optional, tag="2")]
4090 pub participant: ::core::option::Option<ParticipantInfo>,
4091 #[prost(message, repeated, tag="3")]
4092 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4093 #[prost(string, tag="4")]
4095 pub server_version: ::prost::alloc::string::String,
4096 #[prost(message, repeated, tag="5")]
4097 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
4098 #[prost(bool, tag="6")]
4100 pub subscriber_primary: bool,
4101 #[prost(string, tag="7")]
4104 pub alternative_url: ::prost::alloc::string::String,
4105 #[prost(message, optional, tag="8")]
4106 pub client_configuration: ::core::option::Option<ClientConfiguration>,
4107 #[prost(string, tag="9")]
4109 pub server_region: ::prost::alloc::string::String,
4110 #[prost(int32, tag="10")]
4111 pub ping_timeout: i32,
4112 #[prost(int32, tag="11")]
4113 pub ping_interval: i32,
4114 #[prost(message, optional, tag="12")]
4115 pub server_info: ::core::option::Option<ServerInfo>,
4116 #[prost(bytes="vec", tag="13")]
4118 pub sif_trailer: ::prost::alloc::vec::Vec<u8>,
4119 #[prost(message, repeated, tag="14")]
4120 pub enabled_publish_codecs: ::prost::alloc::vec::Vec<Codec>,
4121 #[prost(bool, tag="15")]
4123 pub fast_publish: bool,
4124}
4125#[allow(clippy::derive_partial_eq_without_eq)]
4126#[derive(Clone, PartialEq, ::prost::Message)]
4127pub struct ReconnectResponse {
4128 #[prost(message, repeated, tag="1")]
4129 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
4130 #[prost(message, optional, tag="2")]
4131 pub client_configuration: ::core::option::Option<ClientConfiguration>,
4132 #[prost(message, optional, tag="3")]
4133 pub server_info: ::core::option::Option<ServerInfo>,
4134 #[prost(uint32, tag="4")]
4136 pub last_message_seq: u32,
4137}
4138#[allow(clippy::derive_partial_eq_without_eq)]
4139#[derive(Clone, PartialEq, ::prost::Message)]
4140pub struct TrackPublishedResponse {
4141 #[prost(string, tag="1")]
4142 pub cid: ::prost::alloc::string::String,
4143 #[prost(message, optional, tag="2")]
4144 pub track: ::core::option::Option<TrackInfo>,
4145}
4146#[allow(clippy::derive_partial_eq_without_eq)]
4147#[derive(Clone, PartialEq, ::prost::Message)]
4148pub struct TrackUnpublishedResponse {
4149 #[prost(string, tag="1")]
4150 pub track_sid: ::prost::alloc::string::String,
4151}
4152#[allow(clippy::derive_partial_eq_without_eq)]
4153#[derive(Clone, PartialEq, ::prost::Message)]
4154pub struct SessionDescription {
4155 #[prost(string, tag="1")]
4157 pub r#type: ::prost::alloc::string::String,
4158 #[prost(string, tag="2")]
4159 pub sdp: ::prost::alloc::string::String,
4160 #[prost(uint32, tag="3")]
4161 pub id: u32,
4162 #[prost(map="string, string", tag="4")]
4163 pub mid_to_track_id: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4164}
4165#[allow(clippy::derive_partial_eq_without_eq)]
4166#[derive(Clone, PartialEq, ::prost::Message)]
4167pub struct ParticipantUpdate {
4168 #[prost(message, repeated, tag="1")]
4169 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4170}
4171#[allow(clippy::derive_partial_eq_without_eq)]
4172#[derive(Clone, PartialEq, ::prost::Message)]
4173pub struct UpdateSubscription {
4174 #[prost(string, repeated, tag="1")]
4175 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4176 #[prost(bool, tag="2")]
4177 pub subscribe: bool,
4178 #[prost(message, repeated, tag="3")]
4179 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
4180}
4181#[allow(clippy::derive_partial_eq_without_eq)]
4182#[derive(Clone, PartialEq, ::prost::Message)]
4183pub struct UpdateDataSubscription {
4184 #[prost(message, repeated, tag="1")]
4185 pub updates: ::prost::alloc::vec::Vec<update_data_subscription::Update>,
4186}
4187pub mod update_data_subscription {
4189 #[allow(clippy::derive_partial_eq_without_eq)]
4190#[derive(Clone, PartialEq, ::prost::Message)]
4191 pub struct Update {
4192 #[prost(string, tag="1")]
4193 pub track_sid: ::prost::alloc::string::String,
4194 #[prost(bool, tag="2")]
4195 pub subscribe: bool,
4196 #[prost(message, optional, tag="3")]
4199 pub options: ::core::option::Option<super::DataTrackSubscriptionOptions>,
4200 }
4201}
4202#[allow(clippy::derive_partial_eq_without_eq)]
4203#[derive(Clone, PartialEq, ::prost::Message)]
4204pub struct StoreDataBlobRequest {
4205 #[prost(uint32, tag="1")]
4206 pub request_id: u32,
4207 #[prost(message, optional, tag="2")]
4208 pub blob: ::core::option::Option<DataBlob>,
4209}
4210#[allow(clippy::derive_partial_eq_without_eq)]
4211#[derive(Clone, PartialEq, ::prost::Message)]
4212pub struct StoreDataBlobResponse {
4213 #[prost(uint32, tag="1")]
4214 pub request_id: u32,
4215 #[prost(message, optional, tag="2")]
4217 pub key: ::core::option::Option<DataBlobKey>,
4218}
4219#[allow(clippy::derive_partial_eq_without_eq)]
4220#[derive(Clone, PartialEq, ::prost::Message)]
4221pub struct GetDataBlobRequest {
4222 #[prost(uint32, tag="1")]
4223 pub request_id: u32,
4224 #[prost(string, tag="2")]
4226 pub participant_identity: ::prost::alloc::string::String,
4227 #[prost(message, optional, tag="3")]
4229 pub key: ::core::option::Option<DataBlobKey>,
4230}
4231#[allow(clippy::derive_partial_eq_without_eq)]
4232#[derive(Clone, PartialEq, ::prost::Message)]
4233pub struct GetDataBlobResponse {
4234 #[prost(uint32, tag="1")]
4235 pub request_id: u32,
4236 #[prost(message, optional, tag="2")]
4237 pub blob: ::core::option::Option<DataBlob>,
4238}
4239#[allow(clippy::derive_partial_eq_without_eq)]
4240#[derive(Clone, PartialEq, ::prost::Message)]
4241pub struct UpdateTrackSettings {
4242 #[prost(string, repeated, tag="1")]
4243 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4244 #[prost(bool, tag="3")]
4246 pub disabled: bool,
4247 #[prost(enumeration="VideoQuality", tag="4")]
4249 pub quality: i32,
4250 #[prost(uint32, tag="5")]
4252 pub width: u32,
4253 #[prost(uint32, tag="6")]
4255 pub height: u32,
4256 #[prost(uint32, tag="7")]
4257 pub fps: u32,
4258 #[prost(uint32, tag="8")]
4266 pub priority: u32,
4267}
4268#[allow(clippy::derive_partial_eq_without_eq)]
4269#[derive(Clone, PartialEq, ::prost::Message)]
4270pub struct UpdateLocalAudioTrack {
4271 #[prost(string, tag="1")]
4272 pub track_sid: ::prost::alloc::string::String,
4273 #[prost(enumeration="AudioTrackFeature", repeated, tag="2")]
4274 pub features: ::prost::alloc::vec::Vec<i32>,
4275}
4276#[allow(clippy::derive_partial_eq_without_eq)]
4277#[derive(Clone, PartialEq, ::prost::Message)]
4278pub struct UpdateLocalVideoTrack {
4279 #[prost(string, tag="1")]
4280 pub track_sid: ::prost::alloc::string::String,
4281 #[prost(uint32, tag="2")]
4282 pub width: u32,
4283 #[prost(uint32, tag="3")]
4284 pub height: u32,
4285}
4286#[allow(clippy::derive_partial_eq_without_eq)]
4287#[derive(Clone, PartialEq, ::prost::Message)]
4288pub struct LeaveRequest {
4289 #[prost(bool, tag="1")]
4293 pub can_reconnect: bool,
4294 #[prost(enumeration="DisconnectReason", tag="2")]
4295 pub reason: i32,
4296 #[prost(enumeration="leave_request::Action", tag="3")]
4297 pub action: i32,
4298 #[prost(message, optional, tag="4")]
4299 pub regions: ::core::option::Option<RegionSettings>,
4300}
4301pub mod leave_request {
4303 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4305 #[repr(i32)]
4306 pub enum Action {
4307 Disconnect = 0,
4309 Resume = 1,
4311 Reconnect = 2,
4313 }
4314 impl Action {
4315 pub fn as_str_name(&self) -> &'static str {
4320 match self {
4321 Action::Disconnect => "DISCONNECT",
4322 Action::Resume => "RESUME",
4323 Action::Reconnect => "RECONNECT",
4324 }
4325 }
4326 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4328 match value {
4329 "DISCONNECT" => Some(Self::Disconnect),
4330 "RESUME" => Some(Self::Resume),
4331 "RECONNECT" => Some(Self::Reconnect),
4332 _ => None,
4333 }
4334 }
4335 }
4336}
4337#[allow(clippy::derive_partial_eq_without_eq)]
4339#[derive(Clone, PartialEq, ::prost::Message)]
4340pub struct UpdateVideoLayers {
4341 #[prost(string, tag="1")]
4342 pub track_sid: ::prost::alloc::string::String,
4343 #[prost(message, repeated, tag="2")]
4344 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
4345}
4346#[allow(clippy::derive_partial_eq_without_eq)]
4347#[derive(Clone, PartialEq, ::prost::Message)]
4348pub struct UpdateParticipantMetadata {
4349 #[prost(string, tag="1")]
4350 pub metadata: ::prost::alloc::string::String,
4351 #[prost(string, tag="2")]
4352 pub name: ::prost::alloc::string::String,
4353 #[prost(map="string, string", tag="3")]
4356 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4357 #[prost(uint32, tag="4")]
4358 pub request_id: u32,
4359}
4360#[allow(clippy::derive_partial_eq_without_eq)]
4361#[derive(Clone, PartialEq, ::prost::Message)]
4362pub struct IceServer {
4363 #[prost(string, repeated, tag="1")]
4364 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4365 #[prost(string, tag="2")]
4366 pub username: ::prost::alloc::string::String,
4367 #[prost(string, tag="3")]
4368 pub credential: ::prost::alloc::string::String,
4369}
4370#[allow(clippy::derive_partial_eq_without_eq)]
4371#[derive(Clone, PartialEq, ::prost::Message)]
4372pub struct SpeakersChanged {
4373 #[prost(message, repeated, tag="1")]
4374 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
4375}
4376#[allow(clippy::derive_partial_eq_without_eq)]
4377#[derive(Clone, PartialEq, ::prost::Message)]
4378pub struct RoomUpdate {
4379 #[prost(message, optional, tag="1")]
4380 pub room: ::core::option::Option<Room>,
4381}
4382#[allow(clippy::derive_partial_eq_without_eq)]
4383#[derive(Clone, PartialEq, ::prost::Message)]
4384pub struct ConnectionQualityInfo {
4385 #[prost(string, tag="1")]
4386 pub participant_sid: ::prost::alloc::string::String,
4387 #[prost(enumeration="ConnectionQuality", tag="2")]
4388 pub quality: i32,
4389 #[prost(float, tag="3")]
4390 pub score: f32,
4391}
4392#[allow(clippy::derive_partial_eq_without_eq)]
4393#[derive(Clone, PartialEq, ::prost::Message)]
4394pub struct ConnectionQualityUpdate {
4395 #[prost(message, repeated, tag="1")]
4396 pub updates: ::prost::alloc::vec::Vec<ConnectionQualityInfo>,
4397}
4398#[allow(clippy::derive_partial_eq_without_eq)]
4399#[derive(Clone, PartialEq, ::prost::Message)]
4400pub struct StreamStateInfo {
4401 #[prost(string, tag="1")]
4402 pub participant_sid: ::prost::alloc::string::String,
4403 #[prost(string, tag="2")]
4404 pub track_sid: ::prost::alloc::string::String,
4405 #[prost(enumeration="StreamState", tag="3")]
4406 pub state: i32,
4407}
4408#[allow(clippy::derive_partial_eq_without_eq)]
4409#[derive(Clone, PartialEq, ::prost::Message)]
4410pub struct StreamStateUpdate {
4411 #[prost(message, repeated, tag="1")]
4412 pub stream_states: ::prost::alloc::vec::Vec<StreamStateInfo>,
4413}
4414#[allow(clippy::derive_partial_eq_without_eq)]
4415#[derive(Clone, PartialEq, ::prost::Message)]
4416pub struct SubscribedQuality {
4417 #[prost(enumeration="VideoQuality", tag="1")]
4418 pub quality: i32,
4419 #[prost(bool, tag="2")]
4420 pub enabled: bool,
4421}
4422#[allow(clippy::derive_partial_eq_without_eq)]
4423#[derive(Clone, PartialEq, ::prost::Message)]
4424pub struct SubscribedCodec {
4425 #[prost(string, tag="1")]
4426 pub codec: ::prost::alloc::string::String,
4427 #[prost(message, repeated, tag="2")]
4428 pub qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
4429}
4430#[allow(clippy::derive_partial_eq_without_eq)]
4431#[derive(Clone, PartialEq, ::prost::Message)]
4432pub struct SubscribedQualityUpdate {
4433 #[prost(string, tag="1")]
4434 pub track_sid: ::prost::alloc::string::String,
4435 #[deprecated]
4436 #[prost(message, repeated, tag="2")]
4437 pub subscribed_qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
4438 #[prost(message, repeated, tag="3")]
4439 pub subscribed_codecs: ::prost::alloc::vec::Vec<SubscribedCodec>,
4440}
4441#[allow(clippy::derive_partial_eq_without_eq)]
4442#[derive(Clone, PartialEq, ::prost::Message)]
4443pub struct SubscribedAudioCodecUpdate {
4444 #[prost(string, tag="1")]
4445 pub track_sid: ::prost::alloc::string::String,
4446 #[prost(message, repeated, tag="2")]
4447 pub subscribed_audio_codecs: ::prost::alloc::vec::Vec<SubscribedAudioCodec>,
4448}
4449#[allow(clippy::derive_partial_eq_without_eq)]
4450#[derive(Clone, PartialEq, ::prost::Message)]
4451pub struct TrackPermission {
4452 #[prost(string, tag="1")]
4454 pub participant_sid: ::prost::alloc::string::String,
4455 #[prost(bool, tag="2")]
4456 pub all_tracks: bool,
4457 #[prost(string, repeated, tag="3")]
4458 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4459 #[prost(string, tag="4")]
4460 pub participant_identity: ::prost::alloc::string::String,
4461}
4462#[allow(clippy::derive_partial_eq_without_eq)]
4463#[derive(Clone, PartialEq, ::prost::Message)]
4464pub struct SubscriptionPermission {
4465 #[prost(bool, tag="1")]
4466 pub all_participants: bool,
4467 #[prost(message, repeated, tag="2")]
4468 pub track_permissions: ::prost::alloc::vec::Vec<TrackPermission>,
4469}
4470#[allow(clippy::derive_partial_eq_without_eq)]
4471#[derive(Clone, PartialEq, ::prost::Message)]
4472pub struct SubscriptionPermissionUpdate {
4473 #[prost(string, tag="1")]
4474 pub participant_sid: ::prost::alloc::string::String,
4475 #[prost(string, tag="2")]
4476 pub track_sid: ::prost::alloc::string::String,
4477 #[prost(bool, tag="3")]
4478 pub allowed: bool,
4479}
4480#[allow(clippy::derive_partial_eq_without_eq)]
4481#[derive(Clone, PartialEq, ::prost::Message)]
4482pub struct RoomMovedResponse {
4483 #[prost(message, optional, tag="1")]
4485 pub room: ::core::option::Option<Room>,
4486 #[prost(string, tag="2")]
4488 pub token: ::prost::alloc::string::String,
4489 #[prost(message, optional, tag="3")]
4490 pub participant: ::core::option::Option<ParticipantInfo>,
4491 #[prost(message, repeated, tag="4")]
4492 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4493}
4494#[allow(clippy::derive_partial_eq_without_eq)]
4495#[derive(Clone, PartialEq, ::prost::Message)]
4496pub struct SyncState {
4497 #[prost(message, optional, tag="1")]
4501 pub answer: ::core::option::Option<SessionDescription>,
4502 #[prost(message, optional, tag="2")]
4503 pub subscription: ::core::option::Option<UpdateSubscription>,
4504 #[prost(message, repeated, tag="3")]
4505 pub publish_tracks: ::prost::alloc::vec::Vec<TrackPublishedResponse>,
4506 #[prost(message, repeated, tag="4")]
4507 pub data_channels: ::prost::alloc::vec::Vec<DataChannelInfo>,
4508 #[prost(message, optional, tag="5")]
4512 pub offer: ::core::option::Option<SessionDescription>,
4513 #[prost(string, repeated, tag="6")]
4514 pub track_sids_disabled: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4515 #[prost(message, repeated, tag="7")]
4516 pub datachannel_receive_states: ::prost::alloc::vec::Vec<DataChannelReceiveState>,
4517 #[prost(message, repeated, tag="8")]
4518 pub publish_data_tracks: ::prost::alloc::vec::Vec<PublishDataTrackResponse>,
4519 #[prost(message, optional, tag="9")]
4520 pub data_subscription: ::core::option::Option<UpdateDataSubscription>,
4521}
4522#[allow(clippy::derive_partial_eq_without_eq)]
4523#[derive(Clone, PartialEq, ::prost::Message)]
4524pub struct DataChannelReceiveState {
4525 #[prost(string, tag="1")]
4526 pub publisher_sid: ::prost::alloc::string::String,
4527 #[prost(uint32, tag="2")]
4528 pub last_seq: u32,
4529}
4530#[allow(clippy::derive_partial_eq_without_eq)]
4531#[derive(Clone, PartialEq, ::prost::Message)]
4532pub struct DataChannelInfo {
4533 #[prost(string, tag="1")]
4534 pub label: ::prost::alloc::string::String,
4535 #[prost(uint32, tag="2")]
4536 pub id: u32,
4537 #[prost(enumeration="SignalTarget", tag="3")]
4538 pub target: i32,
4539}
4540#[allow(clippy::derive_partial_eq_without_eq)]
4541#[derive(Clone, PartialEq, ::prost::Message)]
4542pub struct SimulateScenario {
4543 #[prost(oneof="simulate_scenario::Scenario", tags="1, 2, 3, 4, 5, 6, 7, 8, 9")]
4544 pub scenario: ::core::option::Option<simulate_scenario::Scenario>,
4545}
4546pub mod simulate_scenario {
4548 #[allow(clippy::derive_partial_eq_without_eq)]
4549#[derive(Clone, PartialEq, ::prost::Oneof)]
4550 pub enum Scenario {
4551 #[prost(int32, tag="1")]
4553 SpeakerUpdate(i32),
4554 #[prost(bool, tag="2")]
4556 NodeFailure(bool),
4557 #[prost(bool, tag="3")]
4559 Migration(bool),
4560 #[prost(bool, tag="4")]
4562 ServerLeave(bool),
4563 #[prost(enumeration="super::CandidateProtocol", tag="5")]
4565 SwitchCandidateProtocol(i32),
4566 #[prost(int64, tag="6")]
4569 SubscriberBandwidth(i64),
4570 #[prost(bool, tag="7")]
4572 DisconnectSignalOnResume(bool),
4573 #[prost(bool, tag="8")]
4575 DisconnectSignalOnResumeNoMessages(bool),
4576 #[prost(bool, tag="9")]
4578 LeaveRequestFullReconnect(bool),
4579 }
4580}
4581#[allow(clippy::derive_partial_eq_without_eq)]
4582#[derive(Clone, PartialEq, ::prost::Message)]
4583pub struct Ping {
4584 #[prost(int64, tag="1")]
4585 pub timestamp: i64,
4586 #[prost(int64, tag="2")]
4588 pub rtt: i64,
4589}
4590#[allow(clippy::derive_partial_eq_without_eq)]
4591#[derive(Clone, PartialEq, ::prost::Message)]
4592pub struct Pong {
4593 #[prost(int64, tag="1")]
4595 pub last_ping_timestamp: i64,
4596 #[prost(int64, tag="2")]
4597 pub timestamp: i64,
4598}
4599#[allow(clippy::derive_partial_eq_without_eq)]
4600#[derive(Clone, PartialEq, ::prost::Message)]
4601pub struct RegionSettings {
4602 #[prost(message, repeated, tag="1")]
4603 pub regions: ::prost::alloc::vec::Vec<RegionInfo>,
4604}
4605#[allow(clippy::derive_partial_eq_without_eq)]
4606#[derive(Clone, PartialEq, ::prost::Message)]
4607pub struct RegionInfo {
4608 #[prost(string, tag="1")]
4609 pub region: ::prost::alloc::string::String,
4610 #[prost(string, tag="2")]
4611 pub url: ::prost::alloc::string::String,
4612 #[prost(int64, tag="3")]
4613 pub distance: i64,
4614}
4615#[allow(clippy::derive_partial_eq_without_eq)]
4616#[derive(Clone, PartialEq, ::prost::Message)]
4617pub struct SubscriptionResponse {
4618 #[prost(string, tag="1")]
4619 pub track_sid: ::prost::alloc::string::String,
4620 #[prost(enumeration="SubscriptionError", tag="2")]
4621 pub err: i32,
4622}
4623#[allow(clippy::derive_partial_eq_without_eq)]
4624#[derive(Clone, PartialEq, ::prost::Message)]
4625pub struct RequestResponse {
4626 #[prost(uint32, tag="1")]
4627 pub request_id: u32,
4628 #[prost(enumeration="request_response::Reason", tag="2")]
4629 pub reason: i32,
4630 #[prost(string, tag="3")]
4631 pub message: ::prost::alloc::string::String,
4632 #[prost(oneof="request_response::Request", tags="4, 5, 6, 7, 8, 9, 10, 11")]
4633 pub request: ::core::option::Option<request_response::Request>,
4634}
4635pub mod request_response {
4637 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4638 #[repr(i32)]
4639 pub enum Reason {
4640 Ok = 0,
4641 NotFound = 1,
4642 NotAllowed = 2,
4643 LimitExceeded = 3,
4644 Queued = 4,
4645 UnsupportedType = 5,
4646 UnclassifiedError = 6,
4647 InvalidHandle = 7,
4648 InvalidName = 8,
4649 DuplicateHandle = 9,
4650 DuplicateName = 10,
4651 InvalidRequest = 11,
4652 }
4653 impl Reason {
4654 pub fn as_str_name(&self) -> &'static str {
4659 match self {
4660 Reason::Ok => "OK",
4661 Reason::NotFound => "NOT_FOUND",
4662 Reason::NotAllowed => "NOT_ALLOWED",
4663 Reason::LimitExceeded => "LIMIT_EXCEEDED",
4664 Reason::Queued => "QUEUED",
4665 Reason::UnsupportedType => "UNSUPPORTED_TYPE",
4666 Reason::UnclassifiedError => "UNCLASSIFIED_ERROR",
4667 Reason::InvalidHandle => "INVALID_HANDLE",
4668 Reason::InvalidName => "INVALID_NAME",
4669 Reason::DuplicateHandle => "DUPLICATE_HANDLE",
4670 Reason::DuplicateName => "DUPLICATE_NAME",
4671 Reason::InvalidRequest => "INVALID_REQUEST",
4672 }
4673 }
4674 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4676 match value {
4677 "OK" => Some(Self::Ok),
4678 "NOT_FOUND" => Some(Self::NotFound),
4679 "NOT_ALLOWED" => Some(Self::NotAllowed),
4680 "LIMIT_EXCEEDED" => Some(Self::LimitExceeded),
4681 "QUEUED" => Some(Self::Queued),
4682 "UNSUPPORTED_TYPE" => Some(Self::UnsupportedType),
4683 "UNCLASSIFIED_ERROR" => Some(Self::UnclassifiedError),
4684 "INVALID_HANDLE" => Some(Self::InvalidHandle),
4685 "INVALID_NAME" => Some(Self::InvalidName),
4686 "DUPLICATE_HANDLE" => Some(Self::DuplicateHandle),
4687 "DUPLICATE_NAME" => Some(Self::DuplicateName),
4688 "INVALID_REQUEST" => Some(Self::InvalidRequest),
4689 _ => None,
4690 }
4691 }
4692 }
4693 #[allow(clippy::derive_partial_eq_without_eq)]
4694#[derive(Clone, PartialEq, ::prost::Oneof)]
4695 pub enum Request {
4696 #[prost(message, tag="4")]
4697 Trickle(super::TrickleRequest),
4698 #[prost(message, tag="5")]
4699 AddTrack(super::AddTrackRequest),
4700 #[prost(message, tag="6")]
4701 Mute(super::MuteTrackRequest),
4702 #[prost(message, tag="7")]
4703 UpdateMetadata(super::UpdateParticipantMetadata),
4704 #[prost(message, tag="8")]
4705 UpdateAudioTrack(super::UpdateLocalAudioTrack),
4706 #[prost(message, tag="9")]
4707 UpdateVideoTrack(super::UpdateLocalVideoTrack),
4708 #[prost(message, tag="10")]
4709 PublishDataTrack(super::PublishDataTrackRequest),
4710 #[prost(message, tag="11")]
4711 UnpublishDataTrack(super::UnpublishDataTrackRequest),
4712 }
4713}
4714#[allow(clippy::derive_partial_eq_without_eq)]
4715#[derive(Clone, PartialEq, ::prost::Message)]
4716pub struct TrackSubscribed {
4717 #[prost(string, tag="1")]
4718 pub track_sid: ::prost::alloc::string::String,
4719}
4720#[allow(clippy::derive_partial_eq_without_eq)]
4721#[derive(Clone, PartialEq, ::prost::Message)]
4722pub struct ConnectionSettings {
4723 #[prost(bool, tag="1")]
4724 pub auto_subscribe: bool,
4725 #[prost(bool, tag="2")]
4726 pub adaptive_stream: bool,
4727 #[prost(bool, optional, tag="3")]
4728 pub subscriber_allow_pause: ::core::option::Option<bool>,
4729 #[prost(bool, tag="4")]
4730 pub disable_ice_lite: bool,
4731 #[prost(bool, optional, tag="5")]
4732 pub auto_subscribe_data_track: ::core::option::Option<bool>,
4733}
4734#[allow(clippy::derive_partial_eq_without_eq)]
4735#[derive(Clone, PartialEq, ::prost::Message)]
4736pub struct JoinRequest {
4737 #[prost(message, optional, tag="1")]
4738 pub client_info: ::core::option::Option<ClientInfo>,
4739 #[prost(message, optional, tag="2")]
4740 pub connection_settings: ::core::option::Option<ConnectionSettings>,
4741 #[prost(string, tag="3")]
4743 pub metadata: ::prost::alloc::string::String,
4744 #[prost(map="string, string", tag="4")]
4748 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4749 #[prost(message, repeated, tag="5")]
4750 pub add_track_requests: ::prost::alloc::vec::Vec<AddTrackRequest>,
4751 #[prost(message, optional, tag="6")]
4752 pub publisher_offer: ::core::option::Option<SessionDescription>,
4753 #[prost(bool, tag="7")]
4754 pub reconnect: bool,
4755 #[prost(enumeration="ReconnectReason", tag="8")]
4756 pub reconnect_reason: i32,
4757 #[prost(string, tag="9")]
4758 pub participant_sid: ::prost::alloc::string::String,
4759 #[prost(message, optional, tag="10")]
4760 pub sync_state: ::core::option::Option<SyncState>,
4761}
4762#[allow(clippy::derive_partial_eq_without_eq)]
4763#[derive(Clone, PartialEq, ::prost::Message)]
4764pub struct WrappedJoinRequest {
4765 #[prost(enumeration="wrapped_join_request::Compression", tag="1")]
4766 pub compression: i32,
4767 #[prost(bytes="vec", tag="2")]
4769 pub join_request: ::prost::alloc::vec::Vec<u8>,
4770}
4771pub mod wrapped_join_request {
4773 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4774 #[repr(i32)]
4775 pub enum Compression {
4776 None = 0,
4777 Gzip = 1,
4778 }
4779 impl Compression {
4780 pub fn as_str_name(&self) -> &'static str {
4785 match self {
4786 Compression::None => "NONE",
4787 Compression::Gzip => "GZIP",
4788 }
4789 }
4790 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4792 match value {
4793 "NONE" => Some(Self::None),
4794 "GZIP" => Some(Self::Gzip),
4795 _ => None,
4796 }
4797 }
4798 }
4799}
4800#[allow(clippy::derive_partial_eq_without_eq)]
4801#[derive(Clone, PartialEq, ::prost::Message)]
4802pub struct MediaSectionsRequirement {
4803 #[prost(uint32, tag="1")]
4804 pub num_audios: u32,
4805 #[prost(uint32, tag="2")]
4806 pub num_videos: u32,
4807}
4808#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4809#[repr(i32)]
4810pub enum SignalTarget {
4811 Publisher = 0,
4812 Subscriber = 1,
4813}
4814impl SignalTarget {
4815 pub fn as_str_name(&self) -> &'static str {
4820 match self {
4821 SignalTarget::Publisher => "PUBLISHER",
4822 SignalTarget::Subscriber => "SUBSCRIBER",
4823 }
4824 }
4825 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4827 match value {
4828 "PUBLISHER" => Some(Self::Publisher),
4829 "SUBSCRIBER" => Some(Self::Subscriber),
4830 _ => None,
4831 }
4832 }
4833}
4834#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4835#[repr(i32)]
4836pub enum StreamState {
4837 Active = 0,
4838 Paused = 1,
4839}
4840impl StreamState {
4841 pub fn as_str_name(&self) -> &'static str {
4846 match self {
4847 StreamState::Active => "ACTIVE",
4848 StreamState::Paused => "PAUSED",
4849 }
4850 }
4851 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4853 match value {
4854 "ACTIVE" => Some(Self::Active),
4855 "PAUSED" => Some(Self::Paused),
4856 _ => None,
4857 }
4858 }
4859}
4860#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4861#[repr(i32)]
4862pub enum CandidateProtocol {
4863 Udp = 0,
4864 Tcp = 1,
4865 Tls = 2,
4866}
4867impl CandidateProtocol {
4868 pub fn as_str_name(&self) -> &'static str {
4873 match self {
4874 CandidateProtocol::Udp => "UDP",
4875 CandidateProtocol::Tcp => "TCP",
4876 CandidateProtocol::Tls => "TLS",
4877 }
4878 }
4879 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4881 match value {
4882 "UDP" => Some(Self::Udp),
4883 "TCP" => Some(Self::Tcp),
4884 "TLS" => Some(Self::Tls),
4885 _ => None,
4886 }
4887 }
4888}
4889#[allow(clippy::derive_partial_eq_without_eq)]
4890#[derive(Clone, PartialEq, ::prost::Message)]
4891pub struct Job {
4892 #[prost(string, tag="1")]
4893 pub id: ::prost::alloc::string::String,
4894 #[prost(string, tag="9")]
4895 pub dispatch_id: ::prost::alloc::string::String,
4896 #[prost(enumeration="JobType", tag="2")]
4897 pub r#type: i32,
4898 #[prost(message, optional, tag="3")]
4899 pub room: ::core::option::Option<Room>,
4900 #[prost(message, optional, tag="4")]
4901 pub participant: ::core::option::Option<ParticipantInfo>,
4902 #[deprecated]
4903 #[prost(string, tag="5")]
4904 pub namespace: ::prost::alloc::string::String,
4905 #[prost(string, tag="6")]
4906 pub metadata: ::prost::alloc::string::String,
4907 #[prost(string, tag="7")]
4908 pub agent_name: ::prost::alloc::string::String,
4909 #[prost(message, optional, tag="8")]
4910 pub state: ::core::option::Option<JobState>,
4911 #[prost(bool, tag="10")]
4912 pub enable_recording: bool,
4913 #[prost(string, tag="11")]
4914 pub deployment: ::prost::alloc::string::String,
4915 #[prost(map="string, string", tag="12")]
4916 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4917 #[prost(bool, tag="13")]
4918 pub enable_redaction: bool,
4919}
4920#[allow(clippy::derive_partial_eq_without_eq)]
4921#[derive(Clone, PartialEq, ::prost::Message)]
4922pub struct JobState {
4923 #[prost(enumeration="JobStatus", tag="1")]
4924 pub status: i32,
4925 #[prost(string, tag="2")]
4926 pub error: ::prost::alloc::string::String,
4927 #[prost(int64, tag="3")]
4928 pub started_at: i64,
4929 #[prost(int64, tag="4")]
4930 pub ended_at: i64,
4931 #[prost(int64, tag="5")]
4932 pub updated_at: i64,
4933 #[prost(string, tag="6")]
4934 pub participant_identity: ::prost::alloc::string::String,
4935 #[prost(string, tag="7")]
4936 pub worker_id: ::prost::alloc::string::String,
4937 #[prost(string, tag="8")]
4938 pub agent_id: ::prost::alloc::string::String,
4939}
4940#[allow(clippy::derive_partial_eq_without_eq)]
4942#[derive(Clone, PartialEq, ::prost::Message)]
4943pub struct WorkerMessage {
4944 #[prost(oneof="worker_message::Message", tags="1, 2, 3, 4, 5, 6, 7")]
4945 pub message: ::core::option::Option<worker_message::Message>,
4946}
4947pub mod worker_message {
4949 #[allow(clippy::derive_partial_eq_without_eq)]
4950#[derive(Clone, PartialEq, ::prost::Oneof)]
4951 pub enum Message {
4952 #[prost(message, tag="1")]
4954 Register(super::RegisterWorkerRequest),
4955 #[prost(message, tag="2")]
4957 Availability(super::AvailabilityResponse),
4958 #[prost(message, tag="3")]
4960 UpdateWorker(super::UpdateWorkerStatus),
4961 #[prost(message, tag="4")]
4963 UpdateJob(super::UpdateJobStatus),
4964 #[prost(message, tag="5")]
4965 Ping(super::WorkerPing),
4966 #[prost(message, tag="6")]
4967 SimulateJob(super::SimulateJobRequest),
4968 #[prost(message, tag="7")]
4969 MigrateJob(super::MigrateJobRequest),
4970 }
4971}
4972#[allow(clippy::derive_partial_eq_without_eq)]
4974#[derive(Clone, PartialEq, ::prost::Message)]
4975pub struct ServerMessage {
4976 #[prost(oneof="server_message::Message", tags="1, 2, 3, 5, 4")]
4977 pub message: ::core::option::Option<server_message::Message>,
4978}
4979pub mod server_message {
4981 #[allow(clippy::derive_partial_eq_without_eq)]
4982#[derive(Clone, PartialEq, ::prost::Oneof)]
4983 pub enum Message {
4984 #[prost(message, tag="1")]
4986 Register(super::RegisterWorkerResponse),
4987 #[prost(message, tag="2")]
4989 Availability(super::AvailabilityRequest),
4990 #[prost(message, tag="3")]
4991 Assignment(super::JobAssignment),
4992 #[prost(message, tag="5")]
4993 Termination(super::JobTermination),
4994 #[prost(message, tag="4")]
4995 Pong(super::WorkerPong),
4996 }
4997}
4998#[allow(clippy::derive_partial_eq_without_eq)]
4999#[derive(Clone, PartialEq, ::prost::Message)]
5000pub struct SimulateJobRequest {
5001 #[prost(enumeration="JobType", tag="1")]
5002 pub r#type: i32,
5003 #[prost(message, optional, tag="2")]
5004 pub room: ::core::option::Option<Room>,
5005 #[prost(message, optional, tag="3")]
5006 pub participant: ::core::option::Option<ParticipantInfo>,
5007}
5008#[allow(clippy::derive_partial_eq_without_eq)]
5009#[derive(Clone, PartialEq, ::prost::Message)]
5010pub struct WorkerPing {
5011 #[prost(int64, tag="1")]
5012 pub timestamp: i64,
5013}
5014#[allow(clippy::derive_partial_eq_without_eq)]
5015#[derive(Clone, PartialEq, ::prost::Message)]
5016pub struct WorkerPong {
5017 #[prost(int64, tag="1")]
5018 pub last_timestamp: i64,
5019 #[prost(int64, tag="2")]
5020 pub timestamp: i64,
5021}
5022#[allow(clippy::derive_partial_eq_without_eq)]
5023#[derive(Clone, PartialEq, ::prost::Message)]
5024pub struct RegisterWorkerRequest {
5025 #[prost(enumeration="JobType", tag="1")]
5026 pub r#type: i32,
5027 #[prost(string, tag="8")]
5028 pub agent_name: ::prost::alloc::string::String,
5029 #[prost(string, tag="3")]
5031 pub version: ::prost::alloc::string::String,
5032 #[prost(uint32, tag="5")]
5034 pub ping_interval: u32,
5035 #[prost(string, optional, tag="6")]
5036 pub namespace: ::core::option::Option<::prost::alloc::string::String>,
5037 #[prost(message, optional, tag="7")]
5038 pub allowed_permissions: ::core::option::Option<ParticipantPermission>,
5039 #[prost(string, tag="9")]
5040 pub deployment: ::prost::alloc::string::String,
5041}
5042#[allow(clippy::derive_partial_eq_without_eq)]
5043#[derive(Clone, PartialEq, ::prost::Message)]
5044pub struct RegisterWorkerResponse {
5045 #[prost(string, tag="1")]
5046 pub worker_id: ::prost::alloc::string::String,
5047 #[prost(message, optional, tag="3")]
5048 pub server_info: ::core::option::Option<ServerInfo>,
5049}
5050#[allow(clippy::derive_partial_eq_without_eq)]
5051#[derive(Clone, PartialEq, ::prost::Message)]
5052pub struct MigrateJobRequest {
5053 #[prost(string, repeated, tag="2")]
5055 pub job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5056}
5057#[allow(clippy::derive_partial_eq_without_eq)]
5058#[derive(Clone, PartialEq, ::prost::Message)]
5059pub struct AvailabilityRequest {
5060 #[prost(message, optional, tag="1")]
5061 pub job: ::core::option::Option<Job>,
5062 #[prost(bool, tag="2")]
5065 pub resuming: bool,
5066}
5067#[allow(clippy::derive_partial_eq_without_eq)]
5068#[derive(Clone, PartialEq, ::prost::Message)]
5069pub struct AvailabilityResponse {
5070 #[prost(string, tag="1")]
5071 pub job_id: ::prost::alloc::string::String,
5072 #[prost(bool, tag="2")]
5073 pub available: bool,
5074 #[prost(bool, tag="3")]
5075 pub supports_resume: bool,
5076 #[prost(bool, tag="8")]
5077 pub terminate: bool,
5078 #[prost(string, tag="4")]
5079 pub participant_name: ::prost::alloc::string::String,
5080 #[prost(string, tag="5")]
5081 pub participant_identity: ::prost::alloc::string::String,
5082 #[prost(string, tag="6")]
5083 pub participant_metadata: ::prost::alloc::string::String,
5084 #[prost(map="string, string", tag="7")]
5086 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5087}
5088#[allow(clippy::derive_partial_eq_without_eq)]
5089#[derive(Clone, PartialEq, ::prost::Message)]
5090pub struct UpdateJobStatus {
5091 #[prost(string, tag="1")]
5092 pub job_id: ::prost::alloc::string::String,
5093 #[prost(enumeration="JobStatus", tag="2")]
5095 pub status: i32,
5096 #[prost(string, tag="3")]
5098 pub error: ::prost::alloc::string::String,
5099}
5100#[allow(clippy::derive_partial_eq_without_eq)]
5101#[derive(Clone, PartialEq, ::prost::Message)]
5102pub struct UpdateWorkerStatus {
5103 #[prost(enumeration="WorkerStatus", optional, tag="1")]
5104 pub status: ::core::option::Option<i32>,
5105 #[prost(float, tag="3")]
5107 pub load: f32,
5108 #[prost(uint32, tag="4")]
5109 pub job_count: u32,
5110}
5111#[allow(clippy::derive_partial_eq_without_eq)]
5112#[derive(Clone, PartialEq, ::prost::Message)]
5113pub struct JobAssignment {
5114 #[prost(message, optional, tag="1")]
5115 pub job: ::core::option::Option<Job>,
5116 #[prost(string, optional, tag="2")]
5117 pub url: ::core::option::Option<::prost::alloc::string::String>,
5118 #[prost(string, tag="3")]
5119 pub token: ::prost::alloc::string::String,
5120}
5121#[allow(clippy::derive_partial_eq_without_eq)]
5122#[derive(Clone, PartialEq, ::prost::Message)]
5123pub struct JobTermination {
5124 #[prost(string, tag="1")]
5125 pub job_id: ::prost::alloc::string::String,
5126}
5127#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5128#[repr(i32)]
5129pub enum JobType {
5130 JtRoom = 0,
5131 JtPublisher = 1,
5132 JtParticipant = 2,
5133}
5134impl JobType {
5135 pub fn as_str_name(&self) -> &'static str {
5140 match self {
5141 JobType::JtRoom => "JT_ROOM",
5142 JobType::JtPublisher => "JT_PUBLISHER",
5143 JobType::JtParticipant => "JT_PARTICIPANT",
5144 }
5145 }
5146 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5148 match value {
5149 "JT_ROOM" => Some(Self::JtRoom),
5150 "JT_PUBLISHER" => Some(Self::JtPublisher),
5151 "JT_PARTICIPANT" => Some(Self::JtParticipant),
5152 _ => None,
5153 }
5154 }
5155}
5156#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5157#[repr(i32)]
5158pub enum WorkerStatus {
5159 WsAvailable = 0,
5160 WsFull = 1,
5161}
5162impl WorkerStatus {
5163 pub fn as_str_name(&self) -> &'static str {
5168 match self {
5169 WorkerStatus::WsAvailable => "WS_AVAILABLE",
5170 WorkerStatus::WsFull => "WS_FULL",
5171 }
5172 }
5173 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5175 match value {
5176 "WS_AVAILABLE" => Some(Self::WsAvailable),
5177 "WS_FULL" => Some(Self::WsFull),
5178 _ => None,
5179 }
5180 }
5181}
5182#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5183#[repr(i32)]
5184pub enum JobStatus {
5185 JsPending = 0,
5186 JsRunning = 1,
5187 JsSuccess = 2,
5188 JsFailed = 3,
5189}
5190impl JobStatus {
5191 pub fn as_str_name(&self) -> &'static str {
5196 match self {
5197 JobStatus::JsPending => "JS_PENDING",
5198 JobStatus::JsRunning => "JS_RUNNING",
5199 JobStatus::JsSuccess => "JS_SUCCESS",
5200 JobStatus::JsFailed => "JS_FAILED",
5201 }
5202 }
5203 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5205 match value {
5206 "JS_PENDING" => Some(Self::JsPending),
5207 "JS_RUNNING" => Some(Self::JsRunning),
5208 "JS_SUCCESS" => Some(Self::JsSuccess),
5209 "JS_FAILED" => Some(Self::JsFailed),
5210 _ => None,
5211 }
5212 }
5213}
5214#[allow(clippy::derive_partial_eq_without_eq)]
5215#[derive(Clone, PartialEq, ::prost::Message)]
5216pub struct CreateAgentDispatchRequest {
5217 #[prost(string, tag="1")]
5218 pub agent_name: ::prost::alloc::string::String,
5219 #[prost(string, tag="2")]
5220 pub room: ::prost::alloc::string::String,
5221 #[prost(string, tag="3")]
5222 pub metadata: ::prost::alloc::string::String,
5223 #[prost(enumeration="JobRestartPolicy", tag="4")]
5225 pub restart_policy: i32,
5226 #[prost(string, tag="5")]
5227 pub deployment: ::prost::alloc::string::String,
5228 #[prost(map="string, string", tag="6")]
5229 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5230}
5231#[allow(clippy::derive_partial_eq_without_eq)]
5232#[derive(Clone, PartialEq, ::prost::Message)]
5233pub struct RoomAgentDispatch {
5234 #[prost(string, tag="1")]
5235 pub agent_name: ::prost::alloc::string::String,
5236 #[prost(string, tag="2")]
5237 pub metadata: ::prost::alloc::string::String,
5238 #[prost(enumeration="JobRestartPolicy", tag="3")]
5240 pub restart_policy: i32,
5241 #[prost(string, tag="4")]
5242 pub deployment: ::prost::alloc::string::String,
5243 #[prost(map="string, string", tag="5")]
5244 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5245}
5246#[allow(clippy::derive_partial_eq_without_eq)]
5247#[derive(Clone, PartialEq, ::prost::Message)]
5248pub struct DeleteAgentDispatchRequest {
5249 #[prost(string, tag="1")]
5250 pub dispatch_id: ::prost::alloc::string::String,
5251 #[prost(string, tag="2")]
5252 pub room: ::prost::alloc::string::String,
5253}
5254#[allow(clippy::derive_partial_eq_without_eq)]
5255#[derive(Clone, PartialEq, ::prost::Message)]
5256pub struct ListAgentDispatchRequest {
5257 #[prost(string, tag="1")]
5259 pub dispatch_id: ::prost::alloc::string::String,
5260 #[prost(string, tag="2")]
5262 pub room: ::prost::alloc::string::String,
5263}
5264#[allow(clippy::derive_partial_eq_without_eq)]
5265#[derive(Clone, PartialEq, ::prost::Message)]
5266pub struct ListAgentDispatchResponse {
5267 #[prost(message, repeated, tag="1")]
5268 pub agent_dispatches: ::prost::alloc::vec::Vec<AgentDispatch>,
5269}
5270#[allow(clippy::derive_partial_eq_without_eq)]
5271#[derive(Clone, PartialEq, ::prost::Message)]
5272pub struct AgentDispatch {
5273 #[prost(string, tag="1")]
5274 pub id: ::prost::alloc::string::String,
5275 #[prost(string, tag="2")]
5276 pub agent_name: ::prost::alloc::string::String,
5277 #[prost(string, tag="3")]
5278 pub room: ::prost::alloc::string::String,
5279 #[prost(string, tag="4")]
5280 pub metadata: ::prost::alloc::string::String,
5281 #[prost(message, optional, tag="5")]
5282 pub state: ::core::option::Option<AgentDispatchState>,
5283 #[prost(enumeration="JobRestartPolicy", tag="6")]
5285 pub restart_policy: i32,
5286 #[prost(string, tag="7")]
5287 pub deployment: ::prost::alloc::string::String,
5288 #[prost(map="string, string", tag="8")]
5289 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5290}
5291#[allow(clippy::derive_partial_eq_without_eq)]
5292#[derive(Clone, PartialEq, ::prost::Message)]
5293pub struct AgentDispatchState {
5294 #[prost(message, repeated, tag="1")]
5297 pub jobs: ::prost::alloc::vec::Vec<Job>,
5298 #[prost(int64, tag="2")]
5299 pub created_at: i64,
5300 #[prost(int64, tag="3")]
5301 pub deleted_at: i64,
5302}
5303#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5304#[repr(i32)]
5305pub enum JobRestartPolicy {
5306 JrpOnFailure = 0,
5308 JrpNever = 1,
5310}
5311impl JobRestartPolicy {
5312 pub fn as_str_name(&self) -> &'static str {
5317 match self {
5318 JobRestartPolicy::JrpOnFailure => "JRP_ON_FAILURE",
5319 JobRestartPolicy::JrpNever => "JRP_NEVER",
5320 }
5321 }
5322 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5324 match value {
5325 "JRP_ON_FAILURE" => Some(Self::JrpOnFailure),
5326 "JRP_NEVER" => Some(Self::JrpNever),
5327 _ => None,
5328 }
5329 }
5330}
5331#[allow(clippy::derive_partial_eq_without_eq)]
5332#[derive(Clone, PartialEq, ::prost::Message)]
5333pub struct CreateRoomRequest {
5334 #[prost(string, tag="1")]
5336 pub name: ::prost::alloc::string::String,
5337 #[prost(string, tag="12")]
5339 pub room_preset: ::prost::alloc::string::String,
5340 #[prost(uint32, tag="2")]
5342 pub empty_timeout: u32,
5343 #[prost(uint32, tag="10")]
5345 pub departure_timeout: u32,
5346 #[prost(uint32, tag="3")]
5348 pub max_participants: u32,
5349 #[prost(string, tag="4")]
5351 pub node_id: ::prost::alloc::string::String,
5352 #[prost(string, tag="5")]
5354 pub metadata: ::prost::alloc::string::String,
5355 #[prost(map="string, string", tag="15")]
5357 pub tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5358 #[prost(message, optional, tag="6")]
5360 pub egress: ::core::option::Option<RoomEgress>,
5361 #[prost(uint32, tag="7")]
5363 pub min_playout_delay: u32,
5364 #[prost(uint32, tag="8")]
5365 pub max_playout_delay: u32,
5366 #[prost(bool, tag="9")]
5369 pub sync_streams: bool,
5370 #[prost(bool, tag="13")]
5372 pub replay_enabled: bool,
5373 #[prost(message, repeated, tag="14")]
5375 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5376}
5377#[allow(clippy::derive_partial_eq_without_eq)]
5378#[derive(Clone, PartialEq, ::prost::Message)]
5379pub struct RoomEgress {
5380 #[prost(message, optional, tag="1")]
5381 pub room: ::core::option::Option<RoomCompositeEgressRequest>,
5382 #[prost(message, optional, tag="3")]
5383 pub participant: ::core::option::Option<AutoParticipantEgress>,
5384 #[prost(message, optional, tag="2")]
5385 pub tracks: ::core::option::Option<AutoTrackEgress>,
5386}
5387#[allow(clippy::derive_partial_eq_without_eq)]
5388#[derive(Clone, PartialEq, ::prost::Message)]
5389pub struct RoomAgent {
5390 #[prost(message, repeated, tag="1")]
5391 pub dispatches: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5392}
5393#[allow(clippy::derive_partial_eq_without_eq)]
5394#[derive(Clone, PartialEq, ::prost::Message)]
5395pub struct ListRoomsRequest {
5396 #[prost(string, repeated, tag="1")]
5398 pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5399}
5400#[allow(clippy::derive_partial_eq_without_eq)]
5401#[derive(Clone, PartialEq, ::prost::Message)]
5402pub struct ListRoomsResponse {
5403 #[prost(message, repeated, tag="1")]
5404 pub rooms: ::prost::alloc::vec::Vec<Room>,
5405}
5406#[allow(clippy::derive_partial_eq_without_eq)]
5407#[derive(Clone, PartialEq, ::prost::Message)]
5408pub struct DeleteRoomRequest {
5409 #[prost(string, tag="1")]
5411 pub room: ::prost::alloc::string::String,
5412}
5413#[allow(clippy::derive_partial_eq_without_eq)]
5414#[derive(Clone, PartialEq, ::prost::Message)]
5415pub struct DeleteRoomResponse {
5416}
5417#[allow(clippy::derive_partial_eq_without_eq)]
5418#[derive(Clone, PartialEq, ::prost::Message)]
5419pub struct ListParticipantsRequest {
5420 #[prost(string, tag="1")]
5422 pub room: ::prost::alloc::string::String,
5423}
5424#[allow(clippy::derive_partial_eq_without_eq)]
5425#[derive(Clone, PartialEq, ::prost::Message)]
5426pub struct ListParticipantsResponse {
5427 #[prost(message, repeated, tag="1")]
5428 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
5429}
5430#[allow(clippy::derive_partial_eq_without_eq)]
5431#[derive(Clone, PartialEq, ::prost::Message)]
5432pub struct RoomParticipantIdentity {
5433 #[prost(string, tag="1")]
5435 pub room: ::prost::alloc::string::String,
5436 #[prost(string, tag="2")]
5438 pub identity: ::prost::alloc::string::String,
5439 #[prost(int64, tag="3")]
5442 pub revoke_token_ts: i64,
5443}
5444#[allow(clippy::derive_partial_eq_without_eq)]
5445#[derive(Clone, PartialEq, ::prost::Message)]
5446pub struct RemoveParticipantResponse {
5447}
5448#[allow(clippy::derive_partial_eq_without_eq)]
5449#[derive(Clone, PartialEq, ::prost::Message)]
5450pub struct MuteRoomTrackRequest {
5451 #[prost(string, tag="1")]
5453 pub room: ::prost::alloc::string::String,
5454 #[prost(string, tag="2")]
5455 pub identity: ::prost::alloc::string::String,
5456 #[prost(string, tag="3")]
5458 pub track_sid: ::prost::alloc::string::String,
5459 #[prost(bool, tag="4")]
5461 pub muted: bool,
5462}
5463#[allow(clippy::derive_partial_eq_without_eq)]
5464#[derive(Clone, PartialEq, ::prost::Message)]
5465pub struct MuteRoomTrackResponse {
5466 #[prost(message, optional, tag="1")]
5467 pub track: ::core::option::Option<TrackInfo>,
5468}
5469#[allow(clippy::derive_partial_eq_without_eq)]
5470#[derive(Clone, PartialEq, ::prost::Message)]
5471pub struct UpdateParticipantRequest {
5472 #[prost(string, tag="1")]
5473 pub room: ::prost::alloc::string::String,
5474 #[prost(string, tag="2")]
5475 pub identity: ::prost::alloc::string::String,
5476 #[prost(string, tag="3")]
5478 pub metadata: ::prost::alloc::string::String,
5479 #[prost(message, optional, tag="4")]
5481 pub permission: ::core::option::Option<ParticipantPermission>,
5482 #[prost(string, tag="5")]
5484 pub name: ::prost::alloc::string::String,
5485 #[prost(map="string, string", tag="6")]
5488 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5489}
5490#[allow(clippy::derive_partial_eq_without_eq)]
5491#[derive(Clone, PartialEq, ::prost::Message)]
5492pub struct UpdateSubscriptionsRequest {
5493 #[prost(string, tag="1")]
5494 pub room: ::prost::alloc::string::String,
5495 #[prost(string, tag="2")]
5496 pub identity: ::prost::alloc::string::String,
5497 #[prost(string, repeated, tag="3")]
5499 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5500 #[prost(bool, tag="4")]
5502 pub subscribe: bool,
5503 #[prost(message, repeated, tag="5")]
5505 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
5506}
5507#[allow(clippy::derive_partial_eq_without_eq)]
5509#[derive(Clone, PartialEq, ::prost::Message)]
5510pub struct UpdateSubscriptionsResponse {
5511}
5512#[allow(clippy::derive_partial_eq_without_eq)]
5513#[derive(Clone, PartialEq, ::prost::Message)]
5514pub struct SendDataRequest {
5515 #[prost(string, tag="1")]
5516 pub room: ::prost::alloc::string::String,
5517 #[prost(bytes="vec", tag="2")]
5518 pub data: ::prost::alloc::vec::Vec<u8>,
5519 #[prost(enumeration="data_packet::Kind", tag="3")]
5520 pub kind: i32,
5521 #[deprecated]
5523 #[prost(string, repeated, tag="4")]
5524 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5525 #[prost(string, repeated, tag="6")]
5527 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5528 #[prost(string, optional, tag="5")]
5529 pub topic: ::core::option::Option<::prost::alloc::string::String>,
5530 #[prost(bytes="vec", tag="7")]
5532 pub nonce: ::prost::alloc::vec::Vec<u8>,
5533}
5534#[allow(clippy::derive_partial_eq_without_eq)]
5536#[derive(Clone, PartialEq, ::prost::Message)]
5537pub struct SendDataResponse {
5538}
5539#[allow(clippy::derive_partial_eq_without_eq)]
5540#[derive(Clone, PartialEq, ::prost::Message)]
5541pub struct UpdateRoomMetadataRequest {
5542 #[prost(string, tag="1")]
5543 pub room: ::prost::alloc::string::String,
5544 #[prost(string, tag="2")]
5546 pub metadata: ::prost::alloc::string::String,
5547}
5548#[allow(clippy::derive_partial_eq_without_eq)]
5549#[derive(Clone, PartialEq, ::prost::Message)]
5550pub struct RoomConfiguration {
5551 #[prost(string, tag="1")]
5553 pub name: ::prost::alloc::string::String,
5554 #[prost(uint32, tag="2")]
5556 pub empty_timeout: u32,
5557 #[prost(uint32, tag="3")]
5559 pub departure_timeout: u32,
5560 #[prost(uint32, tag="4")]
5562 pub max_participants: u32,
5563 #[prost(string, tag="11")]
5565 pub metadata: ::prost::alloc::string::String,
5566 #[prost(message, optional, tag="5")]
5568 pub egress: ::core::option::Option<RoomEgress>,
5569 #[prost(uint32, tag="7")]
5571 pub min_playout_delay: u32,
5572 #[prost(uint32, tag="8")]
5573 pub max_playout_delay: u32,
5574 #[prost(bool, tag="9")]
5577 pub sync_streams: bool,
5578 #[prost(message, repeated, tag="10")]
5580 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5581 #[prost(map="string, string", tag="12")]
5583 pub tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5584}
5585#[allow(clippy::derive_partial_eq_without_eq)]
5586#[derive(Clone, PartialEq, ::prost::Message)]
5587pub struct ForwardParticipantRequest {
5588 #[prost(string, tag="1")]
5590 pub room: ::prost::alloc::string::String,
5591 #[prost(string, tag="2")]
5593 pub identity: ::prost::alloc::string::String,
5594 #[prost(string, tag="3")]
5596 pub destination_room: ::prost::alloc::string::String,
5597}
5598#[allow(clippy::derive_partial_eq_without_eq)]
5599#[derive(Clone, PartialEq, ::prost::Message)]
5600pub struct ForwardParticipantResponse {
5601}
5602#[allow(clippy::derive_partial_eq_without_eq)]
5603#[derive(Clone, PartialEq, ::prost::Message)]
5604pub struct MoveParticipantRequest {
5605 #[prost(string, tag="1")]
5607 pub room: ::prost::alloc::string::String,
5608 #[prost(string, tag="2")]
5610 pub identity: ::prost::alloc::string::String,
5611 #[prost(string, tag="3")]
5613 pub destination_room: ::prost::alloc::string::String,
5614}
5615#[allow(clippy::derive_partial_eq_without_eq)]
5616#[derive(Clone, PartialEq, ::prost::Message)]
5617pub struct MoveParticipantResponse {
5618}
5619#[allow(clippy::derive_partial_eq_without_eq)]
5620#[derive(Clone, PartialEq, ::prost::Message)]
5621pub struct PerformRpcRequest {
5622 #[prost(string, tag="1")]
5623 pub room: ::prost::alloc::string::String,
5624 #[prost(string, tag="2")]
5625 pub destination_identity: ::prost::alloc::string::String,
5626 #[prost(string, tag="3")]
5627 pub method: ::prost::alloc::string::String,
5628 #[prost(string, tag="4")]
5629 pub payload: ::prost::alloc::string::String,
5630 #[prost(uint32, tag="5")]
5631 pub response_timeout_ms: u32,
5632}
5633#[allow(clippy::derive_partial_eq_without_eq)]
5634#[derive(Clone, PartialEq, ::prost::Message)]
5635pub struct PerformRpcResponse {
5636 #[prost(string, tag="1")]
5637 pub payload: ::prost::alloc::string::String,
5638}
5639#[allow(clippy::derive_partial_eq_without_eq)]
5640#[derive(Clone, PartialEq, ::prost::Message)]
5641pub struct CreateIngressRequest {
5642 #[prost(enumeration="IngressInput", tag="1")]
5643 pub input_type: i32,
5644 #[prost(string, tag="9")]
5646 pub url: ::prost::alloc::string::String,
5647 #[prost(string, tag="2")]
5649 pub name: ::prost::alloc::string::String,
5650 #[prost(string, tag="3")]
5652 pub room_name: ::prost::alloc::string::String,
5653 #[prost(string, tag="4")]
5655 pub participant_identity: ::prost::alloc::string::String,
5656 #[prost(string, tag="5")]
5658 pub participant_name: ::prost::alloc::string::String,
5659 #[prost(string, tag="10")]
5661 pub participant_metadata: ::prost::alloc::string::String,
5662 #[deprecated]
5664 #[prost(bool, tag="8")]
5665 pub bypass_transcoding: bool,
5666 #[prost(bool, optional, tag="11")]
5668 pub enable_transcoding: ::core::option::Option<bool>,
5669 #[prost(message, optional, tag="6")]
5670 pub audio: ::core::option::Option<IngressAudioOptions>,
5671 #[prost(message, optional, tag="7")]
5672 pub video: ::core::option::Option<IngressVideoOptions>,
5673 #[prost(bool, optional, tag="12")]
5675 pub enabled: ::core::option::Option<bool>,
5676}
5677#[allow(clippy::derive_partial_eq_without_eq)]
5678#[derive(Clone, PartialEq, ::prost::Message)]
5679pub struct IngressAudioOptions {
5680 #[prost(string, tag="1")]
5681 pub name: ::prost::alloc::string::String,
5682 #[prost(enumeration="TrackSource", tag="2")]
5683 pub source: i32,
5684 #[prost(oneof="ingress_audio_options::EncodingOptions", tags="3, 4")]
5685 pub encoding_options: ::core::option::Option<ingress_audio_options::EncodingOptions>,
5686}
5687pub mod ingress_audio_options {
5689 #[allow(clippy::derive_partial_eq_without_eq)]
5690#[derive(Clone, PartialEq, ::prost::Oneof)]
5691 pub enum EncodingOptions {
5692 #[prost(enumeration="super::IngressAudioEncodingPreset", tag="3")]
5693 Preset(i32),
5694 #[prost(message, tag="4")]
5695 Options(super::IngressAudioEncodingOptions),
5696 }
5697}
5698#[allow(clippy::derive_partial_eq_without_eq)]
5699#[derive(Clone, PartialEq, ::prost::Message)]
5700pub struct IngressVideoOptions {
5701 #[prost(string, tag="1")]
5702 pub name: ::prost::alloc::string::String,
5703 #[prost(enumeration="TrackSource", tag="2")]
5704 pub source: i32,
5705 #[prost(oneof="ingress_video_options::EncodingOptions", tags="3, 4")]
5706 pub encoding_options: ::core::option::Option<ingress_video_options::EncodingOptions>,
5707}
5708pub mod ingress_video_options {
5710 #[allow(clippy::derive_partial_eq_without_eq)]
5711#[derive(Clone, PartialEq, ::prost::Oneof)]
5712 pub enum EncodingOptions {
5713 #[prost(enumeration="super::IngressVideoEncodingPreset", tag="3")]
5714 Preset(i32),
5715 #[prost(message, tag="4")]
5716 Options(super::IngressVideoEncodingOptions),
5717 }
5718}
5719#[allow(clippy::derive_partial_eq_without_eq)]
5720#[derive(Clone, PartialEq, ::prost::Message)]
5721pub struct IngressAudioEncodingOptions {
5722 #[prost(enumeration="AudioCodec", tag="1")]
5724 pub audio_codec: i32,
5725 #[prost(uint32, tag="2")]
5726 pub bitrate: u32,
5727 #[prost(bool, tag="3")]
5728 pub disable_dtx: bool,
5729 #[prost(uint32, tag="4")]
5730 pub channels: u32,
5731}
5732#[allow(clippy::derive_partial_eq_without_eq)]
5733#[derive(Clone, PartialEq, ::prost::Message)]
5734pub struct IngressVideoEncodingOptions {
5735 #[prost(enumeration="VideoCodec", tag="1")]
5737 pub video_codec: i32,
5738 #[prost(double, tag="2")]
5739 pub frame_rate: f64,
5740 #[prost(message, repeated, tag="3")]
5742 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
5743}
5744#[allow(clippy::derive_partial_eq_without_eq)]
5745#[derive(Clone, PartialEq, ::prost::Message)]
5746pub struct IngressInfo {
5747 #[prost(string, tag="1")]
5748 pub ingress_id: ::prost::alloc::string::String,
5749 #[prost(string, tag="2")]
5750 pub name: ::prost::alloc::string::String,
5751 #[prost(string, tag="3")]
5752 pub stream_key: ::prost::alloc::string::String,
5753 #[prost(string, tag="4")]
5755 pub url: ::prost::alloc::string::String,
5756 #[prost(enumeration="IngressInput", tag="5")]
5760 pub input_type: i32,
5761 #[deprecated]
5762 #[prost(bool, tag="13")]
5763 pub bypass_transcoding: bool,
5764 #[prost(bool, optional, tag="15")]
5765 pub enable_transcoding: ::core::option::Option<bool>,
5766 #[prost(message, optional, tag="6")]
5767 pub audio: ::core::option::Option<IngressAudioOptions>,
5768 #[prost(message, optional, tag="7")]
5769 pub video: ::core::option::Option<IngressVideoOptions>,
5770 #[prost(string, tag="8")]
5771 pub room_name: ::prost::alloc::string::String,
5772 #[prost(string, tag="9")]
5773 pub participant_identity: ::prost::alloc::string::String,
5774 #[prost(string, tag="10")]
5775 pub participant_name: ::prost::alloc::string::String,
5776 #[prost(string, tag="14")]
5777 pub participant_metadata: ::prost::alloc::string::String,
5778 #[prost(bool, tag="11")]
5779 pub reusable: bool,
5780 #[prost(message, optional, tag="12")]
5782 pub state: ::core::option::Option<IngressState>,
5783 #[prost(bool, optional, tag="16")]
5785 pub enabled: ::core::option::Option<bool>,
5786}
5787#[allow(clippy::derive_partial_eq_without_eq)]
5788#[derive(Clone, PartialEq, ::prost::Message)]
5789pub struct IngressState {
5790 #[prost(enumeration="ingress_state::Status", tag="1")]
5791 pub status: i32,
5792 #[prost(string, tag="2")]
5794 pub error: ::prost::alloc::string::String,
5795 #[prost(message, optional, tag="3")]
5796 pub video: ::core::option::Option<InputVideoState>,
5797 #[prost(message, optional, tag="4")]
5798 pub audio: ::core::option::Option<InputAudioState>,
5799 #[prost(string, tag="5")]
5801 pub room_id: ::prost::alloc::string::String,
5802 #[prost(int64, tag="7")]
5803 pub started_at: i64,
5804 #[prost(int64, tag="8")]
5805 pub ended_at: i64,
5806 #[prost(int64, tag="10")]
5807 pub updated_at: i64,
5808 #[prost(string, tag="9")]
5809 pub resource_id: ::prost::alloc::string::String,
5810 #[prost(message, repeated, tag="6")]
5811 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
5812}
5813pub mod ingress_state {
5815 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5816 #[repr(i32)]
5817 pub enum Status {
5818 EndpointInactive = 0,
5819 EndpointBuffering = 1,
5820 EndpointPublishing = 2,
5821 EndpointError = 3,
5822 EndpointComplete = 4,
5823 }
5824 impl Status {
5825 pub fn as_str_name(&self) -> &'static str {
5830 match self {
5831 Status::EndpointInactive => "ENDPOINT_INACTIVE",
5832 Status::EndpointBuffering => "ENDPOINT_BUFFERING",
5833 Status::EndpointPublishing => "ENDPOINT_PUBLISHING",
5834 Status::EndpointError => "ENDPOINT_ERROR",
5835 Status::EndpointComplete => "ENDPOINT_COMPLETE",
5836 }
5837 }
5838 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5840 match value {
5841 "ENDPOINT_INACTIVE" => Some(Self::EndpointInactive),
5842 "ENDPOINT_BUFFERING" => Some(Self::EndpointBuffering),
5843 "ENDPOINT_PUBLISHING" => Some(Self::EndpointPublishing),
5844 "ENDPOINT_ERROR" => Some(Self::EndpointError),
5845 "ENDPOINT_COMPLETE" => Some(Self::EndpointComplete),
5846 _ => None,
5847 }
5848 }
5849 }
5850}
5851#[allow(clippy::derive_partial_eq_without_eq)]
5852#[derive(Clone, PartialEq, ::prost::Message)]
5853pub struct InputVideoState {
5854 #[prost(string, tag="1")]
5855 pub mime_type: ::prost::alloc::string::String,
5856 #[prost(uint32, tag="2")]
5857 pub average_bitrate: u32,
5858 #[prost(uint32, tag="3")]
5859 pub width: u32,
5860 #[prost(uint32, tag="4")]
5861 pub height: u32,
5862 #[prost(double, tag="5")]
5863 pub framerate: f64,
5864}
5865#[allow(clippy::derive_partial_eq_without_eq)]
5866#[derive(Clone, PartialEq, ::prost::Message)]
5867pub struct InputAudioState {
5868 #[prost(string, tag="1")]
5869 pub mime_type: ::prost::alloc::string::String,
5870 #[prost(uint32, tag="2")]
5871 pub average_bitrate: u32,
5872 #[prost(uint32, tag="3")]
5873 pub channels: u32,
5874 #[prost(uint32, tag="4")]
5875 pub sample_rate: u32,
5876}
5877#[allow(clippy::derive_partial_eq_without_eq)]
5878#[derive(Clone, PartialEq, ::prost::Message)]
5879pub struct UpdateIngressRequest {
5880 #[prost(string, tag="1")]
5881 pub ingress_id: ::prost::alloc::string::String,
5882 #[prost(string, tag="2")]
5883 pub name: ::prost::alloc::string::String,
5884 #[prost(string, tag="3")]
5885 pub room_name: ::prost::alloc::string::String,
5886 #[prost(string, tag="4")]
5887 pub participant_identity: ::prost::alloc::string::String,
5888 #[prost(string, tag="5")]
5889 pub participant_name: ::prost::alloc::string::String,
5890 #[prost(string, tag="9")]
5891 pub participant_metadata: ::prost::alloc::string::String,
5892 #[deprecated]
5893 #[prost(bool, optional, tag="8")]
5894 pub bypass_transcoding: ::core::option::Option<bool>,
5895 #[prost(bool, optional, tag="10")]
5896 pub enable_transcoding: ::core::option::Option<bool>,
5897 #[prost(message, optional, tag="6")]
5898 pub audio: ::core::option::Option<IngressAudioOptions>,
5899 #[prost(message, optional, tag="7")]
5900 pub video: ::core::option::Option<IngressVideoOptions>,
5901 #[prost(bool, optional, tag="11")]
5903 pub enabled: ::core::option::Option<bool>,
5904}
5905#[allow(clippy::derive_partial_eq_without_eq)]
5906#[derive(Clone, PartialEq, ::prost::Message)]
5907pub struct ListIngressRequest {
5908 #[prost(message, optional, tag="3")]
5909 pub page_token: ::core::option::Option<TokenPagination>,
5910 #[prost(string, tag="1")]
5914 pub room_name: ::prost::alloc::string::String,
5915 #[prost(string, tag="2")]
5917 pub ingress_id: ::prost::alloc::string::String,
5918}
5919#[allow(clippy::derive_partial_eq_without_eq)]
5920#[derive(Clone, PartialEq, ::prost::Message)]
5921pub struct ListIngressResponse {
5922 #[prost(message, optional, tag="2")]
5923 pub next_page_token: ::core::option::Option<TokenPagination>,
5924 #[prost(message, repeated, tag="1")]
5926 pub items: ::prost::alloc::vec::Vec<IngressInfo>,
5927}
5928#[allow(clippy::derive_partial_eq_without_eq)]
5929#[derive(Clone, PartialEq, ::prost::Message)]
5930pub struct DeleteIngressRequest {
5931 #[prost(string, tag="1")]
5932 pub ingress_id: ::prost::alloc::string::String,
5933}
5934#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5935#[repr(i32)]
5936pub enum IngressInput {
5937 RtmpInput = 0,
5938 WhipInput = 1,
5939 UrlInput = 2,
5941}
5942impl IngressInput {
5943 pub fn as_str_name(&self) -> &'static str {
5948 match self {
5949 IngressInput::RtmpInput => "RTMP_INPUT",
5950 IngressInput::WhipInput => "WHIP_INPUT",
5951 IngressInput::UrlInput => "URL_INPUT",
5952 }
5953 }
5954 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5956 match value {
5957 "RTMP_INPUT" => Some(Self::RtmpInput),
5958 "WHIP_INPUT" => Some(Self::WhipInput),
5959 "URL_INPUT" => Some(Self::UrlInput),
5960 _ => None,
5961 }
5962 }
5963}
5964#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5965#[repr(i32)]
5966pub enum IngressAudioEncodingPreset {
5967 OpusStereo96kbps = 0,
5969 OpusMono64kbs = 1,
5971}
5972impl IngressAudioEncodingPreset {
5973 pub fn as_str_name(&self) -> &'static str {
5978 match self {
5979 IngressAudioEncodingPreset::OpusStereo96kbps => "OPUS_STEREO_96KBPS",
5980 IngressAudioEncodingPreset::OpusMono64kbs => "OPUS_MONO_64KBS",
5981 }
5982 }
5983 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5985 match value {
5986 "OPUS_STEREO_96KBPS" => Some(Self::OpusStereo96kbps),
5987 "OPUS_MONO_64KBS" => Some(Self::OpusMono64kbs),
5988 _ => None,
5989 }
5990 }
5991}
5992#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5993#[repr(i32)]
5994pub enum IngressVideoEncodingPreset {
5995 H264720p30fps3Layers = 0,
5997 H2641080p30fps3Layers = 1,
5999 H264540p25fps2Layers = 2,
6001 H264720p30fps1Layer = 3,
6003 H2641080p30fps1Layer = 4,
6005 H264720p30fps3LayersHighMotion = 5,
6007 H2641080p30fps3LayersHighMotion = 6,
6009 H264540p25fps2LayersHighMotion = 7,
6011 H264720p30fps1LayerHighMotion = 8,
6013 H2641080p30fps1LayerHighMotion = 9,
6015}
6016impl IngressVideoEncodingPreset {
6017 pub fn as_str_name(&self) -> &'static str {
6022 match self {
6023 IngressVideoEncodingPreset::H264720p30fps3Layers => "H264_720P_30FPS_3_LAYERS",
6024 IngressVideoEncodingPreset::H2641080p30fps3Layers => "H264_1080P_30FPS_3_LAYERS",
6025 IngressVideoEncodingPreset::H264540p25fps2Layers => "H264_540P_25FPS_2_LAYERS",
6026 IngressVideoEncodingPreset::H264720p30fps1Layer => "H264_720P_30FPS_1_LAYER",
6027 IngressVideoEncodingPreset::H2641080p30fps1Layer => "H264_1080P_30FPS_1_LAYER",
6028 IngressVideoEncodingPreset::H264720p30fps3LayersHighMotion => "H264_720P_30FPS_3_LAYERS_HIGH_MOTION",
6029 IngressVideoEncodingPreset::H2641080p30fps3LayersHighMotion => "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION",
6030 IngressVideoEncodingPreset::H264540p25fps2LayersHighMotion => "H264_540P_25FPS_2_LAYERS_HIGH_MOTION",
6031 IngressVideoEncodingPreset::H264720p30fps1LayerHighMotion => "H264_720P_30FPS_1_LAYER_HIGH_MOTION",
6032 IngressVideoEncodingPreset::H2641080p30fps1LayerHighMotion => "H264_1080P_30FPS_1_LAYER_HIGH_MOTION",
6033 }
6034 }
6035 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6037 match value {
6038 "H264_720P_30FPS_3_LAYERS" => Some(Self::H264720p30fps3Layers),
6039 "H264_1080P_30FPS_3_LAYERS" => Some(Self::H2641080p30fps3Layers),
6040 "H264_540P_25FPS_2_LAYERS" => Some(Self::H264540p25fps2Layers),
6041 "H264_720P_30FPS_1_LAYER" => Some(Self::H264720p30fps1Layer),
6042 "H264_1080P_30FPS_1_LAYER" => Some(Self::H2641080p30fps1Layer),
6043 "H264_720P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H264720p30fps3LayersHighMotion),
6044 "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H2641080p30fps3LayersHighMotion),
6045 "H264_540P_25FPS_2_LAYERS_HIGH_MOTION" => Some(Self::H264540p25fps2LayersHighMotion),
6046 "H264_720P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H264720p30fps1LayerHighMotion),
6047 "H264_1080P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H2641080p30fps1LayerHighMotion),
6048 _ => None,
6049 }
6050 }
6051}
6052#[allow(clippy::derive_partial_eq_without_eq)]
6053#[derive(Clone, PartialEq, ::prost::Message)]
6054pub struct WebhookEvent {
6055 #[prost(string, tag="1")]
6059 pub event: ::prost::alloc::string::String,
6060 #[prost(message, optional, tag="2")]
6061 pub room: ::core::option::Option<Room>,
6062 #[prost(message, optional, tag="3")]
6064 pub participant: ::core::option::Option<ParticipantInfo>,
6065 #[prost(message, optional, tag="9")]
6067 pub egress_info: ::core::option::Option<EgressInfo>,
6068 #[prost(message, optional, tag="10")]
6070 pub ingress_info: ::core::option::Option<IngressInfo>,
6071 #[prost(message, optional, tag="8")]
6073 pub track: ::core::option::Option<TrackInfo>,
6074 #[prost(message, optional, tag="12")]
6076 pub job: ::core::option::Option<Job>,
6077 #[prost(string, tag="6")]
6079 pub id: ::prost::alloc::string::String,
6080 #[prost(int64, tag="7")]
6082 pub created_at: i64,
6083 #[deprecated]
6084 #[prost(int32, tag="11")]
6085 pub num_dropped: i32,
6086}
6087#[allow(clippy::derive_partial_eq_without_eq)]
6089#[derive(Clone, PartialEq, ::prost::Message)]
6090pub struct SipStatus {
6091 #[prost(enumeration="SipStatusCode", tag="1")]
6092 pub code: i32,
6093 #[prost(string, tag="2")]
6094 pub status: ::prost::alloc::string::String,
6095}
6096#[allow(clippy::derive_partial_eq_without_eq)]
6097#[derive(Clone, PartialEq, ::prost::Message)]
6098pub struct CreateSipTrunkRequest {
6099 #[prost(string, repeated, tag="1")]
6102 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6103 #[prost(string, tag="2")]
6105 pub outbound_address: ::prost::alloc::string::String,
6106 #[prost(string, tag="3")]
6108 pub outbound_number: ::prost::alloc::string::String,
6109 #[deprecated]
6110 #[prost(string, repeated, tag="4")]
6111 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6112 #[prost(string, repeated, tag="9")]
6116 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6117 #[prost(string, tag="5")]
6120 pub inbound_username: ::prost::alloc::string::String,
6121 #[prost(string, tag="6")]
6122 pub inbound_password: ::prost::alloc::string::String,
6123 #[prost(string, tag="7")]
6124 pub outbound_username: ::prost::alloc::string::String,
6125 #[prost(string, tag="8")]
6126 pub outbound_password: ::prost::alloc::string::String,
6127 #[prost(string, tag="10")]
6129 pub name: ::prost::alloc::string::String,
6130 #[prost(string, tag="11")]
6132 pub metadata: ::prost::alloc::string::String,
6133}
6134#[allow(clippy::derive_partial_eq_without_eq)]
6135#[derive(Clone, PartialEq, ::prost::Message)]
6136pub struct SipCodec {
6137 #[prost(string, tag="1")]
6138 pub name: ::prost::alloc::string::String,
6139 #[prost(uint32, tag="2")]
6140 pub rate: u32,
6141}
6142#[allow(clippy::derive_partial_eq_without_eq)]
6143#[derive(Clone, PartialEq, ::prost::Message)]
6144pub struct SipMediaConfig {
6145 #[prost(bool, tag="1")]
6147 pub only_listed_codecs: bool,
6148 #[prost(message, repeated, tag="2")]
6150 pub codecs: ::prost::alloc::vec::Vec<SipCodec>,
6151 #[prost(enumeration="SipMediaEncryption", optional, tag="3")]
6152 pub encryption: ::core::option::Option<i32>,
6153 #[prost(message, optional, tag="4")]
6155 pub media_timeout: ::core::option::Option<::pbjson_types::Duration>,
6156}
6157#[allow(clippy::derive_partial_eq_without_eq)]
6158#[derive(Clone, PartialEq, ::prost::Message)]
6159pub struct ProviderInfo {
6160 #[prost(string, tag="1")]
6161 pub id: ::prost::alloc::string::String,
6162 #[prost(string, tag="2")]
6163 pub name: ::prost::alloc::string::String,
6164 #[prost(enumeration="ProviderType", tag="3")]
6165 pub r#type: i32,
6166 #[prost(bool, tag="4")]
6167 pub prevent_transfer: bool,
6168}
6169#[allow(clippy::derive_partial_eq_without_eq)]
6170#[derive(Clone, PartialEq, ::prost::Message)]
6171pub struct SipTrunkInfo {
6172 #[prost(string, tag="1")]
6173 pub sip_trunk_id: ::prost::alloc::string::String,
6174 #[prost(enumeration="sip_trunk_info::TrunkKind", tag="14")]
6175 pub kind: i32,
6176 #[prost(string, repeated, tag="2")]
6179 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6180 #[prost(string, tag="3")]
6182 pub outbound_address: ::prost::alloc::string::String,
6183 #[prost(string, tag="4")]
6185 pub outbound_number: ::prost::alloc::string::String,
6186 #[prost(enumeration="SipTransport", tag="13")]
6188 pub transport: i32,
6189 #[deprecated]
6190 #[prost(string, repeated, tag="5")]
6191 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6192 #[prost(string, repeated, tag="10")]
6196 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6197 #[prost(string, tag="6")]
6200 pub inbound_username: ::prost::alloc::string::String,
6201 #[prost(string, tag="7")]
6202 pub inbound_password: ::prost::alloc::string::String,
6203 #[prost(string, tag="8")]
6204 pub outbound_username: ::prost::alloc::string::String,
6205 #[prost(string, tag="9")]
6206 pub outbound_password: ::prost::alloc::string::String,
6207 #[prost(string, tag="11")]
6209 pub name: ::prost::alloc::string::String,
6210 #[prost(string, tag="12")]
6212 pub metadata: ::prost::alloc::string::String,
6213}
6214pub mod sip_trunk_info {
6216 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6217 #[repr(i32)]
6218 pub enum TrunkKind {
6219 TrunkLegacy = 0,
6220 TrunkInbound = 1,
6221 TrunkOutbound = 2,
6222 }
6223 impl TrunkKind {
6224 pub fn as_str_name(&self) -> &'static str {
6229 match self {
6230 TrunkKind::TrunkLegacy => "TRUNK_LEGACY",
6231 TrunkKind::TrunkInbound => "TRUNK_INBOUND",
6232 TrunkKind::TrunkOutbound => "TRUNK_OUTBOUND",
6233 }
6234 }
6235 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6237 match value {
6238 "TRUNK_LEGACY" => Some(Self::TrunkLegacy),
6239 "TRUNK_INBOUND" => Some(Self::TrunkInbound),
6240 "TRUNK_OUTBOUND" => Some(Self::TrunkOutbound),
6241 _ => None,
6242 }
6243 }
6244 }
6245}
6246#[allow(clippy::derive_partial_eq_without_eq)]
6247#[derive(Clone, PartialEq, ::prost::Message)]
6248pub struct CreateSipInboundTrunkRequest {
6249 #[prost(message, optional, tag="1")]
6251 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
6252}
6253#[allow(clippy::derive_partial_eq_without_eq)]
6254#[derive(Clone, PartialEq, ::prost::Message)]
6255pub struct UpdateSipInboundTrunkRequest {
6256 #[prost(string, tag="1")]
6257 pub sip_trunk_id: ::prost::alloc::string::String,
6258 #[prost(oneof="update_sip_inbound_trunk_request::Action", tags="2, 3")]
6259 pub action: ::core::option::Option<update_sip_inbound_trunk_request::Action>,
6260}
6261pub mod update_sip_inbound_trunk_request {
6263 #[allow(clippy::derive_partial_eq_without_eq)]
6264#[derive(Clone, PartialEq, ::prost::Oneof)]
6265 pub enum Action {
6266 #[prost(message, tag="2")]
6267 Replace(super::SipInboundTrunkInfo),
6268 #[prost(message, tag="3")]
6269 Update(super::SipInboundTrunkUpdate),
6270 }
6271}
6272#[allow(clippy::derive_partial_eq_without_eq)]
6273#[derive(Clone, PartialEq, ::prost::Message)]
6274pub struct SipInboundTrunkInfo {
6275 #[prost(string, tag="1")]
6276 pub sip_trunk_id: ::prost::alloc::string::String,
6277 #[prost(string, tag="2")]
6279 pub name: ::prost::alloc::string::String,
6280 #[prost(string, tag="3")]
6282 pub metadata: ::prost::alloc::string::String,
6283 #[prost(string, repeated, tag="4")]
6286 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6287 #[prost(string, repeated, tag="5")]
6290 pub allowed_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6291 #[prost(string, repeated, tag="6")]
6294 pub allowed_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6295 #[prost(string, tag="7")]
6298 pub auth_username: ::prost::alloc::string::String,
6299 #[prost(string, tag="8")]
6300 pub auth_password: ::prost::alloc::string::String,
6301 #[prost(string, tag="19")]
6302 pub auth_realm: ::prost::alloc::string::String,
6303 #[prost(map="string, string", tag="9")]
6305 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6306 #[prost(map="string, string", tag="10")]
6308 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6309 #[prost(map="string, string", tag="14")]
6312 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6313 #[prost(enumeration="SipHeaderOptions", tag="15")]
6320 pub include_headers: i32,
6321 #[prost(message, optional, tag="11")]
6323 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6324 #[prost(message, optional, tag="12")]
6326 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
6327 #[prost(bool, tag="13")]
6328 pub krisp_enabled: bool,
6329 #[deprecated]
6330 #[prost(enumeration="SipMediaEncryption", tag="16")]
6331 pub media_encryption: i32,
6332 #[prost(message, optional, tag="20")]
6333 pub media: ::core::option::Option<SipMediaConfig>,
6334 #[prost(message, optional, tag="17")]
6335 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6336 #[prost(message, optional, tag="18")]
6337 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6338}
6339#[allow(clippy::derive_partial_eq_without_eq)]
6340#[derive(Clone, PartialEq, ::prost::Message)]
6341pub struct SipInboundTrunkUpdate {
6342 #[prost(message, optional, tag="1")]
6343 pub numbers: ::core::option::Option<ListUpdate>,
6344 #[prost(message, optional, tag="2")]
6345 pub allowed_addresses: ::core::option::Option<ListUpdate>,
6346 #[prost(message, optional, tag="3")]
6347 pub allowed_numbers: ::core::option::Option<ListUpdate>,
6348 #[prost(string, optional, tag="4")]
6349 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
6350 #[prost(string, optional, tag="5")]
6351 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
6352 #[prost(string, optional, tag="9")]
6353 pub auth_realm: ::core::option::Option<::prost::alloc::string::String>,
6354 #[prost(string, optional, tag="6")]
6355 pub name: ::core::option::Option<::prost::alloc::string::String>,
6356 #[prost(string, optional, tag="7")]
6357 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6358 #[deprecated]
6359 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
6360 pub media_encryption: ::core::option::Option<i32>,
6361 #[prost(message, optional, tag="10")]
6362 pub media: ::core::option::Option<SipMediaConfig>,
6363}
6364#[allow(clippy::derive_partial_eq_without_eq)]
6365#[derive(Clone, PartialEq, ::prost::Message)]
6366pub struct CreateSipOutboundTrunkRequest {
6367 #[prost(message, optional, tag="1")]
6369 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
6370}
6371#[allow(clippy::derive_partial_eq_without_eq)]
6372#[derive(Clone, PartialEq, ::prost::Message)]
6373pub struct UpdateSipOutboundTrunkRequest {
6374 #[prost(string, tag="1")]
6375 pub sip_trunk_id: ::prost::alloc::string::String,
6376 #[prost(oneof="update_sip_outbound_trunk_request::Action", tags="2, 3")]
6377 pub action: ::core::option::Option<update_sip_outbound_trunk_request::Action>,
6378}
6379pub mod update_sip_outbound_trunk_request {
6381 #[allow(clippy::derive_partial_eq_without_eq)]
6382#[derive(Clone, PartialEq, ::prost::Oneof)]
6383 pub enum Action {
6384 #[prost(message, tag="2")]
6385 Replace(super::SipOutboundTrunkInfo),
6386 #[prost(message, tag="3")]
6387 Update(super::SipOutboundTrunkUpdate),
6388 }
6389}
6390#[allow(clippy::derive_partial_eq_without_eq)]
6391#[derive(Clone, PartialEq, ::prost::Message)]
6392pub struct SipOutboundTrunkInfo {
6393 #[prost(string, tag="1")]
6394 pub sip_trunk_id: ::prost::alloc::string::String,
6395 #[prost(string, tag="2")]
6397 pub name: ::prost::alloc::string::String,
6398 #[prost(string, tag="3")]
6400 pub metadata: ::prost::alloc::string::String,
6401 #[prost(string, tag="4")]
6404 pub address: ::prost::alloc::string::String,
6405 #[prost(string, tag="14")]
6407 pub destination_country: ::prost::alloc::string::String,
6408 #[prost(enumeration="SipTransport", tag="5")]
6410 pub transport: i32,
6411 #[prost(string, repeated, tag="6")]
6413 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6414 #[prost(string, tag="7")]
6417 pub auth_username: ::prost::alloc::string::String,
6418 #[prost(string, tag="8")]
6419 pub auth_password: ::prost::alloc::string::String,
6420 #[prost(map="string, string", tag="9")]
6423 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6424 #[prost(map="string, string", tag="10")]
6427 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6428 #[prost(map="string, string", tag="11")]
6431 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6432 #[prost(enumeration="SipHeaderOptions", tag="12")]
6439 pub include_headers: i32,
6440 #[deprecated]
6441 #[prost(enumeration="SipMediaEncryption", tag="13")]
6442 pub media_encryption: i32,
6443 #[prost(message, optional, tag="18")]
6444 pub media: ::core::option::Option<SipMediaConfig>,
6445 #[prost(string, tag="15")]
6449 pub from_host: ::prost::alloc::string::String,
6450 #[prost(message, optional, tag="16")]
6451 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6452 #[prost(message, optional, tag="17")]
6453 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6454}
6455#[allow(clippy::derive_partial_eq_without_eq)]
6456#[derive(Clone, PartialEq, ::prost::Message)]
6457pub struct SipOutboundTrunkUpdate {
6458 #[prost(string, optional, tag="1")]
6459 pub address: ::core::option::Option<::prost::alloc::string::String>,
6460 #[prost(enumeration="SipTransport", optional, tag="2")]
6461 pub transport: ::core::option::Option<i32>,
6462 #[prost(string, optional, tag="9")]
6463 pub destination_country: ::core::option::Option<::prost::alloc::string::String>,
6464 #[prost(message, optional, tag="3")]
6465 pub numbers: ::core::option::Option<ListUpdate>,
6466 #[prost(string, optional, tag="4")]
6467 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
6468 #[prost(string, optional, tag="5")]
6469 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
6470 #[prost(string, optional, tag="6")]
6471 pub name: ::core::option::Option<::prost::alloc::string::String>,
6472 #[prost(string, optional, tag="7")]
6473 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6474 #[deprecated]
6475 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
6476 pub media_encryption: ::core::option::Option<i32>,
6477 #[prost(message, optional, tag="11")]
6478 pub media: ::core::option::Option<SipMediaConfig>,
6479 #[prost(string, optional, tag="10")]
6480 pub from_host: ::core::option::Option<::prost::alloc::string::String>,
6481}
6482#[allow(clippy::derive_partial_eq_without_eq)]
6483#[derive(Clone, PartialEq, ::prost::Message)]
6484pub struct GetSipInboundTrunkRequest {
6485 #[prost(string, tag="1")]
6486 pub sip_trunk_id: ::prost::alloc::string::String,
6487}
6488#[allow(clippy::derive_partial_eq_without_eq)]
6489#[derive(Clone, PartialEq, ::prost::Message)]
6490pub struct GetSipInboundTrunkResponse {
6491 #[prost(message, optional, tag="1")]
6492 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
6493}
6494#[allow(clippy::derive_partial_eq_without_eq)]
6495#[derive(Clone, PartialEq, ::prost::Message)]
6496pub struct GetSipOutboundTrunkRequest {
6497 #[prost(string, tag="1")]
6498 pub sip_trunk_id: ::prost::alloc::string::String,
6499}
6500#[allow(clippy::derive_partial_eq_without_eq)]
6501#[derive(Clone, PartialEq, ::prost::Message)]
6502pub struct GetSipOutboundTrunkResponse {
6503 #[prost(message, optional, tag="1")]
6504 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
6505}
6506#[allow(clippy::derive_partial_eq_without_eq)]
6507#[derive(Clone, PartialEq, ::prost::Message)]
6508pub struct ListSipTrunkRequest {
6509 #[prost(message, optional, tag="1")]
6510 pub page: ::core::option::Option<Pagination>,
6511}
6512#[allow(clippy::derive_partial_eq_without_eq)]
6513#[derive(Clone, PartialEq, ::prost::Message)]
6514pub struct ListSipTrunkResponse {
6515 #[prost(message, repeated, tag="1")]
6516 pub items: ::prost::alloc::vec::Vec<SipTrunkInfo>,
6517}
6518#[allow(clippy::derive_partial_eq_without_eq)]
6520#[derive(Clone, PartialEq, ::prost::Message)]
6521pub struct ListSipInboundTrunkRequest {
6522 #[prost(message, optional, tag="3")]
6523 pub page: ::core::option::Option<Pagination>,
6524 #[prost(string, repeated, tag="1")]
6527 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6528 #[prost(string, repeated, tag="2")]
6530 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6531}
6532#[allow(clippy::derive_partial_eq_without_eq)]
6533#[derive(Clone, PartialEq, ::prost::Message)]
6534pub struct ListSipInboundTrunkResponse {
6535 #[prost(message, repeated, tag="1")]
6536 pub items: ::prost::alloc::vec::Vec<SipInboundTrunkInfo>,
6537}
6538#[allow(clippy::derive_partial_eq_without_eq)]
6540#[derive(Clone, PartialEq, ::prost::Message)]
6541pub struct ListSipOutboundTrunkRequest {
6542 #[prost(message, optional, tag="3")]
6543 pub page: ::core::option::Option<Pagination>,
6544 #[prost(string, repeated, tag="1")]
6547 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6548 #[prost(string, repeated, tag="2")]
6550 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6551}
6552#[allow(clippy::derive_partial_eq_without_eq)]
6553#[derive(Clone, PartialEq, ::prost::Message)]
6554pub struct ListSipOutboundTrunkResponse {
6555 #[prost(message, repeated, tag="1")]
6556 pub items: ::prost::alloc::vec::Vec<SipOutboundTrunkInfo>,
6557}
6558#[allow(clippy::derive_partial_eq_without_eq)]
6559#[derive(Clone, PartialEq, ::prost::Message)]
6560pub struct DeleteSipTrunkRequest {
6561 #[prost(string, tag="1")]
6562 pub sip_trunk_id: ::prost::alloc::string::String,
6563}
6564#[allow(clippy::derive_partial_eq_without_eq)]
6565#[derive(Clone, PartialEq, ::prost::Message)]
6566pub struct SipDispatchRuleDirect {
6567 #[prost(string, tag="1")]
6569 pub room_name: ::prost::alloc::string::String,
6570 #[prost(string, tag="2")]
6572 pub pin: ::prost::alloc::string::String,
6573}
6574#[allow(clippy::derive_partial_eq_without_eq)]
6575#[derive(Clone, PartialEq, ::prost::Message)]
6576pub struct SipDispatchRuleIndividual {
6577 #[prost(string, tag="1")]
6579 pub room_prefix: ::prost::alloc::string::String,
6580 #[prost(string, tag="2")]
6582 pub pin: ::prost::alloc::string::String,
6583 #[prost(bool, tag="3")]
6585 pub no_randomness: bool,
6586}
6587#[allow(clippy::derive_partial_eq_without_eq)]
6588#[derive(Clone, PartialEq, ::prost::Message)]
6589pub struct SipDispatchRuleCallee {
6590 #[prost(string, tag="1")]
6592 pub room_prefix: ::prost::alloc::string::String,
6593 #[prost(string, tag="2")]
6595 pub pin: ::prost::alloc::string::String,
6596 #[prost(bool, tag="3")]
6598 pub randomize: bool,
6599}
6600#[allow(clippy::derive_partial_eq_without_eq)]
6601#[derive(Clone, PartialEq, ::prost::Message)]
6602pub struct SipDispatchRule {
6603 #[prost(oneof="sip_dispatch_rule::Rule", tags="1, 2, 3")]
6604 pub rule: ::core::option::Option<sip_dispatch_rule::Rule>,
6605}
6606pub mod sip_dispatch_rule {
6608 #[allow(clippy::derive_partial_eq_without_eq)]
6609#[derive(Clone, PartialEq, ::prost::Oneof)]
6610 pub enum Rule {
6611 #[prost(message, tag="1")]
6615 DispatchRuleDirect(super::SipDispatchRuleDirect),
6616 #[prost(message, tag="2")]
6618 DispatchRuleIndividual(super::SipDispatchRuleIndividual),
6619 #[prost(message, tag="3")]
6621 DispatchRuleCallee(super::SipDispatchRuleCallee),
6622 }
6623}
6624#[allow(clippy::derive_partial_eq_without_eq)]
6625#[derive(Clone, PartialEq, ::prost::Message)]
6626pub struct CreateSipDispatchRuleRequest {
6627 #[prost(message, optional, tag="10")]
6629 pub dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
6630 #[deprecated]
6631 #[prost(message, optional, tag="1")]
6632 pub rule: ::core::option::Option<SipDispatchRule>,
6633 #[deprecated]
6636 #[prost(string, repeated, tag="2")]
6637 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6638 #[deprecated]
6641 #[prost(bool, tag="3")]
6642 pub hide_phone_number: bool,
6643 #[deprecated]
6645 #[prost(string, repeated, tag="6")]
6646 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6647 #[deprecated]
6649 #[prost(string, tag="4")]
6650 pub name: ::prost::alloc::string::String,
6651 #[deprecated]
6654 #[prost(string, tag="5")]
6655 pub metadata: ::prost::alloc::string::String,
6656 #[prost(map="string, string", tag="7")]
6659 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6660 #[deprecated]
6662 #[prost(string, tag="8")]
6663 pub room_preset: ::prost::alloc::string::String,
6664 #[deprecated]
6666 #[prost(message, optional, tag="9")]
6667 pub room_config: ::core::option::Option<RoomConfiguration>,
6668}
6669#[allow(clippy::derive_partial_eq_without_eq)]
6670#[derive(Clone, PartialEq, ::prost::Message)]
6671pub struct UpdateSipDispatchRuleRequest {
6672 #[prost(string, tag="1")]
6673 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6674 #[prost(oneof="update_sip_dispatch_rule_request::Action", tags="2, 3")]
6675 pub action: ::core::option::Option<update_sip_dispatch_rule_request::Action>,
6676}
6677pub mod update_sip_dispatch_rule_request {
6679 #[allow(clippy::derive_partial_eq_without_eq)]
6680#[derive(Clone, PartialEq, ::prost::Oneof)]
6681 pub enum Action {
6682 #[prost(message, tag="2")]
6683 Replace(super::SipDispatchRuleInfo),
6684 #[prost(message, tag="3")]
6685 Update(super::SipDispatchRuleUpdate),
6686 }
6687}
6688#[allow(clippy::derive_partial_eq_without_eq)]
6689#[derive(Clone, PartialEq, ::prost::Message)]
6690pub struct SipDispatchRuleInfo {
6691 #[prost(string, tag="1")]
6692 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6693 #[prost(message, optional, tag="2")]
6694 pub rule: ::core::option::Option<SipDispatchRule>,
6695 #[prost(string, repeated, tag="3")]
6696 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6697 #[prost(bool, tag="4")]
6698 pub hide_phone_number: bool,
6699 #[prost(string, repeated, tag="7")]
6701 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6702 #[prost(string, repeated, tag="13")]
6704 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6705 #[prost(string, tag="5")]
6707 pub name: ::prost::alloc::string::String,
6708 #[prost(string, tag="6")]
6711 pub metadata: ::prost::alloc::string::String,
6712 #[prost(map="string, string", tag="8")]
6715 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6716 #[prost(string, tag="9")]
6718 pub room_preset: ::prost::alloc::string::String,
6719 #[prost(message, optional, tag="10")]
6721 pub room_config: ::core::option::Option<RoomConfiguration>,
6722 #[prost(message, optional, tag="16")]
6723 pub media: ::core::option::Option<SipMediaConfig>,
6724 #[prost(bool, tag="11")]
6725 pub krisp_enabled: bool,
6726 #[deprecated]
6727 #[prost(enumeration="SipMediaEncryption", tag="12")]
6728 pub media_encryption: i32,
6729 #[prost(message, optional, tag="14")]
6730 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6731 #[prost(message, optional, tag="15")]
6732 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6733}
6734#[allow(clippy::derive_partial_eq_without_eq)]
6735#[derive(Clone, PartialEq, ::prost::Message)]
6736pub struct SipDispatchRuleUpdate {
6737 #[prost(message, optional, tag="1")]
6738 pub trunk_ids: ::core::option::Option<ListUpdate>,
6739 #[prost(message, optional, tag="2")]
6740 pub rule: ::core::option::Option<SipDispatchRule>,
6741 #[prost(string, optional, tag="3")]
6742 pub name: ::core::option::Option<::prost::alloc::string::String>,
6743 #[prost(string, optional, tag="4")]
6744 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6745 #[prost(map="string, string", tag="5")]
6746 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6747 #[deprecated]
6748 #[prost(enumeration="SipMediaEncryption", optional, tag="6")]
6749 pub media_encryption: ::core::option::Option<i32>,
6750 #[prost(message, optional, tag="7")]
6751 pub media: ::core::option::Option<SipMediaConfig>,
6752}
6753#[allow(clippy::derive_partial_eq_without_eq)]
6755#[derive(Clone, PartialEq, ::prost::Message)]
6756pub struct ListSipDispatchRuleRequest {
6757 #[prost(message, optional, tag="3")]
6758 pub page: ::core::option::Option<Pagination>,
6759 #[prost(string, repeated, tag="1")]
6762 pub dispatch_rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6763 #[prost(string, repeated, tag="2")]
6765 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6766}
6767#[allow(clippy::derive_partial_eq_without_eq)]
6768#[derive(Clone, PartialEq, ::prost::Message)]
6769pub struct ListSipDispatchRuleResponse {
6770 #[prost(message, repeated, tag="1")]
6771 pub items: ::prost::alloc::vec::Vec<SipDispatchRuleInfo>,
6772}
6773#[allow(clippy::derive_partial_eq_without_eq)]
6774#[derive(Clone, PartialEq, ::prost::Message)]
6775pub struct DeleteSipDispatchRuleRequest {
6776 #[prost(string, tag="1")]
6777 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6778}
6779#[allow(clippy::derive_partial_eq_without_eq)]
6780#[derive(Clone, PartialEq, ::prost::Message)]
6781pub struct SipOutboundConfig {
6782 #[prost(string, tag="1")]
6784 pub hostname: ::prost::alloc::string::String,
6785 #[prost(string, tag="7")]
6787 pub destination_country: ::prost::alloc::string::String,
6788 #[prost(enumeration="SipTransport", tag="2")]
6790 pub transport: i32,
6791 #[prost(string, tag="3")]
6794 pub auth_username: ::prost::alloc::string::String,
6795 #[prost(string, tag="4")]
6796 pub auth_password: ::prost::alloc::string::String,
6797 #[prost(map="string, string", tag="5")]
6800 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6801 #[prost(map="string, string", tag="6")]
6804 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6805 #[prost(string, tag="8")]
6807 pub from_host: ::prost::alloc::string::String,
6808}
6809#[allow(clippy::derive_partial_eq_without_eq)]
6812#[derive(Clone, PartialEq, ::prost::Message)]
6813pub struct CreateSipParticipantRequest {
6814 #[prost(string, tag="1")]
6816 pub sip_trunk_id: ::prost::alloc::string::String,
6817 #[prost(message, optional, tag="20")]
6818 pub trunk: ::core::option::Option<SipOutboundConfig>,
6819 #[prost(message, optional, tag="24")]
6821 pub sip_request_uri: ::core::option::Option<SipRequestDest>,
6822 #[prost(message, optional, tag="25")]
6824 pub sip_to_header: ::core::option::Option<SipNamedDest>,
6825 #[prost(message, optional, tag="26")]
6827 pub sip_from_header: ::core::option::Option<SipNamedDest>,
6828 #[prost(string, tag="2")]
6830 pub sip_call_to: ::prost::alloc::string::String,
6831 #[prost(string, tag="15")]
6833 pub sip_number: ::prost::alloc::string::String,
6834 #[prost(string, tag="3")]
6836 pub room_name: ::prost::alloc::string::String,
6837 #[prost(string, tag="4")]
6839 pub participant_identity: ::prost::alloc::string::String,
6840 #[prost(string, tag="7")]
6842 pub participant_name: ::prost::alloc::string::String,
6843 #[prost(string, tag="8")]
6845 pub participant_metadata: ::prost::alloc::string::String,
6846 #[prost(map="string, string", tag="9")]
6848 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6849 #[prost(string, tag="5")]
6852 pub dtmf: ::prost::alloc::string::String,
6853 #[deprecated]
6855 #[prost(bool, tag="6")]
6856 pub play_ringtone: bool,
6857 #[prost(bool, tag="13")]
6858 pub play_dialtone: bool,
6859 #[prost(bool, tag="10")]
6862 pub hide_phone_number: bool,
6863 #[prost(map="string, string", tag="16")]
6865 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6866 #[prost(enumeration="SipHeaderOptions", tag="17")]
6873 pub include_headers: i32,
6874 #[prost(message, optional, tag="11")]
6876 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6877 #[prost(message, optional, tag="12")]
6879 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
6880 #[prost(bool, tag="14")]
6882 pub krisp_enabled: bool,
6883 #[deprecated]
6884 #[prost(enumeration="SipMediaEncryption", tag="18")]
6885 pub media_encryption: i32,
6886 #[prost(message, optional, tag="23")]
6887 pub media: ::core::option::Option<SipMediaConfig>,
6888 #[prost(bool, tag="19")]
6890 pub wait_until_answered: bool,
6891 #[prost(string, optional, tag="21")]
6898 pub display_name: ::core::option::Option<::prost::alloc::string::String>,
6899 #[prost(message, optional, tag="22")]
6901 pub destination: ::core::option::Option<Destination>,
6902}
6903#[allow(clippy::derive_partial_eq_without_eq)]
6904#[derive(Clone, PartialEq, ::prost::Message)]
6905pub struct SipParticipantInfo {
6906 #[prost(string, tag="1")]
6907 pub participant_id: ::prost::alloc::string::String,
6908 #[prost(string, tag="2")]
6909 pub participant_identity: ::prost::alloc::string::String,
6910 #[prost(string, tag="3")]
6911 pub room_name: ::prost::alloc::string::String,
6912 #[prost(string, tag="4")]
6913 pub sip_call_id: ::prost::alloc::string::String,
6914}
6915#[allow(clippy::derive_partial_eq_without_eq)]
6916#[derive(Clone, PartialEq, ::prost::Message)]
6917pub struct TransferSipParticipantRequest {
6918 #[prost(string, tag="1")]
6919 pub participant_identity: ::prost::alloc::string::String,
6920 #[prost(string, tag="2")]
6921 pub room_name: ::prost::alloc::string::String,
6922 #[prost(string, tag="3")]
6923 pub transfer_to: ::prost::alloc::string::String,
6924 #[prost(bool, tag="4")]
6926 pub play_dialtone: bool,
6927 #[prost(map="string, string", tag="5")]
6929 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6930 #[prost(message, optional, tag="6")]
6932 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6933}
6934#[allow(clippy::derive_partial_eq_without_eq)]
6935#[derive(Clone, PartialEq, ::prost::Message)]
6936pub struct SipCallInfo {
6937 #[prost(string, tag="1")]
6938 pub call_id: ::prost::alloc::string::String,
6939 #[prost(string, tag="2")]
6940 pub trunk_id: ::prost::alloc::string::String,
6941 #[prost(string, tag="16")]
6942 pub dispatch_rule_id: ::prost::alloc::string::String,
6943 #[prost(string, tag="17")]
6944 pub region: ::prost::alloc::string::String,
6945 #[prost(string, tag="3")]
6946 pub room_name: ::prost::alloc::string::String,
6947 #[prost(string, tag="4")]
6949 pub room_id: ::prost::alloc::string::String,
6950 #[prost(string, tag="5")]
6951 pub participant_identity: ::prost::alloc::string::String,
6952 #[prost(map="string, string", tag="18")]
6953 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6954 #[prost(message, optional, tag="6")]
6955 pub from_uri: ::core::option::Option<SipUri>,
6956 #[prost(message, optional, tag="7")]
6957 pub to_uri: ::core::option::Option<SipUri>,
6958 #[deprecated]
6959 #[prost(int64, tag="9")]
6960 pub created_at: i64,
6961 #[deprecated]
6962 #[prost(int64, tag="10")]
6963 pub started_at: i64,
6964 #[deprecated]
6965 #[prost(int64, tag="11")]
6966 pub ended_at: i64,
6967 #[prost(enumeration="SipFeature", repeated, tag="14")]
6968 pub enabled_features: ::prost::alloc::vec::Vec<i32>,
6969 #[prost(enumeration="SipCallDirection", tag="15")]
6970 pub call_direction: i32,
6971 #[prost(enumeration="SipCallStatus", tag="8")]
6972 pub call_status: i32,
6973 #[prost(int64, tag="22")]
6974 pub created_at_ns: i64,
6975 #[prost(int64, tag="23")]
6976 pub started_at_ns: i64,
6977 #[prost(int64, tag="24")]
6978 pub ended_at_ns: i64,
6979 #[prost(enumeration="DisconnectReason", tag="12")]
6980 pub disconnect_reason: i32,
6981 #[prost(string, tag="13")]
6982 pub error: ::prost::alloc::string::String,
6983 #[prost(message, optional, tag="19")]
6984 pub call_status_code: ::core::option::Option<SipStatus>,
6985 #[prost(string, tag="20")]
6986 pub audio_codec: ::prost::alloc::string::String,
6987 #[prost(string, tag="21")]
6988 pub media_encryption: ::prost::alloc::string::String,
6989 #[prost(string, tag="25")]
6990 pub pcap_file_link: ::prost::alloc::string::String,
6991 #[prost(message, repeated, tag="26")]
6992 pub call_context: ::prost::alloc::vec::Vec<::pbjson_types::Any>,
6993 #[prost(message, optional, tag="27")]
6994 pub provider_info: ::core::option::Option<ProviderInfo>,
6995 #[prost(string, tag="28")]
6996 pub sip_call_id: ::prost::alloc::string::String,
6997}
6998#[allow(clippy::derive_partial_eq_without_eq)]
6999#[derive(Clone, PartialEq, ::prost::Message)]
7000pub struct SipTransferInfo {
7001 #[prost(string, tag="1")]
7002 pub transfer_id: ::prost::alloc::string::String,
7003 #[prost(string, tag="2")]
7004 pub call_id: ::prost::alloc::string::String,
7005 #[prost(string, tag="3")]
7006 pub transfer_to: ::prost::alloc::string::String,
7007 #[prost(int64, tag="4")]
7008 pub transfer_initiated_at_ns: i64,
7009 #[prost(int64, tag="5")]
7010 pub transfer_completed_at_ns: i64,
7011 #[prost(enumeration="SipTransferStatus", tag="6")]
7012 pub transfer_status: i32,
7013 #[prost(string, tag="7")]
7014 pub error: ::prost::alloc::string::String,
7015 #[prost(message, optional, tag="8")]
7016 pub transfer_status_code: ::core::option::Option<SipStatus>,
7017}
7018#[allow(clippy::derive_partial_eq_without_eq)]
7019#[derive(Clone, PartialEq, ::prost::Message)]
7020pub struct SipUri {
7021 #[prost(string, tag="1")]
7022 pub user: ::prost::alloc::string::String,
7023 #[prost(string, tag="2")]
7024 pub host: ::prost::alloc::string::String,
7025 #[prost(string, tag="3")]
7026 pub ip: ::prost::alloc::string::String,
7027 #[prost(uint32, tag="4")]
7028 pub port: u32,
7029 #[prost(enumeration="SipTransport", tag="5")]
7030 pub transport: i32,
7031}
7032#[allow(clippy::derive_partial_eq_without_eq)]
7033#[derive(Clone, PartialEq, ::prost::Message)]
7034pub struct SipRequestDest {
7035 #[prost(oneof="sip_request_dest::Uri", tags="1, 2")]
7036 pub uri: ::core::option::Option<sip_request_dest::Uri>,
7037}
7038pub mod sip_request_dest {
7040 #[allow(clippy::derive_partial_eq_without_eq)]
7041#[derive(Clone, PartialEq, ::prost::Oneof)]
7042 pub enum Uri {
7043 #[prost(string, tag="1")]
7045 Raw(::prost::alloc::string::String),
7046 #[prost(message, tag="2")]
7047 Values(super::SipUri),
7048 }
7049}
7050#[allow(clippy::derive_partial_eq_without_eq)]
7051#[derive(Clone, PartialEq, ::prost::Message)]
7052pub struct SipNamedDest {
7053 #[prost(string, tag="3")]
7054 pub display_name: ::prost::alloc::string::String,
7055 #[prost(oneof="sip_named_dest::Uri", tags="1, 2")]
7056 pub uri: ::core::option::Option<sip_named_dest::Uri>,
7057}
7058pub mod sip_named_dest {
7060 #[allow(clippy::derive_partial_eq_without_eq)]
7061#[derive(Clone, PartialEq, ::prost::Oneof)]
7062 pub enum Uri {
7063 #[prost(string, tag="1")]
7065 Raw(::prost::alloc::string::String),
7066 #[prost(message, tag="2")]
7067 Values(super::SipUri),
7068 }
7069}
7070#[allow(clippy::derive_partial_eq_without_eq)]
7071#[derive(Clone, PartialEq, ::prost::Message)]
7072pub struct Destination {
7073 #[prost(string, tag="1")]
7074 pub city: ::prost::alloc::string::String,
7075 #[prost(string, tag="2")]
7076 pub country: ::prost::alloc::string::String,
7077 #[prost(string, tag="3")]
7078 pub region: ::prost::alloc::string::String,
7079}
7080#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7081#[repr(i32)]
7082pub enum SipStatusCode {
7083 SipStatusUnknown = 0,
7084 SipStatusTrying = 100,
7085 SipStatusRinging = 180,
7086 SipStatusCallIsForwarded = 181,
7087 SipStatusQueued = 182,
7088 SipStatusSessionProgress = 183,
7089 SipStatusEarlyDialogTerminated = 199,
7090 SipStatusOk = 200,
7091 SipStatusAccepted = 202,
7092 SipStatusNoNotification = 204,
7093 SipStatusMultipleChoices = 300,
7094 SipStatusMovedPermanently = 301,
7095 SipStatusMovedTemporarily = 302,
7096 SipStatusUseProxy = 305,
7097 SipStatusAlternativeService = 380,
7098 SipStatusBadRequest = 400,
7099 SipStatusUnauthorized = 401,
7100 SipStatusPaymentRequired = 402,
7101 SipStatusForbidden = 403,
7102 SipStatusNotfound = 404,
7103 SipStatusMethodNotAllowed = 405,
7104 SipStatusNotAcceptable = 406,
7105 SipStatusProxyAuthRequired = 407,
7106 SipStatusRequestTimeout = 408,
7107 SipStatusConflict = 409,
7108 SipStatusGone = 410,
7109 SipStatusLengthRequired = 411,
7110 SipStatusConditionalRequestFailed = 412,
7111 SipStatusRequestEntityTooLarge = 413,
7112 SipStatusRequestUriTooLong = 414,
7113 SipStatusUnsupportedMediaType = 415,
7114 SipStatusRequestedRangeNotSatisfiable = 416,
7115 SipStatusUnknownResourcePriority = 417,
7116 SipStatusBadExtension = 420,
7117 SipStatusExtensionRequired = 421,
7118 SipStatusSessionIntervalTooSmall = 422,
7119 SipStatusIntervalTooBrief = 423,
7120 SipStatusBadLocationInformation = 424,
7121 SipStatusBadAlertMessage = 425,
7122 SipStatusUseIdentityHeader = 428,
7123 SipStatusProvideReferrerIdentity = 429,
7124 SipStatusFlowFailed = 430,
7125 SipStatusAnonymityDisallowed = 433,
7126 SipStatusBadIdentityInfo = 436,
7127 SipStatusUnsupportedCertificate = 437,
7128 SipStatusInvalidIdentityHeader = 438,
7129 SipStatusFirstHopLacksOutboundSupport = 439,
7130 SipStatusMaxBreadthExceeded = 440,
7131 SipStatusBadInfoPackage = 469,
7132 SipStatusConsentNeeded = 470,
7133 SipStatusTemporarilyUnavailable = 480,
7134 SipStatusCallTransactionDoesNotExists = 481,
7135 SipStatusLoopDetected = 482,
7136 SipStatusTooManyHops = 483,
7137 SipStatusAddressIncomplete = 484,
7138 SipStatusAmbiguous = 485,
7139 SipStatusBusyHere = 486,
7140 SipStatusRequestTerminated = 487,
7141 SipStatusNotAcceptableHere = 488,
7142 SipStatusBadEvent = 489,
7143 SipStatusRequestPending = 491,
7144 SipStatusUndecipherable = 493,
7145 SipStatusSecurityAgreementRequired = 494,
7146 SipStatusInternalServerError = 500,
7147 SipStatusNotImplemented = 501,
7148 SipStatusBadGateway = 502,
7149 SipStatusServiceUnavailable = 503,
7150 SipStatusGatewayTimeout = 504,
7151 SipStatusVersionNotSupported = 505,
7152 SipStatusMessageTooLarge = 513,
7153 SipStatusGlobalBusyEverywhere = 600,
7154 SipStatusGlobalDecline = 603,
7155 SipStatusGlobalDoesNotExistAnywhere = 604,
7156 SipStatusGlobalNotAcceptable = 606,
7157 SipStatusGlobalUnwanted = 607,
7158 SipStatusGlobalRejected = 608,
7159}
7160impl SipStatusCode {
7161 pub fn as_str_name(&self) -> &'static str {
7166 match self {
7167 SipStatusCode::SipStatusUnknown => "SIP_STATUS_UNKNOWN",
7168 SipStatusCode::SipStatusTrying => "SIP_STATUS_TRYING",
7169 SipStatusCode::SipStatusRinging => "SIP_STATUS_RINGING",
7170 SipStatusCode::SipStatusCallIsForwarded => "SIP_STATUS_CALL_IS_FORWARDED",
7171 SipStatusCode::SipStatusQueued => "SIP_STATUS_QUEUED",
7172 SipStatusCode::SipStatusSessionProgress => "SIP_STATUS_SESSION_PROGRESS",
7173 SipStatusCode::SipStatusEarlyDialogTerminated => "SIP_STATUS_EARLY_DIALOG_TERMINATED",
7174 SipStatusCode::SipStatusOk => "SIP_STATUS_OK",
7175 SipStatusCode::SipStatusAccepted => "SIP_STATUS_ACCEPTED",
7176 SipStatusCode::SipStatusNoNotification => "SIP_STATUS_NO_NOTIFICATION",
7177 SipStatusCode::SipStatusMultipleChoices => "SIP_STATUS_MULTIPLE_CHOICES",
7178 SipStatusCode::SipStatusMovedPermanently => "SIP_STATUS_MOVED_PERMANENTLY",
7179 SipStatusCode::SipStatusMovedTemporarily => "SIP_STATUS_MOVED_TEMPORARILY",
7180 SipStatusCode::SipStatusUseProxy => "SIP_STATUS_USE_PROXY",
7181 SipStatusCode::SipStatusAlternativeService => "SIP_STATUS_ALTERNATIVE_SERVICE",
7182 SipStatusCode::SipStatusBadRequest => "SIP_STATUS_BAD_REQUEST",
7183 SipStatusCode::SipStatusUnauthorized => "SIP_STATUS_UNAUTHORIZED",
7184 SipStatusCode::SipStatusPaymentRequired => "SIP_STATUS_PAYMENT_REQUIRED",
7185 SipStatusCode::SipStatusForbidden => "SIP_STATUS_FORBIDDEN",
7186 SipStatusCode::SipStatusNotfound => "SIP_STATUS_NOTFOUND",
7187 SipStatusCode::SipStatusMethodNotAllowed => "SIP_STATUS_METHOD_NOT_ALLOWED",
7188 SipStatusCode::SipStatusNotAcceptable => "SIP_STATUS_NOT_ACCEPTABLE",
7189 SipStatusCode::SipStatusProxyAuthRequired => "SIP_STATUS_PROXY_AUTH_REQUIRED",
7190 SipStatusCode::SipStatusRequestTimeout => "SIP_STATUS_REQUEST_TIMEOUT",
7191 SipStatusCode::SipStatusConflict => "SIP_STATUS_CONFLICT",
7192 SipStatusCode::SipStatusGone => "SIP_STATUS_GONE",
7193 SipStatusCode::SipStatusLengthRequired => "SIP_STATUS_LENGTH_REQUIRED",
7194 SipStatusCode::SipStatusConditionalRequestFailed => "SIP_STATUS_CONDITIONAL_REQUEST_FAILED",
7195 SipStatusCode::SipStatusRequestEntityTooLarge => "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE",
7196 SipStatusCode::SipStatusRequestUriTooLong => "SIP_STATUS_REQUEST_URI_TOO_LONG",
7197 SipStatusCode::SipStatusUnsupportedMediaType => "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE",
7198 SipStatusCode::SipStatusRequestedRangeNotSatisfiable => "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE",
7199 SipStatusCode::SipStatusUnknownResourcePriority => "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY",
7200 SipStatusCode::SipStatusBadExtension => "SIP_STATUS_BAD_EXTENSION",
7201 SipStatusCode::SipStatusExtensionRequired => "SIP_STATUS_EXTENSION_REQUIRED",
7202 SipStatusCode::SipStatusSessionIntervalTooSmall => "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL",
7203 SipStatusCode::SipStatusIntervalTooBrief => "SIP_STATUS_INTERVAL_TOO_BRIEF",
7204 SipStatusCode::SipStatusBadLocationInformation => "SIP_STATUS_BAD_LOCATION_INFORMATION",
7205 SipStatusCode::SipStatusBadAlertMessage => "SIP_STATUS_BAD_ALERT_MESSAGE",
7206 SipStatusCode::SipStatusUseIdentityHeader => "SIP_STATUS_USE_IDENTITY_HEADER",
7207 SipStatusCode::SipStatusProvideReferrerIdentity => "SIP_STATUS_PROVIDE_REFERRER_IDENTITY",
7208 SipStatusCode::SipStatusFlowFailed => "SIP_STATUS_FLOW_FAILED",
7209 SipStatusCode::SipStatusAnonymityDisallowed => "SIP_STATUS_ANONYMITY_DISALLOWED",
7210 SipStatusCode::SipStatusBadIdentityInfo => "SIP_STATUS_BAD_IDENTITY_INFO",
7211 SipStatusCode::SipStatusUnsupportedCertificate => "SIP_STATUS_UNSUPPORTED_CERTIFICATE",
7212 SipStatusCode::SipStatusInvalidIdentityHeader => "SIP_STATUS_INVALID_IDENTITY_HEADER",
7213 SipStatusCode::SipStatusFirstHopLacksOutboundSupport => "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT",
7214 SipStatusCode::SipStatusMaxBreadthExceeded => "SIP_STATUS_MAX_BREADTH_EXCEEDED",
7215 SipStatusCode::SipStatusBadInfoPackage => "SIP_STATUS_BAD_INFO_PACKAGE",
7216 SipStatusCode::SipStatusConsentNeeded => "SIP_STATUS_CONSENT_NEEDED",
7217 SipStatusCode::SipStatusTemporarilyUnavailable => "SIP_STATUS_TEMPORARILY_UNAVAILABLE",
7218 SipStatusCode::SipStatusCallTransactionDoesNotExists => "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS",
7219 SipStatusCode::SipStatusLoopDetected => "SIP_STATUS_LOOP_DETECTED",
7220 SipStatusCode::SipStatusTooManyHops => "SIP_STATUS_TOO_MANY_HOPS",
7221 SipStatusCode::SipStatusAddressIncomplete => "SIP_STATUS_ADDRESS_INCOMPLETE",
7222 SipStatusCode::SipStatusAmbiguous => "SIP_STATUS_AMBIGUOUS",
7223 SipStatusCode::SipStatusBusyHere => "SIP_STATUS_BUSY_HERE",
7224 SipStatusCode::SipStatusRequestTerminated => "SIP_STATUS_REQUEST_TERMINATED",
7225 SipStatusCode::SipStatusNotAcceptableHere => "SIP_STATUS_NOT_ACCEPTABLE_HERE",
7226 SipStatusCode::SipStatusBadEvent => "SIP_STATUS_BAD_EVENT",
7227 SipStatusCode::SipStatusRequestPending => "SIP_STATUS_REQUEST_PENDING",
7228 SipStatusCode::SipStatusUndecipherable => "SIP_STATUS_UNDECIPHERABLE",
7229 SipStatusCode::SipStatusSecurityAgreementRequired => "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED",
7230 SipStatusCode::SipStatusInternalServerError => "SIP_STATUS_INTERNAL_SERVER_ERROR",
7231 SipStatusCode::SipStatusNotImplemented => "SIP_STATUS_NOT_IMPLEMENTED",
7232 SipStatusCode::SipStatusBadGateway => "SIP_STATUS_BAD_GATEWAY",
7233 SipStatusCode::SipStatusServiceUnavailable => "SIP_STATUS_SERVICE_UNAVAILABLE",
7234 SipStatusCode::SipStatusGatewayTimeout => "SIP_STATUS_GATEWAY_TIMEOUT",
7235 SipStatusCode::SipStatusVersionNotSupported => "SIP_STATUS_VERSION_NOT_SUPPORTED",
7236 SipStatusCode::SipStatusMessageTooLarge => "SIP_STATUS_MESSAGE_TOO_LARGE",
7237 SipStatusCode::SipStatusGlobalBusyEverywhere => "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE",
7238 SipStatusCode::SipStatusGlobalDecline => "SIP_STATUS_GLOBAL_DECLINE",
7239 SipStatusCode::SipStatusGlobalDoesNotExistAnywhere => "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE",
7240 SipStatusCode::SipStatusGlobalNotAcceptable => "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE",
7241 SipStatusCode::SipStatusGlobalUnwanted => "SIP_STATUS_GLOBAL_UNWANTED",
7242 SipStatusCode::SipStatusGlobalRejected => "SIP_STATUS_GLOBAL_REJECTED",
7243 }
7244 }
7245 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7247 match value {
7248 "SIP_STATUS_UNKNOWN" => Some(Self::SipStatusUnknown),
7249 "SIP_STATUS_TRYING" => Some(Self::SipStatusTrying),
7250 "SIP_STATUS_RINGING" => Some(Self::SipStatusRinging),
7251 "SIP_STATUS_CALL_IS_FORWARDED" => Some(Self::SipStatusCallIsForwarded),
7252 "SIP_STATUS_QUEUED" => Some(Self::SipStatusQueued),
7253 "SIP_STATUS_SESSION_PROGRESS" => Some(Self::SipStatusSessionProgress),
7254 "SIP_STATUS_EARLY_DIALOG_TERMINATED" => Some(Self::SipStatusEarlyDialogTerminated),
7255 "SIP_STATUS_OK" => Some(Self::SipStatusOk),
7256 "SIP_STATUS_ACCEPTED" => Some(Self::SipStatusAccepted),
7257 "SIP_STATUS_NO_NOTIFICATION" => Some(Self::SipStatusNoNotification),
7258 "SIP_STATUS_MULTIPLE_CHOICES" => Some(Self::SipStatusMultipleChoices),
7259 "SIP_STATUS_MOVED_PERMANENTLY" => Some(Self::SipStatusMovedPermanently),
7260 "SIP_STATUS_MOVED_TEMPORARILY" => Some(Self::SipStatusMovedTemporarily),
7261 "SIP_STATUS_USE_PROXY" => Some(Self::SipStatusUseProxy),
7262 "SIP_STATUS_ALTERNATIVE_SERVICE" => Some(Self::SipStatusAlternativeService),
7263 "SIP_STATUS_BAD_REQUEST" => Some(Self::SipStatusBadRequest),
7264 "SIP_STATUS_UNAUTHORIZED" => Some(Self::SipStatusUnauthorized),
7265 "SIP_STATUS_PAYMENT_REQUIRED" => Some(Self::SipStatusPaymentRequired),
7266 "SIP_STATUS_FORBIDDEN" => Some(Self::SipStatusForbidden),
7267 "SIP_STATUS_NOTFOUND" => Some(Self::SipStatusNotfound),
7268 "SIP_STATUS_METHOD_NOT_ALLOWED" => Some(Self::SipStatusMethodNotAllowed),
7269 "SIP_STATUS_NOT_ACCEPTABLE" => Some(Self::SipStatusNotAcceptable),
7270 "SIP_STATUS_PROXY_AUTH_REQUIRED" => Some(Self::SipStatusProxyAuthRequired),
7271 "SIP_STATUS_REQUEST_TIMEOUT" => Some(Self::SipStatusRequestTimeout),
7272 "SIP_STATUS_CONFLICT" => Some(Self::SipStatusConflict),
7273 "SIP_STATUS_GONE" => Some(Self::SipStatusGone),
7274 "SIP_STATUS_LENGTH_REQUIRED" => Some(Self::SipStatusLengthRequired),
7275 "SIP_STATUS_CONDITIONAL_REQUEST_FAILED" => Some(Self::SipStatusConditionalRequestFailed),
7276 "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE" => Some(Self::SipStatusRequestEntityTooLarge),
7277 "SIP_STATUS_REQUEST_URI_TOO_LONG" => Some(Self::SipStatusRequestUriTooLong),
7278 "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE" => Some(Self::SipStatusUnsupportedMediaType),
7279 "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE" => Some(Self::SipStatusRequestedRangeNotSatisfiable),
7280 "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY" => Some(Self::SipStatusUnknownResourcePriority),
7281 "SIP_STATUS_BAD_EXTENSION" => Some(Self::SipStatusBadExtension),
7282 "SIP_STATUS_EXTENSION_REQUIRED" => Some(Self::SipStatusExtensionRequired),
7283 "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL" => Some(Self::SipStatusSessionIntervalTooSmall),
7284 "SIP_STATUS_INTERVAL_TOO_BRIEF" => Some(Self::SipStatusIntervalTooBrief),
7285 "SIP_STATUS_BAD_LOCATION_INFORMATION" => Some(Self::SipStatusBadLocationInformation),
7286 "SIP_STATUS_BAD_ALERT_MESSAGE" => Some(Self::SipStatusBadAlertMessage),
7287 "SIP_STATUS_USE_IDENTITY_HEADER" => Some(Self::SipStatusUseIdentityHeader),
7288 "SIP_STATUS_PROVIDE_REFERRER_IDENTITY" => Some(Self::SipStatusProvideReferrerIdentity),
7289 "SIP_STATUS_FLOW_FAILED" => Some(Self::SipStatusFlowFailed),
7290 "SIP_STATUS_ANONYMITY_DISALLOWED" => Some(Self::SipStatusAnonymityDisallowed),
7291 "SIP_STATUS_BAD_IDENTITY_INFO" => Some(Self::SipStatusBadIdentityInfo),
7292 "SIP_STATUS_UNSUPPORTED_CERTIFICATE" => Some(Self::SipStatusUnsupportedCertificate),
7293 "SIP_STATUS_INVALID_IDENTITY_HEADER" => Some(Self::SipStatusInvalidIdentityHeader),
7294 "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT" => Some(Self::SipStatusFirstHopLacksOutboundSupport),
7295 "SIP_STATUS_MAX_BREADTH_EXCEEDED" => Some(Self::SipStatusMaxBreadthExceeded),
7296 "SIP_STATUS_BAD_INFO_PACKAGE" => Some(Self::SipStatusBadInfoPackage),
7297 "SIP_STATUS_CONSENT_NEEDED" => Some(Self::SipStatusConsentNeeded),
7298 "SIP_STATUS_TEMPORARILY_UNAVAILABLE" => Some(Self::SipStatusTemporarilyUnavailable),
7299 "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS" => Some(Self::SipStatusCallTransactionDoesNotExists),
7300 "SIP_STATUS_LOOP_DETECTED" => Some(Self::SipStatusLoopDetected),
7301 "SIP_STATUS_TOO_MANY_HOPS" => Some(Self::SipStatusTooManyHops),
7302 "SIP_STATUS_ADDRESS_INCOMPLETE" => Some(Self::SipStatusAddressIncomplete),
7303 "SIP_STATUS_AMBIGUOUS" => Some(Self::SipStatusAmbiguous),
7304 "SIP_STATUS_BUSY_HERE" => Some(Self::SipStatusBusyHere),
7305 "SIP_STATUS_REQUEST_TERMINATED" => Some(Self::SipStatusRequestTerminated),
7306 "SIP_STATUS_NOT_ACCEPTABLE_HERE" => Some(Self::SipStatusNotAcceptableHere),
7307 "SIP_STATUS_BAD_EVENT" => Some(Self::SipStatusBadEvent),
7308 "SIP_STATUS_REQUEST_PENDING" => Some(Self::SipStatusRequestPending),
7309 "SIP_STATUS_UNDECIPHERABLE" => Some(Self::SipStatusUndecipherable),
7310 "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED" => Some(Self::SipStatusSecurityAgreementRequired),
7311 "SIP_STATUS_INTERNAL_SERVER_ERROR" => Some(Self::SipStatusInternalServerError),
7312 "SIP_STATUS_NOT_IMPLEMENTED" => Some(Self::SipStatusNotImplemented),
7313 "SIP_STATUS_BAD_GATEWAY" => Some(Self::SipStatusBadGateway),
7314 "SIP_STATUS_SERVICE_UNAVAILABLE" => Some(Self::SipStatusServiceUnavailable),
7315 "SIP_STATUS_GATEWAY_TIMEOUT" => Some(Self::SipStatusGatewayTimeout),
7316 "SIP_STATUS_VERSION_NOT_SUPPORTED" => Some(Self::SipStatusVersionNotSupported),
7317 "SIP_STATUS_MESSAGE_TOO_LARGE" => Some(Self::SipStatusMessageTooLarge),
7318 "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE" => Some(Self::SipStatusGlobalBusyEverywhere),
7319 "SIP_STATUS_GLOBAL_DECLINE" => Some(Self::SipStatusGlobalDecline),
7320 "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE" => Some(Self::SipStatusGlobalDoesNotExistAnywhere),
7321 "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE" => Some(Self::SipStatusGlobalNotAcceptable),
7322 "SIP_STATUS_GLOBAL_UNWANTED" => Some(Self::SipStatusGlobalUnwanted),
7323 "SIP_STATUS_GLOBAL_REJECTED" => Some(Self::SipStatusGlobalRejected),
7324 _ => None,
7325 }
7326 }
7327}
7328#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7329#[repr(i32)]
7330pub enum SipTransport {
7331 Auto = 0,
7332 Udp = 1,
7333 Tcp = 2,
7334 Tls = 3,
7335}
7336impl SipTransport {
7337 pub fn as_str_name(&self) -> &'static str {
7342 match self {
7343 SipTransport::Auto => "SIP_TRANSPORT_AUTO",
7344 SipTransport::Udp => "SIP_TRANSPORT_UDP",
7345 SipTransport::Tcp => "SIP_TRANSPORT_TCP",
7346 SipTransport::Tls => "SIP_TRANSPORT_TLS",
7347 }
7348 }
7349 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7351 match value {
7352 "SIP_TRANSPORT_AUTO" => Some(Self::Auto),
7353 "SIP_TRANSPORT_UDP" => Some(Self::Udp),
7354 "SIP_TRANSPORT_TCP" => Some(Self::Tcp),
7355 "SIP_TRANSPORT_TLS" => Some(Self::Tls),
7356 _ => None,
7357 }
7358 }
7359}
7360#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7361#[repr(i32)]
7362pub enum SipHeaderOptions {
7363 SipNoHeaders = 0,
7365 SipXHeaders = 1,
7367 SipAllHeaders = 2,
7369}
7370impl SipHeaderOptions {
7371 pub fn as_str_name(&self) -> &'static str {
7376 match self {
7377 SipHeaderOptions::SipNoHeaders => "SIP_NO_HEADERS",
7378 SipHeaderOptions::SipXHeaders => "SIP_X_HEADERS",
7379 SipHeaderOptions::SipAllHeaders => "SIP_ALL_HEADERS",
7380 }
7381 }
7382 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7384 match value {
7385 "SIP_NO_HEADERS" => Some(Self::SipNoHeaders),
7386 "SIP_X_HEADERS" => Some(Self::SipXHeaders),
7387 "SIP_ALL_HEADERS" => Some(Self::SipAllHeaders),
7388 _ => None,
7389 }
7390 }
7391}
7392#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7393#[repr(i32)]
7394pub enum SipMediaEncryption {
7395 SipMediaEncryptDisable = 0,
7397 SipMediaEncryptAllow = 1,
7399 SipMediaEncryptRequire = 2,
7401}
7402impl SipMediaEncryption {
7403 pub fn as_str_name(&self) -> &'static str {
7408 match self {
7409 SipMediaEncryption::SipMediaEncryptDisable => "SIP_MEDIA_ENCRYPT_DISABLE",
7410 SipMediaEncryption::SipMediaEncryptAllow => "SIP_MEDIA_ENCRYPT_ALLOW",
7411 SipMediaEncryption::SipMediaEncryptRequire => "SIP_MEDIA_ENCRYPT_REQUIRE",
7412 }
7413 }
7414 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7416 match value {
7417 "SIP_MEDIA_ENCRYPT_DISABLE" => Some(Self::SipMediaEncryptDisable),
7418 "SIP_MEDIA_ENCRYPT_ALLOW" => Some(Self::SipMediaEncryptAllow),
7419 "SIP_MEDIA_ENCRYPT_REQUIRE" => Some(Self::SipMediaEncryptRequire),
7420 _ => None,
7421 }
7422 }
7423}
7424#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7425#[repr(i32)]
7426pub enum ProviderType {
7427 Unknown = 0,
7428 Internal = 1,
7430 External = 2,
7432}
7433impl ProviderType {
7434 pub fn as_str_name(&self) -> &'static str {
7439 match self {
7440 ProviderType::Unknown => "PROVIDER_TYPE_UNKNOWN",
7441 ProviderType::Internal => "PROVIDER_TYPE_INTERNAL",
7442 ProviderType::External => "PROVIDER_TYPE_EXTERNAL",
7443 }
7444 }
7445 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7447 match value {
7448 "PROVIDER_TYPE_UNKNOWN" => Some(Self::Unknown),
7449 "PROVIDER_TYPE_INTERNAL" => Some(Self::Internal),
7450 "PROVIDER_TYPE_EXTERNAL" => Some(Self::External),
7451 _ => None,
7452 }
7453 }
7454}
7455#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7456#[repr(i32)]
7457pub enum SipCallStatus {
7458 ScsCallIncoming = 0,
7460 ScsParticipantJoined = 1,
7462 ScsActive = 2,
7464 ScsDisconnected = 3,
7466 ScsError = 4,
7468}
7469impl SipCallStatus {
7470 pub fn as_str_name(&self) -> &'static str {
7475 match self {
7476 SipCallStatus::ScsCallIncoming => "SCS_CALL_INCOMING",
7477 SipCallStatus::ScsParticipantJoined => "SCS_PARTICIPANT_JOINED",
7478 SipCallStatus::ScsActive => "SCS_ACTIVE",
7479 SipCallStatus::ScsDisconnected => "SCS_DISCONNECTED",
7480 SipCallStatus::ScsError => "SCS_ERROR",
7481 }
7482 }
7483 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7485 match value {
7486 "SCS_CALL_INCOMING" => Some(Self::ScsCallIncoming),
7487 "SCS_PARTICIPANT_JOINED" => Some(Self::ScsParticipantJoined),
7488 "SCS_ACTIVE" => Some(Self::ScsActive),
7489 "SCS_DISCONNECTED" => Some(Self::ScsDisconnected),
7490 "SCS_ERROR" => Some(Self::ScsError),
7491 _ => None,
7492 }
7493 }
7494}
7495#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7496#[repr(i32)]
7497pub enum SipTransferStatus {
7498 StsTransferOngoing = 0,
7499 StsTransferFailed = 1,
7500 StsTransferSuccessful = 2,
7501}
7502impl SipTransferStatus {
7503 pub fn as_str_name(&self) -> &'static str {
7508 match self {
7509 SipTransferStatus::StsTransferOngoing => "STS_TRANSFER_ONGOING",
7510 SipTransferStatus::StsTransferFailed => "STS_TRANSFER_FAILED",
7511 SipTransferStatus::StsTransferSuccessful => "STS_TRANSFER_SUCCESSFUL",
7512 }
7513 }
7514 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7516 match value {
7517 "STS_TRANSFER_ONGOING" => Some(Self::StsTransferOngoing),
7518 "STS_TRANSFER_FAILED" => Some(Self::StsTransferFailed),
7519 "STS_TRANSFER_SUCCESSFUL" => Some(Self::StsTransferSuccessful),
7520 _ => None,
7521 }
7522 }
7523}
7524#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7525#[repr(i32)]
7526pub enum SipFeature {
7527 None = 0,
7528 KrispEnabled = 1,
7529}
7530impl SipFeature {
7531 pub fn as_str_name(&self) -> &'static str {
7536 match self {
7537 SipFeature::None => "NONE",
7538 SipFeature::KrispEnabled => "KRISP_ENABLED",
7539 }
7540 }
7541 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7543 match value {
7544 "NONE" => Some(Self::None),
7545 "KRISP_ENABLED" => Some(Self::KrispEnabled),
7546 _ => None,
7547 }
7548 }
7549}
7550#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7551#[repr(i32)]
7552pub enum SipCallDirection {
7553 ScdUnknown = 0,
7554 ScdInbound = 1,
7555 ScdOutbound = 2,
7556}
7557impl SipCallDirection {
7558 pub fn as_str_name(&self) -> &'static str {
7563 match self {
7564 SipCallDirection::ScdUnknown => "SCD_UNKNOWN",
7565 SipCallDirection::ScdInbound => "SCD_INBOUND",
7566 SipCallDirection::ScdOutbound => "SCD_OUTBOUND",
7567 }
7568 }
7569 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7571 match value {
7572 "SCD_UNKNOWN" => Some(Self::ScdUnknown),
7573 "SCD_INBOUND" => Some(Self::ScdInbound),
7574 "SCD_OUTBOUND" => Some(Self::ScdOutbound),
7575 _ => None,
7576 }
7577 }
7578}
7579#[allow(clippy::derive_partial_eq_without_eq)]
7580#[derive(Clone, PartialEq, ::prost::Message)]
7581pub struct DialWhatsAppCallRequest {
7582 #[prost(string, tag="1")]
7584 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
7585 #[prost(string, tag="2")]
7587 pub whatsapp_to_phone_number: ::prost::alloc::string::String,
7588 #[prost(string, tag="3")]
7590 pub whatsapp_api_key: ::prost::alloc::string::String,
7591 #[prost(string, tag="12")]
7593 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
7594 #[prost(string, tag="4")]
7596 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
7597 #[prost(string, tag="5")]
7599 pub room_name: ::prost::alloc::string::String,
7600 #[prost(message, repeated, tag="6")]
7602 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7603 #[prost(string, tag="7")]
7606 pub participant_identity: ::prost::alloc::string::String,
7607 #[prost(string, tag="8")]
7609 pub participant_name: ::prost::alloc::string::String,
7610 #[prost(string, tag="9")]
7612 pub participant_metadata: ::prost::alloc::string::String,
7613 #[prost(map="string, string", tag="10")]
7615 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7616 #[prost(string, tag="11")]
7618 pub destination_country: ::prost::alloc::string::String,
7619 #[prost(message, optional, tag="13")]
7621 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
7622}
7623#[allow(clippy::derive_partial_eq_without_eq)]
7624#[derive(Clone, PartialEq, ::prost::Message)]
7625pub struct DialWhatsAppCallResponse {
7626 #[prost(string, tag="1")]
7628 pub whatsapp_call_id: ::prost::alloc::string::String,
7629 #[prost(string, tag="2")]
7631 pub room_name: ::prost::alloc::string::String,
7632}
7633#[allow(clippy::derive_partial_eq_without_eq)]
7634#[derive(Clone, PartialEq, ::prost::Message)]
7635pub struct DisconnectWhatsAppCallRequest {
7636 #[prost(string, tag="1")]
7638 pub whatsapp_call_id: ::prost::alloc::string::String,
7639 #[prost(string, tag="2")]
7643 pub whatsapp_api_key: ::prost::alloc::string::String,
7644 #[prost(enumeration="disconnect_whats_app_call_request::DisconnectReason", tag="3")]
7646 pub disconnect_reason: i32,
7647}
7648pub mod disconnect_whats_app_call_request {
7650 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7651 #[repr(i32)]
7652 pub enum DisconnectReason {
7653 BusinessInitiated = 0,
7655 UserInitiated = 1,
7661 }
7662 impl DisconnectReason {
7663 pub fn as_str_name(&self) -> &'static str {
7668 match self {
7669 DisconnectReason::BusinessInitiated => "BUSINESS_INITIATED",
7670 DisconnectReason::UserInitiated => "USER_INITIATED",
7671 }
7672 }
7673 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7675 match value {
7676 "BUSINESS_INITIATED" => Some(Self::BusinessInitiated),
7677 "USER_INITIATED" => Some(Self::UserInitiated),
7678 _ => None,
7679 }
7680 }
7681 }
7682}
7683#[allow(clippy::derive_partial_eq_without_eq)]
7684#[derive(Clone, PartialEq, ::prost::Message)]
7685pub struct DisconnectWhatsAppCallResponse {
7686}
7687#[allow(clippy::derive_partial_eq_without_eq)]
7688#[derive(Clone, PartialEq, ::prost::Message)]
7689pub struct ConnectWhatsAppCallRequest {
7690 #[prost(string, tag="1")]
7692 pub whatsapp_call_id: ::prost::alloc::string::String,
7693 #[prost(message, optional, tag="2")]
7696 pub sdp: ::core::option::Option<SessionDescription>,
7697 #[prost(bool, tag="3")]
7699 pub wait_until_answered: bool,
7700}
7701#[allow(clippy::derive_partial_eq_without_eq)]
7702#[derive(Clone, PartialEq, ::prost::Message)]
7703pub struct ConnectWhatsAppCallResponse {
7704}
7705#[allow(clippy::derive_partial_eq_without_eq)]
7706#[derive(Clone, PartialEq, ::prost::Message)]
7707pub struct AcceptWhatsAppCallRequest {
7708 #[prost(string, tag="1")]
7710 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
7711 #[prost(string, tag="2")]
7713 pub whatsapp_api_key: ::prost::alloc::string::String,
7714 #[prost(string, tag="13")]
7716 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
7717 #[prost(string, tag="3")]
7719 pub whatsapp_call_id: ::prost::alloc::string::String,
7720 #[prost(string, tag="4")]
7722 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
7723 #[prost(message, optional, tag="5")]
7726 pub sdp: ::core::option::Option<SessionDescription>,
7727 #[prost(string, tag="6")]
7729 pub room_name: ::prost::alloc::string::String,
7730 #[prost(message, repeated, tag="7")]
7732 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7733 #[prost(string, tag="8")]
7736 pub participant_identity: ::prost::alloc::string::String,
7737 #[prost(string, tag="9")]
7739 pub participant_name: ::prost::alloc::string::String,
7740 #[prost(string, tag="10")]
7742 pub participant_metadata: ::prost::alloc::string::String,
7743 #[prost(map="string, string", tag="11")]
7745 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7746 #[prost(string, tag="12")]
7748 pub destination_country: ::prost::alloc::string::String,
7749 #[prost(message, optional, tag="14")]
7751 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
7752 #[prost(bool, tag="15")]
7754 pub wait_until_answered: bool,
7755}
7756#[allow(clippy::derive_partial_eq_without_eq)]
7757#[derive(Clone, PartialEq, ::prost::Message)]
7758pub struct AcceptWhatsAppCallResponse {
7759 #[prost(string, tag="1")]
7761 pub room_name: ::prost::alloc::string::String,
7762}
7763#[allow(clippy::derive_partial_eq_without_eq)]
7764#[derive(Clone, PartialEq, ::prost::Message)]
7765pub struct WhatsAppCall {
7766 #[prost(string, tag="1")]
7768 pub whatsapp_call_id: ::prost::alloc::string::String,
7769 #[prost(enumeration="WhatsAppCallDirection", tag="2")]
7771 pub direction: i32,
7772}
7773#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7774#[repr(i32)]
7775pub enum WhatsAppCallDirection {
7776 WhatsappCallDirectionInbound = 0,
7777 WhatsappCallDirectionOutbound = 2,
7778}
7779impl WhatsAppCallDirection {
7780 pub fn as_str_name(&self) -> &'static str {
7785 match self {
7786 WhatsAppCallDirection::WhatsappCallDirectionInbound => "WHATSAPP_CALL_DIRECTION_INBOUND",
7787 WhatsAppCallDirection::WhatsappCallDirectionOutbound => "WHATSAPP_CALL_DIRECTION_OUTBOUND",
7788 }
7789 }
7790 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7792 match value {
7793 "WHATSAPP_CALL_DIRECTION_INBOUND" => Some(Self::WhatsappCallDirectionInbound),
7794 "WHATSAPP_CALL_DIRECTION_OUTBOUND" => Some(Self::WhatsappCallDirectionOutbound),
7795 _ => None,
7796 }
7797 }
7798}
7799#[allow(clippy::derive_partial_eq_without_eq)]
7800#[derive(Clone, PartialEq, ::prost::Message)]
7801pub struct ConnectTwilioCallRequest {
7802 #[prost(enumeration="connect_twilio_call_request::TwilioCallDirection", tag="1")]
7804 pub twilio_call_direction: i32,
7805 #[prost(string, tag="2")]
7807 pub room_name: ::prost::alloc::string::String,
7808 #[prost(message, repeated, tag="3")]
7810 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7811 #[prost(string, tag="4")]
7814 pub participant_identity: ::prost::alloc::string::String,
7815 #[prost(string, tag="5")]
7817 pub participant_name: ::prost::alloc::string::String,
7818 #[prost(string, tag="6")]
7820 pub participant_metadata: ::prost::alloc::string::String,
7821 #[prost(map="string, string", tag="7")]
7823 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7824 #[prost(string, tag="8")]
7826 pub destination_country: ::prost::alloc::string::String,
7827}
7828pub mod connect_twilio_call_request {
7830 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7831 #[repr(i32)]
7832 pub enum TwilioCallDirection {
7833 Inbound = 0,
7835 Outbound = 1,
7837 }
7838 impl TwilioCallDirection {
7839 pub fn as_str_name(&self) -> &'static str {
7844 match self {
7845 TwilioCallDirection::Inbound => "TWILIO_CALL_DIRECTION_INBOUND",
7846 TwilioCallDirection::Outbound => "TWILIO_CALL_DIRECTION_OUTBOUND",
7847 }
7848 }
7849 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7851 match value {
7852 "TWILIO_CALL_DIRECTION_INBOUND" => Some(Self::Inbound),
7853 "TWILIO_CALL_DIRECTION_OUTBOUND" => Some(Self::Outbound),
7854 _ => None,
7855 }
7856 }
7857 }
7858}
7859#[allow(clippy::derive_partial_eq_without_eq)]
7860#[derive(Clone, PartialEq, ::prost::Message)]
7861pub struct ConnectTwilioCallResponse {
7862 #[prost(string, tag="1")]
7864 pub connect_url: ::prost::alloc::string::String,
7865}
7866#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7867#[repr(i32)]
7868pub enum ConnectorType {
7869 Unspecified = 0,
7870 WhatsApp = 1,
7871 Twilio = 2,
7872}
7873impl ConnectorType {
7874 pub fn as_str_name(&self) -> &'static str {
7879 match self {
7880 ConnectorType::Unspecified => "Unspecified",
7881 ConnectorType::WhatsApp => "WhatsApp",
7882 ConnectorType::Twilio => "Twilio",
7883 }
7884 }
7885 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7887 match value {
7888 "Unspecified" => Some(Self::Unspecified),
7889 "WhatsApp" => Some(Self::WhatsApp),
7890 "Twilio" => Some(Self::Twilio),
7891 _ => None,
7892 }
7893 }
7894}
7895#[allow(clippy::derive_partial_eq_without_eq)]
7896#[derive(Clone, PartialEq, ::prost::Message)]
7897pub struct AnalyticsVideoLayer {
7898 #[prost(int32, tag="1")]
7899 pub layer: i32,
7900 #[prost(uint32, tag="2")]
7901 pub packets: u32,
7902 #[prost(uint64, tag="3")]
7903 pub bytes: u64,
7904 #[prost(uint32, tag="4")]
7905 pub frames: u32,
7906}
7907#[allow(clippy::derive_partial_eq_without_eq)]
7908#[derive(Clone, PartialEq, ::prost::Message)]
7909pub struct AnalyticsStream {
7910 #[prost(uint32, tag="1")]
7911 pub ssrc: u32,
7912 #[prost(uint32, tag="2")]
7913 pub primary_packets: u32,
7914 #[prost(uint64, tag="3")]
7915 pub primary_bytes: u64,
7916 #[prost(uint32, tag="4")]
7917 pub retransmit_packets: u32,
7918 #[prost(uint64, tag="5")]
7919 pub retransmit_bytes: u64,
7920 #[prost(uint32, tag="6")]
7921 pub padding_packets: u32,
7922 #[prost(uint64, tag="7")]
7923 pub padding_bytes: u64,
7924 #[prost(uint32, tag="8")]
7925 pub packets_lost: u32,
7926 #[prost(uint32, tag="9")]
7927 pub frames: u32,
7928 #[prost(uint32, tag="10")]
7929 pub rtt: u32,
7930 #[prost(uint32, tag="11")]
7931 pub jitter: u32,
7932 #[prost(uint32, tag="12")]
7933 pub nacks: u32,
7934 #[prost(uint32, tag="13")]
7935 pub plis: u32,
7936 #[prost(uint32, tag="14")]
7937 pub firs: u32,
7938 #[prost(message, repeated, tag="15")]
7939 pub video_layers: ::prost::alloc::vec::Vec<AnalyticsVideoLayer>,
7940 #[prost(message, optional, tag="17")]
7941 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
7942 #[prost(message, optional, tag="18")]
7943 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
7944 #[prost(uint32, tag="19")]
7945 pub packets_out_of_order: u32,
7946}
7947#[allow(clippy::derive_partial_eq_without_eq)]
7948#[derive(Clone, PartialEq, ::prost::Message)]
7949pub struct AnalyticsStat {
7950 #[prost(string, tag="14")]
7952 pub id: ::prost::alloc::string::String,
7953 #[prost(string, tag="1")]
7954 pub analytics_key: ::prost::alloc::string::String,
7955 #[prost(enumeration="StreamType", tag="2")]
7956 pub kind: i32,
7957 #[prost(message, optional, tag="3")]
7958 pub time_stamp: ::core::option::Option<::pbjson_types::Timestamp>,
7959 #[prost(string, tag="4")]
7960 pub node: ::prost::alloc::string::String,
7961 #[prost(string, tag="5")]
7962 pub room_id: ::prost::alloc::string::String,
7963 #[prost(string, tag="6")]
7964 pub room_name: ::prost::alloc::string::String,
7965 #[prost(string, tag="7")]
7966 pub participant_id: ::prost::alloc::string::String,
7967 #[prost(string, tag="8")]
7968 pub track_id: ::prost::alloc::string::String,
7969 #[prost(float, tag="9")]
7971 pub score: f32,
7972 #[prost(message, repeated, tag="10")]
7973 pub streams: ::prost::alloc::vec::Vec<AnalyticsStream>,
7974 #[prost(string, tag="11")]
7975 pub mime: ::prost::alloc::string::String,
7976 #[prost(float, tag="12")]
7977 pub min_score: f32,
7978 #[prost(float, tag="13")]
7979 pub median_score: f32,
7980}
7981#[allow(clippy::derive_partial_eq_without_eq)]
7982#[derive(Clone, PartialEq, ::prost::Message)]
7983pub struct AnalyticsStats {
7984 #[prost(message, repeated, tag="1")]
7985 pub stats: ::prost::alloc::vec::Vec<AnalyticsStat>,
7986}
7987#[allow(clippy::derive_partial_eq_without_eq)]
7988#[derive(Clone, PartialEq, ::prost::Message)]
7989pub struct AnalyticsClientMeta {
7990 #[prost(string, tag="1")]
7991 pub region: ::prost::alloc::string::String,
7992 #[prost(string, tag="2")]
7993 pub node: ::prost::alloc::string::String,
7994 #[prost(string, tag="3")]
7995 pub client_addr: ::prost::alloc::string::String,
7996 #[prost(uint32, tag="4")]
7997 pub client_connect_time: u32,
7998 #[prost(string, tag="5")]
8000 pub connection_type: ::prost::alloc::string::String,
8001 #[prost(enumeration="ReconnectReason", tag="6")]
8002 pub reconnect_reason: i32,
8003 #[prost(string, optional, tag="7")]
8004 pub geo_hash: ::core::option::Option<::prost::alloc::string::String>,
8005 #[prost(string, optional, tag="8")]
8006 pub country: ::core::option::Option<::prost::alloc::string::String>,
8007 #[prost(uint32, optional, tag="9")]
8008 pub isp_asn: ::core::option::Option<u32>,
8009}
8010#[allow(clippy::derive_partial_eq_without_eq)]
8011#[derive(Clone, PartialEq, ::prost::Message)]
8012pub struct AnalyticsEvent {
8013 #[prost(string, tag="25")]
8015 pub id: ::prost::alloc::string::String,
8016 #[prost(enumeration="AnalyticsEventType", tag="1")]
8017 pub r#type: i32,
8018 #[prost(message, optional, tag="2")]
8019 pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
8020 #[prost(string, tag="3")]
8021 pub room_id: ::prost::alloc::string::String,
8022 #[prost(message, optional, tag="4")]
8023 pub room: ::core::option::Option<Room>,
8024 #[prost(string, tag="5")]
8025 pub participant_id: ::prost::alloc::string::String,
8026 #[prost(message, optional, tag="6")]
8027 pub participant: ::core::option::Option<ParticipantInfo>,
8028 #[prost(string, tag="7")]
8029 pub track_id: ::prost::alloc::string::String,
8030 #[prost(message, optional, tag="8")]
8031 pub track: ::core::option::Option<TrackInfo>,
8032 #[prost(string, tag="10")]
8033 pub analytics_key: ::prost::alloc::string::String,
8034 #[prost(message, optional, tag="11")]
8035 pub client_info: ::core::option::Option<ClientInfo>,
8036 #[prost(message, optional, tag="12")]
8037 pub client_meta: ::core::option::Option<AnalyticsClientMeta>,
8038 #[prost(string, tag="13")]
8039 pub egress_id: ::prost::alloc::string::String,
8040 #[prost(string, tag="19")]
8041 pub ingress_id: ::prost::alloc::string::String,
8042 #[prost(enumeration="VideoQuality", tag="14")]
8043 pub max_subscribed_video_quality: i32,
8044 #[prost(message, optional, tag="15")]
8045 pub publisher: ::core::option::Option<ParticipantInfo>,
8046 #[prost(string, tag="16")]
8047 pub mime: ::prost::alloc::string::String,
8048 #[prost(message, optional, tag="17")]
8049 pub egress: ::core::option::Option<EgressInfo>,
8050 #[prost(message, optional, tag="18")]
8051 pub ingress: ::core::option::Option<IngressInfo>,
8052 #[prost(string, tag="20")]
8053 pub error: ::prost::alloc::string::String,
8054 #[prost(message, optional, tag="21")]
8055 pub rtp_stats: ::core::option::Option<RtpStats>,
8056 #[prost(int32, tag="22")]
8057 pub video_layer: i32,
8058 #[prost(string, tag="24")]
8059 pub node_id: ::prost::alloc::string::String,
8060 #[prost(string, tag="26")]
8061 pub sip_call_id: ::prost::alloc::string::String,
8062 #[prost(message, optional, tag="27")]
8063 pub sip_call: ::core::option::Option<SipCallInfo>,
8064 #[prost(string, tag="28")]
8065 pub sip_trunk_id: ::prost::alloc::string::String,
8066 #[prost(message, optional, tag="29")]
8067 pub sip_inbound_trunk: ::core::option::Option<SipInboundTrunkInfo>,
8068 #[prost(message, optional, tag="30")]
8069 pub sip_outbound_trunk: ::core::option::Option<SipOutboundTrunkInfo>,
8070 #[prost(string, tag="31")]
8071 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
8072 #[prost(message, optional, tag="32")]
8073 pub sip_dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
8074 #[prost(message, optional, tag="36")]
8075 pub sip_transfer: ::core::option::Option<SipTransferInfo>,
8076 #[prost(message, optional, tag="33")]
8077 pub report: ::core::option::Option<ReportInfo>,
8078 #[prost(message, optional, tag="34")]
8079 pub api_call: ::core::option::Option<ApiCallInfo>,
8080 #[prost(message, optional, tag="35")]
8081 pub webhook: ::core::option::Option<WebhookInfo>,
8082}
8083#[allow(clippy::derive_partial_eq_without_eq)]
8084#[derive(Clone, PartialEq, ::prost::Message)]
8085pub struct AnalyticsEvents {
8086 #[prost(message, repeated, tag="1")]
8087 pub events: ::prost::alloc::vec::Vec<AnalyticsEvent>,
8088}
8089#[allow(clippy::derive_partial_eq_without_eq)]
8090#[derive(Clone, PartialEq, ::prost::Message)]
8091pub struct AnalyticsRoomParticipant {
8092 #[prost(string, tag="1")]
8093 pub id: ::prost::alloc::string::String,
8094 #[prost(string, tag="2")]
8095 pub identity: ::prost::alloc::string::String,
8096 #[prost(string, tag="3")]
8097 pub name: ::prost::alloc::string::String,
8098 #[prost(enumeration="participant_info::State", tag="4")]
8099 pub state: i32,
8100 #[prost(message, optional, tag="5")]
8101 pub joined_at: ::core::option::Option<::pbjson_types::Timestamp>,
8102}
8103#[allow(clippy::derive_partial_eq_without_eq)]
8104#[derive(Clone, PartialEq, ::prost::Message)]
8105pub struct AnalyticsRoom {
8106 #[prost(string, tag="1")]
8107 pub id: ::prost::alloc::string::String,
8108 #[prost(string, tag="2")]
8109 pub name: ::prost::alloc::string::String,
8110 #[prost(string, tag="5")]
8111 pub project_id: ::prost::alloc::string::String,
8112 #[prost(message, optional, tag="3")]
8113 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
8114 #[prost(message, repeated, tag="4")]
8115 pub participants: ::prost::alloc::vec::Vec<AnalyticsRoomParticipant>,
8116}
8117#[allow(clippy::derive_partial_eq_without_eq)]
8118#[derive(Clone, PartialEq, ::prost::Message)]
8119pub struct AnalyticsNodeRooms {
8120 #[prost(string, tag="1")]
8121 pub node_id: ::prost::alloc::string::String,
8122 #[prost(uint64, tag="2")]
8123 pub sequence_number: u64,
8124 #[prost(message, optional, tag="3")]
8125 pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
8126 #[prost(message, repeated, tag="4")]
8127 pub rooms: ::prost::alloc::vec::Vec<AnalyticsRoom>,
8128}
8129#[allow(clippy::derive_partial_eq_without_eq)]
8130#[derive(Clone, PartialEq, ::prost::Message)]
8131pub struct ReportInfo {
8132 #[prost(oneof="report_info::Message", tags="1")]
8133 pub message: ::core::option::Option<report_info::Message>,
8134}
8135pub mod report_info {
8137 #[allow(clippy::derive_partial_eq_without_eq)]
8138#[derive(Clone, PartialEq, ::prost::Oneof)]
8139 pub enum Message {
8140 #[prost(message, tag="1")]
8141 FeatureUsage(super::FeatureUsageInfo),
8142 }
8143}
8144#[allow(clippy::derive_partial_eq_without_eq)]
8145#[derive(Clone, PartialEq, ::prost::Message)]
8146pub struct TimeRange {
8147 #[prost(message, optional, tag="1")]
8148 pub started_at: ::core::option::Option<::pbjson_types::Timestamp>,
8149 #[prost(message, optional, tag="2")]
8150 pub ended_at: ::core::option::Option<::pbjson_types::Timestamp>,
8151}
8152#[allow(clippy::derive_partial_eq_without_eq)]
8153#[derive(Clone, PartialEq, ::prost::Message)]
8154pub struct FeatureUsageInfo {
8155 #[prost(enumeration="feature_usage_info::Feature", tag="1")]
8156 pub feature: i32,
8157 #[prost(string, tag="2")]
8158 pub project_id: ::prost::alloc::string::String,
8159 #[prost(string, tag="3")]
8160 pub room_name: ::prost::alloc::string::String,
8161 #[prost(string, tag="4")]
8162 pub room_id: ::prost::alloc::string::String,
8163 #[prost(string, tag="5")]
8164 pub participant_identity: ::prost::alloc::string::String,
8165 #[prost(string, tag="6")]
8166 pub participant_id: ::prost::alloc::string::String,
8167 #[prost(string, tag="7")]
8168 pub track_id: ::prost::alloc::string::String,
8169 #[prost(message, repeated, tag="8")]
8173 pub time_ranges: ::prost::alloc::vec::Vec<TimeRange>,
8174 #[prost(map="string, string", tag="9")]
8176 pub feature_info: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
8177}
8178pub mod feature_usage_info {
8180 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8181 #[repr(i32)]
8182 pub enum Feature {
8183 KrispNoiseCancellation = 0,
8184 KrispBackgroundVoiceCancellation = 1,
8185 AicAudioEnhancement = 2,
8186 KrispViva = 3,
8187 }
8188 impl Feature {
8189 pub fn as_str_name(&self) -> &'static str {
8194 match self {
8195 Feature::KrispNoiseCancellation => "KRISP_NOISE_CANCELLATION",
8196 Feature::KrispBackgroundVoiceCancellation => "KRISP_BACKGROUND_VOICE_CANCELLATION",
8197 Feature::AicAudioEnhancement => "AIC_AUDIO_ENHANCEMENT",
8198 Feature::KrispViva => "KRISP_VIVA",
8199 }
8200 }
8201 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8203 match value {
8204 "KRISP_NOISE_CANCELLATION" => Some(Self::KrispNoiseCancellation),
8205 "KRISP_BACKGROUND_VOICE_CANCELLATION" => Some(Self::KrispBackgroundVoiceCancellation),
8206 "AIC_AUDIO_ENHANCEMENT" => Some(Self::AicAudioEnhancement),
8207 "KRISP_VIVA" => Some(Self::KrispViva),
8208 _ => None,
8209 }
8210 }
8211 }
8212}
8213#[allow(clippy::derive_partial_eq_without_eq)]
8214#[derive(Clone, PartialEq, ::prost::Message)]
8215pub struct ApiCallRequest {
8216 #[prost(oneof="api_call_request::Message", tags="1, 2, 3, 4, 5, 6, 7, 8, 9, 10")]
8217 pub message: ::core::option::Option<api_call_request::Message>,
8218}
8219pub mod api_call_request {
8221 #[allow(clippy::derive_partial_eq_without_eq)]
8222#[derive(Clone, PartialEq, ::prost::Oneof)]
8223 pub enum Message {
8224 #[prost(message, tag="1")]
8225 CreateRoomRequest(super::CreateRoomRequest),
8226 #[prost(message, tag="2")]
8227 ListRoomsRequest(super::ListRoomsRequest),
8228 #[prost(message, tag="3")]
8229 DeleteRoomRequest(super::DeleteRoomRequest),
8230 #[prost(message, tag="4")]
8231 ListParticipantsRequest(super::ListParticipantsRequest),
8232 #[prost(message, tag="5")]
8233 RoomParticipantIdentity(super::RoomParticipantIdentity),
8234 #[prost(message, tag="6")]
8235 MuteRoomTrackRequest(super::MuteRoomTrackRequest),
8236 #[prost(message, tag="7")]
8237 UpdateParticipantRequest(super::UpdateParticipantRequest),
8238 #[prost(message, tag="8")]
8239 UpdateSubscriptionsRequest(super::UpdateSubscriptionsRequest),
8240 #[prost(message, tag="9")]
8241 SendDataRequest(super::SendDataRequest),
8242 #[prost(message, tag="10")]
8243 UpdateRoomMetadataRequest(super::UpdateRoomMetadataRequest),
8244 }
8245}
8246#[allow(clippy::derive_partial_eq_without_eq)]
8247#[derive(Clone, PartialEq, ::prost::Message)]
8248pub struct ApiCallInfo {
8249 #[prost(string, tag="1")]
8250 pub project_id: ::prost::alloc::string::String,
8251 #[prost(message, optional, tag="2")]
8252 pub request: ::core::option::Option<ApiCallRequest>,
8253 #[prost(string, tag="3")]
8254 pub service: ::prost::alloc::string::String,
8255 #[prost(string, tag="4")]
8256 pub method: ::prost::alloc::string::String,
8257 #[prost(string, tag="5")]
8258 pub node_id: ::prost::alloc::string::String,
8259 #[prost(int32, tag="6")]
8260 pub status: i32,
8261 #[prost(string, tag="7")]
8262 pub twirp_error_code: ::prost::alloc::string::String,
8263 #[prost(string, tag="8")]
8264 pub twirp_error_message: ::prost::alloc::string::String,
8265 #[prost(string, tag="9")]
8266 pub room_name: ::prost::alloc::string::String,
8267 #[prost(string, tag="10")]
8268 pub room_id: ::prost::alloc::string::String,
8269 #[prost(string, tag="11")]
8270 pub participant_identity: ::prost::alloc::string::String,
8271 #[prost(string, tag="12")]
8272 pub participant_id: ::prost::alloc::string::String,
8273 #[prost(string, tag="13")]
8274 pub track_id: ::prost::alloc::string::String,
8275 #[prost(message, optional, tag="14")]
8276 pub started_at: ::core::option::Option<::pbjson_types::Timestamp>,
8277 #[prost(int64, tag="15")]
8278 pub duration_ns: i64,
8279}
8280#[allow(clippy::derive_partial_eq_without_eq)]
8281#[derive(Clone, PartialEq, ::prost::Message)]
8282pub struct WebhookInfo {
8283 #[prost(string, tag="1")]
8284 pub event_id: ::prost::alloc::string::String,
8285 #[prost(string, tag="2")]
8286 pub event: ::prost::alloc::string::String,
8287 #[prost(string, tag="3")]
8288 pub project_id: ::prost::alloc::string::String,
8289 #[prost(string, tag="4")]
8290 pub room_name: ::prost::alloc::string::String,
8291 #[prost(string, tag="5")]
8292 pub room_id: ::prost::alloc::string::String,
8293 #[prost(string, tag="6")]
8294 pub participant_identity: ::prost::alloc::string::String,
8295 #[prost(string, tag="7")]
8296 pub participant_id: ::prost::alloc::string::String,
8297 #[prost(string, tag="8")]
8298 pub track_id: ::prost::alloc::string::String,
8299 #[prost(string, tag="9")]
8300 pub egress_id: ::prost::alloc::string::String,
8301 #[prost(string, tag="10")]
8302 pub ingress_id: ::prost::alloc::string::String,
8303 #[prost(message, optional, tag="11")]
8304 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
8305 #[prost(message, optional, tag="12")]
8306 pub queued_at: ::core::option::Option<::pbjson_types::Timestamp>,
8307 #[prost(int64, tag="13")]
8308 pub queue_duration_ns: i64,
8309 #[prost(message, optional, tag="14")]
8310 pub sent_at: ::core::option::Option<::pbjson_types::Timestamp>,
8311 #[prost(int64, tag="15")]
8312 pub send_duration_ns: i64,
8313 #[prost(string, tag="16")]
8314 pub url: ::prost::alloc::string::String,
8315 #[prost(int32, tag="17")]
8316 pub num_dropped: i32,
8317 #[prost(bool, tag="18")]
8318 pub is_dropped: bool,
8319 #[prost(string, tag="19")]
8320 pub service_status: ::prost::alloc::string::String,
8321 #[prost(int32, tag="20")]
8322 pub service_error_code: i32,
8323 #[prost(string, tag="21")]
8324 pub service_error: ::prost::alloc::string::String,
8325 #[prost(string, tag="22")]
8326 pub send_error: ::prost::alloc::string::String,
8327 #[prost(int32, tag="23")]
8329 pub http_status_code: i32,
8330}
8331#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8332#[repr(i32)]
8333pub enum StreamType {
8334 Upstream = 0,
8335 Downstream = 1,
8336}
8337impl StreamType {
8338 pub fn as_str_name(&self) -> &'static str {
8343 match self {
8344 StreamType::Upstream => "UPSTREAM",
8345 StreamType::Downstream => "DOWNSTREAM",
8346 }
8347 }
8348 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8350 match value {
8351 "UPSTREAM" => Some(Self::Upstream),
8352 "DOWNSTREAM" => Some(Self::Downstream),
8353 _ => None,
8354 }
8355 }
8356}
8357#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8358#[repr(i32)]
8359pub enum AnalyticsEventType {
8360 RoomCreated = 0,
8361 RoomEnded = 1,
8362 ParticipantJoined = 2,
8363 ParticipantLeft = 3,
8364 ParticipantConnectionAborted = 45,
8365 TrackPublished = 4,
8366 TrackPublishRequested = 20,
8367 TrackUnpublished = 5,
8368 TrackSubscribed = 6,
8369 TrackSubscribeRequested = 21,
8370 TrackSubscribeFailed = 25,
8371 TrackUnsubscribed = 7,
8372 TrackPublishedUpdate = 10,
8373 TrackMuted = 23,
8374 TrackUnmuted = 24,
8375 TrackPublishStats = 26,
8376 TrackSubscribeStats = 27,
8377 ParticipantActive = 11,
8378 ParticipantResumed = 22,
8379 EgressStarted = 12,
8380 EgressEnded = 13,
8381 EgressUpdated = 28,
8382 TrackMaxSubscribedVideoQuality = 14,
8383 Reconnected = 15,
8384 IngressCreated = 18,
8385 IngressDeleted = 19,
8386 IngressStarted = 16,
8387 IngressEnded = 17,
8388 IngressUpdated = 29,
8389 SipInboundTrunkCreated = 30,
8390 SipInboundTrunkDeleted = 31,
8391 SipOutboundTrunkCreated = 32,
8392 SipOutboundTrunkDeleted = 33,
8393 SipDispatchRuleCreated = 34,
8394 SipDispatchRuleDeleted = 35,
8395 SipParticipantCreated = 36,
8396 SipCallIncoming = 37,
8397 SipCallStarted = 38,
8398 SipCallEnded = 39,
8399 SipTransferRequested = 43,
8400 SipTransferComplete = 44,
8401 SipCallUpdate = 46,
8402 Report = 40,
8403 ApiCall = 41,
8404 Webhook = 42,
8405}
8406impl AnalyticsEventType {
8407 pub fn as_str_name(&self) -> &'static str {
8412 match self {
8413 AnalyticsEventType::RoomCreated => "ROOM_CREATED",
8414 AnalyticsEventType::RoomEnded => "ROOM_ENDED",
8415 AnalyticsEventType::ParticipantJoined => "PARTICIPANT_JOINED",
8416 AnalyticsEventType::ParticipantLeft => "PARTICIPANT_LEFT",
8417 AnalyticsEventType::ParticipantConnectionAborted => "PARTICIPANT_CONNECTION_ABORTED",
8418 AnalyticsEventType::TrackPublished => "TRACK_PUBLISHED",
8419 AnalyticsEventType::TrackPublishRequested => "TRACK_PUBLISH_REQUESTED",
8420 AnalyticsEventType::TrackUnpublished => "TRACK_UNPUBLISHED",
8421 AnalyticsEventType::TrackSubscribed => "TRACK_SUBSCRIBED",
8422 AnalyticsEventType::TrackSubscribeRequested => "TRACK_SUBSCRIBE_REQUESTED",
8423 AnalyticsEventType::TrackSubscribeFailed => "TRACK_SUBSCRIBE_FAILED",
8424 AnalyticsEventType::TrackUnsubscribed => "TRACK_UNSUBSCRIBED",
8425 AnalyticsEventType::TrackPublishedUpdate => "TRACK_PUBLISHED_UPDATE",
8426 AnalyticsEventType::TrackMuted => "TRACK_MUTED",
8427 AnalyticsEventType::TrackUnmuted => "TRACK_UNMUTED",
8428 AnalyticsEventType::TrackPublishStats => "TRACK_PUBLISH_STATS",
8429 AnalyticsEventType::TrackSubscribeStats => "TRACK_SUBSCRIBE_STATS",
8430 AnalyticsEventType::ParticipantActive => "PARTICIPANT_ACTIVE",
8431 AnalyticsEventType::ParticipantResumed => "PARTICIPANT_RESUMED",
8432 AnalyticsEventType::EgressStarted => "EGRESS_STARTED",
8433 AnalyticsEventType::EgressEnded => "EGRESS_ENDED",
8434 AnalyticsEventType::EgressUpdated => "EGRESS_UPDATED",
8435 AnalyticsEventType::TrackMaxSubscribedVideoQuality => "TRACK_MAX_SUBSCRIBED_VIDEO_QUALITY",
8436 AnalyticsEventType::Reconnected => "RECONNECTED",
8437 AnalyticsEventType::IngressCreated => "INGRESS_CREATED",
8438 AnalyticsEventType::IngressDeleted => "INGRESS_DELETED",
8439 AnalyticsEventType::IngressStarted => "INGRESS_STARTED",
8440 AnalyticsEventType::IngressEnded => "INGRESS_ENDED",
8441 AnalyticsEventType::IngressUpdated => "INGRESS_UPDATED",
8442 AnalyticsEventType::SipInboundTrunkCreated => "SIP_INBOUND_TRUNK_CREATED",
8443 AnalyticsEventType::SipInboundTrunkDeleted => "SIP_INBOUND_TRUNK_DELETED",
8444 AnalyticsEventType::SipOutboundTrunkCreated => "SIP_OUTBOUND_TRUNK_CREATED",
8445 AnalyticsEventType::SipOutboundTrunkDeleted => "SIP_OUTBOUND_TRUNK_DELETED",
8446 AnalyticsEventType::SipDispatchRuleCreated => "SIP_DISPATCH_RULE_CREATED",
8447 AnalyticsEventType::SipDispatchRuleDeleted => "SIP_DISPATCH_RULE_DELETED",
8448 AnalyticsEventType::SipParticipantCreated => "SIP_PARTICIPANT_CREATED",
8449 AnalyticsEventType::SipCallIncoming => "SIP_CALL_INCOMING",
8450 AnalyticsEventType::SipCallStarted => "SIP_CALL_STARTED",
8451 AnalyticsEventType::SipCallEnded => "SIP_CALL_ENDED",
8452 AnalyticsEventType::SipTransferRequested => "SIP_TRANSFER_REQUESTED",
8453 AnalyticsEventType::SipTransferComplete => "SIP_TRANSFER_COMPLETE",
8454 AnalyticsEventType::SipCallUpdate => "SIP_CALL_UPDATE",
8455 AnalyticsEventType::Report => "REPORT",
8456 AnalyticsEventType::ApiCall => "API_CALL",
8457 AnalyticsEventType::Webhook => "WEBHOOK",
8458 }
8459 }
8460 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8462 match value {
8463 "ROOM_CREATED" => Some(Self::RoomCreated),
8464 "ROOM_ENDED" => Some(Self::RoomEnded),
8465 "PARTICIPANT_JOINED" => Some(Self::ParticipantJoined),
8466 "PARTICIPANT_LEFT" => Some(Self::ParticipantLeft),
8467 "PARTICIPANT_CONNECTION_ABORTED" => Some(Self::ParticipantConnectionAborted),
8468 "TRACK_PUBLISHED" => Some(Self::TrackPublished),
8469 "TRACK_PUBLISH_REQUESTED" => Some(Self::TrackPublishRequested),
8470 "TRACK_UNPUBLISHED" => Some(Self::TrackUnpublished),
8471 "TRACK_SUBSCRIBED" => Some(Self::TrackSubscribed),
8472 "TRACK_SUBSCRIBE_REQUESTED" => Some(Self::TrackSubscribeRequested),
8473 "TRACK_SUBSCRIBE_FAILED" => Some(Self::TrackSubscribeFailed),
8474 "TRACK_UNSUBSCRIBED" => Some(Self::TrackUnsubscribed),
8475 "TRACK_PUBLISHED_UPDATE" => Some(Self::TrackPublishedUpdate),
8476 "TRACK_MUTED" => Some(Self::TrackMuted),
8477 "TRACK_UNMUTED" => Some(Self::TrackUnmuted),
8478 "TRACK_PUBLISH_STATS" => Some(Self::TrackPublishStats),
8479 "TRACK_SUBSCRIBE_STATS" => Some(Self::TrackSubscribeStats),
8480 "PARTICIPANT_ACTIVE" => Some(Self::ParticipantActive),
8481 "PARTICIPANT_RESUMED" => Some(Self::ParticipantResumed),
8482 "EGRESS_STARTED" => Some(Self::EgressStarted),
8483 "EGRESS_ENDED" => Some(Self::EgressEnded),
8484 "EGRESS_UPDATED" => Some(Self::EgressUpdated),
8485 "TRACK_MAX_SUBSCRIBED_VIDEO_QUALITY" => Some(Self::TrackMaxSubscribedVideoQuality),
8486 "RECONNECTED" => Some(Self::Reconnected),
8487 "INGRESS_CREATED" => Some(Self::IngressCreated),
8488 "INGRESS_DELETED" => Some(Self::IngressDeleted),
8489 "INGRESS_STARTED" => Some(Self::IngressStarted),
8490 "INGRESS_ENDED" => Some(Self::IngressEnded),
8491 "INGRESS_UPDATED" => Some(Self::IngressUpdated),
8492 "SIP_INBOUND_TRUNK_CREATED" => Some(Self::SipInboundTrunkCreated),
8493 "SIP_INBOUND_TRUNK_DELETED" => Some(Self::SipInboundTrunkDeleted),
8494 "SIP_OUTBOUND_TRUNK_CREATED" => Some(Self::SipOutboundTrunkCreated),
8495 "SIP_OUTBOUND_TRUNK_DELETED" => Some(Self::SipOutboundTrunkDeleted),
8496 "SIP_DISPATCH_RULE_CREATED" => Some(Self::SipDispatchRuleCreated),
8497 "SIP_DISPATCH_RULE_DELETED" => Some(Self::SipDispatchRuleDeleted),
8498 "SIP_PARTICIPANT_CREATED" => Some(Self::SipParticipantCreated),
8499 "SIP_CALL_INCOMING" => Some(Self::SipCallIncoming),
8500 "SIP_CALL_STARTED" => Some(Self::SipCallStarted),
8501 "SIP_CALL_ENDED" => Some(Self::SipCallEnded),
8502 "SIP_TRANSFER_REQUESTED" => Some(Self::SipTransferRequested),
8503 "SIP_TRANSFER_COMPLETE" => Some(Self::SipTransferComplete),
8504 "SIP_CALL_UPDATE" => Some(Self::SipCallUpdate),
8505 "REPORT" => Some(Self::Report),
8506 "API_CALL" => Some(Self::ApiCall),
8507 "WEBHOOK" => Some(Self::Webhook),
8508 _ => None,
8509 }
8510 }
8511}
8512include!("livekit.serde.rs");
8513