1#[allow(clippy::derive_partial_eq_without_eq)]
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct MetricsBatch {
6 #[prost(int64, tag="1")]
8 pub timestamp_ms: i64,
9 #[prost(message, optional, tag="2")]
10 pub normalized_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
11 #[prost(string, repeated, tag="3")]
18 pub str_data: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
19 #[prost(message, repeated, tag="4")]
20 pub time_series: ::prost::alloc::vec::Vec<TimeSeriesMetric>,
21 #[prost(message, repeated, tag="5")]
22 pub events: ::prost::alloc::vec::Vec<EventMetric>,
23}
24#[allow(clippy::derive_partial_eq_without_eq)]
25#[derive(Clone, PartialEq, ::prost::Message)]
26pub struct TimeSeriesMetric {
27 #[prost(uint32, tag="1")]
30 pub label: u32,
31 #[prost(uint32, tag="2")]
33 pub participant_identity: u32,
34 #[prost(uint32, tag="3")]
36 pub track_sid: u32,
37 #[prost(message, repeated, tag="4")]
38 pub samples: ::prost::alloc::vec::Vec<MetricSample>,
39 #[prost(uint32, tag="5")]
41 pub rid: u32,
42}
43#[allow(clippy::derive_partial_eq_without_eq)]
44#[derive(Clone, PartialEq, ::prost::Message)]
45pub struct MetricSample {
46 #[prost(int64, tag="1")]
48 pub timestamp_ms: i64,
49 #[prost(message, optional, tag="2")]
50 pub normalized_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
51 #[prost(float, tag="3")]
52 pub value: f32,
53}
54#[allow(clippy::derive_partial_eq_without_eq)]
55#[derive(Clone, PartialEq, ::prost::Message)]
56pub struct EventMetric {
57 #[prost(uint32, tag="1")]
58 pub label: u32,
59 #[prost(uint32, tag="2")]
61 pub participant_identity: u32,
62 #[prost(uint32, tag="3")]
64 pub track_sid: u32,
65 #[prost(int64, tag="4")]
67 pub start_timestamp_ms: i64,
68 #[prost(int64, optional, tag="5")]
70 pub end_timestamp_ms: ::core::option::Option<i64>,
71 #[prost(message, optional, tag="6")]
72 pub normalized_start_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
73 #[prost(message, optional, tag="7")]
74 pub normalized_end_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
75 #[prost(string, tag="8")]
76 pub metadata: ::prost::alloc::string::String,
77 #[prost(uint32, tag="9")]
79 pub rid: u32,
80}
81#[allow(clippy::derive_partial_eq_without_eq)]
82#[derive(Clone, PartialEq, ::prost::Message)]
83pub struct MetricsRecordingHeader {
84 #[prost(string, tag="1")]
85 pub room_id: ::prost::alloc::string::String,
86 #[prost(uint64, tag="3")]
88 pub duration: u64,
89 #[prost(message, optional, tag="4")]
90 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
91 #[prost(map="string, string", tag="5")]
92 pub room_tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
93 #[prost(string, tag="6")]
94 pub room_name: ::prost::alloc::string::String,
95 #[prost(message, optional, tag="7")]
96 pub room_start_time: ::core::option::Option<::pbjson_types::Timestamp>,
97}
98#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
108#[repr(i32)]
109pub enum MetricLabel {
110 AgentsLlmTtft = 0,
112 AgentsSttTtft = 1,
114 AgentsTtsTtfb = 2,
116 ClientVideoSubscriberFreezeCount = 3,
118 ClientVideoSubscriberTotalFreezeDuration = 4,
120 ClientVideoSubscriberPauseCount = 5,
122 ClientVideoSubscriberTotalPausesDuration = 6,
124 ClientAudioSubscriberConcealedSamples = 7,
126 ClientAudioSubscriberSilentConcealedSamples = 8,
128 ClientAudioSubscriberConcealmentEvents = 9,
130 ClientAudioSubscriberInterruptionCount = 10,
132 ClientAudioSubscriberTotalInterruptionDuration = 11,
134 ClientSubscriberJitterBufferDelay = 12,
136 ClientSubscriberJitterBufferEmittedCount = 13,
138 ClientVideoPublisherQualityLimitationDurationBandwidth = 14,
140 ClientVideoPublisherQualityLimitationDurationCpu = 15,
142 ClientVideoPublisherQualityLimitationDurationOther = 16,
144 PublisherRtt = 17,
146 ServerMeshRtt = 18,
148 SubscriberRtt = 19,
150 PredefinedMaxValue = 4096,
151}
152impl MetricLabel {
153 pub fn as_str_name(&self) -> &'static str {
158 match self {
159 MetricLabel::AgentsLlmTtft => "AGENTS_LLM_TTFT",
160 MetricLabel::AgentsSttTtft => "AGENTS_STT_TTFT",
161 MetricLabel::AgentsTtsTtfb => "AGENTS_TTS_TTFB",
162 MetricLabel::ClientVideoSubscriberFreezeCount => "CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT",
163 MetricLabel::ClientVideoSubscriberTotalFreezeDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION",
164 MetricLabel::ClientVideoSubscriberPauseCount => "CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT",
165 MetricLabel::ClientVideoSubscriberTotalPausesDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION",
166 MetricLabel::ClientAudioSubscriberConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES",
167 MetricLabel::ClientAudioSubscriberSilentConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES",
168 MetricLabel::ClientAudioSubscriberConcealmentEvents => "CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS",
169 MetricLabel::ClientAudioSubscriberInterruptionCount => "CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT",
170 MetricLabel::ClientAudioSubscriberTotalInterruptionDuration => "CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION",
171 MetricLabel::ClientSubscriberJitterBufferDelay => "CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY",
172 MetricLabel::ClientSubscriberJitterBufferEmittedCount => "CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT",
173 MetricLabel::ClientVideoPublisherQualityLimitationDurationBandwidth => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH",
174 MetricLabel::ClientVideoPublisherQualityLimitationDurationCpu => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU",
175 MetricLabel::ClientVideoPublisherQualityLimitationDurationOther => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER",
176 MetricLabel::PublisherRtt => "PUBLISHER_RTT",
177 MetricLabel::ServerMeshRtt => "SERVER_MESH_RTT",
178 MetricLabel::SubscriberRtt => "SUBSCRIBER_RTT",
179 MetricLabel::PredefinedMaxValue => "METRIC_LABEL_PREDEFINED_MAX_VALUE",
180 }
181 }
182 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
184 match value {
185 "AGENTS_LLM_TTFT" => Some(Self::AgentsLlmTtft),
186 "AGENTS_STT_TTFT" => Some(Self::AgentsSttTtft),
187 "AGENTS_TTS_TTFB" => Some(Self::AgentsTtsTtfb),
188 "CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT" => Some(Self::ClientVideoSubscriberFreezeCount),
189 "CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION" => Some(Self::ClientVideoSubscriberTotalFreezeDuration),
190 "CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT" => Some(Self::ClientVideoSubscriberPauseCount),
191 "CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION" => Some(Self::ClientVideoSubscriberTotalPausesDuration),
192 "CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberConcealedSamples),
193 "CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberSilentConcealedSamples),
194 "CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS" => Some(Self::ClientAudioSubscriberConcealmentEvents),
195 "CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT" => Some(Self::ClientAudioSubscriberInterruptionCount),
196 "CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION" => Some(Self::ClientAudioSubscriberTotalInterruptionDuration),
197 "CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY" => Some(Self::ClientSubscriberJitterBufferDelay),
198 "CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT" => Some(Self::ClientSubscriberJitterBufferEmittedCount),
199 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH" => Some(Self::ClientVideoPublisherQualityLimitationDurationBandwidth),
200 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU" => Some(Self::ClientVideoPublisherQualityLimitationDurationCpu),
201 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER" => Some(Self::ClientVideoPublisherQualityLimitationDurationOther),
202 "PUBLISHER_RTT" => Some(Self::PublisherRtt),
203 "SERVER_MESH_RTT" => Some(Self::ServerMeshRtt),
204 "SUBSCRIBER_RTT" => Some(Self::SubscriberRtt),
205 "METRIC_LABEL_PREDEFINED_MAX_VALUE" => Some(Self::PredefinedMaxValue),
206 _ => None,
207 }
208 }
209}
210#[allow(clippy::derive_partial_eq_without_eq)]
211#[derive(Clone, PartialEq, ::prost::Message)]
212pub struct Pagination {
213 #[prost(string, tag="1")]
215 pub after_id: ::prost::alloc::string::String,
216 #[prost(int32, tag="2")]
217 pub limit: i32,
218}
219#[allow(clippy::derive_partial_eq_without_eq)]
220#[derive(Clone, PartialEq, ::prost::Message)]
221pub struct TokenPagination {
222 #[prost(string, tag="1")]
223 pub token: ::prost::alloc::string::String,
224}
225#[allow(clippy::derive_partial_eq_without_eq)]
227#[derive(Clone, PartialEq, ::prost::Message)]
228pub struct ListUpdate {
229 #[prost(string, repeated, tag="1")]
231 pub set: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
232 #[prost(string, repeated, tag="2")]
234 pub add: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
235 #[prost(string, repeated, tag="3")]
237 pub remove: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
238 #[prost(bool, tag="4")]
240 pub clear: bool,
241}
242#[allow(clippy::derive_partial_eq_without_eq)]
243#[derive(Clone, PartialEq, ::prost::Message)]
244pub struct Room {
245 #[prost(string, tag="1")]
246 pub sid: ::prost::alloc::string::String,
247 #[prost(string, tag="2")]
248 pub name: ::prost::alloc::string::String,
249 #[prost(uint32, tag="3")]
250 pub empty_timeout: u32,
251 #[prost(uint32, tag="14")]
252 pub departure_timeout: u32,
253 #[prost(uint32, tag="4")]
254 pub max_participants: u32,
255 #[prost(int64, tag="5")]
256 pub creation_time: i64,
257 #[prost(int64, tag="15")]
258 pub creation_time_ms: i64,
259 #[prost(string, tag="6")]
260 pub turn_password: ::prost::alloc::string::String,
261 #[prost(message, repeated, tag="7")]
262 pub enabled_codecs: ::prost::alloc::vec::Vec<Codec>,
263 #[prost(string, tag="8")]
264 pub metadata: ::prost::alloc::string::String,
265 #[prost(uint32, tag="9")]
266 pub num_participants: u32,
267 #[prost(uint32, tag="11")]
268 pub num_publishers: u32,
269 #[prost(bool, tag="10")]
270 pub active_recording: bool,
271 #[prost(message, optional, tag="13")]
272 pub version: ::core::option::Option<TimedVersion>,
273}
274#[allow(clippy::derive_partial_eq_without_eq)]
275#[derive(Clone, PartialEq, ::prost::Message)]
276pub struct Codec {
277 #[prost(string, tag="1")]
278 pub mime: ::prost::alloc::string::String,
279 #[prost(string, tag="2")]
280 pub fmtp_line: ::prost::alloc::string::String,
281}
282#[allow(clippy::derive_partial_eq_without_eq)]
283#[derive(Clone, PartialEq, ::prost::Message)]
284pub struct PlayoutDelay {
285 #[prost(bool, tag="1")]
286 pub enabled: bool,
287 #[prost(uint32, tag="2")]
288 pub min: u32,
289 #[prost(uint32, tag="3")]
290 pub max: u32,
291}
292#[allow(clippy::derive_partial_eq_without_eq)]
293#[derive(Clone, PartialEq, ::prost::Message)]
294pub struct ParticipantPermission {
295 #[prost(bool, tag="1")]
297 pub can_subscribe: bool,
298 #[prost(bool, tag="2")]
300 pub can_publish: bool,
301 #[prost(bool, tag="3")]
303 pub can_publish_data: bool,
304 #[prost(enumeration="TrackSource", repeated, tag="9")]
306 pub can_publish_sources: ::prost::alloc::vec::Vec<i32>,
307 #[prost(bool, tag="7")]
309 pub hidden: bool,
310 #[deprecated]
313 #[prost(bool, tag="8")]
314 pub recorder: bool,
315 #[prost(bool, tag="10")]
317 pub can_update_metadata: bool,
318 #[deprecated]
321 #[prost(bool, tag="11")]
322 pub agent: bool,
323 #[prost(bool, tag="12")]
325 pub can_subscribe_metrics: bool,
326 #[prost(bool, tag="13")]
328 pub can_manage_agent_session: bool,
329}
330#[allow(clippy::derive_partial_eq_without_eq)]
331#[derive(Clone, PartialEq, ::prost::Message)]
332pub struct ParticipantInfo {
333 #[prost(string, tag="1")]
334 pub sid: ::prost::alloc::string::String,
335 #[prost(string, tag="2")]
336 pub identity: ::prost::alloc::string::String,
337 #[prost(enumeration="participant_info::State", tag="3")]
338 pub state: i32,
339 #[prost(message, repeated, tag="4")]
340 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
341 #[prost(string, tag="5")]
342 pub metadata: ::prost::alloc::string::String,
343 #[prost(int64, tag="6")]
345 pub joined_at: i64,
346 #[prost(int64, tag="17")]
348 pub joined_at_ms: i64,
349 #[prost(string, tag="9")]
350 pub name: ::prost::alloc::string::String,
351 #[prost(uint32, tag="10")]
352 pub version: u32,
353 #[prost(message, optional, tag="11")]
354 pub permission: ::core::option::Option<ParticipantPermission>,
355 #[prost(string, tag="12")]
356 pub region: ::prost::alloc::string::String,
357 #[prost(bool, tag="13")]
360 pub is_publisher: bool,
361 #[prost(enumeration="participant_info::Kind", tag="14")]
362 pub kind: i32,
363 #[prost(map="string, string", tag="15")]
364 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
365 #[prost(enumeration="DisconnectReason", tag="16")]
366 pub disconnect_reason: i32,
367 #[prost(enumeration="participant_info::KindDetail", repeated, tag="18")]
368 pub kind_details: ::prost::alloc::vec::Vec<i32>,
369 #[prost(message, repeated, tag="19")]
370 pub data_tracks: ::prost::alloc::vec::Vec<DataTrackInfo>,
371 #[prost(int32, tag="20")]
373 pub client_protocol: i32,
374}
375pub mod participant_info {
377 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
378 #[repr(i32)]
379 pub enum State {
380 Joining = 0,
382 Joined = 1,
384 Active = 2,
386 Disconnected = 3,
388 }
389 impl State {
390 pub fn as_str_name(&self) -> &'static str {
395 match self {
396 State::Joining => "JOINING",
397 State::Joined => "JOINED",
398 State::Active => "ACTIVE",
399 State::Disconnected => "DISCONNECTED",
400 }
401 }
402 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
404 match value {
405 "JOINING" => Some(Self::Joining),
406 "JOINED" => Some(Self::Joined),
407 "ACTIVE" => Some(Self::Active),
408 "DISCONNECTED" => Some(Self::Disconnected),
409 _ => None,
410 }
411 }
412 }
413 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
414 #[repr(i32)]
415 pub enum Kind {
416 Standard = 0,
418 Ingress = 1,
420 Egress = 2,
422 Sip = 3,
424 Agent = 4,
426 Connector = 7,
428 Bridge = 8,
432 }
433 impl Kind {
434 pub fn as_str_name(&self) -> &'static str {
439 match self {
440 Kind::Standard => "STANDARD",
441 Kind::Ingress => "INGRESS",
442 Kind::Egress => "EGRESS",
443 Kind::Sip => "SIP",
444 Kind::Agent => "AGENT",
445 Kind::Connector => "CONNECTOR",
446 Kind::Bridge => "BRIDGE",
447 }
448 }
449 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
451 match value {
452 "STANDARD" => Some(Self::Standard),
453 "INGRESS" => Some(Self::Ingress),
454 "EGRESS" => Some(Self::Egress),
455 "SIP" => Some(Self::Sip),
456 "AGENT" => Some(Self::Agent),
457 "CONNECTOR" => Some(Self::Connector),
458 "BRIDGE" => Some(Self::Bridge),
459 _ => None,
460 }
461 }
462 }
463 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
464 #[repr(i32)]
465 pub enum KindDetail {
466 CloudAgent = 0,
467 Forwarded = 1,
468 ConnectorWhatsapp = 2,
469 ConnectorTwilio = 3,
470 BridgeRtsp = 4,
472 }
473 impl KindDetail {
474 pub fn as_str_name(&self) -> &'static str {
479 match self {
480 KindDetail::CloudAgent => "CLOUD_AGENT",
481 KindDetail::Forwarded => "FORWARDED",
482 KindDetail::ConnectorWhatsapp => "CONNECTOR_WHATSAPP",
483 KindDetail::ConnectorTwilio => "CONNECTOR_TWILIO",
484 KindDetail::BridgeRtsp => "BRIDGE_RTSP",
485 }
486 }
487 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
489 match value {
490 "CLOUD_AGENT" => Some(Self::CloudAgent),
491 "FORWARDED" => Some(Self::Forwarded),
492 "CONNECTOR_WHATSAPP" => Some(Self::ConnectorWhatsapp),
493 "CONNECTOR_TWILIO" => Some(Self::ConnectorTwilio),
494 "BRIDGE_RTSP" => Some(Self::BridgeRtsp),
495 _ => None,
496 }
497 }
498 }
499}
500#[allow(clippy::derive_partial_eq_without_eq)]
501#[derive(Clone, PartialEq, ::prost::Message)]
502pub struct Encryption {
503}
504pub mod encryption {
506 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
507 #[repr(i32)]
508 pub enum Type {
509 None = 0,
510 Gcm = 1,
511 Custom = 2,
512 }
513 impl Type {
514 pub fn as_str_name(&self) -> &'static str {
519 match self {
520 Type::None => "NONE",
521 Type::Gcm => "GCM",
522 Type::Custom => "CUSTOM",
523 }
524 }
525 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
527 match value {
528 "NONE" => Some(Self::None),
529 "GCM" => Some(Self::Gcm),
530 "CUSTOM" => Some(Self::Custom),
531 _ => None,
532 }
533 }
534 }
535}
536#[allow(clippy::derive_partial_eq_without_eq)]
537#[derive(Clone, PartialEq, ::prost::Message)]
538pub struct SimulcastCodecInfo {
539 #[prost(string, tag="1")]
540 pub mime_type: ::prost::alloc::string::String,
541 #[prost(string, tag="2")]
542 pub mid: ::prost::alloc::string::String,
543 #[prost(string, tag="3")]
544 pub cid: ::prost::alloc::string::String,
545 #[prost(message, repeated, tag="4")]
546 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
547 #[prost(enumeration="video_layer::Mode", tag="5")]
548 pub video_layer_mode: i32,
549 #[prost(string, tag="6")]
554 pub sdp_cid: ::prost::alloc::string::String,
555}
556#[allow(clippy::derive_partial_eq_without_eq)]
557#[derive(Clone, PartialEq, ::prost::Message)]
558pub struct TrackInfo {
559 #[prost(string, tag="1")]
560 pub sid: ::prost::alloc::string::String,
561 #[prost(enumeration="TrackType", tag="2")]
562 pub r#type: i32,
563 #[prost(string, tag="3")]
564 pub name: ::prost::alloc::string::String,
565 #[prost(bool, tag="4")]
566 pub muted: bool,
567 #[prost(uint32, tag="5")]
570 pub width: u32,
571 #[prost(uint32, tag="6")]
573 pub height: u32,
574 #[deprecated]
578 #[prost(bool, tag="7")]
579 pub simulcast: bool,
580 #[deprecated]
584 #[prost(bool, tag="8")]
585 pub disable_dtx: bool,
586 #[prost(enumeration="TrackSource", tag="9")]
588 pub source: i32,
589 #[deprecated]
591 #[prost(message, repeated, tag="10")]
592 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
593 #[prost(string, tag="11")]
595 pub mime_type: ::prost::alloc::string::String,
596 #[prost(string, tag="12")]
597 pub mid: ::prost::alloc::string::String,
598 #[prost(message, repeated, tag="13")]
599 pub codecs: ::prost::alloc::vec::Vec<SimulcastCodecInfo>,
600 #[deprecated]
602 #[prost(bool, tag="14")]
603 pub stereo: bool,
604 #[prost(bool, tag="15")]
606 pub disable_red: bool,
607 #[prost(enumeration="encryption::Type", tag="16")]
608 pub encryption: i32,
609 #[prost(string, tag="17")]
610 pub stream: ::prost::alloc::string::String,
611 #[prost(message, optional, tag="18")]
612 pub version: ::core::option::Option<TimedVersion>,
613 #[prost(enumeration="AudioTrackFeature", repeated, tag="19")]
614 pub audio_features: ::prost::alloc::vec::Vec<i32>,
615 #[prost(enumeration="BackupCodecPolicy", tag="20")]
616 pub backup_codec_policy: i32,
617 #[prost(enumeration="PacketTrailerFeature", repeated, tag="21")]
618 pub packet_trailer_features: ::prost::alloc::vec::Vec<i32>,
619}
620#[allow(clippy::derive_partial_eq_without_eq)]
621#[derive(Clone, PartialEq, ::prost::Message)]
622pub struct DataTrackInfo {
623 #[prost(uint32, tag="1")]
625 pub pub_handle: u32,
626 #[prost(string, tag="2")]
628 pub sid: ::prost::alloc::string::String,
629 #[prost(string, tag="3")]
631 pub name: ::prost::alloc::string::String,
632 #[prost(enumeration="encryption::Type", tag="4")]
634 pub encryption: i32,
635}
636#[allow(clippy::derive_partial_eq_without_eq)]
637#[derive(Clone, PartialEq, ::prost::Message)]
638pub struct DataTrackExtensionParticipantSid {
639 #[prost(enumeration="DataTrackExtensionId", tag="1")]
640 pub id: i32,
641 #[prost(string, tag="2")]
642 pub participant_sid: ::prost::alloc::string::String,
643}
644#[allow(clippy::derive_partial_eq_without_eq)]
645#[derive(Clone, PartialEq, ::prost::Message)]
646pub struct DataTrackSubscriptionOptions {
647 #[prost(uint32, optional, tag="1")]
650 pub target_fps: ::core::option::Option<u32>,
651}
652#[allow(clippy::derive_partial_eq_without_eq)]
654#[derive(Clone, PartialEq, ::prost::Message)]
655pub struct VideoLayer {
656 #[prost(enumeration="VideoQuality", tag="1")]
658 pub quality: i32,
659 #[prost(uint32, tag="2")]
660 pub width: u32,
661 #[prost(uint32, tag="3")]
662 pub height: u32,
663 #[prost(uint32, tag="4")]
665 pub bitrate: u32,
666 #[prost(uint32, tag="5")]
667 pub ssrc: u32,
668 #[prost(int32, tag="6")]
669 pub spatial_layer: i32,
670 #[prost(string, tag="7")]
671 pub rid: ::prost::alloc::string::String,
672 #[prost(uint32, tag="8")]
673 pub repair_ssrc: u32,
674}
675pub mod video_layer {
677 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
678 #[repr(i32)]
679 pub enum Mode {
680 Unused = 0,
681 OneSpatialLayerPerStream = 1,
682 MultipleSpatialLayersPerStream = 2,
683 OneSpatialLayerPerStreamIncompleteRtcpSr = 3,
684 }
685 impl Mode {
686 pub fn as_str_name(&self) -> &'static str {
691 match self {
692 Mode::Unused => "MODE_UNUSED",
693 Mode::OneSpatialLayerPerStream => "ONE_SPATIAL_LAYER_PER_STREAM",
694 Mode::MultipleSpatialLayersPerStream => "MULTIPLE_SPATIAL_LAYERS_PER_STREAM",
695 Mode::OneSpatialLayerPerStreamIncompleteRtcpSr => "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR",
696 }
697 }
698 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
700 match value {
701 "MODE_UNUSED" => Some(Self::Unused),
702 "ONE_SPATIAL_LAYER_PER_STREAM" => Some(Self::OneSpatialLayerPerStream),
703 "MULTIPLE_SPATIAL_LAYERS_PER_STREAM" => Some(Self::MultipleSpatialLayersPerStream),
704 "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR" => Some(Self::OneSpatialLayerPerStreamIncompleteRtcpSr),
705 _ => None,
706 }
707 }
708 }
709}
710#[allow(clippy::derive_partial_eq_without_eq)]
712#[derive(Clone, PartialEq, ::prost::Message)]
713pub struct DataPacket {
714 #[deprecated]
715 #[prost(enumeration="data_packet::Kind", tag="1")]
716 pub kind: i32,
717 #[prost(string, tag="4")]
719 pub participant_identity: ::prost::alloc::string::String,
720 #[prost(string, repeated, tag="5")]
722 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
723 #[prost(uint32, tag="16")]
725 pub sequence: u32,
726 #[prost(string, tag="17")]
728 pub participant_sid: ::prost::alloc::string::String,
729 #[prost(oneof="data_packet::Value", tags="2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18")]
730 pub value: ::core::option::Option<data_packet::Value>,
731}
732pub mod data_packet {
734 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
735 #[repr(i32)]
736 pub enum Kind {
737 Reliable = 0,
738 Lossy = 1,
739 }
740 impl Kind {
741 pub fn as_str_name(&self) -> &'static str {
746 match self {
747 Kind::Reliable => "RELIABLE",
748 Kind::Lossy => "LOSSY",
749 }
750 }
751 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
753 match value {
754 "RELIABLE" => Some(Self::Reliable),
755 "LOSSY" => Some(Self::Lossy),
756 _ => None,
757 }
758 }
759 }
760 #[allow(clippy::derive_partial_eq_without_eq)]
761#[derive(Clone, PartialEq, ::prost::Oneof)]
762 pub enum Value {
763 #[prost(message, tag="2")]
764 User(super::UserPacket),
765 #[prost(message, tag="3")]
766 Speaker(super::ActiveSpeakerUpdate),
767 #[prost(message, tag="6")]
768 SipDtmf(super::SipDtmf),
769 #[prost(message, tag="7")]
770 Transcription(super::Transcription),
771 #[prost(message, tag="8")]
772 Metrics(super::MetricsBatch),
773 #[prost(message, tag="9")]
774 ChatMessage(super::ChatMessage),
775 #[prost(message, tag="10")]
776 RpcRequest(super::RpcRequest),
777 #[prost(message, tag="11")]
778 RpcAck(super::RpcAck),
779 #[prost(message, tag="12")]
780 RpcResponse(super::RpcResponse),
781 #[prost(message, tag="13")]
782 StreamHeader(super::data_stream::Header),
783 #[prost(message, tag="14")]
784 StreamChunk(super::data_stream::Chunk),
785 #[prost(message, tag="15")]
786 StreamTrailer(super::data_stream::Trailer),
787 #[prost(message, tag="18")]
788 EncryptedPacket(super::EncryptedPacket),
789 }
790}
791#[allow(clippy::derive_partial_eq_without_eq)]
792#[derive(Clone, PartialEq, ::prost::Message)]
793pub struct EncryptedPacket {
794 #[prost(enumeration="encryption::Type", tag="1")]
795 pub encryption_type: i32,
796 #[prost(bytes="vec", tag="2")]
797 pub iv: ::prost::alloc::vec::Vec<u8>,
798 #[prost(uint32, tag="3")]
799 pub key_index: u32,
800 #[prost(bytes="vec", tag="4")]
802 pub encrypted_value: ::prost::alloc::vec::Vec<u8>,
803}
804#[allow(clippy::derive_partial_eq_without_eq)]
805#[derive(Clone, PartialEq, ::prost::Message)]
806pub struct EncryptedPacketPayload {
807 #[prost(oneof="encrypted_packet_payload::Value", tags="1, 3, 4, 5, 6, 7, 8, 9")]
808 pub value: ::core::option::Option<encrypted_packet_payload::Value>,
809}
810pub mod encrypted_packet_payload {
812 #[allow(clippy::derive_partial_eq_without_eq)]
813#[derive(Clone, PartialEq, ::prost::Oneof)]
814 pub enum Value {
815 #[prost(message, tag="1")]
816 User(super::UserPacket),
817 #[prost(message, tag="3")]
818 ChatMessage(super::ChatMessage),
819 #[prost(message, tag="4")]
820 RpcRequest(super::RpcRequest),
821 #[prost(message, tag="5")]
822 RpcAck(super::RpcAck),
823 #[prost(message, tag="6")]
824 RpcResponse(super::RpcResponse),
825 #[prost(message, tag="7")]
826 StreamHeader(super::data_stream::Header),
827 #[prost(message, tag="8")]
828 StreamChunk(super::data_stream::Chunk),
829 #[prost(message, tag="9")]
830 StreamTrailer(super::data_stream::Trailer),
831 }
832}
833#[allow(clippy::derive_partial_eq_without_eq)]
834#[derive(Clone, PartialEq, ::prost::Message)]
835pub struct ActiveSpeakerUpdate {
836 #[prost(message, repeated, tag="1")]
837 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
838}
839#[allow(clippy::derive_partial_eq_without_eq)]
840#[derive(Clone, PartialEq, ::prost::Message)]
841pub struct SpeakerInfo {
842 #[prost(string, tag="1")]
843 pub sid: ::prost::alloc::string::String,
844 #[prost(float, tag="2")]
846 pub level: f32,
847 #[prost(bool, tag="3")]
849 pub active: bool,
850}
851#[allow(clippy::derive_partial_eq_without_eq)]
852#[derive(Clone, PartialEq, ::prost::Message)]
853pub struct UserPacket {
854 #[deprecated]
856 #[prost(string, tag="1")]
857 pub participant_sid: ::prost::alloc::string::String,
858 #[deprecated]
859 #[prost(string, tag="5")]
860 pub participant_identity: ::prost::alloc::string::String,
861 #[prost(bytes="vec", tag="2")]
863 pub payload: ::prost::alloc::vec::Vec<u8>,
864 #[deprecated]
866 #[prost(string, repeated, tag="3")]
867 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
868 #[deprecated]
870 #[prost(string, repeated, tag="6")]
871 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
872 #[prost(string, optional, tag="4")]
874 pub topic: ::core::option::Option<::prost::alloc::string::String>,
875 #[prost(string, optional, tag="8")]
877 pub id: ::core::option::Option<::prost::alloc::string::String>,
878 #[prost(uint64, optional, tag="9")]
880 pub start_time: ::core::option::Option<u64>,
881 #[prost(uint64, optional, tag="10")]
882 pub end_time: ::core::option::Option<u64>,
883 #[prost(bytes="vec", tag="11")]
885 pub nonce: ::prost::alloc::vec::Vec<u8>,
886}
887#[allow(clippy::derive_partial_eq_without_eq)]
888#[derive(Clone, PartialEq, ::prost::Message)]
889pub struct SipDtmf {
890 #[prost(uint32, tag="3")]
891 pub code: u32,
892 #[prost(string, tag="4")]
893 pub digit: ::prost::alloc::string::String,
894}
895#[allow(clippy::derive_partial_eq_without_eq)]
896#[derive(Clone, PartialEq, ::prost::Message)]
897pub struct Transcription {
898 #[prost(string, tag="2")]
900 pub transcribed_participant_identity: ::prost::alloc::string::String,
901 #[prost(string, tag="3")]
902 pub track_id: ::prost::alloc::string::String,
903 #[prost(message, repeated, tag="4")]
904 pub segments: ::prost::alloc::vec::Vec<TranscriptionSegment>,
905}
906#[allow(clippy::derive_partial_eq_without_eq)]
907#[derive(Clone, PartialEq, ::prost::Message)]
908pub struct TranscriptionSegment {
909 #[prost(string, tag="1")]
910 pub id: ::prost::alloc::string::String,
911 #[prost(string, tag="2")]
912 pub text: ::prost::alloc::string::String,
913 #[prost(uint64, tag="3")]
914 pub start_time: u64,
915 #[prost(uint64, tag="4")]
916 pub end_time: u64,
917 #[prost(bool, tag="5")]
918 pub r#final: bool,
919 #[prost(string, tag="6")]
920 pub language: ::prost::alloc::string::String,
921}
922#[allow(clippy::derive_partial_eq_without_eq)]
923#[derive(Clone, PartialEq, ::prost::Message)]
924pub struct ChatMessage {
925 #[prost(string, tag="1")]
927 pub id: ::prost::alloc::string::String,
928 #[prost(int64, tag="2")]
929 pub timestamp: i64,
930 #[prost(int64, optional, tag="3")]
932 pub edit_timestamp: ::core::option::Option<i64>,
933 #[prost(string, tag="4")]
934 pub message: ::prost::alloc::string::String,
935 #[prost(bool, tag="5")]
937 pub deleted: bool,
938 #[prost(bool, tag="6")]
940 pub generated: bool,
941}
942#[allow(clippy::derive_partial_eq_without_eq)]
943#[derive(Clone, PartialEq, ::prost::Message)]
944pub struct RpcRequest {
945 #[prost(string, tag="1")]
946 pub id: ::prost::alloc::string::String,
947 #[prost(string, tag="2")]
948 pub method: ::prost::alloc::string::String,
949 #[prost(string, tag="3")]
950 pub payload: ::prost::alloc::string::String,
951 #[prost(uint32, tag="4")]
952 pub response_timeout_ms: u32,
953 #[prost(uint32, tag="5")]
954 pub version: u32,
955 #[prost(bytes="vec", tag="6")]
957 pub compressed_payload: ::prost::alloc::vec::Vec<u8>,
958}
959#[allow(clippy::derive_partial_eq_without_eq)]
960#[derive(Clone, PartialEq, ::prost::Message)]
961pub struct RpcAck {
962 #[prost(string, tag="1")]
963 pub request_id: ::prost::alloc::string::String,
964}
965#[allow(clippy::derive_partial_eq_without_eq)]
966#[derive(Clone, PartialEq, ::prost::Message)]
967pub struct RpcResponse {
968 #[prost(string, tag="1")]
969 pub request_id: ::prost::alloc::string::String,
970 #[prost(oneof="rpc_response::Value", tags="2, 3, 4")]
971 pub value: ::core::option::Option<rpc_response::Value>,
972}
973pub mod rpc_response {
975 #[allow(clippy::derive_partial_eq_without_eq)]
976#[derive(Clone, PartialEq, ::prost::Oneof)]
977 pub enum Value {
978 #[prost(string, tag="2")]
979 Payload(::prost::alloc::string::String),
980 #[prost(message, tag="3")]
981 Error(super::RpcError),
982 #[prost(bytes, tag="4")]
984 CompressedPayload(::prost::alloc::vec::Vec<u8>),
985 }
986}
987#[allow(clippy::derive_partial_eq_without_eq)]
988#[derive(Clone, PartialEq, ::prost::Message)]
989pub struct RpcError {
990 #[prost(uint32, tag="1")]
991 pub code: u32,
992 #[prost(string, tag="2")]
993 pub message: ::prost::alloc::string::String,
994 #[prost(string, tag="3")]
995 pub data: ::prost::alloc::string::String,
996}
997#[allow(clippy::derive_partial_eq_without_eq)]
998#[derive(Clone, PartialEq, ::prost::Message)]
999pub struct ParticipantTracks {
1000 #[prost(string, tag="1")]
1002 pub participant_sid: ::prost::alloc::string::String,
1003 #[prost(string, repeated, tag="2")]
1004 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1005}
1006#[allow(clippy::derive_partial_eq_without_eq)]
1008#[derive(Clone, PartialEq, ::prost::Message)]
1009pub struct ServerInfo {
1010 #[prost(enumeration="server_info::Edition", tag="1")]
1011 pub edition: i32,
1012 #[prost(string, tag="2")]
1013 pub version: ::prost::alloc::string::String,
1014 #[prost(int32, tag="3")]
1015 pub protocol: i32,
1016 #[prost(string, tag="4")]
1017 pub region: ::prost::alloc::string::String,
1018 #[prost(string, tag="5")]
1019 pub node_id: ::prost::alloc::string::String,
1020 #[prost(string, tag="6")]
1022 pub debug_info: ::prost::alloc::string::String,
1023 #[prost(int32, tag="7")]
1024 pub agent_protocol: i32,
1025}
1026pub mod server_info {
1028 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1029 #[repr(i32)]
1030 pub enum Edition {
1031 Standard = 0,
1032 Cloud = 1,
1033 }
1034 impl Edition {
1035 pub fn as_str_name(&self) -> &'static str {
1040 match self {
1041 Edition::Standard => "Standard",
1042 Edition::Cloud => "Cloud",
1043 }
1044 }
1045 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1047 match value {
1048 "Standard" => Some(Self::Standard),
1049 "Cloud" => Some(Self::Cloud),
1050 _ => None,
1051 }
1052 }
1053 }
1054}
1055#[allow(clippy::derive_partial_eq_without_eq)]
1057#[derive(Clone, PartialEq, ::prost::Message)]
1058pub struct ClientInfo {
1059 #[prost(enumeration="client_info::Sdk", tag="1")]
1060 pub sdk: i32,
1061 #[prost(string, tag="2")]
1062 pub version: ::prost::alloc::string::String,
1063 #[prost(int32, tag="3")]
1064 pub protocol: i32,
1065 #[prost(string, tag="4")]
1066 pub os: ::prost::alloc::string::String,
1067 #[prost(string, tag="5")]
1068 pub os_version: ::prost::alloc::string::String,
1069 #[prost(string, tag="6")]
1070 pub device_model: ::prost::alloc::string::String,
1071 #[prost(string, tag="7")]
1072 pub browser: ::prost::alloc::string::String,
1073 #[prost(string, tag="8")]
1074 pub browser_version: ::prost::alloc::string::String,
1075 #[prost(string, tag="9")]
1076 pub address: ::prost::alloc::string::String,
1077 #[prost(string, tag="10")]
1079 pub network: ::prost::alloc::string::String,
1080 #[prost(string, tag="11")]
1083 pub other_sdks: ::prost::alloc::string::String,
1084 #[prost(int32, tag="12")]
1086 pub client_protocol: i32,
1087 #[prost(enumeration="client_info::Capability", repeated, tag="13")]
1090 pub capabilities: ::prost::alloc::vec::Vec<i32>,
1091}
1092pub mod client_info {
1094 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1095 #[repr(i32)]
1096 pub enum Sdk {
1097 Unknown = 0,
1098 Js = 1,
1099 Swift = 2,
1100 Android = 3,
1101 Flutter = 4,
1102 Go = 5,
1103 Unity = 6,
1104 ReactNative = 7,
1105 Rust = 8,
1106 Python = 9,
1107 Cpp = 10,
1108 UnityWeb = 11,
1109 Node = 12,
1110 Unreal = 13,
1111 Esp32 = 14,
1112 }
1113 impl Sdk {
1114 pub fn as_str_name(&self) -> &'static str {
1119 match self {
1120 Sdk::Unknown => "UNKNOWN",
1121 Sdk::Js => "JS",
1122 Sdk::Swift => "SWIFT",
1123 Sdk::Android => "ANDROID",
1124 Sdk::Flutter => "FLUTTER",
1125 Sdk::Go => "GO",
1126 Sdk::Unity => "UNITY",
1127 Sdk::ReactNative => "REACT_NATIVE",
1128 Sdk::Rust => "RUST",
1129 Sdk::Python => "PYTHON",
1130 Sdk::Cpp => "CPP",
1131 Sdk::UnityWeb => "UNITY_WEB",
1132 Sdk::Node => "NODE",
1133 Sdk::Unreal => "UNREAL",
1134 Sdk::Esp32 => "ESP32",
1135 }
1136 }
1137 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1139 match value {
1140 "UNKNOWN" => Some(Self::Unknown),
1141 "JS" => Some(Self::Js),
1142 "SWIFT" => Some(Self::Swift),
1143 "ANDROID" => Some(Self::Android),
1144 "FLUTTER" => Some(Self::Flutter),
1145 "GO" => Some(Self::Go),
1146 "UNITY" => Some(Self::Unity),
1147 "REACT_NATIVE" => Some(Self::ReactNative),
1148 "RUST" => Some(Self::Rust),
1149 "PYTHON" => Some(Self::Python),
1150 "CPP" => Some(Self::Cpp),
1151 "UNITY_WEB" => Some(Self::UnityWeb),
1152 "NODE" => Some(Self::Node),
1153 "UNREAL" => Some(Self::Unreal),
1154 "ESP32" => Some(Self::Esp32),
1155 _ => None,
1156 }
1157 }
1158 }
1159 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1164 #[repr(i32)]
1165 pub enum Capability {
1166 CapUnused = 0,
1167 CapPacketTrailer = 1,
1168 }
1169 impl Capability {
1170 pub fn as_str_name(&self) -> &'static str {
1175 match self {
1176 Capability::CapUnused => "CAP_UNUSED",
1177 Capability::CapPacketTrailer => "CAP_PACKET_TRAILER",
1178 }
1179 }
1180 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1182 match value {
1183 "CAP_UNUSED" => Some(Self::CapUnused),
1184 "CAP_PACKET_TRAILER" => Some(Self::CapPacketTrailer),
1185 _ => None,
1186 }
1187 }
1188 }
1189}
1190#[allow(clippy::derive_partial_eq_without_eq)]
1192#[derive(Clone, PartialEq, ::prost::Message)]
1193pub struct ClientConfiguration {
1194 #[prost(message, optional, tag="1")]
1195 pub video: ::core::option::Option<VideoConfiguration>,
1196 #[prost(message, optional, tag="2")]
1197 pub screen: ::core::option::Option<VideoConfiguration>,
1198 #[prost(enumeration="ClientConfigSetting", tag="3")]
1199 pub resume_connection: i32,
1200 #[prost(message, optional, tag="4")]
1201 pub disabled_codecs: ::core::option::Option<DisabledCodecs>,
1202 #[prost(enumeration="ClientConfigSetting", tag="5")]
1203 pub force_relay: i32,
1204}
1205#[allow(clippy::derive_partial_eq_without_eq)]
1206#[derive(Clone, PartialEq, ::prost::Message)]
1207pub struct VideoConfiguration {
1208 #[prost(enumeration="ClientConfigSetting", tag="1")]
1209 pub hardware_encoder: i32,
1210}
1211#[allow(clippy::derive_partial_eq_without_eq)]
1212#[derive(Clone, PartialEq, ::prost::Message)]
1213pub struct DisabledCodecs {
1214 #[prost(message, repeated, tag="1")]
1216 pub codecs: ::prost::alloc::vec::Vec<Codec>,
1217 #[prost(message, repeated, tag="2")]
1219 pub publish: ::prost::alloc::vec::Vec<Codec>,
1220}
1221#[allow(clippy::derive_partial_eq_without_eq)]
1222#[derive(Clone, PartialEq, ::prost::Message)]
1223pub struct RtpDrift {
1224 #[prost(message, optional, tag="1")]
1225 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1226 #[prost(message, optional, tag="2")]
1227 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1228 #[prost(double, tag="3")]
1229 pub duration: f64,
1230 #[prost(uint64, tag="4")]
1231 pub start_timestamp: u64,
1232 #[prost(uint64, tag="5")]
1233 pub end_timestamp: u64,
1234 #[prost(uint64, tag="6")]
1235 pub rtp_clock_ticks: u64,
1236 #[prost(int64, tag="7")]
1237 pub drift_samples: i64,
1238 #[prost(double, tag="8")]
1239 pub drift_ms: f64,
1240 #[prost(double, tag="9")]
1241 pub clock_rate: f64,
1242}
1243#[allow(clippy::derive_partial_eq_without_eq)]
1244#[derive(Clone, PartialEq, ::prost::Message)]
1245pub struct RtpStats {
1246 #[prost(message, optional, tag="1")]
1247 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1248 #[prost(message, optional, tag="2")]
1249 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1250 #[prost(double, tag="3")]
1251 pub duration: f64,
1252 #[prost(uint32, tag="4")]
1253 pub packets: u32,
1254 #[prost(double, tag="5")]
1255 pub packet_rate: f64,
1256 #[prost(uint64, tag="6")]
1257 pub bytes: u64,
1258 #[prost(uint64, tag="39")]
1259 pub header_bytes: u64,
1260 #[prost(double, tag="7")]
1261 pub bitrate: f64,
1262 #[prost(uint32, tag="8")]
1263 pub packets_lost: u32,
1264 #[prost(double, tag="9")]
1265 pub packet_loss_rate: f64,
1266 #[prost(float, tag="10")]
1267 pub packet_loss_percentage: f32,
1268 #[prost(uint32, tag="11")]
1269 pub packets_duplicate: u32,
1270 #[prost(double, tag="12")]
1271 pub packet_duplicate_rate: f64,
1272 #[prost(uint64, tag="13")]
1273 pub bytes_duplicate: u64,
1274 #[prost(uint64, tag="40")]
1275 pub header_bytes_duplicate: u64,
1276 #[prost(double, tag="14")]
1277 pub bitrate_duplicate: f64,
1278 #[prost(uint32, tag="15")]
1279 pub packets_padding: u32,
1280 #[prost(double, tag="16")]
1281 pub packet_padding_rate: f64,
1282 #[prost(uint64, tag="17")]
1283 pub bytes_padding: u64,
1284 #[prost(uint64, tag="41")]
1285 pub header_bytes_padding: u64,
1286 #[prost(double, tag="18")]
1287 pub bitrate_padding: f64,
1288 #[prost(uint32, tag="19")]
1289 pub packets_out_of_order: u32,
1290 #[prost(uint32, tag="20")]
1291 pub frames: u32,
1292 #[prost(double, tag="21")]
1293 pub frame_rate: f64,
1294 #[prost(double, tag="22")]
1295 pub jitter_current: f64,
1296 #[prost(double, tag="23")]
1297 pub jitter_max: f64,
1298 #[prost(map="int32, uint32", tag="24")]
1299 pub gap_histogram: ::std::collections::HashMap<i32, u32>,
1300 #[prost(uint32, tag="25")]
1301 pub nacks: u32,
1302 #[prost(uint32, tag="37")]
1303 pub nack_acks: u32,
1304 #[prost(uint32, tag="26")]
1305 pub nack_misses: u32,
1306 #[prost(uint32, tag="38")]
1307 pub nack_repeated: u32,
1308 #[prost(uint32, tag="27")]
1309 pub plis: u32,
1310 #[prost(message, optional, tag="28")]
1311 pub last_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1312 #[prost(uint32, tag="29")]
1313 pub firs: u32,
1314 #[prost(message, optional, tag="30")]
1315 pub last_fir: ::core::option::Option<::pbjson_types::Timestamp>,
1316 #[prost(uint32, tag="31")]
1317 pub rtt_current: u32,
1318 #[prost(uint32, tag="32")]
1319 pub rtt_max: u32,
1320 #[prost(uint32, tag="33")]
1321 pub key_frames: u32,
1322 #[prost(message, optional, tag="34")]
1323 pub last_key_frame: ::core::option::Option<::pbjson_types::Timestamp>,
1324 #[prost(uint32, tag="35")]
1325 pub layer_lock_plis: u32,
1326 #[prost(message, optional, tag="36")]
1327 pub last_layer_lock_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1328 #[prost(message, optional, tag="44")]
1329 pub packet_drift: ::core::option::Option<RtpDrift>,
1330 #[prost(message, optional, tag="45")]
1331 pub ntp_report_drift: ::core::option::Option<RtpDrift>,
1332 #[prost(message, optional, tag="46")]
1333 pub rebased_report_drift: ::core::option::Option<RtpDrift>,
1334 #[prost(message, optional, tag="47")]
1336 pub received_report_drift: ::core::option::Option<RtpDrift>,
1337}
1338#[allow(clippy::derive_partial_eq_without_eq)]
1339#[derive(Clone, PartialEq, ::prost::Message)]
1340pub struct RtcpSenderReportState {
1341 #[prost(uint32, tag="1")]
1342 pub rtp_timestamp: u32,
1343 #[prost(uint64, tag="2")]
1344 pub rtp_timestamp_ext: u64,
1345 #[prost(uint64, tag="3")]
1346 pub ntp_timestamp: u64,
1347 #[prost(int64, tag="4")]
1349 pub at: i64,
1350 #[prost(int64, tag="5")]
1351 pub at_adjusted: i64,
1352 #[prost(uint32, tag="6")]
1353 pub packets: u32,
1354 #[prost(uint64, tag="7")]
1355 pub octets: u64,
1356}
1357#[allow(clippy::derive_partial_eq_without_eq)]
1358#[derive(Clone, PartialEq, ::prost::Message)]
1359pub struct RtpForwarderState {
1360 #[prost(bool, tag="1")]
1361 pub started: bool,
1362 #[prost(int32, tag="2")]
1363 pub reference_layer_spatial: i32,
1364 #[prost(int64, tag="3")]
1365 pub pre_start_time: i64,
1366 #[prost(uint64, tag="4")]
1367 pub ext_first_timestamp: u64,
1368 #[prost(uint64, tag="5")]
1369 pub dummy_start_timestamp_offset: u64,
1370 #[prost(message, optional, tag="6")]
1371 pub rtp_munger: ::core::option::Option<RtpMungerState>,
1372 #[prost(message, repeated, tag="8")]
1373 pub sender_report_state: ::prost::alloc::vec::Vec<RtcpSenderReportState>,
1374 #[prost(oneof="rtp_forwarder_state::CodecMunger", tags="7")]
1375 pub codec_munger: ::core::option::Option<rtp_forwarder_state::CodecMunger>,
1376}
1377pub mod rtp_forwarder_state {
1379 #[allow(clippy::derive_partial_eq_without_eq)]
1380#[derive(Clone, PartialEq, ::prost::Oneof)]
1381 pub enum CodecMunger {
1382 #[prost(message, tag="7")]
1383 Vp8Munger(super::Vp8MungerState),
1384 }
1385}
1386#[allow(clippy::derive_partial_eq_without_eq)]
1387#[derive(Clone, PartialEq, ::prost::Message)]
1388pub struct RtpMungerState {
1389 #[prost(uint64, tag="1")]
1390 pub ext_last_sequence_number: u64,
1391 #[prost(uint64, tag="2")]
1392 pub ext_second_last_sequence_number: u64,
1393 #[prost(uint64, tag="3")]
1394 pub ext_last_timestamp: u64,
1395 #[prost(uint64, tag="4")]
1396 pub ext_second_last_timestamp: u64,
1397 #[prost(bool, tag="5")]
1398 pub last_marker: bool,
1399 #[prost(bool, tag="6")]
1400 pub second_last_marker: bool,
1401}
1402#[allow(clippy::derive_partial_eq_without_eq)]
1403#[derive(Clone, PartialEq, ::prost::Message)]
1404pub struct Vp8MungerState {
1405 #[prost(int32, tag="1")]
1406 pub ext_last_picture_id: i32,
1407 #[prost(bool, tag="2")]
1408 pub picture_id_used: bool,
1409 #[prost(uint32, tag="3")]
1410 pub last_tl0_pic_idx: u32,
1411 #[prost(bool, tag="4")]
1412 pub tl0_pic_idx_used: bool,
1413 #[prost(bool, tag="5")]
1414 pub tid_used: bool,
1415 #[prost(uint32, tag="6")]
1416 pub last_key_idx: u32,
1417 #[prost(bool, tag="7")]
1418 pub key_idx_used: bool,
1419}
1420#[allow(clippy::derive_partial_eq_without_eq)]
1421#[derive(Clone, PartialEq, ::prost::Message)]
1422pub struct TimedVersion {
1423 #[prost(int64, tag="1")]
1424 pub unix_micro: i64,
1425 #[prost(int32, tag="2")]
1426 pub ticks: i32,
1427}
1428#[allow(clippy::derive_partial_eq_without_eq)]
1429#[derive(Clone, PartialEq, ::prost::Message)]
1430pub struct DataStream {
1431}
1432pub mod data_stream {
1434 #[allow(clippy::derive_partial_eq_without_eq)]
1436#[derive(Clone, PartialEq, ::prost::Message)]
1437 pub struct TextHeader {
1438 #[prost(enumeration="OperationType", tag="1")]
1439 pub operation_type: i32,
1440 #[prost(int32, tag="2")]
1442 pub version: i32,
1443 #[prost(string, tag="3")]
1445 pub reply_to_stream_id: ::prost::alloc::string::String,
1446 #[prost(string, repeated, tag="4")]
1448 pub attached_stream_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1449 #[prost(bool, tag="5")]
1451 pub generated: bool,
1452 }
1453 #[allow(clippy::derive_partial_eq_without_eq)]
1455#[derive(Clone, PartialEq, ::prost::Message)]
1456 pub struct ByteHeader {
1457 #[prost(string, tag="1")]
1458 pub name: ::prost::alloc::string::String,
1459 }
1460 #[allow(clippy::derive_partial_eq_without_eq)]
1462#[derive(Clone, PartialEq, ::prost::Message)]
1463 pub struct Header {
1464 #[prost(string, tag="1")]
1466 pub stream_id: ::prost::alloc::string::String,
1467 #[prost(int64, tag="2")]
1469 pub timestamp: i64,
1470 #[prost(string, tag="3")]
1471 pub topic: ::prost::alloc::string::String,
1472 #[prost(string, tag="4")]
1473 pub mime_type: ::prost::alloc::string::String,
1474 #[prost(uint64, optional, tag="5")]
1476 pub total_length: ::core::option::Option<u64>,
1477 #[deprecated]
1479 #[prost(enumeration="super::encryption::Type", tag="7")]
1480 pub encryption_type: i32,
1481 #[prost(map="string, string", tag="8")]
1483 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1484 #[prost(oneof="header::ContentHeader", tags="9, 10")]
1486 pub content_header: ::core::option::Option<header::ContentHeader>,
1487 }
1488 pub mod header {
1490 #[allow(clippy::derive_partial_eq_without_eq)]
1492#[derive(Clone, PartialEq, ::prost::Oneof)]
1493 pub enum ContentHeader {
1494 #[prost(message, tag="9")]
1495 TextHeader(super::TextHeader),
1496 #[prost(message, tag="10")]
1497 ByteHeader(super::ByteHeader),
1498 }
1499 }
1500 #[allow(clippy::derive_partial_eq_without_eq)]
1501#[derive(Clone, PartialEq, ::prost::Message)]
1502 pub struct Chunk {
1503 #[prost(string, tag="1")]
1505 pub stream_id: ::prost::alloc::string::String,
1506 #[prost(uint64, tag="2")]
1507 pub chunk_index: u64,
1508 #[prost(bytes="vec", tag="3")]
1510 pub content: ::prost::alloc::vec::Vec<u8>,
1511 #[prost(int32, tag="4")]
1513 pub version: i32,
1514 #[deprecated]
1516 #[prost(bytes="vec", optional, tag="5")]
1517 pub iv: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1518 }
1519 #[allow(clippy::derive_partial_eq_without_eq)]
1520#[derive(Clone, PartialEq, ::prost::Message)]
1521 pub struct Trailer {
1522 #[prost(string, tag="1")]
1524 pub stream_id: ::prost::alloc::string::String,
1525 #[prost(string, tag="2")]
1527 pub reason: ::prost::alloc::string::String,
1528 #[prost(map="string, string", tag="3")]
1530 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1531 }
1532 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1534 #[repr(i32)]
1535 pub enum OperationType {
1536 Create = 0,
1537 Update = 1,
1538 Delete = 2,
1539 Reaction = 3,
1540 }
1541 impl OperationType {
1542 pub fn as_str_name(&self) -> &'static str {
1547 match self {
1548 OperationType::Create => "CREATE",
1549 OperationType::Update => "UPDATE",
1550 OperationType::Delete => "DELETE",
1551 OperationType::Reaction => "REACTION",
1552 }
1553 }
1554 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1556 match value {
1557 "CREATE" => Some(Self::Create),
1558 "UPDATE" => Some(Self::Update),
1559 "DELETE" => Some(Self::Delete),
1560 "REACTION" => Some(Self::Reaction),
1561 _ => None,
1562 }
1563 }
1564 }
1565}
1566#[allow(clippy::derive_partial_eq_without_eq)]
1567#[derive(Clone, PartialEq, ::prost::Message)]
1568pub struct FilterParams {
1569 #[prost(string, repeated, tag="1")]
1570 pub include_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1571 #[prost(string, repeated, tag="2")]
1572 pub exclude_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1573}
1574#[allow(clippy::derive_partial_eq_without_eq)]
1575#[derive(Clone, PartialEq, ::prost::Message)]
1576pub struct WebhookConfig {
1577 #[prost(string, tag="1")]
1578 pub url: ::prost::alloc::string::String,
1579 #[prost(string, tag="2")]
1580 pub signing_key: ::prost::alloc::string::String,
1581 #[prost(message, optional, tag="3")]
1582 pub filter_params: ::core::option::Option<FilterParams>,
1583}
1584#[allow(clippy::derive_partial_eq_without_eq)]
1585#[derive(Clone, PartialEq, ::prost::Message)]
1586pub struct SubscribedAudioCodec {
1587 #[prost(string, tag="1")]
1588 pub codec: ::prost::alloc::string::String,
1589 #[prost(bool, tag="2")]
1590 pub enabled: bool,
1591}
1592#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1593#[repr(i32)]
1594pub enum AudioCodec {
1595 DefaultAc = 0,
1596 Opus = 1,
1597 Aac = 2,
1598 AcMp3 = 3,
1599}
1600impl AudioCodec {
1601 pub fn as_str_name(&self) -> &'static str {
1606 match self {
1607 AudioCodec::DefaultAc => "DEFAULT_AC",
1608 AudioCodec::Opus => "OPUS",
1609 AudioCodec::Aac => "AAC",
1610 AudioCodec::AcMp3 => "AC_MP3",
1611 }
1612 }
1613 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1615 match value {
1616 "DEFAULT_AC" => Some(Self::DefaultAc),
1617 "OPUS" => Some(Self::Opus),
1618 "AAC" => Some(Self::Aac),
1619 "AC_MP3" => Some(Self::AcMp3),
1620 _ => None,
1621 }
1622 }
1623}
1624#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1625#[repr(i32)]
1626pub enum VideoCodec {
1627 DefaultVc = 0,
1628 H264Baseline = 1,
1629 H264Main = 2,
1630 H264High = 3,
1631 Vp8 = 4,
1632}
1633impl VideoCodec {
1634 pub fn as_str_name(&self) -> &'static str {
1639 match self {
1640 VideoCodec::DefaultVc => "DEFAULT_VC",
1641 VideoCodec::H264Baseline => "H264_BASELINE",
1642 VideoCodec::H264Main => "H264_MAIN",
1643 VideoCodec::H264High => "H264_HIGH",
1644 VideoCodec::Vp8 => "VP8",
1645 }
1646 }
1647 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1649 match value {
1650 "DEFAULT_VC" => Some(Self::DefaultVc),
1651 "H264_BASELINE" => Some(Self::H264Baseline),
1652 "H264_MAIN" => Some(Self::H264Main),
1653 "H264_HIGH" => Some(Self::H264High),
1654 "VP8" => Some(Self::Vp8),
1655 _ => None,
1656 }
1657 }
1658}
1659#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1660#[repr(i32)]
1661pub enum ImageCodec {
1662 IcDefault = 0,
1663 IcJpeg = 1,
1664}
1665impl ImageCodec {
1666 pub fn as_str_name(&self) -> &'static str {
1671 match self {
1672 ImageCodec::IcDefault => "IC_DEFAULT",
1673 ImageCodec::IcJpeg => "IC_JPEG",
1674 }
1675 }
1676 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1678 match value {
1679 "IC_DEFAULT" => Some(Self::IcDefault),
1680 "IC_JPEG" => Some(Self::IcJpeg),
1681 _ => None,
1682 }
1683 }
1684}
1685#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1687#[repr(i32)]
1688pub enum BackupCodecPolicy {
1689 PreferRegression = 0,
1692 Simulcast = 1,
1694 Regression = 2,
1696}
1697impl BackupCodecPolicy {
1698 pub fn as_str_name(&self) -> &'static str {
1703 match self {
1704 BackupCodecPolicy::PreferRegression => "PREFER_REGRESSION",
1705 BackupCodecPolicy::Simulcast => "SIMULCAST",
1706 BackupCodecPolicy::Regression => "REGRESSION",
1707 }
1708 }
1709 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1711 match value {
1712 "PREFER_REGRESSION" => Some(Self::PreferRegression),
1713 "SIMULCAST" => Some(Self::Simulcast),
1714 "REGRESSION" => Some(Self::Regression),
1715 _ => None,
1716 }
1717 }
1718}
1719#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1720#[repr(i32)]
1721pub enum TrackType {
1722 Audio = 0,
1723 Video = 1,
1724 Data = 2,
1725}
1726impl TrackType {
1727 pub fn as_str_name(&self) -> &'static str {
1732 match self {
1733 TrackType::Audio => "AUDIO",
1734 TrackType::Video => "VIDEO",
1735 TrackType::Data => "DATA",
1736 }
1737 }
1738 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1740 match value {
1741 "AUDIO" => Some(Self::Audio),
1742 "VIDEO" => Some(Self::Video),
1743 "DATA" => Some(Self::Data),
1744 _ => None,
1745 }
1746 }
1747}
1748#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1749#[repr(i32)]
1750pub enum TrackSource {
1751 Unknown = 0,
1752 Camera = 1,
1753 Microphone = 2,
1754 ScreenShare = 3,
1755 ScreenShareAudio = 4,
1756}
1757impl TrackSource {
1758 pub fn as_str_name(&self) -> &'static str {
1763 match self {
1764 TrackSource::Unknown => "UNKNOWN",
1765 TrackSource::Camera => "CAMERA",
1766 TrackSource::Microphone => "MICROPHONE",
1767 TrackSource::ScreenShare => "SCREEN_SHARE",
1768 TrackSource::ScreenShareAudio => "SCREEN_SHARE_AUDIO",
1769 }
1770 }
1771 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1773 match value {
1774 "UNKNOWN" => Some(Self::Unknown),
1775 "CAMERA" => Some(Self::Camera),
1776 "MICROPHONE" => Some(Self::Microphone),
1777 "SCREEN_SHARE" => Some(Self::ScreenShare),
1778 "SCREEN_SHARE_AUDIO" => Some(Self::ScreenShareAudio),
1779 _ => None,
1780 }
1781 }
1782}
1783#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1784#[repr(i32)]
1785pub enum DataTrackExtensionId {
1786 DteiInvalid = 0,
1787 DteiParticipantSid = 1,
1788}
1789impl DataTrackExtensionId {
1790 pub fn as_str_name(&self) -> &'static str {
1795 match self {
1796 DataTrackExtensionId::DteiInvalid => "DTEI_INVALID",
1797 DataTrackExtensionId::DteiParticipantSid => "DTEI_PARTICIPANT_SID",
1798 }
1799 }
1800 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1802 match value {
1803 "DTEI_INVALID" => Some(Self::DteiInvalid),
1804 "DTEI_PARTICIPANT_SID" => Some(Self::DteiParticipantSid),
1805 _ => None,
1806 }
1807 }
1808}
1809#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1810#[repr(i32)]
1811pub enum VideoQuality {
1812 Low = 0,
1813 Medium = 1,
1814 High = 2,
1815 Off = 3,
1816}
1817impl VideoQuality {
1818 pub fn as_str_name(&self) -> &'static str {
1823 match self {
1824 VideoQuality::Low => "LOW",
1825 VideoQuality::Medium => "MEDIUM",
1826 VideoQuality::High => "HIGH",
1827 VideoQuality::Off => "OFF",
1828 }
1829 }
1830 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1832 match value {
1833 "LOW" => Some(Self::Low),
1834 "MEDIUM" => Some(Self::Medium),
1835 "HIGH" => Some(Self::High),
1836 "OFF" => Some(Self::Off),
1837 _ => None,
1838 }
1839 }
1840}
1841#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1842#[repr(i32)]
1843pub enum ConnectionQuality {
1844 Poor = 0,
1845 Good = 1,
1846 Excellent = 2,
1847 Lost = 3,
1848}
1849impl ConnectionQuality {
1850 pub fn as_str_name(&self) -> &'static str {
1855 match self {
1856 ConnectionQuality::Poor => "POOR",
1857 ConnectionQuality::Good => "GOOD",
1858 ConnectionQuality::Excellent => "EXCELLENT",
1859 ConnectionQuality::Lost => "LOST",
1860 }
1861 }
1862 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1864 match value {
1865 "POOR" => Some(Self::Poor),
1866 "GOOD" => Some(Self::Good),
1867 "EXCELLENT" => Some(Self::Excellent),
1868 "LOST" => Some(Self::Lost),
1869 _ => None,
1870 }
1871 }
1872}
1873#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1874#[repr(i32)]
1875pub enum ClientConfigSetting {
1876 Unset = 0,
1877 Disabled = 1,
1878 Enabled = 2,
1879}
1880impl ClientConfigSetting {
1881 pub fn as_str_name(&self) -> &'static str {
1886 match self {
1887 ClientConfigSetting::Unset => "UNSET",
1888 ClientConfigSetting::Disabled => "DISABLED",
1889 ClientConfigSetting::Enabled => "ENABLED",
1890 }
1891 }
1892 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1894 match value {
1895 "UNSET" => Some(Self::Unset),
1896 "DISABLED" => Some(Self::Disabled),
1897 "ENABLED" => Some(Self::Enabled),
1898 _ => None,
1899 }
1900 }
1901}
1902#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1903#[repr(i32)]
1904pub enum DisconnectReason {
1905 UnknownReason = 0,
1906 ClientInitiated = 1,
1908 DuplicateIdentity = 2,
1910 ServerShutdown = 3,
1912 ParticipantRemoved = 4,
1914 RoomDeleted = 5,
1916 StateMismatch = 6,
1918 JoinFailure = 7,
1920 Migration = 8,
1922 SignalClose = 9,
1924 RoomClosed = 10,
1926 UserUnavailable = 11,
1928 UserRejected = 12,
1930 SipTrunkFailure = 13,
1932 ConnectionTimeout = 14,
1934 MediaFailure = 15,
1936 AgentError = 16,
1938}
1939impl DisconnectReason {
1940 pub fn as_str_name(&self) -> &'static str {
1945 match self {
1946 DisconnectReason::UnknownReason => "UNKNOWN_REASON",
1947 DisconnectReason::ClientInitiated => "CLIENT_INITIATED",
1948 DisconnectReason::DuplicateIdentity => "DUPLICATE_IDENTITY",
1949 DisconnectReason::ServerShutdown => "SERVER_SHUTDOWN",
1950 DisconnectReason::ParticipantRemoved => "PARTICIPANT_REMOVED",
1951 DisconnectReason::RoomDeleted => "ROOM_DELETED",
1952 DisconnectReason::StateMismatch => "STATE_MISMATCH",
1953 DisconnectReason::JoinFailure => "JOIN_FAILURE",
1954 DisconnectReason::Migration => "MIGRATION",
1955 DisconnectReason::SignalClose => "SIGNAL_CLOSE",
1956 DisconnectReason::RoomClosed => "ROOM_CLOSED",
1957 DisconnectReason::UserUnavailable => "USER_UNAVAILABLE",
1958 DisconnectReason::UserRejected => "USER_REJECTED",
1959 DisconnectReason::SipTrunkFailure => "SIP_TRUNK_FAILURE",
1960 DisconnectReason::ConnectionTimeout => "CONNECTION_TIMEOUT",
1961 DisconnectReason::MediaFailure => "MEDIA_FAILURE",
1962 DisconnectReason::AgentError => "AGENT_ERROR",
1963 }
1964 }
1965 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1967 match value {
1968 "UNKNOWN_REASON" => Some(Self::UnknownReason),
1969 "CLIENT_INITIATED" => Some(Self::ClientInitiated),
1970 "DUPLICATE_IDENTITY" => Some(Self::DuplicateIdentity),
1971 "SERVER_SHUTDOWN" => Some(Self::ServerShutdown),
1972 "PARTICIPANT_REMOVED" => Some(Self::ParticipantRemoved),
1973 "ROOM_DELETED" => Some(Self::RoomDeleted),
1974 "STATE_MISMATCH" => Some(Self::StateMismatch),
1975 "JOIN_FAILURE" => Some(Self::JoinFailure),
1976 "MIGRATION" => Some(Self::Migration),
1977 "SIGNAL_CLOSE" => Some(Self::SignalClose),
1978 "ROOM_CLOSED" => Some(Self::RoomClosed),
1979 "USER_UNAVAILABLE" => Some(Self::UserUnavailable),
1980 "USER_REJECTED" => Some(Self::UserRejected),
1981 "SIP_TRUNK_FAILURE" => Some(Self::SipTrunkFailure),
1982 "CONNECTION_TIMEOUT" => Some(Self::ConnectionTimeout),
1983 "MEDIA_FAILURE" => Some(Self::MediaFailure),
1984 "AGENT_ERROR" => Some(Self::AgentError),
1985 _ => None,
1986 }
1987 }
1988}
1989#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1990#[repr(i32)]
1991pub enum ReconnectReason {
1992 RrUnknown = 0,
1993 RrSignalDisconnected = 1,
1994 RrPublisherFailed = 2,
1995 RrSubscriberFailed = 3,
1996 RrSwitchCandidate = 4,
1997}
1998impl ReconnectReason {
1999 pub fn as_str_name(&self) -> &'static str {
2004 match self {
2005 ReconnectReason::RrUnknown => "RR_UNKNOWN",
2006 ReconnectReason::RrSignalDisconnected => "RR_SIGNAL_DISCONNECTED",
2007 ReconnectReason::RrPublisherFailed => "RR_PUBLISHER_FAILED",
2008 ReconnectReason::RrSubscriberFailed => "RR_SUBSCRIBER_FAILED",
2009 ReconnectReason::RrSwitchCandidate => "RR_SWITCH_CANDIDATE",
2010 }
2011 }
2012 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2014 match value {
2015 "RR_UNKNOWN" => Some(Self::RrUnknown),
2016 "RR_SIGNAL_DISCONNECTED" => Some(Self::RrSignalDisconnected),
2017 "RR_PUBLISHER_FAILED" => Some(Self::RrPublisherFailed),
2018 "RR_SUBSCRIBER_FAILED" => Some(Self::RrSubscriberFailed),
2019 "RR_SWITCH_CANDIDATE" => Some(Self::RrSwitchCandidate),
2020 _ => None,
2021 }
2022 }
2023}
2024#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2025#[repr(i32)]
2026pub enum SubscriptionError {
2027 SeUnknown = 0,
2028 SeCodecUnsupported = 1,
2029 SeTrackNotfound = 2,
2030}
2031impl SubscriptionError {
2032 pub fn as_str_name(&self) -> &'static str {
2037 match self {
2038 SubscriptionError::SeUnknown => "SE_UNKNOWN",
2039 SubscriptionError::SeCodecUnsupported => "SE_CODEC_UNSUPPORTED",
2040 SubscriptionError::SeTrackNotfound => "SE_TRACK_NOTFOUND",
2041 }
2042 }
2043 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2045 match value {
2046 "SE_UNKNOWN" => Some(Self::SeUnknown),
2047 "SE_CODEC_UNSUPPORTED" => Some(Self::SeCodecUnsupported),
2048 "SE_TRACK_NOTFOUND" => Some(Self::SeTrackNotfound),
2049 _ => None,
2050 }
2051 }
2052}
2053#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2054#[repr(i32)]
2055pub enum AudioTrackFeature {
2056 TfStereo = 0,
2057 TfNoDtx = 1,
2058 TfAutoGainControl = 2,
2059 TfEchoCancellation = 3,
2060 TfNoiseSuppression = 4,
2061 TfEnhancedNoiseCancellation = 5,
2062 TfPreconnectBuffer = 6,
2064}
2065impl AudioTrackFeature {
2066 pub fn as_str_name(&self) -> &'static str {
2071 match self {
2072 AudioTrackFeature::TfStereo => "TF_STEREO",
2073 AudioTrackFeature::TfNoDtx => "TF_NO_DTX",
2074 AudioTrackFeature::TfAutoGainControl => "TF_AUTO_GAIN_CONTROL",
2075 AudioTrackFeature::TfEchoCancellation => "TF_ECHO_CANCELLATION",
2076 AudioTrackFeature::TfNoiseSuppression => "TF_NOISE_SUPPRESSION",
2077 AudioTrackFeature::TfEnhancedNoiseCancellation => "TF_ENHANCED_NOISE_CANCELLATION",
2078 AudioTrackFeature::TfPreconnectBuffer => "TF_PRECONNECT_BUFFER",
2079 }
2080 }
2081 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2083 match value {
2084 "TF_STEREO" => Some(Self::TfStereo),
2085 "TF_NO_DTX" => Some(Self::TfNoDtx),
2086 "TF_AUTO_GAIN_CONTROL" => Some(Self::TfAutoGainControl),
2087 "TF_ECHO_CANCELLATION" => Some(Self::TfEchoCancellation),
2088 "TF_NOISE_SUPPRESSION" => Some(Self::TfNoiseSuppression),
2089 "TF_ENHANCED_NOISE_CANCELLATION" => Some(Self::TfEnhancedNoiseCancellation),
2090 "TF_PRECONNECT_BUFFER" => Some(Self::TfPreconnectBuffer),
2091 _ => None,
2092 }
2093 }
2094}
2095#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2096#[repr(i32)]
2097pub enum PacketTrailerFeature {
2098 PtfUserTimestamp = 0,
2099 PtfFrameId = 1,
2100}
2101impl PacketTrailerFeature {
2102 pub fn as_str_name(&self) -> &'static str {
2107 match self {
2108 PacketTrailerFeature::PtfUserTimestamp => "PTF_USER_TIMESTAMP",
2109 PacketTrailerFeature::PtfFrameId => "PTF_FRAME_ID",
2110 }
2111 }
2112 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2114 match value {
2115 "PTF_USER_TIMESTAMP" => Some(Self::PtfUserTimestamp),
2116 "PTF_FRAME_ID" => Some(Self::PtfFrameId),
2117 _ => None,
2118 }
2119 }
2120}
2121#[allow(clippy::derive_partial_eq_without_eq)]
2124#[derive(Clone, PartialEq, ::prost::Message)]
2125pub struct StartEgressRequest {
2126 #[prost(string, tag="1")]
2127 pub room_name: ::prost::alloc::string::String,
2128 #[prost(message, repeated, tag="7")]
2130 pub outputs: ::prost::alloc::vec::Vec<Output>,
2131 #[prost(message, optional, tag="8")]
2133 pub storage: ::core::option::Option<StorageConfig>,
2134 #[prost(message, repeated, tag="9")]
2136 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2137 #[prost(oneof="start_egress_request::Source", tags="2, 3, 4")]
2138 pub source: ::core::option::Option<start_egress_request::Source>,
2139 #[prost(oneof="start_egress_request::Encoding", tags="5, 6")]
2141 pub encoding: ::core::option::Option<start_egress_request::Encoding>,
2142}
2143pub mod start_egress_request {
2145 #[allow(clippy::derive_partial_eq_without_eq)]
2146#[derive(Clone, PartialEq, ::prost::Oneof)]
2147 pub enum Source {
2148 #[prost(message, tag="2")]
2149 Template(super::TemplateSource),
2150 #[prost(message, tag="3")]
2151 Web(super::WebSource),
2152 #[prost(message, tag="4")]
2153 Media(super::MediaSource),
2154 }
2155 #[allow(clippy::derive_partial_eq_without_eq)]
2157#[derive(Clone, PartialEq, ::prost::Oneof)]
2158 pub enum Encoding {
2159 #[prost(enumeration="super::EncodingOptionsPreset", tag="5")]
2160 Preset(i32),
2161 #[prost(message, tag="6")]
2162 Advanced(super::EncodingOptions),
2163 }
2164}
2165#[allow(clippy::derive_partial_eq_without_eq)]
2170#[derive(Clone, PartialEq, ::prost::Message)]
2171pub struct TemplateSource {
2172 #[prost(string, tag="1")]
2173 pub layout: ::prost::alloc::string::String,
2174 #[prost(bool, tag="2")]
2175 pub audio_only: bool,
2176 #[prost(bool, tag="3")]
2177 pub video_only: bool,
2178 #[prost(string, tag="4")]
2179 pub custom_base_url: ::prost::alloc::string::String,
2180}
2181#[allow(clippy::derive_partial_eq_without_eq)]
2183#[derive(Clone, PartialEq, ::prost::Message)]
2184pub struct WebSource {
2185 #[prost(string, tag="1")]
2186 pub url: ::prost::alloc::string::String,
2187 #[prost(bool, tag="2")]
2188 pub audio_only: bool,
2189 #[prost(bool, tag="3")]
2190 pub video_only: bool,
2191 #[prost(bool, tag="4")]
2192 pub await_start_signal: bool,
2193}
2194#[allow(clippy::derive_partial_eq_without_eq)]
2197#[derive(Clone, PartialEq, ::prost::Message)]
2198pub struct MediaSource {
2199 #[prost(message, optional, tag="3")]
2200 pub audio: ::core::option::Option<AudioConfig>,
2201 #[prost(message, optional, tag="4")]
2202 pub data: ::core::option::Option<DataConfig>,
2203 #[prost(oneof="media_source::Video", tags="1, 2")]
2204 pub video: ::core::option::Option<media_source::Video>,
2205}
2206pub mod media_source {
2208 #[allow(clippy::derive_partial_eq_without_eq)]
2209#[derive(Clone, PartialEq, ::prost::Oneof)]
2210 pub enum Video {
2211 #[prost(string, tag="1")]
2212 VideoTrackId(::prost::alloc::string::String),
2213 #[prost(message, tag="2")]
2214 ParticipantVideo(super::ParticipantVideo),
2215 }
2216}
2217#[allow(clippy::derive_partial_eq_without_eq)]
2218#[derive(Clone, PartialEq, ::prost::Message)]
2219pub struct ParticipantVideo {
2220 #[prost(string, tag="1")]
2221 pub identity: ::prost::alloc::string::String,
2222 #[prost(bool, tag="2")]
2223 pub prefer_screen_share: bool,
2224}
2225#[allow(clippy::derive_partial_eq_without_eq)]
2230#[derive(Clone, PartialEq, ::prost::Message)]
2231pub struct AudioConfig {
2232 #[prost(message, repeated, tag="1")]
2235 pub routes: ::prost::alloc::vec::Vec<AudioRoute>,
2236}
2237#[allow(clippy::derive_partial_eq_without_eq)]
2238#[derive(Clone, PartialEq, ::prost::Message)]
2239pub struct AudioRoute {
2240 #[prost(enumeration="AudioChannel", tag="4")]
2241 pub channel: i32,
2242 #[prost(oneof="audio_route::Match", tags="1, 2, 3")]
2243 pub r#match: ::core::option::Option<audio_route::Match>,
2244}
2245pub mod audio_route {
2247 #[allow(clippy::derive_partial_eq_without_eq)]
2248#[derive(Clone, PartialEq, ::prost::Oneof)]
2249 pub enum Match {
2250 #[prost(string, tag="1")]
2251 TrackId(::prost::alloc::string::String),
2252 #[prost(string, tag="2")]
2253 ParticipantIdentity(::prost::alloc::string::String),
2254 #[prost(enumeration="super::participant_info::Kind", tag="3")]
2255 ParticipantKind(i32),
2256 }
2257}
2258#[allow(clippy::derive_partial_eq_without_eq)]
2261#[derive(Clone, PartialEq, ::prost::Message)]
2262pub struct DataConfig {
2263 #[prost(message, repeated, tag="1")]
2266 pub selectors: ::prost::alloc::vec::Vec<DataSelector>,
2267}
2268#[allow(clippy::derive_partial_eq_without_eq)]
2269#[derive(Clone, PartialEq, ::prost::Message)]
2270pub struct DataSelector {
2271 #[prost(oneof="data_selector::Match", tags="1, 2, 3")]
2272 pub r#match: ::core::option::Option<data_selector::Match>,
2273}
2274pub mod data_selector {
2276 #[allow(clippy::derive_partial_eq_without_eq)]
2277#[derive(Clone, PartialEq, ::prost::Oneof)]
2278 pub enum Match {
2279 #[prost(string, tag="1")]
2280 TrackId(::prost::alloc::string::String),
2281 #[prost(string, tag="2")]
2282 ParticipantIdentity(::prost::alloc::string::String),
2283 #[prost(string, tag="3")]
2284 Topic(::prost::alloc::string::String),
2285 }
2286}
2287#[allow(clippy::derive_partial_eq_without_eq)]
2288#[derive(Clone, PartialEq, ::prost::Message)]
2289pub struct EncodingOptions {
2290 #[prost(int32, tag="1")]
2292 pub width: i32,
2293 #[prost(int32, tag="2")]
2295 pub height: i32,
2296 #[prost(int32, tag="3")]
2298 pub depth: i32,
2299 #[prost(int32, tag="4")]
2301 pub framerate: i32,
2302 #[prost(enumeration="AudioCodec", tag="5")]
2304 pub audio_codec: i32,
2305 #[prost(int32, tag="6")]
2307 pub audio_bitrate: i32,
2308 #[prost(int32, tag="7")]
2310 pub audio_frequency: i32,
2311 #[prost(enumeration="VideoCodec", tag="8")]
2313 pub video_codec: i32,
2314 #[prost(int32, tag="9")]
2316 pub video_bitrate: i32,
2317 #[prost(double, tag="10")]
2319 pub key_frame_interval: f64,
2320 #[deprecated]
2324 #[prost(int32, tag="11")]
2325 pub audio_quality: i32,
2326 #[deprecated]
2328 #[prost(int32, tag="12")]
2329 pub video_quality: i32,
2330}
2331#[allow(clippy::derive_partial_eq_without_eq)]
2334#[derive(Clone, PartialEq, ::prost::Message)]
2335pub struct Output {
2336 #[prost(message, optional, tag="6")]
2338 pub storage: ::core::option::Option<StorageConfig>,
2339 #[prost(oneof="output::Config", tags="1, 2, 3, 4")]
2340 pub config: ::core::option::Option<output::Config>,
2341}
2342pub mod output {
2344 #[allow(clippy::derive_partial_eq_without_eq)]
2345#[derive(Clone, PartialEq, ::prost::Oneof)]
2346 pub enum Config {
2347 #[prost(message, tag="1")]
2348 File(super::FileOutput),
2349 #[prost(message, tag="2")]
2350 Stream(super::StreamOutput),
2351 #[prost(message, tag="3")]
2352 Segments(super::SegmentedFileOutput),
2353 #[prost(message, tag="4")]
2355 Images(super::ImageOutput),
2356 }
2357}
2358#[allow(clippy::derive_partial_eq_without_eq)]
2361#[derive(Clone, PartialEq, ::prost::Message)]
2362pub struct FileOutput {
2363 #[prost(enumeration="EncodedFileType", tag="1")]
2364 pub file_type: i32,
2365 #[prost(string, tag="2")]
2366 pub filepath: ::prost::alloc::string::String,
2367 #[prost(bool, tag="3")]
2368 pub disable_manifest: bool,
2369}
2370#[allow(clippy::derive_partial_eq_without_eq)]
2371#[derive(Clone, PartialEq, ::prost::Message)]
2372pub struct StreamOutput {
2373 #[prost(enumeration="StreamProtocol", tag="1")]
2375 pub protocol: i32,
2376 #[prost(string, repeated, tag="2")]
2378 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2379}
2380#[allow(clippy::derive_partial_eq_without_eq)]
2382#[derive(Clone, PartialEq, ::prost::Message)]
2383pub struct SegmentedFileOutput {
2384 #[prost(enumeration="SegmentedFileProtocol", tag="1")]
2386 pub protocol: i32,
2387 #[prost(string, tag="2")]
2389 pub filename_prefix: ::prost::alloc::string::String,
2390 #[prost(string, tag="3")]
2392 pub playlist_name: ::prost::alloc::string::String,
2393 #[prost(string, tag="11")]
2395 pub live_playlist_name: ::prost::alloc::string::String,
2396 #[prost(uint32, tag="4")]
2398 pub segment_duration: u32,
2399 #[prost(enumeration="SegmentedFileSuffix", tag="10")]
2401 pub filename_suffix: i32,
2402 #[prost(bool, tag="8")]
2404 pub disable_manifest: bool,
2405 #[prost(oneof="segmented_file_output::Output", tags="5, 6, 7, 9")]
2406 pub output: ::core::option::Option<segmented_file_output::Output>,
2407}
2408pub mod segmented_file_output {
2410 #[allow(clippy::derive_partial_eq_without_eq)]
2411#[derive(Clone, PartialEq, ::prost::Oneof)]
2412 pub enum Output {
2413 #[prost(message, tag="5")]
2414 S3(super::S3Upload),
2415 #[prost(message, tag="6")]
2416 Gcp(super::GcpUpload),
2417 #[prost(message, tag="7")]
2418 Azure(super::AzureBlobUpload),
2419 #[prost(message, tag="9")]
2420 AliOss(super::AliOssUpload),
2421 }
2422}
2423#[allow(clippy::derive_partial_eq_without_eq)]
2425#[derive(Clone, PartialEq, ::prost::Message)]
2426pub struct ImageOutput {
2427 #[prost(uint32, tag="1")]
2429 pub capture_interval: u32,
2430 #[prost(int32, tag="2")]
2432 pub width: i32,
2433 #[prost(int32, tag="3")]
2435 pub height: i32,
2436 #[prost(string, tag="4")]
2438 pub filename_prefix: ::prost::alloc::string::String,
2439 #[prost(enumeration="ImageFileSuffix", tag="5")]
2441 pub filename_suffix: i32,
2442 #[prost(enumeration="ImageCodec", tag="6")]
2444 pub image_codec: i32,
2445 #[prost(bool, tag="7")]
2447 pub disable_manifest: bool,
2448 #[prost(oneof="image_output::Output", tags="8, 9, 10, 11")]
2449 pub output: ::core::option::Option<image_output::Output>,
2450}
2451pub mod image_output {
2453 #[allow(clippy::derive_partial_eq_without_eq)]
2454#[derive(Clone, PartialEq, ::prost::Oneof)]
2455 pub enum Output {
2456 #[prost(message, tag="8")]
2457 S3(super::S3Upload),
2458 #[prost(message, tag="9")]
2459 Gcp(super::GcpUpload),
2460 #[prost(message, tag="10")]
2461 Azure(super::AzureBlobUpload),
2462 #[prost(message, tag="11")]
2463 AliOss(super::AliOssUpload),
2464 }
2465}
2466#[allow(clippy::derive_partial_eq_without_eq)]
2469#[derive(Clone, PartialEq, ::prost::Message)]
2470pub struct StorageConfig {
2471 #[prost(oneof="storage_config::Provider", tags="1, 2, 3, 4")]
2472 pub provider: ::core::option::Option<storage_config::Provider>,
2473}
2474pub mod storage_config {
2476 #[allow(clippy::derive_partial_eq_without_eq)]
2477#[derive(Clone, PartialEq, ::prost::Oneof)]
2478 pub enum Provider {
2479 #[prost(message, tag="1")]
2480 S3(super::S3Upload),
2481 #[prost(message, tag="2")]
2482 Gcp(super::GcpUpload),
2483 #[prost(message, tag="3")]
2484 Azure(super::AzureBlobUpload),
2485 #[prost(message, tag="4")]
2486 AliOss(super::AliOssUpload),
2487 }
2488}
2489#[allow(clippy::derive_partial_eq_without_eq)]
2490#[derive(Clone, PartialEq, ::prost::Message)]
2491pub struct S3Upload {
2492 #[prost(string, tag="1")]
2493 pub access_key: ::prost::alloc::string::String,
2494 #[prost(string, tag="2")]
2495 pub secret: ::prost::alloc::string::String,
2496 #[prost(string, tag="11")]
2497 pub session_token: ::prost::alloc::string::String,
2498 #[prost(string, tag="12")]
2500 pub assume_role_arn: ::prost::alloc::string::String,
2501 #[prost(string, tag="13")]
2503 pub assume_role_external_id: ::prost::alloc::string::String,
2504 #[prost(string, tag="3")]
2505 pub region: ::prost::alloc::string::String,
2506 #[prost(string, tag="4")]
2507 pub endpoint: ::prost::alloc::string::String,
2508 #[prost(string, tag="5")]
2509 pub bucket: ::prost::alloc::string::String,
2510 #[prost(bool, tag="6")]
2511 pub force_path_style: bool,
2512 #[prost(map="string, string", tag="7")]
2513 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2514 #[prost(string, tag="8")]
2515 pub tagging: ::prost::alloc::string::String,
2516 #[prost(string, tag="9")]
2518 pub content_disposition: ::prost::alloc::string::String,
2519 #[prost(message, optional, tag="10")]
2520 pub proxy: ::core::option::Option<ProxyConfig>,
2521}
2522#[allow(clippy::derive_partial_eq_without_eq)]
2523#[derive(Clone, PartialEq, ::prost::Message)]
2524pub struct GcpUpload {
2525 #[prost(string, tag="1")]
2527 pub credentials: ::prost::alloc::string::String,
2528 #[prost(string, tag="2")]
2529 pub bucket: ::prost::alloc::string::String,
2530 #[prost(message, optional, tag="3")]
2531 pub proxy: ::core::option::Option<ProxyConfig>,
2532}
2533#[allow(clippy::derive_partial_eq_without_eq)]
2534#[derive(Clone, PartialEq, ::prost::Message)]
2535pub struct AzureBlobUpload {
2536 #[prost(string, tag="1")]
2537 pub account_name: ::prost::alloc::string::String,
2538 #[prost(string, tag="2")]
2539 pub account_key: ::prost::alloc::string::String,
2540 #[prost(string, tag="3")]
2541 pub container_name: ::prost::alloc::string::String,
2542}
2543#[allow(clippy::derive_partial_eq_without_eq)]
2544#[derive(Clone, PartialEq, ::prost::Message)]
2545pub struct AliOssUpload {
2546 #[prost(string, tag="1")]
2547 pub access_key: ::prost::alloc::string::String,
2548 #[prost(string, tag="2")]
2549 pub secret: ::prost::alloc::string::String,
2550 #[prost(string, tag="3")]
2551 pub region: ::prost::alloc::string::String,
2552 #[prost(string, tag="4")]
2553 pub endpoint: ::prost::alloc::string::String,
2554 #[prost(string, tag="5")]
2555 pub bucket: ::prost::alloc::string::String,
2556}
2557#[allow(clippy::derive_partial_eq_without_eq)]
2558#[derive(Clone, PartialEq, ::prost::Message)]
2559pub struct ProxyConfig {
2560 #[prost(string, tag="1")]
2561 pub url: ::prost::alloc::string::String,
2562 #[prost(string, tag="2")]
2563 pub username: ::prost::alloc::string::String,
2564 #[prost(string, tag="3")]
2565 pub password: ::prost::alloc::string::String,
2566}
2567#[allow(clippy::derive_partial_eq_without_eq)]
2570#[derive(Clone, PartialEq, ::prost::Message)]
2571pub struct ListEgressRequest {
2572 #[prost(string, tag="1")]
2574 pub room_name: ::prost::alloc::string::String,
2575 #[prost(string, tag="2")]
2577 pub egress_id: ::prost::alloc::string::String,
2578 #[prost(bool, tag="3")]
2580 pub active: bool,
2581}
2582#[allow(clippy::derive_partial_eq_without_eq)]
2583#[derive(Clone, PartialEq, ::prost::Message)]
2584pub struct ListEgressResponse {
2585 #[prost(message, repeated, tag="1")]
2586 pub items: ::prost::alloc::vec::Vec<EgressInfo>,
2587}
2588#[allow(clippy::derive_partial_eq_without_eq)]
2589#[derive(Clone, PartialEq, ::prost::Message)]
2590pub struct UpdateEgressRequest {
2591 #[prost(string, tag="1")]
2592 pub egress_id: ::prost::alloc::string::String,
2593 #[prost(string, tag="2")]
2594 pub url: ::prost::alloc::string::String,
2595 #[prost(string, tag="3")]
2596 pub layout: ::prost::alloc::string::String,
2597 #[prost(string, repeated, tag="4")]
2598 pub add_stream_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2599 #[prost(string, repeated, tag="5")]
2600 pub remove_stream_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2601}
2602#[allow(clippy::derive_partial_eq_without_eq)]
2603#[derive(Clone, PartialEq, ::prost::Message)]
2604pub struct StopEgressRequest {
2605 #[prost(string, tag="1")]
2606 pub egress_id: ::prost::alloc::string::String,
2607}
2608#[allow(clippy::derive_partial_eq_without_eq)]
2611#[derive(Clone, PartialEq, ::prost::Message)]
2612pub struct EgressInfo {
2613 #[prost(string, tag="1")]
2614 pub egress_id: ::prost::alloc::string::String,
2615 #[prost(string, tag="2")]
2616 pub room_id: ::prost::alloc::string::String,
2617 #[prost(string, tag="13")]
2618 pub room_name: ::prost::alloc::string::String,
2619 #[prost(enumeration="EgressSourceType", tag="26")]
2620 pub source_type: i32,
2621 #[prost(enumeration="EgressStatus", tag="3")]
2622 pub status: i32,
2623 #[prost(int64, tag="10")]
2624 pub started_at: i64,
2625 #[prost(int64, tag="11")]
2626 pub ended_at: i64,
2627 #[prost(int64, tag="18")]
2628 pub updated_at: i64,
2629 #[prost(message, repeated, tag="15")]
2630 pub stream_results: ::prost::alloc::vec::Vec<StreamInfo>,
2631 #[prost(message, repeated, tag="16")]
2632 pub file_results: ::prost::alloc::vec::Vec<FileInfo>,
2633 #[prost(message, repeated, tag="17")]
2634 pub segment_results: ::prost::alloc::vec::Vec<SegmentsInfo>,
2635 #[prost(message, repeated, tag="20")]
2636 pub image_results: ::prost::alloc::vec::Vec<ImagesInfo>,
2637 #[prost(string, tag="9")]
2638 pub error: ::prost::alloc::string::String,
2639 #[prost(int32, tag="22")]
2640 pub error_code: i32,
2641 #[prost(string, tag="21")]
2642 pub details: ::prost::alloc::string::String,
2643 #[prost(string, tag="23")]
2644 pub manifest_location: ::prost::alloc::string::String,
2645 #[prost(bool, tag="25")]
2646 pub backup_storage_used: bool,
2647 #[prost(int32, tag="27")]
2648 pub retry_count: i32,
2649 #[prost(oneof="egress_info::Request", tags="30, 4, 14, 19, 5, 6")]
2650 pub request: ::core::option::Option<egress_info::Request>,
2651 #[prost(oneof="egress_info::Result", tags="7, 8, 12")]
2655 pub result: ::core::option::Option<egress_info::Result>,
2656}
2657pub mod egress_info {
2659 #[allow(clippy::derive_partial_eq_without_eq)]
2660#[derive(Clone, PartialEq, ::prost::Oneof)]
2661 pub enum Request {
2662 #[prost(message, tag="30")]
2664 Replay(super::ExportReplayRequest),
2665 #[prost(message, tag="4")]
2666 RoomComposite(super::RoomCompositeEgressRequest),
2667 #[prost(message, tag="14")]
2668 Web(super::WebEgressRequest),
2669 #[prost(message, tag="19")]
2670 Participant(super::ParticipantEgressRequest),
2671 #[prost(message, tag="5")]
2672 TrackComposite(super::TrackCompositeEgressRequest),
2673 #[prost(message, tag="6")]
2674 Track(super::TrackEgressRequest),
2675 }
2676 #[allow(clippy::derive_partial_eq_without_eq)]
2680#[derive(Clone, PartialEq, ::prost::Oneof)]
2681 pub enum Result {
2682 #[prost(message, tag="7")]
2683 Stream(super::StreamInfoList),
2684 #[prost(message, tag="8")]
2685 File(super::FileInfo),
2686 #[prost(message, tag="12")]
2687 Segments(super::SegmentsInfo),
2688 }
2689}
2690#[allow(clippy::derive_partial_eq_without_eq)]
2691#[derive(Clone, PartialEq, ::prost::Message)]
2692pub struct StreamInfo {
2693 #[prost(string, tag="1")]
2694 pub url: ::prost::alloc::string::String,
2695 #[prost(int64, tag="2")]
2696 pub started_at: i64,
2697 #[prost(int64, tag="3")]
2698 pub ended_at: i64,
2699 #[prost(int64, tag="4")]
2700 pub duration: i64,
2701 #[prost(enumeration="stream_info::Status", tag="5")]
2702 pub status: i32,
2703 #[prost(string, tag="6")]
2704 pub error: ::prost::alloc::string::String,
2705 #[prost(int64, tag="7")]
2706 pub last_retry_at: i64,
2707 #[prost(uint32, tag="8")]
2708 pub retries: u32,
2709}
2710pub mod stream_info {
2712 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2713 #[repr(i32)]
2714 pub enum Status {
2715 Active = 0,
2716 Finished = 1,
2717 Failed = 2,
2718 }
2719 impl Status {
2720 pub fn as_str_name(&self) -> &'static str {
2725 match self {
2726 Status::Active => "ACTIVE",
2727 Status::Finished => "FINISHED",
2728 Status::Failed => "FAILED",
2729 }
2730 }
2731 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2733 match value {
2734 "ACTIVE" => Some(Self::Active),
2735 "FINISHED" => Some(Self::Finished),
2736 "FAILED" => Some(Self::Failed),
2737 _ => None,
2738 }
2739 }
2740 }
2741}
2742#[allow(clippy::derive_partial_eq_without_eq)]
2743#[derive(Clone, PartialEq, ::prost::Message)]
2744pub struct FileInfo {
2745 #[prost(string, tag="1")]
2746 pub filename: ::prost::alloc::string::String,
2747 #[prost(int64, tag="2")]
2748 pub started_at: i64,
2749 #[prost(int64, tag="3")]
2750 pub ended_at: i64,
2751 #[prost(int64, tag="6")]
2752 pub duration: i64,
2753 #[prost(int64, tag="4")]
2754 pub size: i64,
2755 #[prost(string, tag="5")]
2756 pub location: ::prost::alloc::string::String,
2757}
2758#[allow(clippy::derive_partial_eq_without_eq)]
2759#[derive(Clone, PartialEq, ::prost::Message)]
2760pub struct SegmentsInfo {
2761 #[prost(string, tag="1")]
2762 pub playlist_name: ::prost::alloc::string::String,
2763 #[prost(string, tag="8")]
2764 pub live_playlist_name: ::prost::alloc::string::String,
2765 #[prost(int64, tag="2")]
2766 pub duration: i64,
2767 #[prost(int64, tag="3")]
2768 pub size: i64,
2769 #[prost(string, tag="4")]
2770 pub playlist_location: ::prost::alloc::string::String,
2771 #[prost(string, tag="9")]
2772 pub live_playlist_location: ::prost::alloc::string::String,
2773 #[prost(int64, tag="5")]
2774 pub segment_count: i64,
2775 #[prost(int64, tag="6")]
2776 pub started_at: i64,
2777 #[prost(int64, tag="7")]
2778 pub ended_at: i64,
2779}
2780#[allow(clippy::derive_partial_eq_without_eq)]
2781#[derive(Clone, PartialEq, ::prost::Message)]
2782pub struct ImagesInfo {
2783 #[prost(string, tag="4")]
2784 pub filename_prefix: ::prost::alloc::string::String,
2785 #[prost(int64, tag="1")]
2786 pub image_count: i64,
2787 #[prost(int64, tag="2")]
2788 pub started_at: i64,
2789 #[prost(int64, tag="3")]
2790 pub ended_at: i64,
2791}
2792#[allow(clippy::derive_partial_eq_without_eq)]
2795#[derive(Clone, PartialEq, ::prost::Message)]
2796pub struct AutoParticipantEgress {
2797 #[prost(message, repeated, tag="3")]
2798 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2799 #[prost(message, repeated, tag="4")]
2800 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2801 #[prost(oneof="auto_participant_egress::Options", tags="1, 2")]
2802 pub options: ::core::option::Option<auto_participant_egress::Options>,
2803}
2804pub mod auto_participant_egress {
2806 #[allow(clippy::derive_partial_eq_without_eq)]
2807#[derive(Clone, PartialEq, ::prost::Oneof)]
2808 pub enum Options {
2809 #[prost(enumeration="super::EncodingOptionsPreset", tag="1")]
2811 Preset(i32),
2812 #[prost(message, tag="2")]
2814 Advanced(super::EncodingOptions),
2815 }
2816}
2817#[allow(clippy::derive_partial_eq_without_eq)]
2818#[derive(Clone, PartialEq, ::prost::Message)]
2819pub struct AutoTrackEgress {
2820 #[prost(string, tag="1")]
2822 pub filepath: ::prost::alloc::string::String,
2823 #[prost(bool, tag="5")]
2825 pub disable_manifest: bool,
2826 #[prost(oneof="auto_track_egress::Output", tags="2, 3, 4, 6")]
2827 pub output: ::core::option::Option<auto_track_egress::Output>,
2828}
2829pub mod auto_track_egress {
2831 #[allow(clippy::derive_partial_eq_without_eq)]
2832#[derive(Clone, PartialEq, ::prost::Oneof)]
2833 pub enum Output {
2834 #[prost(message, tag="2")]
2835 S3(super::S3Upload),
2836 #[prost(message, tag="3")]
2837 Gcp(super::GcpUpload),
2838 #[prost(message, tag="4")]
2839 Azure(super::AzureBlobUpload),
2840 #[prost(message, tag="6")]
2841 AliOss(super::AliOssUpload),
2842 }
2843}
2844#[allow(clippy::derive_partial_eq_without_eq)]
2847#[derive(Clone, PartialEq, ::prost::Message)]
2848pub struct ExportReplayRequest {
2849 #[prost(string, tag="1")]
2850 pub replay_id: ::prost::alloc::string::String,
2851 #[prost(int64, tag="2")]
2852 pub start_offset_ms: i64,
2853 #[prost(int64, tag="3")]
2854 pub end_offset_ms: i64,
2855 #[prost(message, repeated, tag="9")]
2856 pub outputs: ::prost::alloc::vec::Vec<Output>,
2857 #[prost(message, optional, tag="10")]
2858 pub storage: ::core::option::Option<StorageConfig>,
2859 #[prost(message, repeated, tag="11")]
2860 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2861 #[prost(oneof="export_replay_request::Source", tags="4, 5, 6")]
2862 pub source: ::core::option::Option<export_replay_request::Source>,
2863 #[prost(oneof="export_replay_request::Encoding", tags="7, 8")]
2864 pub encoding: ::core::option::Option<export_replay_request::Encoding>,
2865}
2866pub mod export_replay_request {
2868 #[allow(clippy::derive_partial_eq_without_eq)]
2869#[derive(Clone, PartialEq, ::prost::Oneof)]
2870 pub enum Source {
2871 #[prost(message, tag="4")]
2872 Template(super::TemplateSource),
2873 #[prost(message, tag="5")]
2874 Web(super::WebSource),
2875 #[prost(message, tag="6")]
2876 Media(super::MediaSource),
2877 }
2878 #[allow(clippy::derive_partial_eq_without_eq)]
2879#[derive(Clone, PartialEq, ::prost::Oneof)]
2880 pub enum Encoding {
2881 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
2882 Preset(i32),
2883 #[prost(message, tag="8")]
2884 Advanced(super::EncodingOptions),
2885 }
2886}
2887#[allow(clippy::derive_partial_eq_without_eq)]
2890#[derive(Clone, PartialEq, ::prost::Message)]
2891pub struct RoomCompositeEgressRequest {
2892 #[prost(string, tag="1")]
2893 pub room_name: ::prost::alloc::string::String,
2894 #[prost(string, tag="2")]
2895 pub layout: ::prost::alloc::string::String,
2896 #[prost(bool, tag="3")]
2897 pub audio_only: bool,
2898 #[prost(enumeration="AudioMixing", tag="15")]
2899 pub audio_mixing: i32,
2900 #[prost(bool, tag="4")]
2901 pub video_only: bool,
2902 #[prost(string, tag="5")]
2903 pub custom_base_url: ::prost::alloc::string::String,
2904 #[prost(message, repeated, tag="11")]
2905 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2906 #[prost(message, repeated, tag="12")]
2907 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2908 #[prost(message, repeated, tag="13")]
2909 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2910 #[prost(message, repeated, tag="14")]
2911 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2912 #[prost(message, repeated, tag="16")]
2913 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2914 #[prost(oneof="room_composite_egress_request::Output", tags="6, 7, 10")]
2915 pub output: ::core::option::Option<room_composite_egress_request::Output>,
2916 #[prost(oneof="room_composite_egress_request::Options", tags="8, 9")]
2917 pub options: ::core::option::Option<room_composite_egress_request::Options>,
2918}
2919pub mod room_composite_egress_request {
2921 #[allow(clippy::derive_partial_eq_without_eq)]
2922#[derive(Clone, PartialEq, ::prost::Oneof)]
2923 pub enum Output {
2924 #[prost(message, tag="6")]
2925 File(super::EncodedFileOutput),
2926 #[prost(message, tag="7")]
2927 Stream(super::StreamOutput),
2928 #[prost(message, tag="10")]
2929 Segments(super::SegmentedFileOutput),
2930 }
2931 #[allow(clippy::derive_partial_eq_without_eq)]
2932#[derive(Clone, PartialEq, ::prost::Oneof)]
2933 pub enum Options {
2934 #[prost(enumeration="super::EncodingOptionsPreset", tag="8")]
2935 Preset(i32),
2936 #[prost(message, tag="9")]
2937 Advanced(super::EncodingOptions),
2938 }
2939}
2940#[allow(clippy::derive_partial_eq_without_eq)]
2941#[derive(Clone, PartialEq, ::prost::Message)]
2942pub struct WebEgressRequest {
2943 #[prost(string, tag="1")]
2944 pub url: ::prost::alloc::string::String,
2945 #[prost(bool, tag="2")]
2946 pub audio_only: bool,
2947 #[prost(bool, tag="3")]
2948 pub video_only: bool,
2949 #[prost(bool, tag="12")]
2950 pub await_start_signal: bool,
2951 #[prost(message, repeated, tag="9")]
2952 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2953 #[prost(message, repeated, tag="10")]
2954 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
2955 #[prost(message, repeated, tag="11")]
2956 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2957 #[prost(message, repeated, tag="13")]
2958 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
2959 #[prost(message, repeated, tag="14")]
2960 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2961 #[prost(oneof="web_egress_request::Output", tags="4, 5, 6")]
2962 pub output: ::core::option::Option<web_egress_request::Output>,
2963 #[prost(oneof="web_egress_request::Options", tags="7, 8")]
2964 pub options: ::core::option::Option<web_egress_request::Options>,
2965}
2966pub mod web_egress_request {
2968 #[allow(clippy::derive_partial_eq_without_eq)]
2969#[derive(Clone, PartialEq, ::prost::Oneof)]
2970 pub enum Output {
2971 #[prost(message, tag="4")]
2972 File(super::EncodedFileOutput),
2973 #[prost(message, tag="5")]
2974 Stream(super::StreamOutput),
2975 #[prost(message, tag="6")]
2976 Segments(super::SegmentedFileOutput),
2977 }
2978 #[allow(clippy::derive_partial_eq_without_eq)]
2979#[derive(Clone, PartialEq, ::prost::Oneof)]
2980 pub enum Options {
2981 #[prost(enumeration="super::EncodingOptionsPreset", tag="7")]
2982 Preset(i32),
2983 #[prost(message, tag="8")]
2984 Advanced(super::EncodingOptions),
2985 }
2986}
2987#[allow(clippy::derive_partial_eq_without_eq)]
2988#[derive(Clone, PartialEq, ::prost::Message)]
2989pub struct ParticipantEgressRequest {
2990 #[prost(string, tag="1")]
2991 pub room_name: ::prost::alloc::string::String,
2992 #[prost(string, tag="2")]
2993 pub identity: ::prost::alloc::string::String,
2994 #[prost(bool, tag="3")]
2995 pub screen_share: bool,
2996 #[prost(message, repeated, tag="6")]
2997 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2998 #[prost(message, repeated, tag="7")]
2999 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3000 #[prost(message, repeated, tag="8")]
3001 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3002 #[prost(message, repeated, tag="9")]
3003 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3004 #[prost(message, repeated, tag="10")]
3005 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3006 #[prost(oneof="participant_egress_request::Options", tags="4, 5")]
3007 pub options: ::core::option::Option<participant_egress_request::Options>,
3008}
3009pub mod participant_egress_request {
3011 #[allow(clippy::derive_partial_eq_without_eq)]
3012#[derive(Clone, PartialEq, ::prost::Oneof)]
3013 pub enum Options {
3014 #[prost(enumeration="super::EncodingOptionsPreset", tag="4")]
3015 Preset(i32),
3016 #[prost(message, tag="5")]
3017 Advanced(super::EncodingOptions),
3018 }
3019}
3020#[allow(clippy::derive_partial_eq_without_eq)]
3021#[derive(Clone, PartialEq, ::prost::Message)]
3022pub struct TrackCompositeEgressRequest {
3023 #[prost(string, tag="1")]
3024 pub room_name: ::prost::alloc::string::String,
3025 #[prost(string, tag="2")]
3026 pub audio_track_id: ::prost::alloc::string::String,
3027 #[prost(string, tag="3")]
3028 pub video_track_id: ::prost::alloc::string::String,
3029 #[prost(message, repeated, tag="11")]
3030 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3031 #[prost(message, repeated, tag="12")]
3032 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3033 #[prost(message, repeated, tag="13")]
3034 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3035 #[prost(message, repeated, tag="14")]
3036 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3037 #[prost(message, repeated, tag="15")]
3038 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3039 #[prost(oneof="track_composite_egress_request::Output", tags="4, 5, 8")]
3040 pub output: ::core::option::Option<track_composite_egress_request::Output>,
3041 #[prost(oneof="track_composite_egress_request::Options", tags="6, 7")]
3042 pub options: ::core::option::Option<track_composite_egress_request::Options>,
3043}
3044pub mod track_composite_egress_request {
3046 #[allow(clippy::derive_partial_eq_without_eq)]
3047#[derive(Clone, PartialEq, ::prost::Oneof)]
3048 pub enum Output {
3049 #[prost(message, tag="4")]
3050 File(super::EncodedFileOutput),
3051 #[prost(message, tag="5")]
3052 Stream(super::StreamOutput),
3053 #[prost(message, tag="8")]
3054 Segments(super::SegmentedFileOutput),
3055 }
3056 #[allow(clippy::derive_partial_eq_without_eq)]
3057#[derive(Clone, PartialEq, ::prost::Oneof)]
3058 pub enum Options {
3059 #[prost(enumeration="super::EncodingOptionsPreset", tag="6")]
3060 Preset(i32),
3061 #[prost(message, tag="7")]
3062 Advanced(super::EncodingOptions),
3063 }
3064}
3065#[allow(clippy::derive_partial_eq_without_eq)]
3066#[derive(Clone, PartialEq, ::prost::Message)]
3067pub struct TrackEgressRequest {
3068 #[prost(string, tag="1")]
3069 pub room_name: ::prost::alloc::string::String,
3070 #[prost(string, tag="2")]
3071 pub track_id: ::prost::alloc::string::String,
3072 #[prost(message, repeated, tag="5")]
3073 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3074 #[prost(oneof="track_egress_request::Output", tags="3, 4")]
3075 pub output: ::core::option::Option<track_egress_request::Output>,
3076}
3077pub mod track_egress_request {
3079 #[allow(clippy::derive_partial_eq_without_eq)]
3080#[derive(Clone, PartialEq, ::prost::Oneof)]
3081 pub enum Output {
3082 #[prost(message, tag="3")]
3083 File(super::DirectFileOutput),
3084 #[prost(string, tag="4")]
3085 WebsocketUrl(::prost::alloc::string::String),
3086 }
3087}
3088#[allow(clippy::derive_partial_eq_without_eq)]
3089#[derive(Clone, PartialEq, ::prost::Message)]
3090pub struct DirectFileOutput {
3091 #[prost(string, tag="1")]
3092 pub filepath: ::prost::alloc::string::String,
3093 #[prost(bool, tag="5")]
3094 pub disable_manifest: bool,
3095 #[prost(oneof="direct_file_output::Output", tags="2, 3, 4, 6")]
3096 pub output: ::core::option::Option<direct_file_output::Output>,
3097}
3098pub mod direct_file_output {
3100 #[allow(clippy::derive_partial_eq_without_eq)]
3101#[derive(Clone, PartialEq, ::prost::Oneof)]
3102 pub enum Output {
3103 #[prost(message, tag="2")]
3104 S3(super::S3Upload),
3105 #[prost(message, tag="3")]
3106 Gcp(super::GcpUpload),
3107 #[prost(message, tag="4")]
3108 Azure(super::AzureBlobUpload),
3109 #[prost(message, tag="6")]
3110 AliOss(super::AliOssUpload),
3111 }
3112}
3113#[allow(clippy::derive_partial_eq_without_eq)]
3114#[derive(Clone, PartialEq, ::prost::Message)]
3115pub struct EncodedFileOutput {
3116 #[prost(enumeration="EncodedFileType", tag="1")]
3117 pub file_type: i32,
3118 #[prost(string, tag="2")]
3119 pub filepath: ::prost::alloc::string::String,
3120 #[prost(bool, tag="6")]
3121 pub disable_manifest: bool,
3122 #[prost(oneof="encoded_file_output::Output", tags="3, 4, 5, 7")]
3123 pub output: ::core::option::Option<encoded_file_output::Output>,
3124}
3125pub mod encoded_file_output {
3127 #[allow(clippy::derive_partial_eq_without_eq)]
3128#[derive(Clone, PartialEq, ::prost::Oneof)]
3129 pub enum Output {
3130 #[prost(message, tag="3")]
3131 S3(super::S3Upload),
3132 #[prost(message, tag="4")]
3133 Gcp(super::GcpUpload),
3134 #[prost(message, tag="5")]
3135 Azure(super::AzureBlobUpload),
3136 #[prost(message, tag="7")]
3137 AliOss(super::AliOssUpload),
3138 }
3139}
3140#[allow(clippy::derive_partial_eq_without_eq)]
3141#[derive(Clone, PartialEq, ::prost::Message)]
3142pub struct UpdateLayoutRequest {
3143 #[prost(string, tag="1")]
3144 pub egress_id: ::prost::alloc::string::String,
3145 #[prost(string, tag="2")]
3146 pub layout: ::prost::alloc::string::String,
3147}
3148#[allow(clippy::derive_partial_eq_without_eq)]
3149#[derive(Clone, PartialEq, ::prost::Message)]
3150pub struct UpdateStreamRequest {
3151 #[prost(string, tag="1")]
3152 pub egress_id: ::prost::alloc::string::String,
3153 #[prost(string, repeated, tag="2")]
3154 pub add_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3155 #[prost(string, repeated, tag="3")]
3156 pub remove_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3157}
3158#[allow(clippy::derive_partial_eq_without_eq)]
3159#[derive(Clone, PartialEq, ::prost::Message)]
3160pub struct StreamInfoList {
3161 #[prost(message, repeated, tag="1")]
3162 pub info: ::prost::alloc::vec::Vec<StreamInfo>,
3163}
3164#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3165#[repr(i32)]
3166pub enum AudioChannel {
3167 Both = 0,
3168 Left = 1,
3169 Right = 2,
3170}
3171impl AudioChannel {
3172 pub fn as_str_name(&self) -> &'static str {
3177 match self {
3178 AudioChannel::Both => "AUDIO_CHANNEL_BOTH",
3179 AudioChannel::Left => "AUDIO_CHANNEL_LEFT",
3180 AudioChannel::Right => "AUDIO_CHANNEL_RIGHT",
3181 }
3182 }
3183 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3185 match value {
3186 "AUDIO_CHANNEL_BOTH" => Some(Self::Both),
3187 "AUDIO_CHANNEL_LEFT" => Some(Self::Left),
3188 "AUDIO_CHANNEL_RIGHT" => Some(Self::Right),
3189 _ => None,
3190 }
3191 }
3192}
3193#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3196#[repr(i32)]
3197pub enum EncodingOptionsPreset {
3198 H264720p30 = 0,
3200 H264720p60 = 1,
3202 H2641080p30 = 2,
3204 H2641080p60 = 3,
3206 PortraitH264720p30 = 4,
3208 PortraitH264720p60 = 5,
3210 PortraitH2641080p30 = 6,
3212 PortraitH2641080p60 = 7,
3214}
3215impl EncodingOptionsPreset {
3216 pub fn as_str_name(&self) -> &'static str {
3221 match self {
3222 EncodingOptionsPreset::H264720p30 => "H264_720P_30",
3223 EncodingOptionsPreset::H264720p60 => "H264_720P_60",
3224 EncodingOptionsPreset::H2641080p30 => "H264_1080P_30",
3225 EncodingOptionsPreset::H2641080p60 => "H264_1080P_60",
3226 EncodingOptionsPreset::PortraitH264720p30 => "PORTRAIT_H264_720P_30",
3227 EncodingOptionsPreset::PortraitH264720p60 => "PORTRAIT_H264_720P_60",
3228 EncodingOptionsPreset::PortraitH2641080p30 => "PORTRAIT_H264_1080P_30",
3229 EncodingOptionsPreset::PortraitH2641080p60 => "PORTRAIT_H264_1080P_60",
3230 }
3231 }
3232 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3234 match value {
3235 "H264_720P_30" => Some(Self::H264720p30),
3236 "H264_720P_60" => Some(Self::H264720p60),
3237 "H264_1080P_30" => Some(Self::H2641080p30),
3238 "H264_1080P_60" => Some(Self::H2641080p60),
3239 "PORTRAIT_H264_720P_30" => Some(Self::PortraitH264720p30),
3240 "PORTRAIT_H264_720P_60" => Some(Self::PortraitH264720p60),
3241 "PORTRAIT_H264_1080P_30" => Some(Self::PortraitH2641080p30),
3242 "PORTRAIT_H264_1080P_60" => Some(Self::PortraitH2641080p60),
3243 _ => None,
3244 }
3245 }
3246}
3247#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3248#[repr(i32)]
3249pub enum EncodedFileType {
3250 DefaultFiletype = 0,
3252 Mp4 = 1,
3253 Ogg = 2,
3254 Mp3 = 3,
3255}
3256impl EncodedFileType {
3257 pub fn as_str_name(&self) -> &'static str {
3262 match self {
3263 EncodedFileType::DefaultFiletype => "DEFAULT_FILETYPE",
3264 EncodedFileType::Mp4 => "MP4",
3265 EncodedFileType::Ogg => "OGG",
3266 EncodedFileType::Mp3 => "MP3",
3267 }
3268 }
3269 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3271 match value {
3272 "DEFAULT_FILETYPE" => Some(Self::DefaultFiletype),
3273 "MP4" => Some(Self::Mp4),
3274 "OGG" => Some(Self::Ogg),
3275 "MP3" => Some(Self::Mp3),
3276 _ => None,
3277 }
3278 }
3279}
3280#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3281#[repr(i32)]
3282pub enum StreamProtocol {
3283 DefaultProtocol = 0,
3285 Rtmp = 1,
3286 Srt = 2,
3287 Websocket = 3,
3288}
3289impl StreamProtocol {
3290 pub fn as_str_name(&self) -> &'static str {
3295 match self {
3296 StreamProtocol::DefaultProtocol => "DEFAULT_PROTOCOL",
3297 StreamProtocol::Rtmp => "RTMP",
3298 StreamProtocol::Srt => "SRT",
3299 StreamProtocol::Websocket => "WEBSOCKET",
3300 }
3301 }
3302 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3304 match value {
3305 "DEFAULT_PROTOCOL" => Some(Self::DefaultProtocol),
3306 "RTMP" => Some(Self::Rtmp),
3307 "SRT" => Some(Self::Srt),
3308 "WEBSOCKET" => Some(Self::Websocket),
3309 _ => None,
3310 }
3311 }
3312}
3313#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3314#[repr(i32)]
3315pub enum SegmentedFileProtocol {
3316 DefaultSegmentedFileProtocol = 0,
3317 HlsProtocol = 1,
3318}
3319impl SegmentedFileProtocol {
3320 pub fn as_str_name(&self) -> &'static str {
3325 match self {
3326 SegmentedFileProtocol::DefaultSegmentedFileProtocol => "DEFAULT_SEGMENTED_FILE_PROTOCOL",
3327 SegmentedFileProtocol::HlsProtocol => "HLS_PROTOCOL",
3328 }
3329 }
3330 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3332 match value {
3333 "DEFAULT_SEGMENTED_FILE_PROTOCOL" => Some(Self::DefaultSegmentedFileProtocol),
3334 "HLS_PROTOCOL" => Some(Self::HlsProtocol),
3335 _ => None,
3336 }
3337 }
3338}
3339#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3340#[repr(i32)]
3341pub enum SegmentedFileSuffix {
3342 Index = 0,
3343 Timestamp = 1,
3344}
3345impl SegmentedFileSuffix {
3346 pub fn as_str_name(&self) -> &'static str {
3351 match self {
3352 SegmentedFileSuffix::Index => "INDEX",
3353 SegmentedFileSuffix::Timestamp => "TIMESTAMP",
3354 }
3355 }
3356 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3358 match value {
3359 "INDEX" => Some(Self::Index),
3360 "TIMESTAMP" => Some(Self::Timestamp),
3361 _ => None,
3362 }
3363 }
3364}
3365#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3366#[repr(i32)]
3367pub enum ImageFileSuffix {
3368 ImageSuffixIndex = 0,
3369 ImageSuffixTimestamp = 1,
3370 ImageSuffixNoneOverwrite = 2,
3372}
3373impl ImageFileSuffix {
3374 pub fn as_str_name(&self) -> &'static str {
3379 match self {
3380 ImageFileSuffix::ImageSuffixIndex => "IMAGE_SUFFIX_INDEX",
3381 ImageFileSuffix::ImageSuffixTimestamp => "IMAGE_SUFFIX_TIMESTAMP",
3382 ImageFileSuffix::ImageSuffixNoneOverwrite => "IMAGE_SUFFIX_NONE_OVERWRITE",
3383 }
3384 }
3385 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3387 match value {
3388 "IMAGE_SUFFIX_INDEX" => Some(Self::ImageSuffixIndex),
3389 "IMAGE_SUFFIX_TIMESTAMP" => Some(Self::ImageSuffixTimestamp),
3390 "IMAGE_SUFFIX_NONE_OVERWRITE" => Some(Self::ImageSuffixNoneOverwrite),
3391 _ => None,
3392 }
3393 }
3394}
3395#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3396#[repr(i32)]
3397pub enum EgressSourceType {
3398 Web = 0,
3399 Sdk = 1,
3400}
3401impl EgressSourceType {
3402 pub fn as_str_name(&self) -> &'static str {
3407 match self {
3408 EgressSourceType::Web => "EGRESS_SOURCE_TYPE_WEB",
3409 EgressSourceType::Sdk => "EGRESS_SOURCE_TYPE_SDK",
3410 }
3411 }
3412 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3414 match value {
3415 "EGRESS_SOURCE_TYPE_WEB" => Some(Self::Web),
3416 "EGRESS_SOURCE_TYPE_SDK" => Some(Self::Sdk),
3417 _ => None,
3418 }
3419 }
3420}
3421#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3422#[repr(i32)]
3423pub enum EgressStatus {
3424 EgressStarting = 0,
3425 EgressActive = 1,
3426 EgressEnding = 2,
3427 EgressComplete = 3,
3428 EgressFailed = 4,
3429 EgressAborted = 5,
3430 EgressLimitReached = 6,
3431}
3432impl EgressStatus {
3433 pub fn as_str_name(&self) -> &'static str {
3438 match self {
3439 EgressStatus::EgressStarting => "EGRESS_STARTING",
3440 EgressStatus::EgressActive => "EGRESS_ACTIVE",
3441 EgressStatus::EgressEnding => "EGRESS_ENDING",
3442 EgressStatus::EgressComplete => "EGRESS_COMPLETE",
3443 EgressStatus::EgressFailed => "EGRESS_FAILED",
3444 EgressStatus::EgressAborted => "EGRESS_ABORTED",
3445 EgressStatus::EgressLimitReached => "EGRESS_LIMIT_REACHED",
3446 }
3447 }
3448 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3450 match value {
3451 "EGRESS_STARTING" => Some(Self::EgressStarting),
3452 "EGRESS_ACTIVE" => Some(Self::EgressActive),
3453 "EGRESS_ENDING" => Some(Self::EgressEnding),
3454 "EGRESS_COMPLETE" => Some(Self::EgressComplete),
3455 "EGRESS_FAILED" => Some(Self::EgressFailed),
3456 "EGRESS_ABORTED" => Some(Self::EgressAborted),
3457 "EGRESS_LIMIT_REACHED" => Some(Self::EgressLimitReached),
3458 _ => None,
3459 }
3460 }
3461}
3462#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3463#[repr(i32)]
3464pub enum AudioMixing {
3465 DefaultMixing = 0,
3466 DualChannelAgent = 1,
3467 DualChannelAlternate = 2,
3468}
3469impl AudioMixing {
3470 pub fn as_str_name(&self) -> &'static str {
3475 match self {
3476 AudioMixing::DefaultMixing => "DEFAULT_MIXING",
3477 AudioMixing::DualChannelAgent => "DUAL_CHANNEL_AGENT",
3478 AudioMixing::DualChannelAlternate => "DUAL_CHANNEL_ALTERNATE",
3479 }
3480 }
3481 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3483 match value {
3484 "DEFAULT_MIXING" => Some(Self::DefaultMixing),
3485 "DUAL_CHANNEL_AGENT" => Some(Self::DualChannelAgent),
3486 "DUAL_CHANNEL_ALTERNATE" => Some(Self::DualChannelAlternate),
3487 _ => None,
3488 }
3489 }
3490}
3491#[allow(clippy::derive_partial_eq_without_eq)]
3492#[derive(Clone, PartialEq, ::prost::Message)]
3493pub struct SignalRequest {
3494 #[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")]
3495 pub message: ::core::option::Option<signal_request::Message>,
3496}
3497pub mod signal_request {
3499 #[allow(clippy::derive_partial_eq_without_eq)]
3500#[derive(Clone, PartialEq, ::prost::Oneof)]
3501 pub enum Message {
3502 #[prost(message, tag="1")]
3504 Offer(super::SessionDescription),
3505 #[prost(message, tag="2")]
3507 Answer(super::SessionDescription),
3508 #[prost(message, tag="3")]
3509 Trickle(super::TrickleRequest),
3510 #[prost(message, tag="4")]
3511 AddTrack(super::AddTrackRequest),
3512 #[prost(message, tag="5")]
3514 Mute(super::MuteTrackRequest),
3515 #[prost(message, tag="6")]
3517 Subscription(super::UpdateSubscription),
3518 #[prost(message, tag="7")]
3520 TrackSetting(super::UpdateTrackSettings),
3521 #[prost(message, tag="8")]
3523 Leave(super::LeaveRequest),
3524 #[prost(message, tag="10")]
3526 UpdateLayers(super::UpdateVideoLayers),
3527 #[prost(message, tag="11")]
3529 SubscriptionPermission(super::SubscriptionPermission),
3530 #[prost(message, tag="12")]
3532 SyncState(super::SyncState),
3533 #[prost(message, tag="13")]
3535 Simulate(super::SimulateScenario),
3536 #[prost(int64, tag="14")]
3540 Ping(i64),
3541 #[prost(message, tag="15")]
3544 UpdateMetadata(super::UpdateParticipantMetadata),
3545 #[prost(message, tag="16")]
3546 PingReq(super::Ping),
3547 #[prost(message, tag="17")]
3549 UpdateAudioTrack(super::UpdateLocalAudioTrack),
3550 #[prost(message, tag="18")]
3552 UpdateVideoTrack(super::UpdateLocalVideoTrack),
3553 #[prost(message, tag="19")]
3555 PublishDataTrackRequest(super::PublishDataTrackRequest),
3556 #[prost(message, tag="20")]
3558 UnpublishDataTrackRequest(super::UnpublishDataTrackRequest),
3559 #[prost(message, tag="21")]
3561 UpdateDataSubscription(super::UpdateDataSubscription),
3562 }
3563}
3564#[allow(clippy::derive_partial_eq_without_eq)]
3565#[derive(Clone, PartialEq, ::prost::Message)]
3566pub struct SignalResponse {
3567 #[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")]
3568 pub message: ::core::option::Option<signal_response::Message>,
3569}
3570pub mod signal_response {
3572 #[allow(clippy::derive_partial_eq_without_eq)]
3573#[derive(Clone, PartialEq, ::prost::Oneof)]
3574 pub enum Message {
3575 #[prost(message, tag="1")]
3577 Join(super::JoinResponse),
3578 #[prost(message, tag="2")]
3580 Answer(super::SessionDescription),
3581 #[prost(message, tag="3")]
3583 Offer(super::SessionDescription),
3584 #[prost(message, tag="4")]
3586 Trickle(super::TrickleRequest),
3587 #[prost(message, tag="5")]
3589 Update(super::ParticipantUpdate),
3590 #[prost(message, tag="6")]
3592 TrackPublished(super::TrackPublishedResponse),
3593 #[prost(message, tag="8")]
3595 Leave(super::LeaveRequest),
3596 #[prost(message, tag="9")]
3598 Mute(super::MuteTrackRequest),
3599 #[prost(message, tag="10")]
3601 SpeakersChanged(super::SpeakersChanged),
3602 #[prost(message, tag="11")]
3604 RoomUpdate(super::RoomUpdate),
3605 #[prost(message, tag="12")]
3607 ConnectionQuality(super::ConnectionQualityUpdate),
3608 #[prost(message, tag="13")]
3611 StreamStateUpdate(super::StreamStateUpdate),
3612 #[prost(message, tag="14")]
3614 SubscribedQualityUpdate(super::SubscribedQualityUpdate),
3615 #[prost(message, tag="15")]
3617 SubscriptionPermissionUpdate(super::SubscriptionPermissionUpdate),
3618 #[prost(string, tag="16")]
3620 RefreshToken(::prost::alloc::string::String),
3621 #[prost(message, tag="17")]
3623 TrackUnpublished(super::TrackUnpublishedResponse),
3624 #[prost(int64, tag="18")]
3628 Pong(i64),
3629 #[prost(message, tag="19")]
3631 Reconnect(super::ReconnectResponse),
3632 #[prost(message, tag="20")]
3634 PongResp(super::Pong),
3635 #[prost(message, tag="21")]
3637 SubscriptionResponse(super::SubscriptionResponse),
3638 #[prost(message, tag="22")]
3640 RequestResponse(super::RequestResponse),
3641 #[prost(message, tag="23")]
3643 TrackSubscribed(super::TrackSubscribed),
3644 #[prost(message, tag="24")]
3646 RoomMoved(super::RoomMovedResponse),
3647 #[prost(message, tag="25")]
3649 MediaSectionsRequirement(super::MediaSectionsRequirement),
3650 #[prost(message, tag="26")]
3652 SubscribedAudioCodecUpdate(super::SubscribedAudioCodecUpdate),
3653 #[prost(message, tag="27")]
3655 PublishDataTrackResponse(super::PublishDataTrackResponse),
3656 #[prost(message, tag="28")]
3658 UnpublishDataTrackResponse(super::UnpublishDataTrackResponse),
3659 #[prost(message, tag="29")]
3661 DataTrackSubscriberHandles(super::DataTrackSubscriberHandles),
3662 }
3663}
3664#[allow(clippy::derive_partial_eq_without_eq)]
3665#[derive(Clone, PartialEq, ::prost::Message)]
3666pub struct SimulcastCodec {
3667 #[prost(string, tag="1")]
3668 pub codec: ::prost::alloc::string::String,
3669 #[prost(string, tag="2")]
3670 pub cid: ::prost::alloc::string::String,
3671 #[prost(message, repeated, tag="4")]
3672 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3673 #[prost(enumeration="video_layer::Mode", tag="5")]
3674 pub video_layer_mode: i32,
3675}
3676#[allow(clippy::derive_partial_eq_without_eq)]
3677#[derive(Clone, PartialEq, ::prost::Message)]
3678pub struct AddTrackRequest {
3679 #[prost(string, tag="1")]
3681 pub cid: ::prost::alloc::string::String,
3682 #[prost(string, tag="2")]
3683 pub name: ::prost::alloc::string::String,
3684 #[prost(enumeration="TrackType", tag="3")]
3685 pub r#type: i32,
3686 #[prost(uint32, tag="4")]
3687 pub width: u32,
3688 #[prost(uint32, tag="5")]
3689 pub height: u32,
3690 #[prost(bool, tag="6")]
3692 pub muted: bool,
3693 #[deprecated]
3697 #[prost(bool, tag="7")]
3698 pub disable_dtx: bool,
3699 #[prost(enumeration="TrackSource", tag="8")]
3700 pub source: i32,
3701 #[prost(message, repeated, tag="9")]
3702 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3703 #[prost(message, repeated, tag="10")]
3704 pub simulcast_codecs: ::prost::alloc::vec::Vec<SimulcastCodec>,
3705 #[prost(string, tag="11")]
3707 pub sid: ::prost::alloc::string::String,
3708 #[deprecated]
3710 #[prost(bool, tag="12")]
3711 pub stereo: bool,
3712 #[prost(bool, tag="13")]
3714 pub disable_red: bool,
3715 #[prost(enumeration="encryption::Type", tag="14")]
3716 pub encryption: i32,
3717 #[prost(string, tag="15")]
3720 pub stream: ::prost::alloc::string::String,
3721 #[prost(enumeration="BackupCodecPolicy", tag="16")]
3722 pub backup_codec_policy: i32,
3723 #[prost(enumeration="AudioTrackFeature", repeated, tag="17")]
3724 pub audio_features: ::prost::alloc::vec::Vec<i32>,
3725 #[prost(enumeration="PacketTrailerFeature", repeated, tag="18")]
3726 pub packet_trailer_features: ::prost::alloc::vec::Vec<i32>,
3727}
3728#[allow(clippy::derive_partial_eq_without_eq)]
3729#[derive(Clone, PartialEq, ::prost::Message)]
3730pub struct PublishDataTrackRequest {
3731 #[prost(uint32, tag="1")]
3734 pub pub_handle: u32,
3735 #[prost(string, tag="2")]
3738 pub name: ::prost::alloc::string::String,
3739 #[prost(enumeration="encryption::Type", tag="3")]
3741 pub encryption: i32,
3742}
3743#[allow(clippy::derive_partial_eq_without_eq)]
3744#[derive(Clone, PartialEq, ::prost::Message)]
3745pub struct PublishDataTrackResponse {
3746 #[prost(message, optional, tag="1")]
3748 pub info: ::core::option::Option<DataTrackInfo>,
3749}
3750#[allow(clippy::derive_partial_eq_without_eq)]
3751#[derive(Clone, PartialEq, ::prost::Message)]
3752pub struct UnpublishDataTrackRequest {
3753 #[prost(uint32, tag="1")]
3755 pub pub_handle: u32,
3756}
3757#[allow(clippy::derive_partial_eq_without_eq)]
3758#[derive(Clone, PartialEq, ::prost::Message)]
3759pub struct UnpublishDataTrackResponse {
3760 #[prost(message, optional, tag="1")]
3762 pub info: ::core::option::Option<DataTrackInfo>,
3763}
3764#[allow(clippy::derive_partial_eq_without_eq)]
3765#[derive(Clone, PartialEq, ::prost::Message)]
3766pub struct DataTrackSubscriberHandles {
3767 #[prost(map="uint32, message", tag="1")]
3769 pub sub_handles: ::std::collections::HashMap<u32, data_track_subscriber_handles::PublishedDataTrack>,
3770}
3771pub mod data_track_subscriber_handles {
3773 #[allow(clippy::derive_partial_eq_without_eq)]
3774#[derive(Clone, PartialEq, ::prost::Message)]
3775 pub struct PublishedDataTrack {
3776 #[prost(string, tag="1")]
3777 pub publisher_identity: ::prost::alloc::string::String,
3778 #[prost(string, tag="2")]
3779 pub publisher_sid: ::prost::alloc::string::String,
3780 #[prost(string, tag="3")]
3781 pub track_sid: ::prost::alloc::string::String,
3782 }
3783}
3784#[allow(clippy::derive_partial_eq_without_eq)]
3785#[derive(Clone, PartialEq, ::prost::Message)]
3786pub struct TrickleRequest {
3787 #[prost(string, tag="1")]
3788 pub candidate_init: ::prost::alloc::string::String,
3789 #[prost(enumeration="SignalTarget", tag="2")]
3790 pub target: i32,
3791 #[prost(bool, tag="3")]
3792 pub r#final: bool,
3793}
3794#[allow(clippy::derive_partial_eq_without_eq)]
3795#[derive(Clone, PartialEq, ::prost::Message)]
3796pub struct MuteTrackRequest {
3797 #[prost(string, tag="1")]
3798 pub sid: ::prost::alloc::string::String,
3799 #[prost(bool, tag="2")]
3800 pub muted: bool,
3801}
3802#[allow(clippy::derive_partial_eq_without_eq)]
3803#[derive(Clone, PartialEq, ::prost::Message)]
3804pub struct JoinResponse {
3805 #[prost(message, optional, tag="1")]
3806 pub room: ::core::option::Option<Room>,
3807 #[prost(message, optional, tag="2")]
3808 pub participant: ::core::option::Option<ParticipantInfo>,
3809 #[prost(message, repeated, tag="3")]
3810 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3811 #[prost(string, tag="4")]
3813 pub server_version: ::prost::alloc::string::String,
3814 #[prost(message, repeated, tag="5")]
3815 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3816 #[prost(bool, tag="6")]
3818 pub subscriber_primary: bool,
3819 #[prost(string, tag="7")]
3822 pub alternative_url: ::prost::alloc::string::String,
3823 #[prost(message, optional, tag="8")]
3824 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3825 #[prost(string, tag="9")]
3827 pub server_region: ::prost::alloc::string::String,
3828 #[prost(int32, tag="10")]
3829 pub ping_timeout: i32,
3830 #[prost(int32, tag="11")]
3831 pub ping_interval: i32,
3832 #[prost(message, optional, tag="12")]
3833 pub server_info: ::core::option::Option<ServerInfo>,
3834 #[prost(bytes="vec", tag="13")]
3836 pub sif_trailer: ::prost::alloc::vec::Vec<u8>,
3837 #[prost(message, repeated, tag="14")]
3838 pub enabled_publish_codecs: ::prost::alloc::vec::Vec<Codec>,
3839 #[prost(bool, tag="15")]
3841 pub fast_publish: bool,
3842}
3843#[allow(clippy::derive_partial_eq_without_eq)]
3844#[derive(Clone, PartialEq, ::prost::Message)]
3845pub struct ReconnectResponse {
3846 #[prost(message, repeated, tag="1")]
3847 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3848 #[prost(message, optional, tag="2")]
3849 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3850 #[prost(message, optional, tag="3")]
3851 pub server_info: ::core::option::Option<ServerInfo>,
3852 #[prost(uint32, tag="4")]
3854 pub last_message_seq: u32,
3855}
3856#[allow(clippy::derive_partial_eq_without_eq)]
3857#[derive(Clone, PartialEq, ::prost::Message)]
3858pub struct TrackPublishedResponse {
3859 #[prost(string, tag="1")]
3860 pub cid: ::prost::alloc::string::String,
3861 #[prost(message, optional, tag="2")]
3862 pub track: ::core::option::Option<TrackInfo>,
3863}
3864#[allow(clippy::derive_partial_eq_without_eq)]
3865#[derive(Clone, PartialEq, ::prost::Message)]
3866pub struct TrackUnpublishedResponse {
3867 #[prost(string, tag="1")]
3868 pub track_sid: ::prost::alloc::string::String,
3869}
3870#[allow(clippy::derive_partial_eq_without_eq)]
3871#[derive(Clone, PartialEq, ::prost::Message)]
3872pub struct SessionDescription {
3873 #[prost(string, tag="1")]
3875 pub r#type: ::prost::alloc::string::String,
3876 #[prost(string, tag="2")]
3877 pub sdp: ::prost::alloc::string::String,
3878 #[prost(uint32, tag="3")]
3879 pub id: u32,
3880 #[prost(map="string, string", tag="4")]
3881 pub mid_to_track_id: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
3882}
3883#[allow(clippy::derive_partial_eq_without_eq)]
3884#[derive(Clone, PartialEq, ::prost::Message)]
3885pub struct ParticipantUpdate {
3886 #[prost(message, repeated, tag="1")]
3887 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3888}
3889#[allow(clippy::derive_partial_eq_without_eq)]
3890#[derive(Clone, PartialEq, ::prost::Message)]
3891pub struct UpdateSubscription {
3892 #[prost(string, repeated, tag="1")]
3893 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3894 #[prost(bool, tag="2")]
3895 pub subscribe: bool,
3896 #[prost(message, repeated, tag="3")]
3897 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
3898}
3899#[allow(clippy::derive_partial_eq_without_eq)]
3900#[derive(Clone, PartialEq, ::prost::Message)]
3901pub struct UpdateDataSubscription {
3902 #[prost(message, repeated, tag="1")]
3903 pub updates: ::prost::alloc::vec::Vec<update_data_subscription::Update>,
3904}
3905pub mod update_data_subscription {
3907 #[allow(clippy::derive_partial_eq_without_eq)]
3908#[derive(Clone, PartialEq, ::prost::Message)]
3909 pub struct Update {
3910 #[prost(string, tag="1")]
3911 pub track_sid: ::prost::alloc::string::String,
3912 #[prost(bool, tag="2")]
3913 pub subscribe: bool,
3914 #[prost(message, optional, tag="3")]
3917 pub options: ::core::option::Option<super::DataTrackSubscriptionOptions>,
3918 }
3919}
3920#[allow(clippy::derive_partial_eq_without_eq)]
3921#[derive(Clone, PartialEq, ::prost::Message)]
3922pub struct UpdateTrackSettings {
3923 #[prost(string, repeated, tag="1")]
3924 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3925 #[prost(bool, tag="3")]
3927 pub disabled: bool,
3928 #[prost(enumeration="VideoQuality", tag="4")]
3930 pub quality: i32,
3931 #[prost(uint32, tag="5")]
3933 pub width: u32,
3934 #[prost(uint32, tag="6")]
3936 pub height: u32,
3937 #[prost(uint32, tag="7")]
3938 pub fps: u32,
3939 #[prost(uint32, tag="8")]
3947 pub priority: u32,
3948}
3949#[allow(clippy::derive_partial_eq_without_eq)]
3950#[derive(Clone, PartialEq, ::prost::Message)]
3951pub struct UpdateLocalAudioTrack {
3952 #[prost(string, tag="1")]
3953 pub track_sid: ::prost::alloc::string::String,
3954 #[prost(enumeration="AudioTrackFeature", repeated, tag="2")]
3955 pub features: ::prost::alloc::vec::Vec<i32>,
3956}
3957#[allow(clippy::derive_partial_eq_without_eq)]
3958#[derive(Clone, PartialEq, ::prost::Message)]
3959pub struct UpdateLocalVideoTrack {
3960 #[prost(string, tag="1")]
3961 pub track_sid: ::prost::alloc::string::String,
3962 #[prost(uint32, tag="2")]
3963 pub width: u32,
3964 #[prost(uint32, tag="3")]
3965 pub height: u32,
3966}
3967#[allow(clippy::derive_partial_eq_without_eq)]
3968#[derive(Clone, PartialEq, ::prost::Message)]
3969pub struct LeaveRequest {
3970 #[prost(bool, tag="1")]
3974 pub can_reconnect: bool,
3975 #[prost(enumeration="DisconnectReason", tag="2")]
3976 pub reason: i32,
3977 #[prost(enumeration="leave_request::Action", tag="3")]
3978 pub action: i32,
3979 #[prost(message, optional, tag="4")]
3980 pub regions: ::core::option::Option<RegionSettings>,
3981}
3982pub mod leave_request {
3984 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3986 #[repr(i32)]
3987 pub enum Action {
3988 Disconnect = 0,
3990 Resume = 1,
3992 Reconnect = 2,
3994 }
3995 impl Action {
3996 pub fn as_str_name(&self) -> &'static str {
4001 match self {
4002 Action::Disconnect => "DISCONNECT",
4003 Action::Resume => "RESUME",
4004 Action::Reconnect => "RECONNECT",
4005 }
4006 }
4007 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4009 match value {
4010 "DISCONNECT" => Some(Self::Disconnect),
4011 "RESUME" => Some(Self::Resume),
4012 "RECONNECT" => Some(Self::Reconnect),
4013 _ => None,
4014 }
4015 }
4016 }
4017}
4018#[allow(clippy::derive_partial_eq_without_eq)]
4020#[derive(Clone, PartialEq, ::prost::Message)]
4021pub struct UpdateVideoLayers {
4022 #[prost(string, tag="1")]
4023 pub track_sid: ::prost::alloc::string::String,
4024 #[prost(message, repeated, tag="2")]
4025 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
4026}
4027#[allow(clippy::derive_partial_eq_without_eq)]
4028#[derive(Clone, PartialEq, ::prost::Message)]
4029pub struct UpdateParticipantMetadata {
4030 #[prost(string, tag="1")]
4031 pub metadata: ::prost::alloc::string::String,
4032 #[prost(string, tag="2")]
4033 pub name: ::prost::alloc::string::String,
4034 #[prost(map="string, string", tag="3")]
4037 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4038 #[prost(uint32, tag="4")]
4039 pub request_id: u32,
4040}
4041#[allow(clippy::derive_partial_eq_without_eq)]
4042#[derive(Clone, PartialEq, ::prost::Message)]
4043pub struct IceServer {
4044 #[prost(string, repeated, tag="1")]
4045 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4046 #[prost(string, tag="2")]
4047 pub username: ::prost::alloc::string::String,
4048 #[prost(string, tag="3")]
4049 pub credential: ::prost::alloc::string::String,
4050}
4051#[allow(clippy::derive_partial_eq_without_eq)]
4052#[derive(Clone, PartialEq, ::prost::Message)]
4053pub struct SpeakersChanged {
4054 #[prost(message, repeated, tag="1")]
4055 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
4056}
4057#[allow(clippy::derive_partial_eq_without_eq)]
4058#[derive(Clone, PartialEq, ::prost::Message)]
4059pub struct RoomUpdate {
4060 #[prost(message, optional, tag="1")]
4061 pub room: ::core::option::Option<Room>,
4062}
4063#[allow(clippy::derive_partial_eq_without_eq)]
4064#[derive(Clone, PartialEq, ::prost::Message)]
4065pub struct ConnectionQualityInfo {
4066 #[prost(string, tag="1")]
4067 pub participant_sid: ::prost::alloc::string::String,
4068 #[prost(enumeration="ConnectionQuality", tag="2")]
4069 pub quality: i32,
4070 #[prost(float, tag="3")]
4071 pub score: f32,
4072}
4073#[allow(clippy::derive_partial_eq_without_eq)]
4074#[derive(Clone, PartialEq, ::prost::Message)]
4075pub struct ConnectionQualityUpdate {
4076 #[prost(message, repeated, tag="1")]
4077 pub updates: ::prost::alloc::vec::Vec<ConnectionQualityInfo>,
4078}
4079#[allow(clippy::derive_partial_eq_without_eq)]
4080#[derive(Clone, PartialEq, ::prost::Message)]
4081pub struct StreamStateInfo {
4082 #[prost(string, tag="1")]
4083 pub participant_sid: ::prost::alloc::string::String,
4084 #[prost(string, tag="2")]
4085 pub track_sid: ::prost::alloc::string::String,
4086 #[prost(enumeration="StreamState", tag="3")]
4087 pub state: i32,
4088}
4089#[allow(clippy::derive_partial_eq_without_eq)]
4090#[derive(Clone, PartialEq, ::prost::Message)]
4091pub struct StreamStateUpdate {
4092 #[prost(message, repeated, tag="1")]
4093 pub stream_states: ::prost::alloc::vec::Vec<StreamStateInfo>,
4094}
4095#[allow(clippy::derive_partial_eq_without_eq)]
4096#[derive(Clone, PartialEq, ::prost::Message)]
4097pub struct SubscribedQuality {
4098 #[prost(enumeration="VideoQuality", tag="1")]
4099 pub quality: i32,
4100 #[prost(bool, tag="2")]
4101 pub enabled: bool,
4102}
4103#[allow(clippy::derive_partial_eq_without_eq)]
4104#[derive(Clone, PartialEq, ::prost::Message)]
4105pub struct SubscribedCodec {
4106 #[prost(string, tag="1")]
4107 pub codec: ::prost::alloc::string::String,
4108 #[prost(message, repeated, tag="2")]
4109 pub qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
4110}
4111#[allow(clippy::derive_partial_eq_without_eq)]
4112#[derive(Clone, PartialEq, ::prost::Message)]
4113pub struct SubscribedQualityUpdate {
4114 #[prost(string, tag="1")]
4115 pub track_sid: ::prost::alloc::string::String,
4116 #[deprecated]
4117 #[prost(message, repeated, tag="2")]
4118 pub subscribed_qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
4119 #[prost(message, repeated, tag="3")]
4120 pub subscribed_codecs: ::prost::alloc::vec::Vec<SubscribedCodec>,
4121}
4122#[allow(clippy::derive_partial_eq_without_eq)]
4123#[derive(Clone, PartialEq, ::prost::Message)]
4124pub struct SubscribedAudioCodecUpdate {
4125 #[prost(string, tag="1")]
4126 pub track_sid: ::prost::alloc::string::String,
4127 #[prost(message, repeated, tag="2")]
4128 pub subscribed_audio_codecs: ::prost::alloc::vec::Vec<SubscribedAudioCodec>,
4129}
4130#[allow(clippy::derive_partial_eq_without_eq)]
4131#[derive(Clone, PartialEq, ::prost::Message)]
4132pub struct TrackPermission {
4133 #[prost(string, tag="1")]
4135 pub participant_sid: ::prost::alloc::string::String,
4136 #[prost(bool, tag="2")]
4137 pub all_tracks: bool,
4138 #[prost(string, repeated, tag="3")]
4139 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4140 #[prost(string, tag="4")]
4141 pub participant_identity: ::prost::alloc::string::String,
4142}
4143#[allow(clippy::derive_partial_eq_without_eq)]
4144#[derive(Clone, PartialEq, ::prost::Message)]
4145pub struct SubscriptionPermission {
4146 #[prost(bool, tag="1")]
4147 pub all_participants: bool,
4148 #[prost(message, repeated, tag="2")]
4149 pub track_permissions: ::prost::alloc::vec::Vec<TrackPermission>,
4150}
4151#[allow(clippy::derive_partial_eq_without_eq)]
4152#[derive(Clone, PartialEq, ::prost::Message)]
4153pub struct SubscriptionPermissionUpdate {
4154 #[prost(string, tag="1")]
4155 pub participant_sid: ::prost::alloc::string::String,
4156 #[prost(string, tag="2")]
4157 pub track_sid: ::prost::alloc::string::String,
4158 #[prost(bool, tag="3")]
4159 pub allowed: bool,
4160}
4161#[allow(clippy::derive_partial_eq_without_eq)]
4162#[derive(Clone, PartialEq, ::prost::Message)]
4163pub struct RoomMovedResponse {
4164 #[prost(message, optional, tag="1")]
4166 pub room: ::core::option::Option<Room>,
4167 #[prost(string, tag="2")]
4169 pub token: ::prost::alloc::string::String,
4170 #[prost(message, optional, tag="3")]
4171 pub participant: ::core::option::Option<ParticipantInfo>,
4172 #[prost(message, repeated, tag="4")]
4173 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4174}
4175#[allow(clippy::derive_partial_eq_without_eq)]
4176#[derive(Clone, PartialEq, ::prost::Message)]
4177pub struct SyncState {
4178 #[prost(message, optional, tag="1")]
4182 pub answer: ::core::option::Option<SessionDescription>,
4183 #[prost(message, optional, tag="2")]
4184 pub subscription: ::core::option::Option<UpdateSubscription>,
4185 #[prost(message, repeated, tag="3")]
4186 pub publish_tracks: ::prost::alloc::vec::Vec<TrackPublishedResponse>,
4187 #[prost(message, repeated, tag="4")]
4188 pub data_channels: ::prost::alloc::vec::Vec<DataChannelInfo>,
4189 #[prost(message, optional, tag="5")]
4193 pub offer: ::core::option::Option<SessionDescription>,
4194 #[prost(string, repeated, tag="6")]
4195 pub track_sids_disabled: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4196 #[prost(message, repeated, tag="7")]
4197 pub datachannel_receive_states: ::prost::alloc::vec::Vec<DataChannelReceiveState>,
4198 #[prost(message, repeated, tag="8")]
4199 pub publish_data_tracks: ::prost::alloc::vec::Vec<PublishDataTrackResponse>,
4200}
4201#[allow(clippy::derive_partial_eq_without_eq)]
4202#[derive(Clone, PartialEq, ::prost::Message)]
4203pub struct DataChannelReceiveState {
4204 #[prost(string, tag="1")]
4205 pub publisher_sid: ::prost::alloc::string::String,
4206 #[prost(uint32, tag="2")]
4207 pub last_seq: u32,
4208}
4209#[allow(clippy::derive_partial_eq_without_eq)]
4210#[derive(Clone, PartialEq, ::prost::Message)]
4211pub struct DataChannelInfo {
4212 #[prost(string, tag="1")]
4213 pub label: ::prost::alloc::string::String,
4214 #[prost(uint32, tag="2")]
4215 pub id: u32,
4216 #[prost(enumeration="SignalTarget", tag="3")]
4217 pub target: i32,
4218}
4219#[allow(clippy::derive_partial_eq_without_eq)]
4220#[derive(Clone, PartialEq, ::prost::Message)]
4221pub struct SimulateScenario {
4222 #[prost(oneof="simulate_scenario::Scenario", tags="1, 2, 3, 4, 5, 6, 7, 8, 9")]
4223 pub scenario: ::core::option::Option<simulate_scenario::Scenario>,
4224}
4225pub mod simulate_scenario {
4227 #[allow(clippy::derive_partial_eq_without_eq)]
4228#[derive(Clone, PartialEq, ::prost::Oneof)]
4229 pub enum Scenario {
4230 #[prost(int32, tag="1")]
4232 SpeakerUpdate(i32),
4233 #[prost(bool, tag="2")]
4235 NodeFailure(bool),
4236 #[prost(bool, tag="3")]
4238 Migration(bool),
4239 #[prost(bool, tag="4")]
4241 ServerLeave(bool),
4242 #[prost(enumeration="super::CandidateProtocol", tag="5")]
4244 SwitchCandidateProtocol(i32),
4245 #[prost(int64, tag="6")]
4248 SubscriberBandwidth(i64),
4249 #[prost(bool, tag="7")]
4251 DisconnectSignalOnResume(bool),
4252 #[prost(bool, tag="8")]
4254 DisconnectSignalOnResumeNoMessages(bool),
4255 #[prost(bool, tag="9")]
4257 LeaveRequestFullReconnect(bool),
4258 }
4259}
4260#[allow(clippy::derive_partial_eq_without_eq)]
4261#[derive(Clone, PartialEq, ::prost::Message)]
4262pub struct Ping {
4263 #[prost(int64, tag="1")]
4264 pub timestamp: i64,
4265 #[prost(int64, tag="2")]
4267 pub rtt: i64,
4268}
4269#[allow(clippy::derive_partial_eq_without_eq)]
4270#[derive(Clone, PartialEq, ::prost::Message)]
4271pub struct Pong {
4272 #[prost(int64, tag="1")]
4274 pub last_ping_timestamp: i64,
4275 #[prost(int64, tag="2")]
4276 pub timestamp: i64,
4277}
4278#[allow(clippy::derive_partial_eq_without_eq)]
4279#[derive(Clone, PartialEq, ::prost::Message)]
4280pub struct RegionSettings {
4281 #[prost(message, repeated, tag="1")]
4282 pub regions: ::prost::alloc::vec::Vec<RegionInfo>,
4283}
4284#[allow(clippy::derive_partial_eq_without_eq)]
4285#[derive(Clone, PartialEq, ::prost::Message)]
4286pub struct RegionInfo {
4287 #[prost(string, tag="1")]
4288 pub region: ::prost::alloc::string::String,
4289 #[prost(string, tag="2")]
4290 pub url: ::prost::alloc::string::String,
4291 #[prost(int64, tag="3")]
4292 pub distance: i64,
4293}
4294#[allow(clippy::derive_partial_eq_without_eq)]
4295#[derive(Clone, PartialEq, ::prost::Message)]
4296pub struct SubscriptionResponse {
4297 #[prost(string, tag="1")]
4298 pub track_sid: ::prost::alloc::string::String,
4299 #[prost(enumeration="SubscriptionError", tag="2")]
4300 pub err: i32,
4301}
4302#[allow(clippy::derive_partial_eq_without_eq)]
4303#[derive(Clone, PartialEq, ::prost::Message)]
4304pub struct RequestResponse {
4305 #[prost(uint32, tag="1")]
4306 pub request_id: u32,
4307 #[prost(enumeration="request_response::Reason", tag="2")]
4308 pub reason: i32,
4309 #[prost(string, tag="3")]
4310 pub message: ::prost::alloc::string::String,
4311 #[prost(oneof="request_response::Request", tags="4, 5, 6, 7, 8, 9, 10, 11")]
4312 pub request: ::core::option::Option<request_response::Request>,
4313}
4314pub mod request_response {
4316 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4317 #[repr(i32)]
4318 pub enum Reason {
4319 Ok = 0,
4320 NotFound = 1,
4321 NotAllowed = 2,
4322 LimitExceeded = 3,
4323 Queued = 4,
4324 UnsupportedType = 5,
4325 UnclassifiedError = 6,
4326 InvalidHandle = 7,
4327 InvalidName = 8,
4328 DuplicateHandle = 9,
4329 DuplicateName = 10,
4330 }
4331 impl Reason {
4332 pub fn as_str_name(&self) -> &'static str {
4337 match self {
4338 Reason::Ok => "OK",
4339 Reason::NotFound => "NOT_FOUND",
4340 Reason::NotAllowed => "NOT_ALLOWED",
4341 Reason::LimitExceeded => "LIMIT_EXCEEDED",
4342 Reason::Queued => "QUEUED",
4343 Reason::UnsupportedType => "UNSUPPORTED_TYPE",
4344 Reason::UnclassifiedError => "UNCLASSIFIED_ERROR",
4345 Reason::InvalidHandle => "INVALID_HANDLE",
4346 Reason::InvalidName => "INVALID_NAME",
4347 Reason::DuplicateHandle => "DUPLICATE_HANDLE",
4348 Reason::DuplicateName => "DUPLICATE_NAME",
4349 }
4350 }
4351 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4353 match value {
4354 "OK" => Some(Self::Ok),
4355 "NOT_FOUND" => Some(Self::NotFound),
4356 "NOT_ALLOWED" => Some(Self::NotAllowed),
4357 "LIMIT_EXCEEDED" => Some(Self::LimitExceeded),
4358 "QUEUED" => Some(Self::Queued),
4359 "UNSUPPORTED_TYPE" => Some(Self::UnsupportedType),
4360 "UNCLASSIFIED_ERROR" => Some(Self::UnclassifiedError),
4361 "INVALID_HANDLE" => Some(Self::InvalidHandle),
4362 "INVALID_NAME" => Some(Self::InvalidName),
4363 "DUPLICATE_HANDLE" => Some(Self::DuplicateHandle),
4364 "DUPLICATE_NAME" => Some(Self::DuplicateName),
4365 _ => None,
4366 }
4367 }
4368 }
4369 #[allow(clippy::derive_partial_eq_without_eq)]
4370#[derive(Clone, PartialEq, ::prost::Oneof)]
4371 pub enum Request {
4372 #[prost(message, tag="4")]
4373 Trickle(super::TrickleRequest),
4374 #[prost(message, tag="5")]
4375 AddTrack(super::AddTrackRequest),
4376 #[prost(message, tag="6")]
4377 Mute(super::MuteTrackRequest),
4378 #[prost(message, tag="7")]
4379 UpdateMetadata(super::UpdateParticipantMetadata),
4380 #[prost(message, tag="8")]
4381 UpdateAudioTrack(super::UpdateLocalAudioTrack),
4382 #[prost(message, tag="9")]
4383 UpdateVideoTrack(super::UpdateLocalVideoTrack),
4384 #[prost(message, tag="10")]
4385 PublishDataTrack(super::PublishDataTrackRequest),
4386 #[prost(message, tag="11")]
4387 UnpublishDataTrack(super::UnpublishDataTrackRequest),
4388 }
4389}
4390#[allow(clippy::derive_partial_eq_without_eq)]
4391#[derive(Clone, PartialEq, ::prost::Message)]
4392pub struct TrackSubscribed {
4393 #[prost(string, tag="1")]
4394 pub track_sid: ::prost::alloc::string::String,
4395}
4396#[allow(clippy::derive_partial_eq_without_eq)]
4397#[derive(Clone, PartialEq, ::prost::Message)]
4398pub struct ConnectionSettings {
4399 #[prost(bool, tag="1")]
4400 pub auto_subscribe: bool,
4401 #[prost(bool, tag="2")]
4402 pub adaptive_stream: bool,
4403 #[prost(bool, optional, tag="3")]
4404 pub subscriber_allow_pause: ::core::option::Option<bool>,
4405 #[prost(bool, tag="4")]
4406 pub disable_ice_lite: bool,
4407 #[prost(bool, optional, tag="5")]
4408 pub auto_subscribe_data_track: ::core::option::Option<bool>,
4409}
4410#[allow(clippy::derive_partial_eq_without_eq)]
4411#[derive(Clone, PartialEq, ::prost::Message)]
4412pub struct JoinRequest {
4413 #[prost(message, optional, tag="1")]
4414 pub client_info: ::core::option::Option<ClientInfo>,
4415 #[prost(message, optional, tag="2")]
4416 pub connection_settings: ::core::option::Option<ConnectionSettings>,
4417 #[prost(string, tag="3")]
4419 pub metadata: ::prost::alloc::string::String,
4420 #[prost(map="string, string", tag="4")]
4424 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4425 #[prost(message, repeated, tag="5")]
4426 pub add_track_requests: ::prost::alloc::vec::Vec<AddTrackRequest>,
4427 #[prost(message, optional, tag="6")]
4428 pub publisher_offer: ::core::option::Option<SessionDescription>,
4429 #[prost(bool, tag="7")]
4430 pub reconnect: bool,
4431 #[prost(enumeration="ReconnectReason", tag="8")]
4432 pub reconnect_reason: i32,
4433 #[prost(string, tag="9")]
4434 pub participant_sid: ::prost::alloc::string::String,
4435 #[prost(message, optional, tag="10")]
4436 pub sync_state: ::core::option::Option<SyncState>,
4437}
4438#[allow(clippy::derive_partial_eq_without_eq)]
4439#[derive(Clone, PartialEq, ::prost::Message)]
4440pub struct WrappedJoinRequest {
4441 #[prost(enumeration="wrapped_join_request::Compression", tag="1")]
4442 pub compression: i32,
4443 #[prost(bytes="vec", tag="2")]
4445 pub join_request: ::prost::alloc::vec::Vec<u8>,
4446}
4447pub mod wrapped_join_request {
4449 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4450 #[repr(i32)]
4451 pub enum Compression {
4452 None = 0,
4453 Gzip = 1,
4454 }
4455 impl Compression {
4456 pub fn as_str_name(&self) -> &'static str {
4461 match self {
4462 Compression::None => "NONE",
4463 Compression::Gzip => "GZIP",
4464 }
4465 }
4466 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4468 match value {
4469 "NONE" => Some(Self::None),
4470 "GZIP" => Some(Self::Gzip),
4471 _ => None,
4472 }
4473 }
4474 }
4475}
4476#[allow(clippy::derive_partial_eq_without_eq)]
4477#[derive(Clone, PartialEq, ::prost::Message)]
4478pub struct MediaSectionsRequirement {
4479 #[prost(uint32, tag="1")]
4480 pub num_audios: u32,
4481 #[prost(uint32, tag="2")]
4482 pub num_videos: u32,
4483}
4484#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4485#[repr(i32)]
4486pub enum SignalTarget {
4487 Publisher = 0,
4488 Subscriber = 1,
4489}
4490impl SignalTarget {
4491 pub fn as_str_name(&self) -> &'static str {
4496 match self {
4497 SignalTarget::Publisher => "PUBLISHER",
4498 SignalTarget::Subscriber => "SUBSCRIBER",
4499 }
4500 }
4501 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4503 match value {
4504 "PUBLISHER" => Some(Self::Publisher),
4505 "SUBSCRIBER" => Some(Self::Subscriber),
4506 _ => None,
4507 }
4508 }
4509}
4510#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4511#[repr(i32)]
4512pub enum StreamState {
4513 Active = 0,
4514 Paused = 1,
4515}
4516impl StreamState {
4517 pub fn as_str_name(&self) -> &'static str {
4522 match self {
4523 StreamState::Active => "ACTIVE",
4524 StreamState::Paused => "PAUSED",
4525 }
4526 }
4527 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4529 match value {
4530 "ACTIVE" => Some(Self::Active),
4531 "PAUSED" => Some(Self::Paused),
4532 _ => None,
4533 }
4534 }
4535}
4536#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4537#[repr(i32)]
4538pub enum CandidateProtocol {
4539 Udp = 0,
4540 Tcp = 1,
4541 Tls = 2,
4542}
4543impl CandidateProtocol {
4544 pub fn as_str_name(&self) -> &'static str {
4549 match self {
4550 CandidateProtocol::Udp => "UDP",
4551 CandidateProtocol::Tcp => "TCP",
4552 CandidateProtocol::Tls => "TLS",
4553 }
4554 }
4555 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4557 match value {
4558 "UDP" => Some(Self::Udp),
4559 "TCP" => Some(Self::Tcp),
4560 "TLS" => Some(Self::Tls),
4561 _ => None,
4562 }
4563 }
4564}
4565#[allow(clippy::derive_partial_eq_without_eq)]
4566#[derive(Clone, PartialEq, ::prost::Message)]
4567pub struct Job {
4568 #[prost(string, tag="1")]
4569 pub id: ::prost::alloc::string::String,
4570 #[prost(string, tag="9")]
4571 pub dispatch_id: ::prost::alloc::string::String,
4572 #[prost(enumeration="JobType", tag="2")]
4573 pub r#type: i32,
4574 #[prost(message, optional, tag="3")]
4575 pub room: ::core::option::Option<Room>,
4576 #[prost(message, optional, tag="4")]
4577 pub participant: ::core::option::Option<ParticipantInfo>,
4578 #[deprecated]
4579 #[prost(string, tag="5")]
4580 pub namespace: ::prost::alloc::string::String,
4581 #[prost(string, tag="6")]
4582 pub metadata: ::prost::alloc::string::String,
4583 #[prost(string, tag="7")]
4584 pub agent_name: ::prost::alloc::string::String,
4585 #[prost(message, optional, tag="8")]
4586 pub state: ::core::option::Option<JobState>,
4587 #[prost(bool, tag="10")]
4588 pub enable_recording: bool,
4589 #[prost(string, tag="11")]
4590 pub deployment: ::prost::alloc::string::String,
4591}
4592#[allow(clippy::derive_partial_eq_without_eq)]
4593#[derive(Clone, PartialEq, ::prost::Message)]
4594pub struct JobState {
4595 #[prost(enumeration="JobStatus", tag="1")]
4596 pub status: i32,
4597 #[prost(string, tag="2")]
4598 pub error: ::prost::alloc::string::String,
4599 #[prost(int64, tag="3")]
4600 pub started_at: i64,
4601 #[prost(int64, tag="4")]
4602 pub ended_at: i64,
4603 #[prost(int64, tag="5")]
4604 pub updated_at: i64,
4605 #[prost(string, tag="6")]
4606 pub participant_identity: ::prost::alloc::string::String,
4607 #[prost(string, tag="7")]
4608 pub worker_id: ::prost::alloc::string::String,
4609 #[prost(string, tag="8")]
4610 pub agent_id: ::prost::alloc::string::String,
4611}
4612#[allow(clippy::derive_partial_eq_without_eq)]
4614#[derive(Clone, PartialEq, ::prost::Message)]
4615pub struct WorkerMessage {
4616 #[prost(oneof="worker_message::Message", tags="1, 2, 3, 4, 5, 6, 7")]
4617 pub message: ::core::option::Option<worker_message::Message>,
4618}
4619pub mod worker_message {
4621 #[allow(clippy::derive_partial_eq_without_eq)]
4622#[derive(Clone, PartialEq, ::prost::Oneof)]
4623 pub enum Message {
4624 #[prost(message, tag="1")]
4626 Register(super::RegisterWorkerRequest),
4627 #[prost(message, tag="2")]
4629 Availability(super::AvailabilityResponse),
4630 #[prost(message, tag="3")]
4632 UpdateWorker(super::UpdateWorkerStatus),
4633 #[prost(message, tag="4")]
4635 UpdateJob(super::UpdateJobStatus),
4636 #[prost(message, tag="5")]
4637 Ping(super::WorkerPing),
4638 #[prost(message, tag="6")]
4639 SimulateJob(super::SimulateJobRequest),
4640 #[prost(message, tag="7")]
4641 MigrateJob(super::MigrateJobRequest),
4642 }
4643}
4644#[allow(clippy::derive_partial_eq_without_eq)]
4646#[derive(Clone, PartialEq, ::prost::Message)]
4647pub struct ServerMessage {
4648 #[prost(oneof="server_message::Message", tags="1, 2, 3, 5, 4")]
4649 pub message: ::core::option::Option<server_message::Message>,
4650}
4651pub mod server_message {
4653 #[allow(clippy::derive_partial_eq_without_eq)]
4654#[derive(Clone, PartialEq, ::prost::Oneof)]
4655 pub enum Message {
4656 #[prost(message, tag="1")]
4658 Register(super::RegisterWorkerResponse),
4659 #[prost(message, tag="2")]
4661 Availability(super::AvailabilityRequest),
4662 #[prost(message, tag="3")]
4663 Assignment(super::JobAssignment),
4664 #[prost(message, tag="5")]
4665 Termination(super::JobTermination),
4666 #[prost(message, tag="4")]
4667 Pong(super::WorkerPong),
4668 }
4669}
4670#[allow(clippy::derive_partial_eq_without_eq)]
4671#[derive(Clone, PartialEq, ::prost::Message)]
4672pub struct SimulateJobRequest {
4673 #[prost(enumeration="JobType", tag="1")]
4674 pub r#type: i32,
4675 #[prost(message, optional, tag="2")]
4676 pub room: ::core::option::Option<Room>,
4677 #[prost(message, optional, tag="3")]
4678 pub participant: ::core::option::Option<ParticipantInfo>,
4679}
4680#[allow(clippy::derive_partial_eq_without_eq)]
4681#[derive(Clone, PartialEq, ::prost::Message)]
4682pub struct WorkerPing {
4683 #[prost(int64, tag="1")]
4684 pub timestamp: i64,
4685}
4686#[allow(clippy::derive_partial_eq_without_eq)]
4687#[derive(Clone, PartialEq, ::prost::Message)]
4688pub struct WorkerPong {
4689 #[prost(int64, tag="1")]
4690 pub last_timestamp: i64,
4691 #[prost(int64, tag="2")]
4692 pub timestamp: i64,
4693}
4694#[allow(clippy::derive_partial_eq_without_eq)]
4695#[derive(Clone, PartialEq, ::prost::Message)]
4696pub struct RegisterWorkerRequest {
4697 #[prost(enumeration="JobType", tag="1")]
4698 pub r#type: i32,
4699 #[prost(string, tag="8")]
4700 pub agent_name: ::prost::alloc::string::String,
4701 #[prost(string, tag="3")]
4703 pub version: ::prost::alloc::string::String,
4704 #[prost(uint32, tag="5")]
4706 pub ping_interval: u32,
4707 #[prost(string, optional, tag="6")]
4708 pub namespace: ::core::option::Option<::prost::alloc::string::String>,
4709 #[prost(message, optional, tag="7")]
4710 pub allowed_permissions: ::core::option::Option<ParticipantPermission>,
4711 #[prost(string, tag="9")]
4712 pub deployment: ::prost::alloc::string::String,
4713}
4714#[allow(clippy::derive_partial_eq_without_eq)]
4715#[derive(Clone, PartialEq, ::prost::Message)]
4716pub struct RegisterWorkerResponse {
4717 #[prost(string, tag="1")]
4718 pub worker_id: ::prost::alloc::string::String,
4719 #[prost(message, optional, tag="3")]
4720 pub server_info: ::core::option::Option<ServerInfo>,
4721}
4722#[allow(clippy::derive_partial_eq_without_eq)]
4723#[derive(Clone, PartialEq, ::prost::Message)]
4724pub struct MigrateJobRequest {
4725 #[prost(string, repeated, tag="2")]
4727 pub job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4728}
4729#[allow(clippy::derive_partial_eq_without_eq)]
4730#[derive(Clone, PartialEq, ::prost::Message)]
4731pub struct AvailabilityRequest {
4732 #[prost(message, optional, tag="1")]
4733 pub job: ::core::option::Option<Job>,
4734 #[prost(bool, tag="2")]
4737 pub resuming: bool,
4738}
4739#[allow(clippy::derive_partial_eq_without_eq)]
4740#[derive(Clone, PartialEq, ::prost::Message)]
4741pub struct AvailabilityResponse {
4742 #[prost(string, tag="1")]
4743 pub job_id: ::prost::alloc::string::String,
4744 #[prost(bool, tag="2")]
4745 pub available: bool,
4746 #[prost(bool, tag="3")]
4747 pub supports_resume: bool,
4748 #[prost(bool, tag="8")]
4749 pub terminate: bool,
4750 #[prost(string, tag="4")]
4751 pub participant_name: ::prost::alloc::string::String,
4752 #[prost(string, tag="5")]
4753 pub participant_identity: ::prost::alloc::string::String,
4754 #[prost(string, tag="6")]
4755 pub participant_metadata: ::prost::alloc::string::String,
4756 #[prost(map="string, string", tag="7")]
4758 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4759}
4760#[allow(clippy::derive_partial_eq_without_eq)]
4761#[derive(Clone, PartialEq, ::prost::Message)]
4762pub struct UpdateJobStatus {
4763 #[prost(string, tag="1")]
4764 pub job_id: ::prost::alloc::string::String,
4765 #[prost(enumeration="JobStatus", tag="2")]
4767 pub status: i32,
4768 #[prost(string, tag="3")]
4770 pub error: ::prost::alloc::string::String,
4771}
4772#[allow(clippy::derive_partial_eq_without_eq)]
4773#[derive(Clone, PartialEq, ::prost::Message)]
4774pub struct UpdateWorkerStatus {
4775 #[prost(enumeration="WorkerStatus", optional, tag="1")]
4776 pub status: ::core::option::Option<i32>,
4777 #[prost(float, tag="3")]
4779 pub load: f32,
4780 #[prost(uint32, tag="4")]
4781 pub job_count: u32,
4782}
4783#[allow(clippy::derive_partial_eq_without_eq)]
4784#[derive(Clone, PartialEq, ::prost::Message)]
4785pub struct JobAssignment {
4786 #[prost(message, optional, tag="1")]
4787 pub job: ::core::option::Option<Job>,
4788 #[prost(string, optional, tag="2")]
4789 pub url: ::core::option::Option<::prost::alloc::string::String>,
4790 #[prost(string, tag="3")]
4791 pub token: ::prost::alloc::string::String,
4792}
4793#[allow(clippy::derive_partial_eq_without_eq)]
4794#[derive(Clone, PartialEq, ::prost::Message)]
4795pub struct JobTermination {
4796 #[prost(string, tag="1")]
4797 pub job_id: ::prost::alloc::string::String,
4798}
4799#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4800#[repr(i32)]
4801pub enum JobType {
4802 JtRoom = 0,
4803 JtPublisher = 1,
4804 JtParticipant = 2,
4805}
4806impl JobType {
4807 pub fn as_str_name(&self) -> &'static str {
4812 match self {
4813 JobType::JtRoom => "JT_ROOM",
4814 JobType::JtPublisher => "JT_PUBLISHER",
4815 JobType::JtParticipant => "JT_PARTICIPANT",
4816 }
4817 }
4818 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4820 match value {
4821 "JT_ROOM" => Some(Self::JtRoom),
4822 "JT_PUBLISHER" => Some(Self::JtPublisher),
4823 "JT_PARTICIPANT" => Some(Self::JtParticipant),
4824 _ => None,
4825 }
4826 }
4827}
4828#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4829#[repr(i32)]
4830pub enum WorkerStatus {
4831 WsAvailable = 0,
4832 WsFull = 1,
4833}
4834impl WorkerStatus {
4835 pub fn as_str_name(&self) -> &'static str {
4840 match self {
4841 WorkerStatus::WsAvailable => "WS_AVAILABLE",
4842 WorkerStatus::WsFull => "WS_FULL",
4843 }
4844 }
4845 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4847 match value {
4848 "WS_AVAILABLE" => Some(Self::WsAvailable),
4849 "WS_FULL" => Some(Self::WsFull),
4850 _ => None,
4851 }
4852 }
4853}
4854#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4855#[repr(i32)]
4856pub enum JobStatus {
4857 JsPending = 0,
4858 JsRunning = 1,
4859 JsSuccess = 2,
4860 JsFailed = 3,
4861}
4862impl JobStatus {
4863 pub fn as_str_name(&self) -> &'static str {
4868 match self {
4869 JobStatus::JsPending => "JS_PENDING",
4870 JobStatus::JsRunning => "JS_RUNNING",
4871 JobStatus::JsSuccess => "JS_SUCCESS",
4872 JobStatus::JsFailed => "JS_FAILED",
4873 }
4874 }
4875 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4877 match value {
4878 "JS_PENDING" => Some(Self::JsPending),
4879 "JS_RUNNING" => Some(Self::JsRunning),
4880 "JS_SUCCESS" => Some(Self::JsSuccess),
4881 "JS_FAILED" => Some(Self::JsFailed),
4882 _ => None,
4883 }
4884 }
4885}
4886#[allow(clippy::derive_partial_eq_without_eq)]
4887#[derive(Clone, PartialEq, ::prost::Message)]
4888pub struct CreateAgentDispatchRequest {
4889 #[prost(string, tag="1")]
4890 pub agent_name: ::prost::alloc::string::String,
4891 #[prost(string, tag="2")]
4892 pub room: ::prost::alloc::string::String,
4893 #[prost(string, tag="3")]
4894 pub metadata: ::prost::alloc::string::String,
4895 #[prost(enumeration="JobRestartPolicy", tag="4")]
4897 pub restart_policy: i32,
4898 #[prost(string, tag="5")]
4899 pub deployment: ::prost::alloc::string::String,
4900}
4901#[allow(clippy::derive_partial_eq_without_eq)]
4902#[derive(Clone, PartialEq, ::prost::Message)]
4903pub struct RoomAgentDispatch {
4904 #[prost(string, tag="1")]
4905 pub agent_name: ::prost::alloc::string::String,
4906 #[prost(string, tag="2")]
4907 pub metadata: ::prost::alloc::string::String,
4908 #[prost(enumeration="JobRestartPolicy", tag="3")]
4910 pub restart_policy: i32,
4911 #[prost(string, tag="4")]
4912 pub deployment: ::prost::alloc::string::String,
4913}
4914#[allow(clippy::derive_partial_eq_without_eq)]
4915#[derive(Clone, PartialEq, ::prost::Message)]
4916pub struct DeleteAgentDispatchRequest {
4917 #[prost(string, tag="1")]
4918 pub dispatch_id: ::prost::alloc::string::String,
4919 #[prost(string, tag="2")]
4920 pub room: ::prost::alloc::string::String,
4921}
4922#[allow(clippy::derive_partial_eq_without_eq)]
4923#[derive(Clone, PartialEq, ::prost::Message)]
4924pub struct ListAgentDispatchRequest {
4925 #[prost(string, tag="1")]
4927 pub dispatch_id: ::prost::alloc::string::String,
4928 #[prost(string, tag="2")]
4930 pub room: ::prost::alloc::string::String,
4931}
4932#[allow(clippy::derive_partial_eq_without_eq)]
4933#[derive(Clone, PartialEq, ::prost::Message)]
4934pub struct ListAgentDispatchResponse {
4935 #[prost(message, repeated, tag="1")]
4936 pub agent_dispatches: ::prost::alloc::vec::Vec<AgentDispatch>,
4937}
4938#[allow(clippy::derive_partial_eq_without_eq)]
4939#[derive(Clone, PartialEq, ::prost::Message)]
4940pub struct AgentDispatch {
4941 #[prost(string, tag="1")]
4942 pub id: ::prost::alloc::string::String,
4943 #[prost(string, tag="2")]
4944 pub agent_name: ::prost::alloc::string::String,
4945 #[prost(string, tag="3")]
4946 pub room: ::prost::alloc::string::String,
4947 #[prost(string, tag="4")]
4948 pub metadata: ::prost::alloc::string::String,
4949 #[prost(message, optional, tag="5")]
4950 pub state: ::core::option::Option<AgentDispatchState>,
4951 #[prost(enumeration="JobRestartPolicy", tag="6")]
4953 pub restart_policy: i32,
4954 #[prost(string, tag="7")]
4955 pub deployment: ::prost::alloc::string::String,
4956}
4957#[allow(clippy::derive_partial_eq_without_eq)]
4958#[derive(Clone, PartialEq, ::prost::Message)]
4959pub struct AgentDispatchState {
4960 #[prost(message, repeated, tag="1")]
4963 pub jobs: ::prost::alloc::vec::Vec<Job>,
4964 #[prost(int64, tag="2")]
4965 pub created_at: i64,
4966 #[prost(int64, tag="3")]
4967 pub deleted_at: i64,
4968}
4969#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4970#[repr(i32)]
4971pub enum JobRestartPolicy {
4972 JrpOnFailure = 0,
4974 JrpNever = 1,
4976}
4977impl JobRestartPolicy {
4978 pub fn as_str_name(&self) -> &'static str {
4983 match self {
4984 JobRestartPolicy::JrpOnFailure => "JRP_ON_FAILURE",
4985 JobRestartPolicy::JrpNever => "JRP_NEVER",
4986 }
4987 }
4988 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4990 match value {
4991 "JRP_ON_FAILURE" => Some(Self::JrpOnFailure),
4992 "JRP_NEVER" => Some(Self::JrpNever),
4993 _ => None,
4994 }
4995 }
4996}
4997#[allow(clippy::derive_partial_eq_without_eq)]
4998#[derive(Clone, PartialEq, ::prost::Message)]
4999pub struct CreateRoomRequest {
5000 #[prost(string, tag="1")]
5002 pub name: ::prost::alloc::string::String,
5003 #[prost(string, tag="12")]
5005 pub room_preset: ::prost::alloc::string::String,
5006 #[prost(uint32, tag="2")]
5008 pub empty_timeout: u32,
5009 #[prost(uint32, tag="10")]
5011 pub departure_timeout: u32,
5012 #[prost(uint32, tag="3")]
5014 pub max_participants: u32,
5015 #[prost(string, tag="4")]
5017 pub node_id: ::prost::alloc::string::String,
5018 #[prost(string, tag="5")]
5020 pub metadata: ::prost::alloc::string::String,
5021 #[prost(map="string, string", tag="15")]
5023 pub tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5024 #[prost(message, optional, tag="6")]
5026 pub egress: ::core::option::Option<RoomEgress>,
5027 #[prost(uint32, tag="7")]
5029 pub min_playout_delay: u32,
5030 #[prost(uint32, tag="8")]
5031 pub max_playout_delay: u32,
5032 #[prost(bool, tag="9")]
5035 pub sync_streams: bool,
5036 #[prost(bool, tag="13")]
5038 pub replay_enabled: bool,
5039 #[prost(message, repeated, tag="14")]
5041 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5042}
5043#[allow(clippy::derive_partial_eq_without_eq)]
5044#[derive(Clone, PartialEq, ::prost::Message)]
5045pub struct RoomEgress {
5046 #[prost(message, optional, tag="1")]
5047 pub room: ::core::option::Option<RoomCompositeEgressRequest>,
5048 #[prost(message, optional, tag="3")]
5049 pub participant: ::core::option::Option<AutoParticipantEgress>,
5050 #[prost(message, optional, tag="2")]
5051 pub tracks: ::core::option::Option<AutoTrackEgress>,
5052}
5053#[allow(clippy::derive_partial_eq_without_eq)]
5054#[derive(Clone, PartialEq, ::prost::Message)]
5055pub struct RoomAgent {
5056 #[prost(message, repeated, tag="1")]
5057 pub dispatches: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5058}
5059#[allow(clippy::derive_partial_eq_without_eq)]
5060#[derive(Clone, PartialEq, ::prost::Message)]
5061pub struct ListRoomsRequest {
5062 #[prost(string, repeated, tag="1")]
5064 pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5065}
5066#[allow(clippy::derive_partial_eq_without_eq)]
5067#[derive(Clone, PartialEq, ::prost::Message)]
5068pub struct ListRoomsResponse {
5069 #[prost(message, repeated, tag="1")]
5070 pub rooms: ::prost::alloc::vec::Vec<Room>,
5071}
5072#[allow(clippy::derive_partial_eq_without_eq)]
5073#[derive(Clone, PartialEq, ::prost::Message)]
5074pub struct DeleteRoomRequest {
5075 #[prost(string, tag="1")]
5077 pub room: ::prost::alloc::string::String,
5078}
5079#[allow(clippy::derive_partial_eq_without_eq)]
5080#[derive(Clone, PartialEq, ::prost::Message)]
5081pub struct DeleteRoomResponse {
5082}
5083#[allow(clippy::derive_partial_eq_without_eq)]
5084#[derive(Clone, PartialEq, ::prost::Message)]
5085pub struct ListParticipantsRequest {
5086 #[prost(string, tag="1")]
5088 pub room: ::prost::alloc::string::String,
5089}
5090#[allow(clippy::derive_partial_eq_without_eq)]
5091#[derive(Clone, PartialEq, ::prost::Message)]
5092pub struct ListParticipantsResponse {
5093 #[prost(message, repeated, tag="1")]
5094 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
5095}
5096#[allow(clippy::derive_partial_eq_without_eq)]
5097#[derive(Clone, PartialEq, ::prost::Message)]
5098pub struct RoomParticipantIdentity {
5099 #[prost(string, tag="1")]
5101 pub room: ::prost::alloc::string::String,
5102 #[prost(string, tag="2")]
5104 pub identity: ::prost::alloc::string::String,
5105}
5106#[allow(clippy::derive_partial_eq_without_eq)]
5107#[derive(Clone, PartialEq, ::prost::Message)]
5108pub struct RemoveParticipantResponse {
5109}
5110#[allow(clippy::derive_partial_eq_without_eq)]
5111#[derive(Clone, PartialEq, ::prost::Message)]
5112pub struct MuteRoomTrackRequest {
5113 #[prost(string, tag="1")]
5115 pub room: ::prost::alloc::string::String,
5116 #[prost(string, tag="2")]
5117 pub identity: ::prost::alloc::string::String,
5118 #[prost(string, tag="3")]
5120 pub track_sid: ::prost::alloc::string::String,
5121 #[prost(bool, tag="4")]
5123 pub muted: bool,
5124}
5125#[allow(clippy::derive_partial_eq_without_eq)]
5126#[derive(Clone, PartialEq, ::prost::Message)]
5127pub struct MuteRoomTrackResponse {
5128 #[prost(message, optional, tag="1")]
5129 pub track: ::core::option::Option<TrackInfo>,
5130}
5131#[allow(clippy::derive_partial_eq_without_eq)]
5132#[derive(Clone, PartialEq, ::prost::Message)]
5133pub struct UpdateParticipantRequest {
5134 #[prost(string, tag="1")]
5135 pub room: ::prost::alloc::string::String,
5136 #[prost(string, tag="2")]
5137 pub identity: ::prost::alloc::string::String,
5138 #[prost(string, tag="3")]
5140 pub metadata: ::prost::alloc::string::String,
5141 #[prost(message, optional, tag="4")]
5143 pub permission: ::core::option::Option<ParticipantPermission>,
5144 #[prost(string, tag="5")]
5146 pub name: ::prost::alloc::string::String,
5147 #[prost(map="string, string", tag="6")]
5150 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5151}
5152#[allow(clippy::derive_partial_eq_without_eq)]
5153#[derive(Clone, PartialEq, ::prost::Message)]
5154pub struct UpdateSubscriptionsRequest {
5155 #[prost(string, tag="1")]
5156 pub room: ::prost::alloc::string::String,
5157 #[prost(string, tag="2")]
5158 pub identity: ::prost::alloc::string::String,
5159 #[prost(string, repeated, tag="3")]
5161 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5162 #[prost(bool, tag="4")]
5164 pub subscribe: bool,
5165 #[prost(message, repeated, tag="5")]
5167 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
5168}
5169#[allow(clippy::derive_partial_eq_without_eq)]
5171#[derive(Clone, PartialEq, ::prost::Message)]
5172pub struct UpdateSubscriptionsResponse {
5173}
5174#[allow(clippy::derive_partial_eq_without_eq)]
5175#[derive(Clone, PartialEq, ::prost::Message)]
5176pub struct SendDataRequest {
5177 #[prost(string, tag="1")]
5178 pub room: ::prost::alloc::string::String,
5179 #[prost(bytes="vec", tag="2")]
5180 pub data: ::prost::alloc::vec::Vec<u8>,
5181 #[prost(enumeration="data_packet::Kind", tag="3")]
5182 pub kind: i32,
5183 #[deprecated]
5185 #[prost(string, repeated, tag="4")]
5186 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5187 #[prost(string, repeated, tag="6")]
5189 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5190 #[prost(string, optional, tag="5")]
5191 pub topic: ::core::option::Option<::prost::alloc::string::String>,
5192 #[prost(bytes="vec", tag="7")]
5194 pub nonce: ::prost::alloc::vec::Vec<u8>,
5195}
5196#[allow(clippy::derive_partial_eq_without_eq)]
5198#[derive(Clone, PartialEq, ::prost::Message)]
5199pub struct SendDataResponse {
5200}
5201#[allow(clippy::derive_partial_eq_without_eq)]
5202#[derive(Clone, PartialEq, ::prost::Message)]
5203pub struct UpdateRoomMetadataRequest {
5204 #[prost(string, tag="1")]
5205 pub room: ::prost::alloc::string::String,
5206 #[prost(string, tag="2")]
5208 pub metadata: ::prost::alloc::string::String,
5209}
5210#[allow(clippy::derive_partial_eq_without_eq)]
5211#[derive(Clone, PartialEq, ::prost::Message)]
5212pub struct RoomConfiguration {
5213 #[prost(string, tag="1")]
5215 pub name: ::prost::alloc::string::String,
5216 #[prost(uint32, tag="2")]
5218 pub empty_timeout: u32,
5219 #[prost(uint32, tag="3")]
5221 pub departure_timeout: u32,
5222 #[prost(uint32, tag="4")]
5224 pub max_participants: u32,
5225 #[prost(string, tag="11")]
5227 pub metadata: ::prost::alloc::string::String,
5228 #[prost(message, optional, tag="5")]
5230 pub egress: ::core::option::Option<RoomEgress>,
5231 #[prost(uint32, tag="7")]
5233 pub min_playout_delay: u32,
5234 #[prost(uint32, tag="8")]
5235 pub max_playout_delay: u32,
5236 #[prost(bool, tag="9")]
5239 pub sync_streams: bool,
5240 #[prost(message, repeated, tag="10")]
5242 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5243 #[prost(map="string, string", tag="12")]
5245 pub tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5246}
5247#[allow(clippy::derive_partial_eq_without_eq)]
5248#[derive(Clone, PartialEq, ::prost::Message)]
5249pub struct ForwardParticipantRequest {
5250 #[prost(string, tag="1")]
5252 pub room: ::prost::alloc::string::String,
5253 #[prost(string, tag="2")]
5255 pub identity: ::prost::alloc::string::String,
5256 #[prost(string, tag="3")]
5258 pub destination_room: ::prost::alloc::string::String,
5259}
5260#[allow(clippy::derive_partial_eq_without_eq)]
5261#[derive(Clone, PartialEq, ::prost::Message)]
5262pub struct ForwardParticipantResponse {
5263}
5264#[allow(clippy::derive_partial_eq_without_eq)]
5265#[derive(Clone, PartialEq, ::prost::Message)]
5266pub struct MoveParticipantRequest {
5267 #[prost(string, tag="1")]
5269 pub room: ::prost::alloc::string::String,
5270 #[prost(string, tag="2")]
5272 pub identity: ::prost::alloc::string::String,
5273 #[prost(string, tag="3")]
5275 pub destination_room: ::prost::alloc::string::String,
5276}
5277#[allow(clippy::derive_partial_eq_without_eq)]
5278#[derive(Clone, PartialEq, ::prost::Message)]
5279pub struct MoveParticipantResponse {
5280}
5281#[allow(clippy::derive_partial_eq_without_eq)]
5282#[derive(Clone, PartialEq, ::prost::Message)]
5283pub struct PerformRpcRequest {
5284 #[prost(string, tag="1")]
5285 pub room: ::prost::alloc::string::String,
5286 #[prost(string, tag="2")]
5287 pub destination_identity: ::prost::alloc::string::String,
5288 #[prost(string, tag="3")]
5289 pub method: ::prost::alloc::string::String,
5290 #[prost(string, tag="4")]
5291 pub payload: ::prost::alloc::string::String,
5292 #[prost(uint32, tag="5")]
5293 pub response_timeout_ms: u32,
5294}
5295#[allow(clippy::derive_partial_eq_without_eq)]
5296#[derive(Clone, PartialEq, ::prost::Message)]
5297pub struct PerformRpcResponse {
5298 #[prost(string, tag="1")]
5299 pub payload: ::prost::alloc::string::String,
5300}
5301#[allow(clippy::derive_partial_eq_without_eq)]
5302#[derive(Clone, PartialEq, ::prost::Message)]
5303pub struct CreateIngressRequest {
5304 #[prost(enumeration="IngressInput", tag="1")]
5305 pub input_type: i32,
5306 #[prost(string, tag="9")]
5308 pub url: ::prost::alloc::string::String,
5309 #[prost(string, tag="2")]
5311 pub name: ::prost::alloc::string::String,
5312 #[prost(string, tag="3")]
5314 pub room_name: ::prost::alloc::string::String,
5315 #[prost(string, tag="4")]
5317 pub participant_identity: ::prost::alloc::string::String,
5318 #[prost(string, tag="5")]
5320 pub participant_name: ::prost::alloc::string::String,
5321 #[prost(string, tag="10")]
5323 pub participant_metadata: ::prost::alloc::string::String,
5324 #[deprecated]
5326 #[prost(bool, tag="8")]
5327 pub bypass_transcoding: bool,
5328 #[prost(bool, optional, tag="11")]
5330 pub enable_transcoding: ::core::option::Option<bool>,
5331 #[prost(message, optional, tag="6")]
5332 pub audio: ::core::option::Option<IngressAudioOptions>,
5333 #[prost(message, optional, tag="7")]
5334 pub video: ::core::option::Option<IngressVideoOptions>,
5335 #[prost(bool, optional, tag="12")]
5337 pub enabled: ::core::option::Option<bool>,
5338}
5339#[allow(clippy::derive_partial_eq_without_eq)]
5340#[derive(Clone, PartialEq, ::prost::Message)]
5341pub struct IngressAudioOptions {
5342 #[prost(string, tag="1")]
5343 pub name: ::prost::alloc::string::String,
5344 #[prost(enumeration="TrackSource", tag="2")]
5345 pub source: i32,
5346 #[prost(oneof="ingress_audio_options::EncodingOptions", tags="3, 4")]
5347 pub encoding_options: ::core::option::Option<ingress_audio_options::EncodingOptions>,
5348}
5349pub mod ingress_audio_options {
5351 #[allow(clippy::derive_partial_eq_without_eq)]
5352#[derive(Clone, PartialEq, ::prost::Oneof)]
5353 pub enum EncodingOptions {
5354 #[prost(enumeration="super::IngressAudioEncodingPreset", tag="3")]
5355 Preset(i32),
5356 #[prost(message, tag="4")]
5357 Options(super::IngressAudioEncodingOptions),
5358 }
5359}
5360#[allow(clippy::derive_partial_eq_without_eq)]
5361#[derive(Clone, PartialEq, ::prost::Message)]
5362pub struct IngressVideoOptions {
5363 #[prost(string, tag="1")]
5364 pub name: ::prost::alloc::string::String,
5365 #[prost(enumeration="TrackSource", tag="2")]
5366 pub source: i32,
5367 #[prost(oneof="ingress_video_options::EncodingOptions", tags="3, 4")]
5368 pub encoding_options: ::core::option::Option<ingress_video_options::EncodingOptions>,
5369}
5370pub mod ingress_video_options {
5372 #[allow(clippy::derive_partial_eq_without_eq)]
5373#[derive(Clone, PartialEq, ::prost::Oneof)]
5374 pub enum EncodingOptions {
5375 #[prost(enumeration="super::IngressVideoEncodingPreset", tag="3")]
5376 Preset(i32),
5377 #[prost(message, tag="4")]
5378 Options(super::IngressVideoEncodingOptions),
5379 }
5380}
5381#[allow(clippy::derive_partial_eq_without_eq)]
5382#[derive(Clone, PartialEq, ::prost::Message)]
5383pub struct IngressAudioEncodingOptions {
5384 #[prost(enumeration="AudioCodec", tag="1")]
5386 pub audio_codec: i32,
5387 #[prost(uint32, tag="2")]
5388 pub bitrate: u32,
5389 #[prost(bool, tag="3")]
5390 pub disable_dtx: bool,
5391 #[prost(uint32, tag="4")]
5392 pub channels: u32,
5393}
5394#[allow(clippy::derive_partial_eq_without_eq)]
5395#[derive(Clone, PartialEq, ::prost::Message)]
5396pub struct IngressVideoEncodingOptions {
5397 #[prost(enumeration="VideoCodec", tag="1")]
5399 pub video_codec: i32,
5400 #[prost(double, tag="2")]
5401 pub frame_rate: f64,
5402 #[prost(message, repeated, tag="3")]
5404 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
5405}
5406#[allow(clippy::derive_partial_eq_without_eq)]
5407#[derive(Clone, PartialEq, ::prost::Message)]
5408pub struct IngressInfo {
5409 #[prost(string, tag="1")]
5410 pub ingress_id: ::prost::alloc::string::String,
5411 #[prost(string, tag="2")]
5412 pub name: ::prost::alloc::string::String,
5413 #[prost(string, tag="3")]
5414 pub stream_key: ::prost::alloc::string::String,
5415 #[prost(string, tag="4")]
5417 pub url: ::prost::alloc::string::String,
5418 #[prost(enumeration="IngressInput", tag="5")]
5422 pub input_type: i32,
5423 #[deprecated]
5424 #[prost(bool, tag="13")]
5425 pub bypass_transcoding: bool,
5426 #[prost(bool, optional, tag="15")]
5427 pub enable_transcoding: ::core::option::Option<bool>,
5428 #[prost(message, optional, tag="6")]
5429 pub audio: ::core::option::Option<IngressAudioOptions>,
5430 #[prost(message, optional, tag="7")]
5431 pub video: ::core::option::Option<IngressVideoOptions>,
5432 #[prost(string, tag="8")]
5433 pub room_name: ::prost::alloc::string::String,
5434 #[prost(string, tag="9")]
5435 pub participant_identity: ::prost::alloc::string::String,
5436 #[prost(string, tag="10")]
5437 pub participant_name: ::prost::alloc::string::String,
5438 #[prost(string, tag="14")]
5439 pub participant_metadata: ::prost::alloc::string::String,
5440 #[prost(bool, tag="11")]
5441 pub reusable: bool,
5442 #[prost(message, optional, tag="12")]
5444 pub state: ::core::option::Option<IngressState>,
5445 #[prost(bool, optional, tag="16")]
5447 pub enabled: ::core::option::Option<bool>,
5448}
5449#[allow(clippy::derive_partial_eq_without_eq)]
5450#[derive(Clone, PartialEq, ::prost::Message)]
5451pub struct IngressState {
5452 #[prost(enumeration="ingress_state::Status", tag="1")]
5453 pub status: i32,
5454 #[prost(string, tag="2")]
5456 pub error: ::prost::alloc::string::String,
5457 #[prost(message, optional, tag="3")]
5458 pub video: ::core::option::Option<InputVideoState>,
5459 #[prost(message, optional, tag="4")]
5460 pub audio: ::core::option::Option<InputAudioState>,
5461 #[prost(string, tag="5")]
5463 pub room_id: ::prost::alloc::string::String,
5464 #[prost(int64, tag="7")]
5465 pub started_at: i64,
5466 #[prost(int64, tag="8")]
5467 pub ended_at: i64,
5468 #[prost(int64, tag="10")]
5469 pub updated_at: i64,
5470 #[prost(string, tag="9")]
5471 pub resource_id: ::prost::alloc::string::String,
5472 #[prost(message, repeated, tag="6")]
5473 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
5474}
5475pub mod ingress_state {
5477 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5478 #[repr(i32)]
5479 pub enum Status {
5480 EndpointInactive = 0,
5481 EndpointBuffering = 1,
5482 EndpointPublishing = 2,
5483 EndpointError = 3,
5484 EndpointComplete = 4,
5485 }
5486 impl Status {
5487 pub fn as_str_name(&self) -> &'static str {
5492 match self {
5493 Status::EndpointInactive => "ENDPOINT_INACTIVE",
5494 Status::EndpointBuffering => "ENDPOINT_BUFFERING",
5495 Status::EndpointPublishing => "ENDPOINT_PUBLISHING",
5496 Status::EndpointError => "ENDPOINT_ERROR",
5497 Status::EndpointComplete => "ENDPOINT_COMPLETE",
5498 }
5499 }
5500 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5502 match value {
5503 "ENDPOINT_INACTIVE" => Some(Self::EndpointInactive),
5504 "ENDPOINT_BUFFERING" => Some(Self::EndpointBuffering),
5505 "ENDPOINT_PUBLISHING" => Some(Self::EndpointPublishing),
5506 "ENDPOINT_ERROR" => Some(Self::EndpointError),
5507 "ENDPOINT_COMPLETE" => Some(Self::EndpointComplete),
5508 _ => None,
5509 }
5510 }
5511 }
5512}
5513#[allow(clippy::derive_partial_eq_without_eq)]
5514#[derive(Clone, PartialEq, ::prost::Message)]
5515pub struct InputVideoState {
5516 #[prost(string, tag="1")]
5517 pub mime_type: ::prost::alloc::string::String,
5518 #[prost(uint32, tag="2")]
5519 pub average_bitrate: u32,
5520 #[prost(uint32, tag="3")]
5521 pub width: u32,
5522 #[prost(uint32, tag="4")]
5523 pub height: u32,
5524 #[prost(double, tag="5")]
5525 pub framerate: f64,
5526}
5527#[allow(clippy::derive_partial_eq_without_eq)]
5528#[derive(Clone, PartialEq, ::prost::Message)]
5529pub struct InputAudioState {
5530 #[prost(string, tag="1")]
5531 pub mime_type: ::prost::alloc::string::String,
5532 #[prost(uint32, tag="2")]
5533 pub average_bitrate: u32,
5534 #[prost(uint32, tag="3")]
5535 pub channels: u32,
5536 #[prost(uint32, tag="4")]
5537 pub sample_rate: u32,
5538}
5539#[allow(clippy::derive_partial_eq_without_eq)]
5540#[derive(Clone, PartialEq, ::prost::Message)]
5541pub struct UpdateIngressRequest {
5542 #[prost(string, tag="1")]
5543 pub ingress_id: ::prost::alloc::string::String,
5544 #[prost(string, tag="2")]
5545 pub name: ::prost::alloc::string::String,
5546 #[prost(string, tag="3")]
5547 pub room_name: ::prost::alloc::string::String,
5548 #[prost(string, tag="4")]
5549 pub participant_identity: ::prost::alloc::string::String,
5550 #[prost(string, tag="5")]
5551 pub participant_name: ::prost::alloc::string::String,
5552 #[prost(string, tag="9")]
5553 pub participant_metadata: ::prost::alloc::string::String,
5554 #[deprecated]
5555 #[prost(bool, optional, tag="8")]
5556 pub bypass_transcoding: ::core::option::Option<bool>,
5557 #[prost(bool, optional, tag="10")]
5558 pub enable_transcoding: ::core::option::Option<bool>,
5559 #[prost(message, optional, tag="6")]
5560 pub audio: ::core::option::Option<IngressAudioOptions>,
5561 #[prost(message, optional, tag="7")]
5562 pub video: ::core::option::Option<IngressVideoOptions>,
5563 #[prost(bool, optional, tag="11")]
5565 pub enabled: ::core::option::Option<bool>,
5566}
5567#[allow(clippy::derive_partial_eq_without_eq)]
5568#[derive(Clone, PartialEq, ::prost::Message)]
5569pub struct ListIngressRequest {
5570 #[prost(message, optional, tag="3")]
5571 pub page_token: ::core::option::Option<TokenPagination>,
5572 #[prost(string, tag="1")]
5576 pub room_name: ::prost::alloc::string::String,
5577 #[prost(string, tag="2")]
5579 pub ingress_id: ::prost::alloc::string::String,
5580}
5581#[allow(clippy::derive_partial_eq_without_eq)]
5582#[derive(Clone, PartialEq, ::prost::Message)]
5583pub struct ListIngressResponse {
5584 #[prost(message, optional, tag="2")]
5585 pub next_page_token: ::core::option::Option<TokenPagination>,
5586 #[prost(message, repeated, tag="1")]
5588 pub items: ::prost::alloc::vec::Vec<IngressInfo>,
5589}
5590#[allow(clippy::derive_partial_eq_without_eq)]
5591#[derive(Clone, PartialEq, ::prost::Message)]
5592pub struct DeleteIngressRequest {
5593 #[prost(string, tag="1")]
5594 pub ingress_id: ::prost::alloc::string::String,
5595}
5596#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5597#[repr(i32)]
5598pub enum IngressInput {
5599 RtmpInput = 0,
5600 WhipInput = 1,
5601 UrlInput = 2,
5603}
5604impl IngressInput {
5605 pub fn as_str_name(&self) -> &'static str {
5610 match self {
5611 IngressInput::RtmpInput => "RTMP_INPUT",
5612 IngressInput::WhipInput => "WHIP_INPUT",
5613 IngressInput::UrlInput => "URL_INPUT",
5614 }
5615 }
5616 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5618 match value {
5619 "RTMP_INPUT" => Some(Self::RtmpInput),
5620 "WHIP_INPUT" => Some(Self::WhipInput),
5621 "URL_INPUT" => Some(Self::UrlInput),
5622 _ => None,
5623 }
5624 }
5625}
5626#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5627#[repr(i32)]
5628pub enum IngressAudioEncodingPreset {
5629 OpusStereo96kbps = 0,
5631 OpusMono64kbs = 1,
5633}
5634impl IngressAudioEncodingPreset {
5635 pub fn as_str_name(&self) -> &'static str {
5640 match self {
5641 IngressAudioEncodingPreset::OpusStereo96kbps => "OPUS_STEREO_96KBPS",
5642 IngressAudioEncodingPreset::OpusMono64kbs => "OPUS_MONO_64KBS",
5643 }
5644 }
5645 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5647 match value {
5648 "OPUS_STEREO_96KBPS" => Some(Self::OpusStereo96kbps),
5649 "OPUS_MONO_64KBS" => Some(Self::OpusMono64kbs),
5650 _ => None,
5651 }
5652 }
5653}
5654#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5655#[repr(i32)]
5656pub enum IngressVideoEncodingPreset {
5657 H264720p30fps3Layers = 0,
5659 H2641080p30fps3Layers = 1,
5661 H264540p25fps2Layers = 2,
5663 H264720p30fps1Layer = 3,
5665 H2641080p30fps1Layer = 4,
5667 H264720p30fps3LayersHighMotion = 5,
5669 H2641080p30fps3LayersHighMotion = 6,
5671 H264540p25fps2LayersHighMotion = 7,
5673 H264720p30fps1LayerHighMotion = 8,
5675 H2641080p30fps1LayerHighMotion = 9,
5677}
5678impl IngressVideoEncodingPreset {
5679 pub fn as_str_name(&self) -> &'static str {
5684 match self {
5685 IngressVideoEncodingPreset::H264720p30fps3Layers => "H264_720P_30FPS_3_LAYERS",
5686 IngressVideoEncodingPreset::H2641080p30fps3Layers => "H264_1080P_30FPS_3_LAYERS",
5687 IngressVideoEncodingPreset::H264540p25fps2Layers => "H264_540P_25FPS_2_LAYERS",
5688 IngressVideoEncodingPreset::H264720p30fps1Layer => "H264_720P_30FPS_1_LAYER",
5689 IngressVideoEncodingPreset::H2641080p30fps1Layer => "H264_1080P_30FPS_1_LAYER",
5690 IngressVideoEncodingPreset::H264720p30fps3LayersHighMotion => "H264_720P_30FPS_3_LAYERS_HIGH_MOTION",
5691 IngressVideoEncodingPreset::H2641080p30fps3LayersHighMotion => "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION",
5692 IngressVideoEncodingPreset::H264540p25fps2LayersHighMotion => "H264_540P_25FPS_2_LAYERS_HIGH_MOTION",
5693 IngressVideoEncodingPreset::H264720p30fps1LayerHighMotion => "H264_720P_30FPS_1_LAYER_HIGH_MOTION",
5694 IngressVideoEncodingPreset::H2641080p30fps1LayerHighMotion => "H264_1080P_30FPS_1_LAYER_HIGH_MOTION",
5695 }
5696 }
5697 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5699 match value {
5700 "H264_720P_30FPS_3_LAYERS" => Some(Self::H264720p30fps3Layers),
5701 "H264_1080P_30FPS_3_LAYERS" => Some(Self::H2641080p30fps3Layers),
5702 "H264_540P_25FPS_2_LAYERS" => Some(Self::H264540p25fps2Layers),
5703 "H264_720P_30FPS_1_LAYER" => Some(Self::H264720p30fps1Layer),
5704 "H264_1080P_30FPS_1_LAYER" => Some(Self::H2641080p30fps1Layer),
5705 "H264_720P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H264720p30fps3LayersHighMotion),
5706 "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H2641080p30fps3LayersHighMotion),
5707 "H264_540P_25FPS_2_LAYERS_HIGH_MOTION" => Some(Self::H264540p25fps2LayersHighMotion),
5708 "H264_720P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H264720p30fps1LayerHighMotion),
5709 "H264_1080P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H2641080p30fps1LayerHighMotion),
5710 _ => None,
5711 }
5712 }
5713}
5714#[allow(clippy::derive_partial_eq_without_eq)]
5715#[derive(Clone, PartialEq, ::prost::Message)]
5716pub struct WebhookEvent {
5717 #[prost(string, tag="1")]
5721 pub event: ::prost::alloc::string::String,
5722 #[prost(message, optional, tag="2")]
5723 pub room: ::core::option::Option<Room>,
5724 #[prost(message, optional, tag="3")]
5726 pub participant: ::core::option::Option<ParticipantInfo>,
5727 #[prost(message, optional, tag="9")]
5729 pub egress_info: ::core::option::Option<EgressInfo>,
5730 #[prost(message, optional, tag="10")]
5732 pub ingress_info: ::core::option::Option<IngressInfo>,
5733 #[prost(message, optional, tag="8")]
5735 pub track: ::core::option::Option<TrackInfo>,
5736 #[prost(string, tag="6")]
5738 pub id: ::prost::alloc::string::String,
5739 #[prost(int64, tag="7")]
5741 pub created_at: i64,
5742 #[deprecated]
5743 #[prost(int32, tag="11")]
5744 pub num_dropped: i32,
5745}
5746#[allow(clippy::derive_partial_eq_without_eq)]
5748#[derive(Clone, PartialEq, ::prost::Message)]
5749pub struct SipStatus {
5750 #[prost(enumeration="SipStatusCode", tag="1")]
5751 pub code: i32,
5752 #[prost(string, tag="2")]
5753 pub status: ::prost::alloc::string::String,
5754}
5755#[allow(clippy::derive_partial_eq_without_eq)]
5756#[derive(Clone, PartialEq, ::prost::Message)]
5757pub struct CreateSipTrunkRequest {
5758 #[prost(string, repeated, tag="1")]
5761 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5762 #[prost(string, tag="2")]
5764 pub outbound_address: ::prost::alloc::string::String,
5765 #[prost(string, tag="3")]
5767 pub outbound_number: ::prost::alloc::string::String,
5768 #[deprecated]
5769 #[prost(string, repeated, tag="4")]
5770 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5771 #[prost(string, repeated, tag="9")]
5775 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5776 #[prost(string, tag="5")]
5779 pub inbound_username: ::prost::alloc::string::String,
5780 #[prost(string, tag="6")]
5781 pub inbound_password: ::prost::alloc::string::String,
5782 #[prost(string, tag="7")]
5783 pub outbound_username: ::prost::alloc::string::String,
5784 #[prost(string, tag="8")]
5785 pub outbound_password: ::prost::alloc::string::String,
5786 #[prost(string, tag="10")]
5788 pub name: ::prost::alloc::string::String,
5789 #[prost(string, tag="11")]
5791 pub metadata: ::prost::alloc::string::String,
5792}
5793#[allow(clippy::derive_partial_eq_without_eq)]
5794#[derive(Clone, PartialEq, ::prost::Message)]
5795pub struct SipCodec {
5796 #[prost(string, tag="1")]
5797 pub name: ::prost::alloc::string::String,
5798 #[prost(uint32, tag="2")]
5799 pub rate: u32,
5800}
5801#[allow(clippy::derive_partial_eq_without_eq)]
5802#[derive(Clone, PartialEq, ::prost::Message)]
5803pub struct SipMediaConfig {
5804 #[prost(bool, tag="1")]
5806 pub only_listed_codecs: bool,
5807 #[prost(message, repeated, tag="2")]
5809 pub codecs: ::prost::alloc::vec::Vec<SipCodec>,
5810 #[prost(enumeration="SipMediaEncryption", optional, tag="3")]
5811 pub encryption: ::core::option::Option<i32>,
5812}
5813#[allow(clippy::derive_partial_eq_without_eq)]
5814#[derive(Clone, PartialEq, ::prost::Message)]
5815pub struct ProviderInfo {
5816 #[prost(string, tag="1")]
5817 pub id: ::prost::alloc::string::String,
5818 #[prost(string, tag="2")]
5819 pub name: ::prost::alloc::string::String,
5820 #[prost(enumeration="ProviderType", tag="3")]
5821 pub r#type: i32,
5822 #[prost(bool, tag="4")]
5823 pub prevent_transfer: bool,
5824}
5825#[allow(clippy::derive_partial_eq_without_eq)]
5826#[derive(Clone, PartialEq, ::prost::Message)]
5827pub struct SipTrunkInfo {
5828 #[prost(string, tag="1")]
5829 pub sip_trunk_id: ::prost::alloc::string::String,
5830 #[prost(enumeration="sip_trunk_info::TrunkKind", tag="14")]
5831 pub kind: i32,
5832 #[prost(string, repeated, tag="2")]
5835 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5836 #[prost(string, tag="3")]
5838 pub outbound_address: ::prost::alloc::string::String,
5839 #[prost(string, tag="4")]
5841 pub outbound_number: ::prost::alloc::string::String,
5842 #[prost(enumeration="SipTransport", tag="13")]
5844 pub transport: i32,
5845 #[deprecated]
5846 #[prost(string, repeated, tag="5")]
5847 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5848 #[prost(string, repeated, tag="10")]
5852 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5853 #[prost(string, tag="6")]
5856 pub inbound_username: ::prost::alloc::string::String,
5857 #[prost(string, tag="7")]
5858 pub inbound_password: ::prost::alloc::string::String,
5859 #[prost(string, tag="8")]
5860 pub outbound_username: ::prost::alloc::string::String,
5861 #[prost(string, tag="9")]
5862 pub outbound_password: ::prost::alloc::string::String,
5863 #[prost(string, tag="11")]
5865 pub name: ::prost::alloc::string::String,
5866 #[prost(string, tag="12")]
5868 pub metadata: ::prost::alloc::string::String,
5869}
5870pub mod sip_trunk_info {
5872 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5873 #[repr(i32)]
5874 pub enum TrunkKind {
5875 TrunkLegacy = 0,
5876 TrunkInbound = 1,
5877 TrunkOutbound = 2,
5878 }
5879 impl TrunkKind {
5880 pub fn as_str_name(&self) -> &'static str {
5885 match self {
5886 TrunkKind::TrunkLegacy => "TRUNK_LEGACY",
5887 TrunkKind::TrunkInbound => "TRUNK_INBOUND",
5888 TrunkKind::TrunkOutbound => "TRUNK_OUTBOUND",
5889 }
5890 }
5891 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5893 match value {
5894 "TRUNK_LEGACY" => Some(Self::TrunkLegacy),
5895 "TRUNK_INBOUND" => Some(Self::TrunkInbound),
5896 "TRUNK_OUTBOUND" => Some(Self::TrunkOutbound),
5897 _ => None,
5898 }
5899 }
5900 }
5901}
5902#[allow(clippy::derive_partial_eq_without_eq)]
5903#[derive(Clone, PartialEq, ::prost::Message)]
5904pub struct CreateSipInboundTrunkRequest {
5905 #[prost(message, optional, tag="1")]
5907 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
5908}
5909#[allow(clippy::derive_partial_eq_without_eq)]
5910#[derive(Clone, PartialEq, ::prost::Message)]
5911pub struct UpdateSipInboundTrunkRequest {
5912 #[prost(string, tag="1")]
5913 pub sip_trunk_id: ::prost::alloc::string::String,
5914 #[prost(oneof="update_sip_inbound_trunk_request::Action", tags="2, 3")]
5915 pub action: ::core::option::Option<update_sip_inbound_trunk_request::Action>,
5916}
5917pub mod update_sip_inbound_trunk_request {
5919 #[allow(clippy::derive_partial_eq_without_eq)]
5920#[derive(Clone, PartialEq, ::prost::Oneof)]
5921 pub enum Action {
5922 #[prost(message, tag="2")]
5923 Replace(super::SipInboundTrunkInfo),
5924 #[prost(message, tag="3")]
5925 Update(super::SipInboundTrunkUpdate),
5926 }
5927}
5928#[allow(clippy::derive_partial_eq_without_eq)]
5929#[derive(Clone, PartialEq, ::prost::Message)]
5930pub struct SipInboundTrunkInfo {
5931 #[prost(string, tag="1")]
5932 pub sip_trunk_id: ::prost::alloc::string::String,
5933 #[prost(string, tag="2")]
5935 pub name: ::prost::alloc::string::String,
5936 #[prost(string, tag="3")]
5938 pub metadata: ::prost::alloc::string::String,
5939 #[prost(string, repeated, tag="4")]
5942 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5943 #[prost(string, repeated, tag="5")]
5946 pub allowed_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5947 #[prost(string, repeated, tag="6")]
5950 pub allowed_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5951 #[prost(string, tag="7")]
5954 pub auth_username: ::prost::alloc::string::String,
5955 #[prost(string, tag="8")]
5956 pub auth_password: ::prost::alloc::string::String,
5957 #[prost(map="string, string", tag="9")]
5959 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5960 #[prost(map="string, string", tag="10")]
5962 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5963 #[prost(map="string, string", tag="14")]
5966 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5967 #[prost(enumeration="SipHeaderOptions", tag="15")]
5974 pub include_headers: i32,
5975 #[prost(message, optional, tag="11")]
5977 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
5978 #[prost(message, optional, tag="12")]
5980 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
5981 #[prost(bool, tag="13")]
5982 pub krisp_enabled: bool,
5983 #[prost(enumeration="SipMediaEncryption", tag="16")]
5984 pub media_encryption: i32,
5985 #[prost(message, optional, tag="17")]
5986 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
5987 #[prost(message, optional, tag="18")]
5988 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
5989}
5990#[allow(clippy::derive_partial_eq_without_eq)]
5991#[derive(Clone, PartialEq, ::prost::Message)]
5992pub struct SipInboundTrunkUpdate {
5993 #[prost(message, optional, tag="1")]
5994 pub numbers: ::core::option::Option<ListUpdate>,
5995 #[prost(message, optional, tag="2")]
5996 pub allowed_addresses: ::core::option::Option<ListUpdate>,
5997 #[prost(message, optional, tag="3")]
5998 pub allowed_numbers: ::core::option::Option<ListUpdate>,
5999 #[prost(string, optional, tag="4")]
6000 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
6001 #[prost(string, optional, tag="5")]
6002 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
6003 #[prost(string, optional, tag="6")]
6004 pub name: ::core::option::Option<::prost::alloc::string::String>,
6005 #[prost(string, optional, tag="7")]
6006 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6007 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
6008 pub media_encryption: ::core::option::Option<i32>,
6009}
6010#[allow(clippy::derive_partial_eq_without_eq)]
6011#[derive(Clone, PartialEq, ::prost::Message)]
6012pub struct CreateSipOutboundTrunkRequest {
6013 #[prost(message, optional, tag="1")]
6015 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
6016}
6017#[allow(clippy::derive_partial_eq_without_eq)]
6018#[derive(Clone, PartialEq, ::prost::Message)]
6019pub struct UpdateSipOutboundTrunkRequest {
6020 #[prost(string, tag="1")]
6021 pub sip_trunk_id: ::prost::alloc::string::String,
6022 #[prost(oneof="update_sip_outbound_trunk_request::Action", tags="2, 3")]
6023 pub action: ::core::option::Option<update_sip_outbound_trunk_request::Action>,
6024}
6025pub mod update_sip_outbound_trunk_request {
6027 #[allow(clippy::derive_partial_eq_without_eq)]
6028#[derive(Clone, PartialEq, ::prost::Oneof)]
6029 pub enum Action {
6030 #[prost(message, tag="2")]
6031 Replace(super::SipOutboundTrunkInfo),
6032 #[prost(message, tag="3")]
6033 Update(super::SipOutboundTrunkUpdate),
6034 }
6035}
6036#[allow(clippy::derive_partial_eq_without_eq)]
6037#[derive(Clone, PartialEq, ::prost::Message)]
6038pub struct SipOutboundTrunkInfo {
6039 #[prost(string, tag="1")]
6040 pub sip_trunk_id: ::prost::alloc::string::String,
6041 #[prost(string, tag="2")]
6043 pub name: ::prost::alloc::string::String,
6044 #[prost(string, tag="3")]
6046 pub metadata: ::prost::alloc::string::String,
6047 #[prost(string, tag="4")]
6050 pub address: ::prost::alloc::string::String,
6051 #[prost(string, tag="14")]
6053 pub destination_country: ::prost::alloc::string::String,
6054 #[prost(enumeration="SipTransport", tag="5")]
6056 pub transport: i32,
6057 #[prost(string, repeated, tag="6")]
6059 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6060 #[prost(string, tag="7")]
6063 pub auth_username: ::prost::alloc::string::String,
6064 #[prost(string, tag="8")]
6065 pub auth_password: ::prost::alloc::string::String,
6066 #[prost(map="string, string", tag="9")]
6069 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6070 #[prost(map="string, string", tag="10")]
6073 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6074 #[prost(map="string, string", tag="11")]
6077 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6078 #[prost(enumeration="SipHeaderOptions", tag="12")]
6085 pub include_headers: i32,
6086 #[prost(enumeration="SipMediaEncryption", tag="13")]
6087 pub media_encryption: i32,
6088 #[prost(string, tag="15")]
6092 pub from_host: ::prost::alloc::string::String,
6093 #[prost(message, optional, tag="16")]
6094 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6095 #[prost(message, optional, tag="17")]
6096 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6097}
6098#[allow(clippy::derive_partial_eq_without_eq)]
6099#[derive(Clone, PartialEq, ::prost::Message)]
6100pub struct SipOutboundTrunkUpdate {
6101 #[prost(string, optional, tag="1")]
6102 pub address: ::core::option::Option<::prost::alloc::string::String>,
6103 #[prost(enumeration="SipTransport", optional, tag="2")]
6104 pub transport: ::core::option::Option<i32>,
6105 #[prost(string, optional, tag="9")]
6106 pub destination_country: ::core::option::Option<::prost::alloc::string::String>,
6107 #[prost(message, optional, tag="3")]
6108 pub numbers: ::core::option::Option<ListUpdate>,
6109 #[prost(string, optional, tag="4")]
6110 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
6111 #[prost(string, optional, tag="5")]
6112 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
6113 #[prost(string, optional, tag="6")]
6114 pub name: ::core::option::Option<::prost::alloc::string::String>,
6115 #[prost(string, optional, tag="7")]
6116 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6117 #[prost(enumeration="SipMediaEncryption", optional, tag="8")]
6118 pub media_encryption: ::core::option::Option<i32>,
6119 #[prost(string, optional, tag="10")]
6120 pub from_host: ::core::option::Option<::prost::alloc::string::String>,
6121}
6122#[allow(clippy::derive_partial_eq_without_eq)]
6123#[derive(Clone, PartialEq, ::prost::Message)]
6124pub struct GetSipInboundTrunkRequest {
6125 #[prost(string, tag="1")]
6126 pub sip_trunk_id: ::prost::alloc::string::String,
6127}
6128#[allow(clippy::derive_partial_eq_without_eq)]
6129#[derive(Clone, PartialEq, ::prost::Message)]
6130pub struct GetSipInboundTrunkResponse {
6131 #[prost(message, optional, tag="1")]
6132 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
6133}
6134#[allow(clippy::derive_partial_eq_without_eq)]
6135#[derive(Clone, PartialEq, ::prost::Message)]
6136pub struct GetSipOutboundTrunkRequest {
6137 #[prost(string, tag="1")]
6138 pub sip_trunk_id: ::prost::alloc::string::String,
6139}
6140#[allow(clippy::derive_partial_eq_without_eq)]
6141#[derive(Clone, PartialEq, ::prost::Message)]
6142pub struct GetSipOutboundTrunkResponse {
6143 #[prost(message, optional, tag="1")]
6144 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
6145}
6146#[allow(clippy::derive_partial_eq_without_eq)]
6147#[derive(Clone, PartialEq, ::prost::Message)]
6148pub struct ListSipTrunkRequest {
6149 #[prost(message, optional, tag="1")]
6150 pub page: ::core::option::Option<Pagination>,
6151}
6152#[allow(clippy::derive_partial_eq_without_eq)]
6153#[derive(Clone, PartialEq, ::prost::Message)]
6154pub struct ListSipTrunkResponse {
6155 #[prost(message, repeated, tag="1")]
6156 pub items: ::prost::alloc::vec::Vec<SipTrunkInfo>,
6157}
6158#[allow(clippy::derive_partial_eq_without_eq)]
6160#[derive(Clone, PartialEq, ::prost::Message)]
6161pub struct ListSipInboundTrunkRequest {
6162 #[prost(message, optional, tag="3")]
6163 pub page: ::core::option::Option<Pagination>,
6164 #[prost(string, repeated, tag="1")]
6167 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6168 #[prost(string, repeated, tag="2")]
6170 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6171}
6172#[allow(clippy::derive_partial_eq_without_eq)]
6173#[derive(Clone, PartialEq, ::prost::Message)]
6174pub struct ListSipInboundTrunkResponse {
6175 #[prost(message, repeated, tag="1")]
6176 pub items: ::prost::alloc::vec::Vec<SipInboundTrunkInfo>,
6177}
6178#[allow(clippy::derive_partial_eq_without_eq)]
6180#[derive(Clone, PartialEq, ::prost::Message)]
6181pub struct ListSipOutboundTrunkRequest {
6182 #[prost(message, optional, tag="3")]
6183 pub page: ::core::option::Option<Pagination>,
6184 #[prost(string, repeated, tag="1")]
6187 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6188 #[prost(string, repeated, tag="2")]
6190 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6191}
6192#[allow(clippy::derive_partial_eq_without_eq)]
6193#[derive(Clone, PartialEq, ::prost::Message)]
6194pub struct ListSipOutboundTrunkResponse {
6195 #[prost(message, repeated, tag="1")]
6196 pub items: ::prost::alloc::vec::Vec<SipOutboundTrunkInfo>,
6197}
6198#[allow(clippy::derive_partial_eq_without_eq)]
6199#[derive(Clone, PartialEq, ::prost::Message)]
6200pub struct DeleteSipTrunkRequest {
6201 #[prost(string, tag="1")]
6202 pub sip_trunk_id: ::prost::alloc::string::String,
6203}
6204#[allow(clippy::derive_partial_eq_without_eq)]
6205#[derive(Clone, PartialEq, ::prost::Message)]
6206pub struct SipDispatchRuleDirect {
6207 #[prost(string, tag="1")]
6209 pub room_name: ::prost::alloc::string::String,
6210 #[prost(string, tag="2")]
6212 pub pin: ::prost::alloc::string::String,
6213}
6214#[allow(clippy::derive_partial_eq_without_eq)]
6215#[derive(Clone, PartialEq, ::prost::Message)]
6216pub struct SipDispatchRuleIndividual {
6217 #[prost(string, tag="1")]
6219 pub room_prefix: ::prost::alloc::string::String,
6220 #[prost(string, tag="2")]
6222 pub pin: ::prost::alloc::string::String,
6223 #[prost(bool, tag="3")]
6225 pub no_randomness: bool,
6226}
6227#[allow(clippy::derive_partial_eq_without_eq)]
6228#[derive(Clone, PartialEq, ::prost::Message)]
6229pub struct SipDispatchRuleCallee {
6230 #[prost(string, tag="1")]
6232 pub room_prefix: ::prost::alloc::string::String,
6233 #[prost(string, tag="2")]
6235 pub pin: ::prost::alloc::string::String,
6236 #[prost(bool, tag="3")]
6238 pub randomize: bool,
6239}
6240#[allow(clippy::derive_partial_eq_without_eq)]
6241#[derive(Clone, PartialEq, ::prost::Message)]
6242pub struct SipDispatchRule {
6243 #[prost(oneof="sip_dispatch_rule::Rule", tags="1, 2, 3")]
6244 pub rule: ::core::option::Option<sip_dispatch_rule::Rule>,
6245}
6246pub mod sip_dispatch_rule {
6248 #[allow(clippy::derive_partial_eq_without_eq)]
6249#[derive(Clone, PartialEq, ::prost::Oneof)]
6250 pub enum Rule {
6251 #[prost(message, tag="1")]
6255 DispatchRuleDirect(super::SipDispatchRuleDirect),
6256 #[prost(message, tag="2")]
6258 DispatchRuleIndividual(super::SipDispatchRuleIndividual),
6259 #[prost(message, tag="3")]
6261 DispatchRuleCallee(super::SipDispatchRuleCallee),
6262 }
6263}
6264#[allow(clippy::derive_partial_eq_without_eq)]
6265#[derive(Clone, PartialEq, ::prost::Message)]
6266pub struct CreateSipDispatchRuleRequest {
6267 #[prost(message, optional, tag="10")]
6269 pub dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
6270 #[deprecated]
6271 #[prost(message, optional, tag="1")]
6272 pub rule: ::core::option::Option<SipDispatchRule>,
6273 #[deprecated]
6276 #[prost(string, repeated, tag="2")]
6277 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6278 #[deprecated]
6281 #[prost(bool, tag="3")]
6282 pub hide_phone_number: bool,
6283 #[deprecated]
6285 #[prost(string, repeated, tag="6")]
6286 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6287 #[deprecated]
6289 #[prost(string, tag="4")]
6290 pub name: ::prost::alloc::string::String,
6291 #[deprecated]
6294 #[prost(string, tag="5")]
6295 pub metadata: ::prost::alloc::string::String,
6296 #[prost(map="string, string", tag="7")]
6299 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6300 #[deprecated]
6302 #[prost(string, tag="8")]
6303 pub room_preset: ::prost::alloc::string::String,
6304 #[deprecated]
6306 #[prost(message, optional, tag="9")]
6307 pub room_config: ::core::option::Option<RoomConfiguration>,
6308}
6309#[allow(clippy::derive_partial_eq_without_eq)]
6310#[derive(Clone, PartialEq, ::prost::Message)]
6311pub struct UpdateSipDispatchRuleRequest {
6312 #[prost(string, tag="1")]
6313 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6314 #[prost(oneof="update_sip_dispatch_rule_request::Action", tags="2, 3")]
6315 pub action: ::core::option::Option<update_sip_dispatch_rule_request::Action>,
6316}
6317pub mod update_sip_dispatch_rule_request {
6319 #[allow(clippy::derive_partial_eq_without_eq)]
6320#[derive(Clone, PartialEq, ::prost::Oneof)]
6321 pub enum Action {
6322 #[prost(message, tag="2")]
6323 Replace(super::SipDispatchRuleInfo),
6324 #[prost(message, tag="3")]
6325 Update(super::SipDispatchRuleUpdate),
6326 }
6327}
6328#[allow(clippy::derive_partial_eq_without_eq)]
6329#[derive(Clone, PartialEq, ::prost::Message)]
6330pub struct SipDispatchRuleInfo {
6331 #[prost(string, tag="1")]
6332 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6333 #[prost(message, optional, tag="2")]
6334 pub rule: ::core::option::Option<SipDispatchRule>,
6335 #[prost(string, repeated, tag="3")]
6336 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6337 #[prost(bool, tag="4")]
6338 pub hide_phone_number: bool,
6339 #[prost(string, repeated, tag="7")]
6341 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6342 #[prost(string, repeated, tag="13")]
6344 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6345 #[prost(string, tag="5")]
6347 pub name: ::prost::alloc::string::String,
6348 #[prost(string, tag="6")]
6351 pub metadata: ::prost::alloc::string::String,
6352 #[prost(map="string, string", tag="8")]
6355 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6356 #[prost(string, tag="9")]
6358 pub room_preset: ::prost::alloc::string::String,
6359 #[prost(message, optional, tag="10")]
6361 pub room_config: ::core::option::Option<RoomConfiguration>,
6362 #[prost(message, optional, tag="16")]
6363 pub media: ::core::option::Option<SipMediaConfig>,
6364 #[prost(bool, tag="11")]
6365 pub krisp_enabled: bool,
6366 #[deprecated]
6367 #[prost(enumeration="SipMediaEncryption", tag="12")]
6368 pub media_encryption: i32,
6369 #[prost(message, optional, tag="14")]
6370 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6371 #[prost(message, optional, tag="15")]
6372 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6373}
6374#[allow(clippy::derive_partial_eq_without_eq)]
6375#[derive(Clone, PartialEq, ::prost::Message)]
6376pub struct SipDispatchRuleUpdate {
6377 #[prost(message, optional, tag="1")]
6378 pub trunk_ids: ::core::option::Option<ListUpdate>,
6379 #[prost(message, optional, tag="2")]
6380 pub rule: ::core::option::Option<SipDispatchRule>,
6381 #[prost(string, optional, tag="3")]
6382 pub name: ::core::option::Option<::prost::alloc::string::String>,
6383 #[prost(string, optional, tag="4")]
6384 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6385 #[prost(map="string, string", tag="5")]
6386 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6387 #[deprecated]
6388 #[prost(enumeration="SipMediaEncryption", optional, tag="6")]
6389 pub media_encryption: ::core::option::Option<i32>,
6390 #[prost(message, optional, tag="7")]
6391 pub media: ::core::option::Option<SipMediaConfig>,
6392}
6393#[allow(clippy::derive_partial_eq_without_eq)]
6395#[derive(Clone, PartialEq, ::prost::Message)]
6396pub struct ListSipDispatchRuleRequest {
6397 #[prost(message, optional, tag="3")]
6398 pub page: ::core::option::Option<Pagination>,
6399 #[prost(string, repeated, tag="1")]
6402 pub dispatch_rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6403 #[prost(string, repeated, tag="2")]
6405 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6406}
6407#[allow(clippy::derive_partial_eq_without_eq)]
6408#[derive(Clone, PartialEq, ::prost::Message)]
6409pub struct ListSipDispatchRuleResponse {
6410 #[prost(message, repeated, tag="1")]
6411 pub items: ::prost::alloc::vec::Vec<SipDispatchRuleInfo>,
6412}
6413#[allow(clippy::derive_partial_eq_without_eq)]
6414#[derive(Clone, PartialEq, ::prost::Message)]
6415pub struct DeleteSipDispatchRuleRequest {
6416 #[prost(string, tag="1")]
6417 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6418}
6419#[allow(clippy::derive_partial_eq_without_eq)]
6420#[derive(Clone, PartialEq, ::prost::Message)]
6421pub struct SipOutboundConfig {
6422 #[prost(string, tag="1")]
6424 pub hostname: ::prost::alloc::string::String,
6425 #[prost(string, tag="7")]
6427 pub destination_country: ::prost::alloc::string::String,
6428 #[prost(enumeration="SipTransport", tag="2")]
6430 pub transport: i32,
6431 #[prost(string, tag="3")]
6434 pub auth_username: ::prost::alloc::string::String,
6435 #[prost(string, tag="4")]
6436 pub auth_password: ::prost::alloc::string::String,
6437 #[prost(map="string, string", tag="5")]
6440 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6441 #[prost(map="string, string", tag="6")]
6444 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6445 #[prost(string, tag="8")]
6447 pub from_host: ::prost::alloc::string::String,
6448}
6449#[allow(clippy::derive_partial_eq_without_eq)]
6452#[derive(Clone, PartialEq, ::prost::Message)]
6453pub struct CreateSipParticipantRequest {
6454 #[prost(string, tag="1")]
6456 pub sip_trunk_id: ::prost::alloc::string::String,
6457 #[prost(message, optional, tag="20")]
6458 pub trunk: ::core::option::Option<SipOutboundConfig>,
6459 #[prost(string, tag="2")]
6461 pub sip_call_to: ::prost::alloc::string::String,
6462 #[prost(string, tag="15")]
6464 pub sip_number: ::prost::alloc::string::String,
6465 #[prost(string, tag="3")]
6467 pub room_name: ::prost::alloc::string::String,
6468 #[prost(string, tag="4")]
6470 pub participant_identity: ::prost::alloc::string::String,
6471 #[prost(string, tag="7")]
6473 pub participant_name: ::prost::alloc::string::String,
6474 #[prost(string, tag="8")]
6476 pub participant_metadata: ::prost::alloc::string::String,
6477 #[prost(map="string, string", tag="9")]
6479 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6480 #[prost(string, tag="5")]
6483 pub dtmf: ::prost::alloc::string::String,
6484 #[deprecated]
6486 #[prost(bool, tag="6")]
6487 pub play_ringtone: bool,
6488 #[prost(bool, tag="13")]
6489 pub play_dialtone: bool,
6490 #[prost(bool, tag="10")]
6493 pub hide_phone_number: bool,
6494 #[prost(map="string, string", tag="16")]
6496 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6497 #[prost(enumeration="SipHeaderOptions", tag="17")]
6504 pub include_headers: i32,
6505 #[prost(message, optional, tag="11")]
6507 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6508 #[prost(message, optional, tag="12")]
6510 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
6511 #[prost(bool, tag="14")]
6513 pub krisp_enabled: bool,
6514 #[deprecated]
6515 #[prost(enumeration="SipMediaEncryption", tag="18")]
6516 pub media_encryption: i32,
6517 #[prost(message, optional, tag="23")]
6518 pub media: ::core::option::Option<SipMediaConfig>,
6519 #[prost(bool, tag="19")]
6521 pub wait_until_answered: bool,
6522 #[prost(string, optional, tag="21")]
6529 pub display_name: ::core::option::Option<::prost::alloc::string::String>,
6530 #[prost(message, optional, tag="22")]
6532 pub destination: ::core::option::Option<Destination>,
6533}
6534#[allow(clippy::derive_partial_eq_without_eq)]
6535#[derive(Clone, PartialEq, ::prost::Message)]
6536pub struct SipParticipantInfo {
6537 #[prost(string, tag="1")]
6538 pub participant_id: ::prost::alloc::string::String,
6539 #[prost(string, tag="2")]
6540 pub participant_identity: ::prost::alloc::string::String,
6541 #[prost(string, tag="3")]
6542 pub room_name: ::prost::alloc::string::String,
6543 #[prost(string, tag="4")]
6544 pub sip_call_id: ::prost::alloc::string::String,
6545}
6546#[allow(clippy::derive_partial_eq_without_eq)]
6547#[derive(Clone, PartialEq, ::prost::Message)]
6548pub struct TransferSipParticipantRequest {
6549 #[prost(string, tag="1")]
6550 pub participant_identity: ::prost::alloc::string::String,
6551 #[prost(string, tag="2")]
6552 pub room_name: ::prost::alloc::string::String,
6553 #[prost(string, tag="3")]
6554 pub transfer_to: ::prost::alloc::string::String,
6555 #[prost(bool, tag="4")]
6557 pub play_dialtone: bool,
6558 #[prost(map="string, string", tag="5")]
6560 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6561 #[prost(message, optional, tag="6")]
6563 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6564}
6565#[allow(clippy::derive_partial_eq_without_eq)]
6566#[derive(Clone, PartialEq, ::prost::Message)]
6567pub struct SipCallInfo {
6568 #[prost(string, tag="1")]
6569 pub call_id: ::prost::alloc::string::String,
6570 #[prost(string, tag="2")]
6571 pub trunk_id: ::prost::alloc::string::String,
6572 #[prost(string, tag="16")]
6573 pub dispatch_rule_id: ::prost::alloc::string::String,
6574 #[prost(string, tag="17")]
6575 pub region: ::prost::alloc::string::String,
6576 #[prost(string, tag="3")]
6577 pub room_name: ::prost::alloc::string::String,
6578 #[prost(string, tag="4")]
6580 pub room_id: ::prost::alloc::string::String,
6581 #[prost(string, tag="5")]
6582 pub participant_identity: ::prost::alloc::string::String,
6583 #[prost(map="string, string", tag="18")]
6584 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6585 #[prost(message, optional, tag="6")]
6586 pub from_uri: ::core::option::Option<SipUri>,
6587 #[prost(message, optional, tag="7")]
6588 pub to_uri: ::core::option::Option<SipUri>,
6589 #[deprecated]
6590 #[prost(int64, tag="9")]
6591 pub created_at: i64,
6592 #[deprecated]
6593 #[prost(int64, tag="10")]
6594 pub started_at: i64,
6595 #[deprecated]
6596 #[prost(int64, tag="11")]
6597 pub ended_at: i64,
6598 #[prost(enumeration="SipFeature", repeated, tag="14")]
6599 pub enabled_features: ::prost::alloc::vec::Vec<i32>,
6600 #[prost(enumeration="SipCallDirection", tag="15")]
6601 pub call_direction: i32,
6602 #[prost(enumeration="SipCallStatus", tag="8")]
6603 pub call_status: i32,
6604 #[prost(int64, tag="22")]
6605 pub created_at_ns: i64,
6606 #[prost(int64, tag="23")]
6607 pub started_at_ns: i64,
6608 #[prost(int64, tag="24")]
6609 pub ended_at_ns: i64,
6610 #[prost(enumeration="DisconnectReason", tag="12")]
6611 pub disconnect_reason: i32,
6612 #[prost(string, tag="13")]
6613 pub error: ::prost::alloc::string::String,
6614 #[prost(message, optional, tag="19")]
6615 pub call_status_code: ::core::option::Option<SipStatus>,
6616 #[prost(string, tag="20")]
6617 pub audio_codec: ::prost::alloc::string::String,
6618 #[prost(string, tag="21")]
6619 pub media_encryption: ::prost::alloc::string::String,
6620 #[prost(string, tag="25")]
6621 pub pcap_file_link: ::prost::alloc::string::String,
6622 #[prost(message, repeated, tag="26")]
6623 pub call_context: ::prost::alloc::vec::Vec<::pbjson_types::Any>,
6624 #[prost(message, optional, tag="27")]
6625 pub provider_info: ::core::option::Option<ProviderInfo>,
6626 #[prost(string, tag="28")]
6627 pub sip_call_id: ::prost::alloc::string::String,
6628}
6629#[allow(clippy::derive_partial_eq_without_eq)]
6630#[derive(Clone, PartialEq, ::prost::Message)]
6631pub struct SipTransferInfo {
6632 #[prost(string, tag="1")]
6633 pub transfer_id: ::prost::alloc::string::String,
6634 #[prost(string, tag="2")]
6635 pub call_id: ::prost::alloc::string::String,
6636 #[prost(string, tag="3")]
6637 pub transfer_to: ::prost::alloc::string::String,
6638 #[prost(int64, tag="4")]
6639 pub transfer_initiated_at_ns: i64,
6640 #[prost(int64, tag="5")]
6641 pub transfer_completed_at_ns: i64,
6642 #[prost(enumeration="SipTransferStatus", tag="6")]
6643 pub transfer_status: i32,
6644 #[prost(string, tag="7")]
6645 pub error: ::prost::alloc::string::String,
6646 #[prost(message, optional, tag="8")]
6647 pub transfer_status_code: ::core::option::Option<SipStatus>,
6648}
6649#[allow(clippy::derive_partial_eq_without_eq)]
6650#[derive(Clone, PartialEq, ::prost::Message)]
6651pub struct SipUri {
6652 #[prost(string, tag="1")]
6653 pub user: ::prost::alloc::string::String,
6654 #[prost(string, tag="2")]
6655 pub host: ::prost::alloc::string::String,
6656 #[prost(string, tag="3")]
6657 pub ip: ::prost::alloc::string::String,
6658 #[prost(uint32, tag="4")]
6659 pub port: u32,
6660 #[prost(enumeration="SipTransport", tag="5")]
6661 pub transport: i32,
6662}
6663#[allow(clippy::derive_partial_eq_without_eq)]
6664#[derive(Clone, PartialEq, ::prost::Message)]
6665pub struct Destination {
6666 #[prost(string, tag="1")]
6667 pub city: ::prost::alloc::string::String,
6668 #[prost(string, tag="2")]
6669 pub country: ::prost::alloc::string::String,
6670 #[prost(string, tag="3")]
6671 pub region: ::prost::alloc::string::String,
6672}
6673#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6674#[repr(i32)]
6675pub enum SipStatusCode {
6676 SipStatusUnknown = 0,
6677 SipStatusTrying = 100,
6678 SipStatusRinging = 180,
6679 SipStatusCallIsForwarded = 181,
6680 SipStatusQueued = 182,
6681 SipStatusSessionProgress = 183,
6682 SipStatusEarlyDialogTerminated = 199,
6683 SipStatusOk = 200,
6684 SipStatusAccepted = 202,
6685 SipStatusNoNotification = 204,
6686 SipStatusMultipleChoices = 300,
6687 SipStatusMovedPermanently = 301,
6688 SipStatusMovedTemporarily = 302,
6689 SipStatusUseProxy = 305,
6690 SipStatusAlternativeService = 380,
6691 SipStatusBadRequest = 400,
6692 SipStatusUnauthorized = 401,
6693 SipStatusPaymentRequired = 402,
6694 SipStatusForbidden = 403,
6695 SipStatusNotfound = 404,
6696 SipStatusMethodNotAllowed = 405,
6697 SipStatusNotAcceptable = 406,
6698 SipStatusProxyAuthRequired = 407,
6699 SipStatusRequestTimeout = 408,
6700 SipStatusConflict = 409,
6701 SipStatusGone = 410,
6702 SipStatusLengthRequired = 411,
6703 SipStatusConditionalRequestFailed = 412,
6704 SipStatusRequestEntityTooLarge = 413,
6705 SipStatusRequestUriTooLong = 414,
6706 SipStatusUnsupportedMediaType = 415,
6707 SipStatusRequestedRangeNotSatisfiable = 416,
6708 SipStatusUnknownResourcePriority = 417,
6709 SipStatusBadExtension = 420,
6710 SipStatusExtensionRequired = 421,
6711 SipStatusSessionIntervalTooSmall = 422,
6712 SipStatusIntervalTooBrief = 423,
6713 SipStatusBadLocationInformation = 424,
6714 SipStatusBadAlertMessage = 425,
6715 SipStatusUseIdentityHeader = 428,
6716 SipStatusProvideReferrerIdentity = 429,
6717 SipStatusFlowFailed = 430,
6718 SipStatusAnonymityDisallowed = 433,
6719 SipStatusBadIdentityInfo = 436,
6720 SipStatusUnsupportedCertificate = 437,
6721 SipStatusInvalidIdentityHeader = 438,
6722 SipStatusFirstHopLacksOutboundSupport = 439,
6723 SipStatusMaxBreadthExceeded = 440,
6724 SipStatusBadInfoPackage = 469,
6725 SipStatusConsentNeeded = 470,
6726 SipStatusTemporarilyUnavailable = 480,
6727 SipStatusCallTransactionDoesNotExists = 481,
6728 SipStatusLoopDetected = 482,
6729 SipStatusTooManyHops = 483,
6730 SipStatusAddressIncomplete = 484,
6731 SipStatusAmbiguous = 485,
6732 SipStatusBusyHere = 486,
6733 SipStatusRequestTerminated = 487,
6734 SipStatusNotAcceptableHere = 488,
6735 SipStatusBadEvent = 489,
6736 SipStatusRequestPending = 491,
6737 SipStatusUndecipherable = 493,
6738 SipStatusSecurityAgreementRequired = 494,
6739 SipStatusInternalServerError = 500,
6740 SipStatusNotImplemented = 501,
6741 SipStatusBadGateway = 502,
6742 SipStatusServiceUnavailable = 503,
6743 SipStatusGatewayTimeout = 504,
6744 SipStatusVersionNotSupported = 505,
6745 SipStatusMessageTooLarge = 513,
6746 SipStatusGlobalBusyEverywhere = 600,
6747 SipStatusGlobalDecline = 603,
6748 SipStatusGlobalDoesNotExistAnywhere = 604,
6749 SipStatusGlobalNotAcceptable = 606,
6750 SipStatusGlobalUnwanted = 607,
6751 SipStatusGlobalRejected = 608,
6752}
6753impl SipStatusCode {
6754 pub fn as_str_name(&self) -> &'static str {
6759 match self {
6760 SipStatusCode::SipStatusUnknown => "SIP_STATUS_UNKNOWN",
6761 SipStatusCode::SipStatusTrying => "SIP_STATUS_TRYING",
6762 SipStatusCode::SipStatusRinging => "SIP_STATUS_RINGING",
6763 SipStatusCode::SipStatusCallIsForwarded => "SIP_STATUS_CALL_IS_FORWARDED",
6764 SipStatusCode::SipStatusQueued => "SIP_STATUS_QUEUED",
6765 SipStatusCode::SipStatusSessionProgress => "SIP_STATUS_SESSION_PROGRESS",
6766 SipStatusCode::SipStatusEarlyDialogTerminated => "SIP_STATUS_EARLY_DIALOG_TERMINATED",
6767 SipStatusCode::SipStatusOk => "SIP_STATUS_OK",
6768 SipStatusCode::SipStatusAccepted => "SIP_STATUS_ACCEPTED",
6769 SipStatusCode::SipStatusNoNotification => "SIP_STATUS_NO_NOTIFICATION",
6770 SipStatusCode::SipStatusMultipleChoices => "SIP_STATUS_MULTIPLE_CHOICES",
6771 SipStatusCode::SipStatusMovedPermanently => "SIP_STATUS_MOVED_PERMANENTLY",
6772 SipStatusCode::SipStatusMovedTemporarily => "SIP_STATUS_MOVED_TEMPORARILY",
6773 SipStatusCode::SipStatusUseProxy => "SIP_STATUS_USE_PROXY",
6774 SipStatusCode::SipStatusAlternativeService => "SIP_STATUS_ALTERNATIVE_SERVICE",
6775 SipStatusCode::SipStatusBadRequest => "SIP_STATUS_BAD_REQUEST",
6776 SipStatusCode::SipStatusUnauthorized => "SIP_STATUS_UNAUTHORIZED",
6777 SipStatusCode::SipStatusPaymentRequired => "SIP_STATUS_PAYMENT_REQUIRED",
6778 SipStatusCode::SipStatusForbidden => "SIP_STATUS_FORBIDDEN",
6779 SipStatusCode::SipStatusNotfound => "SIP_STATUS_NOTFOUND",
6780 SipStatusCode::SipStatusMethodNotAllowed => "SIP_STATUS_METHOD_NOT_ALLOWED",
6781 SipStatusCode::SipStatusNotAcceptable => "SIP_STATUS_NOT_ACCEPTABLE",
6782 SipStatusCode::SipStatusProxyAuthRequired => "SIP_STATUS_PROXY_AUTH_REQUIRED",
6783 SipStatusCode::SipStatusRequestTimeout => "SIP_STATUS_REQUEST_TIMEOUT",
6784 SipStatusCode::SipStatusConflict => "SIP_STATUS_CONFLICT",
6785 SipStatusCode::SipStatusGone => "SIP_STATUS_GONE",
6786 SipStatusCode::SipStatusLengthRequired => "SIP_STATUS_LENGTH_REQUIRED",
6787 SipStatusCode::SipStatusConditionalRequestFailed => "SIP_STATUS_CONDITIONAL_REQUEST_FAILED",
6788 SipStatusCode::SipStatusRequestEntityTooLarge => "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE",
6789 SipStatusCode::SipStatusRequestUriTooLong => "SIP_STATUS_REQUEST_URI_TOO_LONG",
6790 SipStatusCode::SipStatusUnsupportedMediaType => "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE",
6791 SipStatusCode::SipStatusRequestedRangeNotSatisfiable => "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE",
6792 SipStatusCode::SipStatusUnknownResourcePriority => "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY",
6793 SipStatusCode::SipStatusBadExtension => "SIP_STATUS_BAD_EXTENSION",
6794 SipStatusCode::SipStatusExtensionRequired => "SIP_STATUS_EXTENSION_REQUIRED",
6795 SipStatusCode::SipStatusSessionIntervalTooSmall => "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL",
6796 SipStatusCode::SipStatusIntervalTooBrief => "SIP_STATUS_INTERVAL_TOO_BRIEF",
6797 SipStatusCode::SipStatusBadLocationInformation => "SIP_STATUS_BAD_LOCATION_INFORMATION",
6798 SipStatusCode::SipStatusBadAlertMessage => "SIP_STATUS_BAD_ALERT_MESSAGE",
6799 SipStatusCode::SipStatusUseIdentityHeader => "SIP_STATUS_USE_IDENTITY_HEADER",
6800 SipStatusCode::SipStatusProvideReferrerIdentity => "SIP_STATUS_PROVIDE_REFERRER_IDENTITY",
6801 SipStatusCode::SipStatusFlowFailed => "SIP_STATUS_FLOW_FAILED",
6802 SipStatusCode::SipStatusAnonymityDisallowed => "SIP_STATUS_ANONYMITY_DISALLOWED",
6803 SipStatusCode::SipStatusBadIdentityInfo => "SIP_STATUS_BAD_IDENTITY_INFO",
6804 SipStatusCode::SipStatusUnsupportedCertificate => "SIP_STATUS_UNSUPPORTED_CERTIFICATE",
6805 SipStatusCode::SipStatusInvalidIdentityHeader => "SIP_STATUS_INVALID_IDENTITY_HEADER",
6806 SipStatusCode::SipStatusFirstHopLacksOutboundSupport => "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT",
6807 SipStatusCode::SipStatusMaxBreadthExceeded => "SIP_STATUS_MAX_BREADTH_EXCEEDED",
6808 SipStatusCode::SipStatusBadInfoPackage => "SIP_STATUS_BAD_INFO_PACKAGE",
6809 SipStatusCode::SipStatusConsentNeeded => "SIP_STATUS_CONSENT_NEEDED",
6810 SipStatusCode::SipStatusTemporarilyUnavailable => "SIP_STATUS_TEMPORARILY_UNAVAILABLE",
6811 SipStatusCode::SipStatusCallTransactionDoesNotExists => "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS",
6812 SipStatusCode::SipStatusLoopDetected => "SIP_STATUS_LOOP_DETECTED",
6813 SipStatusCode::SipStatusTooManyHops => "SIP_STATUS_TOO_MANY_HOPS",
6814 SipStatusCode::SipStatusAddressIncomplete => "SIP_STATUS_ADDRESS_INCOMPLETE",
6815 SipStatusCode::SipStatusAmbiguous => "SIP_STATUS_AMBIGUOUS",
6816 SipStatusCode::SipStatusBusyHere => "SIP_STATUS_BUSY_HERE",
6817 SipStatusCode::SipStatusRequestTerminated => "SIP_STATUS_REQUEST_TERMINATED",
6818 SipStatusCode::SipStatusNotAcceptableHere => "SIP_STATUS_NOT_ACCEPTABLE_HERE",
6819 SipStatusCode::SipStatusBadEvent => "SIP_STATUS_BAD_EVENT",
6820 SipStatusCode::SipStatusRequestPending => "SIP_STATUS_REQUEST_PENDING",
6821 SipStatusCode::SipStatusUndecipherable => "SIP_STATUS_UNDECIPHERABLE",
6822 SipStatusCode::SipStatusSecurityAgreementRequired => "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED",
6823 SipStatusCode::SipStatusInternalServerError => "SIP_STATUS_INTERNAL_SERVER_ERROR",
6824 SipStatusCode::SipStatusNotImplemented => "SIP_STATUS_NOT_IMPLEMENTED",
6825 SipStatusCode::SipStatusBadGateway => "SIP_STATUS_BAD_GATEWAY",
6826 SipStatusCode::SipStatusServiceUnavailable => "SIP_STATUS_SERVICE_UNAVAILABLE",
6827 SipStatusCode::SipStatusGatewayTimeout => "SIP_STATUS_GATEWAY_TIMEOUT",
6828 SipStatusCode::SipStatusVersionNotSupported => "SIP_STATUS_VERSION_NOT_SUPPORTED",
6829 SipStatusCode::SipStatusMessageTooLarge => "SIP_STATUS_MESSAGE_TOO_LARGE",
6830 SipStatusCode::SipStatusGlobalBusyEverywhere => "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE",
6831 SipStatusCode::SipStatusGlobalDecline => "SIP_STATUS_GLOBAL_DECLINE",
6832 SipStatusCode::SipStatusGlobalDoesNotExistAnywhere => "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE",
6833 SipStatusCode::SipStatusGlobalNotAcceptable => "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE",
6834 SipStatusCode::SipStatusGlobalUnwanted => "SIP_STATUS_GLOBAL_UNWANTED",
6835 SipStatusCode::SipStatusGlobalRejected => "SIP_STATUS_GLOBAL_REJECTED",
6836 }
6837 }
6838 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6840 match value {
6841 "SIP_STATUS_UNKNOWN" => Some(Self::SipStatusUnknown),
6842 "SIP_STATUS_TRYING" => Some(Self::SipStatusTrying),
6843 "SIP_STATUS_RINGING" => Some(Self::SipStatusRinging),
6844 "SIP_STATUS_CALL_IS_FORWARDED" => Some(Self::SipStatusCallIsForwarded),
6845 "SIP_STATUS_QUEUED" => Some(Self::SipStatusQueued),
6846 "SIP_STATUS_SESSION_PROGRESS" => Some(Self::SipStatusSessionProgress),
6847 "SIP_STATUS_EARLY_DIALOG_TERMINATED" => Some(Self::SipStatusEarlyDialogTerminated),
6848 "SIP_STATUS_OK" => Some(Self::SipStatusOk),
6849 "SIP_STATUS_ACCEPTED" => Some(Self::SipStatusAccepted),
6850 "SIP_STATUS_NO_NOTIFICATION" => Some(Self::SipStatusNoNotification),
6851 "SIP_STATUS_MULTIPLE_CHOICES" => Some(Self::SipStatusMultipleChoices),
6852 "SIP_STATUS_MOVED_PERMANENTLY" => Some(Self::SipStatusMovedPermanently),
6853 "SIP_STATUS_MOVED_TEMPORARILY" => Some(Self::SipStatusMovedTemporarily),
6854 "SIP_STATUS_USE_PROXY" => Some(Self::SipStatusUseProxy),
6855 "SIP_STATUS_ALTERNATIVE_SERVICE" => Some(Self::SipStatusAlternativeService),
6856 "SIP_STATUS_BAD_REQUEST" => Some(Self::SipStatusBadRequest),
6857 "SIP_STATUS_UNAUTHORIZED" => Some(Self::SipStatusUnauthorized),
6858 "SIP_STATUS_PAYMENT_REQUIRED" => Some(Self::SipStatusPaymentRequired),
6859 "SIP_STATUS_FORBIDDEN" => Some(Self::SipStatusForbidden),
6860 "SIP_STATUS_NOTFOUND" => Some(Self::SipStatusNotfound),
6861 "SIP_STATUS_METHOD_NOT_ALLOWED" => Some(Self::SipStatusMethodNotAllowed),
6862 "SIP_STATUS_NOT_ACCEPTABLE" => Some(Self::SipStatusNotAcceptable),
6863 "SIP_STATUS_PROXY_AUTH_REQUIRED" => Some(Self::SipStatusProxyAuthRequired),
6864 "SIP_STATUS_REQUEST_TIMEOUT" => Some(Self::SipStatusRequestTimeout),
6865 "SIP_STATUS_CONFLICT" => Some(Self::SipStatusConflict),
6866 "SIP_STATUS_GONE" => Some(Self::SipStatusGone),
6867 "SIP_STATUS_LENGTH_REQUIRED" => Some(Self::SipStatusLengthRequired),
6868 "SIP_STATUS_CONDITIONAL_REQUEST_FAILED" => Some(Self::SipStatusConditionalRequestFailed),
6869 "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE" => Some(Self::SipStatusRequestEntityTooLarge),
6870 "SIP_STATUS_REQUEST_URI_TOO_LONG" => Some(Self::SipStatusRequestUriTooLong),
6871 "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE" => Some(Self::SipStatusUnsupportedMediaType),
6872 "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE" => Some(Self::SipStatusRequestedRangeNotSatisfiable),
6873 "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY" => Some(Self::SipStatusUnknownResourcePriority),
6874 "SIP_STATUS_BAD_EXTENSION" => Some(Self::SipStatusBadExtension),
6875 "SIP_STATUS_EXTENSION_REQUIRED" => Some(Self::SipStatusExtensionRequired),
6876 "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL" => Some(Self::SipStatusSessionIntervalTooSmall),
6877 "SIP_STATUS_INTERVAL_TOO_BRIEF" => Some(Self::SipStatusIntervalTooBrief),
6878 "SIP_STATUS_BAD_LOCATION_INFORMATION" => Some(Self::SipStatusBadLocationInformation),
6879 "SIP_STATUS_BAD_ALERT_MESSAGE" => Some(Self::SipStatusBadAlertMessage),
6880 "SIP_STATUS_USE_IDENTITY_HEADER" => Some(Self::SipStatusUseIdentityHeader),
6881 "SIP_STATUS_PROVIDE_REFERRER_IDENTITY" => Some(Self::SipStatusProvideReferrerIdentity),
6882 "SIP_STATUS_FLOW_FAILED" => Some(Self::SipStatusFlowFailed),
6883 "SIP_STATUS_ANONYMITY_DISALLOWED" => Some(Self::SipStatusAnonymityDisallowed),
6884 "SIP_STATUS_BAD_IDENTITY_INFO" => Some(Self::SipStatusBadIdentityInfo),
6885 "SIP_STATUS_UNSUPPORTED_CERTIFICATE" => Some(Self::SipStatusUnsupportedCertificate),
6886 "SIP_STATUS_INVALID_IDENTITY_HEADER" => Some(Self::SipStatusInvalidIdentityHeader),
6887 "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT" => Some(Self::SipStatusFirstHopLacksOutboundSupport),
6888 "SIP_STATUS_MAX_BREADTH_EXCEEDED" => Some(Self::SipStatusMaxBreadthExceeded),
6889 "SIP_STATUS_BAD_INFO_PACKAGE" => Some(Self::SipStatusBadInfoPackage),
6890 "SIP_STATUS_CONSENT_NEEDED" => Some(Self::SipStatusConsentNeeded),
6891 "SIP_STATUS_TEMPORARILY_UNAVAILABLE" => Some(Self::SipStatusTemporarilyUnavailable),
6892 "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS" => Some(Self::SipStatusCallTransactionDoesNotExists),
6893 "SIP_STATUS_LOOP_DETECTED" => Some(Self::SipStatusLoopDetected),
6894 "SIP_STATUS_TOO_MANY_HOPS" => Some(Self::SipStatusTooManyHops),
6895 "SIP_STATUS_ADDRESS_INCOMPLETE" => Some(Self::SipStatusAddressIncomplete),
6896 "SIP_STATUS_AMBIGUOUS" => Some(Self::SipStatusAmbiguous),
6897 "SIP_STATUS_BUSY_HERE" => Some(Self::SipStatusBusyHere),
6898 "SIP_STATUS_REQUEST_TERMINATED" => Some(Self::SipStatusRequestTerminated),
6899 "SIP_STATUS_NOT_ACCEPTABLE_HERE" => Some(Self::SipStatusNotAcceptableHere),
6900 "SIP_STATUS_BAD_EVENT" => Some(Self::SipStatusBadEvent),
6901 "SIP_STATUS_REQUEST_PENDING" => Some(Self::SipStatusRequestPending),
6902 "SIP_STATUS_UNDECIPHERABLE" => Some(Self::SipStatusUndecipherable),
6903 "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED" => Some(Self::SipStatusSecurityAgreementRequired),
6904 "SIP_STATUS_INTERNAL_SERVER_ERROR" => Some(Self::SipStatusInternalServerError),
6905 "SIP_STATUS_NOT_IMPLEMENTED" => Some(Self::SipStatusNotImplemented),
6906 "SIP_STATUS_BAD_GATEWAY" => Some(Self::SipStatusBadGateway),
6907 "SIP_STATUS_SERVICE_UNAVAILABLE" => Some(Self::SipStatusServiceUnavailable),
6908 "SIP_STATUS_GATEWAY_TIMEOUT" => Some(Self::SipStatusGatewayTimeout),
6909 "SIP_STATUS_VERSION_NOT_SUPPORTED" => Some(Self::SipStatusVersionNotSupported),
6910 "SIP_STATUS_MESSAGE_TOO_LARGE" => Some(Self::SipStatusMessageTooLarge),
6911 "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE" => Some(Self::SipStatusGlobalBusyEverywhere),
6912 "SIP_STATUS_GLOBAL_DECLINE" => Some(Self::SipStatusGlobalDecline),
6913 "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE" => Some(Self::SipStatusGlobalDoesNotExistAnywhere),
6914 "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE" => Some(Self::SipStatusGlobalNotAcceptable),
6915 "SIP_STATUS_GLOBAL_UNWANTED" => Some(Self::SipStatusGlobalUnwanted),
6916 "SIP_STATUS_GLOBAL_REJECTED" => Some(Self::SipStatusGlobalRejected),
6917 _ => None,
6918 }
6919 }
6920}
6921#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6922#[repr(i32)]
6923pub enum SipTransport {
6924 Auto = 0,
6925 Udp = 1,
6926 Tcp = 2,
6927 Tls = 3,
6928}
6929impl SipTransport {
6930 pub fn as_str_name(&self) -> &'static str {
6935 match self {
6936 SipTransport::Auto => "SIP_TRANSPORT_AUTO",
6937 SipTransport::Udp => "SIP_TRANSPORT_UDP",
6938 SipTransport::Tcp => "SIP_TRANSPORT_TCP",
6939 SipTransport::Tls => "SIP_TRANSPORT_TLS",
6940 }
6941 }
6942 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6944 match value {
6945 "SIP_TRANSPORT_AUTO" => Some(Self::Auto),
6946 "SIP_TRANSPORT_UDP" => Some(Self::Udp),
6947 "SIP_TRANSPORT_TCP" => Some(Self::Tcp),
6948 "SIP_TRANSPORT_TLS" => Some(Self::Tls),
6949 _ => None,
6950 }
6951 }
6952}
6953#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6954#[repr(i32)]
6955pub enum SipHeaderOptions {
6956 SipNoHeaders = 0,
6958 SipXHeaders = 1,
6960 SipAllHeaders = 2,
6962}
6963impl SipHeaderOptions {
6964 pub fn as_str_name(&self) -> &'static str {
6969 match self {
6970 SipHeaderOptions::SipNoHeaders => "SIP_NO_HEADERS",
6971 SipHeaderOptions::SipXHeaders => "SIP_X_HEADERS",
6972 SipHeaderOptions::SipAllHeaders => "SIP_ALL_HEADERS",
6973 }
6974 }
6975 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6977 match value {
6978 "SIP_NO_HEADERS" => Some(Self::SipNoHeaders),
6979 "SIP_X_HEADERS" => Some(Self::SipXHeaders),
6980 "SIP_ALL_HEADERS" => Some(Self::SipAllHeaders),
6981 _ => None,
6982 }
6983 }
6984}
6985#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6986#[repr(i32)]
6987pub enum SipMediaEncryption {
6988 SipMediaEncryptDisable = 0,
6990 SipMediaEncryptAllow = 1,
6992 SipMediaEncryptRequire = 2,
6994}
6995impl SipMediaEncryption {
6996 pub fn as_str_name(&self) -> &'static str {
7001 match self {
7002 SipMediaEncryption::SipMediaEncryptDisable => "SIP_MEDIA_ENCRYPT_DISABLE",
7003 SipMediaEncryption::SipMediaEncryptAllow => "SIP_MEDIA_ENCRYPT_ALLOW",
7004 SipMediaEncryption::SipMediaEncryptRequire => "SIP_MEDIA_ENCRYPT_REQUIRE",
7005 }
7006 }
7007 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7009 match value {
7010 "SIP_MEDIA_ENCRYPT_DISABLE" => Some(Self::SipMediaEncryptDisable),
7011 "SIP_MEDIA_ENCRYPT_ALLOW" => Some(Self::SipMediaEncryptAllow),
7012 "SIP_MEDIA_ENCRYPT_REQUIRE" => Some(Self::SipMediaEncryptRequire),
7013 _ => None,
7014 }
7015 }
7016}
7017#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7018#[repr(i32)]
7019pub enum ProviderType {
7020 Unknown = 0,
7021 Internal = 1,
7023 External = 2,
7025}
7026impl ProviderType {
7027 pub fn as_str_name(&self) -> &'static str {
7032 match self {
7033 ProviderType::Unknown => "PROVIDER_TYPE_UNKNOWN",
7034 ProviderType::Internal => "PROVIDER_TYPE_INTERNAL",
7035 ProviderType::External => "PROVIDER_TYPE_EXTERNAL",
7036 }
7037 }
7038 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7040 match value {
7041 "PROVIDER_TYPE_UNKNOWN" => Some(Self::Unknown),
7042 "PROVIDER_TYPE_INTERNAL" => Some(Self::Internal),
7043 "PROVIDER_TYPE_EXTERNAL" => Some(Self::External),
7044 _ => None,
7045 }
7046 }
7047}
7048#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7049#[repr(i32)]
7050pub enum SipCallStatus {
7051 ScsCallIncoming = 0,
7053 ScsParticipantJoined = 1,
7055 ScsActive = 2,
7057 ScsDisconnected = 3,
7059 ScsError = 4,
7061}
7062impl SipCallStatus {
7063 pub fn as_str_name(&self) -> &'static str {
7068 match self {
7069 SipCallStatus::ScsCallIncoming => "SCS_CALL_INCOMING",
7070 SipCallStatus::ScsParticipantJoined => "SCS_PARTICIPANT_JOINED",
7071 SipCallStatus::ScsActive => "SCS_ACTIVE",
7072 SipCallStatus::ScsDisconnected => "SCS_DISCONNECTED",
7073 SipCallStatus::ScsError => "SCS_ERROR",
7074 }
7075 }
7076 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7078 match value {
7079 "SCS_CALL_INCOMING" => Some(Self::ScsCallIncoming),
7080 "SCS_PARTICIPANT_JOINED" => Some(Self::ScsParticipantJoined),
7081 "SCS_ACTIVE" => Some(Self::ScsActive),
7082 "SCS_DISCONNECTED" => Some(Self::ScsDisconnected),
7083 "SCS_ERROR" => Some(Self::ScsError),
7084 _ => None,
7085 }
7086 }
7087}
7088#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7089#[repr(i32)]
7090pub enum SipTransferStatus {
7091 StsTransferOngoing = 0,
7092 StsTransferFailed = 1,
7093 StsTransferSuccessful = 2,
7094}
7095impl SipTransferStatus {
7096 pub fn as_str_name(&self) -> &'static str {
7101 match self {
7102 SipTransferStatus::StsTransferOngoing => "STS_TRANSFER_ONGOING",
7103 SipTransferStatus::StsTransferFailed => "STS_TRANSFER_FAILED",
7104 SipTransferStatus::StsTransferSuccessful => "STS_TRANSFER_SUCCESSFUL",
7105 }
7106 }
7107 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7109 match value {
7110 "STS_TRANSFER_ONGOING" => Some(Self::StsTransferOngoing),
7111 "STS_TRANSFER_FAILED" => Some(Self::StsTransferFailed),
7112 "STS_TRANSFER_SUCCESSFUL" => Some(Self::StsTransferSuccessful),
7113 _ => None,
7114 }
7115 }
7116}
7117#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7118#[repr(i32)]
7119pub enum SipFeature {
7120 None = 0,
7121 KrispEnabled = 1,
7122}
7123impl SipFeature {
7124 pub fn as_str_name(&self) -> &'static str {
7129 match self {
7130 SipFeature::None => "NONE",
7131 SipFeature::KrispEnabled => "KRISP_ENABLED",
7132 }
7133 }
7134 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7136 match value {
7137 "NONE" => Some(Self::None),
7138 "KRISP_ENABLED" => Some(Self::KrispEnabled),
7139 _ => None,
7140 }
7141 }
7142}
7143#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7144#[repr(i32)]
7145pub enum SipCallDirection {
7146 ScdUnknown = 0,
7147 ScdInbound = 1,
7148 ScdOutbound = 2,
7149}
7150impl SipCallDirection {
7151 pub fn as_str_name(&self) -> &'static str {
7156 match self {
7157 SipCallDirection::ScdUnknown => "SCD_UNKNOWN",
7158 SipCallDirection::ScdInbound => "SCD_INBOUND",
7159 SipCallDirection::ScdOutbound => "SCD_OUTBOUND",
7160 }
7161 }
7162 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7164 match value {
7165 "SCD_UNKNOWN" => Some(Self::ScdUnknown),
7166 "SCD_INBOUND" => Some(Self::ScdInbound),
7167 "SCD_OUTBOUND" => Some(Self::ScdOutbound),
7168 _ => None,
7169 }
7170 }
7171}
7172#[allow(clippy::derive_partial_eq_without_eq)]
7173#[derive(Clone, PartialEq, ::prost::Message)]
7174pub struct DialWhatsAppCallRequest {
7175 #[prost(string, tag="1")]
7177 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
7178 #[prost(string, tag="2")]
7180 pub whatsapp_to_phone_number: ::prost::alloc::string::String,
7181 #[prost(string, tag="3")]
7183 pub whatsapp_api_key: ::prost::alloc::string::String,
7184 #[prost(string, tag="12")]
7186 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
7187 #[prost(string, tag="4")]
7189 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
7190 #[prost(string, tag="5")]
7192 pub room_name: ::prost::alloc::string::String,
7193 #[prost(message, repeated, tag="6")]
7195 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7196 #[prost(string, tag="7")]
7199 pub participant_identity: ::prost::alloc::string::String,
7200 #[prost(string, tag="8")]
7202 pub participant_name: ::prost::alloc::string::String,
7203 #[prost(string, tag="9")]
7205 pub participant_metadata: ::prost::alloc::string::String,
7206 #[prost(map="string, string", tag="10")]
7208 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7209 #[prost(string, tag="11")]
7211 pub destination_country: ::prost::alloc::string::String,
7212 #[prost(message, optional, tag="13")]
7214 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
7215}
7216#[allow(clippy::derive_partial_eq_without_eq)]
7217#[derive(Clone, PartialEq, ::prost::Message)]
7218pub struct DialWhatsAppCallResponse {
7219 #[prost(string, tag="1")]
7221 pub whatsapp_call_id: ::prost::alloc::string::String,
7222 #[prost(string, tag="2")]
7224 pub room_name: ::prost::alloc::string::String,
7225}
7226#[allow(clippy::derive_partial_eq_without_eq)]
7227#[derive(Clone, PartialEq, ::prost::Message)]
7228pub struct DisconnectWhatsAppCallRequest {
7229 #[prost(string, tag="1")]
7231 pub whatsapp_call_id: ::prost::alloc::string::String,
7232 #[prost(string, tag="2")]
7236 pub whatsapp_api_key: ::prost::alloc::string::String,
7237 #[prost(enumeration="disconnect_whats_app_call_request::DisconnectReason", tag="3")]
7239 pub disconnect_reason: i32,
7240}
7241pub mod disconnect_whats_app_call_request {
7243 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7244 #[repr(i32)]
7245 pub enum DisconnectReason {
7246 BusinessInitiated = 0,
7248 UserInitiated = 1,
7254 }
7255 impl DisconnectReason {
7256 pub fn as_str_name(&self) -> &'static str {
7261 match self {
7262 DisconnectReason::BusinessInitiated => "BUSINESS_INITIATED",
7263 DisconnectReason::UserInitiated => "USER_INITIATED",
7264 }
7265 }
7266 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7268 match value {
7269 "BUSINESS_INITIATED" => Some(Self::BusinessInitiated),
7270 "USER_INITIATED" => Some(Self::UserInitiated),
7271 _ => None,
7272 }
7273 }
7274 }
7275}
7276#[allow(clippy::derive_partial_eq_without_eq)]
7277#[derive(Clone, PartialEq, ::prost::Message)]
7278pub struct DisconnectWhatsAppCallResponse {
7279}
7280#[allow(clippy::derive_partial_eq_without_eq)]
7281#[derive(Clone, PartialEq, ::prost::Message)]
7282pub struct ConnectWhatsAppCallRequest {
7283 #[prost(string, tag="1")]
7285 pub whatsapp_call_id: ::prost::alloc::string::String,
7286 #[prost(message, optional, tag="2")]
7289 pub sdp: ::core::option::Option<SessionDescription>,
7290}
7291#[allow(clippy::derive_partial_eq_without_eq)]
7292#[derive(Clone, PartialEq, ::prost::Message)]
7293pub struct ConnectWhatsAppCallResponse {
7294}
7295#[allow(clippy::derive_partial_eq_without_eq)]
7296#[derive(Clone, PartialEq, ::prost::Message)]
7297pub struct AcceptWhatsAppCallRequest {
7298 #[prost(string, tag="1")]
7300 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
7301 #[prost(string, tag="2")]
7303 pub whatsapp_api_key: ::prost::alloc::string::String,
7304 #[prost(string, tag="13")]
7306 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
7307 #[prost(string, tag="3")]
7309 pub whatsapp_call_id: ::prost::alloc::string::String,
7310 #[prost(string, tag="4")]
7312 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
7313 #[prost(message, optional, tag="5")]
7316 pub sdp: ::core::option::Option<SessionDescription>,
7317 #[prost(string, tag="6")]
7319 pub room_name: ::prost::alloc::string::String,
7320 #[prost(message, repeated, tag="7")]
7322 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7323 #[prost(string, tag="8")]
7326 pub participant_identity: ::prost::alloc::string::String,
7327 #[prost(string, tag="9")]
7329 pub participant_name: ::prost::alloc::string::String,
7330 #[prost(string, tag="10")]
7332 pub participant_metadata: ::prost::alloc::string::String,
7333 #[prost(map="string, string", tag="11")]
7335 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7336 #[prost(string, tag="12")]
7338 pub destination_country: ::prost::alloc::string::String,
7339 #[prost(message, optional, tag="14")]
7341 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
7342 #[prost(bool, tag="15")]
7344 pub wait_until_answered: bool,
7345}
7346#[allow(clippy::derive_partial_eq_without_eq)]
7347#[derive(Clone, PartialEq, ::prost::Message)]
7348pub struct AcceptWhatsAppCallResponse {
7349 #[prost(string, tag="1")]
7351 pub room_name: ::prost::alloc::string::String,
7352}
7353#[allow(clippy::derive_partial_eq_without_eq)]
7354#[derive(Clone, PartialEq, ::prost::Message)]
7355pub struct WhatsAppCall {
7356 #[prost(string, tag="1")]
7358 pub whatsapp_call_id: ::prost::alloc::string::String,
7359 #[prost(enumeration="WhatsAppCallDirection", tag="2")]
7361 pub direction: i32,
7362}
7363#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7364#[repr(i32)]
7365pub enum WhatsAppCallDirection {
7366 WhatsappCallDirectionInbound = 0,
7367 WhatsappCallDirectionOutbound = 2,
7368}
7369impl WhatsAppCallDirection {
7370 pub fn as_str_name(&self) -> &'static str {
7375 match self {
7376 WhatsAppCallDirection::WhatsappCallDirectionInbound => "WHATSAPP_CALL_DIRECTION_INBOUND",
7377 WhatsAppCallDirection::WhatsappCallDirectionOutbound => "WHATSAPP_CALL_DIRECTION_OUTBOUND",
7378 }
7379 }
7380 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7382 match value {
7383 "WHATSAPP_CALL_DIRECTION_INBOUND" => Some(Self::WhatsappCallDirectionInbound),
7384 "WHATSAPP_CALL_DIRECTION_OUTBOUND" => Some(Self::WhatsappCallDirectionOutbound),
7385 _ => None,
7386 }
7387 }
7388}
7389#[allow(clippy::derive_partial_eq_without_eq)]
7390#[derive(Clone, PartialEq, ::prost::Message)]
7391pub struct ConnectTwilioCallRequest {
7392 #[prost(enumeration="connect_twilio_call_request::TwilioCallDirection", tag="1")]
7394 pub twilio_call_direction: i32,
7395 #[prost(string, tag="2")]
7397 pub room_name: ::prost::alloc::string::String,
7398 #[prost(message, repeated, tag="3")]
7400 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7401 #[prost(string, tag="4")]
7404 pub participant_identity: ::prost::alloc::string::String,
7405 #[prost(string, tag="5")]
7407 pub participant_name: ::prost::alloc::string::String,
7408 #[prost(string, tag="6")]
7410 pub participant_metadata: ::prost::alloc::string::String,
7411 #[prost(map="string, string", tag="7")]
7413 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7414 #[prost(string, tag="8")]
7416 pub destination_country: ::prost::alloc::string::String,
7417}
7418pub mod connect_twilio_call_request {
7420 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7421 #[repr(i32)]
7422 pub enum TwilioCallDirection {
7423 Inbound = 0,
7425 Outbound = 1,
7427 }
7428 impl TwilioCallDirection {
7429 pub fn as_str_name(&self) -> &'static str {
7434 match self {
7435 TwilioCallDirection::Inbound => "TWILIO_CALL_DIRECTION_INBOUND",
7436 TwilioCallDirection::Outbound => "TWILIO_CALL_DIRECTION_OUTBOUND",
7437 }
7438 }
7439 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7441 match value {
7442 "TWILIO_CALL_DIRECTION_INBOUND" => Some(Self::Inbound),
7443 "TWILIO_CALL_DIRECTION_OUTBOUND" => Some(Self::Outbound),
7444 _ => None,
7445 }
7446 }
7447 }
7448}
7449#[allow(clippy::derive_partial_eq_without_eq)]
7450#[derive(Clone, PartialEq, ::prost::Message)]
7451pub struct ConnectTwilioCallResponse {
7452 #[prost(string, tag="1")]
7454 pub connect_url: ::prost::alloc::string::String,
7455}
7456#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7457#[repr(i32)]
7458pub enum ConnectorType {
7459 Unspecified = 0,
7460 WhatsApp = 1,
7461 Twilio = 2,
7462}
7463impl ConnectorType {
7464 pub fn as_str_name(&self) -> &'static str {
7469 match self {
7470 ConnectorType::Unspecified => "Unspecified",
7471 ConnectorType::WhatsApp => "WhatsApp",
7472 ConnectorType::Twilio => "Twilio",
7473 }
7474 }
7475 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7477 match value {
7478 "Unspecified" => Some(Self::Unspecified),
7479 "WhatsApp" => Some(Self::WhatsApp),
7480 "Twilio" => Some(Self::Twilio),
7481 _ => None,
7482 }
7483 }
7484}
7485include!("livekit.serde.rs");
7486