1#[allow(clippy::derive_partial_eq_without_eq)]
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct MetricsBatch {
6 #[prost(int64, tag="1")]
8 pub timestamp_ms: i64,
9 #[prost(message, optional, tag="2")]
10 pub normalized_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
11 #[prost(string, repeated, tag="3")]
18 pub str_data: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
19 #[prost(message, repeated, tag="4")]
20 pub time_series: ::prost::alloc::vec::Vec<TimeSeriesMetric>,
21 #[prost(message, repeated, tag="5")]
22 pub events: ::prost::alloc::vec::Vec<EventMetric>,
23}
24#[allow(clippy::derive_partial_eq_without_eq)]
25#[derive(Clone, PartialEq, ::prost::Message)]
26pub struct TimeSeriesMetric {
27 #[prost(uint32, tag="1")]
30 pub label: u32,
31 #[prost(uint32, tag="2")]
33 pub participant_identity: u32,
34 #[prost(uint32, tag="3")]
36 pub track_sid: u32,
37 #[prost(message, repeated, tag="4")]
38 pub samples: ::prost::alloc::vec::Vec<MetricSample>,
39 #[prost(uint32, tag="5")]
41 pub rid: u32,
42}
43#[allow(clippy::derive_partial_eq_without_eq)]
44#[derive(Clone, PartialEq, ::prost::Message)]
45pub struct MetricSample {
46 #[prost(int64, tag="1")]
48 pub timestamp_ms: i64,
49 #[prost(message, optional, tag="2")]
50 pub normalized_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
51 #[prost(float, tag="3")]
52 pub value: f32,
53}
54#[allow(clippy::derive_partial_eq_without_eq)]
55#[derive(Clone, PartialEq, ::prost::Message)]
56pub struct EventMetric {
57 #[prost(uint32, tag="1")]
58 pub label: u32,
59 #[prost(uint32, tag="2")]
61 pub participant_identity: u32,
62 #[prost(uint32, tag="3")]
64 pub track_sid: u32,
65 #[prost(int64, tag="4")]
67 pub start_timestamp_ms: i64,
68 #[prost(int64, optional, tag="5")]
70 pub end_timestamp_ms: ::core::option::Option<i64>,
71 #[prost(message, optional, tag="6")]
72 pub normalized_start_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
73 #[prost(message, optional, tag="7")]
74 pub normalized_end_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
75 #[prost(string, tag="8")]
76 pub metadata: ::prost::alloc::string::String,
77 #[prost(uint32, tag="9")]
79 pub rid: u32,
80}
81#[allow(clippy::derive_partial_eq_without_eq)]
82#[derive(Clone, PartialEq, ::prost::Message)]
83pub struct MetricsRecordingHeader {
84 #[prost(string, tag="1")]
85 pub room_id: ::prost::alloc::string::String,
86 #[prost(uint64, tag="3")]
88 pub duration: u64,
89 #[prost(message, optional, tag="4")]
90 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
91 #[prost(map="string, string", tag="5")]
92 pub room_tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
93 #[prost(string, tag="6")]
94 pub room_name: ::prost::alloc::string::String,
95 #[prost(message, optional, tag="7")]
96 pub room_start_time: ::core::option::Option<::pbjson_types::Timestamp>,
97}
98#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
108#[repr(i32)]
109pub enum MetricLabel {
110 AgentsLlmTtft = 0,
112 AgentsSttTtft = 1,
114 AgentsTtsTtfb = 2,
116 ClientVideoSubscriberFreezeCount = 3,
118 ClientVideoSubscriberTotalFreezeDuration = 4,
120 ClientVideoSubscriberPauseCount = 5,
122 ClientVideoSubscriberTotalPausesDuration = 6,
124 ClientAudioSubscriberConcealedSamples = 7,
126 ClientAudioSubscriberSilentConcealedSamples = 8,
128 ClientAudioSubscriberConcealmentEvents = 9,
130 ClientAudioSubscriberInterruptionCount = 10,
132 ClientAudioSubscriberTotalInterruptionDuration = 11,
134 ClientSubscriberJitterBufferDelay = 12,
136 ClientSubscriberJitterBufferEmittedCount = 13,
138 ClientVideoPublisherQualityLimitationDurationBandwidth = 14,
140 ClientVideoPublisherQualityLimitationDurationCpu = 15,
142 ClientVideoPublisherQualityLimitationDurationOther = 16,
144 PublisherRtt = 17,
146 ServerMeshRtt = 18,
148 SubscriberRtt = 19,
150 PredefinedMaxValue = 4096,
151}
152impl MetricLabel {
153 pub fn as_str_name(&self) -> &'static str {
158 match self {
159 MetricLabel::AgentsLlmTtft => "AGENTS_LLM_TTFT",
160 MetricLabel::AgentsSttTtft => "AGENTS_STT_TTFT",
161 MetricLabel::AgentsTtsTtfb => "AGENTS_TTS_TTFB",
162 MetricLabel::ClientVideoSubscriberFreezeCount => "CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT",
163 MetricLabel::ClientVideoSubscriberTotalFreezeDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION",
164 MetricLabel::ClientVideoSubscriberPauseCount => "CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT",
165 MetricLabel::ClientVideoSubscriberTotalPausesDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION",
166 MetricLabel::ClientAudioSubscriberConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES",
167 MetricLabel::ClientAudioSubscriberSilentConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES",
168 MetricLabel::ClientAudioSubscriberConcealmentEvents => "CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS",
169 MetricLabel::ClientAudioSubscriberInterruptionCount => "CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT",
170 MetricLabel::ClientAudioSubscriberTotalInterruptionDuration => "CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION",
171 MetricLabel::ClientSubscriberJitterBufferDelay => "CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY",
172 MetricLabel::ClientSubscriberJitterBufferEmittedCount => "CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT",
173 MetricLabel::ClientVideoPublisherQualityLimitationDurationBandwidth => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH",
174 MetricLabel::ClientVideoPublisherQualityLimitationDurationCpu => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU",
175 MetricLabel::ClientVideoPublisherQualityLimitationDurationOther => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER",
176 MetricLabel::PublisherRtt => "PUBLISHER_RTT",
177 MetricLabel::ServerMeshRtt => "SERVER_MESH_RTT",
178 MetricLabel::SubscriberRtt => "SUBSCRIBER_RTT",
179 MetricLabel::PredefinedMaxValue => "METRIC_LABEL_PREDEFINED_MAX_VALUE",
180 }
181 }
182 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
184 match value {
185 "AGENTS_LLM_TTFT" => Some(Self::AgentsLlmTtft),
186 "AGENTS_STT_TTFT" => Some(Self::AgentsSttTtft),
187 "AGENTS_TTS_TTFB" => Some(Self::AgentsTtsTtfb),
188 "CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT" => Some(Self::ClientVideoSubscriberFreezeCount),
189 "CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION" => Some(Self::ClientVideoSubscriberTotalFreezeDuration),
190 "CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT" => Some(Self::ClientVideoSubscriberPauseCount),
191 "CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION" => Some(Self::ClientVideoSubscriberTotalPausesDuration),
192 "CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberConcealedSamples),
193 "CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberSilentConcealedSamples),
194 "CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS" => Some(Self::ClientAudioSubscriberConcealmentEvents),
195 "CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT" => Some(Self::ClientAudioSubscriberInterruptionCount),
196 "CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION" => Some(Self::ClientAudioSubscriberTotalInterruptionDuration),
197 "CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY" => Some(Self::ClientSubscriberJitterBufferDelay),
198 "CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT" => Some(Self::ClientSubscriberJitterBufferEmittedCount),
199 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH" => Some(Self::ClientVideoPublisherQualityLimitationDurationBandwidth),
200 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU" => Some(Self::ClientVideoPublisherQualityLimitationDurationCpu),
201 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER" => Some(Self::ClientVideoPublisherQualityLimitationDurationOther),
202 "PUBLISHER_RTT" => Some(Self::PublisherRtt),
203 "SERVER_MESH_RTT" => Some(Self::ServerMeshRtt),
204 "SUBSCRIBER_RTT" => Some(Self::SubscriberRtt),
205 "METRIC_LABEL_PREDEFINED_MAX_VALUE" => Some(Self::PredefinedMaxValue),
206 _ => None,
207 }
208 }
209}
210#[allow(clippy::derive_partial_eq_without_eq)]
211#[derive(Clone, PartialEq, ::prost::Message)]
212pub struct Pagination {
213 #[prost(string, tag="1")]
215 pub after_id: ::prost::alloc::string::String,
216 #[prost(int32, tag="2")]
217 pub limit: i32,
218}
219#[allow(clippy::derive_partial_eq_without_eq)]
220#[derive(Clone, PartialEq, ::prost::Message)]
221pub struct TokenPagination {
222 #[prost(string, tag="1")]
223 pub token: ::prost::alloc::string::String,
224}
225#[allow(clippy::derive_partial_eq_without_eq)]
227#[derive(Clone, PartialEq, ::prost::Message)]
228pub struct ListUpdate {
229 #[prost(string, repeated, tag="1")]
231 pub set: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
232 #[prost(string, repeated, tag="2")]
234 pub add: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
235 #[prost(string, repeated, tag="3")]
237 pub remove: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
238 #[prost(bool, tag="4")]
240 pub clear: bool,
241}
242#[allow(clippy::derive_partial_eq_without_eq)]
243#[derive(Clone, PartialEq, ::prost::Message)]
244pub struct Room {
245 #[prost(string, tag="1")]
246 pub sid: ::prost::alloc::string::String,
247 #[prost(string, tag="2")]
248 pub name: ::prost::alloc::string::String,
249 #[prost(uint32, tag="3")]
250 pub empty_timeout: u32,
251 #[prost(uint32, tag="14")]
252 pub departure_timeout: u32,
253 #[prost(uint32, tag="4")]
254 pub max_participants: u32,
255 #[prost(int64, tag="5")]
256 pub creation_time: i64,
257 #[prost(int64, tag="15")]
258 pub creation_time_ms: i64,
259 #[prost(string, tag="6")]
260 pub turn_password: ::prost::alloc::string::String,
261 #[prost(message, repeated, tag="7")]
262 pub enabled_codecs: ::prost::alloc::vec::Vec<Codec>,
263 #[prost(string, tag="8")]
264 pub metadata: ::prost::alloc::string::String,
265 #[prost(uint32, tag="9")]
266 pub num_participants: u32,
267 #[prost(uint32, tag="11")]
268 pub num_publishers: u32,
269 #[prost(bool, tag="10")]
270 pub active_recording: bool,
271 #[prost(message, optional, tag="13")]
272 pub version: ::core::option::Option<TimedVersion>,
273}
274#[allow(clippy::derive_partial_eq_without_eq)]
275#[derive(Clone, PartialEq, ::prost::Message)]
276pub struct Codec {
277 #[prost(string, tag="1")]
278 pub mime: ::prost::alloc::string::String,
279 #[prost(string, tag="2")]
280 pub fmtp_line: ::prost::alloc::string::String,
281}
282#[allow(clippy::derive_partial_eq_without_eq)]
283#[derive(Clone, PartialEq, ::prost::Message)]
284pub struct PlayoutDelay {
285 #[prost(bool, tag="1")]
286 pub enabled: bool,
287 #[prost(uint32, tag="2")]
288 pub min: u32,
289 #[prost(uint32, tag="3")]
290 pub max: u32,
291}
292#[allow(clippy::derive_partial_eq_without_eq)]
293#[derive(Clone, PartialEq, ::prost::Message)]
294pub struct ParticipantPermission {
295 #[prost(bool, tag="1")]
297 pub can_subscribe: bool,
298 #[prost(bool, tag="2")]
300 pub can_publish: bool,
301 #[prost(bool, tag="3")]
303 pub can_publish_data: bool,
304 #[prost(enumeration="TrackSource", repeated, tag="9")]
306 pub can_publish_sources: ::prost::alloc::vec::Vec<i32>,
307 #[prost(bool, tag="7")]
309 pub hidden: bool,
310 #[deprecated]
313 #[prost(bool, tag="8")]
314 pub recorder: bool,
315 #[prost(bool, tag="10")]
317 pub can_update_metadata: bool,
318 #[deprecated]
321 #[prost(bool, tag="11")]
322 pub agent: bool,
323 #[prost(bool, tag="12")]
325 pub can_subscribe_metrics: bool,
326 #[prost(bool, tag="13")]
328 pub can_manage_agent_session: bool,
329}
330#[allow(clippy::derive_partial_eq_without_eq)]
331#[derive(Clone, PartialEq, ::prost::Message)]
332pub struct ParticipantInfo {
333 #[prost(string, tag="1")]
334 pub sid: ::prost::alloc::string::String,
335 #[prost(string, tag="2")]
336 pub identity: ::prost::alloc::string::String,
337 #[prost(enumeration="participant_info::State", tag="3")]
338 pub state: i32,
339 #[prost(message, repeated, tag="4")]
340 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
341 #[prost(string, tag="5")]
342 pub metadata: ::prost::alloc::string::String,
343 #[prost(int64, tag="6")]
345 pub joined_at: i64,
346 #[prost(int64, tag="17")]
348 pub joined_at_ms: i64,
349 #[prost(string, tag="9")]
350 pub name: ::prost::alloc::string::String,
351 #[prost(uint32, tag="10")]
352 pub version: u32,
353 #[prost(message, optional, tag="11")]
354 pub permission: ::core::option::Option<ParticipantPermission>,
355 #[prost(string, tag="12")]
356 pub region: ::prost::alloc::string::String,
357 #[prost(bool, tag="13")]
360 pub is_publisher: bool,
361 #[prost(enumeration="participant_info::Kind", tag="14")]
362 pub kind: i32,
363 #[prost(map="string, string", tag="15")]
364 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
365 #[prost(enumeration="DisconnectReason", tag="16")]
366 pub disconnect_reason: i32,
367 #[prost(enumeration="participant_info::KindDetail", repeated, tag="18")]
368 pub kind_details: ::prost::alloc::vec::Vec<i32>,
369 #[prost(message, repeated, tag="19")]
370 pub data_tracks: ::prost::alloc::vec::Vec<DataTrackInfo>,
371 #[prost(int32, tag="20")]
373 pub client_protocol: i32,
374 #[prost(enumeration="client_info::Capability", repeated, tag="21")]
377 pub capabilities: ::prost::alloc::vec::Vec<i32>,
378}
379pub mod participant_info {
381 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
382 #[repr(i32)]
383 pub enum State {
384 Joining = 0,
386 Joined = 1,
388 Active = 2,
390 Disconnected = 3,
392 }
393 impl State {
394 pub fn as_str_name(&self) -> &'static str {
399 match self {
400 State::Joining => "JOINING",
401 State::Joined => "JOINED",
402 State::Active => "ACTIVE",
403 State::Disconnected => "DISCONNECTED",
404 }
405 }
406 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
408 match value {
409 "JOINING" => Some(Self::Joining),
410 "JOINED" => Some(Self::Joined),
411 "ACTIVE" => Some(Self::Active),
412 "DISCONNECTED" => Some(Self::Disconnected),
413 _ => None,
414 }
415 }
416 }
417 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
418 #[repr(i32)]
419 pub enum Kind {
420 Standard = 0,
422 Ingress = 1,
424 Egress = 2,
426 Sip = 3,
428 Agent = 4,
430 Connector = 7,
432 Bridge = 8,
436 }
437 impl Kind {
438 pub fn as_str_name(&self) -> &'static str {
443 match self {
444 Kind::Standard => "STANDARD",
445 Kind::Ingress => "INGRESS",
446 Kind::Egress => "EGRESS",
447 Kind::Sip => "SIP",
448 Kind::Agent => "AGENT",
449 Kind::Connector => "CONNECTOR",
450 Kind::Bridge => "BRIDGE",
451 }
452 }
453 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
455 match value {
456 "STANDARD" => Some(Self::Standard),
457 "INGRESS" => Some(Self::Ingress),
458 "EGRESS" => Some(Self::Egress),
459 "SIP" => Some(Self::Sip),
460 "AGENT" => Some(Self::Agent),
461 "CONNECTOR" => Some(Self::Connector),
462 "BRIDGE" => Some(Self::Bridge),
463 _ => None,
464 }
465 }
466 }
467 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
468 #[repr(i32)]
469 pub enum KindDetail {
470 CloudAgent = 0,
471 Forwarded = 1,
472 ConnectorWhatsapp = 2,
473 ConnectorTwilio = 3,
474 BridgeRtsp = 4,
476 }
477 impl KindDetail {
478 pub fn as_str_name(&self) -> &'static str {
483 match self {
484 KindDetail::CloudAgent => "CLOUD_AGENT",
485 KindDetail::Forwarded => "FORWARDED",
486 KindDetail::ConnectorWhatsapp => "CONNECTOR_WHATSAPP",
487 KindDetail::ConnectorTwilio => "CONNECTOR_TWILIO",
488 KindDetail::BridgeRtsp => "BRIDGE_RTSP",
489 }
490 }
491 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
493 match value {
494 "CLOUD_AGENT" => Some(Self::CloudAgent),
495 "FORWARDED" => Some(Self::Forwarded),
496 "CONNECTOR_WHATSAPP" => Some(Self::ConnectorWhatsapp),
497 "CONNECTOR_TWILIO" => Some(Self::ConnectorTwilio),
498 "BRIDGE_RTSP" => Some(Self::BridgeRtsp),
499 _ => None,
500 }
501 }
502 }
503}
504#[allow(clippy::derive_partial_eq_without_eq)]
505#[derive(Clone, PartialEq, ::prost::Message)]
506pub struct Encryption {
507}
508pub mod encryption {
510 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
511 #[repr(i32)]
512 pub enum Type {
513 None = 0,
514 Gcm = 1,
515 Custom = 2,
516 }
517 impl Type {
518 pub fn as_str_name(&self) -> &'static str {
523 match self {
524 Type::None => "NONE",
525 Type::Gcm => "GCM",
526 Type::Custom => "CUSTOM",
527 }
528 }
529 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
531 match value {
532 "NONE" => Some(Self::None),
533 "GCM" => Some(Self::Gcm),
534 "CUSTOM" => Some(Self::Custom),
535 _ => None,
536 }
537 }
538 }
539}
540#[allow(clippy::derive_partial_eq_without_eq)]
541#[derive(Clone, PartialEq, ::prost::Message)]
542pub struct SimulcastCodecInfo {
543 #[prost(string, tag="1")]
544 pub mime_type: ::prost::alloc::string::String,
545 #[prost(string, tag="2")]
546 pub mid: ::prost::alloc::string::String,
547 #[prost(string, tag="3")]
548 pub cid: ::prost::alloc::string::String,
549 #[prost(message, repeated, tag="4")]
550 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
551 #[prost(enumeration="video_layer::Mode", tag="5")]
552 pub video_layer_mode: i32,
553 #[prost(string, tag="6")]
558 pub sdp_cid: ::prost::alloc::string::String,
559}
560#[allow(clippy::derive_partial_eq_without_eq)]
561#[derive(Clone, PartialEq, ::prost::Message)]
562pub struct TrackInfo {
563 #[prost(string, tag="1")]
564 pub sid: ::prost::alloc::string::String,
565 #[prost(enumeration="TrackType", tag="2")]
566 pub r#type: i32,
567 #[prost(string, tag="3")]
568 pub name: ::prost::alloc::string::String,
569 #[prost(bool, tag="4")]
570 pub muted: bool,
571 #[prost(uint32, tag="5")]
574 pub width: u32,
575 #[prost(uint32, tag="6")]
577 pub height: u32,
578 #[deprecated]
582 #[prost(bool, tag="7")]
583 pub simulcast: bool,
584 #[deprecated]
588 #[prost(bool, tag="8")]
589 pub disable_dtx: bool,
590 #[prost(enumeration="TrackSource", tag="9")]
592 pub source: i32,
593 #[deprecated]
595 #[prost(message, repeated, tag="10")]
596 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
597 #[prost(string, tag="11")]
599 pub mime_type: ::prost::alloc::string::String,
600 #[prost(string, tag="12")]
601 pub mid: ::prost::alloc::string::String,
602 #[prost(message, repeated, tag="13")]
603 pub codecs: ::prost::alloc::vec::Vec<SimulcastCodecInfo>,
604 #[deprecated]
606 #[prost(bool, tag="14")]
607 pub stereo: bool,
608 #[prost(bool, tag="15")]
610 pub disable_red: bool,
611 #[prost(enumeration="encryption::Type", tag="16")]
612 pub encryption: i32,
613 #[prost(string, tag="17")]
614 pub stream: ::prost::alloc::string::String,
615 #[prost(message, optional, tag="18")]
616 pub version: ::core::option::Option<TimedVersion>,
617 #[prost(enumeration="AudioTrackFeature", repeated, tag="19")]
618 pub audio_features: ::prost::alloc::vec::Vec<i32>,
619 #[prost(enumeration="BackupCodecPolicy", tag="20")]
620 pub backup_codec_policy: i32,
621 #[prost(enumeration="PacketTrailerFeature", repeated, tag="21")]
622 pub packet_trailer_features: ::prost::alloc::vec::Vec<i32>,
623}
624#[allow(clippy::derive_partial_eq_without_eq)]
625#[derive(Clone, PartialEq, ::prost::Message)]
626pub struct DataTrackInfo {
627 #[prost(uint32, tag="1")]
629 pub pub_handle: u32,
630 #[prost(string, tag="2")]
632 pub sid: ::prost::alloc::string::String,
633 #[prost(string, tag="3")]
635 pub name: ::prost::alloc::string::String,
636 #[prost(enumeration="encryption::Type", tag="4")]
638 pub encryption: i32,
639 #[prost(message, optional, tag="5")]
641 pub frame_encoding: ::core::option::Option<DataTrackFrameEncoding>,
642 #[prost(message, optional, tag="6")]
644 pub schema: ::core::option::Option<DataTrackSchemaId>,
645}
646#[allow(clippy::derive_partial_eq_without_eq)]
648#[derive(Clone, PartialEq, ::prost::Message)]
649pub struct DataTrackFrameEncoding {
650 #[prost(oneof="data_track_frame_encoding::Value", tags="1, 2")]
651 pub value: ::core::option::Option<data_track_frame_encoding::Value>,
652}
653pub mod data_track_frame_encoding {
655 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
661 #[repr(i32)]
662 pub enum WellKnownFrameEncoding {
663 Unspecified = 0,
664 Ros1 = 1,
666 Cdr = 2,
668 Protobuf = 3,
670 Flatbuffer = 4,
672 Cbor = 5,
674 Msgpack = 6,
676 Json = 7,
678 }
679 impl WellKnownFrameEncoding {
680 pub fn as_str_name(&self) -> &'static str {
685 match self {
686 WellKnownFrameEncoding::Unspecified => "WELL_KNOWN_FRAME_ENCODING_UNSPECIFIED",
687 WellKnownFrameEncoding::Ros1 => "WELL_KNOWN_FRAME_ENCODING_ROS1",
688 WellKnownFrameEncoding::Cdr => "WELL_KNOWN_FRAME_ENCODING_CDR",
689 WellKnownFrameEncoding::Protobuf => "WELL_KNOWN_FRAME_ENCODING_PROTOBUF",
690 WellKnownFrameEncoding::Flatbuffer => "WELL_KNOWN_FRAME_ENCODING_FLATBUFFER",
691 WellKnownFrameEncoding::Cbor => "WELL_KNOWN_FRAME_ENCODING_CBOR",
692 WellKnownFrameEncoding::Msgpack => "WELL_KNOWN_FRAME_ENCODING_MSGPACK",
693 WellKnownFrameEncoding::Json => "WELL_KNOWN_FRAME_ENCODING_JSON",
694 }
695 }
696 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
698 match value {
699 "WELL_KNOWN_FRAME_ENCODING_UNSPECIFIED" => Some(Self::Unspecified),
700 "WELL_KNOWN_FRAME_ENCODING_ROS1" => Some(Self::Ros1),
701 "WELL_KNOWN_FRAME_ENCODING_CDR" => Some(Self::Cdr),
702 "WELL_KNOWN_FRAME_ENCODING_PROTOBUF" => Some(Self::Protobuf),
703 "WELL_KNOWN_FRAME_ENCODING_FLATBUFFER" => Some(Self::Flatbuffer),
704 "WELL_KNOWN_FRAME_ENCODING_CBOR" => Some(Self::Cbor),
705 "WELL_KNOWN_FRAME_ENCODING_MSGPACK" => Some(Self::Msgpack),
706 "WELL_KNOWN_FRAME_ENCODING_JSON" => Some(Self::Json),
707 _ => None,
708 }
709 }
710 }
711 #[allow(clippy::derive_partial_eq_without_eq)]
712#[derive(Clone, PartialEq, ::prost::Oneof)]
713 pub enum Value {
714 #[prost(enumeration="WellKnownFrameEncoding", tag="1")]
715 WellKnown(i32),
716 #[prost(string, tag="2")]
719 Custom(::prost::alloc::string::String),
720 }
721}
722#[allow(clippy::derive_partial_eq_without_eq)]
724#[derive(Clone, PartialEq, ::prost::Message)]
725pub struct DataTrackSchemaEncoding {
726 #[prost(oneof="data_track_schema_encoding::Value", tags="1, 2")]
727 pub value: ::core::option::Option<data_track_schema_encoding::Value>,
728}
729pub mod data_track_schema_encoding {
731 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
737 #[repr(i32)]
738 pub enum WellKnownSchemaEncoding {
739 Unspecified = 0,
740 Protobuf = 1,
742 Flatbuffer = 2,
744 Ros1Msg = 3,
746 Ros2Msg = 4,
748 Ros2Idl = 5,
750 OmgIdl = 6,
752 JsonSchema = 7,
754 }
755 impl WellKnownSchemaEncoding {
756 pub fn as_str_name(&self) -> &'static str {
761 match self {
762 WellKnownSchemaEncoding::Unspecified => "WELL_KNOWN_SCHEMA_ENCODING_UNSPECIFIED",
763 WellKnownSchemaEncoding::Protobuf => "WELL_KNOWN_SCHEMA_ENCODING_PROTOBUF",
764 WellKnownSchemaEncoding::Flatbuffer => "WELL_KNOWN_SCHEMA_ENCODING_FLATBUFFER",
765 WellKnownSchemaEncoding::Ros1Msg => "WELL_KNOWN_SCHEMA_ENCODING_ROS1_MSG",
766 WellKnownSchemaEncoding::Ros2Msg => "WELL_KNOWN_SCHEMA_ENCODING_ROS2_MSG",
767 WellKnownSchemaEncoding::Ros2Idl => "WELL_KNOWN_SCHEMA_ENCODING_ROS2_IDL",
768 WellKnownSchemaEncoding::OmgIdl => "WELL_KNOWN_SCHEMA_ENCODING_OMG_IDL",
769 WellKnownSchemaEncoding::JsonSchema => "WELL_KNOWN_SCHEMA_ENCODING_JSON_SCHEMA",
770 }
771 }
772 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
774 match value {
775 "WELL_KNOWN_SCHEMA_ENCODING_UNSPECIFIED" => Some(Self::Unspecified),
776 "WELL_KNOWN_SCHEMA_ENCODING_PROTOBUF" => Some(Self::Protobuf),
777 "WELL_KNOWN_SCHEMA_ENCODING_FLATBUFFER" => Some(Self::Flatbuffer),
778 "WELL_KNOWN_SCHEMA_ENCODING_ROS1_MSG" => Some(Self::Ros1Msg),
779 "WELL_KNOWN_SCHEMA_ENCODING_ROS2_MSG" => Some(Self::Ros2Msg),
780 "WELL_KNOWN_SCHEMA_ENCODING_ROS2_IDL" => Some(Self::Ros2Idl),
781 "WELL_KNOWN_SCHEMA_ENCODING_OMG_IDL" => Some(Self::OmgIdl),
782 "WELL_KNOWN_SCHEMA_ENCODING_JSON_SCHEMA" => Some(Self::JsonSchema),
783 _ => None,
784 }
785 }
786 }
787 #[allow(clippy::derive_partial_eq_without_eq)]
788#[derive(Clone, PartialEq, ::prost::Oneof)]
789 pub enum Value {
790 #[prost(enumeration="WellKnownSchemaEncoding", tag="1")]
791 WellKnown(i32),
792 #[prost(string, tag="2")]
795 Custom(::prost::alloc::string::String),
796 }
797}
798#[allow(clippy::derive_partial_eq_without_eq)]
803#[derive(Clone, PartialEq, ::prost::Message)]
804pub struct DataTrackSchemaId {
805 #[prost(string, tag="1")]
807 pub name: ::prost::alloc::string::String,
808 #[prost(message, optional, tag="2")]
809 pub encoding: ::core::option::Option<DataTrackSchemaEncoding>,
810}
811#[allow(clippy::derive_partial_eq_without_eq)]
812#[derive(Clone, PartialEq, ::prost::Message)]
813pub struct DataTrackExtensionParticipantSid {
814 #[prost(enumeration="DataTrackExtensionId", tag="1")]
815 pub id: i32,
816 #[prost(string, tag="2")]
817 pub participant_sid: ::prost::alloc::string::String,
818}
819#[allow(clippy::derive_partial_eq_without_eq)]
820#[derive(Clone, PartialEq, ::prost::Message)]
821pub struct DataTrackSubscriptionOptions {
822 #[prost(uint32, optional, tag="1")]
825 pub target_fps: ::core::option::Option<u32>,
826}
827#[allow(clippy::derive_partial_eq_without_eq)]
829#[derive(Clone, PartialEq, ::prost::Message)]
830pub struct DataBlobKey {
831 #[prost(oneof="data_blob_key::Key", tags="1, 2")]
832 pub key: ::core::option::Option<data_blob_key::Key>,
833}
834pub mod data_blob_key {
836 #[allow(clippy::derive_partial_eq_without_eq)]
837#[derive(Clone, PartialEq, ::prost::Oneof)]
838 pub enum Key {
839 #[prost(string, tag="1")]
841 Generic(::prost::alloc::string::String),
842 #[prost(message, tag="2")]
844 SchemaId(super::DataTrackSchemaId),
845 }
846}
847#[allow(clippy::derive_partial_eq_without_eq)]
849#[derive(Clone, PartialEq, ::prost::Message)]
850pub struct DataBlob {
851 #[prost(message, optional, tag="1")]
853 pub key: ::core::option::Option<DataBlobKey>,
854 #[prost(bytes="vec", tag="2")]
856 pub contents: ::prost::alloc::vec::Vec<u8>,
857}
858#[allow(clippy::derive_partial_eq_without_eq)]
860#[derive(Clone, PartialEq, ::prost::Message)]
861pub struct VideoLayer {
862 #[prost(enumeration="VideoQuality", tag="1")]
864 pub quality: i32,
865 #[prost(uint32, tag="2")]
866 pub width: u32,
867 #[prost(uint32, tag="3")]
868 pub height: u32,
869 #[prost(uint32, tag="4")]
871 pub bitrate: u32,
872 #[prost(uint32, tag="5")]
873 pub ssrc: u32,
874 #[prost(int32, tag="6")]
875 pub spatial_layer: i32,
876 #[prost(string, tag="7")]
877 pub rid: ::prost::alloc::string::String,
878 #[prost(uint32, tag="8")]
879 pub repair_ssrc: u32,
880}
881pub mod video_layer {
883 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
884 #[repr(i32)]
885 pub enum Mode {
886 Unused = 0,
887 OneSpatialLayerPerStream = 1,
888 MultipleSpatialLayersPerStream = 2,
889 OneSpatialLayerPerStreamIncompleteRtcpSr = 3,
890 }
891 impl Mode {
892 pub fn as_str_name(&self) -> &'static str {
897 match self {
898 Mode::Unused => "MODE_UNUSED",
899 Mode::OneSpatialLayerPerStream => "ONE_SPATIAL_LAYER_PER_STREAM",
900 Mode::MultipleSpatialLayersPerStream => "MULTIPLE_SPATIAL_LAYERS_PER_STREAM",
901 Mode::OneSpatialLayerPerStreamIncompleteRtcpSr => "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR",
902 }
903 }
904 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
906 match value {
907 "MODE_UNUSED" => Some(Self::Unused),
908 "ONE_SPATIAL_LAYER_PER_STREAM" => Some(Self::OneSpatialLayerPerStream),
909 "MULTIPLE_SPATIAL_LAYERS_PER_STREAM" => Some(Self::MultipleSpatialLayersPerStream),
910 "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR" => Some(Self::OneSpatialLayerPerStreamIncompleteRtcpSr),
911 _ => None,
912 }
913 }
914 }
915}
916#[allow(clippy::derive_partial_eq_without_eq)]
918#[derive(Clone, PartialEq, ::prost::Message)]
919pub struct DataPacket {
920 #[deprecated]
921 #[prost(enumeration="data_packet::Kind", tag="1")]
922 pub kind: i32,
923 #[prost(string, tag="4")]
925 pub participant_identity: ::prost::alloc::string::String,
926 #[prost(string, repeated, tag="5")]
928 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
929 #[prost(uint32, tag="16")]
931 pub sequence: u32,
932 #[prost(string, tag="17")]
934 pub participant_sid: ::prost::alloc::string::String,
935 #[prost(oneof="data_packet::Value", tags="2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18")]
936 pub value: ::core::option::Option<data_packet::Value>,
937}
938pub mod data_packet {
940 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
941 #[repr(i32)]
942 pub enum Kind {
943 Reliable = 0,
944 Lossy = 1,
945 }
946 impl Kind {
947 pub fn as_str_name(&self) -> &'static str {
952 match self {
953 Kind::Reliable => "RELIABLE",
954 Kind::Lossy => "LOSSY",
955 }
956 }
957 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
959 match value {
960 "RELIABLE" => Some(Self::Reliable),
961 "LOSSY" => Some(Self::Lossy),
962 _ => None,
963 }
964 }
965 }
966 #[allow(clippy::derive_partial_eq_without_eq)]
967#[derive(Clone, PartialEq, ::prost::Oneof)]
968 pub enum Value {
969 #[prost(message, tag="2")]
970 User(super::UserPacket),
971 #[prost(message, tag="3")]
972 Speaker(super::ActiveSpeakerUpdate),
973 #[prost(message, tag="6")]
974 SipDtmf(super::SipDtmf),
975 #[prost(message, tag="7")]
976 Transcription(super::Transcription),
977 #[prost(message, tag="8")]
978 Metrics(super::MetricsBatch),
979 #[prost(message, tag="9")]
980 ChatMessage(super::ChatMessage),
981 #[prost(message, tag="10")]
982 RpcRequest(super::RpcRequest),
983 #[prost(message, tag="11")]
984 RpcAck(super::RpcAck),
985 #[prost(message, tag="12")]
986 RpcResponse(super::RpcResponse),
987 #[prost(message, tag="13")]
988 StreamHeader(super::data_stream::Header),
989 #[prost(message, tag="14")]
990 StreamChunk(super::data_stream::Chunk),
991 #[prost(message, tag="15")]
992 StreamTrailer(super::data_stream::Trailer),
993 #[prost(message, tag="18")]
994 EncryptedPacket(super::EncryptedPacket),
995 }
996}
997#[allow(clippy::derive_partial_eq_without_eq)]
998#[derive(Clone, PartialEq, ::prost::Message)]
999pub struct EncryptedPacket {
1000 #[prost(enumeration="encryption::Type", tag="1")]
1001 pub encryption_type: i32,
1002 #[prost(bytes="vec", tag="2")]
1003 pub iv: ::prost::alloc::vec::Vec<u8>,
1004 #[prost(uint32, tag="3")]
1005 pub key_index: u32,
1006 #[prost(bytes="vec", tag="4")]
1008 pub encrypted_value: ::prost::alloc::vec::Vec<u8>,
1009}
1010#[allow(clippy::derive_partial_eq_without_eq)]
1011#[derive(Clone, PartialEq, ::prost::Message)]
1012pub struct EncryptedPacketPayload {
1013 #[prost(oneof="encrypted_packet_payload::Value", tags="1, 3, 4, 5, 6, 7, 8, 9")]
1014 pub value: ::core::option::Option<encrypted_packet_payload::Value>,
1015}
1016pub mod encrypted_packet_payload {
1018 #[allow(clippy::derive_partial_eq_without_eq)]
1019#[derive(Clone, PartialEq, ::prost::Oneof)]
1020 pub enum Value {
1021 #[prost(message, tag="1")]
1022 User(super::UserPacket),
1023 #[prost(message, tag="3")]
1024 ChatMessage(super::ChatMessage),
1025 #[prost(message, tag="4")]
1026 RpcRequest(super::RpcRequest),
1027 #[prost(message, tag="5")]
1028 RpcAck(super::RpcAck),
1029 #[prost(message, tag="6")]
1030 RpcResponse(super::RpcResponse),
1031 #[prost(message, tag="7")]
1032 StreamHeader(super::data_stream::Header),
1033 #[prost(message, tag="8")]
1034 StreamChunk(super::data_stream::Chunk),
1035 #[prost(message, tag="9")]
1036 StreamTrailer(super::data_stream::Trailer),
1037 }
1038}
1039#[allow(clippy::derive_partial_eq_without_eq)]
1040#[derive(Clone, PartialEq, ::prost::Message)]
1041pub struct ActiveSpeakerUpdate {
1042 #[prost(message, repeated, tag="1")]
1043 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
1044}
1045#[allow(clippy::derive_partial_eq_without_eq)]
1046#[derive(Clone, PartialEq, ::prost::Message)]
1047pub struct SpeakerInfo {
1048 #[prost(string, tag="1")]
1049 pub sid: ::prost::alloc::string::String,
1050 #[prost(float, tag="2")]
1052 pub level: f32,
1053 #[prost(bool, tag="3")]
1055 pub active: bool,
1056}
1057#[allow(clippy::derive_partial_eq_without_eq)]
1058#[derive(Clone, PartialEq, ::prost::Message)]
1059pub struct UserPacket {
1060 #[deprecated]
1062 #[prost(string, tag="1")]
1063 pub participant_sid: ::prost::alloc::string::String,
1064 #[deprecated]
1065 #[prost(string, tag="5")]
1066 pub participant_identity: ::prost::alloc::string::String,
1067 #[prost(bytes="vec", tag="2")]
1069 pub payload: ::prost::alloc::vec::Vec<u8>,
1070 #[deprecated]
1072 #[prost(string, repeated, tag="3")]
1073 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1074 #[deprecated]
1076 #[prost(string, repeated, tag="6")]
1077 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1078 #[prost(string, optional, tag="4")]
1080 pub topic: ::core::option::Option<::prost::alloc::string::String>,
1081 #[prost(string, optional, tag="8")]
1083 pub id: ::core::option::Option<::prost::alloc::string::String>,
1084 #[prost(uint64, optional, tag="9")]
1086 pub start_time: ::core::option::Option<u64>,
1087 #[prost(uint64, optional, tag="10")]
1088 pub end_time: ::core::option::Option<u64>,
1089 #[prost(bytes="vec", tag="11")]
1091 pub nonce: ::prost::alloc::vec::Vec<u8>,
1092}
1093#[allow(clippy::derive_partial_eq_without_eq)]
1094#[derive(Clone, PartialEq, ::prost::Message)]
1095pub struct SipDtmf {
1096 #[prost(uint32, tag="3")]
1097 pub code: u32,
1098 #[prost(string, tag="4")]
1099 pub digit: ::prost::alloc::string::String,
1100}
1101#[allow(clippy::derive_partial_eq_without_eq)]
1102#[derive(Clone, PartialEq, ::prost::Message)]
1103pub struct Transcription {
1104 #[prost(string, tag="2")]
1106 pub transcribed_participant_identity: ::prost::alloc::string::String,
1107 #[prost(string, tag="3")]
1108 pub track_id: ::prost::alloc::string::String,
1109 #[prost(message, repeated, tag="4")]
1110 pub segments: ::prost::alloc::vec::Vec<TranscriptionSegment>,
1111}
1112#[allow(clippy::derive_partial_eq_without_eq)]
1113#[derive(Clone, PartialEq, ::prost::Message)]
1114pub struct TranscriptionSegment {
1115 #[prost(string, tag="1")]
1116 pub id: ::prost::alloc::string::String,
1117 #[prost(string, tag="2")]
1118 pub text: ::prost::alloc::string::String,
1119 #[prost(uint64, tag="3")]
1120 pub start_time: u64,
1121 #[prost(uint64, tag="4")]
1122 pub end_time: u64,
1123 #[prost(bool, tag="5")]
1124 pub r#final: bool,
1125 #[prost(string, tag="6")]
1126 pub language: ::prost::alloc::string::String,
1127}
1128#[allow(clippy::derive_partial_eq_without_eq)]
1129#[derive(Clone, PartialEq, ::prost::Message)]
1130pub struct ChatMessage {
1131 #[prost(string, tag="1")]
1133 pub id: ::prost::alloc::string::String,
1134 #[prost(int64, tag="2")]
1135 pub timestamp: i64,
1136 #[prost(int64, optional, tag="3")]
1138 pub edit_timestamp: ::core::option::Option<i64>,
1139 #[prost(string, tag="4")]
1140 pub message: ::prost::alloc::string::String,
1141 #[prost(bool, tag="5")]
1143 pub deleted: bool,
1144 #[prost(bool, tag="6")]
1146 pub generated: bool,
1147}
1148#[allow(clippy::derive_partial_eq_without_eq)]
1149#[derive(Clone, PartialEq, ::prost::Message)]
1150pub struct RpcRequest {
1151 #[prost(string, tag="1")]
1152 pub id: ::prost::alloc::string::String,
1153 #[prost(string, tag="2")]
1154 pub method: ::prost::alloc::string::String,
1155 #[prost(string, tag="3")]
1156 pub payload: ::prost::alloc::string::String,
1157 #[prost(uint32, tag="4")]
1158 pub response_timeout_ms: u32,
1159 #[prost(uint32, tag="5")]
1160 pub version: u32,
1161 #[prost(bytes="vec", tag="6")]
1163 pub compressed_payload: ::prost::alloc::vec::Vec<u8>,
1164}
1165#[allow(clippy::derive_partial_eq_without_eq)]
1166#[derive(Clone, PartialEq, ::prost::Message)]
1167pub struct RpcAck {
1168 #[prost(string, tag="1")]
1169 pub request_id: ::prost::alloc::string::String,
1170}
1171#[allow(clippy::derive_partial_eq_without_eq)]
1172#[derive(Clone, PartialEq, ::prost::Message)]
1173pub struct RpcResponse {
1174 #[prost(string, tag="1")]
1175 pub request_id: ::prost::alloc::string::String,
1176 #[prost(oneof="rpc_response::Value", tags="2, 3, 4")]
1177 pub value: ::core::option::Option<rpc_response::Value>,
1178}
1179pub mod rpc_response {
1181 #[allow(clippy::derive_partial_eq_without_eq)]
1182#[derive(Clone, PartialEq, ::prost::Oneof)]
1183 pub enum Value {
1184 #[prost(string, tag="2")]
1185 Payload(::prost::alloc::string::String),
1186 #[prost(message, tag="3")]
1187 Error(super::RpcError),
1188 #[prost(bytes, tag="4")]
1190 CompressedPayload(::prost::alloc::vec::Vec<u8>),
1191 }
1192}
1193#[allow(clippy::derive_partial_eq_without_eq)]
1194#[derive(Clone, PartialEq, ::prost::Message)]
1195pub struct RpcError {
1196 #[prost(uint32, tag="1")]
1197 pub code: u32,
1198 #[prost(string, tag="2")]
1199 pub message: ::prost::alloc::string::String,
1200 #[prost(string, tag="3")]
1201 pub data: ::prost::alloc::string::String,
1202}
1203#[allow(clippy::derive_partial_eq_without_eq)]
1204#[derive(Clone, PartialEq, ::prost::Message)]
1205pub struct ParticipantTracks {
1206 #[prost(string, tag="1")]
1208 pub participant_sid: ::prost::alloc::string::String,
1209 #[prost(string, repeated, tag="2")]
1210 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1211}
1212#[allow(clippy::derive_partial_eq_without_eq)]
1214#[derive(Clone, PartialEq, ::prost::Message)]
1215pub struct ServerInfo {
1216 #[prost(enumeration="server_info::Edition", tag="1")]
1217 pub edition: i32,
1218 #[prost(string, tag="2")]
1219 pub version: ::prost::alloc::string::String,
1220 #[prost(int32, tag="3")]
1221 pub protocol: i32,
1222 #[prost(string, tag="4")]
1223 pub region: ::prost::alloc::string::String,
1224 #[prost(string, tag="5")]
1225 pub node_id: ::prost::alloc::string::String,
1226 #[prost(string, tag="6")]
1228 pub debug_info: ::prost::alloc::string::String,
1229 #[prost(int32, tag="7")]
1230 pub agent_protocol: i32,
1231}
1232pub mod server_info {
1234 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1235 #[repr(i32)]
1236 pub enum Edition {
1237 Standard = 0,
1238 Cloud = 1,
1239 }
1240 impl Edition {
1241 pub fn as_str_name(&self) -> &'static str {
1246 match self {
1247 Edition::Standard => "Standard",
1248 Edition::Cloud => "Cloud",
1249 }
1250 }
1251 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1253 match value {
1254 "Standard" => Some(Self::Standard),
1255 "Cloud" => Some(Self::Cloud),
1256 _ => None,
1257 }
1258 }
1259 }
1260}
1261#[allow(clippy::derive_partial_eq_without_eq)]
1263#[derive(Clone, PartialEq, ::prost::Message)]
1264pub struct ClientInfo {
1265 #[prost(enumeration="client_info::Sdk", tag="1")]
1266 pub sdk: i32,
1267 #[prost(string, tag="2")]
1268 pub version: ::prost::alloc::string::String,
1269 #[prost(int32, tag="3")]
1270 pub protocol: i32,
1271 #[prost(string, tag="4")]
1272 pub os: ::prost::alloc::string::String,
1273 #[prost(string, tag="5")]
1274 pub os_version: ::prost::alloc::string::String,
1275 #[prost(string, tag="6")]
1276 pub device_model: ::prost::alloc::string::String,
1277 #[prost(string, tag="7")]
1278 pub browser: ::prost::alloc::string::String,
1279 #[prost(string, tag="8")]
1280 pub browser_version: ::prost::alloc::string::String,
1281 #[prost(string, tag="9")]
1282 pub address: ::prost::alloc::string::String,
1283 #[prost(string, tag="10")]
1285 pub network: ::prost::alloc::string::String,
1286 #[prost(string, tag="11")]
1289 pub other_sdks: ::prost::alloc::string::String,
1290 #[prost(int32, tag="12")]
1292 pub client_protocol: i32,
1293 #[prost(enumeration="client_info::Capability", repeated, tag="13")]
1296 pub capabilities: ::prost::alloc::vec::Vec<i32>,
1297}
1298pub mod client_info {
1300 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1301 #[repr(i32)]
1302 pub enum Sdk {
1303 Unknown = 0,
1304 Js = 1,
1305 Swift = 2,
1306 Android = 3,
1307 Flutter = 4,
1308 Go = 5,
1309 Unity = 6,
1310 ReactNative = 7,
1311 Rust = 8,
1312 Python = 9,
1313 Cpp = 10,
1314 UnityWeb = 11,
1315 Node = 12,
1316 Unreal = 13,
1317 Esp32 = 14,
1318 }
1319 impl Sdk {
1320 pub fn as_str_name(&self) -> &'static str {
1325 match self {
1326 Sdk::Unknown => "UNKNOWN",
1327 Sdk::Js => "JS",
1328 Sdk::Swift => "SWIFT",
1329 Sdk::Android => "ANDROID",
1330 Sdk::Flutter => "FLUTTER",
1331 Sdk::Go => "GO",
1332 Sdk::Unity => "UNITY",
1333 Sdk::ReactNative => "REACT_NATIVE",
1334 Sdk::Rust => "RUST",
1335 Sdk::Python => "PYTHON",
1336 Sdk::Cpp => "CPP",
1337 Sdk::UnityWeb => "UNITY_WEB",
1338 Sdk::Node => "NODE",
1339 Sdk::Unreal => "UNREAL",
1340 Sdk::Esp32 => "ESP32",
1341 }
1342 }
1343 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1345 match value {
1346 "UNKNOWN" => Some(Self::Unknown),
1347 "JS" => Some(Self::Js),
1348 "SWIFT" => Some(Self::Swift),
1349 "ANDROID" => Some(Self::Android),
1350 "FLUTTER" => Some(Self::Flutter),
1351 "GO" => Some(Self::Go),
1352 "UNITY" => Some(Self::Unity),
1353 "REACT_NATIVE" => Some(Self::ReactNative),
1354 "RUST" => Some(Self::Rust),
1355 "PYTHON" => Some(Self::Python),
1356 "CPP" => Some(Self::Cpp),
1357 "UNITY_WEB" => Some(Self::UnityWeb),
1358 "NODE" => Some(Self::Node),
1359 "UNREAL" => Some(Self::Unreal),
1360 "ESP32" => Some(Self::Esp32),
1361 _ => None,
1362 }
1363 }
1364 }
1365 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1370 #[repr(i32)]
1371 pub enum Capability {
1372 CapUnused = 0,
1373 CapPacketTrailer = 1,
1374 CapCompressionDeflateRaw = 2,
1375 }
1376 impl Capability {
1377 pub fn as_str_name(&self) -> &'static str {
1382 match self {
1383 Capability::CapUnused => "CAP_UNUSED",
1384 Capability::CapPacketTrailer => "CAP_PACKET_TRAILER",
1385 Capability::CapCompressionDeflateRaw => "CAP_COMPRESSION_DEFLATE_RAW",
1386 }
1387 }
1388 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1390 match value {
1391 "CAP_UNUSED" => Some(Self::CapUnused),
1392 "CAP_PACKET_TRAILER" => Some(Self::CapPacketTrailer),
1393 "CAP_COMPRESSION_DEFLATE_RAW" => Some(Self::CapCompressionDeflateRaw),
1394 _ => None,
1395 }
1396 }
1397 }
1398}
1399#[allow(clippy::derive_partial_eq_without_eq)]
1401#[derive(Clone, PartialEq, ::prost::Message)]
1402pub struct ClientConfiguration {
1403 #[prost(message, optional, tag="1")]
1404 pub video: ::core::option::Option<VideoConfiguration>,
1405 #[prost(message, optional, tag="2")]
1406 pub screen: ::core::option::Option<VideoConfiguration>,
1407 #[prost(enumeration="ClientConfigSetting", tag="3")]
1408 pub resume_connection: i32,
1409 #[prost(message, optional, tag="4")]
1410 pub disabled_codecs: ::core::option::Option<DisabledCodecs>,
1411 #[prost(enumeration="ClientConfigSetting", tag="5")]
1412 pub force_relay: i32,
1413}
1414#[allow(clippy::derive_partial_eq_without_eq)]
1415#[derive(Clone, PartialEq, ::prost::Message)]
1416pub struct VideoConfiguration {
1417 #[prost(enumeration="ClientConfigSetting", tag="1")]
1418 pub hardware_encoder: i32,
1419}
1420#[allow(clippy::derive_partial_eq_without_eq)]
1421#[derive(Clone, PartialEq, ::prost::Message)]
1422pub struct DisabledCodecs {
1423 #[prost(message, repeated, tag="1")]
1425 pub codecs: ::prost::alloc::vec::Vec<Codec>,
1426 #[prost(message, repeated, tag="2")]
1428 pub publish: ::prost::alloc::vec::Vec<Codec>,
1429}
1430#[allow(clippy::derive_partial_eq_without_eq)]
1431#[derive(Clone, PartialEq, ::prost::Message)]
1432pub struct RtpDrift {
1433 #[prost(message, optional, tag="1")]
1434 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1435 #[prost(message, optional, tag="2")]
1436 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1437 #[prost(double, tag="3")]
1438 pub duration: f64,
1439 #[prost(uint64, tag="4")]
1440 pub start_timestamp: u64,
1441 #[prost(uint64, tag="5")]
1442 pub end_timestamp: u64,
1443 #[prost(uint64, tag="6")]
1444 pub rtp_clock_ticks: u64,
1445 #[prost(int64, tag="7")]
1446 pub drift_samples: i64,
1447 #[prost(double, tag="8")]
1448 pub drift_ms: f64,
1449 #[prost(double, tag="9")]
1450 pub clock_rate: f64,
1451}
1452#[allow(clippy::derive_partial_eq_without_eq)]
1453#[derive(Clone, PartialEq, ::prost::Message)]
1454pub struct RtpStats {
1455 #[prost(message, optional, tag="1")]
1456 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1457 #[prost(message, optional, tag="2")]
1458 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1459 #[prost(double, tag="3")]
1460 pub duration: f64,
1461 #[prost(uint32, tag="4")]
1462 pub packets: u32,
1463 #[prost(double, tag="5")]
1464 pub packet_rate: f64,
1465 #[prost(uint64, tag="6")]
1466 pub bytes: u64,
1467 #[prost(uint64, tag="39")]
1468 pub header_bytes: u64,
1469 #[prost(double, tag="7")]
1470 pub bitrate: f64,
1471 #[prost(uint32, tag="8")]
1472 pub packets_lost: u32,
1473 #[prost(double, tag="9")]
1474 pub packet_loss_rate: f64,
1475 #[prost(float, tag="10")]
1476 pub packet_loss_percentage: f32,
1477 #[prost(uint32, tag="11")]
1478 pub packets_duplicate: u32,
1479 #[prost(double, tag="12")]
1480 pub packet_duplicate_rate: f64,
1481 #[prost(uint64, tag="13")]
1482 pub bytes_duplicate: u64,
1483 #[prost(uint64, tag="40")]
1484 pub header_bytes_duplicate: u64,
1485 #[prost(double, tag="14")]
1486 pub bitrate_duplicate: f64,
1487 #[prost(uint32, tag="15")]
1488 pub packets_padding: u32,
1489 #[prost(double, tag="16")]
1490 pub packet_padding_rate: f64,
1491 #[prost(uint64, tag="17")]
1492 pub bytes_padding: u64,
1493 #[prost(uint64, tag="41")]
1494 pub header_bytes_padding: u64,
1495 #[prost(double, tag="18")]
1496 pub bitrate_padding: f64,
1497 #[prost(uint32, tag="19")]
1498 pub packets_out_of_order: u32,
1499 #[prost(uint32, tag="20")]
1500 pub frames: u32,
1501 #[prost(double, tag="21")]
1502 pub frame_rate: f64,
1503 #[prost(double, tag="22")]
1504 pub jitter_current: f64,
1505 #[prost(double, tag="23")]
1506 pub jitter_max: f64,
1507 #[prost(map="int32, uint32", tag="24")]
1508 pub gap_histogram: ::std::collections::HashMap<i32, u32>,
1509 #[prost(uint32, tag="25")]
1510 pub nacks: u32,
1511 #[prost(uint32, tag="37")]
1512 pub nack_acks: u32,
1513 #[prost(uint32, tag="26")]
1514 pub nack_misses: u32,
1515 #[prost(uint32, tag="38")]
1516 pub nack_repeated: u32,
1517 #[prost(uint32, tag="27")]
1518 pub plis: u32,
1519 #[prost(message, optional, tag="28")]
1520 pub last_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1521 #[prost(uint32, tag="29")]
1522 pub firs: u32,
1523 #[prost(message, optional, tag="30")]
1524 pub last_fir: ::core::option::Option<::pbjson_types::Timestamp>,
1525 #[prost(uint32, tag="31")]
1526 pub rtt_current: u32,
1527 #[prost(uint32, tag="32")]
1528 pub rtt_max: u32,
1529 #[prost(uint32, tag="33")]
1530 pub key_frames: u32,
1531 #[prost(message, optional, tag="34")]
1532 pub last_key_frame: ::core::option::Option<::pbjson_types::Timestamp>,
1533 #[prost(uint32, tag="35")]
1534 pub layer_lock_plis: u32,
1535 #[prost(message, optional, tag="36")]
1536 pub last_layer_lock_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1537 #[prost(message, optional, tag="44")]
1538 pub packet_drift: ::core::option::Option<RtpDrift>,
1539 #[prost(message, optional, tag="45")]
1540 pub ntp_report_drift: ::core::option::Option<RtpDrift>,
1541 #[prost(message, optional, tag="46")]
1542 pub rebased_report_drift: ::core::option::Option<RtpDrift>,
1543 #[prost(message, optional, tag="47")]
1545 pub received_report_drift: ::core::option::Option<RtpDrift>,
1546}
1547#[allow(clippy::derive_partial_eq_without_eq)]
1548#[derive(Clone, PartialEq, ::prost::Message)]
1549pub struct RtcpSenderReportState {
1550 #[prost(uint32, tag="1")]
1551 pub rtp_timestamp: u32,
1552 #[prost(uint64, tag="2")]
1553 pub rtp_timestamp_ext: u64,
1554 #[prost(uint64, tag="3")]
1555 pub ntp_timestamp: u64,
1556 #[prost(int64, tag="4")]
1558 pub at: i64,
1559 #[prost(int64, tag="5")]
1560 pub at_adjusted: i64,
1561 #[prost(uint32, tag="6")]
1562 pub packets: u32,
1563 #[prost(uint64, tag="7")]
1564 pub octets: u64,
1565}
1566#[allow(clippy::derive_partial_eq_without_eq)]
1567#[derive(Clone, PartialEq, ::prost::Message)]
1568pub struct RtpForwarderState {
1569 #[prost(bool, tag="1")]
1570 pub started: bool,
1571 #[prost(int32, tag="2")]
1572 pub reference_layer_spatial: i32,
1573 #[prost(int64, tag="3")]
1574 pub pre_start_time: i64,
1575 #[prost(uint64, tag="4")]
1576 pub ext_first_timestamp: u64,
1577 #[prost(uint64, tag="5")]
1578 pub dummy_start_timestamp_offset: u64,
1579 #[prost(message, optional, tag="6")]
1580 pub rtp_munger: ::core::option::Option<RtpMungerState>,
1581 #[prost(message, repeated, tag="8")]
1582 pub sender_report_state: ::prost::alloc::vec::Vec<RtcpSenderReportState>,
1583 #[prost(oneof="rtp_forwarder_state::CodecMunger", tags="7")]
1584 pub codec_munger: ::core::option::Option<rtp_forwarder_state::CodecMunger>,
1585}
1586pub mod rtp_forwarder_state {
1588 #[allow(clippy::derive_partial_eq_without_eq)]
1589#[derive(Clone, PartialEq, ::prost::Oneof)]
1590 pub enum CodecMunger {
1591 #[prost(message, tag="7")]
1592 Vp8Munger(super::Vp8MungerState),
1593 }
1594}
1595#[allow(clippy::derive_partial_eq_without_eq)]
1596#[derive(Clone, PartialEq, ::prost::Message)]
1597pub struct RtpMungerState {
1598 #[prost(uint64, tag="1")]
1599 pub ext_last_sequence_number: u64,
1600 #[prost(uint64, tag="2")]
1601 pub ext_second_last_sequence_number: u64,
1602 #[prost(uint64, tag="3")]
1603 pub ext_last_timestamp: u64,
1604 #[prost(uint64, tag="4")]
1605 pub ext_second_last_timestamp: u64,
1606 #[prost(bool, tag="5")]
1607 pub last_marker: bool,
1608 #[prost(bool, tag="6")]
1609 pub second_last_marker: bool,
1610}
1611#[allow(clippy::derive_partial_eq_without_eq)]
1612#[derive(Clone, PartialEq, ::prost::Message)]
1613pub struct Vp8MungerState {
1614 #[prost(int32, tag="1")]
1615 pub ext_last_picture_id: i32,
1616 #[prost(bool, tag="2")]
1617 pub picture_id_used: bool,
1618 #[prost(uint32, tag="3")]
1619 pub last_tl0_pic_idx: u32,
1620 #[prost(bool, tag="4")]
1621 pub tl0_pic_idx_used: bool,
1622 #[prost(bool, tag="5")]
1623 pub tid_used: bool,
1624 #[prost(uint32, tag="6")]
1625 pub last_key_idx: u32,
1626 #[prost(bool, tag="7")]
1627 pub key_idx_used: bool,
1628}
1629#[allow(clippy::derive_partial_eq_without_eq)]
1630#[derive(Clone, PartialEq, ::prost::Message)]
1631pub struct TimedVersion {
1632 #[prost(int64, tag="1")]
1633 pub unix_micro: i64,
1634 #[prost(int32, tag="2")]
1635 pub ticks: i32,
1636}
1637#[allow(clippy::derive_partial_eq_without_eq)]
1638#[derive(Clone, PartialEq, ::prost::Message)]
1639pub struct DataStream {
1640}
1641pub mod data_stream {
1643 #[allow(clippy::derive_partial_eq_without_eq)]
1645#[derive(Clone, PartialEq, ::prost::Message)]
1646 pub struct TextHeader {
1647 #[prost(enumeration="OperationType", tag="1")]
1648 pub operation_type: i32,
1649 #[prost(int32, tag="2")]
1651 pub version: i32,
1652 #[prost(string, tag="3")]
1654 pub reply_to_stream_id: ::prost::alloc::string::String,
1655 #[prost(string, repeated, tag="4")]
1657 pub attached_stream_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1658 #[prost(bool, tag="5")]
1660 pub generated: bool,
1661 }
1662 #[allow(clippy::derive_partial_eq_without_eq)]
1664#[derive(Clone, PartialEq, ::prost::Message)]
1665 pub struct ByteHeader {
1666 #[prost(string, tag="1")]
1667 pub name: ::prost::alloc::string::String,
1668 }
1669 #[allow(clippy::derive_partial_eq_without_eq)]
1671#[derive(Clone, PartialEq, ::prost::Message)]
1672 pub struct Header {
1673 #[prost(string, tag="1")]
1675 pub stream_id: ::prost::alloc::string::String,
1676 #[prost(int64, tag="2")]
1678 pub timestamp: i64,
1679 #[prost(string, tag="3")]
1680 pub topic: ::prost::alloc::string::String,
1681 #[prost(string, tag="4")]
1682 pub mime_type: ::prost::alloc::string::String,
1683 #[prost(uint64, optional, tag="5")]
1685 pub total_length: ::core::option::Option<u64>,
1686 #[deprecated]
1688 #[prost(enumeration="super::encryption::Type", tag="7")]
1689 pub encryption_type: i32,
1690 #[prost(map="string, string", tag="8")]
1692 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1693 #[prost(bytes="vec", optional, tag="11")]
1697 pub inline_content: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1698 #[prost(enumeration="CompressionType", tag="12")]
1699 pub compression: i32,
1700 #[prost(oneof="header::ContentHeader", tags="9, 10")]
1702 pub content_header: ::core::option::Option<header::ContentHeader>,
1703 }
1704 pub mod header {
1706 #[allow(clippy::derive_partial_eq_without_eq)]
1708#[derive(Clone, PartialEq, ::prost::Oneof)]
1709 pub enum ContentHeader {
1710 #[prost(message, tag="9")]
1711 TextHeader(super::TextHeader),
1712 #[prost(message, tag="10")]
1713 ByteHeader(super::ByteHeader),
1714 }
1715 }
1716 #[allow(clippy::derive_partial_eq_without_eq)]
1717#[derive(Clone, PartialEq, ::prost::Message)]
1718 pub struct Chunk {
1719 #[prost(string, tag="1")]
1721 pub stream_id: ::prost::alloc::string::String,
1722 #[prost(uint64, tag="2")]
1723 pub chunk_index: u64,
1724 #[prost(bytes="vec", tag="3")]
1726 pub content: ::prost::alloc::vec::Vec<u8>,
1727 #[prost(int32, tag="4")]
1729 pub version: i32,
1730 #[deprecated]
1732 #[prost(bytes="vec", optional, tag="5")]
1733 pub iv: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1734 }
1735 #[allow(clippy::derive_partial_eq_without_eq)]
1736#[derive(Clone, PartialEq, ::prost::Message)]
1737 pub struct Trailer {
1738 #[prost(string, tag="1")]
1740 pub stream_id: ::prost::alloc::string::String,
1741 #[prost(string, tag="2")]
1743 pub reason: ::prost::alloc::string::String,
1744 #[prost(map="string, string", tag="3")]
1746 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1747 }
1748 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1750 #[repr(i32)]
1751 pub enum OperationType {
1752 Create = 0,
1753 Update = 1,
1754 Delete = 2,
1755 Reaction = 3,
1756 }
1757 impl OperationType {
1758 pub fn as_str_name(&self) -> &'static str {
1763 match self {
1764 OperationType::Create => "CREATE",
1765 OperationType::Update => "UPDATE",
1766 OperationType::Delete => "DELETE",
1767 OperationType::Reaction => "REACTION",
1768 }
1769 }
1770 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1772 match value {
1773 "CREATE" => Some(Self::Create),
1774 "UPDATE" => Some(Self::Update),
1775 "DELETE" => Some(Self::Delete),
1776 "REACTION" => Some(Self::Reaction),
1777 _ => None,
1778 }
1779 }
1780 }
1781 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1786 #[repr(i32)]
1787 pub enum CompressionType {
1788 None = 0,
1789 DeflateRaw = 1,
1791 }
1792 impl CompressionType {
1793 pub fn as_str_name(&self) -> &'static str {
1798 match self {
1799 CompressionType::None => "NONE",
1800 CompressionType::DeflateRaw => "DEFLATE_RAW",
1801 }
1802 }
1803 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1805 match value {
1806 "NONE" => Some(Self::None),
1807 "DEFLATE_RAW" => Some(Self::DeflateRaw),
1808 _ => None,
1809 }
1810 }
1811 }
1812}
1813#[allow(clippy::derive_partial_eq_without_eq)]
1814#[derive(Clone, PartialEq, ::prost::Message)]
1815pub struct FilterParams {
1816 #[prost(string, repeated, tag="1")]
1817 pub include_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1818 #[prost(string, repeated, tag="2")]
1819 pub exclude_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1820}
1821#[allow(clippy::derive_partial_eq_without_eq)]
1822#[derive(Clone, PartialEq, ::prost::Message)]
1823pub struct WebhookConfig {
1824 #[prost(string, tag="1")]
1825 pub url: ::prost::alloc::string::String,
1826 #[prost(string, tag="2")]
1827 pub signing_key: ::prost::alloc::string::String,
1828 #[prost(message, optional, tag="3")]
1829 pub filter_params: ::core::option::Option<FilterParams>,
1830}
1831#[allow(clippy::derive_partial_eq_without_eq)]
1832#[derive(Clone, PartialEq, ::prost::Message)]
1833pub struct SubscribedAudioCodec {
1834 #[prost(string, tag="1")]
1835 pub codec: ::prost::alloc::string::String,
1836 #[prost(bool, tag="2")]
1837 pub enabled: bool,
1838}
1839#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1840#[repr(i32)]
1841pub enum AudioCodec {
1842 DefaultAc = 0,
1843 Opus = 1,
1844 Aac = 2,
1845 AcMp3 = 3,
1846}
1847impl AudioCodec {
1848 pub fn as_str_name(&self) -> &'static str {
1853 match self {
1854 AudioCodec::DefaultAc => "DEFAULT_AC",
1855 AudioCodec::Opus => "OPUS",
1856 AudioCodec::Aac => "AAC",
1857 AudioCodec::AcMp3 => "AC_MP3",
1858 }
1859 }
1860 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1862 match value {
1863 "DEFAULT_AC" => Some(Self::DefaultAc),
1864 "OPUS" => Some(Self::Opus),
1865 "AAC" => Some(Self::Aac),
1866 "AC_MP3" => Some(Self::AcMp3),
1867 _ => None,
1868 }
1869 }
1870}
1871#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1872#[repr(i32)]
1873pub enum VideoCodec {
1874 DefaultVc = 0,
1875 H264Baseline = 1,
1876 H264Main = 2,
1877 H264High = 3,
1878 Vp8 = 4,
1879}
1880impl VideoCodec {
1881 pub fn as_str_name(&self) -> &'static str {
1886 match self {
1887 VideoCodec::DefaultVc => "DEFAULT_VC",
1888 VideoCodec::H264Baseline => "H264_BASELINE",
1889 VideoCodec::H264Main => "H264_MAIN",
1890 VideoCodec::H264High => "H264_HIGH",
1891 VideoCodec::Vp8 => "VP8",
1892 }
1893 }
1894 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1896 match value {
1897 "DEFAULT_VC" => Some(Self::DefaultVc),
1898 "H264_BASELINE" => Some(Self::H264Baseline),
1899 "H264_MAIN" => Some(Self::H264Main),
1900 "H264_HIGH" => Some(Self::H264High),
1901 "VP8" => Some(Self::Vp8),
1902 _ => None,
1903 }
1904 }
1905}
1906#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1907#[repr(i32)]
1908pub enum ImageCodec {
1909 IcDefault = 0,
1910 IcJpeg = 1,
1911}
1912impl ImageCodec {
1913 pub fn as_str_name(&self) -> &'static str {
1918 match self {
1919 ImageCodec::IcDefault => "IC_DEFAULT",
1920 ImageCodec::IcJpeg => "IC_JPEG",
1921 }
1922 }
1923 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1925 match value {
1926 "IC_DEFAULT" => Some(Self::IcDefault),
1927 "IC_JPEG" => Some(Self::IcJpeg),
1928 _ => None,
1929 }
1930 }
1931}
1932#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1934#[repr(i32)]
1935pub enum BackupCodecPolicy {
1936 PreferRegression = 0,
1939 Simulcast = 1,
1941 Regression = 2,
1943}
1944impl BackupCodecPolicy {
1945 pub fn as_str_name(&self) -> &'static str {
1950 match self {
1951 BackupCodecPolicy::PreferRegression => "PREFER_REGRESSION",
1952 BackupCodecPolicy::Simulcast => "SIMULCAST",
1953 BackupCodecPolicy::Regression => "REGRESSION",
1954 }
1955 }
1956 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1958 match value {
1959 "PREFER_REGRESSION" => Some(Self::PreferRegression),
1960 "SIMULCAST" => Some(Self::Simulcast),
1961 "REGRESSION" => Some(Self::Regression),
1962 _ => None,
1963 }
1964 }
1965}
1966#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1967#[repr(i32)]
1968pub enum TrackType {
1969 Audio = 0,
1970 Video = 1,
1971 Data = 2,
1972}
1973impl TrackType {
1974 pub fn as_str_name(&self) -> &'static str {
1979 match self {
1980 TrackType::Audio => "AUDIO",
1981 TrackType::Video => "VIDEO",
1982 TrackType::Data => "DATA",
1983 }
1984 }
1985 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1987 match value {
1988 "AUDIO" => Some(Self::Audio),
1989 "VIDEO" => Some(Self::Video),
1990 "DATA" => Some(Self::Data),
1991 _ => None,
1992 }
1993 }
1994}
1995#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1996#[repr(i32)]
1997pub enum TrackSource {
1998 Unknown = 0,
1999 Camera = 1,
2000 Microphone = 2,
2001 ScreenShare = 3,
2002 ScreenShareAudio = 4,
2003}
2004impl TrackSource {
2005 pub fn as_str_name(&self) -> &'static str {
2010 match self {
2011 TrackSource::Unknown => "UNKNOWN",
2012 TrackSource::Camera => "CAMERA",
2013 TrackSource::Microphone => "MICROPHONE",
2014 TrackSource::ScreenShare => "SCREEN_SHARE",
2015 TrackSource::ScreenShareAudio => "SCREEN_SHARE_AUDIO",
2016 }
2017 }
2018 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2020 match value {
2021 "UNKNOWN" => Some(Self::Unknown),
2022 "CAMERA" => Some(Self::Camera),
2023 "MICROPHONE" => Some(Self::Microphone),
2024 "SCREEN_SHARE" => Some(Self::ScreenShare),
2025 "SCREEN_SHARE_AUDIO" => Some(Self::ScreenShareAudio),
2026 _ => None,
2027 }
2028 }
2029}
2030#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2031#[repr(i32)]
2032pub enum DataTrackExtensionId {
2033 DteiInvalid = 0,
2034 DteiParticipantSid = 1,
2035}
2036impl DataTrackExtensionId {
2037 pub fn as_str_name(&self) -> &'static str {
2042 match self {
2043 DataTrackExtensionId::DteiInvalid => "DTEI_INVALID",
2044 DataTrackExtensionId::DteiParticipantSid => "DTEI_PARTICIPANT_SID",
2045 }
2046 }
2047 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2049 match value {
2050 "DTEI_INVALID" => Some(Self::DteiInvalid),
2051 "DTEI_PARTICIPANT_SID" => Some(Self::DteiParticipantSid),
2052 _ => None,
2053 }
2054 }
2055}
2056#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2057#[repr(i32)]
2058pub enum VideoQuality {
2059 Low = 0,
2060 Medium = 1,
2061 High = 2,
2062 Off = 3,
2063}
2064impl VideoQuality {
2065 pub fn as_str_name(&self) -> &'static str {
2070 match self {
2071 VideoQuality::Low => "LOW",
2072 VideoQuality::Medium => "MEDIUM",
2073 VideoQuality::High => "HIGH",
2074 VideoQuality::Off => "OFF",
2075 }
2076 }
2077 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2079 match value {
2080 "LOW" => Some(Self::Low),
2081 "MEDIUM" => Some(Self::Medium),
2082 "HIGH" => Some(Self::High),
2083 "OFF" => Some(Self::Off),
2084 _ => None,
2085 }
2086 }
2087}
2088#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2089#[repr(i32)]
2090pub enum ConnectionQuality {
2091 Poor = 0,
2092 Good = 1,
2093 Excellent = 2,
2094 Lost = 3,
2095}
2096impl ConnectionQuality {
2097 pub fn as_str_name(&self) -> &'static str {
2102 match self {
2103 ConnectionQuality::Poor => "POOR",
2104 ConnectionQuality::Good => "GOOD",
2105 ConnectionQuality::Excellent => "EXCELLENT",
2106 ConnectionQuality::Lost => "LOST",
2107 }
2108 }
2109 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2111 match value {
2112 "POOR" => Some(Self::Poor),
2113 "GOOD" => Some(Self::Good),
2114 "EXCELLENT" => Some(Self::Excellent),
2115 "LOST" => Some(Self::Lost),
2116 _ => None,
2117 }
2118 }
2119}
2120#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2121#[repr(i32)]
2122pub enum ClientConfigSetting {
2123 Unset = 0,
2124 Disabled = 1,
2125 Enabled = 2,
2126}
2127impl ClientConfigSetting {
2128 pub fn as_str_name(&self) -> &'static str {
2133 match self {
2134 ClientConfigSetting::Unset => "UNSET",
2135 ClientConfigSetting::Disabled => "DISABLED",
2136 ClientConfigSetting::Enabled => "ENABLED",
2137 }
2138 }
2139 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2141 match value {
2142 "UNSET" => Some(Self::Unset),
2143 "DISABLED" => Some(Self::Disabled),
2144 "ENABLED" => Some(Self::Enabled),
2145 _ => None,
2146 }
2147 }
2148}
2149#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2150#[repr(i32)]
2151pub enum DisconnectReason {
2152 UnknownReason = 0,
2153 ClientInitiated = 1,
2155 DuplicateIdentity = 2,
2157 ServerShutdown = 3,
2159 ParticipantRemoved = 4,
2161 RoomDeleted = 5,
2163 StateMismatch = 6,
2165 JoinFailure = 7,
2167 Migration = 8,
2169 SignalClose = 9,
2171 RoomClosed = 10,
2173 UserUnavailable = 11,
2175 UserRejected = 12,
2177 SipTrunkFailure = 13,
2179 ConnectionTimeout = 14,
2181 MediaFailure = 15,
2183 AgentError = 16,
2185}
2186impl DisconnectReason {
2187 pub fn as_str_name(&self) -> &'static str {
2192 match self {
2193 DisconnectReason::UnknownReason => "UNKNOWN_REASON",
2194 DisconnectReason::ClientInitiated => "CLIENT_INITIATED",
2195 DisconnectReason::DuplicateIdentity => "DUPLICATE_IDENTITY",
2196 DisconnectReason::ServerShutdown => "SERVER_SHUTDOWN",
2197 DisconnectReason::ParticipantRemoved => "PARTICIPANT_REMOVED",
2198 DisconnectReason::RoomDeleted => "ROOM_DELETED",
2199 DisconnectReason::StateMismatch => "STATE_MISMATCH",
2200 DisconnectReason::JoinFailure => "JOIN_FAILURE",
2201 DisconnectReason::Migration => "MIGRATION",
2202 DisconnectReason::SignalClose => "SIGNAL_CLOSE",
2203 DisconnectReason::RoomClosed => "ROOM_CLOSED",
2204 DisconnectReason::UserUnavailable => "USER_UNAVAILABLE",
2205 DisconnectReason::UserRejected => "USER_REJECTED",
2206 DisconnectReason::SipTrunkFailure => "SIP_TRUNK_FAILURE",
2207 DisconnectReason::ConnectionTimeout => "CONNECTION_TIMEOUT",
2208 DisconnectReason::MediaFailure => "MEDIA_FAILURE",
2209 DisconnectReason::AgentError => "AGENT_ERROR",
2210 }
2211 }
2212 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2214 match value {
2215 "UNKNOWN_REASON" => Some(Self::UnknownReason),
2216 "CLIENT_INITIATED" => Some(Self::ClientInitiated),
2217 "DUPLICATE_IDENTITY" => Some(Self::DuplicateIdentity),
2218 "SERVER_SHUTDOWN" => Some(Self::ServerShutdown),
2219 "PARTICIPANT_REMOVED" => Some(Self::ParticipantRemoved),
2220 "ROOM_DELETED" => Some(Self::RoomDeleted),
2221 "STATE_MISMATCH" => Some(Self::StateMismatch),
2222 "JOIN_FAILURE" => Some(Self::JoinFailure),
2223 "MIGRATION" => Some(Self::Migration),
2224 "SIGNAL_CLOSE" => Some(Self::SignalClose),
2225 "ROOM_CLOSED" => Some(Self::RoomClosed),
2226 "USER_UNAVAILABLE" => Some(Self::UserUnavailable),
2227 "USER_REJECTED" => Some(Self::UserRejected),
2228 "SIP_TRUNK_FAILURE" => Some(Self::SipTrunkFailure),
2229 "CONNECTION_TIMEOUT" => Some(Self::ConnectionTimeout),
2230 "MEDIA_FAILURE" => Some(Self::MediaFailure),
2231 "AGENT_ERROR" => Some(Self::AgentError),
2232 _ => None,
2233 }
2234 }
2235}
2236#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2237#[repr(i32)]
2238pub enum ReconnectReason {
2239 RrUnknown = 0,
2240 RrSignalDisconnected = 1,
2241 RrPublisherFailed = 2,
2242 RrSubscriberFailed = 3,
2243 RrSwitchCandidate = 4,
2244}
2245impl ReconnectReason {
2246 pub fn as_str_name(&self) -> &'static str {
2251 match self {
2252 ReconnectReason::RrUnknown => "RR_UNKNOWN",
2253 ReconnectReason::RrSignalDisconnected => "RR_SIGNAL_DISCONNECTED",
2254 ReconnectReason::RrPublisherFailed => "RR_PUBLISHER_FAILED",
2255 ReconnectReason::RrSubscriberFailed => "RR_SUBSCRIBER_FAILED",
2256 ReconnectReason::RrSwitchCandidate => "RR_SWITCH_CANDIDATE",
2257 }
2258 }
2259 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2261 match value {
2262 "RR_UNKNOWN" => Some(Self::RrUnknown),
2263 "RR_SIGNAL_DISCONNECTED" => Some(Self::RrSignalDisconnected),
2264 "RR_PUBLISHER_FAILED" => Some(Self::RrPublisherFailed),
2265 "RR_SUBSCRIBER_FAILED" => Some(Self::RrSubscriberFailed),
2266 "RR_SWITCH_CANDIDATE" => Some(Self::RrSwitchCandidate),
2267 _ => None,
2268 }
2269 }
2270}
2271#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2272#[repr(i32)]
2273pub enum SubscriptionError {
2274 SeUnknown = 0,
2275 SeCodecUnsupported = 1,
2276 SeTrackNotfound = 2,
2277}
2278impl SubscriptionError {
2279 pub fn as_str_name(&self) -> &'static str {
2284 match self {
2285 SubscriptionError::SeUnknown => "SE_UNKNOWN",
2286 SubscriptionError::SeCodecUnsupported => "SE_CODEC_UNSUPPORTED",
2287 SubscriptionError::SeTrackNotfound => "SE_TRACK_NOTFOUND",
2288 }
2289 }
2290 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2292 match value {
2293 "SE_UNKNOWN" => Some(Self::SeUnknown),
2294 "SE_CODEC_UNSUPPORTED" => Some(Self::SeCodecUnsupported),
2295 "SE_TRACK_NOTFOUND" => Some(Self::SeTrackNotfound),
2296 _ => None,
2297 }
2298 }
2299}
2300#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2301#[repr(i32)]
2302pub enum AudioTrackFeature {
2303 TfStereo = 0,
2304 TfNoDtx = 1,
2305 TfAutoGainControl = 2,
2306 TfEchoCancellation = 3,
2307 TfNoiseSuppression = 4,
2308 TfEnhancedNoiseCancellation = 5,
2309 TfPreconnectBuffer = 6,
2311}
2312impl AudioTrackFeature {
2313 pub fn as_str_name(&self) -> &'static str {
2318 match self {
2319 AudioTrackFeature::TfStereo => "TF_STEREO",
2320 AudioTrackFeature::TfNoDtx => "TF_NO_DTX",
2321 AudioTrackFeature::TfAutoGainControl => "TF_AUTO_GAIN_CONTROL",
2322 AudioTrackFeature::TfEchoCancellation => "TF_ECHO_CANCELLATION",
2323 AudioTrackFeature::TfNoiseSuppression => "TF_NOISE_SUPPRESSION",
2324 AudioTrackFeature::TfEnhancedNoiseCancellation => "TF_ENHANCED_NOISE_CANCELLATION",
2325 AudioTrackFeature::TfPreconnectBuffer => "TF_PRECONNECT_BUFFER",
2326 }
2327 }
2328 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2330 match value {
2331 "TF_STEREO" => Some(Self::TfStereo),
2332 "TF_NO_DTX" => Some(Self::TfNoDtx),
2333 "TF_AUTO_GAIN_CONTROL" => Some(Self::TfAutoGainControl),
2334 "TF_ECHO_CANCELLATION" => Some(Self::TfEchoCancellation),
2335 "TF_NOISE_SUPPRESSION" => Some(Self::TfNoiseSuppression),
2336 "TF_ENHANCED_NOISE_CANCELLATION" => Some(Self::TfEnhancedNoiseCancellation),
2337 "TF_PRECONNECT_BUFFER" => Some(Self::TfPreconnectBuffer),
2338 _ => None,
2339 }
2340 }
2341}
2342#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2343#[repr(i32)]
2344pub enum PacketTrailerFeature {
2345 PtfUserTimestamp = 0,
2346 PtfFrameId = 1,
2347 PtfUserData = 2,
2348}
2349impl PacketTrailerFeature {
2350 pub fn as_str_name(&self) -> &'static str {
2355 match self {
2356 PacketTrailerFeature::PtfUserTimestamp => "PTF_USER_TIMESTAMP",
2357 PacketTrailerFeature::PtfFrameId => "PTF_FRAME_ID",
2358 PacketTrailerFeature::PtfUserData => "PTF_USER_DATA",
2359 }
2360 }
2361 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2363 match value {
2364 "PTF_USER_TIMESTAMP" => Some(Self::PtfUserTimestamp),
2365 "PTF_FRAME_ID" => Some(Self::PtfFrameId),
2366 "PTF_USER_DATA" => Some(Self::PtfUserData),
2367 _ => None,
2368 }
2369 }
2370}
2371#[allow(clippy::derive_partial_eq_without_eq)]
2374#[derive(Clone, PartialEq, ::prost::Message)]
2375pub struct StartEgressRequest {
2376 #[prost(string, tag="1")]
2377 pub room_name: ::prost::alloc::string::String,
2378 #[prost(message, repeated, tag="7")]
2380 pub outputs: ::prost::alloc::vec::Vec<Output>,
2381 #[prost(message, optional, tag="8")]
2383 pub storage: ::core::option::Option<StorageConfig>,
2384 #[prost(message, repeated, tag="9")]
2386 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2387 #[prost(oneof="start_egress_request::Source", tags="2, 3, 4")]
2388 pub source: ::core::option::Option<start_egress_request::Source>,
2389 #[prost(oneof="start_egress_request::Encoding", tags="5, 6")]
2391 pub encoding: ::core::option::Option<start_egress_request::Encoding>,
2392}
2393pub mod start_egress_request {
2395 #[allow(clippy::derive_partial_eq_without_eq)]
2396#[derive(Clone, PartialEq, ::prost::Oneof)]
2397 pub enum Source {
2398 #[prost(message, tag="2")]
2399 Template(super::TemplateSource),
2400 #[prost(message, tag="3")]
2401 Web(super::WebSource),
2402 #[prost(message, tag="4")]
2403 Media(super::MediaSource),
2404 }
2405 #[allow(clippy::derive_partial_eq_without_eq)]
2407#[derive(Clone, PartialEq, ::prost::Oneof)]
2408 pub enum Encoding {
2409 #[prost(enumeration="super::EncodingOptionsPreset", tag="5")]
2410 Preset(i32),
2411 #[prost(message, tag="6")]
2412 Advanced(super::EncodingOptions),
2413 }
2414}
2415#[allow(clippy::derive_partial_eq_without_eq)]
2420#[derive(Clone, PartialEq, ::prost::Message)]
2421pub struct TemplateSource {
2422 #[prost(string, tag="1")]
2423 pub layout: ::prost::alloc::string::String,
2424 #[prost(bool, tag="2")]
2425 pub audio_only: bool,
2426 #[prost(bool, tag="3")]
2427 pub video_only: bool,
2428 #[prost(string, tag="4")]
2429 pub custom_base_url: ::prost::alloc::string::String,
2430}
2431#[allow(clippy::derive_partial_eq_without_eq)]
2433#[derive(Clone, PartialEq, ::prost::Message)]
2434pub struct WebSource {
2435 #[prost(string, tag="1")]
2436 pub url: ::prost::alloc::string::String,
2437 #[prost(bool, tag="2")]
2438 pub audio_only: bool,
2439 #[prost(bool, tag="3")]
2440 pub video_only: bool,
2441 #[prost(bool, tag="4")]
2442 pub await_start_signal: bool,
2443}
2444#[allow(clippy::derive_partial_eq_without_eq)]
2447#[derive(Clone, PartialEq, ::prost::Message)]
2448pub struct MediaSource {
2449 #[prost(message, optional, tag="3")]
2451 pub audio: ::core::option::Option<AudioConfig>,
2452 #[prost(oneof="media_source::Video", tags="1, 2")]
2453 pub video: ::core::option::Option<media_source::Video>,
2454}
2455pub mod media_source {
2457 #[allow(clippy::derive_partial_eq_without_eq)]
2458#[derive(Clone, PartialEq, ::prost::Oneof)]
2459 pub enum Video {
2460 #[prost(string, tag="1")]
2461 VideoTrackId(::prost::alloc::string::String),
2462 #[prost(message, tag="2")]
2463 ParticipantVideo(super::ParticipantVideo),
2464 }
2465}
2466#[allow(clippy::derive_partial_eq_without_eq)]
2469#[derive(Clone, PartialEq, ::prost::Message)]
2470pub struct ParticipantVideo {
2471 #[prost(string, tag="1")]
2472 pub identity: ::prost::alloc::string::String,
2473 #[prost(bool, tag="2")]
2474 pub prefer_screen_share: bool,
2475}
2476#[allow(clippy::derive_partial_eq_without_eq)]
2481#[derive(Clone, PartialEq, ::prost::Message)]
2482pub struct AudioConfig {
2483 #[prost(bool, tag="1")]
2485 pub capture_all: bool,
2486 #[prost(message, repeated, tag="2")]
2487 pub routes: ::prost::alloc::vec::Vec<AudioRoute>,
2488}
2489#[allow(clippy::derive_partial_eq_without_eq)]
2490#[derive(Clone, PartialEq, ::prost::Message)]
2491pub struct AudioRoute {
2492 #[prost(enumeration="AudioChannel", tag="4")]
2493 pub channel: i32,
2494 #[prost(oneof="audio_route::Match", tags="1, 2, 3")]
2495 pub r#match: ::core::option::Option<audio_route::Match>,
2496}
2497pub mod audio_route {
2499 #[allow(clippy::derive_partial_eq_without_eq)]
2500#[derive(Clone, PartialEq, ::prost::Oneof)]
2501 pub enum Match {
2502 #[prost(string, tag="1")]
2503 TrackId(::prost::alloc::string::String),
2504 #[prost(string, tag="2")]
2505 ParticipantIdentity(::prost::alloc::string::String),
2506 #[prost(enumeration="super::participant_info::Kind", tag="3")]
2507 ParticipantKind(i32),
2508 }
2509}
2510#[allow(clippy::derive_partial_eq_without_eq)]
2513#[derive(Clone, PartialEq, ::prost::Message)]
2514pub struct DataConfig {
2515 #[prost(bool, tag="1")]
2516 pub capture_all: bool,
2517 #[prost(message, repeated, tag="2")]
2518 pub selectors: ::prost::alloc::vec::Vec<DataSelector>,
2519}
2520#[allow(clippy::derive_partial_eq_without_eq)]
2521#[derive(Clone, PartialEq, ::prost::Message)]
2522pub struct DataSelector {
2523 #[prost(oneof="data_selector::Match", tags="1, 2")]
2524 pub r#match: ::core::option::Option<data_selector::Match>,
2525}
2526pub mod data_selector {
2528 #[allow(clippy::derive_partial_eq_without_eq)]
2529#[derive(Clone, PartialEq, ::prost::Oneof)]
2530 pub enum Match {
2531 #[prost(string, tag="1")]
2532 TrackId(::prost::alloc::string::String),
2533 #[prost(string, tag="2")]
2534 ParticipantIdentity(::prost::alloc::string::String),
2535 }
2536}
2537#[allow(clippy::derive_partial_eq_without_eq)]
2538#[derive(Clone, PartialEq, ::prost::Message)]
2539pub struct EncodingOptions {
2540 #[prost(int32, tag="1")]
2542 pub width: i32,
2543 #[prost(int32, tag="2")]
2545 pub height: i32,
2546 #[prost(int32, tag="3")]
2548 pub depth: i32,
2549 #[prost(int32, tag="4")]
2551 pub framerate: i32,
2552 #[prost(enumeration="AudioCodec", tag="5")]
2554 pub audio_codec: i32,
2555 #[prost(int32, tag="6")]
2557 pub audio_bitrate: i32,
2558 #[prost(int32, tag="7")]
2560 pub audio_frequency: i32,
2561 #[prost(enumeration="VideoCodec", tag="8")]
2563 pub video_codec: i32,
2564 #[prost(int32, tag="9")]
2566 pub video_bitrate: i32,
2567 #[prost(double, tag="10")]
2569 pub key_frame_interval: f64,
2570 #[deprecated]
2574 #[prost(int32, tag="11")]
2575 pub audio_quality: i32,
2576 #[deprecated]
2578 #[prost(int32, tag="12")]
2579 pub video_quality: i32,
2580}
2581#[allow(clippy::derive_partial_eq_without_eq)]
2584#[derive(Clone, PartialEq, ::prost::Message)]
2585pub struct Output {
2586 #[prost(message, optional, tag="6")]
2588 pub storage: ::core::option::Option<StorageConfig>,
2589 #[prost(oneof="output::Config", tags="1, 2, 3, 4")]
2590 pub config: ::core::option::Option<output::Config>,
2591}
2592pub mod output {
2594 #[allow(clippy::derive_partial_eq_without_eq)]
2595#[derive(Clone, PartialEq, ::prost::Oneof)]
2596 pub enum Config {
2597 #[prost(message, tag="1")]
2598 File(super::FileOutput),
2599 #[prost(message, tag="2")]
2600 Stream(super::StreamOutput),
2601 #[prost(message, tag="3")]
2602 Segments(super::SegmentedFileOutput),
2603 #[prost(message, tag="4")]
2605 Images(super::ImageOutput),
2606 }
2607}
2608#[allow(clippy::derive_partial_eq_without_eq)]
2611#[derive(Clone, PartialEq, ::prost::Message)]
2612pub struct FileOutput {
2613 #[prost(enumeration="EncodedFileType", tag="1")]
2614 pub file_type: i32,
2615 #[prost(string, tag="2")]
2616 pub filepath: ::prost::alloc::string::String,
2617 #[prost(bool, tag="3")]
2618 pub disable_manifest: bool,
2619}
2620#[allow(clippy::derive_partial_eq_without_eq)]
2621#[derive(Clone, PartialEq, ::prost::Message)]
2622pub struct StreamOutput {
2623 #[prost(enumeration="StreamProtocol", tag="1")]
2625 pub protocol: i32,
2626 #[prost(string, repeated, tag="2")]
2628 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2629}
2630#[allow(clippy::derive_partial_eq_without_eq)]
2632#[derive(Clone, PartialEq, ::prost::Message)]
2633pub struct SegmentedFileOutput {
2634 #[prost(enumeration="SegmentedFileProtocol", tag="1")]
2636 pub protocol: i32,
2637 #[prost(string, tag="2")]
2639 pub filename_prefix: ::prost::alloc::string::String,
2640 #[prost(string, tag="3")]
2642 pub playlist_name: ::prost::alloc::string::String,
2643 #[prost(string, tag="11")]
2645 pub live_playlist_name: ::prost::alloc::string::String,
2646 #[prost(uint32, tag="4")]
2648 pub segment_duration: u32,
2649 #[prost(enumeration="SegmentedFileSuffix", tag="10")]
2651 pub filename_suffix: i32,
2652 #[prost(bool, tag="8")]
2654 pub disable_manifest: bool,
2655 #[prost(oneof="segmented_file_output::Output", tags="5, 6, 7, 9")]
2657 pub output: ::core::option::Option<segmented_file_output::Output>,
2658}
2659pub mod segmented_file_output {
2661 #[allow(clippy::derive_partial_eq_without_eq)]
2663#[derive(Clone, PartialEq, ::prost::Oneof)]
2664 pub enum Output {
2665 #[prost(message, tag="5")]
2666 S3(super::S3Upload),
2667 #[prost(message, tag="6")]
2668 Gcp(super::GcpUpload),
2669 #[prost(message, tag="7")]
2670 Azure(super::AzureBlobUpload),
2671 #[prost(message, tag="9")]
2672 AliOss(super::AliOssUpload),
2673 }
2674}
2675#[allow(clippy::derive_partial_eq_without_eq)]
2677#[derive(Clone, PartialEq, ::prost::Message)]
2678pub struct ImageOutput {
2679 #[prost(uint32, tag="1")]
2681 pub capture_interval: u32,
2682 #[prost(int32, tag="2")]
2684 pub width: i32,
2685 #[prost(int32, tag="3")]
2687 pub height: i32,
2688 #[prost(string, tag="4")]
2690 pub filename_prefix: ::prost::alloc::string::String,
2691 #[prost(enumeration="ImageFileSuffix", tag="5")]
2693 pub filename_suffix: i32,
2694 #[prost(enumeration="ImageCodec", tag="6")]
2696 pub image_codec: i32,
2697 #[prost(bool, tag="7")]
2699 pub disable_manifest: bool,
2700 #[prost(oneof="image_output::Output", tags="8, 9, 10, 11")]
2702 pub output: ::core::option::Option<image_output::Output>,
2703}
2704pub mod image_output {
2706 #[allow(clippy::derive_partial_eq_without_eq)]
2708#[derive(Clone, PartialEq, ::prost::Oneof)]
2709 pub enum Output {
2710 #[prost(message, tag="8")]
2711 S3(super::S3Upload),
2712 #[prost(message, tag="9")]
2713 Gcp(super::GcpUpload),
2714 #[prost(message, tag="10")]
2715 Azure(super::AzureBlobUpload),
2716 #[prost(message, tag="11")]
2717 AliOss(super::AliOssUpload),
2718 }
2719}
2720#[allow(clippy::derive_partial_eq_without_eq)]
2723#[derive(Clone, PartialEq, ::prost::Message)]
2724pub struct StorageConfig {
2725 #[prost(oneof="storage_config::Provider", tags="1, 2, 3, 4")]
2726 pub provider: ::core::option::Option<storage_config::Provider>,
2727}
2728pub mod storage_config {
2730 #[allow(clippy::derive_partial_eq_without_eq)]
2731#[derive(Clone, PartialEq, ::prost::Oneof)]
2732 pub enum Provider {
2733 #[prost(message, tag="1")]
2734 S3(super::S3Upload),
2735 #[prost(message, tag="2")]
2736 Gcp(super::GcpUpload),
2737 #[prost(message, tag="3")]
2738 Azure(super::AzureBlobUpload),
2739 #[prost(message, tag="4")]
2740 AliOss(super::AliOssUpload),
2741 }
2742}
2743#[allow(clippy::derive_partial_eq_without_eq)]
2744#[derive(Clone, PartialEq, ::prost::Message)]
2745pub struct S3Upload {
2746 #[prost(string, tag="1")]
2747 pub access_key: ::prost::alloc::string::String,
2748 #[prost(string, tag="2")]
2749 pub secret: ::prost::alloc::string::String,
2750 #[prost(string, tag="11")]
2751 pub session_token: ::prost::alloc::string::String,
2752 #[prost(string, tag="12")]
2754 pub assume_role_arn: ::prost::alloc::string::String,
2755 #[prost(string, tag="13")]
2757 pub assume_role_external_id: ::prost::alloc::string::String,
2758 #[prost(string, tag="3")]
2759 pub region: ::prost::alloc::string::String,
2760 #[prost(string, tag="4")]
2761 pub endpoint: ::prost::alloc::string::String,
2762 #[prost(string, tag="5")]
2763 pub bucket: ::prost::alloc::string::String,
2764 #[prost(bool, tag="6")]
2765 pub force_path_style: bool,
2766 #[prost(map="string, string", tag="7")]
2767 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2768 #[prost(string, tag="8")]
2769 pub tagging: ::prost::alloc::string::String,
2770 #[prost(string, tag="9")]
2772 pub content_disposition: ::prost::alloc::string::String,
2773 #[prost(message, optional, tag="10")]
2774 pub proxy: ::core::option::Option<ProxyConfig>,
2775}
2776#[allow(clippy::derive_partial_eq_without_eq)]
2777#[derive(Clone, PartialEq, ::prost::Message)]
2778pub struct GcpUpload {
2779 #[prost(string, tag="1")]
2781 pub credentials: ::prost::alloc::string::String,
2782 #[prost(string, tag="2")]
2783 pub bucket: ::prost::alloc::string::String,
2784 #[prost(message, optional, tag="3")]
2785 pub proxy: ::core::option::Option<ProxyConfig>,
2786}
2787#[allow(clippy::derive_partial_eq_without_eq)]
2788#[derive(Clone, PartialEq, ::prost::Message)]
2789pub struct AzureBlobUpload {
2790 #[prost(string, tag="1")]
2791 pub account_name: ::prost::alloc::string::String,
2792 #[prost(string, tag="2")]
2793 pub account_key: ::prost::alloc::string::String,
2794 #[prost(string, tag="3")]
2795 pub container_name: ::prost::alloc::string::String,
2796}
2797#[allow(clippy::derive_partial_eq_without_eq)]
2798#[derive(Clone, PartialEq, ::prost::Message)]
2799pub struct AliOssUpload {
2800 #[prost(string, tag="1")]
2801 pub access_key: ::prost::alloc::string::String,
2802 #[prost(string, tag="2")]
2803 pub secret: ::prost::alloc::string::String,
2804 #[prost(string, tag="3")]
2805 pub region: ::prost::alloc::string::String,
2806 #[prost(string, tag="4")]
2807 pub endpoint: ::prost::alloc::string::String,
2808 #[prost(string, tag="5")]
2809 pub bucket: ::prost::alloc::string::String,
2810}
2811#[allow(clippy::derive_partial_eq_without_eq)]
2812#[derive(Clone, PartialEq, ::prost::Message)]
2813pub struct ProxyConfig {
2814 #[prost(string, tag="1")]
2815 pub url: ::prost::alloc::string::String,
2816 #[prost(string, tag="2")]
2817 pub username: ::prost::alloc::string::String,
2818 #[prost(string, tag="3")]
2819 pub password: ::prost::alloc::string::String,
2820}
2821#[allow(clippy::derive_partial_eq_without_eq)]
2824#[derive(Clone, PartialEq, ::prost::Message)]
2825pub struct ListEgressRequest {
2826 #[prost(string, tag="1")]
2828 pub room_name: ::prost::alloc::string::String,
2829 #[prost(string, tag="2")]
2831 pub egress_id: ::prost::alloc::string::String,
2832 #[prost(bool, tag="3")]
2834 pub active: bool,
2835 #[prost(message, optional, tag="4")]
2837 pub page_token: ::core::option::Option<TokenPagination>,
2838}
2839#[allow(clippy::derive_partial_eq_without_eq)]
2840#[derive(Clone, PartialEq, ::prost::Message)]
2841pub struct ListEgressResponse {
2842 #[prost(message, repeated, tag="1")]
2843 pub items: ::prost::alloc::vec::Vec<EgressInfo>,
2844 #[prost(message, optional, tag="2")]
2846 pub next_page_token: ::core::option::Option<TokenPagination>,
2847}
2848#[allow(clippy::derive_partial_eq_without_eq)]
2849#[derive(Clone, PartialEq, ::prost::Message)]
2850pub struct UpdateEgressRequest {
2851 #[prost(string, tag="1")]
2852 pub egress_id: ::prost::alloc::string::String,
2853 #[prost(string, tag="2")]
2854 pub url: ::prost::alloc::string::String,
2855 #[prost(string, tag="3")]
2856 pub layout: ::prost::alloc::string::String,
2857 #[prost(string, repeated, tag="4")]
2858 pub add_stream_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2859 #[prost(string, repeated, tag="5")]
2860 pub remove_stream_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2861}
2862#[allow(clippy::derive_partial_eq_without_eq)]
2863#[derive(Clone, PartialEq, ::prost::Message)]
2864pub struct StopEgressRequest {
2865 #[prost(string, tag="1")]
2866 pub egress_id: ::prost::alloc::string::String,
2867}
2868#[allow(clippy::derive_partial_eq_without_eq)]
2871#[derive(Clone, PartialEq, ::prost::Message)]
2872pub struct EgressInfo {
2873 #[prost(string, tag="1")]
2874 pub egress_id: ::prost::alloc::string::String,
2875 #[prost(string, tag="2")]
2876 pub room_id: ::prost::alloc::string::String,
2877 #[prost(string, tag="13")]
2878 pub room_name: ::prost::alloc::string::String,
2879 #[prost(enumeration="EgressSourceType", tag="26")]
2880 pub source_type: i32,
2881 #[prost(enumeration="EgressStatus", tag="3")]
2882 pub status: i32,
2883 #[prost(int64, tag="10")]
2884 pub started_at: i64,
2885 #[prost(int64, tag="11")]
2886 pub ended_at: i64,
2887 #[prost(int64, tag="18")]
2888 pub updated_at: i64,
2889 #[prost(message, repeated, tag="15")]
2890 pub stream_results: ::prost::alloc::vec::Vec<StreamInfo>,
2891 #[prost(message, repeated, tag="16")]
2892 pub file_results: ::prost::alloc::vec::Vec<FileInfo>,
2893 #[prost(message, repeated, tag="17")]
2894 pub segment_results: ::prost::alloc::vec::Vec<SegmentsInfo>,
2895 #[prost(message, repeated, tag="20")]
2896 pub image_results: ::prost::alloc::vec::Vec<ImagesInfo>,
2897 #[prost(string, tag="9")]
2898 pub error: ::prost::alloc::string::String,
2899 #[prost(int32, tag="22")]
2900 pub error_code: i32,
2901 #[prost(string, tag="21")]
2902 pub details: ::prost::alloc::string::String,
2903 #[prost(string, tag="23")]
2904 pub manifest_location: ::prost::alloc::string::String,
2905 #[prost(bool, tag="25")]
2906 pub backup_storage_used: bool,
2907 #[prost(int32, tag="27")]
2908 pub retry_count: i32,
2909 #[prost(oneof="egress_info::Request", tags="29, 30, 4, 14, 19, 5, 6")]
2910 pub request: ::core::option::Option<egress_info::Request>,
2911 #[prost(oneof="egress_info::Result", tags="7, 8, 12")]
2915 pub result: ::core::option::Option<egress_info::Result>,
2916}
2917pub mod egress_info {
2919 #[allow(clippy::derive_partial_eq_without_eq)]
2920#[derive(Clone, PartialEq, ::prost::Oneof)]
2921 pub enum Request {
2922 #[prost(message, tag="29")]
2923 Egress(super::StartEgressRequest),
2924 #[prost(message, tag="30")]
2925 Replay(super::ExportReplayRequest),
2926 #[prost(message, tag="4")]
2928 RoomComposite(super::RoomCompositeEgressRequest),
2929 #[prost(message, tag="14")]
2930 Web(super::WebEgressRequest),
2931 #[prost(message, tag="19")]
2932 Participant(super::ParticipantEgressRequest),
2933 #[prost(message, tag="5")]
2934 TrackComposite(super::TrackCompositeEgressRequest),
2935 #[prost(message, tag="6")]
2936 Track(super::TrackEgressRequest),
2937 }
2938 #[allow(clippy::derive_partial_eq_without_eq)]
2942#[derive(Clone, PartialEq, ::prost::Oneof)]
2943 pub enum Result {
2944 #[prost(message, tag="7")]
2945 Stream(super::StreamInfoList),
2946 #[prost(message, tag="8")]
2947 File(super::FileInfo),
2948 #[prost(message, tag="12")]
2949 Segments(super::SegmentsInfo),
2950 }
2951}
2952#[allow(clippy::derive_partial_eq_without_eq)]
2953#[derive(Clone, PartialEq, ::prost::Message)]
2954pub struct StreamInfo {
2955 #[prost(string, tag="1")]
2956 pub url: ::prost::alloc::string::String,
2957 #[prost(int64, tag="2")]
2958 pub started_at: i64,
2959 #[prost(int64, tag="3")]
2960 pub ended_at: i64,
2961 #[prost(int64, tag="4")]
2962 pub duration: i64,
2963 #[prost(enumeration="stream_info::Status", tag="5")]
2964 pub status: i32,
2965 #[prost(string, tag="6")]
2966 pub error: ::prost::alloc::string::String,
2967 #[prost(int64, tag="7")]
2968 pub last_retry_at: i64,
2969 #[prost(uint32, tag="8")]
2970 pub retries: u32,
2971}
2972pub mod stream_info {
2974 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2975 #[repr(i32)]
2976 pub enum Status {
2977 Active = 0,
2978 Finished = 1,
2979 Failed = 2,
2980 }
2981 impl Status {
2982 pub fn as_str_name(&self) -> &'static str {
2987 match self {
2988 Status::Active => "ACTIVE",
2989 Status::Finished => "FINISHED",
2990 Status::Failed => "FAILED",
2991 }
2992 }
2993 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2995 match value {
2996 "ACTIVE" => Some(Self::Active),
2997 "FINISHED" => Some(Self::Finished),
2998 "FAILED" => Some(Self::Failed),
2999 _ => None,
3000 }
3001 }
3002 }
3003}
3004#[allow(clippy::derive_partial_eq_without_eq)]
3005#[derive(Clone, PartialEq, ::prost::Message)]
3006pub struct FileInfo {
3007 #[prost(string, tag="1")]
3008 pub filename: ::prost::alloc::string::String,
3009 #[prost(int64, tag="2")]
3010 pub started_at: i64,
3011 #[prost(int64, tag="3")]
3012 pub ended_at: i64,
3013 #[prost(int64, tag="6")]
3014 pub duration: i64,
3015 #[prost(int64, tag="4")]
3016 pub size: i64,
3017 #[prost(string, tag="5")]
3018 pub location: ::prost::alloc::string::String,
3019}
3020#[allow(clippy::derive_partial_eq_without_eq)]
3021#[derive(Clone, PartialEq, ::prost::Message)]
3022pub struct SegmentsInfo {
3023 #[prost(string, tag="1")]
3024 pub playlist_name: ::prost::alloc::string::String,
3025 #[prost(string, tag="8")]
3026 pub live_playlist_name: ::prost::alloc::string::String,
3027 #[prost(int64, tag="2")]
3028 pub duration: i64,
3029 #[prost(int64, tag="3")]
3030 pub size: i64,
3031 #[prost(string, tag="4")]
3032 pub playlist_location: ::prost::alloc::string::String,
3033 #[prost(string, tag="9")]
3034 pub live_playlist_location: ::prost::alloc::string::String,
3035 #[prost(int64, tag="5")]
3036 pub segment_count: i64,
3037 #[prost(int64, tag="6")]
3038 pub started_at: i64,
3039 #[prost(int64, tag="7")]
3040 pub ended_at: i64,
3041}
3042#[allow(clippy::derive_partial_eq_without_eq)]
3043#[derive(Clone, PartialEq, ::prost::Message)]
3044pub struct ImagesInfo {
3045 #[prost(string, tag="4")]
3046 pub filename_prefix: ::prost::alloc::string::String,
3047 #[prost(int64, tag="1")]
3048 pub image_count: i64,
3049 #[prost(int64, tag="2")]
3050 pub started_at: i64,
3051 #[prost(int64, tag="3")]
3052 pub ended_at: i64,
3053}
3054#[allow(clippy::derive_partial_eq_without_eq)]
3057#[derive(Clone, PartialEq, ::prost::Message)]
3058pub struct AutoParticipantEgress {
3059 #[prost(message, repeated, tag="3")]
3060 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3061 #[prost(message, repeated, tag="4")]
3062 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3063 #[prost(oneof="auto_participant_egress::Options", tags="1, 2")]
3064 pub options: ::core::option::Option<auto_participant_egress::Options>,
3065}
3066pub mod auto_participant_egress {
3068 #[allow(clippy::derive_partial_eq_without_eq)]
3069#[derive(Clone, PartialEq, ::prost::Oneof)]
3070 pub enum Options {
3071 #[prost(enumeration="super::EncodingOptionsPreset", tag="1")]
3073 Preset(i32),
3074 #[prost(message, tag="2")]
3076 Advanced(super::EncodingOptions),
3077 }
3078}
3079#[allow(clippy::derive_partial_eq_without_eq)]
3080#[derive(Clone, PartialEq, ::prost::Message)]
3081pub struct AutoTrackEgress {
3082 #[prost(string, tag="1")]
3084 pub filepath: ::prost::alloc::string::String,
3085 #[prost(bool, tag="5")]
3087 pub disable_manifest: bool,
3088 #[prost(oneof="auto_track_egress::Output", tags="2, 3, 4, 6")]
3089 pub output: ::core::option::Option<auto_track_egress::Output>,
3090}
3091pub mod auto_track_egress {
3093 #[allow(clippy::derive_partial_eq_without_eq)]
3094#[derive(Clone, PartialEq, ::prost::Oneof)]
3095 pub enum Output {
3096 #[prost(message, tag="2")]
3097 S3(super::S3Upload),
3098 #[prost(message, tag="3")]
3099 Gcp(super::GcpUpload),
3100 #[prost(message, tag="4")]
3101 Azure(super::AzureBlobUpload),
3102 #[prost(message, tag="6")]
3103 AliOss(super::AliOssUpload),
3104 }
3105}
3106#[allow(clippy::derive_partial_eq_without_eq)]
3109#[derive(Clone, PartialEq, ::prost::Message)]
3110pub struct ExportReplayRequest {
3111 #[prost(string, tag="1")]
3112 pub replay_id: ::prost::alloc::string::String,
3113 #[prost(int64, tag="2")]
3114 pub start_offset_ms: i64,
3115 #[prost(int64, tag="3")]
3116 pub end_offset_ms: i64,
3117 #[prost(message, repeated, tag="9")]
3118 pub outputs: ::prost::alloc::vec::Vec<Output>,
3119 #[prost(message, optional, tag="10")]
3120 pub storage: ::core::option::Option<StorageConfig>,
3121 #[prost(message, repeated, tag="11")]
3122 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3123 #[prost(oneof="export_replay_request::Source", tags="4, 5, 6")]
3124 pub source: ::core::option::Option<export_replay_request::Source>,
3125 #[prost(oneof="export_replay_request::Encoding", tags="7, 8")]
3126 pub encoding: ::core::option::Option<export_replay_request::Encoding>,
3127}
3128pub mod export_replay_request {
3130 #[allow(clippy::derive_partial_eq_without_eq)]
3131#[derive(Clone, PartialEq, ::prost::Oneof)]
3132 pub enum Source {
3133 #[prost(message, tag="4")]
3134 Template(super::TemplateSource),
3135 #[prost(message, tag="5")]
3136 Web(super::WebSource),
3137 #[prost(message, tag="6")]
3138 Media(super::MediaSource),
3139 }
3140 #[allow(clippy::derive_partial_eq_without_eq)]
3141#[derive(Clone, PartialEq, ::prost::Oneof)]
3142 pub enum Encoding {
3143 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
3144 Preset(i32),
3145 #[prost(message, tag="8")]
3146 Advanced(super::EncodingOptions),
3147 }
3148}
3149#[allow(clippy::derive_partial_eq_without_eq)]
3152#[derive(Clone, PartialEq, ::prost::Message)]
3153pub struct RoomCompositeEgressRequest {
3154 #[prost(string, tag="1")]
3155 pub room_name: ::prost::alloc::string::String,
3156 #[prost(string, tag="2")]
3157 pub layout: ::prost::alloc::string::String,
3158 #[prost(bool, tag="3")]
3159 pub audio_only: bool,
3160 #[prost(enumeration="AudioMixing", tag="15")]
3161 pub audio_mixing: i32,
3162 #[prost(bool, tag="4")]
3163 pub video_only: bool,
3164 #[prost(string, tag="5")]
3165 pub custom_base_url: ::prost::alloc::string::String,
3166 #[prost(message, repeated, tag="11")]
3167 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3168 #[prost(message, repeated, tag="12")]
3169 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3170 #[prost(message, repeated, tag="13")]
3171 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3172 #[prost(message, repeated, tag="14")]
3173 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3174 #[prost(message, repeated, tag="16")]
3175 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3176 #[prost(oneof="room_composite_egress_request::Output", tags="6, 7, 10")]
3177 pub output: ::core::option::Option<room_composite_egress_request::Output>,
3178 #[prost(oneof="room_composite_egress_request::Options", tags="8, 9")]
3179 pub options: ::core::option::Option<room_composite_egress_request::Options>,
3180}
3181pub mod room_composite_egress_request {
3183 #[allow(clippy::derive_partial_eq_without_eq)]
3184#[derive(Clone, PartialEq, ::prost::Oneof)]
3185 pub enum Output {
3186 #[prost(message, tag="6")]
3187 File(super::EncodedFileOutput),
3188 #[prost(message, tag="7")]
3189 Stream(super::StreamOutput),
3190 #[prost(message, tag="10")]
3191 Segments(super::SegmentedFileOutput),
3192 }
3193 #[allow(clippy::derive_partial_eq_without_eq)]
3194#[derive(Clone, PartialEq, ::prost::Oneof)]
3195 pub enum Options {
3196 #[prost(enumeration="super::EncodingOptionsPreset", tag="8")]
3197 Preset(i32),
3198 #[prost(message, tag="9")]
3199 Advanced(super::EncodingOptions),
3200 }
3201}
3202#[allow(clippy::derive_partial_eq_without_eq)]
3203#[derive(Clone, PartialEq, ::prost::Message)]
3204pub struct WebEgressRequest {
3205 #[prost(string, tag="1")]
3206 pub url: ::prost::alloc::string::String,
3207 #[prost(bool, tag="2")]
3208 pub audio_only: bool,
3209 #[prost(bool, tag="3")]
3210 pub video_only: bool,
3211 #[prost(bool, tag="12")]
3212 pub await_start_signal: bool,
3213 #[prost(message, repeated, tag="9")]
3214 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3215 #[prost(message, repeated, tag="10")]
3216 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3217 #[prost(message, repeated, tag="11")]
3218 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3219 #[prost(message, repeated, tag="13")]
3220 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3221 #[prost(message, repeated, tag="14")]
3222 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3223 #[prost(oneof="web_egress_request::Output", tags="4, 5, 6")]
3224 pub output: ::core::option::Option<web_egress_request::Output>,
3225 #[prost(oneof="web_egress_request::Options", tags="7, 8")]
3226 pub options: ::core::option::Option<web_egress_request::Options>,
3227}
3228pub mod web_egress_request {
3230 #[allow(clippy::derive_partial_eq_without_eq)]
3231#[derive(Clone, PartialEq, ::prost::Oneof)]
3232 pub enum Output {
3233 #[prost(message, tag="4")]
3234 File(super::EncodedFileOutput),
3235 #[prost(message, tag="5")]
3236 Stream(super::StreamOutput),
3237 #[prost(message, tag="6")]
3238 Segments(super::SegmentedFileOutput),
3239 }
3240 #[allow(clippy::derive_partial_eq_without_eq)]
3241#[derive(Clone, PartialEq, ::prost::Oneof)]
3242 pub enum Options {
3243 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
3244 Preset(i32),
3245 #[prost(message, tag="8")]
3246 Advanced(super::EncodingOptions),
3247 }
3248}
3249#[allow(clippy::derive_partial_eq_without_eq)]
3250#[derive(Clone, PartialEq, ::prost::Message)]
3251pub struct ParticipantEgressRequest {
3252 #[prost(string, tag="1")]
3253 pub room_name: ::prost::alloc::string::String,
3254 #[prost(string, tag="2")]
3255 pub identity: ::prost::alloc::string::String,
3256 #[prost(bool, tag="3")]
3257 pub screen_share: bool,
3258 #[prost(message, repeated, tag="6")]
3259 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3260 #[prost(message, repeated, tag="7")]
3261 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3262 #[prost(message, repeated, tag="8")]
3263 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3264 #[prost(message, repeated, tag="9")]
3265 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3266 #[prost(message, repeated, tag="10")]
3267 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3268 #[prost(oneof="participant_egress_request::Options", tags="4, 5")]
3269 pub options: ::core::option::Option<participant_egress_request::Options>,
3270}
3271pub mod participant_egress_request {
3273 #[allow(clippy::derive_partial_eq_without_eq)]
3274#[derive(Clone, PartialEq, ::prost::Oneof)]
3275 pub enum Options {
3276 #[prost(enumeration="super::EncodingOptionsPreset", tag="4")]
3277 Preset(i32),
3278 #[prost(message, tag="5")]
3279 Advanced(super::EncodingOptions),
3280 }
3281}
3282#[allow(clippy::derive_partial_eq_without_eq)]
3283#[derive(Clone, PartialEq, ::prost::Message)]
3284pub struct TrackCompositeEgressRequest {
3285 #[prost(string, tag="1")]
3286 pub room_name: ::prost::alloc::string::String,
3287 #[prost(string, tag="2")]
3288 pub audio_track_id: ::prost::alloc::string::String,
3289 #[prost(string, tag="3")]
3290 pub video_track_id: ::prost::alloc::string::String,
3291 #[prost(message, repeated, tag="11")]
3292 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3293 #[prost(message, repeated, tag="12")]
3294 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3295 #[prost(message, repeated, tag="13")]
3296 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3297 #[prost(message, repeated, tag="14")]
3298 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3299 #[prost(message, repeated, tag="15")]
3300 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3301 #[prost(oneof="track_composite_egress_request::Output", tags="4, 5, 8")]
3302 pub output: ::core::option::Option<track_composite_egress_request::Output>,
3303 #[prost(oneof="track_composite_egress_request::Options", tags="6, 7")]
3304 pub options: ::core::option::Option<track_composite_egress_request::Options>,
3305}
3306pub mod track_composite_egress_request {
3308 #[allow(clippy::derive_partial_eq_without_eq)]
3309#[derive(Clone, PartialEq, ::prost::Oneof)]
3310 pub enum Output {
3311 #[prost(message, tag="4")]
3312 File(super::EncodedFileOutput),
3313 #[prost(message, tag="5")]
3314 Stream(super::StreamOutput),
3315 #[prost(message, tag="8")]
3316 Segments(super::SegmentedFileOutput),
3317 }
3318 #[allow(clippy::derive_partial_eq_without_eq)]
3319#[derive(Clone, PartialEq, ::prost::Oneof)]
3320 pub enum Options {
3321 #[prost(enumeration="super::EncodingOptionsPreset", tag="6")]
3322 Preset(i32),
3323 #[prost(message, tag="7")]
3324 Advanced(super::EncodingOptions),
3325 }
3326}
3327#[allow(clippy::derive_partial_eq_without_eq)]
3328#[derive(Clone, PartialEq, ::prost::Message)]
3329pub struct TrackEgressRequest {
3330 #[prost(string, tag="1")]
3331 pub room_name: ::prost::alloc::string::String,
3332 #[prost(string, tag="2")]
3333 pub track_id: ::prost::alloc::string::String,
3334 #[prost(message, repeated, tag="5")]
3335 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3336 #[prost(oneof="track_egress_request::Output", tags="3, 4")]
3337 pub output: ::core::option::Option<track_egress_request::Output>,
3338}
3339pub mod track_egress_request {
3341 #[allow(clippy::derive_partial_eq_without_eq)]
3342#[derive(Clone, PartialEq, ::prost::Oneof)]
3343 pub enum Output {
3344 #[prost(message, tag="3")]
3345 File(super::DirectFileOutput),
3346 #[prost(string, tag="4")]
3347 WebsocketUrl(::prost::alloc::string::String),
3348 }
3349}
3350#[allow(clippy::derive_partial_eq_without_eq)]
3351#[derive(Clone, PartialEq, ::prost::Message)]
3352pub struct DirectFileOutput {
3353 #[prost(string, tag="1")]
3354 pub filepath: ::prost::alloc::string::String,
3355 #[prost(bool, tag="5")]
3356 pub disable_manifest: bool,
3357 #[prost(oneof="direct_file_output::Output", tags="2, 3, 4, 6")]
3358 pub output: ::core::option::Option<direct_file_output::Output>,
3359}
3360pub mod direct_file_output {
3362 #[allow(clippy::derive_partial_eq_without_eq)]
3363#[derive(Clone, PartialEq, ::prost::Oneof)]
3364 pub enum Output {
3365 #[prost(message, tag="2")]
3366 S3(super::S3Upload),
3367 #[prost(message, tag="3")]
3368 Gcp(super::GcpUpload),
3369 #[prost(message, tag="4")]
3370 Azure(super::AzureBlobUpload),
3371 #[prost(message, tag="6")]
3372 AliOss(super::AliOssUpload),
3373 }
3374}
3375#[allow(clippy::derive_partial_eq_without_eq)]
3376#[derive(Clone, PartialEq, ::prost::Message)]
3377pub struct EncodedFileOutput {
3378 #[prost(enumeration="EncodedFileType", tag="1")]
3379 pub file_type: i32,
3380 #[prost(string, tag="2")]
3381 pub filepath: ::prost::alloc::string::String,
3382 #[prost(bool, tag="6")]
3383 pub disable_manifest: bool,
3384 #[prost(oneof="encoded_file_output::Output", tags="3, 4, 5, 7")]
3385 pub output: ::core::option::Option<encoded_file_output::Output>,
3386}
3387pub mod encoded_file_output {
3389 #[allow(clippy::derive_partial_eq_without_eq)]
3390#[derive(Clone, PartialEq, ::prost::Oneof)]
3391 pub enum Output {
3392 #[prost(message, tag="3")]
3393 S3(super::S3Upload),
3394 #[prost(message, tag="4")]
3395 Gcp(super::GcpUpload),
3396 #[prost(message, tag="5")]
3397 Azure(super::AzureBlobUpload),
3398 #[prost(message, tag="7")]
3399 AliOss(super::AliOssUpload),
3400 }
3401}
3402#[allow(clippy::derive_partial_eq_without_eq)]
3403#[derive(Clone, PartialEq, ::prost::Message)]
3404pub struct UpdateLayoutRequest {
3405 #[prost(string, tag="1")]
3406 pub egress_id: ::prost::alloc::string::String,
3407 #[prost(string, tag="2")]
3408 pub layout: ::prost::alloc::string::String,
3409}
3410#[allow(clippy::derive_partial_eq_without_eq)]
3411#[derive(Clone, PartialEq, ::prost::Message)]
3412pub struct UpdateStreamRequest {
3413 #[prost(string, tag="1")]
3414 pub egress_id: ::prost::alloc::string::String,
3415 #[prost(string, repeated, tag="2")]
3416 pub add_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3417 #[prost(string, repeated, tag="3")]
3418 pub remove_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3419}
3420#[allow(clippy::derive_partial_eq_without_eq)]
3421#[derive(Clone, PartialEq, ::prost::Message)]
3422pub struct StreamInfoList {
3423 #[prost(message, repeated, tag="1")]
3424 pub info: ::prost::alloc::vec::Vec<StreamInfo>,
3425}
3426#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3427#[repr(i32)]
3428pub enum AudioChannel {
3429 Both = 0,
3430 Left = 1,
3431 Right = 2,
3432}
3433impl AudioChannel {
3434 pub fn as_str_name(&self) -> &'static str {
3439 match self {
3440 AudioChannel::Both => "AUDIO_CHANNEL_BOTH",
3441 AudioChannel::Left => "AUDIO_CHANNEL_LEFT",
3442 AudioChannel::Right => "AUDIO_CHANNEL_RIGHT",
3443 }
3444 }
3445 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3447 match value {
3448 "AUDIO_CHANNEL_BOTH" => Some(Self::Both),
3449 "AUDIO_CHANNEL_LEFT" => Some(Self::Left),
3450 "AUDIO_CHANNEL_RIGHT" => Some(Self::Right),
3451 _ => None,
3452 }
3453 }
3454}
3455#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3458#[repr(i32)]
3459pub enum EncodingOptionsPreset {
3460 H264720p30 = 0,
3462 H264720p60 = 1,
3464 H2641080p30 = 2,
3466 H2641080p60 = 3,
3468 PortraitH264720p30 = 4,
3470 PortraitH264720p60 = 5,
3472 PortraitH2641080p30 = 6,
3474 PortraitH2641080p60 = 7,
3476}
3477impl EncodingOptionsPreset {
3478 pub fn as_str_name(&self) -> &'static str {
3483 match self {
3484 EncodingOptionsPreset::H264720p30 => "H264_720P_30",
3485 EncodingOptionsPreset::H264720p60 => "H264_720P_60",
3486 EncodingOptionsPreset::H2641080p30 => "H264_1080P_30",
3487 EncodingOptionsPreset::H2641080p60 => "H264_1080P_60",
3488 EncodingOptionsPreset::PortraitH264720p30 => "PORTRAIT_H264_720P_30",
3489 EncodingOptionsPreset::PortraitH264720p60 => "PORTRAIT_H264_720P_60",
3490 EncodingOptionsPreset::PortraitH2641080p30 => "PORTRAIT_H264_1080P_30",
3491 EncodingOptionsPreset::PortraitH2641080p60 => "PORTRAIT_H264_1080P_60",
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 _ => None,
3506 }
3507 }
3508}
3509#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3510#[repr(i32)]
3511pub enum EncodedFileType {
3512 DefaultFiletype = 0,
3514 Mp4 = 1,
3515 Ogg = 2,
3516 Mp3 = 3,
3517}
3518impl EncodedFileType {
3519 pub fn as_str_name(&self) -> &'static str {
3524 match self {
3525 EncodedFileType::DefaultFiletype => "DEFAULT_FILETYPE",
3526 EncodedFileType::Mp4 => "MP4",
3527 EncodedFileType::Ogg => "OGG",
3528 EncodedFileType::Mp3 => "MP3",
3529 }
3530 }
3531 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3533 match value {
3534 "DEFAULT_FILETYPE" => Some(Self::DefaultFiletype),
3535 "MP4" => Some(Self::Mp4),
3536 "OGG" => Some(Self::Ogg),
3537 "MP3" => Some(Self::Mp3),
3538 _ => None,
3539 }
3540 }
3541}
3542#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3543#[repr(i32)]
3544pub enum StreamProtocol {
3545 DefaultProtocol = 0,
3547 Rtmp = 1,
3548 Srt = 2,
3549 Websocket = 3,
3550}
3551impl StreamProtocol {
3552 pub fn as_str_name(&self) -> &'static str {
3557 match self {
3558 StreamProtocol::DefaultProtocol => "DEFAULT_PROTOCOL",
3559 StreamProtocol::Rtmp => "RTMP",
3560 StreamProtocol::Srt => "SRT",
3561 StreamProtocol::Websocket => "WEBSOCKET",
3562 }
3563 }
3564 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3566 match value {
3567 "DEFAULT_PROTOCOL" => Some(Self::DefaultProtocol),
3568 "RTMP" => Some(Self::Rtmp),
3569 "SRT" => Some(Self::Srt),
3570 "WEBSOCKET" => Some(Self::Websocket),
3571 _ => None,
3572 }
3573 }
3574}
3575#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3576#[repr(i32)]
3577pub enum SegmentedFileProtocol {
3578 DefaultSegmentedFileProtocol = 0,
3579 HlsProtocol = 1,
3580}
3581impl SegmentedFileProtocol {
3582 pub fn as_str_name(&self) -> &'static str {
3587 match self {
3588 SegmentedFileProtocol::DefaultSegmentedFileProtocol => "DEFAULT_SEGMENTED_FILE_PROTOCOL",
3589 SegmentedFileProtocol::HlsProtocol => "HLS_PROTOCOL",
3590 }
3591 }
3592 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3594 match value {
3595 "DEFAULT_SEGMENTED_FILE_PROTOCOL" => Some(Self::DefaultSegmentedFileProtocol),
3596 "HLS_PROTOCOL" => Some(Self::HlsProtocol),
3597 _ => None,
3598 }
3599 }
3600}
3601#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3602#[repr(i32)]
3603pub enum SegmentedFileSuffix {
3604 Index = 0,
3605 Timestamp = 1,
3606}
3607impl SegmentedFileSuffix {
3608 pub fn as_str_name(&self) -> &'static str {
3613 match self {
3614 SegmentedFileSuffix::Index => "INDEX",
3615 SegmentedFileSuffix::Timestamp => "TIMESTAMP",
3616 }
3617 }
3618 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3620 match value {
3621 "INDEX" => Some(Self::Index),
3622 "TIMESTAMP" => Some(Self::Timestamp),
3623 _ => None,
3624 }
3625 }
3626}
3627#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3628#[repr(i32)]
3629pub enum ImageFileSuffix {
3630 ImageSuffixIndex = 0,
3631 ImageSuffixTimestamp = 1,
3632 ImageSuffixNoneOverwrite = 2,
3634}
3635impl ImageFileSuffix {
3636 pub fn as_str_name(&self) -> &'static str {
3641 match self {
3642 ImageFileSuffix::ImageSuffixIndex => "IMAGE_SUFFIX_INDEX",
3643 ImageFileSuffix::ImageSuffixTimestamp => "IMAGE_SUFFIX_TIMESTAMP",
3644 ImageFileSuffix::ImageSuffixNoneOverwrite => "IMAGE_SUFFIX_NONE_OVERWRITE",
3645 }
3646 }
3647 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3649 match value {
3650 "IMAGE_SUFFIX_INDEX" => Some(Self::ImageSuffixIndex),
3651 "IMAGE_SUFFIX_TIMESTAMP" => Some(Self::ImageSuffixTimestamp),
3652 "IMAGE_SUFFIX_NONE_OVERWRITE" => Some(Self::ImageSuffixNoneOverwrite),
3653 _ => None,
3654 }
3655 }
3656}
3657#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3658#[repr(i32)]
3659pub enum EgressSourceType {
3660 Web = 0,
3661 Sdk = 1,
3662}
3663impl EgressSourceType {
3664 pub fn as_str_name(&self) -> &'static str {
3669 match self {
3670 EgressSourceType::Web => "EGRESS_SOURCE_TYPE_WEB",
3671 EgressSourceType::Sdk => "EGRESS_SOURCE_TYPE_SDK",
3672 }
3673 }
3674 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3676 match value {
3677 "EGRESS_SOURCE_TYPE_WEB" => Some(Self::Web),
3678 "EGRESS_SOURCE_TYPE_SDK" => Some(Self::Sdk),
3679 _ => None,
3680 }
3681 }
3682}
3683#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3684#[repr(i32)]
3685pub enum EgressStatus {
3686 EgressStarting = 0,
3687 EgressActive = 1,
3688 EgressEnding = 2,
3689 EgressComplete = 3,
3690 EgressFailed = 4,
3691 EgressAborted = 5,
3692 EgressLimitReached = 6,
3693}
3694impl EgressStatus {
3695 pub fn as_str_name(&self) -> &'static str {
3700 match self {
3701 EgressStatus::EgressStarting => "EGRESS_STARTING",
3702 EgressStatus::EgressActive => "EGRESS_ACTIVE",
3703 EgressStatus::EgressEnding => "EGRESS_ENDING",
3704 EgressStatus::EgressComplete => "EGRESS_COMPLETE",
3705 EgressStatus::EgressFailed => "EGRESS_FAILED",
3706 EgressStatus::EgressAborted => "EGRESS_ABORTED",
3707 EgressStatus::EgressLimitReached => "EGRESS_LIMIT_REACHED",
3708 }
3709 }
3710 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3712 match value {
3713 "EGRESS_STARTING" => Some(Self::EgressStarting),
3714 "EGRESS_ACTIVE" => Some(Self::EgressActive),
3715 "EGRESS_ENDING" => Some(Self::EgressEnding),
3716 "EGRESS_COMPLETE" => Some(Self::EgressComplete),
3717 "EGRESS_FAILED" => Some(Self::EgressFailed),
3718 "EGRESS_ABORTED" => Some(Self::EgressAborted),
3719 "EGRESS_LIMIT_REACHED" => Some(Self::EgressLimitReached),
3720 _ => None,
3721 }
3722 }
3723}
3724#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3725#[repr(i32)]
3726pub enum AudioMixing {
3727 DefaultMixing = 0,
3728 DualChannelAgent = 1,
3729 DualChannelAlternate = 2,
3730}
3731impl AudioMixing {
3732 pub fn as_str_name(&self) -> &'static str {
3737 match self {
3738 AudioMixing::DefaultMixing => "DEFAULT_MIXING",
3739 AudioMixing::DualChannelAgent => "DUAL_CHANNEL_AGENT",
3740 AudioMixing::DualChannelAlternate => "DUAL_CHANNEL_ALTERNATE",
3741 }
3742 }
3743 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3745 match value {
3746 "DEFAULT_MIXING" => Some(Self::DefaultMixing),
3747 "DUAL_CHANNEL_AGENT" => Some(Self::DualChannelAgent),
3748 "DUAL_CHANNEL_ALTERNATE" => Some(Self::DualChannelAlternate),
3749 _ => None,
3750 }
3751 }
3752}
3753#[allow(clippy::derive_partial_eq_without_eq)]
3754#[derive(Clone, PartialEq, ::prost::Message)]
3755pub struct SignalRequest {
3756 #[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")]
3757 pub message: ::core::option::Option<signal_request::Message>,
3758}
3759pub mod signal_request {
3761 #[allow(clippy::derive_partial_eq_without_eq)]
3762#[derive(Clone, PartialEq, ::prost::Oneof)]
3763 pub enum Message {
3764 #[prost(message, tag="1")]
3766 Offer(super::SessionDescription),
3767 #[prost(message, tag="2")]
3769 Answer(super::SessionDescription),
3770 #[prost(message, tag="3")]
3771 Trickle(super::TrickleRequest),
3772 #[prost(message, tag="4")]
3773 AddTrack(super::AddTrackRequest),
3774 #[prost(message, tag="5")]
3776 Mute(super::MuteTrackRequest),
3777 #[prost(message, tag="6")]
3779 Subscription(super::UpdateSubscription),
3780 #[prost(message, tag="7")]
3782 TrackSetting(super::UpdateTrackSettings),
3783 #[prost(message, tag="8")]
3785 Leave(super::LeaveRequest),
3786 #[prost(message, tag="10")]
3788 UpdateLayers(super::UpdateVideoLayers),
3789 #[prost(message, tag="11")]
3791 SubscriptionPermission(super::SubscriptionPermission),
3792 #[prost(message, tag="12")]
3794 SyncState(super::SyncState),
3795 #[prost(message, tag="13")]
3797 Simulate(super::SimulateScenario),
3798 #[prost(int64, tag="14")]
3802 Ping(i64),
3803 #[prost(message, tag="15")]
3806 UpdateMetadata(super::UpdateParticipantMetadata),
3807 #[prost(message, tag="16")]
3808 PingReq(super::Ping),
3809 #[prost(message, tag="17")]
3811 UpdateAudioTrack(super::UpdateLocalAudioTrack),
3812 #[prost(message, tag="18")]
3814 UpdateVideoTrack(super::UpdateLocalVideoTrack),
3815 #[prost(message, tag="19")]
3817 PublishDataTrackRequest(super::PublishDataTrackRequest),
3818 #[prost(message, tag="20")]
3820 UnpublishDataTrackRequest(super::UnpublishDataTrackRequest),
3821 #[prost(message, tag="21")]
3823 UpdateDataSubscription(super::UpdateDataSubscription),
3824 #[prost(message, tag="22")]
3826 StoreDataBlobRequest(super::StoreDataBlobRequest),
3827 #[prost(message, tag="23")]
3829 GetDataBlobRequest(super::GetDataBlobRequest),
3830 }
3831}
3832#[allow(clippy::derive_partial_eq_without_eq)]
3833#[derive(Clone, PartialEq, ::prost::Message)]
3834pub struct SignalResponse {
3835 #[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")]
3836 pub message: ::core::option::Option<signal_response::Message>,
3837}
3838pub mod signal_response {
3840 #[allow(clippy::derive_partial_eq_without_eq)]
3841#[derive(Clone, PartialEq, ::prost::Oneof)]
3842 pub enum Message {
3843 #[prost(message, tag="1")]
3845 Join(super::JoinResponse),
3846 #[prost(message, tag="2")]
3848 Answer(super::SessionDescription),
3849 #[prost(message, tag="3")]
3851 Offer(super::SessionDescription),
3852 #[prost(message, tag="4")]
3854 Trickle(super::TrickleRequest),
3855 #[prost(message, tag="5")]
3857 Update(super::ParticipantUpdate),
3858 #[prost(message, tag="6")]
3860 TrackPublished(super::TrackPublishedResponse),
3861 #[prost(message, tag="8")]
3863 Leave(super::LeaveRequest),
3864 #[prost(message, tag="9")]
3866 Mute(super::MuteTrackRequest),
3867 #[prost(message, tag="10")]
3869 SpeakersChanged(super::SpeakersChanged),
3870 #[prost(message, tag="11")]
3872 RoomUpdate(super::RoomUpdate),
3873 #[prost(message, tag="12")]
3875 ConnectionQuality(super::ConnectionQualityUpdate),
3876 #[prost(message, tag="13")]
3879 StreamStateUpdate(super::StreamStateUpdate),
3880 #[prost(message, tag="14")]
3882 SubscribedQualityUpdate(super::SubscribedQualityUpdate),
3883 #[prost(message, tag="15")]
3885 SubscriptionPermissionUpdate(super::SubscriptionPermissionUpdate),
3886 #[prost(string, tag="16")]
3888 RefreshToken(::prost::alloc::string::String),
3889 #[prost(message, tag="17")]
3891 TrackUnpublished(super::TrackUnpublishedResponse),
3892 #[prost(int64, tag="18")]
3896 Pong(i64),
3897 #[prost(message, tag="19")]
3899 Reconnect(super::ReconnectResponse),
3900 #[prost(message, tag="20")]
3902 PongResp(super::Pong),
3903 #[prost(message, tag="21")]
3905 SubscriptionResponse(super::SubscriptionResponse),
3906 #[prost(message, tag="22")]
3908 RequestResponse(super::RequestResponse),
3909 #[prost(message, tag="23")]
3911 TrackSubscribed(super::TrackSubscribed),
3912 #[prost(message, tag="24")]
3914 RoomMoved(super::RoomMovedResponse),
3915 #[prost(message, tag="25")]
3917 MediaSectionsRequirement(super::MediaSectionsRequirement),
3918 #[prost(message, tag="26")]
3920 SubscribedAudioCodecUpdate(super::SubscribedAudioCodecUpdate),
3921 #[prost(message, tag="27")]
3923 PublishDataTrackResponse(super::PublishDataTrackResponse),
3924 #[prost(message, tag="28")]
3926 UnpublishDataTrackResponse(super::UnpublishDataTrackResponse),
3927 #[prost(message, tag="29")]
3929 DataTrackSubscriberHandles(super::DataTrackSubscriberHandles),
3930 #[prost(message, tag="30")]
3932 StoreDataBlobResponse(super::StoreDataBlobResponse),
3933 #[prost(message, tag="31")]
3935 GetDataBlobResponse(super::GetDataBlobResponse),
3936 }
3937}
3938#[allow(clippy::derive_partial_eq_without_eq)]
3939#[derive(Clone, PartialEq, ::prost::Message)]
3940pub struct SimulcastCodec {
3941 #[prost(string, tag="1")]
3942 pub codec: ::prost::alloc::string::String,
3943 #[prost(string, tag="2")]
3944 pub cid: ::prost::alloc::string::String,
3945 #[prost(message, repeated, tag="4")]
3946 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3947 #[prost(enumeration="video_layer::Mode", tag="5")]
3948 pub video_layer_mode: i32,
3949}
3950#[allow(clippy::derive_partial_eq_without_eq)]
3951#[derive(Clone, PartialEq, ::prost::Message)]
3952pub struct AddTrackRequest {
3953 #[prost(string, tag="1")]
3955 pub cid: ::prost::alloc::string::String,
3956 #[prost(string, tag="2")]
3957 pub name: ::prost::alloc::string::String,
3958 #[prost(enumeration="TrackType", tag="3")]
3959 pub r#type: i32,
3960 #[prost(uint32, tag="4")]
3961 pub width: u32,
3962 #[prost(uint32, tag="5")]
3963 pub height: u32,
3964 #[prost(bool, tag="6")]
3966 pub muted: bool,
3967 #[deprecated]
3971 #[prost(bool, tag="7")]
3972 pub disable_dtx: bool,
3973 #[prost(enumeration="TrackSource", tag="8")]
3974 pub source: i32,
3975 #[prost(message, repeated, tag="9")]
3976 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3977 #[prost(message, repeated, tag="10")]
3978 pub simulcast_codecs: ::prost::alloc::vec::Vec<SimulcastCodec>,
3979 #[prost(string, tag="11")]
3981 pub sid: ::prost::alloc::string::String,
3982 #[deprecated]
3984 #[prost(bool, tag="12")]
3985 pub stereo: bool,
3986 #[prost(bool, tag="13")]
3988 pub disable_red: bool,
3989 #[prost(enumeration="encryption::Type", tag="14")]
3990 pub encryption: i32,
3991 #[prost(string, tag="15")]
3994 pub stream: ::prost::alloc::string::String,
3995 #[prost(enumeration="BackupCodecPolicy", tag="16")]
3996 pub backup_codec_policy: i32,
3997 #[prost(enumeration="AudioTrackFeature", repeated, tag="17")]
3998 pub audio_features: ::prost::alloc::vec::Vec<i32>,
3999 #[prost(enumeration="PacketTrailerFeature", repeated, tag="18")]
4000 pub packet_trailer_features: ::prost::alloc::vec::Vec<i32>,
4001}
4002#[allow(clippy::derive_partial_eq_without_eq)]
4003#[derive(Clone, PartialEq, ::prost::Message)]
4004pub struct PublishDataTrackRequest {
4005 #[prost(uint32, tag="1")]
4008 pub pub_handle: u32,
4009 #[prost(string, tag="2")]
4012 pub name: ::prost::alloc::string::String,
4013 #[prost(enumeration="encryption::Type", tag="3")]
4015 pub encryption: i32,
4016 #[prost(message, optional, tag="4")]
4018 pub frame_encoding: ::core::option::Option<DataTrackFrameEncoding>,
4019 #[prost(message, optional, tag="5")]
4022 pub schema: ::core::option::Option<DataTrackSchemaId>,
4023}
4024#[allow(clippy::derive_partial_eq_without_eq)]
4025#[derive(Clone, PartialEq, ::prost::Message)]
4026pub struct PublishDataTrackResponse {
4027 #[prost(message, optional, tag="1")]
4029 pub info: ::core::option::Option<DataTrackInfo>,
4030}
4031#[allow(clippy::derive_partial_eq_without_eq)]
4032#[derive(Clone, PartialEq, ::prost::Message)]
4033pub struct UnpublishDataTrackRequest {
4034 #[prost(uint32, tag="1")]
4036 pub pub_handle: u32,
4037}
4038#[allow(clippy::derive_partial_eq_without_eq)]
4039#[derive(Clone, PartialEq, ::prost::Message)]
4040pub struct UnpublishDataTrackResponse {
4041 #[prost(message, optional, tag="1")]
4043 pub info: ::core::option::Option<DataTrackInfo>,
4044}
4045#[allow(clippy::derive_partial_eq_without_eq)]
4046#[derive(Clone, PartialEq, ::prost::Message)]
4047pub struct DataTrackSubscriberHandles {
4048 #[prost(map="uint32, message", tag="1")]
4050 pub sub_handles: ::std::collections::HashMap<u32, data_track_subscriber_handles::PublishedDataTrack>,
4051}
4052pub mod data_track_subscriber_handles {
4054 #[allow(clippy::derive_partial_eq_without_eq)]
4055#[derive(Clone, PartialEq, ::prost::Message)]
4056 pub struct PublishedDataTrack {
4057 #[prost(string, tag="1")]
4058 pub publisher_identity: ::prost::alloc::string::String,
4059 #[prost(string, tag="2")]
4060 pub publisher_sid: ::prost::alloc::string::String,
4061 #[prost(string, tag="3")]
4062 pub track_sid: ::prost::alloc::string::String,
4063 }
4064}
4065#[allow(clippy::derive_partial_eq_without_eq)]
4066#[derive(Clone, PartialEq, ::prost::Message)]
4067pub struct TrickleRequest {
4068 #[prost(string, tag="1")]
4069 pub candidate_init: ::prost::alloc::string::String,
4070 #[prost(enumeration="SignalTarget", tag="2")]
4071 pub target: i32,
4072 #[prost(bool, tag="3")]
4073 pub r#final: bool,
4074}
4075#[allow(clippy::derive_partial_eq_without_eq)]
4076#[derive(Clone, PartialEq, ::prost::Message)]
4077pub struct MuteTrackRequest {
4078 #[prost(string, tag="1")]
4079 pub sid: ::prost::alloc::string::String,
4080 #[prost(bool, tag="2")]
4081 pub muted: bool,
4082}
4083#[allow(clippy::derive_partial_eq_without_eq)]
4084#[derive(Clone, PartialEq, ::prost::Message)]
4085pub struct JoinResponse {
4086 #[prost(message, optional, tag="1")]
4087 pub room: ::core::option::Option<Room>,
4088 #[prost(message, optional, tag="2")]
4089 pub participant: ::core::option::Option<ParticipantInfo>,
4090 #[prost(message, repeated, tag="3")]
4091 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4092 #[prost(string, tag="4")]
4094 pub server_version: ::prost::alloc::string::String,
4095 #[prost(message, repeated, tag="5")]
4096 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
4097 #[prost(bool, tag="6")]
4099 pub subscriber_primary: bool,
4100 #[prost(string, tag="7")]
4103 pub alternative_url: ::prost::alloc::string::String,
4104 #[prost(message, optional, tag="8")]
4105 pub client_configuration: ::core::option::Option<ClientConfiguration>,
4106 #[prost(string, tag="9")]
4108 pub server_region: ::prost::alloc::string::String,
4109 #[prost(int32, tag="10")]
4110 pub ping_timeout: i32,
4111 #[prost(int32, tag="11")]
4112 pub ping_interval: i32,
4113 #[prost(message, optional, tag="12")]
4114 pub server_info: ::core::option::Option<ServerInfo>,
4115 #[prost(bytes="vec", tag="13")]
4117 pub sif_trailer: ::prost::alloc::vec::Vec<u8>,
4118 #[prost(message, repeated, tag="14")]
4119 pub enabled_publish_codecs: ::prost::alloc::vec::Vec<Codec>,
4120 #[prost(bool, tag="15")]
4122 pub fast_publish: bool,
4123}
4124#[allow(clippy::derive_partial_eq_without_eq)]
4125#[derive(Clone, PartialEq, ::prost::Message)]
4126pub struct ReconnectResponse {
4127 #[prost(message, repeated, tag="1")]
4128 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
4129 #[prost(message, optional, tag="2")]
4130 pub client_configuration: ::core::option::Option<ClientConfiguration>,
4131 #[prost(message, optional, tag="3")]
4132 pub server_info: ::core::option::Option<ServerInfo>,
4133 #[prost(uint32, tag="4")]
4135 pub last_message_seq: u32,
4136}
4137#[allow(clippy::derive_partial_eq_without_eq)]
4138#[derive(Clone, PartialEq, ::prost::Message)]
4139pub struct TrackPublishedResponse {
4140 #[prost(string, tag="1")]
4141 pub cid: ::prost::alloc::string::String,
4142 #[prost(message, optional, tag="2")]
4143 pub track: ::core::option::Option<TrackInfo>,
4144}
4145#[allow(clippy::derive_partial_eq_without_eq)]
4146#[derive(Clone, PartialEq, ::prost::Message)]
4147pub struct TrackUnpublishedResponse {
4148 #[prost(string, tag="1")]
4149 pub track_sid: ::prost::alloc::string::String,
4150}
4151#[allow(clippy::derive_partial_eq_without_eq)]
4152#[derive(Clone, PartialEq, ::prost::Message)]
4153pub struct SessionDescription {
4154 #[prost(string, tag="1")]
4156 pub r#type: ::prost::alloc::string::String,
4157 #[prost(string, tag="2")]
4158 pub sdp: ::prost::alloc::string::String,
4159 #[prost(uint32, tag="3")]
4160 pub id: u32,
4161 #[prost(map="string, string", tag="4")]
4162 pub mid_to_track_id: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4163}
4164#[allow(clippy::derive_partial_eq_without_eq)]
4165#[derive(Clone, PartialEq, ::prost::Message)]
4166pub struct ParticipantUpdate {
4167 #[prost(message, repeated, tag="1")]
4168 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4169}
4170#[allow(clippy::derive_partial_eq_without_eq)]
4171#[derive(Clone, PartialEq, ::prost::Message)]
4172pub struct UpdateSubscription {
4173 #[prost(string, repeated, tag="1")]
4174 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4175 #[prost(bool, tag="2")]
4176 pub subscribe: bool,
4177 #[prost(message, repeated, tag="3")]
4178 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
4179}
4180#[allow(clippy::derive_partial_eq_without_eq)]
4181#[derive(Clone, PartialEq, ::prost::Message)]
4182pub struct UpdateDataSubscription {
4183 #[prost(message, repeated, tag="1")]
4184 pub updates: ::prost::alloc::vec::Vec<update_data_subscription::Update>,
4185}
4186pub mod update_data_subscription {
4188 #[allow(clippy::derive_partial_eq_without_eq)]
4189#[derive(Clone, PartialEq, ::prost::Message)]
4190 pub struct Update {
4191 #[prost(string, tag="1")]
4192 pub track_sid: ::prost::alloc::string::String,
4193 #[prost(bool, tag="2")]
4194 pub subscribe: bool,
4195 #[prost(message, optional, tag="3")]
4198 pub options: ::core::option::Option<super::DataTrackSubscriptionOptions>,
4199 }
4200}
4201#[allow(clippy::derive_partial_eq_without_eq)]
4202#[derive(Clone, PartialEq, ::prost::Message)]
4203pub struct StoreDataBlobRequest {
4204 #[prost(uint32, tag="1")]
4205 pub request_id: u32,
4206 #[prost(message, optional, tag="2")]
4207 pub blob: ::core::option::Option<DataBlob>,
4208}
4209#[allow(clippy::derive_partial_eq_without_eq)]
4210#[derive(Clone, PartialEq, ::prost::Message)]
4211pub struct StoreDataBlobResponse {
4212 #[prost(uint32, tag="1")]
4213 pub request_id: u32,
4214 #[prost(message, optional, tag="2")]
4216 pub key: ::core::option::Option<DataBlobKey>,
4217}
4218#[allow(clippy::derive_partial_eq_without_eq)]
4219#[derive(Clone, PartialEq, ::prost::Message)]
4220pub struct GetDataBlobRequest {
4221 #[prost(uint32, tag="1")]
4222 pub request_id: u32,
4223 #[prost(string, tag="2")]
4225 pub participant_identity: ::prost::alloc::string::String,
4226 #[prost(message, optional, tag="3")]
4228 pub key: ::core::option::Option<DataBlobKey>,
4229}
4230#[allow(clippy::derive_partial_eq_without_eq)]
4231#[derive(Clone, PartialEq, ::prost::Message)]
4232pub struct GetDataBlobResponse {
4233 #[prost(uint32, tag="1")]
4234 pub request_id: u32,
4235 #[prost(message, optional, tag="2")]
4236 pub blob: ::core::option::Option<DataBlob>,
4237}
4238#[allow(clippy::derive_partial_eq_without_eq)]
4239#[derive(Clone, PartialEq, ::prost::Message)]
4240pub struct UpdateTrackSettings {
4241 #[prost(string, repeated, tag="1")]
4242 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4243 #[prost(bool, tag="3")]
4245 pub disabled: bool,
4246 #[prost(enumeration="VideoQuality", tag="4")]
4248 pub quality: i32,
4249 #[prost(uint32, tag="5")]
4251 pub width: u32,
4252 #[prost(uint32, tag="6")]
4254 pub height: u32,
4255 #[prost(uint32, tag="7")]
4256 pub fps: u32,
4257 #[prost(uint32, tag="8")]
4265 pub priority: u32,
4266}
4267#[allow(clippy::derive_partial_eq_without_eq)]
4268#[derive(Clone, PartialEq, ::prost::Message)]
4269pub struct UpdateLocalAudioTrack {
4270 #[prost(string, tag="1")]
4271 pub track_sid: ::prost::alloc::string::String,
4272 #[prost(enumeration="AudioTrackFeature", repeated, tag="2")]
4273 pub features: ::prost::alloc::vec::Vec<i32>,
4274}
4275#[allow(clippy::derive_partial_eq_without_eq)]
4276#[derive(Clone, PartialEq, ::prost::Message)]
4277pub struct UpdateLocalVideoTrack {
4278 #[prost(string, tag="1")]
4279 pub track_sid: ::prost::alloc::string::String,
4280 #[prost(uint32, tag="2")]
4281 pub width: u32,
4282 #[prost(uint32, tag="3")]
4283 pub height: u32,
4284}
4285#[allow(clippy::derive_partial_eq_without_eq)]
4286#[derive(Clone, PartialEq, ::prost::Message)]
4287pub struct LeaveRequest {
4288 #[prost(bool, tag="1")]
4292 pub can_reconnect: bool,
4293 #[prost(enumeration="DisconnectReason", tag="2")]
4294 pub reason: i32,
4295 #[prost(enumeration="leave_request::Action", tag="3")]
4296 pub action: i32,
4297 #[prost(message, optional, tag="4")]
4298 pub regions: ::core::option::Option<RegionSettings>,
4299}
4300pub mod leave_request {
4302 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4304 #[repr(i32)]
4305 pub enum Action {
4306 Disconnect = 0,
4308 Resume = 1,
4310 Reconnect = 2,
4312 }
4313 impl Action {
4314 pub fn as_str_name(&self) -> &'static str {
4319 match self {
4320 Action::Disconnect => "DISCONNECT",
4321 Action::Resume => "RESUME",
4322 Action::Reconnect => "RECONNECT",
4323 }
4324 }
4325 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4327 match value {
4328 "DISCONNECT" => Some(Self::Disconnect),
4329 "RESUME" => Some(Self::Resume),
4330 "RECONNECT" => Some(Self::Reconnect),
4331 _ => None,
4332 }
4333 }
4334 }
4335}
4336#[allow(clippy::derive_partial_eq_without_eq)]
4338#[derive(Clone, PartialEq, ::prost::Message)]
4339pub struct UpdateVideoLayers {
4340 #[prost(string, tag="1")]
4341 pub track_sid: ::prost::alloc::string::String,
4342 #[prost(message, repeated, tag="2")]
4343 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
4344}
4345#[allow(clippy::derive_partial_eq_without_eq)]
4346#[derive(Clone, PartialEq, ::prost::Message)]
4347pub struct UpdateParticipantMetadata {
4348 #[prost(string, tag="1")]
4349 pub metadata: ::prost::alloc::string::String,
4350 #[prost(string, tag="2")]
4351 pub name: ::prost::alloc::string::String,
4352 #[prost(map="string, string", tag="3")]
4355 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4356 #[prost(uint32, tag="4")]
4357 pub request_id: u32,
4358}
4359#[allow(clippy::derive_partial_eq_without_eq)]
4360#[derive(Clone, PartialEq, ::prost::Message)]
4361pub struct IceServer {
4362 #[prost(string, repeated, tag="1")]
4363 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4364 #[prost(string, tag="2")]
4365 pub username: ::prost::alloc::string::String,
4366 #[prost(string, tag="3")]
4367 pub credential: ::prost::alloc::string::String,
4368}
4369#[allow(clippy::derive_partial_eq_without_eq)]
4370#[derive(Clone, PartialEq, ::prost::Message)]
4371pub struct SpeakersChanged {
4372 #[prost(message, repeated, tag="1")]
4373 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
4374}
4375#[allow(clippy::derive_partial_eq_without_eq)]
4376#[derive(Clone, PartialEq, ::prost::Message)]
4377pub struct RoomUpdate {
4378 #[prost(message, optional, tag="1")]
4379 pub room: ::core::option::Option<Room>,
4380}
4381#[allow(clippy::derive_partial_eq_without_eq)]
4382#[derive(Clone, PartialEq, ::prost::Message)]
4383pub struct ConnectionQualityInfo {
4384 #[prost(string, tag="1")]
4385 pub participant_sid: ::prost::alloc::string::String,
4386 #[prost(enumeration="ConnectionQuality", tag="2")]
4387 pub quality: i32,
4388 #[prost(float, tag="3")]
4389 pub score: f32,
4390}
4391#[allow(clippy::derive_partial_eq_without_eq)]
4392#[derive(Clone, PartialEq, ::prost::Message)]
4393pub struct ConnectionQualityUpdate {
4394 #[prost(message, repeated, tag="1")]
4395 pub updates: ::prost::alloc::vec::Vec<ConnectionQualityInfo>,
4396}
4397#[allow(clippy::derive_partial_eq_without_eq)]
4398#[derive(Clone, PartialEq, ::prost::Message)]
4399pub struct StreamStateInfo {
4400 #[prost(string, tag="1")]
4401 pub participant_sid: ::prost::alloc::string::String,
4402 #[prost(string, tag="2")]
4403 pub track_sid: ::prost::alloc::string::String,
4404 #[prost(enumeration="StreamState", tag="3")]
4405 pub state: i32,
4406}
4407#[allow(clippy::derive_partial_eq_without_eq)]
4408#[derive(Clone, PartialEq, ::prost::Message)]
4409pub struct StreamStateUpdate {
4410 #[prost(message, repeated, tag="1")]
4411 pub stream_states: ::prost::alloc::vec::Vec<StreamStateInfo>,
4412}
4413#[allow(clippy::derive_partial_eq_without_eq)]
4414#[derive(Clone, PartialEq, ::prost::Message)]
4415pub struct SubscribedQuality {
4416 #[prost(enumeration="VideoQuality", tag="1")]
4417 pub quality: i32,
4418 #[prost(bool, tag="2")]
4419 pub enabled: bool,
4420}
4421#[allow(clippy::derive_partial_eq_without_eq)]
4422#[derive(Clone, PartialEq, ::prost::Message)]
4423pub struct SubscribedCodec {
4424 #[prost(string, tag="1")]
4425 pub codec: ::prost::alloc::string::String,
4426 #[prost(message, repeated, tag="2")]
4427 pub qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
4428}
4429#[allow(clippy::derive_partial_eq_without_eq)]
4430#[derive(Clone, PartialEq, ::prost::Message)]
4431pub struct SubscribedQualityUpdate {
4432 #[prost(string, tag="1")]
4433 pub track_sid: ::prost::alloc::string::String,
4434 #[deprecated]
4435 #[prost(message, repeated, tag="2")]
4436 pub subscribed_qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
4437 #[prost(message, repeated, tag="3")]
4438 pub subscribed_codecs: ::prost::alloc::vec::Vec<SubscribedCodec>,
4439}
4440#[allow(clippy::derive_partial_eq_without_eq)]
4441#[derive(Clone, PartialEq, ::prost::Message)]
4442pub struct SubscribedAudioCodecUpdate {
4443 #[prost(string, tag="1")]
4444 pub track_sid: ::prost::alloc::string::String,
4445 #[prost(message, repeated, tag="2")]
4446 pub subscribed_audio_codecs: ::prost::alloc::vec::Vec<SubscribedAudioCodec>,
4447}
4448#[allow(clippy::derive_partial_eq_without_eq)]
4449#[derive(Clone, PartialEq, ::prost::Message)]
4450pub struct TrackPermission {
4451 #[prost(string, tag="1")]
4453 pub participant_sid: ::prost::alloc::string::String,
4454 #[prost(bool, tag="2")]
4455 pub all_tracks: bool,
4456 #[prost(string, repeated, tag="3")]
4457 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4458 #[prost(string, tag="4")]
4459 pub participant_identity: ::prost::alloc::string::String,
4460}
4461#[allow(clippy::derive_partial_eq_without_eq)]
4462#[derive(Clone, PartialEq, ::prost::Message)]
4463pub struct SubscriptionPermission {
4464 #[prost(bool, tag="1")]
4465 pub all_participants: bool,
4466 #[prost(message, repeated, tag="2")]
4467 pub track_permissions: ::prost::alloc::vec::Vec<TrackPermission>,
4468}
4469#[allow(clippy::derive_partial_eq_without_eq)]
4470#[derive(Clone, PartialEq, ::prost::Message)]
4471pub struct SubscriptionPermissionUpdate {
4472 #[prost(string, tag="1")]
4473 pub participant_sid: ::prost::alloc::string::String,
4474 #[prost(string, tag="2")]
4475 pub track_sid: ::prost::alloc::string::String,
4476 #[prost(bool, tag="3")]
4477 pub allowed: bool,
4478}
4479#[allow(clippy::derive_partial_eq_without_eq)]
4480#[derive(Clone, PartialEq, ::prost::Message)]
4481pub struct RoomMovedResponse {
4482 #[prost(message, optional, tag="1")]
4484 pub room: ::core::option::Option<Room>,
4485 #[prost(string, tag="2")]
4487 pub token: ::prost::alloc::string::String,
4488 #[prost(message, optional, tag="3")]
4489 pub participant: ::core::option::Option<ParticipantInfo>,
4490 #[prost(message, repeated, tag="4")]
4491 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4492}
4493#[allow(clippy::derive_partial_eq_without_eq)]
4494#[derive(Clone, PartialEq, ::prost::Message)]
4495pub struct SyncState {
4496 #[prost(message, optional, tag="1")]
4500 pub answer: ::core::option::Option<SessionDescription>,
4501 #[prost(message, optional, tag="2")]
4502 pub subscription: ::core::option::Option<UpdateSubscription>,
4503 #[prost(message, repeated, tag="3")]
4504 pub publish_tracks: ::prost::alloc::vec::Vec<TrackPublishedResponse>,
4505 #[prost(message, repeated, tag="4")]
4506 pub data_channels: ::prost::alloc::vec::Vec<DataChannelInfo>,
4507 #[prost(message, optional, tag="5")]
4511 pub offer: ::core::option::Option<SessionDescription>,
4512 #[prost(string, repeated, tag="6")]
4513 pub track_sids_disabled: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4514 #[prost(message, repeated, tag="7")]
4515 pub datachannel_receive_states: ::prost::alloc::vec::Vec<DataChannelReceiveState>,
4516 #[prost(message, repeated, tag="8")]
4517 pub publish_data_tracks: ::prost::alloc::vec::Vec<PublishDataTrackResponse>,
4518}
4519#[allow(clippy::derive_partial_eq_without_eq)]
4520#[derive(Clone, PartialEq, ::prost::Message)]
4521pub struct DataChannelReceiveState {
4522 #[prost(string, tag="1")]
4523 pub publisher_sid: ::prost::alloc::string::String,
4524 #[prost(uint32, tag="2")]
4525 pub last_seq: u32,
4526}
4527#[allow(clippy::derive_partial_eq_without_eq)]
4528#[derive(Clone, PartialEq, ::prost::Message)]
4529pub struct DataChannelInfo {
4530 #[prost(string, tag="1")]
4531 pub label: ::prost::alloc::string::String,
4532 #[prost(uint32, tag="2")]
4533 pub id: u32,
4534 #[prost(enumeration="SignalTarget", tag="3")]
4535 pub target: i32,
4536}
4537#[allow(clippy::derive_partial_eq_without_eq)]
4538#[derive(Clone, PartialEq, ::prost::Message)]
4539pub struct SimulateScenario {
4540 #[prost(oneof="simulate_scenario::Scenario", tags="1, 2, 3, 4, 5, 6, 7, 8, 9")]
4541 pub scenario: ::core::option::Option<simulate_scenario::Scenario>,
4542}
4543pub mod simulate_scenario {
4545 #[allow(clippy::derive_partial_eq_without_eq)]
4546#[derive(Clone, PartialEq, ::prost::Oneof)]
4547 pub enum Scenario {
4548 #[prost(int32, tag="1")]
4550 SpeakerUpdate(i32),
4551 #[prost(bool, tag="2")]
4553 NodeFailure(bool),
4554 #[prost(bool, tag="3")]
4556 Migration(bool),
4557 #[prost(bool, tag="4")]
4559 ServerLeave(bool),
4560 #[prost(enumeration="super::CandidateProtocol", tag="5")]
4562 SwitchCandidateProtocol(i32),
4563 #[prost(int64, tag="6")]
4566 SubscriberBandwidth(i64),
4567 #[prost(bool, tag="7")]
4569 DisconnectSignalOnResume(bool),
4570 #[prost(bool, tag="8")]
4572 DisconnectSignalOnResumeNoMessages(bool),
4573 #[prost(bool, tag="9")]
4575 LeaveRequestFullReconnect(bool),
4576 }
4577}
4578#[allow(clippy::derive_partial_eq_without_eq)]
4579#[derive(Clone, PartialEq, ::prost::Message)]
4580pub struct Ping {
4581 #[prost(int64, tag="1")]
4582 pub timestamp: i64,
4583 #[prost(int64, tag="2")]
4585 pub rtt: i64,
4586}
4587#[allow(clippy::derive_partial_eq_without_eq)]
4588#[derive(Clone, PartialEq, ::prost::Message)]
4589pub struct Pong {
4590 #[prost(int64, tag="1")]
4592 pub last_ping_timestamp: i64,
4593 #[prost(int64, tag="2")]
4594 pub timestamp: i64,
4595}
4596#[allow(clippy::derive_partial_eq_without_eq)]
4597#[derive(Clone, PartialEq, ::prost::Message)]
4598pub struct RegionSettings {
4599 #[prost(message, repeated, tag="1")]
4600 pub regions: ::prost::alloc::vec::Vec<RegionInfo>,
4601}
4602#[allow(clippy::derive_partial_eq_without_eq)]
4603#[derive(Clone, PartialEq, ::prost::Message)]
4604pub struct RegionInfo {
4605 #[prost(string, tag="1")]
4606 pub region: ::prost::alloc::string::String,
4607 #[prost(string, tag="2")]
4608 pub url: ::prost::alloc::string::String,
4609 #[prost(int64, tag="3")]
4610 pub distance: i64,
4611}
4612#[allow(clippy::derive_partial_eq_without_eq)]
4613#[derive(Clone, PartialEq, ::prost::Message)]
4614pub struct SubscriptionResponse {
4615 #[prost(string, tag="1")]
4616 pub track_sid: ::prost::alloc::string::String,
4617 #[prost(enumeration="SubscriptionError", tag="2")]
4618 pub err: i32,
4619}
4620#[allow(clippy::derive_partial_eq_without_eq)]
4621#[derive(Clone, PartialEq, ::prost::Message)]
4622pub struct RequestResponse {
4623 #[prost(uint32, tag="1")]
4624 pub request_id: u32,
4625 #[prost(enumeration="request_response::Reason", tag="2")]
4626 pub reason: i32,
4627 #[prost(string, tag="3")]
4628 pub message: ::prost::alloc::string::String,
4629 #[prost(oneof="request_response::Request", tags="4, 5, 6, 7, 8, 9, 10, 11")]
4630 pub request: ::core::option::Option<request_response::Request>,
4631}
4632pub mod request_response {
4634 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4635 #[repr(i32)]
4636 pub enum Reason {
4637 Ok = 0,
4638 NotFound = 1,
4639 NotAllowed = 2,
4640 LimitExceeded = 3,
4641 Queued = 4,
4642 UnsupportedType = 5,
4643 UnclassifiedError = 6,
4644 InvalidHandle = 7,
4645 InvalidName = 8,
4646 DuplicateHandle = 9,
4647 DuplicateName = 10,
4648 InvalidRequest = 11,
4649 }
4650 impl Reason {
4651 pub fn as_str_name(&self) -> &'static str {
4656 match self {
4657 Reason::Ok => "OK",
4658 Reason::NotFound => "NOT_FOUND",
4659 Reason::NotAllowed => "NOT_ALLOWED",
4660 Reason::LimitExceeded => "LIMIT_EXCEEDED",
4661 Reason::Queued => "QUEUED",
4662 Reason::UnsupportedType => "UNSUPPORTED_TYPE",
4663 Reason::UnclassifiedError => "UNCLASSIFIED_ERROR",
4664 Reason::InvalidHandle => "INVALID_HANDLE",
4665 Reason::InvalidName => "INVALID_NAME",
4666 Reason::DuplicateHandle => "DUPLICATE_HANDLE",
4667 Reason::DuplicateName => "DUPLICATE_NAME",
4668 Reason::InvalidRequest => "INVALID_REQUEST",
4669 }
4670 }
4671 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4673 match value {
4674 "OK" => Some(Self::Ok),
4675 "NOT_FOUND" => Some(Self::NotFound),
4676 "NOT_ALLOWED" => Some(Self::NotAllowed),
4677 "LIMIT_EXCEEDED" => Some(Self::LimitExceeded),
4678 "QUEUED" => Some(Self::Queued),
4679 "UNSUPPORTED_TYPE" => Some(Self::UnsupportedType),
4680 "UNCLASSIFIED_ERROR" => Some(Self::UnclassifiedError),
4681 "INVALID_HANDLE" => Some(Self::InvalidHandle),
4682 "INVALID_NAME" => Some(Self::InvalidName),
4683 "DUPLICATE_HANDLE" => Some(Self::DuplicateHandle),
4684 "DUPLICATE_NAME" => Some(Self::DuplicateName),
4685 "INVALID_REQUEST" => Some(Self::InvalidRequest),
4686 _ => None,
4687 }
4688 }
4689 }
4690 #[allow(clippy::derive_partial_eq_without_eq)]
4691#[derive(Clone, PartialEq, ::prost::Oneof)]
4692 pub enum Request {
4693 #[prost(message, tag="4")]
4694 Trickle(super::TrickleRequest),
4695 #[prost(message, tag="5")]
4696 AddTrack(super::AddTrackRequest),
4697 #[prost(message, tag="6")]
4698 Mute(super::MuteTrackRequest),
4699 #[prost(message, tag="7")]
4700 UpdateMetadata(super::UpdateParticipantMetadata),
4701 #[prost(message, tag="8")]
4702 UpdateAudioTrack(super::UpdateLocalAudioTrack),
4703 #[prost(message, tag="9")]
4704 UpdateVideoTrack(super::UpdateLocalVideoTrack),
4705 #[prost(message, tag="10")]
4706 PublishDataTrack(super::PublishDataTrackRequest),
4707 #[prost(message, tag="11")]
4708 UnpublishDataTrack(super::UnpublishDataTrackRequest),
4709 }
4710}
4711#[allow(clippy::derive_partial_eq_without_eq)]
4712#[derive(Clone, PartialEq, ::prost::Message)]
4713pub struct TrackSubscribed {
4714 #[prost(string, tag="1")]
4715 pub track_sid: ::prost::alloc::string::String,
4716}
4717#[allow(clippy::derive_partial_eq_without_eq)]
4718#[derive(Clone, PartialEq, ::prost::Message)]
4719pub struct ConnectionSettings {
4720 #[prost(bool, tag="1")]
4721 pub auto_subscribe: bool,
4722 #[prost(bool, tag="2")]
4723 pub adaptive_stream: bool,
4724 #[prost(bool, optional, tag="3")]
4725 pub subscriber_allow_pause: ::core::option::Option<bool>,
4726 #[prost(bool, tag="4")]
4727 pub disable_ice_lite: bool,
4728 #[prost(bool, optional, tag="5")]
4729 pub auto_subscribe_data_track: ::core::option::Option<bool>,
4730}
4731#[allow(clippy::derive_partial_eq_without_eq)]
4732#[derive(Clone, PartialEq, ::prost::Message)]
4733pub struct JoinRequest {
4734 #[prost(message, optional, tag="1")]
4735 pub client_info: ::core::option::Option<ClientInfo>,
4736 #[prost(message, optional, tag="2")]
4737 pub connection_settings: ::core::option::Option<ConnectionSettings>,
4738 #[prost(string, tag="3")]
4740 pub metadata: ::prost::alloc::string::String,
4741 #[prost(map="string, string", tag="4")]
4745 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4746 #[prost(message, repeated, tag="5")]
4747 pub add_track_requests: ::prost::alloc::vec::Vec<AddTrackRequest>,
4748 #[prost(message, optional, tag="6")]
4749 pub publisher_offer: ::core::option::Option<SessionDescription>,
4750 #[prost(bool, tag="7")]
4751 pub reconnect: bool,
4752 #[prost(enumeration="ReconnectReason", tag="8")]
4753 pub reconnect_reason: i32,
4754 #[prost(string, tag="9")]
4755 pub participant_sid: ::prost::alloc::string::String,
4756 #[prost(message, optional, tag="10")]
4757 pub sync_state: ::core::option::Option<SyncState>,
4758}
4759#[allow(clippy::derive_partial_eq_without_eq)]
4760#[derive(Clone, PartialEq, ::prost::Message)]
4761pub struct WrappedJoinRequest {
4762 #[prost(enumeration="wrapped_join_request::Compression", tag="1")]
4763 pub compression: i32,
4764 #[prost(bytes="vec", tag="2")]
4766 pub join_request: ::prost::alloc::vec::Vec<u8>,
4767}
4768pub mod wrapped_join_request {
4770 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4771 #[repr(i32)]
4772 pub enum Compression {
4773 None = 0,
4774 Gzip = 1,
4775 }
4776 impl Compression {
4777 pub fn as_str_name(&self) -> &'static str {
4782 match self {
4783 Compression::None => "NONE",
4784 Compression::Gzip => "GZIP",
4785 }
4786 }
4787 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4789 match value {
4790 "NONE" => Some(Self::None),
4791 "GZIP" => Some(Self::Gzip),
4792 _ => None,
4793 }
4794 }
4795 }
4796}
4797#[allow(clippy::derive_partial_eq_without_eq)]
4798#[derive(Clone, PartialEq, ::prost::Message)]
4799pub struct MediaSectionsRequirement {
4800 #[prost(uint32, tag="1")]
4801 pub num_audios: u32,
4802 #[prost(uint32, tag="2")]
4803 pub num_videos: u32,
4804}
4805#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4806#[repr(i32)]
4807pub enum SignalTarget {
4808 Publisher = 0,
4809 Subscriber = 1,
4810}
4811impl SignalTarget {
4812 pub fn as_str_name(&self) -> &'static str {
4817 match self {
4818 SignalTarget::Publisher => "PUBLISHER",
4819 SignalTarget::Subscriber => "SUBSCRIBER",
4820 }
4821 }
4822 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4824 match value {
4825 "PUBLISHER" => Some(Self::Publisher),
4826 "SUBSCRIBER" => Some(Self::Subscriber),
4827 _ => None,
4828 }
4829 }
4830}
4831#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4832#[repr(i32)]
4833pub enum StreamState {
4834 Active = 0,
4835 Paused = 1,
4836}
4837impl StreamState {
4838 pub fn as_str_name(&self) -> &'static str {
4843 match self {
4844 StreamState::Active => "ACTIVE",
4845 StreamState::Paused => "PAUSED",
4846 }
4847 }
4848 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4850 match value {
4851 "ACTIVE" => Some(Self::Active),
4852 "PAUSED" => Some(Self::Paused),
4853 _ => None,
4854 }
4855 }
4856}
4857#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4858#[repr(i32)]
4859pub enum CandidateProtocol {
4860 Udp = 0,
4861 Tcp = 1,
4862 Tls = 2,
4863}
4864impl CandidateProtocol {
4865 pub fn as_str_name(&self) -> &'static str {
4870 match self {
4871 CandidateProtocol::Udp => "UDP",
4872 CandidateProtocol::Tcp => "TCP",
4873 CandidateProtocol::Tls => "TLS",
4874 }
4875 }
4876 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4878 match value {
4879 "UDP" => Some(Self::Udp),
4880 "TCP" => Some(Self::Tcp),
4881 "TLS" => Some(Self::Tls),
4882 _ => None,
4883 }
4884 }
4885}
4886#[allow(clippy::derive_partial_eq_without_eq)]
4887#[derive(Clone, PartialEq, ::prost::Message)]
4888pub struct Job {
4889 #[prost(string, tag="1")]
4890 pub id: ::prost::alloc::string::String,
4891 #[prost(string, tag="9")]
4892 pub dispatch_id: ::prost::alloc::string::String,
4893 #[prost(enumeration="JobType", tag="2")]
4894 pub r#type: i32,
4895 #[prost(message, optional, tag="3")]
4896 pub room: ::core::option::Option<Room>,
4897 #[prost(message, optional, tag="4")]
4898 pub participant: ::core::option::Option<ParticipantInfo>,
4899 #[deprecated]
4900 #[prost(string, tag="5")]
4901 pub namespace: ::prost::alloc::string::String,
4902 #[prost(string, tag="6")]
4903 pub metadata: ::prost::alloc::string::String,
4904 #[prost(string, tag="7")]
4905 pub agent_name: ::prost::alloc::string::String,
4906 #[prost(message, optional, tag="8")]
4907 pub state: ::core::option::Option<JobState>,
4908 #[prost(bool, tag="10")]
4909 pub enable_recording: bool,
4910 #[prost(string, tag="11")]
4911 pub deployment: ::prost::alloc::string::String,
4912 #[prost(map="string, string", tag="12")]
4913 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4914}
4915#[allow(clippy::derive_partial_eq_without_eq)]
4916#[derive(Clone, PartialEq, ::prost::Message)]
4917pub struct JobState {
4918 #[prost(enumeration="JobStatus", tag="1")]
4919 pub status: i32,
4920 #[prost(string, tag="2")]
4921 pub error: ::prost::alloc::string::String,
4922 #[prost(int64, tag="3")]
4923 pub started_at: i64,
4924 #[prost(int64, tag="4")]
4925 pub ended_at: i64,
4926 #[prost(int64, tag="5")]
4927 pub updated_at: i64,
4928 #[prost(string, tag="6")]
4929 pub participant_identity: ::prost::alloc::string::String,
4930 #[prost(string, tag="7")]
4931 pub worker_id: ::prost::alloc::string::String,
4932 #[prost(string, tag="8")]
4933 pub agent_id: ::prost::alloc::string::String,
4934}
4935#[allow(clippy::derive_partial_eq_without_eq)]
4937#[derive(Clone, PartialEq, ::prost::Message)]
4938pub struct WorkerMessage {
4939 #[prost(oneof="worker_message::Message", tags="1, 2, 3, 4, 5, 6, 7")]
4940 pub message: ::core::option::Option<worker_message::Message>,
4941}
4942pub mod worker_message {
4944 #[allow(clippy::derive_partial_eq_without_eq)]
4945#[derive(Clone, PartialEq, ::prost::Oneof)]
4946 pub enum Message {
4947 #[prost(message, tag="1")]
4949 Register(super::RegisterWorkerRequest),
4950 #[prost(message, tag="2")]
4952 Availability(super::AvailabilityResponse),
4953 #[prost(message, tag="3")]
4955 UpdateWorker(super::UpdateWorkerStatus),
4956 #[prost(message, tag="4")]
4958 UpdateJob(super::UpdateJobStatus),
4959 #[prost(message, tag="5")]
4960 Ping(super::WorkerPing),
4961 #[prost(message, tag="6")]
4962 SimulateJob(super::SimulateJobRequest),
4963 #[prost(message, tag="7")]
4964 MigrateJob(super::MigrateJobRequest),
4965 }
4966}
4967#[allow(clippy::derive_partial_eq_without_eq)]
4969#[derive(Clone, PartialEq, ::prost::Message)]
4970pub struct ServerMessage {
4971 #[prost(oneof="server_message::Message", tags="1, 2, 3, 5, 4")]
4972 pub message: ::core::option::Option<server_message::Message>,
4973}
4974pub mod server_message {
4976 #[allow(clippy::derive_partial_eq_without_eq)]
4977#[derive(Clone, PartialEq, ::prost::Oneof)]
4978 pub enum Message {
4979 #[prost(message, tag="1")]
4981 Register(super::RegisterWorkerResponse),
4982 #[prost(message, tag="2")]
4984 Availability(super::AvailabilityRequest),
4985 #[prost(message, tag="3")]
4986 Assignment(super::JobAssignment),
4987 #[prost(message, tag="5")]
4988 Termination(super::JobTermination),
4989 #[prost(message, tag="4")]
4990 Pong(super::WorkerPong),
4991 }
4992}
4993#[allow(clippy::derive_partial_eq_without_eq)]
4994#[derive(Clone, PartialEq, ::prost::Message)]
4995pub struct SimulateJobRequest {
4996 #[prost(enumeration="JobType", tag="1")]
4997 pub r#type: i32,
4998 #[prost(message, optional, tag="2")]
4999 pub room: ::core::option::Option<Room>,
5000 #[prost(message, optional, tag="3")]
5001 pub participant: ::core::option::Option<ParticipantInfo>,
5002}
5003#[allow(clippy::derive_partial_eq_without_eq)]
5004#[derive(Clone, PartialEq, ::prost::Message)]
5005pub struct WorkerPing {
5006 #[prost(int64, tag="1")]
5007 pub timestamp: i64,
5008}
5009#[allow(clippy::derive_partial_eq_without_eq)]
5010#[derive(Clone, PartialEq, ::prost::Message)]
5011pub struct WorkerPong {
5012 #[prost(int64, tag="1")]
5013 pub last_timestamp: i64,
5014 #[prost(int64, tag="2")]
5015 pub timestamp: i64,
5016}
5017#[allow(clippy::derive_partial_eq_without_eq)]
5018#[derive(Clone, PartialEq, ::prost::Message)]
5019pub struct RegisterWorkerRequest {
5020 #[prost(enumeration="JobType", tag="1")]
5021 pub r#type: i32,
5022 #[prost(string, tag="8")]
5023 pub agent_name: ::prost::alloc::string::String,
5024 #[prost(string, tag="3")]
5026 pub version: ::prost::alloc::string::String,
5027 #[prost(uint32, tag="5")]
5029 pub ping_interval: u32,
5030 #[prost(string, optional, tag="6")]
5031 pub namespace: ::core::option::Option<::prost::alloc::string::String>,
5032 #[prost(message, optional, tag="7")]
5033 pub allowed_permissions: ::core::option::Option<ParticipantPermission>,
5034 #[prost(string, tag="9")]
5035 pub deployment: ::prost::alloc::string::String,
5036}
5037#[allow(clippy::derive_partial_eq_without_eq)]
5038#[derive(Clone, PartialEq, ::prost::Message)]
5039pub struct RegisterWorkerResponse {
5040 #[prost(string, tag="1")]
5041 pub worker_id: ::prost::alloc::string::String,
5042 #[prost(message, optional, tag="3")]
5043 pub server_info: ::core::option::Option<ServerInfo>,
5044}
5045#[allow(clippy::derive_partial_eq_without_eq)]
5046#[derive(Clone, PartialEq, ::prost::Message)]
5047pub struct MigrateJobRequest {
5048 #[prost(string, repeated, tag="2")]
5050 pub job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5051}
5052#[allow(clippy::derive_partial_eq_without_eq)]
5053#[derive(Clone, PartialEq, ::prost::Message)]
5054pub struct AvailabilityRequest {
5055 #[prost(message, optional, tag="1")]
5056 pub job: ::core::option::Option<Job>,
5057 #[prost(bool, tag="2")]
5060 pub resuming: bool,
5061}
5062#[allow(clippy::derive_partial_eq_without_eq)]
5063#[derive(Clone, PartialEq, ::prost::Message)]
5064pub struct AvailabilityResponse {
5065 #[prost(string, tag="1")]
5066 pub job_id: ::prost::alloc::string::String,
5067 #[prost(bool, tag="2")]
5068 pub available: bool,
5069 #[prost(bool, tag="3")]
5070 pub supports_resume: bool,
5071 #[prost(bool, tag="8")]
5072 pub terminate: bool,
5073 #[prost(string, tag="4")]
5074 pub participant_name: ::prost::alloc::string::String,
5075 #[prost(string, tag="5")]
5076 pub participant_identity: ::prost::alloc::string::String,
5077 #[prost(string, tag="6")]
5078 pub participant_metadata: ::prost::alloc::string::String,
5079 #[prost(map="string, string", tag="7")]
5081 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5082}
5083#[allow(clippy::derive_partial_eq_without_eq)]
5084#[derive(Clone, PartialEq, ::prost::Message)]
5085pub struct UpdateJobStatus {
5086 #[prost(string, tag="1")]
5087 pub job_id: ::prost::alloc::string::String,
5088 #[prost(enumeration="JobStatus", tag="2")]
5090 pub status: i32,
5091 #[prost(string, tag="3")]
5093 pub error: ::prost::alloc::string::String,
5094}
5095#[allow(clippy::derive_partial_eq_without_eq)]
5096#[derive(Clone, PartialEq, ::prost::Message)]
5097pub struct UpdateWorkerStatus {
5098 #[prost(enumeration="WorkerStatus", optional, tag="1")]
5099 pub status: ::core::option::Option<i32>,
5100 #[prost(float, tag="3")]
5102 pub load: f32,
5103 #[prost(uint32, tag="4")]
5104 pub job_count: u32,
5105}
5106#[allow(clippy::derive_partial_eq_without_eq)]
5107#[derive(Clone, PartialEq, ::prost::Message)]
5108pub struct JobAssignment {
5109 #[prost(message, optional, tag="1")]
5110 pub job: ::core::option::Option<Job>,
5111 #[prost(string, optional, tag="2")]
5112 pub url: ::core::option::Option<::prost::alloc::string::String>,
5113 #[prost(string, tag="3")]
5114 pub token: ::prost::alloc::string::String,
5115}
5116#[allow(clippy::derive_partial_eq_without_eq)]
5117#[derive(Clone, PartialEq, ::prost::Message)]
5118pub struct JobTermination {
5119 #[prost(string, tag="1")]
5120 pub job_id: ::prost::alloc::string::String,
5121}
5122#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5123#[repr(i32)]
5124pub enum JobType {
5125 JtRoom = 0,
5126 JtPublisher = 1,
5127 JtParticipant = 2,
5128}
5129impl JobType {
5130 pub fn as_str_name(&self) -> &'static str {
5135 match self {
5136 JobType::JtRoom => "JT_ROOM",
5137 JobType::JtPublisher => "JT_PUBLISHER",
5138 JobType::JtParticipant => "JT_PARTICIPANT",
5139 }
5140 }
5141 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5143 match value {
5144 "JT_ROOM" => Some(Self::JtRoom),
5145 "JT_PUBLISHER" => Some(Self::JtPublisher),
5146 "JT_PARTICIPANT" => Some(Self::JtParticipant),
5147 _ => None,
5148 }
5149 }
5150}
5151#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5152#[repr(i32)]
5153pub enum WorkerStatus {
5154 WsAvailable = 0,
5155 WsFull = 1,
5156}
5157impl WorkerStatus {
5158 pub fn as_str_name(&self) -> &'static str {
5163 match self {
5164 WorkerStatus::WsAvailable => "WS_AVAILABLE",
5165 WorkerStatus::WsFull => "WS_FULL",
5166 }
5167 }
5168 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5170 match value {
5171 "WS_AVAILABLE" => Some(Self::WsAvailable),
5172 "WS_FULL" => Some(Self::WsFull),
5173 _ => None,
5174 }
5175 }
5176}
5177#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5178#[repr(i32)]
5179pub enum JobStatus {
5180 JsPending = 0,
5181 JsRunning = 1,
5182 JsSuccess = 2,
5183 JsFailed = 3,
5184}
5185impl JobStatus {
5186 pub fn as_str_name(&self) -> &'static str {
5191 match self {
5192 JobStatus::JsPending => "JS_PENDING",
5193 JobStatus::JsRunning => "JS_RUNNING",
5194 JobStatus::JsSuccess => "JS_SUCCESS",
5195 JobStatus::JsFailed => "JS_FAILED",
5196 }
5197 }
5198 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5200 match value {
5201 "JS_PENDING" => Some(Self::JsPending),
5202 "JS_RUNNING" => Some(Self::JsRunning),
5203 "JS_SUCCESS" => Some(Self::JsSuccess),
5204 "JS_FAILED" => Some(Self::JsFailed),
5205 _ => None,
5206 }
5207 }
5208}
5209#[allow(clippy::derive_partial_eq_without_eq)]
5210#[derive(Clone, PartialEq, ::prost::Message)]
5211pub struct CreateAgentDispatchRequest {
5212 #[prost(string, tag="1")]
5213 pub agent_name: ::prost::alloc::string::String,
5214 #[prost(string, tag="2")]
5215 pub room: ::prost::alloc::string::String,
5216 #[prost(string, tag="3")]
5217 pub metadata: ::prost::alloc::string::String,
5218 #[prost(enumeration="JobRestartPolicy", tag="4")]
5220 pub restart_policy: i32,
5221 #[prost(string, tag="5")]
5222 pub deployment: ::prost::alloc::string::String,
5223 #[prost(map="string, string", tag="6")]
5224 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5225}
5226#[allow(clippy::derive_partial_eq_without_eq)]
5227#[derive(Clone, PartialEq, ::prost::Message)]
5228pub struct RoomAgentDispatch {
5229 #[prost(string, tag="1")]
5230 pub agent_name: ::prost::alloc::string::String,
5231 #[prost(string, tag="2")]
5232 pub metadata: ::prost::alloc::string::String,
5233 #[prost(enumeration="JobRestartPolicy", tag="3")]
5235 pub restart_policy: i32,
5236 #[prost(string, tag="4")]
5237 pub deployment: ::prost::alloc::string::String,
5238 #[prost(map="string, string", tag="5")]
5239 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5240}
5241#[allow(clippy::derive_partial_eq_without_eq)]
5242#[derive(Clone, PartialEq, ::prost::Message)]
5243pub struct DeleteAgentDispatchRequest {
5244 #[prost(string, tag="1")]
5245 pub dispatch_id: ::prost::alloc::string::String,
5246 #[prost(string, tag="2")]
5247 pub room: ::prost::alloc::string::String,
5248}
5249#[allow(clippy::derive_partial_eq_without_eq)]
5250#[derive(Clone, PartialEq, ::prost::Message)]
5251pub struct ListAgentDispatchRequest {
5252 #[prost(string, tag="1")]
5254 pub dispatch_id: ::prost::alloc::string::String,
5255 #[prost(string, tag="2")]
5257 pub room: ::prost::alloc::string::String,
5258}
5259#[allow(clippy::derive_partial_eq_without_eq)]
5260#[derive(Clone, PartialEq, ::prost::Message)]
5261pub struct ListAgentDispatchResponse {
5262 #[prost(message, repeated, tag="1")]
5263 pub agent_dispatches: ::prost::alloc::vec::Vec<AgentDispatch>,
5264}
5265#[allow(clippy::derive_partial_eq_without_eq)]
5266#[derive(Clone, PartialEq, ::prost::Message)]
5267pub struct AgentDispatch {
5268 #[prost(string, tag="1")]
5269 pub id: ::prost::alloc::string::String,
5270 #[prost(string, tag="2")]
5271 pub agent_name: ::prost::alloc::string::String,
5272 #[prost(string, tag="3")]
5273 pub room: ::prost::alloc::string::String,
5274 #[prost(string, tag="4")]
5275 pub metadata: ::prost::alloc::string::String,
5276 #[prost(message, optional, tag="5")]
5277 pub state: ::core::option::Option<AgentDispatchState>,
5278 #[prost(enumeration="JobRestartPolicy", tag="6")]
5280 pub restart_policy: i32,
5281 #[prost(string, tag="7")]
5282 pub deployment: ::prost::alloc::string::String,
5283 #[prost(map="string, string", tag="8")]
5284 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5285}
5286#[allow(clippy::derive_partial_eq_without_eq)]
5287#[derive(Clone, PartialEq, ::prost::Message)]
5288pub struct AgentDispatchState {
5289 #[prost(message, repeated, tag="1")]
5292 pub jobs: ::prost::alloc::vec::Vec<Job>,
5293 #[prost(int64, tag="2")]
5294 pub created_at: i64,
5295 #[prost(int64, tag="3")]
5296 pub deleted_at: i64,
5297}
5298#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5299#[repr(i32)]
5300pub enum JobRestartPolicy {
5301 JrpOnFailure = 0,
5303 JrpNever = 1,
5305}
5306impl JobRestartPolicy {
5307 pub fn as_str_name(&self) -> &'static str {
5312 match self {
5313 JobRestartPolicy::JrpOnFailure => "JRP_ON_FAILURE",
5314 JobRestartPolicy::JrpNever => "JRP_NEVER",
5315 }
5316 }
5317 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5319 match value {
5320 "JRP_ON_FAILURE" => Some(Self::JrpOnFailure),
5321 "JRP_NEVER" => Some(Self::JrpNever),
5322 _ => None,
5323 }
5324 }
5325}
5326#[allow(clippy::derive_partial_eq_without_eq)]
5327#[derive(Clone, PartialEq, ::prost::Message)]
5328pub struct CreateRoomRequest {
5329 #[prost(string, tag="1")]
5331 pub name: ::prost::alloc::string::String,
5332 #[prost(string, tag="12")]
5334 pub room_preset: ::prost::alloc::string::String,
5335 #[prost(uint32, tag="2")]
5337 pub empty_timeout: u32,
5338 #[prost(uint32, tag="10")]
5340 pub departure_timeout: u32,
5341 #[prost(uint32, tag="3")]
5343 pub max_participants: u32,
5344 #[prost(string, tag="4")]
5346 pub node_id: ::prost::alloc::string::String,
5347 #[prost(string, tag="5")]
5349 pub metadata: ::prost::alloc::string::String,
5350 #[prost(map="string, string", tag="15")]
5352 pub tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5353 #[prost(message, optional, tag="6")]
5355 pub egress: ::core::option::Option<RoomEgress>,
5356 #[prost(uint32, tag="7")]
5358 pub min_playout_delay: u32,
5359 #[prost(uint32, tag="8")]
5360 pub max_playout_delay: u32,
5361 #[prost(bool, tag="9")]
5364 pub sync_streams: bool,
5365 #[prost(bool, tag="13")]
5367 pub replay_enabled: bool,
5368 #[prost(message, repeated, tag="14")]
5370 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5371}
5372#[allow(clippy::derive_partial_eq_without_eq)]
5373#[derive(Clone, PartialEq, ::prost::Message)]
5374pub struct RoomEgress {
5375 #[prost(message, optional, tag="1")]
5376 pub room: ::core::option::Option<RoomCompositeEgressRequest>,
5377 #[prost(message, optional, tag="3")]
5378 pub participant: ::core::option::Option<AutoParticipantEgress>,
5379 #[prost(message, optional, tag="2")]
5380 pub tracks: ::core::option::Option<AutoTrackEgress>,
5381}
5382#[allow(clippy::derive_partial_eq_without_eq)]
5383#[derive(Clone, PartialEq, ::prost::Message)]
5384pub struct RoomAgent {
5385 #[prost(message, repeated, tag="1")]
5386 pub dispatches: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5387}
5388#[allow(clippy::derive_partial_eq_without_eq)]
5389#[derive(Clone, PartialEq, ::prost::Message)]
5390pub struct ListRoomsRequest {
5391 #[prost(string, repeated, tag="1")]
5393 pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5394}
5395#[allow(clippy::derive_partial_eq_without_eq)]
5396#[derive(Clone, PartialEq, ::prost::Message)]
5397pub struct ListRoomsResponse {
5398 #[prost(message, repeated, tag="1")]
5399 pub rooms: ::prost::alloc::vec::Vec<Room>,
5400}
5401#[allow(clippy::derive_partial_eq_without_eq)]
5402#[derive(Clone, PartialEq, ::prost::Message)]
5403pub struct DeleteRoomRequest {
5404 #[prost(string, tag="1")]
5406 pub room: ::prost::alloc::string::String,
5407}
5408#[allow(clippy::derive_partial_eq_without_eq)]
5409#[derive(Clone, PartialEq, ::prost::Message)]
5410pub struct DeleteRoomResponse {
5411}
5412#[allow(clippy::derive_partial_eq_without_eq)]
5413#[derive(Clone, PartialEq, ::prost::Message)]
5414pub struct ListParticipantsRequest {
5415 #[prost(string, tag="1")]
5417 pub room: ::prost::alloc::string::String,
5418}
5419#[allow(clippy::derive_partial_eq_without_eq)]
5420#[derive(Clone, PartialEq, ::prost::Message)]
5421pub struct ListParticipantsResponse {
5422 #[prost(message, repeated, tag="1")]
5423 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
5424}
5425#[allow(clippy::derive_partial_eq_without_eq)]
5426#[derive(Clone, PartialEq, ::prost::Message)]
5427pub struct RoomParticipantIdentity {
5428 #[prost(string, tag="1")]
5430 pub room: ::prost::alloc::string::String,
5431 #[prost(string, tag="2")]
5433 pub identity: ::prost::alloc::string::String,
5434 #[prost(int64, tag="3")]
5437 pub revoke_token_ts: i64,
5438}
5439#[allow(clippy::derive_partial_eq_without_eq)]
5440#[derive(Clone, PartialEq, ::prost::Message)]
5441pub struct RemoveParticipantResponse {
5442}
5443#[allow(clippy::derive_partial_eq_without_eq)]
5444#[derive(Clone, PartialEq, ::prost::Message)]
5445pub struct MuteRoomTrackRequest {
5446 #[prost(string, tag="1")]
5448 pub room: ::prost::alloc::string::String,
5449 #[prost(string, tag="2")]
5450 pub identity: ::prost::alloc::string::String,
5451 #[prost(string, tag="3")]
5453 pub track_sid: ::prost::alloc::string::String,
5454 #[prost(bool, tag="4")]
5456 pub muted: bool,
5457}
5458#[allow(clippy::derive_partial_eq_without_eq)]
5459#[derive(Clone, PartialEq, ::prost::Message)]
5460pub struct MuteRoomTrackResponse {
5461 #[prost(message, optional, tag="1")]
5462 pub track: ::core::option::Option<TrackInfo>,
5463}
5464#[allow(clippy::derive_partial_eq_without_eq)]
5465#[derive(Clone, PartialEq, ::prost::Message)]
5466pub struct UpdateParticipantRequest {
5467 #[prost(string, tag="1")]
5468 pub room: ::prost::alloc::string::String,
5469 #[prost(string, tag="2")]
5470 pub identity: ::prost::alloc::string::String,
5471 #[prost(string, tag="3")]
5473 pub metadata: ::prost::alloc::string::String,
5474 #[prost(message, optional, tag="4")]
5476 pub permission: ::core::option::Option<ParticipantPermission>,
5477 #[prost(string, tag="5")]
5479 pub name: ::prost::alloc::string::String,
5480 #[prost(map="string, string", tag="6")]
5483 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5484}
5485#[allow(clippy::derive_partial_eq_without_eq)]
5486#[derive(Clone, PartialEq, ::prost::Message)]
5487pub struct UpdateSubscriptionsRequest {
5488 #[prost(string, tag="1")]
5489 pub room: ::prost::alloc::string::String,
5490 #[prost(string, tag="2")]
5491 pub identity: ::prost::alloc::string::String,
5492 #[prost(string, repeated, tag="3")]
5494 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5495 #[prost(bool, tag="4")]
5497 pub subscribe: bool,
5498 #[prost(message, repeated, tag="5")]
5500 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
5501}
5502#[allow(clippy::derive_partial_eq_without_eq)]
5504#[derive(Clone, PartialEq, ::prost::Message)]
5505pub struct UpdateSubscriptionsResponse {
5506}
5507#[allow(clippy::derive_partial_eq_without_eq)]
5508#[derive(Clone, PartialEq, ::prost::Message)]
5509pub struct SendDataRequest {
5510 #[prost(string, tag="1")]
5511 pub room: ::prost::alloc::string::String,
5512 #[prost(bytes="vec", tag="2")]
5513 pub data: ::prost::alloc::vec::Vec<u8>,
5514 #[prost(enumeration="data_packet::Kind", tag="3")]
5515 pub kind: i32,
5516 #[deprecated]
5518 #[prost(string, repeated, tag="4")]
5519 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5520 #[prost(string, repeated, tag="6")]
5522 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5523 #[prost(string, optional, tag="5")]
5524 pub topic: ::core::option::Option<::prost::alloc::string::String>,
5525 #[prost(bytes="vec", tag="7")]
5527 pub nonce: ::prost::alloc::vec::Vec<u8>,
5528}
5529#[allow(clippy::derive_partial_eq_without_eq)]
5531#[derive(Clone, PartialEq, ::prost::Message)]
5532pub struct SendDataResponse {
5533}
5534#[allow(clippy::derive_partial_eq_without_eq)]
5535#[derive(Clone, PartialEq, ::prost::Message)]
5536pub struct UpdateRoomMetadataRequest {
5537 #[prost(string, tag="1")]
5538 pub room: ::prost::alloc::string::String,
5539 #[prost(string, tag="2")]
5541 pub metadata: ::prost::alloc::string::String,
5542}
5543#[allow(clippy::derive_partial_eq_without_eq)]
5544#[derive(Clone, PartialEq, ::prost::Message)]
5545pub struct RoomConfiguration {
5546 #[prost(string, tag="1")]
5548 pub name: ::prost::alloc::string::String,
5549 #[prost(uint32, tag="2")]
5551 pub empty_timeout: u32,
5552 #[prost(uint32, tag="3")]
5554 pub departure_timeout: u32,
5555 #[prost(uint32, tag="4")]
5557 pub max_participants: u32,
5558 #[prost(string, tag="11")]
5560 pub metadata: ::prost::alloc::string::String,
5561 #[prost(message, optional, tag="5")]
5563 pub egress: ::core::option::Option<RoomEgress>,
5564 #[prost(uint32, tag="7")]
5566 pub min_playout_delay: u32,
5567 #[prost(uint32, tag="8")]
5568 pub max_playout_delay: u32,
5569 #[prost(bool, tag="9")]
5572 pub sync_streams: bool,
5573 #[prost(message, repeated, tag="10")]
5575 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5576 #[prost(map="string, string", tag="12")]
5578 pub tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5579}
5580#[allow(clippy::derive_partial_eq_without_eq)]
5581#[derive(Clone, PartialEq, ::prost::Message)]
5582pub struct ForwardParticipantRequest {
5583 #[prost(string, tag="1")]
5585 pub room: ::prost::alloc::string::String,
5586 #[prost(string, tag="2")]
5588 pub identity: ::prost::alloc::string::String,
5589 #[prost(string, tag="3")]
5591 pub destination_room: ::prost::alloc::string::String,
5592}
5593#[allow(clippy::derive_partial_eq_without_eq)]
5594#[derive(Clone, PartialEq, ::prost::Message)]
5595pub struct ForwardParticipantResponse {
5596}
5597#[allow(clippy::derive_partial_eq_without_eq)]
5598#[derive(Clone, PartialEq, ::prost::Message)]
5599pub struct MoveParticipantRequest {
5600 #[prost(string, tag="1")]
5602 pub room: ::prost::alloc::string::String,
5603 #[prost(string, tag="2")]
5605 pub identity: ::prost::alloc::string::String,
5606 #[prost(string, tag="3")]
5608 pub destination_room: ::prost::alloc::string::String,
5609}
5610#[allow(clippy::derive_partial_eq_without_eq)]
5611#[derive(Clone, PartialEq, ::prost::Message)]
5612pub struct MoveParticipantResponse {
5613}
5614#[allow(clippy::derive_partial_eq_without_eq)]
5615#[derive(Clone, PartialEq, ::prost::Message)]
5616pub struct PerformRpcRequest {
5617 #[prost(string, tag="1")]
5618 pub room: ::prost::alloc::string::String,
5619 #[prost(string, tag="2")]
5620 pub destination_identity: ::prost::alloc::string::String,
5621 #[prost(string, tag="3")]
5622 pub method: ::prost::alloc::string::String,
5623 #[prost(string, tag="4")]
5624 pub payload: ::prost::alloc::string::String,
5625 #[prost(uint32, tag="5")]
5626 pub response_timeout_ms: u32,
5627}
5628#[allow(clippy::derive_partial_eq_without_eq)]
5629#[derive(Clone, PartialEq, ::prost::Message)]
5630pub struct PerformRpcResponse {
5631 #[prost(string, tag="1")]
5632 pub payload: ::prost::alloc::string::String,
5633}
5634#[allow(clippy::derive_partial_eq_without_eq)]
5635#[derive(Clone, PartialEq, ::prost::Message)]
5636pub struct CreateIngressRequest {
5637 #[prost(enumeration="IngressInput", tag="1")]
5638 pub input_type: i32,
5639 #[prost(string, tag="9")]
5641 pub url: ::prost::alloc::string::String,
5642 #[prost(string, tag="2")]
5644 pub name: ::prost::alloc::string::String,
5645 #[prost(string, tag="3")]
5647 pub room_name: ::prost::alloc::string::String,
5648 #[prost(string, tag="4")]
5650 pub participant_identity: ::prost::alloc::string::String,
5651 #[prost(string, tag="5")]
5653 pub participant_name: ::prost::alloc::string::String,
5654 #[prost(string, tag="10")]
5656 pub participant_metadata: ::prost::alloc::string::String,
5657 #[deprecated]
5659 #[prost(bool, tag="8")]
5660 pub bypass_transcoding: bool,
5661 #[prost(bool, optional, tag="11")]
5663 pub enable_transcoding: ::core::option::Option<bool>,
5664 #[prost(message, optional, tag="6")]
5665 pub audio: ::core::option::Option<IngressAudioOptions>,
5666 #[prost(message, optional, tag="7")]
5667 pub video: ::core::option::Option<IngressVideoOptions>,
5668 #[prost(bool, optional, tag="12")]
5670 pub enabled: ::core::option::Option<bool>,
5671}
5672#[allow(clippy::derive_partial_eq_without_eq)]
5673#[derive(Clone, PartialEq, ::prost::Message)]
5674pub struct IngressAudioOptions {
5675 #[prost(string, tag="1")]
5676 pub name: ::prost::alloc::string::String,
5677 #[prost(enumeration="TrackSource", tag="2")]
5678 pub source: i32,
5679 #[prost(oneof="ingress_audio_options::EncodingOptions", tags="3, 4")]
5680 pub encoding_options: ::core::option::Option<ingress_audio_options::EncodingOptions>,
5681}
5682pub mod ingress_audio_options {
5684 #[allow(clippy::derive_partial_eq_without_eq)]
5685#[derive(Clone, PartialEq, ::prost::Oneof)]
5686 pub enum EncodingOptions {
5687 #[prost(enumeration="super::IngressAudioEncodingPreset", tag="3")]
5688 Preset(i32),
5689 #[prost(message, tag="4")]
5690 Options(super::IngressAudioEncodingOptions),
5691 }
5692}
5693#[allow(clippy::derive_partial_eq_without_eq)]
5694#[derive(Clone, PartialEq, ::prost::Message)]
5695pub struct IngressVideoOptions {
5696 #[prost(string, tag="1")]
5697 pub name: ::prost::alloc::string::String,
5698 #[prost(enumeration="TrackSource", tag="2")]
5699 pub source: i32,
5700 #[prost(oneof="ingress_video_options::EncodingOptions", tags="3, 4")]
5701 pub encoding_options: ::core::option::Option<ingress_video_options::EncodingOptions>,
5702}
5703pub mod ingress_video_options {
5705 #[allow(clippy::derive_partial_eq_without_eq)]
5706#[derive(Clone, PartialEq, ::prost::Oneof)]
5707 pub enum EncodingOptions {
5708 #[prost(enumeration="super::IngressVideoEncodingPreset", tag="3")]
5709 Preset(i32),
5710 #[prost(message, tag="4")]
5711 Options(super::IngressVideoEncodingOptions),
5712 }
5713}
5714#[allow(clippy::derive_partial_eq_without_eq)]
5715#[derive(Clone, PartialEq, ::prost::Message)]
5716pub struct IngressAudioEncodingOptions {
5717 #[prost(enumeration="AudioCodec", tag="1")]
5719 pub audio_codec: i32,
5720 #[prost(uint32, tag="2")]
5721 pub bitrate: u32,
5722 #[prost(bool, tag="3")]
5723 pub disable_dtx: bool,
5724 #[prost(uint32, tag="4")]
5725 pub channels: u32,
5726}
5727#[allow(clippy::derive_partial_eq_without_eq)]
5728#[derive(Clone, PartialEq, ::prost::Message)]
5729pub struct IngressVideoEncodingOptions {
5730 #[prost(enumeration="VideoCodec", tag="1")]
5732 pub video_codec: i32,
5733 #[prost(double, tag="2")]
5734 pub frame_rate: f64,
5735 #[prost(message, repeated, tag="3")]
5737 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
5738}
5739#[allow(clippy::derive_partial_eq_without_eq)]
5740#[derive(Clone, PartialEq, ::prost::Message)]
5741pub struct IngressInfo {
5742 #[prost(string, tag="1")]
5743 pub ingress_id: ::prost::alloc::string::String,
5744 #[prost(string, tag="2")]
5745 pub name: ::prost::alloc::string::String,
5746 #[prost(string, tag="3")]
5747 pub stream_key: ::prost::alloc::string::String,
5748 #[prost(string, tag="4")]
5750 pub url: ::prost::alloc::string::String,
5751 #[prost(enumeration="IngressInput", tag="5")]
5755 pub input_type: i32,
5756 #[deprecated]
5757 #[prost(bool, tag="13")]
5758 pub bypass_transcoding: bool,
5759 #[prost(bool, optional, tag="15")]
5760 pub enable_transcoding: ::core::option::Option<bool>,
5761 #[prost(message, optional, tag="6")]
5762 pub audio: ::core::option::Option<IngressAudioOptions>,
5763 #[prost(message, optional, tag="7")]
5764 pub video: ::core::option::Option<IngressVideoOptions>,
5765 #[prost(string, tag="8")]
5766 pub room_name: ::prost::alloc::string::String,
5767 #[prost(string, tag="9")]
5768 pub participant_identity: ::prost::alloc::string::String,
5769 #[prost(string, tag="10")]
5770 pub participant_name: ::prost::alloc::string::String,
5771 #[prost(string, tag="14")]
5772 pub participant_metadata: ::prost::alloc::string::String,
5773 #[prost(bool, tag="11")]
5774 pub reusable: bool,
5775 #[prost(message, optional, tag="12")]
5777 pub state: ::core::option::Option<IngressState>,
5778 #[prost(bool, optional, tag="16")]
5780 pub enabled: ::core::option::Option<bool>,
5781}
5782#[allow(clippy::derive_partial_eq_without_eq)]
5783#[derive(Clone, PartialEq, ::prost::Message)]
5784pub struct IngressState {
5785 #[prost(enumeration="ingress_state::Status", tag="1")]
5786 pub status: i32,
5787 #[prost(string, tag="2")]
5789 pub error: ::prost::alloc::string::String,
5790 #[prost(message, optional, tag="3")]
5791 pub video: ::core::option::Option<InputVideoState>,
5792 #[prost(message, optional, tag="4")]
5793 pub audio: ::core::option::Option<InputAudioState>,
5794 #[prost(string, tag="5")]
5796 pub room_id: ::prost::alloc::string::String,
5797 #[prost(int64, tag="7")]
5798 pub started_at: i64,
5799 #[prost(int64, tag="8")]
5800 pub ended_at: i64,
5801 #[prost(int64, tag="10")]
5802 pub updated_at: i64,
5803 #[prost(string, tag="9")]
5804 pub resource_id: ::prost::alloc::string::String,
5805 #[prost(message, repeated, tag="6")]
5806 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
5807}
5808pub mod ingress_state {
5810 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5811 #[repr(i32)]
5812 pub enum Status {
5813 EndpointInactive = 0,
5814 EndpointBuffering = 1,
5815 EndpointPublishing = 2,
5816 EndpointError = 3,
5817 EndpointComplete = 4,
5818 }
5819 impl Status {
5820 pub fn as_str_name(&self) -> &'static str {
5825 match self {
5826 Status::EndpointInactive => "ENDPOINT_INACTIVE",
5827 Status::EndpointBuffering => "ENDPOINT_BUFFERING",
5828 Status::EndpointPublishing => "ENDPOINT_PUBLISHING",
5829 Status::EndpointError => "ENDPOINT_ERROR",
5830 Status::EndpointComplete => "ENDPOINT_COMPLETE",
5831 }
5832 }
5833 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5835 match value {
5836 "ENDPOINT_INACTIVE" => Some(Self::EndpointInactive),
5837 "ENDPOINT_BUFFERING" => Some(Self::EndpointBuffering),
5838 "ENDPOINT_PUBLISHING" => Some(Self::EndpointPublishing),
5839 "ENDPOINT_ERROR" => Some(Self::EndpointError),
5840 "ENDPOINT_COMPLETE" => Some(Self::EndpointComplete),
5841 _ => None,
5842 }
5843 }
5844 }
5845}
5846#[allow(clippy::derive_partial_eq_without_eq)]
5847#[derive(Clone, PartialEq, ::prost::Message)]
5848pub struct InputVideoState {
5849 #[prost(string, tag="1")]
5850 pub mime_type: ::prost::alloc::string::String,
5851 #[prost(uint32, tag="2")]
5852 pub average_bitrate: u32,
5853 #[prost(uint32, tag="3")]
5854 pub width: u32,
5855 #[prost(uint32, tag="4")]
5856 pub height: u32,
5857 #[prost(double, tag="5")]
5858 pub framerate: f64,
5859}
5860#[allow(clippy::derive_partial_eq_without_eq)]
5861#[derive(Clone, PartialEq, ::prost::Message)]
5862pub struct InputAudioState {
5863 #[prost(string, tag="1")]
5864 pub mime_type: ::prost::alloc::string::String,
5865 #[prost(uint32, tag="2")]
5866 pub average_bitrate: u32,
5867 #[prost(uint32, tag="3")]
5868 pub channels: u32,
5869 #[prost(uint32, tag="4")]
5870 pub sample_rate: u32,
5871}
5872#[allow(clippy::derive_partial_eq_without_eq)]
5873#[derive(Clone, PartialEq, ::prost::Message)]
5874pub struct UpdateIngressRequest {
5875 #[prost(string, tag="1")]
5876 pub ingress_id: ::prost::alloc::string::String,
5877 #[prost(string, tag="2")]
5878 pub name: ::prost::alloc::string::String,
5879 #[prost(string, tag="3")]
5880 pub room_name: ::prost::alloc::string::String,
5881 #[prost(string, tag="4")]
5882 pub participant_identity: ::prost::alloc::string::String,
5883 #[prost(string, tag="5")]
5884 pub participant_name: ::prost::alloc::string::String,
5885 #[prost(string, tag="9")]
5886 pub participant_metadata: ::prost::alloc::string::String,
5887 #[deprecated]
5888 #[prost(bool, optional, tag="8")]
5889 pub bypass_transcoding: ::core::option::Option<bool>,
5890 #[prost(bool, optional, tag="10")]
5891 pub enable_transcoding: ::core::option::Option<bool>,
5892 #[prost(message, optional, tag="6")]
5893 pub audio: ::core::option::Option<IngressAudioOptions>,
5894 #[prost(message, optional, tag="7")]
5895 pub video: ::core::option::Option<IngressVideoOptions>,
5896 #[prost(bool, optional, tag="11")]
5898 pub enabled: ::core::option::Option<bool>,
5899}
5900#[allow(clippy::derive_partial_eq_without_eq)]
5901#[derive(Clone, PartialEq, ::prost::Message)]
5902pub struct ListIngressRequest {
5903 #[prost(message, optional, tag="3")]
5904 pub page_token: ::core::option::Option<TokenPagination>,
5905 #[prost(string, tag="1")]
5909 pub room_name: ::prost::alloc::string::String,
5910 #[prost(string, tag="2")]
5912 pub ingress_id: ::prost::alloc::string::String,
5913}
5914#[allow(clippy::derive_partial_eq_without_eq)]
5915#[derive(Clone, PartialEq, ::prost::Message)]
5916pub struct ListIngressResponse {
5917 #[prost(message, optional, tag="2")]
5918 pub next_page_token: ::core::option::Option<TokenPagination>,
5919 #[prost(message, repeated, tag="1")]
5921 pub items: ::prost::alloc::vec::Vec<IngressInfo>,
5922}
5923#[allow(clippy::derive_partial_eq_without_eq)]
5924#[derive(Clone, PartialEq, ::prost::Message)]
5925pub struct DeleteIngressRequest {
5926 #[prost(string, tag="1")]
5927 pub ingress_id: ::prost::alloc::string::String,
5928}
5929#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5930#[repr(i32)]
5931pub enum IngressInput {
5932 RtmpInput = 0,
5933 WhipInput = 1,
5934 UrlInput = 2,
5936}
5937impl IngressInput {
5938 pub fn as_str_name(&self) -> &'static str {
5943 match self {
5944 IngressInput::RtmpInput => "RTMP_INPUT",
5945 IngressInput::WhipInput => "WHIP_INPUT",
5946 IngressInput::UrlInput => "URL_INPUT",
5947 }
5948 }
5949 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5951 match value {
5952 "RTMP_INPUT" => Some(Self::RtmpInput),
5953 "WHIP_INPUT" => Some(Self::WhipInput),
5954 "URL_INPUT" => Some(Self::UrlInput),
5955 _ => None,
5956 }
5957 }
5958}
5959#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5960#[repr(i32)]
5961pub enum IngressAudioEncodingPreset {
5962 OpusStereo96kbps = 0,
5964 OpusMono64kbs = 1,
5966}
5967impl IngressAudioEncodingPreset {
5968 pub fn as_str_name(&self) -> &'static str {
5973 match self {
5974 IngressAudioEncodingPreset::OpusStereo96kbps => "OPUS_STEREO_96KBPS",
5975 IngressAudioEncodingPreset::OpusMono64kbs => "OPUS_MONO_64KBS",
5976 }
5977 }
5978 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5980 match value {
5981 "OPUS_STEREO_96KBPS" => Some(Self::OpusStereo96kbps),
5982 "OPUS_MONO_64KBS" => Some(Self::OpusMono64kbs),
5983 _ => None,
5984 }
5985 }
5986}
5987#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5988#[repr(i32)]
5989pub enum IngressVideoEncodingPreset {
5990 H264720p30fps3Layers = 0,
5992 H2641080p30fps3Layers = 1,
5994 H264540p25fps2Layers = 2,
5996 H264720p30fps1Layer = 3,
5998 H2641080p30fps1Layer = 4,
6000 H264720p30fps3LayersHighMotion = 5,
6002 H2641080p30fps3LayersHighMotion = 6,
6004 H264540p25fps2LayersHighMotion = 7,
6006 H264720p30fps1LayerHighMotion = 8,
6008 H2641080p30fps1LayerHighMotion = 9,
6010}
6011impl IngressVideoEncodingPreset {
6012 pub fn as_str_name(&self) -> &'static str {
6017 match self {
6018 IngressVideoEncodingPreset::H264720p30fps3Layers => "H264_720P_30FPS_3_LAYERS",
6019 IngressVideoEncodingPreset::H2641080p30fps3Layers => "H264_1080P_30FPS_3_LAYERS",
6020 IngressVideoEncodingPreset::H264540p25fps2Layers => "H264_540P_25FPS_2_LAYERS",
6021 IngressVideoEncodingPreset::H264720p30fps1Layer => "H264_720P_30FPS_1_LAYER",
6022 IngressVideoEncodingPreset::H2641080p30fps1Layer => "H264_1080P_30FPS_1_LAYER",
6023 IngressVideoEncodingPreset::H264720p30fps3LayersHighMotion => "H264_720P_30FPS_3_LAYERS_HIGH_MOTION",
6024 IngressVideoEncodingPreset::H2641080p30fps3LayersHighMotion => "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION",
6025 IngressVideoEncodingPreset::H264540p25fps2LayersHighMotion => "H264_540P_25FPS_2_LAYERS_HIGH_MOTION",
6026 IngressVideoEncodingPreset::H264720p30fps1LayerHighMotion => "H264_720P_30FPS_1_LAYER_HIGH_MOTION",
6027 IngressVideoEncodingPreset::H2641080p30fps1LayerHighMotion => "H264_1080P_30FPS_1_LAYER_HIGH_MOTION",
6028 }
6029 }
6030 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6032 match value {
6033 "H264_720P_30FPS_3_LAYERS" => Some(Self::H264720p30fps3Layers),
6034 "H264_1080P_30FPS_3_LAYERS" => Some(Self::H2641080p30fps3Layers),
6035 "H264_540P_25FPS_2_LAYERS" => Some(Self::H264540p25fps2Layers),
6036 "H264_720P_30FPS_1_LAYER" => Some(Self::H264720p30fps1Layer),
6037 "H264_1080P_30FPS_1_LAYER" => Some(Self::H2641080p30fps1Layer),
6038 "H264_720P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H264720p30fps3LayersHighMotion),
6039 "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H2641080p30fps3LayersHighMotion),
6040 "H264_540P_25FPS_2_LAYERS_HIGH_MOTION" => Some(Self::H264540p25fps2LayersHighMotion),
6041 "H264_720P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H264720p30fps1LayerHighMotion),
6042 "H264_1080P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H2641080p30fps1LayerHighMotion),
6043 _ => None,
6044 }
6045 }
6046}
6047#[allow(clippy::derive_partial_eq_without_eq)]
6048#[derive(Clone, PartialEq, ::prost::Message)]
6049pub struct WebhookEvent {
6050 #[prost(string, tag="1")]
6054 pub event: ::prost::alloc::string::String,
6055 #[prost(message, optional, tag="2")]
6056 pub room: ::core::option::Option<Room>,
6057 #[prost(message, optional, tag="3")]
6059 pub participant: ::core::option::Option<ParticipantInfo>,
6060 #[prost(message, optional, tag="9")]
6062 pub egress_info: ::core::option::Option<EgressInfo>,
6063 #[prost(message, optional, tag="10")]
6065 pub ingress_info: ::core::option::Option<IngressInfo>,
6066 #[prost(message, optional, tag="8")]
6068 pub track: ::core::option::Option<TrackInfo>,
6069 #[prost(string, tag="6")]
6071 pub id: ::prost::alloc::string::String,
6072 #[prost(int64, tag="7")]
6074 pub created_at: i64,
6075 #[deprecated]
6076 #[prost(int32, tag="11")]
6077 pub num_dropped: i32,
6078}
6079#[allow(clippy::derive_partial_eq_without_eq)]
6081#[derive(Clone, PartialEq, ::prost::Message)]
6082pub struct SipStatus {
6083 #[prost(enumeration="SipStatusCode", tag="1")]
6084 pub code: i32,
6085 #[prost(string, tag="2")]
6086 pub status: ::prost::alloc::string::String,
6087}
6088#[allow(clippy::derive_partial_eq_without_eq)]
6089#[derive(Clone, PartialEq, ::prost::Message)]
6090pub struct CreateSipTrunkRequest {
6091 #[prost(string, repeated, tag="1")]
6094 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6095 #[prost(string, tag="2")]
6097 pub outbound_address: ::prost::alloc::string::String,
6098 #[prost(string, tag="3")]
6100 pub outbound_number: ::prost::alloc::string::String,
6101 #[deprecated]
6102 #[prost(string, repeated, tag="4")]
6103 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6104 #[prost(string, repeated, tag="9")]
6108 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6109 #[prost(string, tag="5")]
6112 pub inbound_username: ::prost::alloc::string::String,
6113 #[prost(string, tag="6")]
6114 pub inbound_password: ::prost::alloc::string::String,
6115 #[prost(string, tag="7")]
6116 pub outbound_username: ::prost::alloc::string::String,
6117 #[prost(string, tag="8")]
6118 pub outbound_password: ::prost::alloc::string::String,
6119 #[prost(string, tag="10")]
6121 pub name: ::prost::alloc::string::String,
6122 #[prost(string, tag="11")]
6124 pub metadata: ::prost::alloc::string::String,
6125}
6126#[allow(clippy::derive_partial_eq_without_eq)]
6127#[derive(Clone, PartialEq, ::prost::Message)]
6128pub struct SipCodec {
6129 #[prost(string, tag="1")]
6130 pub name: ::prost::alloc::string::String,
6131 #[prost(uint32, tag="2")]
6132 pub rate: u32,
6133}
6134#[allow(clippy::derive_partial_eq_without_eq)]
6135#[derive(Clone, PartialEq, ::prost::Message)]
6136pub struct SipMediaConfig {
6137 #[prost(bool, tag="1")]
6139 pub only_listed_codecs: bool,
6140 #[prost(message, repeated, tag="2")]
6142 pub codecs: ::prost::alloc::vec::Vec<SipCodec>,
6143 #[prost(enumeration="SipMediaEncryption", optional, tag="3")]
6144 pub encryption: ::core::option::Option<i32>,
6145 #[prost(message, optional, tag="4")]
6147 pub media_timeout: ::core::option::Option<::pbjson_types::Duration>,
6148}
6149#[allow(clippy::derive_partial_eq_without_eq)]
6150#[derive(Clone, PartialEq, ::prost::Message)]
6151pub struct ProviderInfo {
6152 #[prost(string, tag="1")]
6153 pub id: ::prost::alloc::string::String,
6154 #[prost(string, tag="2")]
6155 pub name: ::prost::alloc::string::String,
6156 #[prost(enumeration="ProviderType", tag="3")]
6157 pub r#type: i32,
6158 #[prost(bool, tag="4")]
6159 pub prevent_transfer: bool,
6160}
6161#[allow(clippy::derive_partial_eq_without_eq)]
6162#[derive(Clone, PartialEq, ::prost::Message)]
6163pub struct SipTrunkInfo {
6164 #[prost(string, tag="1")]
6165 pub sip_trunk_id: ::prost::alloc::string::String,
6166 #[prost(enumeration="sip_trunk_info::TrunkKind", tag="14")]
6167 pub kind: i32,
6168 #[prost(string, repeated, tag="2")]
6171 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6172 #[prost(string, tag="3")]
6174 pub outbound_address: ::prost::alloc::string::String,
6175 #[prost(string, tag="4")]
6177 pub outbound_number: ::prost::alloc::string::String,
6178 #[prost(enumeration="SipTransport", tag="13")]
6180 pub transport: i32,
6181 #[deprecated]
6182 #[prost(string, repeated, tag="5")]
6183 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6184 #[prost(string, repeated, tag="10")]
6188 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6189 #[prost(string, tag="6")]
6192 pub inbound_username: ::prost::alloc::string::String,
6193 #[prost(string, tag="7")]
6194 pub inbound_password: ::prost::alloc::string::String,
6195 #[prost(string, tag="8")]
6196 pub outbound_username: ::prost::alloc::string::String,
6197 #[prost(string, tag="9")]
6198 pub outbound_password: ::prost::alloc::string::String,
6199 #[prost(string, tag="11")]
6201 pub name: ::prost::alloc::string::String,
6202 #[prost(string, tag="12")]
6204 pub metadata: ::prost::alloc::string::String,
6205}
6206pub mod sip_trunk_info {
6208 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6209 #[repr(i32)]
6210 pub enum TrunkKind {
6211 TrunkLegacy = 0,
6212 TrunkInbound = 1,
6213 TrunkOutbound = 2,
6214 }
6215 impl TrunkKind {
6216 pub fn as_str_name(&self) -> &'static str {
6221 match self {
6222 TrunkKind::TrunkLegacy => "TRUNK_LEGACY",
6223 TrunkKind::TrunkInbound => "TRUNK_INBOUND",
6224 TrunkKind::TrunkOutbound => "TRUNK_OUTBOUND",
6225 }
6226 }
6227 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6229 match value {
6230 "TRUNK_LEGACY" => Some(Self::TrunkLegacy),
6231 "TRUNK_INBOUND" => Some(Self::TrunkInbound),
6232 "TRUNK_OUTBOUND" => Some(Self::TrunkOutbound),
6233 _ => None,
6234 }
6235 }
6236 }
6237}
6238#[allow(clippy::derive_partial_eq_without_eq)]
6239#[derive(Clone, PartialEq, ::prost::Message)]
6240pub struct CreateSipInboundTrunkRequest {
6241 #[prost(message, optional, tag="1")]
6243 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
6244}
6245#[allow(clippy::derive_partial_eq_without_eq)]
6246#[derive(Clone, PartialEq, ::prost::Message)]
6247pub struct UpdateSipInboundTrunkRequest {
6248 #[prost(string, tag="1")]
6249 pub sip_trunk_id: ::prost::alloc::string::String,
6250 #[prost(oneof="update_sip_inbound_trunk_request::Action", tags="2, 3")]
6251 pub action: ::core::option::Option<update_sip_inbound_trunk_request::Action>,
6252}
6253pub mod update_sip_inbound_trunk_request {
6255 #[allow(clippy::derive_partial_eq_without_eq)]
6256#[derive(Clone, PartialEq, ::prost::Oneof)]
6257 pub enum Action {
6258 #[prost(message, tag="2")]
6259 Replace(super::SipInboundTrunkInfo),
6260 #[prost(message, tag="3")]
6261 Update(super::SipInboundTrunkUpdate),
6262 }
6263}
6264#[allow(clippy::derive_partial_eq_without_eq)]
6265#[derive(Clone, PartialEq, ::prost::Message)]
6266pub struct SipInboundTrunkInfo {
6267 #[prost(string, tag="1")]
6268 pub sip_trunk_id: ::prost::alloc::string::String,
6269 #[prost(string, tag="2")]
6271 pub name: ::prost::alloc::string::String,
6272 #[prost(string, tag="3")]
6274 pub metadata: ::prost::alloc::string::String,
6275 #[prost(string, repeated, tag="4")]
6278 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6279 #[prost(string, repeated, tag="5")]
6282 pub allowed_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6283 #[prost(string, repeated, tag="6")]
6286 pub allowed_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6287 #[prost(string, tag="7")]
6290 pub auth_username: ::prost::alloc::string::String,
6291 #[prost(string, tag="8")]
6292 pub auth_password: ::prost::alloc::string::String,
6293 #[prost(string, tag="19")]
6294 pub auth_realm: ::prost::alloc::string::String,
6295 #[prost(map="string, string", tag="9")]
6297 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6298 #[prost(map="string, string", tag="10")]
6300 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6301 #[prost(map="string, string", tag="14")]
6304 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6305 #[prost(enumeration="SipHeaderOptions", tag="15")]
6312 pub include_headers: i32,
6313 #[prost(message, optional, tag="11")]
6315 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6316 #[prost(message, optional, tag="12")]
6318 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
6319 #[prost(bool, tag="13")]
6320 pub krisp_enabled: bool,
6321 #[deprecated]
6322 #[prost(enumeration="SipMediaEncryption", tag="16")]
6323 pub media_encryption: i32,
6324 #[prost(message, optional, tag="20")]
6325 pub media: ::core::option::Option<SipMediaConfig>,
6326 #[prost(message, optional, tag="17")]
6327 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6328 #[prost(message, optional, tag="18")]
6329 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6330}
6331#[allow(clippy::derive_partial_eq_without_eq)]
6332#[derive(Clone, PartialEq, ::prost::Message)]
6333pub struct SipInboundTrunkUpdate {
6334 #[prost(message, optional, tag="1")]
6335 pub numbers: ::core::option::Option<ListUpdate>,
6336 #[prost(message, optional, tag="2")]
6337 pub allowed_addresses: ::core::option::Option<ListUpdate>,
6338 #[prost(message, optional, tag="3")]
6339 pub allowed_numbers: ::core::option::Option<ListUpdate>,
6340 #[prost(string, optional, tag="4")]
6341 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
6342 #[prost(string, optional, tag="5")]
6343 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
6344 #[prost(string, optional, tag="9")]
6345 pub auth_realm: ::core::option::Option<::prost::alloc::string::String>,
6346 #[prost(string, optional, tag="6")]
6347 pub name: ::core::option::Option<::prost::alloc::string::String>,
6348 #[prost(string, optional, tag="7")]
6349 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6350 #[deprecated]
6351 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
6352 pub media_encryption: ::core::option::Option<i32>,
6353 #[prost(message, optional, tag="10")]
6354 pub media: ::core::option::Option<SipMediaConfig>,
6355}
6356#[allow(clippy::derive_partial_eq_without_eq)]
6357#[derive(Clone, PartialEq, ::prost::Message)]
6358pub struct CreateSipOutboundTrunkRequest {
6359 #[prost(message, optional, tag="1")]
6361 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
6362}
6363#[allow(clippy::derive_partial_eq_without_eq)]
6364#[derive(Clone, PartialEq, ::prost::Message)]
6365pub struct UpdateSipOutboundTrunkRequest {
6366 #[prost(string, tag="1")]
6367 pub sip_trunk_id: ::prost::alloc::string::String,
6368 #[prost(oneof="update_sip_outbound_trunk_request::Action", tags="2, 3")]
6369 pub action: ::core::option::Option<update_sip_outbound_trunk_request::Action>,
6370}
6371pub mod update_sip_outbound_trunk_request {
6373 #[allow(clippy::derive_partial_eq_without_eq)]
6374#[derive(Clone, PartialEq, ::prost::Oneof)]
6375 pub enum Action {
6376 #[prost(message, tag="2")]
6377 Replace(super::SipOutboundTrunkInfo),
6378 #[prost(message, tag="3")]
6379 Update(super::SipOutboundTrunkUpdate),
6380 }
6381}
6382#[allow(clippy::derive_partial_eq_without_eq)]
6383#[derive(Clone, PartialEq, ::prost::Message)]
6384pub struct SipOutboundTrunkInfo {
6385 #[prost(string, tag="1")]
6386 pub sip_trunk_id: ::prost::alloc::string::String,
6387 #[prost(string, tag="2")]
6389 pub name: ::prost::alloc::string::String,
6390 #[prost(string, tag="3")]
6392 pub metadata: ::prost::alloc::string::String,
6393 #[prost(string, tag="4")]
6396 pub address: ::prost::alloc::string::String,
6397 #[prost(string, tag="14")]
6399 pub destination_country: ::prost::alloc::string::String,
6400 #[prost(enumeration="SipTransport", tag="5")]
6402 pub transport: i32,
6403 #[prost(string, repeated, tag="6")]
6405 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6406 #[prost(string, tag="7")]
6409 pub auth_username: ::prost::alloc::string::String,
6410 #[prost(string, tag="8")]
6411 pub auth_password: ::prost::alloc::string::String,
6412 #[prost(map="string, string", tag="9")]
6415 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6416 #[prost(map="string, string", tag="10")]
6419 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6420 #[prost(map="string, string", tag="11")]
6423 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6424 #[prost(enumeration="SipHeaderOptions", tag="12")]
6431 pub include_headers: i32,
6432 #[deprecated]
6433 #[prost(enumeration="SipMediaEncryption", tag="13")]
6434 pub media_encryption: i32,
6435 #[prost(message, optional, tag="18")]
6436 pub media: ::core::option::Option<SipMediaConfig>,
6437 #[prost(string, tag="15")]
6441 pub from_host: ::prost::alloc::string::String,
6442 #[prost(message, optional, tag="16")]
6443 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6444 #[prost(message, optional, tag="17")]
6445 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6446}
6447#[allow(clippy::derive_partial_eq_without_eq)]
6448#[derive(Clone, PartialEq, ::prost::Message)]
6449pub struct SipOutboundTrunkUpdate {
6450 #[prost(string, optional, tag="1")]
6451 pub address: ::core::option::Option<::prost::alloc::string::String>,
6452 #[prost(enumeration="SipTransport", optional, tag="2")]
6453 pub transport: ::core::option::Option<i32>,
6454 #[prost(string, optional, tag="9")]
6455 pub destination_country: ::core::option::Option<::prost::alloc::string::String>,
6456 #[prost(message, optional, tag="3")]
6457 pub numbers: ::core::option::Option<ListUpdate>,
6458 #[prost(string, optional, tag="4")]
6459 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
6460 #[prost(string, optional, tag="5")]
6461 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
6462 #[prost(string, optional, tag="6")]
6463 pub name: ::core::option::Option<::prost::alloc::string::String>,
6464 #[prost(string, optional, tag="7")]
6465 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6466 #[deprecated]
6467 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
6468 pub media_encryption: ::core::option::Option<i32>,
6469 #[prost(message, optional, tag="11")]
6470 pub media: ::core::option::Option<SipMediaConfig>,
6471 #[prost(string, optional, tag="10")]
6472 pub from_host: ::core::option::Option<::prost::alloc::string::String>,
6473}
6474#[allow(clippy::derive_partial_eq_without_eq)]
6475#[derive(Clone, PartialEq, ::prost::Message)]
6476pub struct GetSipInboundTrunkRequest {
6477 #[prost(string, tag="1")]
6478 pub sip_trunk_id: ::prost::alloc::string::String,
6479}
6480#[allow(clippy::derive_partial_eq_without_eq)]
6481#[derive(Clone, PartialEq, ::prost::Message)]
6482pub struct GetSipInboundTrunkResponse {
6483 #[prost(message, optional, tag="1")]
6484 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
6485}
6486#[allow(clippy::derive_partial_eq_without_eq)]
6487#[derive(Clone, PartialEq, ::prost::Message)]
6488pub struct GetSipOutboundTrunkRequest {
6489 #[prost(string, tag="1")]
6490 pub sip_trunk_id: ::prost::alloc::string::String,
6491}
6492#[allow(clippy::derive_partial_eq_without_eq)]
6493#[derive(Clone, PartialEq, ::prost::Message)]
6494pub struct GetSipOutboundTrunkResponse {
6495 #[prost(message, optional, tag="1")]
6496 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
6497}
6498#[allow(clippy::derive_partial_eq_without_eq)]
6499#[derive(Clone, PartialEq, ::prost::Message)]
6500pub struct ListSipTrunkRequest {
6501 #[prost(message, optional, tag="1")]
6502 pub page: ::core::option::Option<Pagination>,
6503}
6504#[allow(clippy::derive_partial_eq_without_eq)]
6505#[derive(Clone, PartialEq, ::prost::Message)]
6506pub struct ListSipTrunkResponse {
6507 #[prost(message, repeated, tag="1")]
6508 pub items: ::prost::alloc::vec::Vec<SipTrunkInfo>,
6509}
6510#[allow(clippy::derive_partial_eq_without_eq)]
6512#[derive(Clone, PartialEq, ::prost::Message)]
6513pub struct ListSipInboundTrunkRequest {
6514 #[prost(message, optional, tag="3")]
6515 pub page: ::core::option::Option<Pagination>,
6516 #[prost(string, repeated, tag="1")]
6519 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6520 #[prost(string, repeated, tag="2")]
6522 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6523}
6524#[allow(clippy::derive_partial_eq_without_eq)]
6525#[derive(Clone, PartialEq, ::prost::Message)]
6526pub struct ListSipInboundTrunkResponse {
6527 #[prost(message, repeated, tag="1")]
6528 pub items: ::prost::alloc::vec::Vec<SipInboundTrunkInfo>,
6529}
6530#[allow(clippy::derive_partial_eq_without_eq)]
6532#[derive(Clone, PartialEq, ::prost::Message)]
6533pub struct ListSipOutboundTrunkRequest {
6534 #[prost(message, optional, tag="3")]
6535 pub page: ::core::option::Option<Pagination>,
6536 #[prost(string, repeated, tag="1")]
6539 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6540 #[prost(string, repeated, tag="2")]
6542 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6543}
6544#[allow(clippy::derive_partial_eq_without_eq)]
6545#[derive(Clone, PartialEq, ::prost::Message)]
6546pub struct ListSipOutboundTrunkResponse {
6547 #[prost(message, repeated, tag="1")]
6548 pub items: ::prost::alloc::vec::Vec<SipOutboundTrunkInfo>,
6549}
6550#[allow(clippy::derive_partial_eq_without_eq)]
6551#[derive(Clone, PartialEq, ::prost::Message)]
6552pub struct DeleteSipTrunkRequest {
6553 #[prost(string, tag="1")]
6554 pub sip_trunk_id: ::prost::alloc::string::String,
6555}
6556#[allow(clippy::derive_partial_eq_without_eq)]
6557#[derive(Clone, PartialEq, ::prost::Message)]
6558pub struct SipDispatchRuleDirect {
6559 #[prost(string, tag="1")]
6561 pub room_name: ::prost::alloc::string::String,
6562 #[prost(string, tag="2")]
6564 pub pin: ::prost::alloc::string::String,
6565}
6566#[allow(clippy::derive_partial_eq_without_eq)]
6567#[derive(Clone, PartialEq, ::prost::Message)]
6568pub struct SipDispatchRuleIndividual {
6569 #[prost(string, tag="1")]
6571 pub room_prefix: ::prost::alloc::string::String,
6572 #[prost(string, tag="2")]
6574 pub pin: ::prost::alloc::string::String,
6575 #[prost(bool, tag="3")]
6577 pub no_randomness: bool,
6578}
6579#[allow(clippy::derive_partial_eq_without_eq)]
6580#[derive(Clone, PartialEq, ::prost::Message)]
6581pub struct SipDispatchRuleCallee {
6582 #[prost(string, tag="1")]
6584 pub room_prefix: ::prost::alloc::string::String,
6585 #[prost(string, tag="2")]
6587 pub pin: ::prost::alloc::string::String,
6588 #[prost(bool, tag="3")]
6590 pub randomize: bool,
6591}
6592#[allow(clippy::derive_partial_eq_without_eq)]
6593#[derive(Clone, PartialEq, ::prost::Message)]
6594pub struct SipDispatchRule {
6595 #[prost(oneof="sip_dispatch_rule::Rule", tags="1, 2, 3")]
6596 pub rule: ::core::option::Option<sip_dispatch_rule::Rule>,
6597}
6598pub mod sip_dispatch_rule {
6600 #[allow(clippy::derive_partial_eq_without_eq)]
6601#[derive(Clone, PartialEq, ::prost::Oneof)]
6602 pub enum Rule {
6603 #[prost(message, tag="1")]
6607 DispatchRuleDirect(super::SipDispatchRuleDirect),
6608 #[prost(message, tag="2")]
6610 DispatchRuleIndividual(super::SipDispatchRuleIndividual),
6611 #[prost(message, tag="3")]
6613 DispatchRuleCallee(super::SipDispatchRuleCallee),
6614 }
6615}
6616#[allow(clippy::derive_partial_eq_without_eq)]
6617#[derive(Clone, PartialEq, ::prost::Message)]
6618pub struct CreateSipDispatchRuleRequest {
6619 #[prost(message, optional, tag="10")]
6621 pub dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
6622 #[deprecated]
6623 #[prost(message, optional, tag="1")]
6624 pub rule: ::core::option::Option<SipDispatchRule>,
6625 #[deprecated]
6628 #[prost(string, repeated, tag="2")]
6629 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6630 #[deprecated]
6633 #[prost(bool, tag="3")]
6634 pub hide_phone_number: bool,
6635 #[deprecated]
6637 #[prost(string, repeated, tag="6")]
6638 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6639 #[deprecated]
6641 #[prost(string, tag="4")]
6642 pub name: ::prost::alloc::string::String,
6643 #[deprecated]
6646 #[prost(string, tag="5")]
6647 pub metadata: ::prost::alloc::string::String,
6648 #[prost(map="string, string", tag="7")]
6651 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6652 #[deprecated]
6654 #[prost(string, tag="8")]
6655 pub room_preset: ::prost::alloc::string::String,
6656 #[deprecated]
6658 #[prost(message, optional, tag="9")]
6659 pub room_config: ::core::option::Option<RoomConfiguration>,
6660}
6661#[allow(clippy::derive_partial_eq_without_eq)]
6662#[derive(Clone, PartialEq, ::prost::Message)]
6663pub struct UpdateSipDispatchRuleRequest {
6664 #[prost(string, tag="1")]
6665 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6666 #[prost(oneof="update_sip_dispatch_rule_request::Action", tags="2, 3")]
6667 pub action: ::core::option::Option<update_sip_dispatch_rule_request::Action>,
6668}
6669pub mod update_sip_dispatch_rule_request {
6671 #[allow(clippy::derive_partial_eq_without_eq)]
6672#[derive(Clone, PartialEq, ::prost::Oneof)]
6673 pub enum Action {
6674 #[prost(message, tag="2")]
6675 Replace(super::SipDispatchRuleInfo),
6676 #[prost(message, tag="3")]
6677 Update(super::SipDispatchRuleUpdate),
6678 }
6679}
6680#[allow(clippy::derive_partial_eq_without_eq)]
6681#[derive(Clone, PartialEq, ::prost::Message)]
6682pub struct SipDispatchRuleInfo {
6683 #[prost(string, tag="1")]
6684 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6685 #[prost(message, optional, tag="2")]
6686 pub rule: ::core::option::Option<SipDispatchRule>,
6687 #[prost(string, repeated, tag="3")]
6688 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6689 #[prost(bool, tag="4")]
6690 pub hide_phone_number: bool,
6691 #[prost(string, repeated, tag="7")]
6693 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6694 #[prost(string, repeated, tag="13")]
6696 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6697 #[prost(string, tag="5")]
6699 pub name: ::prost::alloc::string::String,
6700 #[prost(string, tag="6")]
6703 pub metadata: ::prost::alloc::string::String,
6704 #[prost(map="string, string", tag="8")]
6707 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6708 #[prost(string, tag="9")]
6710 pub room_preset: ::prost::alloc::string::String,
6711 #[prost(message, optional, tag="10")]
6713 pub room_config: ::core::option::Option<RoomConfiguration>,
6714 #[prost(message, optional, tag="16")]
6715 pub media: ::core::option::Option<SipMediaConfig>,
6716 #[prost(bool, tag="11")]
6717 pub krisp_enabled: bool,
6718 #[deprecated]
6719 #[prost(enumeration="SipMediaEncryption", tag="12")]
6720 pub media_encryption: i32,
6721 #[prost(message, optional, tag="14")]
6722 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6723 #[prost(message, optional, tag="15")]
6724 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6725}
6726#[allow(clippy::derive_partial_eq_without_eq)]
6727#[derive(Clone, PartialEq, ::prost::Message)]
6728pub struct SipDispatchRuleUpdate {
6729 #[prost(message, optional, tag="1")]
6730 pub trunk_ids: ::core::option::Option<ListUpdate>,
6731 #[prost(message, optional, tag="2")]
6732 pub rule: ::core::option::Option<SipDispatchRule>,
6733 #[prost(string, optional, tag="3")]
6734 pub name: ::core::option::Option<::prost::alloc::string::String>,
6735 #[prost(string, optional, tag="4")]
6736 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6737 #[prost(map="string, string", tag="5")]
6738 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6739 #[deprecated]
6740 #[prost(enumeration="SipMediaEncryption", optional, tag="6")]
6741 pub media_encryption: ::core::option::Option<i32>,
6742 #[prost(message, optional, tag="7")]
6743 pub media: ::core::option::Option<SipMediaConfig>,
6744}
6745#[allow(clippy::derive_partial_eq_without_eq)]
6747#[derive(Clone, PartialEq, ::prost::Message)]
6748pub struct ListSipDispatchRuleRequest {
6749 #[prost(message, optional, tag="3")]
6750 pub page: ::core::option::Option<Pagination>,
6751 #[prost(string, repeated, tag="1")]
6754 pub dispatch_rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6755 #[prost(string, repeated, tag="2")]
6757 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6758}
6759#[allow(clippy::derive_partial_eq_without_eq)]
6760#[derive(Clone, PartialEq, ::prost::Message)]
6761pub struct ListSipDispatchRuleResponse {
6762 #[prost(message, repeated, tag="1")]
6763 pub items: ::prost::alloc::vec::Vec<SipDispatchRuleInfo>,
6764}
6765#[allow(clippy::derive_partial_eq_without_eq)]
6766#[derive(Clone, PartialEq, ::prost::Message)]
6767pub struct DeleteSipDispatchRuleRequest {
6768 #[prost(string, tag="1")]
6769 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6770}
6771#[allow(clippy::derive_partial_eq_without_eq)]
6772#[derive(Clone, PartialEq, ::prost::Message)]
6773pub struct SipOutboundConfig {
6774 #[prost(string, tag="1")]
6776 pub hostname: ::prost::alloc::string::String,
6777 #[prost(string, tag="7")]
6779 pub destination_country: ::prost::alloc::string::String,
6780 #[prost(enumeration="SipTransport", tag="2")]
6782 pub transport: i32,
6783 #[prost(string, tag="3")]
6786 pub auth_username: ::prost::alloc::string::String,
6787 #[prost(string, tag="4")]
6788 pub auth_password: ::prost::alloc::string::String,
6789 #[prost(map="string, string", tag="5")]
6792 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6793 #[prost(map="string, string", tag="6")]
6796 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6797 #[prost(string, tag="8")]
6799 pub from_host: ::prost::alloc::string::String,
6800}
6801#[allow(clippy::derive_partial_eq_without_eq)]
6804#[derive(Clone, PartialEq, ::prost::Message)]
6805pub struct CreateSipParticipantRequest {
6806 #[prost(string, tag="1")]
6808 pub sip_trunk_id: ::prost::alloc::string::String,
6809 #[prost(message, optional, tag="20")]
6810 pub trunk: ::core::option::Option<SipOutboundConfig>,
6811 #[prost(message, optional, tag="24")]
6813 pub sip_request_uri: ::core::option::Option<SipRequestDest>,
6814 #[prost(message, optional, tag="25")]
6816 pub sip_to_header: ::core::option::Option<SipNamedDest>,
6817 #[prost(message, optional, tag="26")]
6819 pub sip_from_header: ::core::option::Option<SipNamedDest>,
6820 #[prost(string, tag="2")]
6822 pub sip_call_to: ::prost::alloc::string::String,
6823 #[prost(string, tag="15")]
6825 pub sip_number: ::prost::alloc::string::String,
6826 #[prost(string, tag="3")]
6828 pub room_name: ::prost::alloc::string::String,
6829 #[prost(string, tag="4")]
6831 pub participant_identity: ::prost::alloc::string::String,
6832 #[prost(string, tag="7")]
6834 pub participant_name: ::prost::alloc::string::String,
6835 #[prost(string, tag="8")]
6837 pub participant_metadata: ::prost::alloc::string::String,
6838 #[prost(map="string, string", tag="9")]
6840 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6841 #[prost(string, tag="5")]
6844 pub dtmf: ::prost::alloc::string::String,
6845 #[deprecated]
6847 #[prost(bool, tag="6")]
6848 pub play_ringtone: bool,
6849 #[prost(bool, tag="13")]
6850 pub play_dialtone: bool,
6851 #[prost(bool, tag="10")]
6854 pub hide_phone_number: bool,
6855 #[prost(map="string, string", tag="16")]
6857 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6858 #[prost(enumeration="SipHeaderOptions", tag="17")]
6865 pub include_headers: i32,
6866 #[prost(message, optional, tag="11")]
6868 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6869 #[prost(message, optional, tag="12")]
6871 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
6872 #[prost(bool, tag="14")]
6874 pub krisp_enabled: bool,
6875 #[deprecated]
6876 #[prost(enumeration="SipMediaEncryption", tag="18")]
6877 pub media_encryption: i32,
6878 #[prost(message, optional, tag="23")]
6879 pub media: ::core::option::Option<SipMediaConfig>,
6880 #[prost(bool, tag="19")]
6882 pub wait_until_answered: bool,
6883 #[prost(string, optional, tag="21")]
6890 pub display_name: ::core::option::Option<::prost::alloc::string::String>,
6891 #[prost(message, optional, tag="22")]
6893 pub destination: ::core::option::Option<Destination>,
6894}
6895#[allow(clippy::derive_partial_eq_without_eq)]
6896#[derive(Clone, PartialEq, ::prost::Message)]
6897pub struct SipParticipantInfo {
6898 #[prost(string, tag="1")]
6899 pub participant_id: ::prost::alloc::string::String,
6900 #[prost(string, tag="2")]
6901 pub participant_identity: ::prost::alloc::string::String,
6902 #[prost(string, tag="3")]
6903 pub room_name: ::prost::alloc::string::String,
6904 #[prost(string, tag="4")]
6905 pub sip_call_id: ::prost::alloc::string::String,
6906}
6907#[allow(clippy::derive_partial_eq_without_eq)]
6908#[derive(Clone, PartialEq, ::prost::Message)]
6909pub struct TransferSipParticipantRequest {
6910 #[prost(string, tag="1")]
6911 pub participant_identity: ::prost::alloc::string::String,
6912 #[prost(string, tag="2")]
6913 pub room_name: ::prost::alloc::string::String,
6914 #[prost(string, tag="3")]
6915 pub transfer_to: ::prost::alloc::string::String,
6916 #[prost(bool, tag="4")]
6918 pub play_dialtone: bool,
6919 #[prost(map="string, string", tag="5")]
6921 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6922 #[prost(message, optional, tag="6")]
6924 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6925}
6926#[allow(clippy::derive_partial_eq_without_eq)]
6927#[derive(Clone, PartialEq, ::prost::Message)]
6928pub struct SipCallInfo {
6929 #[prost(string, tag="1")]
6930 pub call_id: ::prost::alloc::string::String,
6931 #[prost(string, tag="2")]
6932 pub trunk_id: ::prost::alloc::string::String,
6933 #[prost(string, tag="16")]
6934 pub dispatch_rule_id: ::prost::alloc::string::String,
6935 #[prost(string, tag="17")]
6936 pub region: ::prost::alloc::string::String,
6937 #[prost(string, tag="3")]
6938 pub room_name: ::prost::alloc::string::String,
6939 #[prost(string, tag="4")]
6941 pub room_id: ::prost::alloc::string::String,
6942 #[prost(string, tag="5")]
6943 pub participant_identity: ::prost::alloc::string::String,
6944 #[prost(map="string, string", tag="18")]
6945 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6946 #[prost(message, optional, tag="6")]
6947 pub from_uri: ::core::option::Option<SipUri>,
6948 #[prost(message, optional, tag="7")]
6949 pub to_uri: ::core::option::Option<SipUri>,
6950 #[deprecated]
6951 #[prost(int64, tag="9")]
6952 pub created_at: i64,
6953 #[deprecated]
6954 #[prost(int64, tag="10")]
6955 pub started_at: i64,
6956 #[deprecated]
6957 #[prost(int64, tag="11")]
6958 pub ended_at: i64,
6959 #[prost(enumeration="SipFeature", repeated, tag="14")]
6960 pub enabled_features: ::prost::alloc::vec::Vec<i32>,
6961 #[prost(enumeration="SipCallDirection", tag="15")]
6962 pub call_direction: i32,
6963 #[prost(enumeration="SipCallStatus", tag="8")]
6964 pub call_status: i32,
6965 #[prost(int64, tag="22")]
6966 pub created_at_ns: i64,
6967 #[prost(int64, tag="23")]
6968 pub started_at_ns: i64,
6969 #[prost(int64, tag="24")]
6970 pub ended_at_ns: i64,
6971 #[prost(enumeration="DisconnectReason", tag="12")]
6972 pub disconnect_reason: i32,
6973 #[prost(string, tag="13")]
6974 pub error: ::prost::alloc::string::String,
6975 #[prost(message, optional, tag="19")]
6976 pub call_status_code: ::core::option::Option<SipStatus>,
6977 #[prost(string, tag="20")]
6978 pub audio_codec: ::prost::alloc::string::String,
6979 #[prost(string, tag="21")]
6980 pub media_encryption: ::prost::alloc::string::String,
6981 #[prost(string, tag="25")]
6982 pub pcap_file_link: ::prost::alloc::string::String,
6983 #[prost(message, repeated, tag="26")]
6984 pub call_context: ::prost::alloc::vec::Vec<::pbjson_types::Any>,
6985 #[prost(message, optional, tag="27")]
6986 pub provider_info: ::core::option::Option<ProviderInfo>,
6987 #[prost(string, tag="28")]
6988 pub sip_call_id: ::prost::alloc::string::String,
6989}
6990#[allow(clippy::derive_partial_eq_without_eq)]
6991#[derive(Clone, PartialEq, ::prost::Message)]
6992pub struct SipTransferInfo {
6993 #[prost(string, tag="1")]
6994 pub transfer_id: ::prost::alloc::string::String,
6995 #[prost(string, tag="2")]
6996 pub call_id: ::prost::alloc::string::String,
6997 #[prost(string, tag="3")]
6998 pub transfer_to: ::prost::alloc::string::String,
6999 #[prost(int64, tag="4")]
7000 pub transfer_initiated_at_ns: i64,
7001 #[prost(int64, tag="5")]
7002 pub transfer_completed_at_ns: i64,
7003 #[prost(enumeration="SipTransferStatus", tag="6")]
7004 pub transfer_status: i32,
7005 #[prost(string, tag="7")]
7006 pub error: ::prost::alloc::string::String,
7007 #[prost(message, optional, tag="8")]
7008 pub transfer_status_code: ::core::option::Option<SipStatus>,
7009}
7010#[allow(clippy::derive_partial_eq_without_eq)]
7011#[derive(Clone, PartialEq, ::prost::Message)]
7012pub struct SipUri {
7013 #[prost(string, tag="1")]
7014 pub user: ::prost::alloc::string::String,
7015 #[prost(string, tag="2")]
7016 pub host: ::prost::alloc::string::String,
7017 #[prost(string, tag="3")]
7018 pub ip: ::prost::alloc::string::String,
7019 #[prost(uint32, tag="4")]
7020 pub port: u32,
7021 #[prost(enumeration="SipTransport", tag="5")]
7022 pub transport: i32,
7023}
7024#[allow(clippy::derive_partial_eq_without_eq)]
7025#[derive(Clone, PartialEq, ::prost::Message)]
7026pub struct SipRequestDest {
7027 #[prost(oneof="sip_request_dest::Uri", tags="1, 2")]
7028 pub uri: ::core::option::Option<sip_request_dest::Uri>,
7029}
7030pub mod sip_request_dest {
7032 #[allow(clippy::derive_partial_eq_without_eq)]
7033#[derive(Clone, PartialEq, ::prost::Oneof)]
7034 pub enum Uri {
7035 #[prost(string, tag="1")]
7037 Raw(::prost::alloc::string::String),
7038 #[prost(message, tag="2")]
7039 Values(super::SipUri),
7040 }
7041}
7042#[allow(clippy::derive_partial_eq_without_eq)]
7043#[derive(Clone, PartialEq, ::prost::Message)]
7044pub struct SipNamedDest {
7045 #[prost(string, tag="3")]
7046 pub display_name: ::prost::alloc::string::String,
7047 #[prost(oneof="sip_named_dest::Uri", tags="1, 2")]
7048 pub uri: ::core::option::Option<sip_named_dest::Uri>,
7049}
7050pub mod sip_named_dest {
7052 #[allow(clippy::derive_partial_eq_without_eq)]
7053#[derive(Clone, PartialEq, ::prost::Oneof)]
7054 pub enum Uri {
7055 #[prost(string, tag="1")]
7057 Raw(::prost::alloc::string::String),
7058 #[prost(message, tag="2")]
7059 Values(super::SipUri),
7060 }
7061}
7062#[allow(clippy::derive_partial_eq_without_eq)]
7063#[derive(Clone, PartialEq, ::prost::Message)]
7064pub struct Destination {
7065 #[prost(string, tag="1")]
7066 pub city: ::prost::alloc::string::String,
7067 #[prost(string, tag="2")]
7068 pub country: ::prost::alloc::string::String,
7069 #[prost(string, tag="3")]
7070 pub region: ::prost::alloc::string::String,
7071}
7072#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7073#[repr(i32)]
7074pub enum SipStatusCode {
7075 SipStatusUnknown = 0,
7076 SipStatusTrying = 100,
7077 SipStatusRinging = 180,
7078 SipStatusCallIsForwarded = 181,
7079 SipStatusQueued = 182,
7080 SipStatusSessionProgress = 183,
7081 SipStatusEarlyDialogTerminated = 199,
7082 SipStatusOk = 200,
7083 SipStatusAccepted = 202,
7084 SipStatusNoNotification = 204,
7085 SipStatusMultipleChoices = 300,
7086 SipStatusMovedPermanently = 301,
7087 SipStatusMovedTemporarily = 302,
7088 SipStatusUseProxy = 305,
7089 SipStatusAlternativeService = 380,
7090 SipStatusBadRequest = 400,
7091 SipStatusUnauthorized = 401,
7092 SipStatusPaymentRequired = 402,
7093 SipStatusForbidden = 403,
7094 SipStatusNotfound = 404,
7095 SipStatusMethodNotAllowed = 405,
7096 SipStatusNotAcceptable = 406,
7097 SipStatusProxyAuthRequired = 407,
7098 SipStatusRequestTimeout = 408,
7099 SipStatusConflict = 409,
7100 SipStatusGone = 410,
7101 SipStatusLengthRequired = 411,
7102 SipStatusConditionalRequestFailed = 412,
7103 SipStatusRequestEntityTooLarge = 413,
7104 SipStatusRequestUriTooLong = 414,
7105 SipStatusUnsupportedMediaType = 415,
7106 SipStatusRequestedRangeNotSatisfiable = 416,
7107 SipStatusUnknownResourcePriority = 417,
7108 SipStatusBadExtension = 420,
7109 SipStatusExtensionRequired = 421,
7110 SipStatusSessionIntervalTooSmall = 422,
7111 SipStatusIntervalTooBrief = 423,
7112 SipStatusBadLocationInformation = 424,
7113 SipStatusBadAlertMessage = 425,
7114 SipStatusUseIdentityHeader = 428,
7115 SipStatusProvideReferrerIdentity = 429,
7116 SipStatusFlowFailed = 430,
7117 SipStatusAnonymityDisallowed = 433,
7118 SipStatusBadIdentityInfo = 436,
7119 SipStatusUnsupportedCertificate = 437,
7120 SipStatusInvalidIdentityHeader = 438,
7121 SipStatusFirstHopLacksOutboundSupport = 439,
7122 SipStatusMaxBreadthExceeded = 440,
7123 SipStatusBadInfoPackage = 469,
7124 SipStatusConsentNeeded = 470,
7125 SipStatusTemporarilyUnavailable = 480,
7126 SipStatusCallTransactionDoesNotExists = 481,
7127 SipStatusLoopDetected = 482,
7128 SipStatusTooManyHops = 483,
7129 SipStatusAddressIncomplete = 484,
7130 SipStatusAmbiguous = 485,
7131 SipStatusBusyHere = 486,
7132 SipStatusRequestTerminated = 487,
7133 SipStatusNotAcceptableHere = 488,
7134 SipStatusBadEvent = 489,
7135 SipStatusRequestPending = 491,
7136 SipStatusUndecipherable = 493,
7137 SipStatusSecurityAgreementRequired = 494,
7138 SipStatusInternalServerError = 500,
7139 SipStatusNotImplemented = 501,
7140 SipStatusBadGateway = 502,
7141 SipStatusServiceUnavailable = 503,
7142 SipStatusGatewayTimeout = 504,
7143 SipStatusVersionNotSupported = 505,
7144 SipStatusMessageTooLarge = 513,
7145 SipStatusGlobalBusyEverywhere = 600,
7146 SipStatusGlobalDecline = 603,
7147 SipStatusGlobalDoesNotExistAnywhere = 604,
7148 SipStatusGlobalNotAcceptable = 606,
7149 SipStatusGlobalUnwanted = 607,
7150 SipStatusGlobalRejected = 608,
7151}
7152impl SipStatusCode {
7153 pub fn as_str_name(&self) -> &'static str {
7158 match self {
7159 SipStatusCode::SipStatusUnknown => "SIP_STATUS_UNKNOWN",
7160 SipStatusCode::SipStatusTrying => "SIP_STATUS_TRYING",
7161 SipStatusCode::SipStatusRinging => "SIP_STATUS_RINGING",
7162 SipStatusCode::SipStatusCallIsForwarded => "SIP_STATUS_CALL_IS_FORWARDED",
7163 SipStatusCode::SipStatusQueued => "SIP_STATUS_QUEUED",
7164 SipStatusCode::SipStatusSessionProgress => "SIP_STATUS_SESSION_PROGRESS",
7165 SipStatusCode::SipStatusEarlyDialogTerminated => "SIP_STATUS_EARLY_DIALOG_TERMINATED",
7166 SipStatusCode::SipStatusOk => "SIP_STATUS_OK",
7167 SipStatusCode::SipStatusAccepted => "SIP_STATUS_ACCEPTED",
7168 SipStatusCode::SipStatusNoNotification => "SIP_STATUS_NO_NOTIFICATION",
7169 SipStatusCode::SipStatusMultipleChoices => "SIP_STATUS_MULTIPLE_CHOICES",
7170 SipStatusCode::SipStatusMovedPermanently => "SIP_STATUS_MOVED_PERMANENTLY",
7171 SipStatusCode::SipStatusMovedTemporarily => "SIP_STATUS_MOVED_TEMPORARILY",
7172 SipStatusCode::SipStatusUseProxy => "SIP_STATUS_USE_PROXY",
7173 SipStatusCode::SipStatusAlternativeService => "SIP_STATUS_ALTERNATIVE_SERVICE",
7174 SipStatusCode::SipStatusBadRequest => "SIP_STATUS_BAD_REQUEST",
7175 SipStatusCode::SipStatusUnauthorized => "SIP_STATUS_UNAUTHORIZED",
7176 SipStatusCode::SipStatusPaymentRequired => "SIP_STATUS_PAYMENT_REQUIRED",
7177 SipStatusCode::SipStatusForbidden => "SIP_STATUS_FORBIDDEN",
7178 SipStatusCode::SipStatusNotfound => "SIP_STATUS_NOTFOUND",
7179 SipStatusCode::SipStatusMethodNotAllowed => "SIP_STATUS_METHOD_NOT_ALLOWED",
7180 SipStatusCode::SipStatusNotAcceptable => "SIP_STATUS_NOT_ACCEPTABLE",
7181 SipStatusCode::SipStatusProxyAuthRequired => "SIP_STATUS_PROXY_AUTH_REQUIRED",
7182 SipStatusCode::SipStatusRequestTimeout => "SIP_STATUS_REQUEST_TIMEOUT",
7183 SipStatusCode::SipStatusConflict => "SIP_STATUS_CONFLICT",
7184 SipStatusCode::SipStatusGone => "SIP_STATUS_GONE",
7185 SipStatusCode::SipStatusLengthRequired => "SIP_STATUS_LENGTH_REQUIRED",
7186 SipStatusCode::SipStatusConditionalRequestFailed => "SIP_STATUS_CONDITIONAL_REQUEST_FAILED",
7187 SipStatusCode::SipStatusRequestEntityTooLarge => "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE",
7188 SipStatusCode::SipStatusRequestUriTooLong => "SIP_STATUS_REQUEST_URI_TOO_LONG",
7189 SipStatusCode::SipStatusUnsupportedMediaType => "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE",
7190 SipStatusCode::SipStatusRequestedRangeNotSatisfiable => "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE",
7191 SipStatusCode::SipStatusUnknownResourcePriority => "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY",
7192 SipStatusCode::SipStatusBadExtension => "SIP_STATUS_BAD_EXTENSION",
7193 SipStatusCode::SipStatusExtensionRequired => "SIP_STATUS_EXTENSION_REQUIRED",
7194 SipStatusCode::SipStatusSessionIntervalTooSmall => "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL",
7195 SipStatusCode::SipStatusIntervalTooBrief => "SIP_STATUS_INTERVAL_TOO_BRIEF",
7196 SipStatusCode::SipStatusBadLocationInformation => "SIP_STATUS_BAD_LOCATION_INFORMATION",
7197 SipStatusCode::SipStatusBadAlertMessage => "SIP_STATUS_BAD_ALERT_MESSAGE",
7198 SipStatusCode::SipStatusUseIdentityHeader => "SIP_STATUS_USE_IDENTITY_HEADER",
7199 SipStatusCode::SipStatusProvideReferrerIdentity => "SIP_STATUS_PROVIDE_REFERRER_IDENTITY",
7200 SipStatusCode::SipStatusFlowFailed => "SIP_STATUS_FLOW_FAILED",
7201 SipStatusCode::SipStatusAnonymityDisallowed => "SIP_STATUS_ANONYMITY_DISALLOWED",
7202 SipStatusCode::SipStatusBadIdentityInfo => "SIP_STATUS_BAD_IDENTITY_INFO",
7203 SipStatusCode::SipStatusUnsupportedCertificate => "SIP_STATUS_UNSUPPORTED_CERTIFICATE",
7204 SipStatusCode::SipStatusInvalidIdentityHeader => "SIP_STATUS_INVALID_IDENTITY_HEADER",
7205 SipStatusCode::SipStatusFirstHopLacksOutboundSupport => "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT",
7206 SipStatusCode::SipStatusMaxBreadthExceeded => "SIP_STATUS_MAX_BREADTH_EXCEEDED",
7207 SipStatusCode::SipStatusBadInfoPackage => "SIP_STATUS_BAD_INFO_PACKAGE",
7208 SipStatusCode::SipStatusConsentNeeded => "SIP_STATUS_CONSENT_NEEDED",
7209 SipStatusCode::SipStatusTemporarilyUnavailable => "SIP_STATUS_TEMPORARILY_UNAVAILABLE",
7210 SipStatusCode::SipStatusCallTransactionDoesNotExists => "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS",
7211 SipStatusCode::SipStatusLoopDetected => "SIP_STATUS_LOOP_DETECTED",
7212 SipStatusCode::SipStatusTooManyHops => "SIP_STATUS_TOO_MANY_HOPS",
7213 SipStatusCode::SipStatusAddressIncomplete => "SIP_STATUS_ADDRESS_INCOMPLETE",
7214 SipStatusCode::SipStatusAmbiguous => "SIP_STATUS_AMBIGUOUS",
7215 SipStatusCode::SipStatusBusyHere => "SIP_STATUS_BUSY_HERE",
7216 SipStatusCode::SipStatusRequestTerminated => "SIP_STATUS_REQUEST_TERMINATED",
7217 SipStatusCode::SipStatusNotAcceptableHere => "SIP_STATUS_NOT_ACCEPTABLE_HERE",
7218 SipStatusCode::SipStatusBadEvent => "SIP_STATUS_BAD_EVENT",
7219 SipStatusCode::SipStatusRequestPending => "SIP_STATUS_REQUEST_PENDING",
7220 SipStatusCode::SipStatusUndecipherable => "SIP_STATUS_UNDECIPHERABLE",
7221 SipStatusCode::SipStatusSecurityAgreementRequired => "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED",
7222 SipStatusCode::SipStatusInternalServerError => "SIP_STATUS_INTERNAL_SERVER_ERROR",
7223 SipStatusCode::SipStatusNotImplemented => "SIP_STATUS_NOT_IMPLEMENTED",
7224 SipStatusCode::SipStatusBadGateway => "SIP_STATUS_BAD_GATEWAY",
7225 SipStatusCode::SipStatusServiceUnavailable => "SIP_STATUS_SERVICE_UNAVAILABLE",
7226 SipStatusCode::SipStatusGatewayTimeout => "SIP_STATUS_GATEWAY_TIMEOUT",
7227 SipStatusCode::SipStatusVersionNotSupported => "SIP_STATUS_VERSION_NOT_SUPPORTED",
7228 SipStatusCode::SipStatusMessageTooLarge => "SIP_STATUS_MESSAGE_TOO_LARGE",
7229 SipStatusCode::SipStatusGlobalBusyEverywhere => "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE",
7230 SipStatusCode::SipStatusGlobalDecline => "SIP_STATUS_GLOBAL_DECLINE",
7231 SipStatusCode::SipStatusGlobalDoesNotExistAnywhere => "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE",
7232 SipStatusCode::SipStatusGlobalNotAcceptable => "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE",
7233 SipStatusCode::SipStatusGlobalUnwanted => "SIP_STATUS_GLOBAL_UNWANTED",
7234 SipStatusCode::SipStatusGlobalRejected => "SIP_STATUS_GLOBAL_REJECTED",
7235 }
7236 }
7237 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7239 match value {
7240 "SIP_STATUS_UNKNOWN" => Some(Self::SipStatusUnknown),
7241 "SIP_STATUS_TRYING" => Some(Self::SipStatusTrying),
7242 "SIP_STATUS_RINGING" => Some(Self::SipStatusRinging),
7243 "SIP_STATUS_CALL_IS_FORWARDED" => Some(Self::SipStatusCallIsForwarded),
7244 "SIP_STATUS_QUEUED" => Some(Self::SipStatusQueued),
7245 "SIP_STATUS_SESSION_PROGRESS" => Some(Self::SipStatusSessionProgress),
7246 "SIP_STATUS_EARLY_DIALOG_TERMINATED" => Some(Self::SipStatusEarlyDialogTerminated),
7247 "SIP_STATUS_OK" => Some(Self::SipStatusOk),
7248 "SIP_STATUS_ACCEPTED" => Some(Self::SipStatusAccepted),
7249 "SIP_STATUS_NO_NOTIFICATION" => Some(Self::SipStatusNoNotification),
7250 "SIP_STATUS_MULTIPLE_CHOICES" => Some(Self::SipStatusMultipleChoices),
7251 "SIP_STATUS_MOVED_PERMANENTLY" => Some(Self::SipStatusMovedPermanently),
7252 "SIP_STATUS_MOVED_TEMPORARILY" => Some(Self::SipStatusMovedTemporarily),
7253 "SIP_STATUS_USE_PROXY" => Some(Self::SipStatusUseProxy),
7254 "SIP_STATUS_ALTERNATIVE_SERVICE" => Some(Self::SipStatusAlternativeService),
7255 "SIP_STATUS_BAD_REQUEST" => Some(Self::SipStatusBadRequest),
7256 "SIP_STATUS_UNAUTHORIZED" => Some(Self::SipStatusUnauthorized),
7257 "SIP_STATUS_PAYMENT_REQUIRED" => Some(Self::SipStatusPaymentRequired),
7258 "SIP_STATUS_FORBIDDEN" => Some(Self::SipStatusForbidden),
7259 "SIP_STATUS_NOTFOUND" => Some(Self::SipStatusNotfound),
7260 "SIP_STATUS_METHOD_NOT_ALLOWED" => Some(Self::SipStatusMethodNotAllowed),
7261 "SIP_STATUS_NOT_ACCEPTABLE" => Some(Self::SipStatusNotAcceptable),
7262 "SIP_STATUS_PROXY_AUTH_REQUIRED" => Some(Self::SipStatusProxyAuthRequired),
7263 "SIP_STATUS_REQUEST_TIMEOUT" => Some(Self::SipStatusRequestTimeout),
7264 "SIP_STATUS_CONFLICT" => Some(Self::SipStatusConflict),
7265 "SIP_STATUS_GONE" => Some(Self::SipStatusGone),
7266 "SIP_STATUS_LENGTH_REQUIRED" => Some(Self::SipStatusLengthRequired),
7267 "SIP_STATUS_CONDITIONAL_REQUEST_FAILED" => Some(Self::SipStatusConditionalRequestFailed),
7268 "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE" => Some(Self::SipStatusRequestEntityTooLarge),
7269 "SIP_STATUS_REQUEST_URI_TOO_LONG" => Some(Self::SipStatusRequestUriTooLong),
7270 "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE" => Some(Self::SipStatusUnsupportedMediaType),
7271 "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE" => Some(Self::SipStatusRequestedRangeNotSatisfiable),
7272 "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY" => Some(Self::SipStatusUnknownResourcePriority),
7273 "SIP_STATUS_BAD_EXTENSION" => Some(Self::SipStatusBadExtension),
7274 "SIP_STATUS_EXTENSION_REQUIRED" => Some(Self::SipStatusExtensionRequired),
7275 "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL" => Some(Self::SipStatusSessionIntervalTooSmall),
7276 "SIP_STATUS_INTERVAL_TOO_BRIEF" => Some(Self::SipStatusIntervalTooBrief),
7277 "SIP_STATUS_BAD_LOCATION_INFORMATION" => Some(Self::SipStatusBadLocationInformation),
7278 "SIP_STATUS_BAD_ALERT_MESSAGE" => Some(Self::SipStatusBadAlertMessage),
7279 "SIP_STATUS_USE_IDENTITY_HEADER" => Some(Self::SipStatusUseIdentityHeader),
7280 "SIP_STATUS_PROVIDE_REFERRER_IDENTITY" => Some(Self::SipStatusProvideReferrerIdentity),
7281 "SIP_STATUS_FLOW_FAILED" => Some(Self::SipStatusFlowFailed),
7282 "SIP_STATUS_ANONYMITY_DISALLOWED" => Some(Self::SipStatusAnonymityDisallowed),
7283 "SIP_STATUS_BAD_IDENTITY_INFO" => Some(Self::SipStatusBadIdentityInfo),
7284 "SIP_STATUS_UNSUPPORTED_CERTIFICATE" => Some(Self::SipStatusUnsupportedCertificate),
7285 "SIP_STATUS_INVALID_IDENTITY_HEADER" => Some(Self::SipStatusInvalidIdentityHeader),
7286 "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT" => Some(Self::SipStatusFirstHopLacksOutboundSupport),
7287 "SIP_STATUS_MAX_BREADTH_EXCEEDED" => Some(Self::SipStatusMaxBreadthExceeded),
7288 "SIP_STATUS_BAD_INFO_PACKAGE" => Some(Self::SipStatusBadInfoPackage),
7289 "SIP_STATUS_CONSENT_NEEDED" => Some(Self::SipStatusConsentNeeded),
7290 "SIP_STATUS_TEMPORARILY_UNAVAILABLE" => Some(Self::SipStatusTemporarilyUnavailable),
7291 "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS" => Some(Self::SipStatusCallTransactionDoesNotExists),
7292 "SIP_STATUS_LOOP_DETECTED" => Some(Self::SipStatusLoopDetected),
7293 "SIP_STATUS_TOO_MANY_HOPS" => Some(Self::SipStatusTooManyHops),
7294 "SIP_STATUS_ADDRESS_INCOMPLETE" => Some(Self::SipStatusAddressIncomplete),
7295 "SIP_STATUS_AMBIGUOUS" => Some(Self::SipStatusAmbiguous),
7296 "SIP_STATUS_BUSY_HERE" => Some(Self::SipStatusBusyHere),
7297 "SIP_STATUS_REQUEST_TERMINATED" => Some(Self::SipStatusRequestTerminated),
7298 "SIP_STATUS_NOT_ACCEPTABLE_HERE" => Some(Self::SipStatusNotAcceptableHere),
7299 "SIP_STATUS_BAD_EVENT" => Some(Self::SipStatusBadEvent),
7300 "SIP_STATUS_REQUEST_PENDING" => Some(Self::SipStatusRequestPending),
7301 "SIP_STATUS_UNDECIPHERABLE" => Some(Self::SipStatusUndecipherable),
7302 "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED" => Some(Self::SipStatusSecurityAgreementRequired),
7303 "SIP_STATUS_INTERNAL_SERVER_ERROR" => Some(Self::SipStatusInternalServerError),
7304 "SIP_STATUS_NOT_IMPLEMENTED" => Some(Self::SipStatusNotImplemented),
7305 "SIP_STATUS_BAD_GATEWAY" => Some(Self::SipStatusBadGateway),
7306 "SIP_STATUS_SERVICE_UNAVAILABLE" => Some(Self::SipStatusServiceUnavailable),
7307 "SIP_STATUS_GATEWAY_TIMEOUT" => Some(Self::SipStatusGatewayTimeout),
7308 "SIP_STATUS_VERSION_NOT_SUPPORTED" => Some(Self::SipStatusVersionNotSupported),
7309 "SIP_STATUS_MESSAGE_TOO_LARGE" => Some(Self::SipStatusMessageTooLarge),
7310 "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE" => Some(Self::SipStatusGlobalBusyEverywhere),
7311 "SIP_STATUS_GLOBAL_DECLINE" => Some(Self::SipStatusGlobalDecline),
7312 "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE" => Some(Self::SipStatusGlobalDoesNotExistAnywhere),
7313 "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE" => Some(Self::SipStatusGlobalNotAcceptable),
7314 "SIP_STATUS_GLOBAL_UNWANTED" => Some(Self::SipStatusGlobalUnwanted),
7315 "SIP_STATUS_GLOBAL_REJECTED" => Some(Self::SipStatusGlobalRejected),
7316 _ => None,
7317 }
7318 }
7319}
7320#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7321#[repr(i32)]
7322pub enum SipTransport {
7323 Auto = 0,
7324 Udp = 1,
7325 Tcp = 2,
7326 Tls = 3,
7327}
7328impl SipTransport {
7329 pub fn as_str_name(&self) -> &'static str {
7334 match self {
7335 SipTransport::Auto => "SIP_TRANSPORT_AUTO",
7336 SipTransport::Udp => "SIP_TRANSPORT_UDP",
7337 SipTransport::Tcp => "SIP_TRANSPORT_TCP",
7338 SipTransport::Tls => "SIP_TRANSPORT_TLS",
7339 }
7340 }
7341 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7343 match value {
7344 "SIP_TRANSPORT_AUTO" => Some(Self::Auto),
7345 "SIP_TRANSPORT_UDP" => Some(Self::Udp),
7346 "SIP_TRANSPORT_TCP" => Some(Self::Tcp),
7347 "SIP_TRANSPORT_TLS" => Some(Self::Tls),
7348 _ => None,
7349 }
7350 }
7351}
7352#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7353#[repr(i32)]
7354pub enum SipHeaderOptions {
7355 SipNoHeaders = 0,
7357 SipXHeaders = 1,
7359 SipAllHeaders = 2,
7361}
7362impl SipHeaderOptions {
7363 pub fn as_str_name(&self) -> &'static str {
7368 match self {
7369 SipHeaderOptions::SipNoHeaders => "SIP_NO_HEADERS",
7370 SipHeaderOptions::SipXHeaders => "SIP_X_HEADERS",
7371 SipHeaderOptions::SipAllHeaders => "SIP_ALL_HEADERS",
7372 }
7373 }
7374 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7376 match value {
7377 "SIP_NO_HEADERS" => Some(Self::SipNoHeaders),
7378 "SIP_X_HEADERS" => Some(Self::SipXHeaders),
7379 "SIP_ALL_HEADERS" => Some(Self::SipAllHeaders),
7380 _ => None,
7381 }
7382 }
7383}
7384#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7385#[repr(i32)]
7386pub enum SipMediaEncryption {
7387 SipMediaEncryptDisable = 0,
7389 SipMediaEncryptAllow = 1,
7391 SipMediaEncryptRequire = 2,
7393}
7394impl SipMediaEncryption {
7395 pub fn as_str_name(&self) -> &'static str {
7400 match self {
7401 SipMediaEncryption::SipMediaEncryptDisable => "SIP_MEDIA_ENCRYPT_DISABLE",
7402 SipMediaEncryption::SipMediaEncryptAllow => "SIP_MEDIA_ENCRYPT_ALLOW",
7403 SipMediaEncryption::SipMediaEncryptRequire => "SIP_MEDIA_ENCRYPT_REQUIRE",
7404 }
7405 }
7406 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7408 match value {
7409 "SIP_MEDIA_ENCRYPT_DISABLE" => Some(Self::SipMediaEncryptDisable),
7410 "SIP_MEDIA_ENCRYPT_ALLOW" => Some(Self::SipMediaEncryptAllow),
7411 "SIP_MEDIA_ENCRYPT_REQUIRE" => Some(Self::SipMediaEncryptRequire),
7412 _ => None,
7413 }
7414 }
7415}
7416#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7417#[repr(i32)]
7418pub enum ProviderType {
7419 Unknown = 0,
7420 Internal = 1,
7422 External = 2,
7424}
7425impl ProviderType {
7426 pub fn as_str_name(&self) -> &'static str {
7431 match self {
7432 ProviderType::Unknown => "PROVIDER_TYPE_UNKNOWN",
7433 ProviderType::Internal => "PROVIDER_TYPE_INTERNAL",
7434 ProviderType::External => "PROVIDER_TYPE_EXTERNAL",
7435 }
7436 }
7437 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7439 match value {
7440 "PROVIDER_TYPE_UNKNOWN" => Some(Self::Unknown),
7441 "PROVIDER_TYPE_INTERNAL" => Some(Self::Internal),
7442 "PROVIDER_TYPE_EXTERNAL" => Some(Self::External),
7443 _ => None,
7444 }
7445 }
7446}
7447#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7448#[repr(i32)]
7449pub enum SipCallStatus {
7450 ScsCallIncoming = 0,
7452 ScsParticipantJoined = 1,
7454 ScsActive = 2,
7456 ScsDisconnected = 3,
7458 ScsError = 4,
7460}
7461impl SipCallStatus {
7462 pub fn as_str_name(&self) -> &'static str {
7467 match self {
7468 SipCallStatus::ScsCallIncoming => "SCS_CALL_INCOMING",
7469 SipCallStatus::ScsParticipantJoined => "SCS_PARTICIPANT_JOINED",
7470 SipCallStatus::ScsActive => "SCS_ACTIVE",
7471 SipCallStatus::ScsDisconnected => "SCS_DISCONNECTED",
7472 SipCallStatus::ScsError => "SCS_ERROR",
7473 }
7474 }
7475 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7477 match value {
7478 "SCS_CALL_INCOMING" => Some(Self::ScsCallIncoming),
7479 "SCS_PARTICIPANT_JOINED" => Some(Self::ScsParticipantJoined),
7480 "SCS_ACTIVE" => Some(Self::ScsActive),
7481 "SCS_DISCONNECTED" => Some(Self::ScsDisconnected),
7482 "SCS_ERROR" => Some(Self::ScsError),
7483 _ => None,
7484 }
7485 }
7486}
7487#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7488#[repr(i32)]
7489pub enum SipTransferStatus {
7490 StsTransferOngoing = 0,
7491 StsTransferFailed = 1,
7492 StsTransferSuccessful = 2,
7493}
7494impl SipTransferStatus {
7495 pub fn as_str_name(&self) -> &'static str {
7500 match self {
7501 SipTransferStatus::StsTransferOngoing => "STS_TRANSFER_ONGOING",
7502 SipTransferStatus::StsTransferFailed => "STS_TRANSFER_FAILED",
7503 SipTransferStatus::StsTransferSuccessful => "STS_TRANSFER_SUCCESSFUL",
7504 }
7505 }
7506 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7508 match value {
7509 "STS_TRANSFER_ONGOING" => Some(Self::StsTransferOngoing),
7510 "STS_TRANSFER_FAILED" => Some(Self::StsTransferFailed),
7511 "STS_TRANSFER_SUCCESSFUL" => Some(Self::StsTransferSuccessful),
7512 _ => None,
7513 }
7514 }
7515}
7516#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7517#[repr(i32)]
7518pub enum SipFeature {
7519 None = 0,
7520 KrispEnabled = 1,
7521}
7522impl SipFeature {
7523 pub fn as_str_name(&self) -> &'static str {
7528 match self {
7529 SipFeature::None => "NONE",
7530 SipFeature::KrispEnabled => "KRISP_ENABLED",
7531 }
7532 }
7533 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7535 match value {
7536 "NONE" => Some(Self::None),
7537 "KRISP_ENABLED" => Some(Self::KrispEnabled),
7538 _ => None,
7539 }
7540 }
7541}
7542#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7543#[repr(i32)]
7544pub enum SipCallDirection {
7545 ScdUnknown = 0,
7546 ScdInbound = 1,
7547 ScdOutbound = 2,
7548}
7549impl SipCallDirection {
7550 pub fn as_str_name(&self) -> &'static str {
7555 match self {
7556 SipCallDirection::ScdUnknown => "SCD_UNKNOWN",
7557 SipCallDirection::ScdInbound => "SCD_INBOUND",
7558 SipCallDirection::ScdOutbound => "SCD_OUTBOUND",
7559 }
7560 }
7561 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7563 match value {
7564 "SCD_UNKNOWN" => Some(Self::ScdUnknown),
7565 "SCD_INBOUND" => Some(Self::ScdInbound),
7566 "SCD_OUTBOUND" => Some(Self::ScdOutbound),
7567 _ => None,
7568 }
7569 }
7570}
7571#[allow(clippy::derive_partial_eq_without_eq)]
7572#[derive(Clone, PartialEq, ::prost::Message)]
7573pub struct DialWhatsAppCallRequest {
7574 #[prost(string, tag="1")]
7576 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
7577 #[prost(string, tag="2")]
7579 pub whatsapp_to_phone_number: ::prost::alloc::string::String,
7580 #[prost(string, tag="3")]
7582 pub whatsapp_api_key: ::prost::alloc::string::String,
7583 #[prost(string, tag="12")]
7585 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
7586 #[prost(string, tag="4")]
7588 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
7589 #[prost(string, tag="5")]
7591 pub room_name: ::prost::alloc::string::String,
7592 #[prost(message, repeated, tag="6")]
7594 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7595 #[prost(string, tag="7")]
7598 pub participant_identity: ::prost::alloc::string::String,
7599 #[prost(string, tag="8")]
7601 pub participant_name: ::prost::alloc::string::String,
7602 #[prost(string, tag="9")]
7604 pub participant_metadata: ::prost::alloc::string::String,
7605 #[prost(map="string, string", tag="10")]
7607 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7608 #[prost(string, tag="11")]
7610 pub destination_country: ::prost::alloc::string::String,
7611 #[prost(message, optional, tag="13")]
7613 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
7614}
7615#[allow(clippy::derive_partial_eq_without_eq)]
7616#[derive(Clone, PartialEq, ::prost::Message)]
7617pub struct DialWhatsAppCallResponse {
7618 #[prost(string, tag="1")]
7620 pub whatsapp_call_id: ::prost::alloc::string::String,
7621 #[prost(string, tag="2")]
7623 pub room_name: ::prost::alloc::string::String,
7624}
7625#[allow(clippy::derive_partial_eq_without_eq)]
7626#[derive(Clone, PartialEq, ::prost::Message)]
7627pub struct DisconnectWhatsAppCallRequest {
7628 #[prost(string, tag="1")]
7630 pub whatsapp_call_id: ::prost::alloc::string::String,
7631 #[prost(string, tag="2")]
7635 pub whatsapp_api_key: ::prost::alloc::string::String,
7636 #[prost(enumeration="disconnect_whats_app_call_request::DisconnectReason", tag="3")]
7638 pub disconnect_reason: i32,
7639}
7640pub mod disconnect_whats_app_call_request {
7642 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7643 #[repr(i32)]
7644 pub enum DisconnectReason {
7645 BusinessInitiated = 0,
7647 UserInitiated = 1,
7653 }
7654 impl DisconnectReason {
7655 pub fn as_str_name(&self) -> &'static str {
7660 match self {
7661 DisconnectReason::BusinessInitiated => "BUSINESS_INITIATED",
7662 DisconnectReason::UserInitiated => "USER_INITIATED",
7663 }
7664 }
7665 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7667 match value {
7668 "BUSINESS_INITIATED" => Some(Self::BusinessInitiated),
7669 "USER_INITIATED" => Some(Self::UserInitiated),
7670 _ => None,
7671 }
7672 }
7673 }
7674}
7675#[allow(clippy::derive_partial_eq_without_eq)]
7676#[derive(Clone, PartialEq, ::prost::Message)]
7677pub struct DisconnectWhatsAppCallResponse {
7678}
7679#[allow(clippy::derive_partial_eq_without_eq)]
7680#[derive(Clone, PartialEq, ::prost::Message)]
7681pub struct ConnectWhatsAppCallRequest {
7682 #[prost(string, tag="1")]
7684 pub whatsapp_call_id: ::prost::alloc::string::String,
7685 #[prost(message, optional, tag="2")]
7688 pub sdp: ::core::option::Option<SessionDescription>,
7689}
7690#[allow(clippy::derive_partial_eq_without_eq)]
7691#[derive(Clone, PartialEq, ::prost::Message)]
7692pub struct ConnectWhatsAppCallResponse {
7693}
7694#[allow(clippy::derive_partial_eq_without_eq)]
7695#[derive(Clone, PartialEq, ::prost::Message)]
7696pub struct AcceptWhatsAppCallRequest {
7697 #[prost(string, tag="1")]
7699 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
7700 #[prost(string, tag="2")]
7702 pub whatsapp_api_key: ::prost::alloc::string::String,
7703 #[prost(string, tag="13")]
7705 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
7706 #[prost(string, tag="3")]
7708 pub whatsapp_call_id: ::prost::alloc::string::String,
7709 #[prost(string, tag="4")]
7711 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
7712 #[prost(message, optional, tag="5")]
7715 pub sdp: ::core::option::Option<SessionDescription>,
7716 #[prost(string, tag="6")]
7718 pub room_name: ::prost::alloc::string::String,
7719 #[prost(message, repeated, tag="7")]
7721 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7722 #[prost(string, tag="8")]
7725 pub participant_identity: ::prost::alloc::string::String,
7726 #[prost(string, tag="9")]
7728 pub participant_name: ::prost::alloc::string::String,
7729 #[prost(string, tag="10")]
7731 pub participant_metadata: ::prost::alloc::string::String,
7732 #[prost(map="string, string", tag="11")]
7734 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7735 #[prost(string, tag="12")]
7737 pub destination_country: ::prost::alloc::string::String,
7738 #[prost(message, optional, tag="14")]
7740 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
7741 #[prost(bool, tag="15")]
7743 pub wait_until_answered: bool,
7744}
7745#[allow(clippy::derive_partial_eq_without_eq)]
7746#[derive(Clone, PartialEq, ::prost::Message)]
7747pub struct AcceptWhatsAppCallResponse {
7748 #[prost(string, tag="1")]
7750 pub room_name: ::prost::alloc::string::String,
7751}
7752#[allow(clippy::derive_partial_eq_without_eq)]
7753#[derive(Clone, PartialEq, ::prost::Message)]
7754pub struct WhatsAppCall {
7755 #[prost(string, tag="1")]
7757 pub whatsapp_call_id: ::prost::alloc::string::String,
7758 #[prost(enumeration="WhatsAppCallDirection", tag="2")]
7760 pub direction: i32,
7761}
7762#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7763#[repr(i32)]
7764pub enum WhatsAppCallDirection {
7765 WhatsappCallDirectionInbound = 0,
7766 WhatsappCallDirectionOutbound = 2,
7767}
7768impl WhatsAppCallDirection {
7769 pub fn as_str_name(&self) -> &'static str {
7774 match self {
7775 WhatsAppCallDirection::WhatsappCallDirectionInbound => "WHATSAPP_CALL_DIRECTION_INBOUND",
7776 WhatsAppCallDirection::WhatsappCallDirectionOutbound => "WHATSAPP_CALL_DIRECTION_OUTBOUND",
7777 }
7778 }
7779 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7781 match value {
7782 "WHATSAPP_CALL_DIRECTION_INBOUND" => Some(Self::WhatsappCallDirectionInbound),
7783 "WHATSAPP_CALL_DIRECTION_OUTBOUND" => Some(Self::WhatsappCallDirectionOutbound),
7784 _ => None,
7785 }
7786 }
7787}
7788#[allow(clippy::derive_partial_eq_without_eq)]
7789#[derive(Clone, PartialEq, ::prost::Message)]
7790pub struct ConnectTwilioCallRequest {
7791 #[prost(enumeration="connect_twilio_call_request::TwilioCallDirection", tag="1")]
7793 pub twilio_call_direction: i32,
7794 #[prost(string, tag="2")]
7796 pub room_name: ::prost::alloc::string::String,
7797 #[prost(message, repeated, tag="3")]
7799 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7800 #[prost(string, tag="4")]
7803 pub participant_identity: ::prost::alloc::string::String,
7804 #[prost(string, tag="5")]
7806 pub participant_name: ::prost::alloc::string::String,
7807 #[prost(string, tag="6")]
7809 pub participant_metadata: ::prost::alloc::string::String,
7810 #[prost(map="string, string", tag="7")]
7812 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7813 #[prost(string, tag="8")]
7815 pub destination_country: ::prost::alloc::string::String,
7816}
7817pub mod connect_twilio_call_request {
7819 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7820 #[repr(i32)]
7821 pub enum TwilioCallDirection {
7822 Inbound = 0,
7824 Outbound = 1,
7826 }
7827 impl TwilioCallDirection {
7828 pub fn as_str_name(&self) -> &'static str {
7833 match self {
7834 TwilioCallDirection::Inbound => "TWILIO_CALL_DIRECTION_INBOUND",
7835 TwilioCallDirection::Outbound => "TWILIO_CALL_DIRECTION_OUTBOUND",
7836 }
7837 }
7838 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7840 match value {
7841 "TWILIO_CALL_DIRECTION_INBOUND" => Some(Self::Inbound),
7842 "TWILIO_CALL_DIRECTION_OUTBOUND" => Some(Self::Outbound),
7843 _ => None,
7844 }
7845 }
7846 }
7847}
7848#[allow(clippy::derive_partial_eq_without_eq)]
7849#[derive(Clone, PartialEq, ::prost::Message)]
7850pub struct ConnectTwilioCallResponse {
7851 #[prost(string, tag="1")]
7853 pub connect_url: ::prost::alloc::string::String,
7854}
7855#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7856#[repr(i32)]
7857pub enum ConnectorType {
7858 Unspecified = 0,
7859 WhatsApp = 1,
7860 Twilio = 2,
7861}
7862impl ConnectorType {
7863 pub fn as_str_name(&self) -> &'static str {
7868 match self {
7869 ConnectorType::Unspecified => "Unspecified",
7870 ConnectorType::WhatsApp => "WhatsApp",
7871 ConnectorType::Twilio => "Twilio",
7872 }
7873 }
7874 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7876 match value {
7877 "Unspecified" => Some(Self::Unspecified),
7878 "WhatsApp" => Some(Self::WhatsApp),
7879 "Twilio" => Some(Self::Twilio),
7880 _ => None,
7881 }
7882 }
7883}
7884#[allow(clippy::derive_partial_eq_without_eq)]
7885#[derive(Clone, PartialEq, ::prost::Message)]
7886pub struct AnalyticsVideoLayer {
7887 #[prost(int32, tag="1")]
7888 pub layer: i32,
7889 #[prost(uint32, tag="2")]
7890 pub packets: u32,
7891 #[prost(uint64, tag="3")]
7892 pub bytes: u64,
7893 #[prost(uint32, tag="4")]
7894 pub frames: u32,
7895}
7896#[allow(clippy::derive_partial_eq_without_eq)]
7897#[derive(Clone, PartialEq, ::prost::Message)]
7898pub struct AnalyticsStream {
7899 #[prost(uint32, tag="1")]
7900 pub ssrc: u32,
7901 #[prost(uint32, tag="2")]
7902 pub primary_packets: u32,
7903 #[prost(uint64, tag="3")]
7904 pub primary_bytes: u64,
7905 #[prost(uint32, tag="4")]
7906 pub retransmit_packets: u32,
7907 #[prost(uint64, tag="5")]
7908 pub retransmit_bytes: u64,
7909 #[prost(uint32, tag="6")]
7910 pub padding_packets: u32,
7911 #[prost(uint64, tag="7")]
7912 pub padding_bytes: u64,
7913 #[prost(uint32, tag="8")]
7914 pub packets_lost: u32,
7915 #[prost(uint32, tag="9")]
7916 pub frames: u32,
7917 #[prost(uint32, tag="10")]
7918 pub rtt: u32,
7919 #[prost(uint32, tag="11")]
7920 pub jitter: u32,
7921 #[prost(uint32, tag="12")]
7922 pub nacks: u32,
7923 #[prost(uint32, tag="13")]
7924 pub plis: u32,
7925 #[prost(uint32, tag="14")]
7926 pub firs: u32,
7927 #[prost(message, repeated, tag="15")]
7928 pub video_layers: ::prost::alloc::vec::Vec<AnalyticsVideoLayer>,
7929 #[prost(message, optional, tag="17")]
7930 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
7931 #[prost(message, optional, tag="18")]
7932 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
7933 #[prost(uint32, tag="19")]
7934 pub packets_out_of_order: u32,
7935}
7936#[allow(clippy::derive_partial_eq_without_eq)]
7937#[derive(Clone, PartialEq, ::prost::Message)]
7938pub struct AnalyticsStat {
7939 #[prost(string, tag="14")]
7941 pub id: ::prost::alloc::string::String,
7942 #[prost(string, tag="1")]
7943 pub analytics_key: ::prost::alloc::string::String,
7944 #[prost(enumeration="StreamType", tag="2")]
7945 pub kind: i32,
7946 #[prost(message, optional, tag="3")]
7947 pub time_stamp: ::core::option::Option<::pbjson_types::Timestamp>,
7948 #[prost(string, tag="4")]
7949 pub node: ::prost::alloc::string::String,
7950 #[prost(string, tag="5")]
7951 pub room_id: ::prost::alloc::string::String,
7952 #[prost(string, tag="6")]
7953 pub room_name: ::prost::alloc::string::String,
7954 #[prost(string, tag="7")]
7955 pub participant_id: ::prost::alloc::string::String,
7956 #[prost(string, tag="8")]
7957 pub track_id: ::prost::alloc::string::String,
7958 #[prost(float, tag="9")]
7960 pub score: f32,
7961 #[prost(message, repeated, tag="10")]
7962 pub streams: ::prost::alloc::vec::Vec<AnalyticsStream>,
7963 #[prost(string, tag="11")]
7964 pub mime: ::prost::alloc::string::String,
7965 #[prost(float, tag="12")]
7966 pub min_score: f32,
7967 #[prost(float, tag="13")]
7968 pub median_score: f32,
7969}
7970#[allow(clippy::derive_partial_eq_without_eq)]
7971#[derive(Clone, PartialEq, ::prost::Message)]
7972pub struct AnalyticsStats {
7973 #[prost(message, repeated, tag="1")]
7974 pub stats: ::prost::alloc::vec::Vec<AnalyticsStat>,
7975}
7976#[allow(clippy::derive_partial_eq_without_eq)]
7977#[derive(Clone, PartialEq, ::prost::Message)]
7978pub struct AnalyticsClientMeta {
7979 #[prost(string, tag="1")]
7980 pub region: ::prost::alloc::string::String,
7981 #[prost(string, tag="2")]
7982 pub node: ::prost::alloc::string::String,
7983 #[prost(string, tag="3")]
7984 pub client_addr: ::prost::alloc::string::String,
7985 #[prost(uint32, tag="4")]
7986 pub client_connect_time: u32,
7987 #[prost(string, tag="5")]
7989 pub connection_type: ::prost::alloc::string::String,
7990 #[prost(enumeration="ReconnectReason", tag="6")]
7991 pub reconnect_reason: i32,
7992 #[prost(string, optional, tag="7")]
7993 pub geo_hash: ::core::option::Option<::prost::alloc::string::String>,
7994 #[prost(string, optional, tag="8")]
7995 pub country: ::core::option::Option<::prost::alloc::string::String>,
7996 #[prost(uint32, optional, tag="9")]
7997 pub isp_asn: ::core::option::Option<u32>,
7998}
7999#[allow(clippy::derive_partial_eq_without_eq)]
8000#[derive(Clone, PartialEq, ::prost::Message)]
8001pub struct AnalyticsEvent {
8002 #[prost(string, tag="25")]
8004 pub id: ::prost::alloc::string::String,
8005 #[prost(enumeration="AnalyticsEventType", tag="1")]
8006 pub r#type: i32,
8007 #[prost(message, optional, tag="2")]
8008 pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
8009 #[prost(string, tag="3")]
8010 pub room_id: ::prost::alloc::string::String,
8011 #[prost(message, optional, tag="4")]
8012 pub room: ::core::option::Option<Room>,
8013 #[prost(string, tag="5")]
8014 pub participant_id: ::prost::alloc::string::String,
8015 #[prost(message, optional, tag="6")]
8016 pub participant: ::core::option::Option<ParticipantInfo>,
8017 #[prost(string, tag="7")]
8018 pub track_id: ::prost::alloc::string::String,
8019 #[prost(message, optional, tag="8")]
8020 pub track: ::core::option::Option<TrackInfo>,
8021 #[prost(string, tag="10")]
8022 pub analytics_key: ::prost::alloc::string::String,
8023 #[prost(message, optional, tag="11")]
8024 pub client_info: ::core::option::Option<ClientInfo>,
8025 #[prost(message, optional, tag="12")]
8026 pub client_meta: ::core::option::Option<AnalyticsClientMeta>,
8027 #[prost(string, tag="13")]
8028 pub egress_id: ::prost::alloc::string::String,
8029 #[prost(string, tag="19")]
8030 pub ingress_id: ::prost::alloc::string::String,
8031 #[prost(enumeration="VideoQuality", tag="14")]
8032 pub max_subscribed_video_quality: i32,
8033 #[prost(message, optional, tag="15")]
8034 pub publisher: ::core::option::Option<ParticipantInfo>,
8035 #[prost(string, tag="16")]
8036 pub mime: ::prost::alloc::string::String,
8037 #[prost(message, optional, tag="17")]
8038 pub egress: ::core::option::Option<EgressInfo>,
8039 #[prost(message, optional, tag="18")]
8040 pub ingress: ::core::option::Option<IngressInfo>,
8041 #[prost(string, tag="20")]
8042 pub error: ::prost::alloc::string::String,
8043 #[prost(message, optional, tag="21")]
8044 pub rtp_stats: ::core::option::Option<RtpStats>,
8045 #[prost(int32, tag="22")]
8046 pub video_layer: i32,
8047 #[prost(string, tag="24")]
8048 pub node_id: ::prost::alloc::string::String,
8049 #[prost(string, tag="26")]
8050 pub sip_call_id: ::prost::alloc::string::String,
8051 #[prost(message, optional, tag="27")]
8052 pub sip_call: ::core::option::Option<SipCallInfo>,
8053 #[prost(string, tag="28")]
8054 pub sip_trunk_id: ::prost::alloc::string::String,
8055 #[prost(message, optional, tag="29")]
8056 pub sip_inbound_trunk: ::core::option::Option<SipInboundTrunkInfo>,
8057 #[prost(message, optional, tag="30")]
8058 pub sip_outbound_trunk: ::core::option::Option<SipOutboundTrunkInfo>,
8059 #[prost(string, tag="31")]
8060 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
8061 #[prost(message, optional, tag="32")]
8062 pub sip_dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
8063 #[prost(message, optional, tag="36")]
8064 pub sip_transfer: ::core::option::Option<SipTransferInfo>,
8065 #[prost(message, optional, tag="33")]
8066 pub report: ::core::option::Option<ReportInfo>,
8067 #[prost(message, optional, tag="34")]
8068 pub api_call: ::core::option::Option<ApiCallInfo>,
8069 #[prost(message, optional, tag="35")]
8070 pub webhook: ::core::option::Option<WebhookInfo>,
8071}
8072#[allow(clippy::derive_partial_eq_without_eq)]
8073#[derive(Clone, PartialEq, ::prost::Message)]
8074pub struct AnalyticsEvents {
8075 #[prost(message, repeated, tag="1")]
8076 pub events: ::prost::alloc::vec::Vec<AnalyticsEvent>,
8077}
8078#[allow(clippy::derive_partial_eq_without_eq)]
8079#[derive(Clone, PartialEq, ::prost::Message)]
8080pub struct AnalyticsRoomParticipant {
8081 #[prost(string, tag="1")]
8082 pub id: ::prost::alloc::string::String,
8083 #[prost(string, tag="2")]
8084 pub identity: ::prost::alloc::string::String,
8085 #[prost(string, tag="3")]
8086 pub name: ::prost::alloc::string::String,
8087 #[prost(enumeration="participant_info::State", tag="4")]
8088 pub state: i32,
8089 #[prost(message, optional, tag="5")]
8090 pub joined_at: ::core::option::Option<::pbjson_types::Timestamp>,
8091}
8092#[allow(clippy::derive_partial_eq_without_eq)]
8093#[derive(Clone, PartialEq, ::prost::Message)]
8094pub struct AnalyticsRoom {
8095 #[prost(string, tag="1")]
8096 pub id: ::prost::alloc::string::String,
8097 #[prost(string, tag="2")]
8098 pub name: ::prost::alloc::string::String,
8099 #[prost(string, tag="5")]
8100 pub project_id: ::prost::alloc::string::String,
8101 #[prost(message, optional, tag="3")]
8102 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
8103 #[prost(message, repeated, tag="4")]
8104 pub participants: ::prost::alloc::vec::Vec<AnalyticsRoomParticipant>,
8105}
8106#[allow(clippy::derive_partial_eq_without_eq)]
8107#[derive(Clone, PartialEq, ::prost::Message)]
8108pub struct AnalyticsNodeRooms {
8109 #[prost(string, tag="1")]
8110 pub node_id: ::prost::alloc::string::String,
8111 #[prost(uint64, tag="2")]
8112 pub sequence_number: u64,
8113 #[prost(message, optional, tag="3")]
8114 pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
8115 #[prost(message, repeated, tag="4")]
8116 pub rooms: ::prost::alloc::vec::Vec<AnalyticsRoom>,
8117}
8118#[allow(clippy::derive_partial_eq_without_eq)]
8119#[derive(Clone, PartialEq, ::prost::Message)]
8120pub struct ReportInfo {
8121 #[prost(oneof="report_info::Message", tags="1")]
8122 pub message: ::core::option::Option<report_info::Message>,
8123}
8124pub mod report_info {
8126 #[allow(clippy::derive_partial_eq_without_eq)]
8127#[derive(Clone, PartialEq, ::prost::Oneof)]
8128 pub enum Message {
8129 #[prost(message, tag="1")]
8130 FeatureUsage(super::FeatureUsageInfo),
8131 }
8132}
8133#[allow(clippy::derive_partial_eq_without_eq)]
8134#[derive(Clone, PartialEq, ::prost::Message)]
8135pub struct TimeRange {
8136 #[prost(message, optional, tag="1")]
8137 pub started_at: ::core::option::Option<::pbjson_types::Timestamp>,
8138 #[prost(message, optional, tag="2")]
8139 pub ended_at: ::core::option::Option<::pbjson_types::Timestamp>,
8140}
8141#[allow(clippy::derive_partial_eq_without_eq)]
8142#[derive(Clone, PartialEq, ::prost::Message)]
8143pub struct FeatureUsageInfo {
8144 #[prost(enumeration="feature_usage_info::Feature", tag="1")]
8145 pub feature: i32,
8146 #[prost(string, tag="2")]
8147 pub project_id: ::prost::alloc::string::String,
8148 #[prost(string, tag="3")]
8149 pub room_name: ::prost::alloc::string::String,
8150 #[prost(string, tag="4")]
8151 pub room_id: ::prost::alloc::string::String,
8152 #[prost(string, tag="5")]
8153 pub participant_identity: ::prost::alloc::string::String,
8154 #[prost(string, tag="6")]
8155 pub participant_id: ::prost::alloc::string::String,
8156 #[prost(string, tag="7")]
8157 pub track_id: ::prost::alloc::string::String,
8158 #[prost(message, repeated, tag="8")]
8162 pub time_ranges: ::prost::alloc::vec::Vec<TimeRange>,
8163 #[prost(map="string, string", tag="9")]
8165 pub feature_info: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
8166}
8167pub mod feature_usage_info {
8169 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8170 #[repr(i32)]
8171 pub enum Feature {
8172 KrispNoiseCancellation = 0,
8173 KrispBackgroundVoiceCancellation = 1,
8174 AicAudioEnhancement = 2,
8175 KrispViva = 3,
8176 }
8177 impl Feature {
8178 pub fn as_str_name(&self) -> &'static str {
8183 match self {
8184 Feature::KrispNoiseCancellation => "KRISP_NOISE_CANCELLATION",
8185 Feature::KrispBackgroundVoiceCancellation => "KRISP_BACKGROUND_VOICE_CANCELLATION",
8186 Feature::AicAudioEnhancement => "AIC_AUDIO_ENHANCEMENT",
8187 Feature::KrispViva => "KRISP_VIVA",
8188 }
8189 }
8190 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8192 match value {
8193 "KRISP_NOISE_CANCELLATION" => Some(Self::KrispNoiseCancellation),
8194 "KRISP_BACKGROUND_VOICE_CANCELLATION" => Some(Self::KrispBackgroundVoiceCancellation),
8195 "AIC_AUDIO_ENHANCEMENT" => Some(Self::AicAudioEnhancement),
8196 "KRISP_VIVA" => Some(Self::KrispViva),
8197 _ => None,
8198 }
8199 }
8200 }
8201}
8202#[allow(clippy::derive_partial_eq_without_eq)]
8203#[derive(Clone, PartialEq, ::prost::Message)]
8204pub struct ApiCallRequest {
8205 #[prost(oneof="api_call_request::Message", tags="1, 2, 3, 4, 5, 6, 7, 8, 9, 10")]
8206 pub message: ::core::option::Option<api_call_request::Message>,
8207}
8208pub mod api_call_request {
8210 #[allow(clippy::derive_partial_eq_without_eq)]
8211#[derive(Clone, PartialEq, ::prost::Oneof)]
8212 pub enum Message {
8213 #[prost(message, tag="1")]
8214 CreateRoomRequest(super::CreateRoomRequest),
8215 #[prost(message, tag="2")]
8216 ListRoomsRequest(super::ListRoomsRequest),
8217 #[prost(message, tag="3")]
8218 DeleteRoomRequest(super::DeleteRoomRequest),
8219 #[prost(message, tag="4")]
8220 ListParticipantsRequest(super::ListParticipantsRequest),
8221 #[prost(message, tag="5")]
8222 RoomParticipantIdentity(super::RoomParticipantIdentity),
8223 #[prost(message, tag="6")]
8224 MuteRoomTrackRequest(super::MuteRoomTrackRequest),
8225 #[prost(message, tag="7")]
8226 UpdateParticipantRequest(super::UpdateParticipantRequest),
8227 #[prost(message, tag="8")]
8228 UpdateSubscriptionsRequest(super::UpdateSubscriptionsRequest),
8229 #[prost(message, tag="9")]
8230 SendDataRequest(super::SendDataRequest),
8231 #[prost(message, tag="10")]
8232 UpdateRoomMetadataRequest(super::UpdateRoomMetadataRequest),
8233 }
8234}
8235#[allow(clippy::derive_partial_eq_without_eq)]
8236#[derive(Clone, PartialEq, ::prost::Message)]
8237pub struct ApiCallInfo {
8238 #[prost(string, tag="1")]
8239 pub project_id: ::prost::alloc::string::String,
8240 #[prost(message, optional, tag="2")]
8241 pub request: ::core::option::Option<ApiCallRequest>,
8242 #[prost(string, tag="3")]
8243 pub service: ::prost::alloc::string::String,
8244 #[prost(string, tag="4")]
8245 pub method: ::prost::alloc::string::String,
8246 #[prost(string, tag="5")]
8247 pub node_id: ::prost::alloc::string::String,
8248 #[prost(int32, tag="6")]
8249 pub status: i32,
8250 #[prost(string, tag="7")]
8251 pub twirp_error_code: ::prost::alloc::string::String,
8252 #[prost(string, tag="8")]
8253 pub twirp_error_message: ::prost::alloc::string::String,
8254 #[prost(string, tag="9")]
8255 pub room_name: ::prost::alloc::string::String,
8256 #[prost(string, tag="10")]
8257 pub room_id: ::prost::alloc::string::String,
8258 #[prost(string, tag="11")]
8259 pub participant_identity: ::prost::alloc::string::String,
8260 #[prost(string, tag="12")]
8261 pub participant_id: ::prost::alloc::string::String,
8262 #[prost(string, tag="13")]
8263 pub track_id: ::prost::alloc::string::String,
8264 #[prost(message, optional, tag="14")]
8265 pub started_at: ::core::option::Option<::pbjson_types::Timestamp>,
8266 #[prost(int64, tag="15")]
8267 pub duration_ns: i64,
8268}
8269#[allow(clippy::derive_partial_eq_without_eq)]
8270#[derive(Clone, PartialEq, ::prost::Message)]
8271pub struct WebhookInfo {
8272 #[prost(string, tag="1")]
8273 pub event_id: ::prost::alloc::string::String,
8274 #[prost(string, tag="2")]
8275 pub event: ::prost::alloc::string::String,
8276 #[prost(string, tag="3")]
8277 pub project_id: ::prost::alloc::string::String,
8278 #[prost(string, tag="4")]
8279 pub room_name: ::prost::alloc::string::String,
8280 #[prost(string, tag="5")]
8281 pub room_id: ::prost::alloc::string::String,
8282 #[prost(string, tag="6")]
8283 pub participant_identity: ::prost::alloc::string::String,
8284 #[prost(string, tag="7")]
8285 pub participant_id: ::prost::alloc::string::String,
8286 #[prost(string, tag="8")]
8287 pub track_id: ::prost::alloc::string::String,
8288 #[prost(string, tag="9")]
8289 pub egress_id: ::prost::alloc::string::String,
8290 #[prost(string, tag="10")]
8291 pub ingress_id: ::prost::alloc::string::String,
8292 #[prost(message, optional, tag="11")]
8293 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
8294 #[prost(message, optional, tag="12")]
8295 pub queued_at: ::core::option::Option<::pbjson_types::Timestamp>,
8296 #[prost(int64, tag="13")]
8297 pub queue_duration_ns: i64,
8298 #[prost(message, optional, tag="14")]
8299 pub sent_at: ::core::option::Option<::pbjson_types::Timestamp>,
8300 #[prost(int64, tag="15")]
8301 pub send_duration_ns: i64,
8302 #[prost(string, tag="16")]
8303 pub url: ::prost::alloc::string::String,
8304 #[prost(int32, tag="17")]
8305 pub num_dropped: i32,
8306 #[prost(bool, tag="18")]
8307 pub is_dropped: bool,
8308 #[prost(string, tag="19")]
8309 pub service_status: ::prost::alloc::string::String,
8310 #[prost(int32, tag="20")]
8311 pub service_error_code: i32,
8312 #[prost(string, tag="21")]
8313 pub service_error: ::prost::alloc::string::String,
8314 #[prost(string, tag="22")]
8315 pub send_error: ::prost::alloc::string::String,
8316}
8317#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8318#[repr(i32)]
8319pub enum StreamType {
8320 Upstream = 0,
8321 Downstream = 1,
8322}
8323impl StreamType {
8324 pub fn as_str_name(&self) -> &'static str {
8329 match self {
8330 StreamType::Upstream => "UPSTREAM",
8331 StreamType::Downstream => "DOWNSTREAM",
8332 }
8333 }
8334 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8336 match value {
8337 "UPSTREAM" => Some(Self::Upstream),
8338 "DOWNSTREAM" => Some(Self::Downstream),
8339 _ => None,
8340 }
8341 }
8342}
8343#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8344#[repr(i32)]
8345pub enum AnalyticsEventType {
8346 RoomCreated = 0,
8347 RoomEnded = 1,
8348 ParticipantJoined = 2,
8349 ParticipantLeft = 3,
8350 ParticipantConnectionAborted = 45,
8351 TrackPublished = 4,
8352 TrackPublishRequested = 20,
8353 TrackUnpublished = 5,
8354 TrackSubscribed = 6,
8355 TrackSubscribeRequested = 21,
8356 TrackSubscribeFailed = 25,
8357 TrackUnsubscribed = 7,
8358 TrackPublishedUpdate = 10,
8359 TrackMuted = 23,
8360 TrackUnmuted = 24,
8361 TrackPublishStats = 26,
8362 TrackSubscribeStats = 27,
8363 ParticipantActive = 11,
8364 ParticipantResumed = 22,
8365 EgressStarted = 12,
8366 EgressEnded = 13,
8367 EgressUpdated = 28,
8368 TrackMaxSubscribedVideoQuality = 14,
8369 Reconnected = 15,
8370 IngressCreated = 18,
8371 IngressDeleted = 19,
8372 IngressStarted = 16,
8373 IngressEnded = 17,
8374 IngressUpdated = 29,
8375 SipInboundTrunkCreated = 30,
8376 SipInboundTrunkDeleted = 31,
8377 SipOutboundTrunkCreated = 32,
8378 SipOutboundTrunkDeleted = 33,
8379 SipDispatchRuleCreated = 34,
8380 SipDispatchRuleDeleted = 35,
8381 SipParticipantCreated = 36,
8382 SipCallIncoming = 37,
8383 SipCallStarted = 38,
8384 SipCallEnded = 39,
8385 SipTransferRequested = 43,
8386 SipTransferComplete = 44,
8387 SipCallUpdate = 46,
8388 Report = 40,
8389 ApiCall = 41,
8390 Webhook = 42,
8391}
8392impl AnalyticsEventType {
8393 pub fn as_str_name(&self) -> &'static str {
8398 match self {
8399 AnalyticsEventType::RoomCreated => "ROOM_CREATED",
8400 AnalyticsEventType::RoomEnded => "ROOM_ENDED",
8401 AnalyticsEventType::ParticipantJoined => "PARTICIPANT_JOINED",
8402 AnalyticsEventType::ParticipantLeft => "PARTICIPANT_LEFT",
8403 AnalyticsEventType::ParticipantConnectionAborted => "PARTICIPANT_CONNECTION_ABORTED",
8404 AnalyticsEventType::TrackPublished => "TRACK_PUBLISHED",
8405 AnalyticsEventType::TrackPublishRequested => "TRACK_PUBLISH_REQUESTED",
8406 AnalyticsEventType::TrackUnpublished => "TRACK_UNPUBLISHED",
8407 AnalyticsEventType::TrackSubscribed => "TRACK_SUBSCRIBED",
8408 AnalyticsEventType::TrackSubscribeRequested => "TRACK_SUBSCRIBE_REQUESTED",
8409 AnalyticsEventType::TrackSubscribeFailed => "TRACK_SUBSCRIBE_FAILED",
8410 AnalyticsEventType::TrackUnsubscribed => "TRACK_UNSUBSCRIBED",
8411 AnalyticsEventType::TrackPublishedUpdate => "TRACK_PUBLISHED_UPDATE",
8412 AnalyticsEventType::TrackMuted => "TRACK_MUTED",
8413 AnalyticsEventType::TrackUnmuted => "TRACK_UNMUTED",
8414 AnalyticsEventType::TrackPublishStats => "TRACK_PUBLISH_STATS",
8415 AnalyticsEventType::TrackSubscribeStats => "TRACK_SUBSCRIBE_STATS",
8416 AnalyticsEventType::ParticipantActive => "PARTICIPANT_ACTIVE",
8417 AnalyticsEventType::ParticipantResumed => "PARTICIPANT_RESUMED",
8418 AnalyticsEventType::EgressStarted => "EGRESS_STARTED",
8419 AnalyticsEventType::EgressEnded => "EGRESS_ENDED",
8420 AnalyticsEventType::EgressUpdated => "EGRESS_UPDATED",
8421 AnalyticsEventType::TrackMaxSubscribedVideoQuality => "TRACK_MAX_SUBSCRIBED_VIDEO_QUALITY",
8422 AnalyticsEventType::Reconnected => "RECONNECTED",
8423 AnalyticsEventType::IngressCreated => "INGRESS_CREATED",
8424 AnalyticsEventType::IngressDeleted => "INGRESS_DELETED",
8425 AnalyticsEventType::IngressStarted => "INGRESS_STARTED",
8426 AnalyticsEventType::IngressEnded => "INGRESS_ENDED",
8427 AnalyticsEventType::IngressUpdated => "INGRESS_UPDATED",
8428 AnalyticsEventType::SipInboundTrunkCreated => "SIP_INBOUND_TRUNK_CREATED",
8429 AnalyticsEventType::SipInboundTrunkDeleted => "SIP_INBOUND_TRUNK_DELETED",
8430 AnalyticsEventType::SipOutboundTrunkCreated => "SIP_OUTBOUND_TRUNK_CREATED",
8431 AnalyticsEventType::SipOutboundTrunkDeleted => "SIP_OUTBOUND_TRUNK_DELETED",
8432 AnalyticsEventType::SipDispatchRuleCreated => "SIP_DISPATCH_RULE_CREATED",
8433 AnalyticsEventType::SipDispatchRuleDeleted => "SIP_DISPATCH_RULE_DELETED",
8434 AnalyticsEventType::SipParticipantCreated => "SIP_PARTICIPANT_CREATED",
8435 AnalyticsEventType::SipCallIncoming => "SIP_CALL_INCOMING",
8436 AnalyticsEventType::SipCallStarted => "SIP_CALL_STARTED",
8437 AnalyticsEventType::SipCallEnded => "SIP_CALL_ENDED",
8438 AnalyticsEventType::SipTransferRequested => "SIP_TRANSFER_REQUESTED",
8439 AnalyticsEventType::SipTransferComplete => "SIP_TRANSFER_COMPLETE",
8440 AnalyticsEventType::SipCallUpdate => "SIP_CALL_UPDATE",
8441 AnalyticsEventType::Report => "REPORT",
8442 AnalyticsEventType::ApiCall => "API_CALL",
8443 AnalyticsEventType::Webhook => "WEBHOOK",
8444 }
8445 }
8446 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8448 match value {
8449 "ROOM_CREATED" => Some(Self::RoomCreated),
8450 "ROOM_ENDED" => Some(Self::RoomEnded),
8451 "PARTICIPANT_JOINED" => Some(Self::ParticipantJoined),
8452 "PARTICIPANT_LEFT" => Some(Self::ParticipantLeft),
8453 "PARTICIPANT_CONNECTION_ABORTED" => Some(Self::ParticipantConnectionAborted),
8454 "TRACK_PUBLISHED" => Some(Self::TrackPublished),
8455 "TRACK_PUBLISH_REQUESTED" => Some(Self::TrackPublishRequested),
8456 "TRACK_UNPUBLISHED" => Some(Self::TrackUnpublished),
8457 "TRACK_SUBSCRIBED" => Some(Self::TrackSubscribed),
8458 "TRACK_SUBSCRIBE_REQUESTED" => Some(Self::TrackSubscribeRequested),
8459 "TRACK_SUBSCRIBE_FAILED" => Some(Self::TrackSubscribeFailed),
8460 "TRACK_UNSUBSCRIBED" => Some(Self::TrackUnsubscribed),
8461 "TRACK_PUBLISHED_UPDATE" => Some(Self::TrackPublishedUpdate),
8462 "TRACK_MUTED" => Some(Self::TrackMuted),
8463 "TRACK_UNMUTED" => Some(Self::TrackUnmuted),
8464 "TRACK_PUBLISH_STATS" => Some(Self::TrackPublishStats),
8465 "TRACK_SUBSCRIBE_STATS" => Some(Self::TrackSubscribeStats),
8466 "PARTICIPANT_ACTIVE" => Some(Self::ParticipantActive),
8467 "PARTICIPANT_RESUMED" => Some(Self::ParticipantResumed),
8468 "EGRESS_STARTED" => Some(Self::EgressStarted),
8469 "EGRESS_ENDED" => Some(Self::EgressEnded),
8470 "EGRESS_UPDATED" => Some(Self::EgressUpdated),
8471 "TRACK_MAX_SUBSCRIBED_VIDEO_QUALITY" => Some(Self::TrackMaxSubscribedVideoQuality),
8472 "RECONNECTED" => Some(Self::Reconnected),
8473 "INGRESS_CREATED" => Some(Self::IngressCreated),
8474 "INGRESS_DELETED" => Some(Self::IngressDeleted),
8475 "INGRESS_STARTED" => Some(Self::IngressStarted),
8476 "INGRESS_ENDED" => Some(Self::IngressEnded),
8477 "INGRESS_UPDATED" => Some(Self::IngressUpdated),
8478 "SIP_INBOUND_TRUNK_CREATED" => Some(Self::SipInboundTrunkCreated),
8479 "SIP_INBOUND_TRUNK_DELETED" => Some(Self::SipInboundTrunkDeleted),
8480 "SIP_OUTBOUND_TRUNK_CREATED" => Some(Self::SipOutboundTrunkCreated),
8481 "SIP_OUTBOUND_TRUNK_DELETED" => Some(Self::SipOutboundTrunkDeleted),
8482 "SIP_DISPATCH_RULE_CREATED" => Some(Self::SipDispatchRuleCreated),
8483 "SIP_DISPATCH_RULE_DELETED" => Some(Self::SipDispatchRuleDeleted),
8484 "SIP_PARTICIPANT_CREATED" => Some(Self::SipParticipantCreated),
8485 "SIP_CALL_INCOMING" => Some(Self::SipCallIncoming),
8486 "SIP_CALL_STARTED" => Some(Self::SipCallStarted),
8487 "SIP_CALL_ENDED" => Some(Self::SipCallEnded),
8488 "SIP_TRANSFER_REQUESTED" => Some(Self::SipTransferRequested),
8489 "SIP_TRANSFER_COMPLETE" => Some(Self::SipTransferComplete),
8490 "SIP_CALL_UPDATE" => Some(Self::SipCallUpdate),
8491 "REPORT" => Some(Self::Report),
8492 "API_CALL" => Some(Self::ApiCall),
8493 "WEBHOOK" => Some(Self::Webhook),
8494 _ => None,
8495 }
8496 }
8497}
8498include!("livekit.serde.rs");
8499