1#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct MetricsBatch {
5 #[prost(int64, tag = "1")]
7 pub timestamp_ms: i64,
8 #[prost(message, optional, tag = "2")]
9 pub normalized_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
10 #[prost(string, repeated, tag = "3")]
17 pub str_data: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
18 #[prost(message, repeated, tag = "4")]
19 pub time_series: ::prost::alloc::vec::Vec<TimeSeriesMetric>,
20 #[prost(message, repeated, tag = "5")]
21 pub events: ::prost::alloc::vec::Vec<EventMetric>,
22}
23#[derive(Clone, PartialEq, ::prost::Message)]
24pub struct TimeSeriesMetric {
25 #[prost(uint32, tag = "1")]
28 pub label: u32,
29 #[prost(uint32, tag = "2")]
31 pub participant_identity: u32,
32 #[prost(uint32, tag = "3")]
34 pub track_sid: u32,
35 #[prost(message, repeated, tag = "4")]
36 pub samples: ::prost::alloc::vec::Vec<MetricSample>,
37 #[prost(uint32, tag = "5")]
39 pub rid: u32,
40}
41#[derive(Clone, Copy, PartialEq, ::prost::Message)]
42pub struct MetricSample {
43 #[prost(int64, tag = "1")]
45 pub timestamp_ms: i64,
46 #[prost(message, optional, tag = "2")]
47 pub normalized_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
48 #[prost(float, tag = "3")]
49 pub value: f32,
50}
51#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
52pub struct EventMetric {
53 #[prost(uint32, tag = "1")]
54 pub label: u32,
55 #[prost(uint32, tag = "2")]
57 pub participant_identity: u32,
58 #[prost(uint32, tag = "3")]
60 pub track_sid: u32,
61 #[prost(int64, tag = "4")]
63 pub start_timestamp_ms: i64,
64 #[prost(int64, optional, tag = "5")]
66 pub end_timestamp_ms: ::core::option::Option<i64>,
67 #[prost(message, optional, tag = "6")]
68 pub normalized_start_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
69 #[prost(message, optional, tag = "7")]
70 pub normalized_end_timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
71 #[prost(string, tag = "8")]
72 pub metadata: ::prost::alloc::string::String,
73 #[prost(uint32, tag = "9")]
75 pub rid: u32,
76}
77#[derive(Clone, PartialEq, ::prost::Message)]
78pub struct MetricsRecordingHeader {
79 #[prost(string, tag = "1")]
80 pub room_id: ::prost::alloc::string::String,
81 #[prost(uint64, tag = "3")]
83 pub duration: u64,
84 #[prost(message, optional, tag = "4")]
85 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
86 #[prost(map = "string, string", tag = "5")]
87 pub room_tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
88 #[prost(string, tag = "6")]
89 pub room_name: ::prost::alloc::string::String,
90 #[prost(message, optional, tag = "7")]
91 pub room_start_time: ::core::option::Option<::pbjson_types::Timestamp>,
92 #[prost(string, tag = "8")]
93 pub job_id: ::prost::alloc::string::String,
94 #[prost(bool, tag = "9")]
96 pub simulated: bool,
97 #[prost(bool, tag = "10")]
99 pub redaction_enabled: bool,
100}
101#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
111#[repr(i32)]
112pub enum MetricLabel {
113 AgentsLlmTtft = 0,
115 AgentsSttTtft = 1,
117 AgentsTtsTtfb = 2,
119 ClientVideoSubscriberFreezeCount = 3,
121 ClientVideoSubscriberTotalFreezeDuration = 4,
123 ClientVideoSubscriberPauseCount = 5,
125 ClientVideoSubscriberTotalPausesDuration = 6,
127 ClientAudioSubscriberConcealedSamples = 7,
129 ClientAudioSubscriberSilentConcealedSamples = 8,
131 ClientAudioSubscriberConcealmentEvents = 9,
133 ClientAudioSubscriberInterruptionCount = 10,
135 ClientAudioSubscriberTotalInterruptionDuration = 11,
137 ClientSubscriberJitterBufferDelay = 12,
139 ClientSubscriberJitterBufferEmittedCount = 13,
141 ClientVideoPublisherQualityLimitationDurationBandwidth = 14,
143 ClientVideoPublisherQualityLimitationDurationCpu = 15,
145 ClientVideoPublisherQualityLimitationDurationOther = 16,
147 PublisherRtt = 17,
149 ServerMeshRtt = 18,
151 SubscriberRtt = 19,
153 PredefinedMaxValue = 4096,
154}
155impl MetricLabel {
156 pub fn as_str_name(&self) -> &'static str {
161 match self {
162 Self::AgentsLlmTtft => "AGENTS_LLM_TTFT",
163 Self::AgentsSttTtft => "AGENTS_STT_TTFT",
164 Self::AgentsTtsTtfb => "AGENTS_TTS_TTFB",
165 Self::ClientVideoSubscriberFreezeCount => "CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT",
166 Self::ClientVideoSubscriberTotalFreezeDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION",
167 Self::ClientVideoSubscriberPauseCount => "CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT",
168 Self::ClientVideoSubscriberTotalPausesDuration => "CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION",
169 Self::ClientAudioSubscriberConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES",
170 Self::ClientAudioSubscriberSilentConcealedSamples => "CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES",
171 Self::ClientAudioSubscriberConcealmentEvents => "CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS",
172 Self::ClientAudioSubscriberInterruptionCount => "CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT",
173 Self::ClientAudioSubscriberTotalInterruptionDuration => "CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION",
174 Self::ClientSubscriberJitterBufferDelay => "CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY",
175 Self::ClientSubscriberJitterBufferEmittedCount => "CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT",
176 Self::ClientVideoPublisherQualityLimitationDurationBandwidth => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH",
177 Self::ClientVideoPublisherQualityLimitationDurationCpu => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU",
178 Self::ClientVideoPublisherQualityLimitationDurationOther => "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER",
179 Self::PublisherRtt => "PUBLISHER_RTT",
180 Self::ServerMeshRtt => "SERVER_MESH_RTT",
181 Self::SubscriberRtt => "SUBSCRIBER_RTT",
182 Self::PredefinedMaxValue => "METRIC_LABEL_PREDEFINED_MAX_VALUE",
183 }
184 }
185 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
187 match value {
188 "AGENTS_LLM_TTFT" => Some(Self::AgentsLlmTtft),
189 "AGENTS_STT_TTFT" => Some(Self::AgentsSttTtft),
190 "AGENTS_TTS_TTFB" => Some(Self::AgentsTtsTtfb),
191 "CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT" => Some(Self::ClientVideoSubscriberFreezeCount),
192 "CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION" => Some(Self::ClientVideoSubscriberTotalFreezeDuration),
193 "CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT" => Some(Self::ClientVideoSubscriberPauseCount),
194 "CLIENT_VIDEO_SUBSCRIBER_TOTAL_PAUSES_DURATION" => Some(Self::ClientVideoSubscriberTotalPausesDuration),
195 "CLIENT_AUDIO_SUBSCRIBER_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberConcealedSamples),
196 "CLIENT_AUDIO_SUBSCRIBER_SILENT_CONCEALED_SAMPLES" => Some(Self::ClientAudioSubscriberSilentConcealedSamples),
197 "CLIENT_AUDIO_SUBSCRIBER_CONCEALMENT_EVENTS" => Some(Self::ClientAudioSubscriberConcealmentEvents),
198 "CLIENT_AUDIO_SUBSCRIBER_INTERRUPTION_COUNT" => Some(Self::ClientAudioSubscriberInterruptionCount),
199 "CLIENT_AUDIO_SUBSCRIBER_TOTAL_INTERRUPTION_DURATION" => Some(Self::ClientAudioSubscriberTotalInterruptionDuration),
200 "CLIENT_SUBSCRIBER_JITTER_BUFFER_DELAY" => Some(Self::ClientSubscriberJitterBufferDelay),
201 "CLIENT_SUBSCRIBER_JITTER_BUFFER_EMITTED_COUNT" => Some(Self::ClientSubscriberJitterBufferEmittedCount),
202 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH" => Some(Self::ClientVideoPublisherQualityLimitationDurationBandwidth),
203 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU" => Some(Self::ClientVideoPublisherQualityLimitationDurationCpu),
204 "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER" => Some(Self::ClientVideoPublisherQualityLimitationDurationOther),
205 "PUBLISHER_RTT" => Some(Self::PublisherRtt),
206 "SERVER_MESH_RTT" => Some(Self::ServerMeshRtt),
207 "SUBSCRIBER_RTT" => Some(Self::SubscriberRtt),
208 "METRIC_LABEL_PREDEFINED_MAX_VALUE" => Some(Self::PredefinedMaxValue),
209 _ => None,
210 }
211 }
212}
213#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
214pub struct Pagination {
215 #[prost(string, tag = "1")]
217 pub after_id: ::prost::alloc::string::String,
218 #[prost(int32, tag = "2")]
219 pub limit: i32,
220}
221#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
222pub struct TokenPagination {
223 #[prost(string, tag = "1")]
224 pub token: ::prost::alloc::string::String,
225}
226#[derive(Clone, PartialEq, Eq, Hash, ::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#[derive(Clone, PartialEq, ::prost::Message)]
243pub struct Room {
244 #[prost(string, tag = "1")]
245 pub sid: ::prost::alloc::string::String,
246 #[prost(string, tag = "2")]
247 pub name: ::prost::alloc::string::String,
248 #[prost(uint32, tag = "3")]
249 pub empty_timeout: u32,
250 #[prost(uint32, tag = "14")]
251 pub departure_timeout: u32,
252 #[prost(uint32, tag = "4")]
253 pub max_participants: u32,
254 #[prost(int64, tag = "5")]
255 pub creation_time: i64,
256 #[prost(int64, tag = "15")]
257 pub creation_time_ms: i64,
258 #[prost(string, tag = "6")]
259 pub turn_password: ::prost::alloc::string::String,
260 #[prost(message, repeated, tag = "7")]
261 pub enabled_codecs: ::prost::alloc::vec::Vec<Codec>,
262 #[prost(string, tag = "8")]
263 pub metadata: ::prost::alloc::string::String,
264 #[prost(uint32, tag = "9")]
265 pub num_participants: u32,
266 #[prost(uint32, tag = "11")]
267 pub num_publishers: u32,
268 #[prost(bool, tag = "10")]
269 pub active_recording: bool,
270 #[prost(message, optional, tag = "13")]
271 pub version: ::core::option::Option<TimedVersion>,
272}
273#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
274pub struct Codec {
275 #[prost(string, tag = "1")]
276 pub mime: ::prost::alloc::string::String,
277 #[prost(string, tag = "2")]
278 pub fmtp_line: ::prost::alloc::string::String,
279}
280#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
281pub struct PlayoutDelay {
282 #[prost(bool, tag = "1")]
283 pub enabled: bool,
284 #[prost(uint32, tag = "2")]
285 pub min: u32,
286 #[prost(uint32, tag = "3")]
287 pub max: u32,
288}
289#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
290pub struct ParticipantPermission {
291 #[prost(bool, tag = "1")]
293 pub can_subscribe: bool,
294 #[prost(bool, tag = "2")]
296 pub can_publish: bool,
297 #[prost(bool, tag = "3")]
299 pub can_publish_data: bool,
300 #[prost(enumeration = "TrackSource", repeated, tag = "9")]
302 pub can_publish_sources: ::prost::alloc::vec::Vec<i32>,
303 #[prost(bool, tag = "7")]
305 pub hidden: bool,
306 #[deprecated]
309 #[prost(bool, tag = "8")]
310 pub recorder: bool,
311 #[prost(bool, tag = "10")]
313 pub can_update_metadata: bool,
314 #[deprecated]
317 #[prost(bool, tag = "11")]
318 pub agent: bool,
319 #[prost(bool, tag = "12")]
321 pub can_subscribe_metrics: bool,
322 #[prost(bool, tag = "13")]
324 pub can_manage_agent_session: bool,
325}
326#[derive(Clone, PartialEq, ::prost::Message)]
327pub struct ParticipantInfo {
328 #[prost(string, tag = "1")]
329 pub sid: ::prost::alloc::string::String,
330 #[prost(string, tag = "2")]
331 pub identity: ::prost::alloc::string::String,
332 #[prost(enumeration = "participant_info::State", tag = "3")]
333 pub state: i32,
334 #[prost(message, repeated, tag = "4")]
335 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
336 #[prost(string, tag = "5")]
337 pub metadata: ::prost::alloc::string::String,
338 #[prost(int64, tag = "6")]
340 pub joined_at: i64,
341 #[prost(int64, tag = "17")]
343 pub joined_at_ms: i64,
344 #[prost(string, tag = "9")]
345 pub name: ::prost::alloc::string::String,
346 #[prost(uint32, tag = "10")]
347 pub version: u32,
348 #[prost(message, optional, tag = "11")]
349 pub permission: ::core::option::Option<ParticipantPermission>,
350 #[prost(string, tag = "12")]
351 pub region: ::prost::alloc::string::String,
352 #[prost(bool, tag = "13")]
355 pub is_publisher: bool,
356 #[prost(enumeration = "participant_info::Kind", tag = "14")]
357 pub kind: i32,
358 #[prost(map = "string, string", tag = "15")]
359 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
360 #[prost(enumeration = "DisconnectReason", tag = "16")]
361 pub disconnect_reason: i32,
362 #[prost(enumeration = "participant_info::KindDetail", repeated, tag = "18")]
363 pub kind_details: ::prost::alloc::vec::Vec<i32>,
364 #[prost(message, repeated, tag = "19")]
365 pub data_tracks: ::prost::alloc::vec::Vec<DataTrackInfo>,
366 #[prost(int32, tag = "20")]
368 pub client_protocol: i32,
369 #[prost(enumeration = "client_info::Capability", repeated, tag = "21")]
372 pub capabilities: ::prost::alloc::vec::Vec<i32>,
373}
374pub mod participant_info {
376 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
377 #[repr(i32)]
378 pub enum State {
379 Joining = 0,
381 Joined = 1,
383 Active = 2,
385 Disconnected = 3,
387 }
388 impl State {
389 pub fn as_str_name(&self) -> &'static str {
394 match self {
395 Self::Joining => "JOINING",
396 Self::Joined => "JOINED",
397 Self::Active => "ACTIVE",
398 Self::Disconnected => "DISCONNECTED",
399 }
400 }
401 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
403 match value {
404 "JOINING" => Some(Self::Joining),
405 "JOINED" => Some(Self::Joined),
406 "ACTIVE" => Some(Self::Active),
407 "DISCONNECTED" => Some(Self::Disconnected),
408 _ => None,
409 }
410 }
411 }
412 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
413 #[repr(i32)]
414 pub enum Kind {
415 Standard = 0,
417 Ingress = 1,
419 Egress = 2,
421 Sip = 3,
423 Agent = 4,
425 Connector = 7,
427 Bridge = 8,
431 }
432 impl Kind {
433 pub fn as_str_name(&self) -> &'static str {
438 match self {
439 Self::Standard => "STANDARD",
440 Self::Ingress => "INGRESS",
441 Self::Egress => "EGRESS",
442 Self::Sip => "SIP",
443 Self::Agent => "AGENT",
444 Self::Connector => "CONNECTOR",
445 Self::Bridge => "BRIDGE",
446 }
447 }
448 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
450 match value {
451 "STANDARD" => Some(Self::Standard),
452 "INGRESS" => Some(Self::Ingress),
453 "EGRESS" => Some(Self::Egress),
454 "SIP" => Some(Self::Sip),
455 "AGENT" => Some(Self::Agent),
456 "CONNECTOR" => Some(Self::Connector),
457 "BRIDGE" => Some(Self::Bridge),
458 _ => None,
459 }
460 }
461 }
462 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
463 #[repr(i32)]
464 pub enum KindDetail {
465 CloudAgent = 0,
466 Forwarded = 1,
467 ConnectorWhatsapp = 2,
468 ConnectorTwilio = 3,
469 BridgeRtsp = 4,
470 Simulation = 5,
472 }
473 impl KindDetail {
474 pub fn as_str_name(&self) -> &'static str {
479 match self {
480 Self::CloudAgent => "CLOUD_AGENT",
481 Self::Forwarded => "FORWARDED",
482 Self::ConnectorWhatsapp => "CONNECTOR_WHATSAPP",
483 Self::ConnectorTwilio => "CONNECTOR_TWILIO",
484 Self::BridgeRtsp => "BRIDGE_RTSP",
485 Self::Simulation => "SIMULATION",
486 }
487 }
488 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
490 match value {
491 "CLOUD_AGENT" => Some(Self::CloudAgent),
492 "FORWARDED" => Some(Self::Forwarded),
493 "CONNECTOR_WHATSAPP" => Some(Self::ConnectorWhatsapp),
494 "CONNECTOR_TWILIO" => Some(Self::ConnectorTwilio),
495 "BRIDGE_RTSP" => Some(Self::BridgeRtsp),
496 "SIMULATION" => Some(Self::Simulation),
497 _ => None,
498 }
499 }
500 }
501}
502#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
503pub struct Encryption {
504}
505pub mod encryption {
507 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
508 #[repr(i32)]
509 pub enum Type {
510 None = 0,
511 Gcm = 1,
512 Custom = 2,
513 }
514 impl Type {
515 pub fn as_str_name(&self) -> &'static str {
520 match self {
521 Self::None => "NONE",
522 Self::Gcm => "GCM",
523 Self::Custom => "CUSTOM",
524 }
525 }
526 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
528 match value {
529 "NONE" => Some(Self::None),
530 "GCM" => Some(Self::Gcm),
531 "CUSTOM" => Some(Self::Custom),
532 _ => None,
533 }
534 }
535 }
536}
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#[derive(Clone, PartialEq, ::prost::Message)]
557pub struct TrackInfo {
558 #[prost(string, tag = "1")]
559 pub sid: ::prost::alloc::string::String,
560 #[prost(enumeration = "TrackType", tag = "2")]
561 pub r#type: i32,
562 #[prost(string, tag = "3")]
563 pub name: ::prost::alloc::string::String,
564 #[prost(bool, tag = "4")]
565 pub muted: bool,
566 #[prost(uint32, tag = "5")]
569 pub width: u32,
570 #[prost(uint32, tag = "6")]
572 pub height: u32,
573 #[deprecated]
577 #[prost(bool, tag = "7")]
578 pub simulcast: bool,
579 #[deprecated]
583 #[prost(bool, tag = "8")]
584 pub disable_dtx: bool,
585 #[prost(enumeration = "TrackSource", tag = "9")]
587 pub source: i32,
588 #[deprecated]
590 #[prost(message, repeated, tag = "10")]
591 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
592 #[prost(string, tag = "11")]
594 pub mime_type: ::prost::alloc::string::String,
595 #[prost(string, tag = "12")]
596 pub mid: ::prost::alloc::string::String,
597 #[prost(message, repeated, tag = "13")]
598 pub codecs: ::prost::alloc::vec::Vec<SimulcastCodecInfo>,
599 #[deprecated]
601 #[prost(bool, tag = "14")]
602 pub stereo: bool,
603 #[prost(bool, tag = "15")]
605 pub disable_red: bool,
606 #[prost(enumeration = "encryption::Type", tag = "16")]
607 pub encryption: i32,
608 #[prost(string, tag = "17")]
609 pub stream: ::prost::alloc::string::String,
610 #[prost(message, optional, tag = "18")]
611 pub version: ::core::option::Option<TimedVersion>,
612 #[prost(enumeration = "AudioTrackFeature", repeated, tag = "19")]
613 pub audio_features: ::prost::alloc::vec::Vec<i32>,
614 #[prost(enumeration = "BackupCodecPolicy", tag = "20")]
615 pub backup_codec_policy: i32,
616 #[prost(enumeration = "PacketTrailerFeature", repeated, tag = "21")]
617 pub packet_trailer_features: ::prost::alloc::vec::Vec<i32>,
618}
619#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
620pub struct DataTrackInfo {
621 #[prost(uint32, tag = "1")]
623 pub pub_handle: u32,
624 #[prost(string, tag = "2")]
626 pub sid: ::prost::alloc::string::String,
627 #[prost(string, tag = "3")]
629 pub name: ::prost::alloc::string::String,
630 #[prost(enumeration = "encryption::Type", tag = "4")]
632 pub encryption: i32,
633 #[prost(message, optional, tag = "5")]
635 pub frame_encoding: ::core::option::Option<DataTrackFrameEncoding>,
636 #[prost(message, optional, tag = "6")]
638 pub schema: ::core::option::Option<DataTrackSchemaId>,
639}
640#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
642pub struct DataTrackFrameEncoding {
643 #[prost(oneof = "data_track_frame_encoding::Value", tags = "1, 2")]
644 pub value: ::core::option::Option<data_track_frame_encoding::Value>,
645}
646pub mod data_track_frame_encoding {
648 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
654 #[repr(i32)]
655 pub enum WellKnownFrameEncoding {
656 Unspecified = 0,
657 Ros1 = 1,
659 Cdr = 2,
661 Protobuf = 3,
663 Flatbuffer = 4,
665 Cbor = 5,
667 Msgpack = 6,
669 Json = 7,
671 }
672 impl WellKnownFrameEncoding {
673 pub fn as_str_name(&self) -> &'static str {
678 match self {
679 Self::Unspecified => "WELL_KNOWN_FRAME_ENCODING_UNSPECIFIED",
680 Self::Ros1 => "WELL_KNOWN_FRAME_ENCODING_ROS1",
681 Self::Cdr => "WELL_KNOWN_FRAME_ENCODING_CDR",
682 Self::Protobuf => "WELL_KNOWN_FRAME_ENCODING_PROTOBUF",
683 Self::Flatbuffer => "WELL_KNOWN_FRAME_ENCODING_FLATBUFFER",
684 Self::Cbor => "WELL_KNOWN_FRAME_ENCODING_CBOR",
685 Self::Msgpack => "WELL_KNOWN_FRAME_ENCODING_MSGPACK",
686 Self::Json => "WELL_KNOWN_FRAME_ENCODING_JSON",
687 }
688 }
689 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
691 match value {
692 "WELL_KNOWN_FRAME_ENCODING_UNSPECIFIED" => Some(Self::Unspecified),
693 "WELL_KNOWN_FRAME_ENCODING_ROS1" => Some(Self::Ros1),
694 "WELL_KNOWN_FRAME_ENCODING_CDR" => Some(Self::Cdr),
695 "WELL_KNOWN_FRAME_ENCODING_PROTOBUF" => Some(Self::Protobuf),
696 "WELL_KNOWN_FRAME_ENCODING_FLATBUFFER" => Some(Self::Flatbuffer),
697 "WELL_KNOWN_FRAME_ENCODING_CBOR" => Some(Self::Cbor),
698 "WELL_KNOWN_FRAME_ENCODING_MSGPACK" => Some(Self::Msgpack),
699 "WELL_KNOWN_FRAME_ENCODING_JSON" => Some(Self::Json),
700 _ => None,
701 }
702 }
703 }
704 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
705 pub enum Value {
706 #[prost(enumeration = "WellKnownFrameEncoding", tag = "1")]
707 WellKnown(i32),
708 #[prost(string, tag = "2")]
711 Custom(::prost::alloc::string::String),
712 }
713}
714#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
716pub struct DataTrackSchemaEncoding {
717 #[prost(oneof = "data_track_schema_encoding::Value", tags = "1, 2")]
718 pub value: ::core::option::Option<data_track_schema_encoding::Value>,
719}
720pub mod data_track_schema_encoding {
722 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
728 #[repr(i32)]
729 pub enum WellKnownSchemaEncoding {
730 Unspecified = 0,
731 Protobuf = 1,
733 Flatbuffer = 2,
735 Ros1Msg = 3,
737 Ros2Msg = 4,
739 Ros2Idl = 5,
741 OmgIdl = 6,
743 JsonSchema = 7,
745 }
746 impl WellKnownSchemaEncoding {
747 pub fn as_str_name(&self) -> &'static str {
752 match self {
753 Self::Unspecified => "WELL_KNOWN_SCHEMA_ENCODING_UNSPECIFIED",
754 Self::Protobuf => "WELL_KNOWN_SCHEMA_ENCODING_PROTOBUF",
755 Self::Flatbuffer => "WELL_KNOWN_SCHEMA_ENCODING_FLATBUFFER",
756 Self::Ros1Msg => "WELL_KNOWN_SCHEMA_ENCODING_ROS1_MSG",
757 Self::Ros2Msg => "WELL_KNOWN_SCHEMA_ENCODING_ROS2_MSG",
758 Self::Ros2Idl => "WELL_KNOWN_SCHEMA_ENCODING_ROS2_IDL",
759 Self::OmgIdl => "WELL_KNOWN_SCHEMA_ENCODING_OMG_IDL",
760 Self::JsonSchema => "WELL_KNOWN_SCHEMA_ENCODING_JSON_SCHEMA",
761 }
762 }
763 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
765 match value {
766 "WELL_KNOWN_SCHEMA_ENCODING_UNSPECIFIED" => Some(Self::Unspecified),
767 "WELL_KNOWN_SCHEMA_ENCODING_PROTOBUF" => Some(Self::Protobuf),
768 "WELL_KNOWN_SCHEMA_ENCODING_FLATBUFFER" => Some(Self::Flatbuffer),
769 "WELL_KNOWN_SCHEMA_ENCODING_ROS1_MSG" => Some(Self::Ros1Msg),
770 "WELL_KNOWN_SCHEMA_ENCODING_ROS2_MSG" => Some(Self::Ros2Msg),
771 "WELL_KNOWN_SCHEMA_ENCODING_ROS2_IDL" => Some(Self::Ros2Idl),
772 "WELL_KNOWN_SCHEMA_ENCODING_OMG_IDL" => Some(Self::OmgIdl),
773 "WELL_KNOWN_SCHEMA_ENCODING_JSON_SCHEMA" => Some(Self::JsonSchema),
774 _ => None,
775 }
776 }
777 }
778 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
779 pub enum Value {
780 #[prost(enumeration = "WellKnownSchemaEncoding", tag = "1")]
781 WellKnown(i32),
782 #[prost(string, tag = "2")]
785 Custom(::prost::alloc::string::String),
786 }
787}
788#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
793pub struct DataTrackSchemaId {
794 #[prost(string, tag = "1")]
796 pub name: ::prost::alloc::string::String,
797 #[prost(message, optional, tag = "2")]
798 pub encoding: ::core::option::Option<DataTrackSchemaEncoding>,
799}
800#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
801pub struct DataTrackExtensionParticipantSid {
802 #[prost(enumeration = "DataTrackExtensionId", tag = "1")]
803 pub id: i32,
804 #[prost(string, tag = "2")]
805 pub participant_sid: ::prost::alloc::string::String,
806}
807#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
808pub struct DataTrackSubscriptionOptions {
809 #[prost(uint32, optional, tag = "1")]
812 pub target_fps: ::core::option::Option<u32>,
813}
814#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
816pub struct DataBlobKey {
817 #[prost(oneof = "data_blob_key::Key", tags = "1, 2")]
818 pub key: ::core::option::Option<data_blob_key::Key>,
819}
820pub mod data_blob_key {
822 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
823 pub enum Key {
824 #[prost(string, tag = "1")]
826 Generic(::prost::alloc::string::String),
827 #[prost(message, tag = "2")]
829 SchemaId(super::DataTrackSchemaId),
830 }
831}
832#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
834pub struct DataBlob {
835 #[prost(message, optional, tag = "1")]
837 pub key: ::core::option::Option<DataBlobKey>,
838 #[prost(bytes = "vec", tag = "2")]
840 pub contents: ::prost::alloc::vec::Vec<u8>,
841}
842#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
844pub struct VideoLayer {
845 #[prost(enumeration = "VideoQuality", tag = "1")]
847 pub quality: i32,
848 #[prost(uint32, tag = "2")]
849 pub width: u32,
850 #[prost(uint32, tag = "3")]
851 pub height: u32,
852 #[prost(uint32, tag = "4")]
854 pub bitrate: u32,
855 #[prost(uint32, tag = "5")]
856 pub ssrc: u32,
857 #[prost(int32, tag = "6")]
858 pub spatial_layer: i32,
859 #[prost(string, tag = "7")]
860 pub rid: ::prost::alloc::string::String,
861 #[prost(uint32, tag = "8")]
862 pub repair_ssrc: u32,
863}
864pub mod video_layer {
866 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
867 #[repr(i32)]
868 pub enum Mode {
869 Unused = 0,
870 OneSpatialLayerPerStream = 1,
871 MultipleSpatialLayersPerStream = 2,
872 OneSpatialLayerPerStreamIncompleteRtcpSr = 3,
873 }
874 impl Mode {
875 pub fn as_str_name(&self) -> &'static str {
880 match self {
881 Self::Unused => "MODE_UNUSED",
882 Self::OneSpatialLayerPerStream => "ONE_SPATIAL_LAYER_PER_STREAM",
883 Self::MultipleSpatialLayersPerStream => "MULTIPLE_SPATIAL_LAYERS_PER_STREAM",
884 Self::OneSpatialLayerPerStreamIncompleteRtcpSr => "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR",
885 }
886 }
887 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
889 match value {
890 "MODE_UNUSED" => Some(Self::Unused),
891 "ONE_SPATIAL_LAYER_PER_STREAM" => Some(Self::OneSpatialLayerPerStream),
892 "MULTIPLE_SPATIAL_LAYERS_PER_STREAM" => Some(Self::MultipleSpatialLayersPerStream),
893 "ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR" => Some(Self::OneSpatialLayerPerStreamIncompleteRtcpSr),
894 _ => None,
895 }
896 }
897 }
898}
899#[derive(Clone, PartialEq, ::prost::Message)]
901pub struct DataPacket {
902 #[deprecated]
903 #[prost(enumeration = "data_packet::Kind", tag = "1")]
904 pub kind: i32,
905 #[prost(string, tag = "4")]
907 pub participant_identity: ::prost::alloc::string::String,
908 #[prost(string, repeated, tag = "5")]
910 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
911 #[prost(uint32, tag = "16")]
913 pub sequence: u32,
914 #[prost(string, tag = "17")]
916 pub participant_sid: ::prost::alloc::string::String,
917 #[prost(oneof = "data_packet::Value", tags = "2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18")]
918 pub value: ::core::option::Option<data_packet::Value>,
919}
920pub mod data_packet {
922 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
923 #[repr(i32)]
924 pub enum Kind {
925 Reliable = 0,
926 Lossy = 1,
927 }
928 impl Kind {
929 pub fn as_str_name(&self) -> &'static str {
934 match self {
935 Self::Reliable => "RELIABLE",
936 Self::Lossy => "LOSSY",
937 }
938 }
939 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
941 match value {
942 "RELIABLE" => Some(Self::Reliable),
943 "LOSSY" => Some(Self::Lossy),
944 _ => None,
945 }
946 }
947 }
948 #[derive(Clone, PartialEq, ::prost::Oneof)]
949 pub enum Value {
950 #[prost(message, tag = "2")]
951 User(super::UserPacket),
952 #[deprecated]
953 #[prost(message, tag = "3")]
954 Speaker(super::ActiveSpeakerUpdate),
955 #[prost(message, tag = "6")]
956 SipDtmf(super::SipDtmf),
957 #[prost(message, tag = "7")]
958 Transcription(super::Transcription),
959 #[prost(message, tag = "8")]
960 Metrics(super::MetricsBatch),
961 #[prost(message, tag = "9")]
962 ChatMessage(super::ChatMessage),
963 #[prost(message, tag = "10")]
964 RpcRequest(super::RpcRequest),
965 #[prost(message, tag = "11")]
966 RpcAck(super::RpcAck),
967 #[prost(message, tag = "12")]
968 RpcResponse(super::RpcResponse),
969 #[prost(message, tag = "13")]
970 StreamHeader(super::data_stream::Header),
971 #[prost(message, tag = "14")]
972 StreamChunk(super::data_stream::Chunk),
973 #[prost(message, tag = "15")]
974 StreamTrailer(super::data_stream::Trailer),
975 #[prost(message, tag = "18")]
976 EncryptedPacket(super::EncryptedPacket),
977 }
978}
979#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
980pub struct EncryptedPacket {
981 #[prost(enumeration = "encryption::Type", tag = "1")]
982 pub encryption_type: i32,
983 #[prost(bytes = "vec", tag = "2")]
984 pub iv: ::prost::alloc::vec::Vec<u8>,
985 #[prost(uint32, tag = "3")]
986 pub key_index: u32,
987 #[prost(bytes = "vec", tag = "4")]
989 pub encrypted_value: ::prost::alloc::vec::Vec<u8>,
990}
991#[derive(Clone, PartialEq, ::prost::Message)]
992pub struct EncryptedPacketPayload {
993 #[prost(oneof = "encrypted_packet_payload::Value", tags = "1, 3, 4, 5, 6, 7, 8, 9")]
994 pub value: ::core::option::Option<encrypted_packet_payload::Value>,
995}
996pub mod encrypted_packet_payload {
998 #[derive(Clone, PartialEq, ::prost::Oneof)]
999 pub enum Value {
1000 #[prost(message, tag = "1")]
1001 User(super::UserPacket),
1002 #[prost(message, tag = "3")]
1003 ChatMessage(super::ChatMessage),
1004 #[prost(message, tag = "4")]
1005 RpcRequest(super::RpcRequest),
1006 #[prost(message, tag = "5")]
1007 RpcAck(super::RpcAck),
1008 #[prost(message, tag = "6")]
1009 RpcResponse(super::RpcResponse),
1010 #[prost(message, tag = "7")]
1011 StreamHeader(super::data_stream::Header),
1012 #[prost(message, tag = "8")]
1013 StreamChunk(super::data_stream::Chunk),
1014 #[prost(message, tag = "9")]
1015 StreamTrailer(super::data_stream::Trailer),
1016 }
1017}
1018#[derive(Clone, PartialEq, ::prost::Message)]
1019pub struct ActiveSpeakerUpdate {
1020 #[prost(message, repeated, tag = "1")]
1021 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
1022}
1023#[derive(Clone, PartialEq, ::prost::Message)]
1024pub struct SpeakerInfo {
1025 #[prost(string, tag = "1")]
1026 pub sid: ::prost::alloc::string::String,
1027 #[prost(float, tag = "2")]
1029 pub level: f32,
1030 #[prost(bool, tag = "3")]
1032 pub active: bool,
1033}
1034#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1035pub struct UserPacket {
1036 #[deprecated]
1038 #[prost(string, tag = "1")]
1039 pub participant_sid: ::prost::alloc::string::String,
1040 #[deprecated]
1041 #[prost(string, tag = "5")]
1042 pub participant_identity: ::prost::alloc::string::String,
1043 #[prost(bytes = "vec", tag = "2")]
1045 pub payload: ::prost::alloc::vec::Vec<u8>,
1046 #[deprecated]
1048 #[prost(string, repeated, tag = "3")]
1049 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1050 #[deprecated]
1052 #[prost(string, repeated, tag = "6")]
1053 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1054 #[prost(string, optional, tag = "4")]
1056 pub topic: ::core::option::Option<::prost::alloc::string::String>,
1057 #[prost(string, optional, tag = "8")]
1059 pub id: ::core::option::Option<::prost::alloc::string::String>,
1060 #[prost(uint64, optional, tag = "9")]
1062 pub start_time: ::core::option::Option<u64>,
1063 #[prost(uint64, optional, tag = "10")]
1064 pub end_time: ::core::option::Option<u64>,
1065 #[prost(bytes = "vec", tag = "11")]
1067 pub nonce: ::prost::alloc::vec::Vec<u8>,
1068}
1069#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1070pub struct SipDtmf {
1071 #[prost(uint32, tag = "3")]
1072 pub code: u32,
1073 #[prost(string, tag = "4")]
1074 pub digit: ::prost::alloc::string::String,
1075}
1076#[derive(Clone, PartialEq, ::prost::Message)]
1077pub struct Transcription {
1078 #[prost(string, tag = "2")]
1080 pub transcribed_participant_identity: ::prost::alloc::string::String,
1081 #[prost(string, tag = "3")]
1082 pub track_id: ::prost::alloc::string::String,
1083 #[prost(message, repeated, tag = "4")]
1084 pub segments: ::prost::alloc::vec::Vec<TranscriptionSegment>,
1085}
1086#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1087pub struct TranscriptionSegment {
1088 #[prost(string, tag = "1")]
1089 pub id: ::prost::alloc::string::String,
1090 #[prost(string, tag = "2")]
1091 pub text: ::prost::alloc::string::String,
1092 #[prost(uint64, tag = "3")]
1093 pub start_time: u64,
1094 #[prost(uint64, tag = "4")]
1095 pub end_time: u64,
1096 #[prost(bool, tag = "5")]
1097 pub r#final: bool,
1098 #[prost(string, tag = "6")]
1099 pub language: ::prost::alloc::string::String,
1100}
1101#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1102pub struct ChatMessage {
1103 #[prost(string, tag = "1")]
1105 pub id: ::prost::alloc::string::String,
1106 #[prost(int64, tag = "2")]
1107 pub timestamp: i64,
1108 #[prost(int64, optional, tag = "3")]
1110 pub edit_timestamp: ::core::option::Option<i64>,
1111 #[prost(string, tag = "4")]
1112 pub message: ::prost::alloc::string::String,
1113 #[prost(bool, tag = "5")]
1115 pub deleted: bool,
1116 #[prost(bool, tag = "6")]
1118 pub generated: bool,
1119}
1120#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1121pub struct RpcRequest {
1122 #[prost(string, tag = "1")]
1123 pub id: ::prost::alloc::string::String,
1124 #[prost(string, tag = "2")]
1125 pub method: ::prost::alloc::string::String,
1126 #[prost(string, tag = "3")]
1127 pub payload: ::prost::alloc::string::String,
1128 #[prost(uint32, tag = "4")]
1129 pub response_timeout_ms: u32,
1130 #[prost(uint32, tag = "5")]
1131 pub version: u32,
1132 #[prost(bytes = "vec", tag = "6")]
1134 pub compressed_payload: ::prost::alloc::vec::Vec<u8>,
1135}
1136#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1137pub struct RpcAck {
1138 #[prost(string, tag = "1")]
1139 pub request_id: ::prost::alloc::string::String,
1140}
1141#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1142pub struct RpcResponse {
1143 #[prost(string, tag = "1")]
1144 pub request_id: ::prost::alloc::string::String,
1145 #[prost(oneof = "rpc_response::Value", tags = "2, 3, 4")]
1146 pub value: ::core::option::Option<rpc_response::Value>,
1147}
1148pub mod rpc_response {
1150 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
1151 pub enum Value {
1152 #[prost(string, tag = "2")]
1153 Payload(::prost::alloc::string::String),
1154 #[prost(message, tag = "3")]
1155 Error(super::RpcError),
1156 #[prost(bytes, tag = "4")]
1158 CompressedPayload(::prost::alloc::vec::Vec<u8>),
1159 }
1160}
1161#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1162pub struct RpcError {
1163 #[prost(uint32, tag = "1")]
1164 pub code: u32,
1165 #[prost(string, tag = "2")]
1166 pub message: ::prost::alloc::string::String,
1167 #[prost(string, tag = "3")]
1168 pub data: ::prost::alloc::string::String,
1169}
1170#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1171pub struct ParticipantTracks {
1172 #[prost(string, tag = "1")]
1174 pub participant_sid: ::prost::alloc::string::String,
1175 #[prost(string, repeated, tag = "2")]
1176 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1177}
1178#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1180pub struct ServerInfo {
1181 #[prost(enumeration = "server_info::Edition", tag = "1")]
1182 pub edition: i32,
1183 #[prost(string, tag = "2")]
1184 pub version: ::prost::alloc::string::String,
1185 #[prost(int32, tag = "3")]
1186 pub protocol: i32,
1187 #[prost(string, tag = "4")]
1188 pub region: ::prost::alloc::string::String,
1189 #[prost(string, tag = "5")]
1190 pub node_id: ::prost::alloc::string::String,
1191 #[prost(string, tag = "6")]
1193 pub debug_info: ::prost::alloc::string::String,
1194 #[prost(int32, tag = "7")]
1195 pub agent_protocol: i32,
1196}
1197pub mod server_info {
1199 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1200 #[repr(i32)]
1201 pub enum Edition {
1202 Standard = 0,
1203 Cloud = 1,
1204 }
1205 impl Edition {
1206 pub fn as_str_name(&self) -> &'static str {
1211 match self {
1212 Self::Standard => "Standard",
1213 Self::Cloud => "Cloud",
1214 }
1215 }
1216 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1218 match value {
1219 "Standard" => Some(Self::Standard),
1220 "Cloud" => Some(Self::Cloud),
1221 _ => None,
1222 }
1223 }
1224 }
1225}
1226#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1228pub struct ClientInfo {
1229 #[prost(enumeration = "client_info::Sdk", tag = "1")]
1230 pub sdk: i32,
1231 #[prost(string, tag = "2")]
1232 pub version: ::prost::alloc::string::String,
1233 #[prost(int32, tag = "3")]
1234 pub protocol: i32,
1235 #[prost(string, tag = "4")]
1236 pub os: ::prost::alloc::string::String,
1237 #[prost(string, tag = "5")]
1238 pub os_version: ::prost::alloc::string::String,
1239 #[prost(string, tag = "6")]
1240 pub device_model: ::prost::alloc::string::String,
1241 #[prost(string, tag = "7")]
1242 pub browser: ::prost::alloc::string::String,
1243 #[prost(string, tag = "8")]
1244 pub browser_version: ::prost::alloc::string::String,
1245 #[prost(string, tag = "9")]
1246 pub address: ::prost::alloc::string::String,
1247 #[prost(string, tag = "10")]
1249 pub network: ::prost::alloc::string::String,
1250 #[prost(string, tag = "11")]
1253 pub other_sdks: ::prost::alloc::string::String,
1254 #[prost(int32, tag = "12")]
1256 pub client_protocol: i32,
1257 #[prost(enumeration = "client_info::Capability", repeated, tag = "13")]
1260 pub capabilities: ::prost::alloc::vec::Vec<i32>,
1261}
1262pub mod client_info {
1264 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1265 #[repr(i32)]
1266 pub enum Sdk {
1267 Unknown = 0,
1268 Js = 1,
1269 Swift = 2,
1270 Android = 3,
1271 Flutter = 4,
1272 Go = 5,
1273 Unity = 6,
1274 ReactNative = 7,
1275 Rust = 8,
1276 Python = 9,
1277 Cpp = 10,
1278 UnityWeb = 11,
1279 Node = 12,
1280 Unreal = 13,
1281 Esp32 = 14,
1282 }
1283 impl Sdk {
1284 pub fn as_str_name(&self) -> &'static str {
1289 match self {
1290 Self::Unknown => "UNKNOWN",
1291 Self::Js => "JS",
1292 Self::Swift => "SWIFT",
1293 Self::Android => "ANDROID",
1294 Self::Flutter => "FLUTTER",
1295 Self::Go => "GO",
1296 Self::Unity => "UNITY",
1297 Self::ReactNative => "REACT_NATIVE",
1298 Self::Rust => "RUST",
1299 Self::Python => "PYTHON",
1300 Self::Cpp => "CPP",
1301 Self::UnityWeb => "UNITY_WEB",
1302 Self::Node => "NODE",
1303 Self::Unreal => "UNREAL",
1304 Self::Esp32 => "ESP32",
1305 }
1306 }
1307 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1309 match value {
1310 "UNKNOWN" => Some(Self::Unknown),
1311 "JS" => Some(Self::Js),
1312 "SWIFT" => Some(Self::Swift),
1313 "ANDROID" => Some(Self::Android),
1314 "FLUTTER" => Some(Self::Flutter),
1315 "GO" => Some(Self::Go),
1316 "UNITY" => Some(Self::Unity),
1317 "REACT_NATIVE" => Some(Self::ReactNative),
1318 "RUST" => Some(Self::Rust),
1319 "PYTHON" => Some(Self::Python),
1320 "CPP" => Some(Self::Cpp),
1321 "UNITY_WEB" => Some(Self::UnityWeb),
1322 "NODE" => Some(Self::Node),
1323 "UNREAL" => Some(Self::Unreal),
1324 "ESP32" => Some(Self::Esp32),
1325 _ => None,
1326 }
1327 }
1328 }
1329 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1334 #[repr(i32)]
1335 pub enum Capability {
1336 CapUnused = 0,
1337 CapPacketTrailer = 1,
1338 CapCompressionDeflateRaw = 2,
1339 }
1340 impl Capability {
1341 pub fn as_str_name(&self) -> &'static str {
1346 match self {
1347 Self::CapUnused => "CAP_UNUSED",
1348 Self::CapPacketTrailer => "CAP_PACKET_TRAILER",
1349 Self::CapCompressionDeflateRaw => "CAP_COMPRESSION_DEFLATE_RAW",
1350 }
1351 }
1352 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1354 match value {
1355 "CAP_UNUSED" => Some(Self::CapUnused),
1356 "CAP_PACKET_TRAILER" => Some(Self::CapPacketTrailer),
1357 "CAP_COMPRESSION_DEFLATE_RAW" => Some(Self::CapCompressionDeflateRaw),
1358 _ => None,
1359 }
1360 }
1361 }
1362}
1363#[derive(Clone, PartialEq, ::prost::Message)]
1365pub struct ClientConfiguration {
1366 #[prost(message, optional, tag = "1")]
1367 pub video: ::core::option::Option<VideoConfiguration>,
1368 #[prost(message, optional, tag = "2")]
1369 pub screen: ::core::option::Option<VideoConfiguration>,
1370 #[prost(enumeration = "ClientConfigSetting", tag = "3")]
1371 pub resume_connection: i32,
1372 #[prost(message, optional, tag = "4")]
1373 pub disabled_codecs: ::core::option::Option<DisabledCodecs>,
1374 #[prost(enumeration = "ClientConfigSetting", tag = "5")]
1375 pub force_relay: i32,
1376}
1377#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1378pub struct VideoConfiguration {
1379 #[prost(enumeration = "ClientConfigSetting", tag = "1")]
1380 pub hardware_encoder: i32,
1381}
1382#[derive(Clone, PartialEq, ::prost::Message)]
1383pub struct DisabledCodecs {
1384 #[prost(message, repeated, tag = "1")]
1386 pub codecs: ::prost::alloc::vec::Vec<Codec>,
1387 #[prost(message, repeated, tag = "2")]
1389 pub publish: ::prost::alloc::vec::Vec<Codec>,
1390}
1391#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1392pub struct RtpDrift {
1393 #[prost(message, optional, tag = "1")]
1394 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1395 #[prost(message, optional, tag = "2")]
1396 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1397 #[prost(double, tag = "3")]
1398 pub duration: f64,
1399 #[prost(uint64, tag = "4")]
1400 pub start_timestamp: u64,
1401 #[prost(uint64, tag = "5")]
1402 pub end_timestamp: u64,
1403 #[prost(uint64, tag = "6")]
1404 pub rtp_clock_ticks: u64,
1405 #[prost(int64, tag = "7")]
1406 pub drift_samples: i64,
1407 #[prost(double, tag = "8")]
1408 pub drift_ms: f64,
1409 #[prost(double, tag = "9")]
1410 pub clock_rate: f64,
1411}
1412#[derive(Clone, PartialEq, ::prost::Message)]
1413pub struct RtpStats {
1414 #[prost(message, optional, tag = "1")]
1415 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
1416 #[prost(message, optional, tag = "2")]
1417 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
1418 #[prost(double, tag = "3")]
1419 pub duration: f64,
1420 #[prost(uint32, tag = "4")]
1421 pub packets: u32,
1422 #[prost(double, tag = "5")]
1423 pub packet_rate: f64,
1424 #[prost(uint64, tag = "6")]
1425 pub bytes: u64,
1426 #[prost(uint64, tag = "39")]
1427 pub header_bytes: u64,
1428 #[prost(double, tag = "7")]
1429 pub bitrate: f64,
1430 #[prost(uint32, tag = "8")]
1431 pub packets_lost: u32,
1432 #[prost(double, tag = "9")]
1433 pub packet_loss_rate: f64,
1434 #[prost(float, tag = "10")]
1435 pub packet_loss_percentage: f32,
1436 #[prost(uint32, tag = "11")]
1437 pub packets_duplicate: u32,
1438 #[prost(double, tag = "12")]
1439 pub packet_duplicate_rate: f64,
1440 #[prost(uint64, tag = "13")]
1441 pub bytes_duplicate: u64,
1442 #[prost(uint64, tag = "40")]
1443 pub header_bytes_duplicate: u64,
1444 #[prost(double, tag = "14")]
1445 pub bitrate_duplicate: f64,
1446 #[prost(uint32, tag = "15")]
1447 pub packets_padding: u32,
1448 #[prost(double, tag = "16")]
1449 pub packet_padding_rate: f64,
1450 #[prost(uint64, tag = "17")]
1451 pub bytes_padding: u64,
1452 #[prost(uint64, tag = "41")]
1453 pub header_bytes_padding: u64,
1454 #[prost(double, tag = "18")]
1455 pub bitrate_padding: f64,
1456 #[prost(uint32, tag = "19")]
1457 pub packets_out_of_order: u32,
1458 #[prost(uint32, tag = "20")]
1459 pub frames: u32,
1460 #[prost(double, tag = "21")]
1461 pub frame_rate: f64,
1462 #[prost(double, tag = "22")]
1463 pub jitter_current: f64,
1464 #[prost(double, tag = "23")]
1465 pub jitter_max: f64,
1466 #[prost(map = "int32, uint32", tag = "24")]
1467 pub gap_histogram: ::std::collections::HashMap<i32, u32>,
1468 #[prost(uint32, tag = "25")]
1469 pub nacks: u32,
1470 #[prost(uint32, tag = "37")]
1471 pub nack_acks: u32,
1472 #[prost(uint32, tag = "26")]
1473 pub nack_misses: u32,
1474 #[prost(uint32, tag = "38")]
1475 pub nack_repeated: u32,
1476 #[prost(uint32, tag = "27")]
1477 pub plis: u32,
1478 #[prost(message, optional, tag = "28")]
1479 pub last_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1480 #[prost(uint32, tag = "29")]
1481 pub firs: u32,
1482 #[prost(message, optional, tag = "30")]
1483 pub last_fir: ::core::option::Option<::pbjson_types::Timestamp>,
1484 #[prost(uint32, tag = "31")]
1485 pub rtt_current: u32,
1486 #[prost(uint32, tag = "32")]
1487 pub rtt_max: u32,
1488 #[prost(uint32, tag = "33")]
1489 pub key_frames: u32,
1490 #[prost(message, optional, tag = "34")]
1491 pub last_key_frame: ::core::option::Option<::pbjson_types::Timestamp>,
1492 #[prost(uint32, tag = "35")]
1493 pub layer_lock_plis: u32,
1494 #[prost(message, optional, tag = "36")]
1495 pub last_layer_lock_pli: ::core::option::Option<::pbjson_types::Timestamp>,
1496 #[prost(message, optional, tag = "44")]
1497 pub packet_drift: ::core::option::Option<RtpDrift>,
1498 #[prost(message, optional, tag = "45")]
1499 pub ntp_report_drift: ::core::option::Option<RtpDrift>,
1500 #[prost(message, optional, tag = "46")]
1501 pub rebased_report_drift: ::core::option::Option<RtpDrift>,
1502 #[prost(message, optional, tag = "47")]
1504 pub received_report_drift: ::core::option::Option<RtpDrift>,
1505}
1506#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1507pub struct RtcpSenderReportState {
1508 #[prost(uint32, tag = "1")]
1509 pub rtp_timestamp: u32,
1510 #[prost(uint64, tag = "2")]
1511 pub rtp_timestamp_ext: u64,
1512 #[prost(uint64, tag = "3")]
1513 pub ntp_timestamp: u64,
1514 #[prost(int64, tag = "4")]
1516 pub at: i64,
1517 #[prost(int64, tag = "5")]
1518 pub at_adjusted: i64,
1519 #[prost(uint32, tag = "6")]
1520 pub packets: u32,
1521 #[prost(uint64, tag = "7")]
1522 pub octets: u64,
1523}
1524#[derive(Clone, PartialEq, ::prost::Message)]
1525pub struct RtpForwarderState {
1526 #[prost(bool, tag = "1")]
1527 pub started: bool,
1528 #[prost(int32, tag = "2")]
1529 pub reference_layer_spatial: i32,
1530 #[prost(int64, tag = "3")]
1531 pub pre_start_time: i64,
1532 #[prost(uint64, tag = "4")]
1533 pub ext_first_timestamp: u64,
1534 #[prost(uint64, tag = "5")]
1535 pub dummy_start_timestamp_offset: u64,
1536 #[prost(message, optional, tag = "6")]
1537 pub rtp_munger: ::core::option::Option<RtpMungerState>,
1538 #[prost(message, repeated, tag = "8")]
1539 pub sender_report_state: ::prost::alloc::vec::Vec<RtcpSenderReportState>,
1540 #[prost(oneof = "rtp_forwarder_state::CodecMunger", tags = "7")]
1541 pub codec_munger: ::core::option::Option<rtp_forwarder_state::CodecMunger>,
1542}
1543pub mod rtp_forwarder_state {
1545 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
1546 pub enum CodecMunger {
1547 #[prost(message, tag = "7")]
1548 Vp8Munger(super::Vp8MungerState),
1549 }
1550}
1551#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1552pub struct RtpMungerState {
1553 #[prost(uint64, tag = "1")]
1554 pub ext_last_sequence_number: u64,
1555 #[prost(uint64, tag = "2")]
1556 pub ext_second_last_sequence_number: u64,
1557 #[prost(uint64, tag = "3")]
1558 pub ext_last_timestamp: u64,
1559 #[prost(uint64, tag = "4")]
1560 pub ext_second_last_timestamp: u64,
1561 #[prost(bool, tag = "5")]
1562 pub last_marker: bool,
1563 #[prost(bool, tag = "6")]
1564 pub second_last_marker: bool,
1565}
1566#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1567pub struct Vp8MungerState {
1568 #[prost(int32, tag = "1")]
1569 pub ext_last_picture_id: i32,
1570 #[prost(bool, tag = "2")]
1571 pub picture_id_used: bool,
1572 #[prost(uint32, tag = "3")]
1573 pub last_tl0_pic_idx: u32,
1574 #[prost(bool, tag = "4")]
1575 pub tl0_pic_idx_used: bool,
1576 #[prost(bool, tag = "5")]
1577 pub tid_used: bool,
1578 #[prost(uint32, tag = "6")]
1579 pub last_key_idx: u32,
1580 #[prost(bool, tag = "7")]
1581 pub key_idx_used: bool,
1582}
1583#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1584pub struct TimedVersion {
1585 #[prost(int64, tag = "1")]
1586 pub unix_micro: i64,
1587 #[prost(int32, tag = "2")]
1588 pub ticks: i32,
1589}
1590#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1591pub struct DataStream {
1592}
1593pub mod data_stream {
1595 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1597 pub struct TextHeader {
1598 #[prost(enumeration = "OperationType", tag = "1")]
1599 pub operation_type: i32,
1600 #[prost(int32, tag = "2")]
1602 pub version: i32,
1603 #[prost(string, tag = "3")]
1605 pub reply_to_stream_id: ::prost::alloc::string::String,
1606 #[prost(string, repeated, tag = "4")]
1608 pub attached_stream_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1609 #[prost(bool, tag = "5")]
1611 pub generated: bool,
1612 }
1613 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1615 pub struct ByteHeader {
1616 #[prost(string, tag = "1")]
1617 pub name: ::prost::alloc::string::String,
1618 }
1619 #[derive(Clone, PartialEq, ::prost::Message)]
1621 pub struct Header {
1622 #[prost(string, tag = "1")]
1624 pub stream_id: ::prost::alloc::string::String,
1625 #[prost(int64, tag = "2")]
1627 pub timestamp: i64,
1628 #[prost(string, tag = "3")]
1629 pub topic: ::prost::alloc::string::String,
1630 #[prost(string, tag = "4")]
1631 pub mime_type: ::prost::alloc::string::String,
1632 #[prost(uint64, optional, tag = "5")]
1634 pub total_length: ::core::option::Option<u64>,
1635 #[deprecated]
1637 #[prost(enumeration = "super::encryption::Type", tag = "7")]
1638 pub encryption_type: i32,
1639 #[prost(map = "string, string", tag = "8")]
1641 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1642 #[prost(bytes = "vec", optional, tag = "11")]
1646 pub inline_content: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1647 #[prost(enumeration = "CompressionType", tag = "12")]
1648 pub compression: i32,
1649 #[prost(oneof = "header::ContentHeader", tags = "9, 10")]
1651 pub content_header: ::core::option::Option<header::ContentHeader>,
1652 }
1653 pub mod header {
1655 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
1657 pub enum ContentHeader {
1658 #[prost(message, tag = "9")]
1659 TextHeader(super::TextHeader),
1660 #[prost(message, tag = "10")]
1661 ByteHeader(super::ByteHeader),
1662 }
1663 }
1664 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1665 pub struct Chunk {
1666 #[prost(string, tag = "1")]
1668 pub stream_id: ::prost::alloc::string::String,
1669 #[prost(uint64, tag = "2")]
1670 pub chunk_index: u64,
1671 #[prost(bytes = "vec", tag = "3")]
1673 pub content: ::prost::alloc::vec::Vec<u8>,
1674 #[prost(int32, tag = "4")]
1676 pub version: i32,
1677 #[deprecated]
1679 #[prost(bytes = "vec", optional, tag = "5")]
1680 pub iv: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1681 }
1682 #[derive(Clone, PartialEq, ::prost::Message)]
1683 pub struct Trailer {
1684 #[prost(string, tag = "1")]
1686 pub stream_id: ::prost::alloc::string::String,
1687 #[prost(string, tag = "2")]
1689 pub reason: ::prost::alloc::string::String,
1690 #[prost(map = "string, string", tag = "3")]
1692 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1693 }
1694 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1696 #[repr(i32)]
1697 pub enum OperationType {
1698 Create = 0,
1699 Update = 1,
1700 Delete = 2,
1701 Reaction = 3,
1702 }
1703 impl OperationType {
1704 pub fn as_str_name(&self) -> &'static str {
1709 match self {
1710 Self::Create => "CREATE",
1711 Self::Update => "UPDATE",
1712 Self::Delete => "DELETE",
1713 Self::Reaction => "REACTION",
1714 }
1715 }
1716 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1718 match value {
1719 "CREATE" => Some(Self::Create),
1720 "UPDATE" => Some(Self::Update),
1721 "DELETE" => Some(Self::Delete),
1722 "REACTION" => Some(Self::Reaction),
1723 _ => None,
1724 }
1725 }
1726 }
1727 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1732 #[repr(i32)]
1733 pub enum CompressionType {
1734 None = 0,
1735 DeflateRaw = 1,
1737 }
1738 impl CompressionType {
1739 pub fn as_str_name(&self) -> &'static str {
1744 match self {
1745 Self::None => "NONE",
1746 Self::DeflateRaw => "DEFLATE_RAW",
1747 }
1748 }
1749 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1751 match value {
1752 "NONE" => Some(Self::None),
1753 "DEFLATE_RAW" => Some(Self::DeflateRaw),
1754 _ => None,
1755 }
1756 }
1757 }
1758}
1759#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1760pub struct FilterParams {
1761 #[prost(string, repeated, tag = "1")]
1762 pub include_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1763 #[prost(string, repeated, tag = "2")]
1764 pub exclude_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1765}
1766#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1767pub struct WebhookConfig {
1768 #[prost(string, tag = "1")]
1769 pub url: ::prost::alloc::string::String,
1770 #[prost(string, tag = "2")]
1771 pub signing_key: ::prost::alloc::string::String,
1772 #[prost(message, optional, tag = "3")]
1773 pub filter_params: ::core::option::Option<FilterParams>,
1774}
1775#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1776pub struct SubscribedAudioCodec {
1777 #[prost(string, tag = "1")]
1778 pub codec: ::prost::alloc::string::String,
1779 #[prost(bool, tag = "2")]
1780 pub enabled: bool,
1781}
1782#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1783#[repr(i32)]
1784pub enum AudioCodec {
1785 DefaultAc = 0,
1786 Opus = 1,
1787 Aac = 2,
1788 AcMp3 = 3,
1789}
1790impl AudioCodec {
1791 pub fn as_str_name(&self) -> &'static str {
1796 match self {
1797 Self::DefaultAc => "DEFAULT_AC",
1798 Self::Opus => "OPUS",
1799 Self::Aac => "AAC",
1800 Self::AcMp3 => "AC_MP3",
1801 }
1802 }
1803 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1805 match value {
1806 "DEFAULT_AC" => Some(Self::DefaultAc),
1807 "OPUS" => Some(Self::Opus),
1808 "AAC" => Some(Self::Aac),
1809 "AC_MP3" => Some(Self::AcMp3),
1810 _ => None,
1811 }
1812 }
1813}
1814#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1815#[repr(i32)]
1816pub enum VideoCodec {
1817 DefaultVc = 0,
1818 H264Baseline = 1,
1819 H264Main = 2,
1820 H264High = 3,
1821 Vp8 = 4,
1822}
1823impl VideoCodec {
1824 pub fn as_str_name(&self) -> &'static str {
1829 match self {
1830 Self::DefaultVc => "DEFAULT_VC",
1831 Self::H264Baseline => "H264_BASELINE",
1832 Self::H264Main => "H264_MAIN",
1833 Self::H264High => "H264_HIGH",
1834 Self::Vp8 => "VP8",
1835 }
1836 }
1837 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1839 match value {
1840 "DEFAULT_VC" => Some(Self::DefaultVc),
1841 "H264_BASELINE" => Some(Self::H264Baseline),
1842 "H264_MAIN" => Some(Self::H264Main),
1843 "H264_HIGH" => Some(Self::H264High),
1844 "VP8" => Some(Self::Vp8),
1845 _ => None,
1846 }
1847 }
1848}
1849#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1850#[repr(i32)]
1851pub enum ImageCodec {
1852 IcDefault = 0,
1853 IcJpeg = 1,
1854}
1855impl ImageCodec {
1856 pub fn as_str_name(&self) -> &'static str {
1861 match self {
1862 Self::IcDefault => "IC_DEFAULT",
1863 Self::IcJpeg => "IC_JPEG",
1864 }
1865 }
1866 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1868 match value {
1869 "IC_DEFAULT" => Some(Self::IcDefault),
1870 "IC_JPEG" => Some(Self::IcJpeg),
1871 _ => None,
1872 }
1873 }
1874}
1875#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1877#[repr(i32)]
1878pub enum BackupCodecPolicy {
1879 PreferRegression = 0,
1882 Simulcast = 1,
1884 Regression = 2,
1886}
1887impl BackupCodecPolicy {
1888 pub fn as_str_name(&self) -> &'static str {
1893 match self {
1894 Self::PreferRegression => "PREFER_REGRESSION",
1895 Self::Simulcast => "SIMULCAST",
1896 Self::Regression => "REGRESSION",
1897 }
1898 }
1899 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1901 match value {
1902 "PREFER_REGRESSION" => Some(Self::PreferRegression),
1903 "SIMULCAST" => Some(Self::Simulcast),
1904 "REGRESSION" => Some(Self::Regression),
1905 _ => None,
1906 }
1907 }
1908}
1909#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1910#[repr(i32)]
1911pub enum TrackType {
1912 Audio = 0,
1913 Video = 1,
1914 Data = 2,
1915}
1916impl TrackType {
1917 pub fn as_str_name(&self) -> &'static str {
1922 match self {
1923 Self::Audio => "AUDIO",
1924 Self::Video => "VIDEO",
1925 Self::Data => "DATA",
1926 }
1927 }
1928 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1930 match value {
1931 "AUDIO" => Some(Self::Audio),
1932 "VIDEO" => Some(Self::Video),
1933 "DATA" => Some(Self::Data),
1934 _ => None,
1935 }
1936 }
1937}
1938#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1939#[repr(i32)]
1940pub enum TrackSource {
1941 Unknown = 0,
1942 Camera = 1,
1943 Microphone = 2,
1944 ScreenShare = 3,
1945 ScreenShareAudio = 4,
1946}
1947impl TrackSource {
1948 pub fn as_str_name(&self) -> &'static str {
1953 match self {
1954 Self::Unknown => "UNKNOWN",
1955 Self::Camera => "CAMERA",
1956 Self::Microphone => "MICROPHONE",
1957 Self::ScreenShare => "SCREEN_SHARE",
1958 Self::ScreenShareAudio => "SCREEN_SHARE_AUDIO",
1959 }
1960 }
1961 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1963 match value {
1964 "UNKNOWN" => Some(Self::Unknown),
1965 "CAMERA" => Some(Self::Camera),
1966 "MICROPHONE" => Some(Self::Microphone),
1967 "SCREEN_SHARE" => Some(Self::ScreenShare),
1968 "SCREEN_SHARE_AUDIO" => Some(Self::ScreenShareAudio),
1969 _ => None,
1970 }
1971 }
1972}
1973#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1974#[repr(i32)]
1975pub enum DataTrackExtensionId {
1976 DteiInvalid = 0,
1977 DteiParticipantSid = 1,
1978}
1979impl DataTrackExtensionId {
1980 pub fn as_str_name(&self) -> &'static str {
1985 match self {
1986 Self::DteiInvalid => "DTEI_INVALID",
1987 Self::DteiParticipantSid => "DTEI_PARTICIPANT_SID",
1988 }
1989 }
1990 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1992 match value {
1993 "DTEI_INVALID" => Some(Self::DteiInvalid),
1994 "DTEI_PARTICIPANT_SID" => Some(Self::DteiParticipantSid),
1995 _ => None,
1996 }
1997 }
1998}
1999#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2000#[repr(i32)]
2001pub enum VideoQuality {
2002 Low = 0,
2003 Medium = 1,
2004 High = 2,
2005 Off = 3,
2006}
2007impl VideoQuality {
2008 pub fn as_str_name(&self) -> &'static str {
2013 match self {
2014 Self::Low => "LOW",
2015 Self::Medium => "MEDIUM",
2016 Self::High => "HIGH",
2017 Self::Off => "OFF",
2018 }
2019 }
2020 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2022 match value {
2023 "LOW" => Some(Self::Low),
2024 "MEDIUM" => Some(Self::Medium),
2025 "HIGH" => Some(Self::High),
2026 "OFF" => Some(Self::Off),
2027 _ => None,
2028 }
2029 }
2030}
2031#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2032#[repr(i32)]
2033pub enum ConnectionQuality {
2034 Poor = 0,
2035 Good = 1,
2036 Excellent = 2,
2037 Lost = 3,
2038}
2039impl ConnectionQuality {
2040 pub fn as_str_name(&self) -> &'static str {
2045 match self {
2046 Self::Poor => "POOR",
2047 Self::Good => "GOOD",
2048 Self::Excellent => "EXCELLENT",
2049 Self::Lost => "LOST",
2050 }
2051 }
2052 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2054 match value {
2055 "POOR" => Some(Self::Poor),
2056 "GOOD" => Some(Self::Good),
2057 "EXCELLENT" => Some(Self::Excellent),
2058 "LOST" => Some(Self::Lost),
2059 _ => None,
2060 }
2061 }
2062}
2063#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2064#[repr(i32)]
2065pub enum ClientConfigSetting {
2066 Unset = 0,
2067 Disabled = 1,
2068 Enabled = 2,
2069}
2070impl ClientConfigSetting {
2071 pub fn as_str_name(&self) -> &'static str {
2076 match self {
2077 Self::Unset => "UNSET",
2078 Self::Disabled => "DISABLED",
2079 Self::Enabled => "ENABLED",
2080 }
2081 }
2082 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2084 match value {
2085 "UNSET" => Some(Self::Unset),
2086 "DISABLED" => Some(Self::Disabled),
2087 "ENABLED" => Some(Self::Enabled),
2088 _ => None,
2089 }
2090 }
2091}
2092#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2093#[repr(i32)]
2094pub enum DisconnectReason {
2095 UnknownReason = 0,
2096 ClientInitiated = 1,
2098 DuplicateIdentity = 2,
2100 ServerShutdown = 3,
2102 ParticipantRemoved = 4,
2104 RoomDeleted = 5,
2106 StateMismatch = 6,
2108 JoinFailure = 7,
2110 Migration = 8,
2112 SignalClose = 9,
2114 RoomClosed = 10,
2116 UserUnavailable = 11,
2118 UserRejected = 12,
2120 SipTrunkFailure = 13,
2122 ConnectionTimeout = 14,
2124 MediaFailure = 15,
2126 AgentError = 16,
2128}
2129impl DisconnectReason {
2130 pub fn as_str_name(&self) -> &'static str {
2135 match self {
2136 Self::UnknownReason => "UNKNOWN_REASON",
2137 Self::ClientInitiated => "CLIENT_INITIATED",
2138 Self::DuplicateIdentity => "DUPLICATE_IDENTITY",
2139 Self::ServerShutdown => "SERVER_SHUTDOWN",
2140 Self::ParticipantRemoved => "PARTICIPANT_REMOVED",
2141 Self::RoomDeleted => "ROOM_DELETED",
2142 Self::StateMismatch => "STATE_MISMATCH",
2143 Self::JoinFailure => "JOIN_FAILURE",
2144 Self::Migration => "MIGRATION",
2145 Self::SignalClose => "SIGNAL_CLOSE",
2146 Self::RoomClosed => "ROOM_CLOSED",
2147 Self::UserUnavailable => "USER_UNAVAILABLE",
2148 Self::UserRejected => "USER_REJECTED",
2149 Self::SipTrunkFailure => "SIP_TRUNK_FAILURE",
2150 Self::ConnectionTimeout => "CONNECTION_TIMEOUT",
2151 Self::MediaFailure => "MEDIA_FAILURE",
2152 Self::AgentError => "AGENT_ERROR",
2153 }
2154 }
2155 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2157 match value {
2158 "UNKNOWN_REASON" => Some(Self::UnknownReason),
2159 "CLIENT_INITIATED" => Some(Self::ClientInitiated),
2160 "DUPLICATE_IDENTITY" => Some(Self::DuplicateIdentity),
2161 "SERVER_SHUTDOWN" => Some(Self::ServerShutdown),
2162 "PARTICIPANT_REMOVED" => Some(Self::ParticipantRemoved),
2163 "ROOM_DELETED" => Some(Self::RoomDeleted),
2164 "STATE_MISMATCH" => Some(Self::StateMismatch),
2165 "JOIN_FAILURE" => Some(Self::JoinFailure),
2166 "MIGRATION" => Some(Self::Migration),
2167 "SIGNAL_CLOSE" => Some(Self::SignalClose),
2168 "ROOM_CLOSED" => Some(Self::RoomClosed),
2169 "USER_UNAVAILABLE" => Some(Self::UserUnavailable),
2170 "USER_REJECTED" => Some(Self::UserRejected),
2171 "SIP_TRUNK_FAILURE" => Some(Self::SipTrunkFailure),
2172 "CONNECTION_TIMEOUT" => Some(Self::ConnectionTimeout),
2173 "MEDIA_FAILURE" => Some(Self::MediaFailure),
2174 "AGENT_ERROR" => Some(Self::AgentError),
2175 _ => None,
2176 }
2177 }
2178}
2179#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2180#[repr(i32)]
2181pub enum ReconnectReason {
2182 RrUnknown = 0,
2183 RrSignalDisconnected = 1,
2184 RrPublisherFailed = 2,
2185 RrSubscriberFailed = 3,
2186 RrSwitchCandidate = 4,
2187}
2188impl ReconnectReason {
2189 pub fn as_str_name(&self) -> &'static str {
2194 match self {
2195 Self::RrUnknown => "RR_UNKNOWN",
2196 Self::RrSignalDisconnected => "RR_SIGNAL_DISCONNECTED",
2197 Self::RrPublisherFailed => "RR_PUBLISHER_FAILED",
2198 Self::RrSubscriberFailed => "RR_SUBSCRIBER_FAILED",
2199 Self::RrSwitchCandidate => "RR_SWITCH_CANDIDATE",
2200 }
2201 }
2202 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2204 match value {
2205 "RR_UNKNOWN" => Some(Self::RrUnknown),
2206 "RR_SIGNAL_DISCONNECTED" => Some(Self::RrSignalDisconnected),
2207 "RR_PUBLISHER_FAILED" => Some(Self::RrPublisherFailed),
2208 "RR_SUBSCRIBER_FAILED" => Some(Self::RrSubscriberFailed),
2209 "RR_SWITCH_CANDIDATE" => Some(Self::RrSwitchCandidate),
2210 _ => None,
2211 }
2212 }
2213}
2214#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2215#[repr(i32)]
2216pub enum SubscriptionError {
2217 SeUnknown = 0,
2218 SeCodecUnsupported = 1,
2219 SeTrackNotfound = 2,
2220}
2221impl SubscriptionError {
2222 pub fn as_str_name(&self) -> &'static str {
2227 match self {
2228 Self::SeUnknown => "SE_UNKNOWN",
2229 Self::SeCodecUnsupported => "SE_CODEC_UNSUPPORTED",
2230 Self::SeTrackNotfound => "SE_TRACK_NOTFOUND",
2231 }
2232 }
2233 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2235 match value {
2236 "SE_UNKNOWN" => Some(Self::SeUnknown),
2237 "SE_CODEC_UNSUPPORTED" => Some(Self::SeCodecUnsupported),
2238 "SE_TRACK_NOTFOUND" => Some(Self::SeTrackNotfound),
2239 _ => None,
2240 }
2241 }
2242}
2243#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2244#[repr(i32)]
2245pub enum AudioTrackFeature {
2246 TfStereo = 0,
2247 TfNoDtx = 1,
2248 TfAutoGainControl = 2,
2249 TfEchoCancellation = 3,
2250 TfNoiseSuppression = 4,
2251 TfEnhancedNoiseCancellation = 5,
2252 TfPreconnectBuffer = 6,
2254}
2255impl AudioTrackFeature {
2256 pub fn as_str_name(&self) -> &'static str {
2261 match self {
2262 Self::TfStereo => "TF_STEREO",
2263 Self::TfNoDtx => "TF_NO_DTX",
2264 Self::TfAutoGainControl => "TF_AUTO_GAIN_CONTROL",
2265 Self::TfEchoCancellation => "TF_ECHO_CANCELLATION",
2266 Self::TfNoiseSuppression => "TF_NOISE_SUPPRESSION",
2267 Self::TfEnhancedNoiseCancellation => "TF_ENHANCED_NOISE_CANCELLATION",
2268 Self::TfPreconnectBuffer => "TF_PRECONNECT_BUFFER",
2269 }
2270 }
2271 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2273 match value {
2274 "TF_STEREO" => Some(Self::TfStereo),
2275 "TF_NO_DTX" => Some(Self::TfNoDtx),
2276 "TF_AUTO_GAIN_CONTROL" => Some(Self::TfAutoGainControl),
2277 "TF_ECHO_CANCELLATION" => Some(Self::TfEchoCancellation),
2278 "TF_NOISE_SUPPRESSION" => Some(Self::TfNoiseSuppression),
2279 "TF_ENHANCED_NOISE_CANCELLATION" => Some(Self::TfEnhancedNoiseCancellation),
2280 "TF_PRECONNECT_BUFFER" => Some(Self::TfPreconnectBuffer),
2281 _ => None,
2282 }
2283 }
2284}
2285#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2286#[repr(i32)]
2287pub enum PacketTrailerFeature {
2288 PtfUserTimestamp = 0,
2289 PtfFrameId = 1,
2290 PtfUserData = 2,
2291}
2292impl PacketTrailerFeature {
2293 pub fn as_str_name(&self) -> &'static str {
2298 match self {
2299 Self::PtfUserTimestamp => "PTF_USER_TIMESTAMP",
2300 Self::PtfFrameId => "PTF_FRAME_ID",
2301 Self::PtfUserData => "PTF_USER_DATA",
2302 }
2303 }
2304 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2306 match value {
2307 "PTF_USER_TIMESTAMP" => Some(Self::PtfUserTimestamp),
2308 "PTF_FRAME_ID" => Some(Self::PtfFrameId),
2309 "PTF_USER_DATA" => Some(Self::PtfUserData),
2310 _ => None,
2311 }
2312 }
2313}
2314#[derive(Clone, PartialEq, ::prost::Message)]
2317pub struct StartEgressRequest {
2318 #[prost(string, tag = "1")]
2319 pub room_name: ::prost::alloc::string::String,
2320 #[prost(message, repeated, tag = "7")]
2322 pub outputs: ::prost::alloc::vec::Vec<Output>,
2323 #[prost(message, optional, tag = "8")]
2325 pub storage: ::core::option::Option<StorageConfig>,
2326 #[prost(message, repeated, tag = "9")]
2328 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
2329 #[prost(oneof = "start_egress_request::Source", tags = "2, 3, 4")]
2330 pub source: ::core::option::Option<start_egress_request::Source>,
2331 #[prost(oneof = "start_egress_request::Encoding", tags = "5, 6")]
2333 pub encoding: ::core::option::Option<start_egress_request::Encoding>,
2334}
2335pub mod start_egress_request {
2337 #[derive(Clone, PartialEq, ::prost::Oneof)]
2338 pub enum Source {
2339 #[prost(message, tag = "2")]
2340 Template(super::TemplateSource),
2341 #[prost(message, tag = "3")]
2342 Web(super::WebSource),
2343 #[prost(message, tag = "4")]
2344 Media(super::MediaSource),
2345 }
2346 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
2348 pub enum Encoding {
2349 #[prost(enumeration = "super::EncodingOptionsPreset", tag = "5")]
2350 Preset(i32),
2351 #[prost(message, tag = "6")]
2352 Advanced(super::EncodingOptions),
2353 }
2354}
2355#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2360pub struct TemplateSource {
2361 #[prost(string, tag = "1")]
2362 pub layout: ::prost::alloc::string::String,
2363 #[prost(bool, tag = "2")]
2364 pub audio_only: bool,
2365 #[prost(bool, tag = "3")]
2366 pub video_only: bool,
2367 #[prost(string, tag = "4")]
2368 pub custom_base_url: ::prost::alloc::string::String,
2369}
2370#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2372pub struct WebSource {
2373 #[prost(string, tag = "1")]
2374 pub url: ::prost::alloc::string::String,
2375 #[prost(bool, tag = "2")]
2376 pub audio_only: bool,
2377 #[prost(bool, tag = "3")]
2378 pub video_only: bool,
2379 #[prost(bool, tag = "4")]
2380 pub await_start_signal: bool,
2381}
2382#[derive(Clone, PartialEq, ::prost::Message)]
2385pub struct MediaSource {
2386 #[prost(message, optional, tag = "3")]
2388 pub audio: ::core::option::Option<AudioConfig>,
2389 #[prost(oneof = "media_source::Video", tags = "1, 2")]
2390 pub video: ::core::option::Option<media_source::Video>,
2391}
2392pub mod media_source {
2394 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
2395 pub enum Video {
2396 #[prost(string, tag = "1")]
2397 VideoTrackId(::prost::alloc::string::String),
2398 #[prost(message, tag = "2")]
2399 ParticipantVideo(super::ParticipantVideo),
2400 }
2401}
2402#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2405pub struct ParticipantVideo {
2406 #[prost(string, tag = "1")]
2407 pub identity: ::prost::alloc::string::String,
2408 #[prost(bool, tag = "2")]
2409 pub prefer_screen_share: bool,
2410}
2411#[derive(Clone, PartialEq, ::prost::Message)]
2416pub struct AudioConfig {
2417 #[prost(bool, tag = "1")]
2419 pub capture_all: bool,
2420 #[prost(message, repeated, tag = "2")]
2421 pub routes: ::prost::alloc::vec::Vec<AudioRoute>,
2422}
2423#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2424pub struct AudioRoute {
2425 #[prost(enumeration = "AudioChannel", tag = "4")]
2426 pub channel: i32,
2427 #[prost(oneof = "audio_route::Match", tags = "1, 2, 3")]
2428 pub r#match: ::core::option::Option<audio_route::Match>,
2429}
2430pub mod audio_route {
2432 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
2433 pub enum Match {
2434 #[prost(string, tag = "1")]
2435 TrackId(::prost::alloc::string::String),
2436 #[prost(string, tag = "2")]
2437 ParticipantIdentity(::prost::alloc::string::String),
2438 #[prost(enumeration = "super::participant_info::Kind", tag = "3")]
2439 ParticipantKind(i32),
2440 }
2441}
2442#[derive(Clone, PartialEq, ::prost::Message)]
2445pub struct DataConfig {
2446 #[prost(bool, tag = "1")]
2447 pub capture_all: bool,
2448 #[prost(message, repeated, tag = "2")]
2449 pub selectors: ::prost::alloc::vec::Vec<DataSelector>,
2450}
2451#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2452pub struct DataSelector {
2453 #[prost(oneof = "data_selector::Match", tags = "1, 2")]
2454 pub r#match: ::core::option::Option<data_selector::Match>,
2455}
2456pub mod data_selector {
2458 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
2459 pub enum Match {
2460 #[prost(string, tag = "1")]
2461 TrackId(::prost::alloc::string::String),
2462 #[prost(string, tag = "2")]
2463 ParticipantIdentity(::prost::alloc::string::String),
2464 }
2465}
2466#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2467pub struct EncodingOptions {
2468 #[prost(int32, tag = "1")]
2470 pub width: i32,
2471 #[prost(int32, tag = "2")]
2473 pub height: i32,
2474 #[prost(int32, tag = "3")]
2476 pub depth: i32,
2477 #[prost(int32, tag = "4")]
2479 pub framerate: i32,
2480 #[prost(enumeration = "AudioCodec", tag = "5")]
2482 pub audio_codec: i32,
2483 #[prost(int32, tag = "6")]
2485 pub audio_bitrate: i32,
2486 #[prost(int32, tag = "7")]
2488 pub audio_frequency: i32,
2489 #[prost(enumeration = "VideoCodec", tag = "8")]
2491 pub video_codec: i32,
2492 #[prost(int32, tag = "9")]
2494 pub video_bitrate: i32,
2495 #[prost(double, tag = "10")]
2497 pub key_frame_interval: f64,
2498 #[deprecated]
2502 #[prost(int32, tag = "11")]
2503 pub audio_quality: i32,
2504 #[deprecated]
2506 #[prost(int32, tag = "12")]
2507 pub video_quality: i32,
2508}
2509#[derive(Clone, PartialEq, ::prost::Message)]
2512pub struct Output {
2513 #[prost(message, optional, tag = "6")]
2515 pub storage: ::core::option::Option<StorageConfig>,
2516 #[prost(oneof = "output::Config", tags = "1, 2, 3, 4")]
2517 pub config: ::core::option::Option<output::Config>,
2518}
2519pub mod output {
2521 #[derive(Clone, PartialEq, ::prost::Oneof)]
2522 pub enum Config {
2523 #[prost(message, tag = "1")]
2524 File(super::FileOutput),
2525 #[prost(message, tag = "2")]
2526 Stream(super::StreamOutput),
2527 #[prost(message, tag = "3")]
2528 Segments(super::SegmentedFileOutput),
2529 #[prost(message, tag = "4")]
2531 Images(super::ImageOutput),
2532 }
2533}
2534#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2537pub struct FileOutput {
2538 #[prost(enumeration = "EncodedFileType", tag = "1")]
2539 pub file_type: i32,
2540 #[prost(string, tag = "2")]
2541 pub filepath: ::prost::alloc::string::String,
2542 #[prost(bool, tag = "3")]
2543 pub disable_manifest: bool,
2544}
2545#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2546pub struct StreamOutput {
2547 #[prost(enumeration = "StreamProtocol", tag = "1")]
2549 pub protocol: i32,
2550 #[prost(string, repeated, tag = "2")]
2552 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2553}
2554#[derive(Clone, PartialEq, ::prost::Message)]
2556pub struct SegmentedFileOutput {
2557 #[prost(enumeration = "SegmentedFileProtocol", tag = "1")]
2559 pub protocol: i32,
2560 #[prost(string, tag = "2")]
2562 pub filename_prefix: ::prost::alloc::string::String,
2563 #[prost(string, tag = "3")]
2565 pub playlist_name: ::prost::alloc::string::String,
2566 #[prost(string, tag = "11")]
2568 pub live_playlist_name: ::prost::alloc::string::String,
2569 #[prost(uint32, tag = "4")]
2571 pub segment_duration: u32,
2572 #[prost(enumeration = "SegmentedFileSuffix", tag = "10")]
2574 pub filename_suffix: i32,
2575 #[prost(bool, tag = "8")]
2577 pub disable_manifest: bool,
2578 #[prost(oneof = "segmented_file_output::Output", tags = "5, 6, 7, 9")]
2580 pub output: ::core::option::Option<segmented_file_output::Output>,
2581}
2582pub mod segmented_file_output {
2584 #[derive(Clone, PartialEq, ::prost::Oneof)]
2586 pub enum Output {
2587 #[prost(message, tag = "5")]
2588 S3(super::S3Upload),
2589 #[prost(message, tag = "6")]
2590 Gcp(super::GcpUpload),
2591 #[prost(message, tag = "7")]
2592 Azure(super::AzureBlobUpload),
2593 #[prost(message, tag = "9")]
2594 AliOss(super::AliOssUpload),
2595 }
2596}
2597#[derive(Clone, PartialEq, ::prost::Message)]
2599pub struct ImageOutput {
2600 #[prost(uint32, tag = "1")]
2602 pub capture_interval: u32,
2603 #[prost(int32, tag = "2")]
2605 pub width: i32,
2606 #[prost(int32, tag = "3")]
2608 pub height: i32,
2609 #[prost(string, tag = "4")]
2611 pub filename_prefix: ::prost::alloc::string::String,
2612 #[prost(enumeration = "ImageFileSuffix", tag = "5")]
2614 pub filename_suffix: i32,
2615 #[prost(enumeration = "ImageCodec", tag = "6")]
2617 pub image_codec: i32,
2618 #[prost(bool, tag = "7")]
2620 pub disable_manifest: bool,
2621 #[prost(oneof = "image_output::Output", tags = "8, 9, 10, 11")]
2623 pub output: ::core::option::Option<image_output::Output>,
2624}
2625pub mod image_output {
2627 #[derive(Clone, PartialEq, ::prost::Oneof)]
2629 pub enum Output {
2630 #[prost(message, tag = "8")]
2631 S3(super::S3Upload),
2632 #[prost(message, tag = "9")]
2633 Gcp(super::GcpUpload),
2634 #[prost(message, tag = "10")]
2635 Azure(super::AzureBlobUpload),
2636 #[prost(message, tag = "11")]
2637 AliOss(super::AliOssUpload),
2638 }
2639}
2640#[derive(Clone, PartialEq, ::prost::Message)]
2643pub struct StorageConfig {
2644 #[prost(oneof = "storage_config::Provider", tags = "1, 2, 3, 4")]
2645 pub provider: ::core::option::Option<storage_config::Provider>,
2646}
2647pub mod storage_config {
2649 #[derive(Clone, PartialEq, ::prost::Oneof)]
2650 pub enum Provider {
2651 #[prost(message, tag = "1")]
2652 S3(super::S3Upload),
2653 #[prost(message, tag = "2")]
2654 Gcp(super::GcpUpload),
2655 #[prost(message, tag = "3")]
2656 Azure(super::AzureBlobUpload),
2657 #[prost(message, tag = "4")]
2658 AliOss(super::AliOssUpload),
2659 }
2660}
2661#[derive(Clone, PartialEq, ::prost::Message)]
2662pub struct S3Upload {
2663 #[prost(string, tag = "1")]
2664 pub access_key: ::prost::alloc::string::String,
2665 #[prost(string, tag = "2")]
2666 pub secret: ::prost::alloc::string::String,
2667 #[prost(string, tag = "11")]
2668 pub session_token: ::prost::alloc::string::String,
2669 #[prost(string, tag = "12")]
2671 pub assume_role_arn: ::prost::alloc::string::String,
2672 #[prost(string, tag = "13")]
2674 pub assume_role_external_id: ::prost::alloc::string::String,
2675 #[prost(string, tag = "3")]
2676 pub region: ::prost::alloc::string::String,
2677 #[prost(string, tag = "4")]
2678 pub endpoint: ::prost::alloc::string::String,
2679 #[prost(string, tag = "5")]
2680 pub bucket: ::prost::alloc::string::String,
2681 #[prost(bool, tag = "6")]
2682 pub force_path_style: bool,
2683 #[prost(map = "string, string", tag = "7")]
2684 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
2685 #[prost(string, tag = "8")]
2686 pub tagging: ::prost::alloc::string::String,
2687 #[prost(string, tag = "9")]
2689 pub content_disposition: ::prost::alloc::string::String,
2690 #[prost(message, optional, tag = "10")]
2691 pub proxy: ::core::option::Option<ProxyConfig>,
2692}
2693#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2694pub struct GcpUpload {
2695 #[prost(string, tag = "1")]
2697 pub credentials: ::prost::alloc::string::String,
2698 #[prost(string, tag = "2")]
2699 pub bucket: ::prost::alloc::string::String,
2700 #[prost(message, optional, tag = "3")]
2701 pub proxy: ::core::option::Option<ProxyConfig>,
2702}
2703#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2704pub struct AzureBlobUpload {
2705 #[prost(string, tag = "1")]
2706 pub account_name: ::prost::alloc::string::String,
2707 #[prost(string, tag = "2")]
2708 pub account_key: ::prost::alloc::string::String,
2709 #[prost(string, tag = "3")]
2710 pub container_name: ::prost::alloc::string::String,
2711}
2712#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2713pub struct AliOssUpload {
2714 #[prost(string, tag = "1")]
2715 pub access_key: ::prost::alloc::string::String,
2716 #[prost(string, tag = "2")]
2717 pub secret: ::prost::alloc::string::String,
2718 #[prost(string, tag = "3")]
2719 pub region: ::prost::alloc::string::String,
2720 #[prost(string, tag = "4")]
2721 pub endpoint: ::prost::alloc::string::String,
2722 #[prost(string, tag = "5")]
2723 pub bucket: ::prost::alloc::string::String,
2724}
2725#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2726pub struct ProxyConfig {
2727 #[prost(string, tag = "1")]
2728 pub url: ::prost::alloc::string::String,
2729 #[prost(string, tag = "2")]
2730 pub username: ::prost::alloc::string::String,
2731 #[prost(string, tag = "3")]
2732 pub password: ::prost::alloc::string::String,
2733}
2734#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2737pub struct ListEgressRequest {
2738 #[prost(string, tag = "1")]
2740 pub room_name: ::prost::alloc::string::String,
2741 #[prost(string, tag = "2")]
2743 pub egress_id: ::prost::alloc::string::String,
2744 #[prost(bool, tag = "3")]
2746 pub active: bool,
2747 #[prost(message, optional, tag = "4")]
2749 pub page_token: ::core::option::Option<TokenPagination>,
2750}
2751#[derive(Clone, PartialEq, ::prost::Message)]
2752pub struct ListEgressResponse {
2753 #[prost(message, repeated, tag = "1")]
2754 pub items: ::prost::alloc::vec::Vec<EgressInfo>,
2755 #[prost(message, optional, tag = "2")]
2757 pub next_page_token: ::core::option::Option<TokenPagination>,
2758}
2759#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2760pub struct StopEgressRequest {
2761 #[prost(string, tag = "1")]
2762 pub egress_id: ::prost::alloc::string::String,
2763}
2764#[derive(Clone, PartialEq, ::prost::Message)]
2767pub struct EgressInfo {
2768 #[prost(string, tag = "1")]
2769 pub egress_id: ::prost::alloc::string::String,
2770 #[prost(string, tag = "2")]
2771 pub room_id: ::prost::alloc::string::String,
2772 #[prost(string, tag = "13")]
2773 pub room_name: ::prost::alloc::string::String,
2774 #[prost(enumeration = "EgressSourceType", tag = "26")]
2775 pub source_type: i32,
2776 #[prost(enumeration = "EgressStatus", tag = "3")]
2777 pub status: i32,
2778 #[prost(int64, tag = "10")]
2779 pub started_at: i64,
2780 #[prost(int64, tag = "11")]
2781 pub ended_at: i64,
2782 #[prost(int64, tag = "18")]
2783 pub updated_at: i64,
2784 #[prost(message, repeated, tag = "15")]
2785 pub stream_results: ::prost::alloc::vec::Vec<StreamInfo>,
2786 #[prost(message, repeated, tag = "16")]
2787 pub file_results: ::prost::alloc::vec::Vec<FileInfo>,
2788 #[prost(message, repeated, tag = "17")]
2789 pub segment_results: ::prost::alloc::vec::Vec<SegmentsInfo>,
2790 #[prost(message, repeated, tag = "20")]
2791 pub image_results: ::prost::alloc::vec::Vec<ImagesInfo>,
2792 #[prost(string, tag = "9")]
2793 pub error: ::prost::alloc::string::String,
2794 #[prost(int32, tag = "22")]
2795 pub error_code: i32,
2796 #[prost(string, tag = "21")]
2797 pub details: ::prost::alloc::string::String,
2798 #[prost(string, tag = "23")]
2799 pub manifest_location: ::prost::alloc::string::String,
2800 #[prost(bool, tag = "25")]
2801 pub backup_storage_used: bool,
2802 #[prost(int32, tag = "27")]
2803 pub retry_count: i32,
2804 #[prost(oneof = "egress_info::Request", tags = "29, 30, 4, 14, 19, 5, 6")]
2805 pub request: ::core::option::Option<egress_info::Request>,
2806 #[prost(oneof = "egress_info::Result", tags = "7, 8, 12")]
2810 pub result: ::core::option::Option<egress_info::Result>,
2811}
2812pub mod egress_info {
2814 #[derive(Clone, PartialEq, ::prost::Oneof)]
2815 pub enum Request {
2816 #[prost(message, tag = "29")]
2817 Egress(super::StartEgressRequest),
2818 #[prost(message, tag = "30")]
2819 Replay(super::ExportReplayRequest),
2820 #[prost(message, tag = "4")]
2822 RoomComposite(super::RoomCompositeEgressRequest),
2823 #[prost(message, tag = "14")]
2824 Web(super::WebEgressRequest),
2825 #[prost(message, tag = "19")]
2826 Participant(super::ParticipantEgressRequest),
2827 #[prost(message, tag = "5")]
2828 TrackComposite(super::TrackCompositeEgressRequest),
2829 #[prost(message, tag = "6")]
2830 Track(super::TrackEgressRequest),
2831 }
2832 #[derive(Clone, PartialEq, ::prost::Oneof)]
2836 pub enum Result {
2837 #[deprecated]
2838 #[prost(message, tag = "7")]
2839 Stream(super::StreamInfoList),
2840 #[deprecated]
2841 #[prost(message, tag = "8")]
2842 File(super::FileInfo),
2843 #[deprecated]
2844 #[prost(message, tag = "12")]
2845 Segments(super::SegmentsInfo),
2846 }
2847}
2848#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2849pub struct StreamInfo {
2850 #[prost(string, tag = "1")]
2851 pub url: ::prost::alloc::string::String,
2852 #[prost(int64, tag = "2")]
2853 pub started_at: i64,
2854 #[prost(int64, tag = "3")]
2855 pub ended_at: i64,
2856 #[prost(int64, tag = "4")]
2857 pub duration: i64,
2858 #[prost(enumeration = "stream_info::Status", tag = "5")]
2859 pub status: i32,
2860 #[prost(string, tag = "6")]
2861 pub error: ::prost::alloc::string::String,
2862 #[prost(int64, tag = "7")]
2863 pub last_retry_at: i64,
2864 #[prost(uint32, tag = "8")]
2865 pub retries: u32,
2866}
2867pub mod stream_info {
2869 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2870 #[repr(i32)]
2871 pub enum Status {
2872 Active = 0,
2873 Finished = 1,
2874 Failed = 2,
2875 }
2876 impl Status {
2877 pub fn as_str_name(&self) -> &'static str {
2882 match self {
2883 Self::Active => "ACTIVE",
2884 Self::Finished => "FINISHED",
2885 Self::Failed => "FAILED",
2886 }
2887 }
2888 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2890 match value {
2891 "ACTIVE" => Some(Self::Active),
2892 "FINISHED" => Some(Self::Finished),
2893 "FAILED" => Some(Self::Failed),
2894 _ => None,
2895 }
2896 }
2897 }
2898}
2899#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2900pub struct FileInfo {
2901 #[prost(string, tag = "1")]
2902 pub filename: ::prost::alloc::string::String,
2903 #[prost(int64, tag = "2")]
2904 pub started_at: i64,
2905 #[prost(int64, tag = "3")]
2906 pub ended_at: i64,
2907 #[prost(int64, tag = "6")]
2908 pub duration: i64,
2909 #[prost(int64, tag = "4")]
2910 pub size: i64,
2911 #[prost(string, tag = "5")]
2912 pub location: ::prost::alloc::string::String,
2913}
2914#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2915pub struct SegmentsInfo {
2916 #[prost(string, tag = "1")]
2917 pub playlist_name: ::prost::alloc::string::String,
2918 #[prost(string, tag = "8")]
2919 pub live_playlist_name: ::prost::alloc::string::String,
2920 #[prost(int64, tag = "2")]
2921 pub duration: i64,
2922 #[prost(int64, tag = "3")]
2923 pub size: i64,
2924 #[prost(string, tag = "4")]
2925 pub playlist_location: ::prost::alloc::string::String,
2926 #[prost(string, tag = "9")]
2927 pub live_playlist_location: ::prost::alloc::string::String,
2928 #[prost(int64, tag = "5")]
2929 pub segment_count: i64,
2930 #[prost(int64, tag = "6")]
2931 pub started_at: i64,
2932 #[prost(int64, tag = "7")]
2933 pub ended_at: i64,
2934}
2935#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2936pub struct ImagesInfo {
2937 #[prost(string, tag = "4")]
2938 pub filename_prefix: ::prost::alloc::string::String,
2939 #[prost(int64, tag = "1")]
2940 pub image_count: i64,
2941 #[prost(int64, tag = "2")]
2942 pub started_at: i64,
2943 #[prost(int64, tag = "3")]
2944 pub ended_at: i64,
2945}
2946#[derive(Clone, PartialEq, ::prost::Message)]
2949pub struct AutoParticipantEgress {
2950 #[prost(message, repeated, tag = "3")]
2951 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
2952 #[prost(message, repeated, tag = "4")]
2953 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
2954 #[prost(oneof = "auto_participant_egress::Options", tags = "1, 2")]
2955 pub options: ::core::option::Option<auto_participant_egress::Options>,
2956}
2957pub mod auto_participant_egress {
2959 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
2960 pub enum Options {
2961 #[prost(enumeration = "super::EncodingOptionsPreset", tag = "1")]
2963 Preset(i32),
2964 #[prost(message, tag = "2")]
2966 Advanced(super::EncodingOptions),
2967 }
2968}
2969#[derive(Clone, PartialEq, ::prost::Message)]
2970pub struct AutoTrackEgress {
2971 #[prost(string, tag = "1")]
2973 pub filepath: ::prost::alloc::string::String,
2974 #[prost(bool, tag = "5")]
2976 pub disable_manifest: bool,
2977 #[prost(oneof = "auto_track_egress::Output", tags = "2, 3, 4, 6")]
2978 pub output: ::core::option::Option<auto_track_egress::Output>,
2979}
2980pub mod auto_track_egress {
2982 #[derive(Clone, PartialEq, ::prost::Oneof)]
2983 pub enum Output {
2984 #[prost(message, tag = "2")]
2985 S3(super::S3Upload),
2986 #[prost(message, tag = "3")]
2987 Gcp(super::GcpUpload),
2988 #[prost(message, tag = "4")]
2989 Azure(super::AzureBlobUpload),
2990 #[prost(message, tag = "6")]
2991 AliOss(super::AliOssUpload),
2992 }
2993}
2994#[derive(Clone, PartialEq, ::prost::Message)]
2997pub struct ExportReplayRequest {
2998 #[prost(string, tag = "1")]
2999 pub replay_id: ::prost::alloc::string::String,
3000 #[prost(int64, tag = "2")]
3001 pub start_offset_ms: i64,
3002 #[prost(int64, tag = "3")]
3003 pub end_offset_ms: i64,
3004 #[prost(message, repeated, tag = "9")]
3005 pub outputs: ::prost::alloc::vec::Vec<Output>,
3006 #[prost(message, optional, tag = "10")]
3007 pub storage: ::core::option::Option<StorageConfig>,
3008 #[prost(message, repeated, tag = "11")]
3009 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3010 #[prost(oneof = "export_replay_request::Source", tags = "4, 5, 6")]
3011 pub source: ::core::option::Option<export_replay_request::Source>,
3012 #[prost(oneof = "export_replay_request::Encoding", tags = "7, 8")]
3013 pub encoding: ::core::option::Option<export_replay_request::Encoding>,
3014}
3015pub mod export_replay_request {
3017 #[derive(Clone, PartialEq, ::prost::Oneof)]
3018 pub enum Source {
3019 #[prost(message, tag = "4")]
3020 Template(super::TemplateSource),
3021 #[prost(message, tag = "5")]
3022 Web(super::WebSource),
3023 #[prost(message, tag = "6")]
3024 Media(super::MediaSource),
3025 }
3026 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
3027 pub enum Encoding {
3028 #[prost(enumeration = "super::EncodingOptionsPreset", tag = "7")]
3029 Preset(i32),
3030 #[prost(message, tag = "8")]
3031 Advanced(super::EncodingOptions),
3032 }
3033}
3034#[derive(Clone, PartialEq, ::prost::Message)]
3037pub struct RoomCompositeEgressRequest {
3038 #[prost(string, tag = "1")]
3039 pub room_name: ::prost::alloc::string::String,
3040 #[prost(string, tag = "2")]
3041 pub layout: ::prost::alloc::string::String,
3042 #[prost(bool, tag = "3")]
3043 pub audio_only: bool,
3044 #[prost(enumeration = "AudioMixing", tag = "15")]
3045 pub audio_mixing: i32,
3046 #[prost(bool, tag = "4")]
3047 pub video_only: bool,
3048 #[prost(string, tag = "5")]
3049 pub custom_base_url: ::prost::alloc::string::String,
3050 #[prost(message, repeated, tag = "11")]
3051 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3052 #[prost(message, repeated, tag = "12")]
3053 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3054 #[prost(message, repeated, tag = "13")]
3055 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3056 #[prost(message, repeated, tag = "14")]
3057 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3058 #[prost(message, repeated, tag = "16")]
3059 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3060 #[prost(oneof = "room_composite_egress_request::Output", tags = "6, 7, 10")]
3061 pub output: ::core::option::Option<room_composite_egress_request::Output>,
3062 #[prost(oneof = "room_composite_egress_request::Options", tags = "8, 9")]
3063 pub options: ::core::option::Option<room_composite_egress_request::Options>,
3064}
3065pub mod room_composite_egress_request {
3067 #[derive(Clone, PartialEq, ::prost::Oneof)]
3068 pub enum Output {
3069 #[deprecated]
3070 #[prost(message, tag = "6")]
3071 File(super::EncodedFileOutput),
3072 #[deprecated]
3073 #[prost(message, tag = "7")]
3074 Stream(super::StreamOutput),
3075 #[deprecated]
3076 #[prost(message, tag = "10")]
3077 Segments(super::SegmentedFileOutput),
3078 }
3079 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
3080 pub enum Options {
3081 #[prost(enumeration = "super::EncodingOptionsPreset", tag = "8")]
3082 Preset(i32),
3083 #[prost(message, tag = "9")]
3084 Advanced(super::EncodingOptions),
3085 }
3086}
3087#[derive(Clone, PartialEq, ::prost::Message)]
3088pub struct WebEgressRequest {
3089 #[prost(string, tag = "1")]
3090 pub url: ::prost::alloc::string::String,
3091 #[prost(bool, tag = "2")]
3092 pub audio_only: bool,
3093 #[prost(bool, tag = "3")]
3094 pub video_only: bool,
3095 #[prost(bool, tag = "12")]
3096 pub await_start_signal: bool,
3097 #[prost(message, repeated, tag = "9")]
3098 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3099 #[prost(message, repeated, tag = "10")]
3100 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3101 #[prost(message, repeated, tag = "11")]
3102 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3103 #[prost(message, repeated, tag = "13")]
3104 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3105 #[prost(message, repeated, tag = "14")]
3106 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3107 #[prost(oneof = "web_egress_request::Output", tags = "4, 5, 6")]
3108 pub output: ::core::option::Option<web_egress_request::Output>,
3109 #[prost(oneof = "web_egress_request::Options", tags = "7, 8")]
3110 pub options: ::core::option::Option<web_egress_request::Options>,
3111}
3112pub mod web_egress_request {
3114 #[derive(Clone, PartialEq, ::prost::Oneof)]
3115 pub enum Output {
3116 #[deprecated]
3117 #[prost(message, tag = "4")]
3118 File(super::EncodedFileOutput),
3119 #[deprecated]
3120 #[prost(message, tag = "5")]
3121 Stream(super::StreamOutput),
3122 #[deprecated]
3123 #[prost(message, tag = "6")]
3124 Segments(super::SegmentedFileOutput),
3125 }
3126 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
3127 pub enum Options {
3128 #[prost(enumeration = "super::EncodingOptionsPreset", tag = "7")]
3129 Preset(i32),
3130 #[prost(message, tag = "8")]
3131 Advanced(super::EncodingOptions),
3132 }
3133}
3134#[derive(Clone, PartialEq, ::prost::Message)]
3135pub struct ParticipantEgressRequest {
3136 #[prost(string, tag = "1")]
3137 pub room_name: ::prost::alloc::string::String,
3138 #[prost(string, tag = "2")]
3139 pub identity: ::prost::alloc::string::String,
3140 #[prost(bool, tag = "3")]
3141 pub screen_share: bool,
3142 #[prost(message, repeated, tag = "6")]
3143 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3144 #[prost(message, repeated, tag = "7")]
3145 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3146 #[prost(message, repeated, tag = "8")]
3147 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3148 #[prost(message, repeated, tag = "9")]
3149 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3150 #[prost(message, repeated, tag = "10")]
3151 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3152 #[prost(oneof = "participant_egress_request::Options", tags = "4, 5")]
3153 pub options: ::core::option::Option<participant_egress_request::Options>,
3154}
3155pub mod participant_egress_request {
3157 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
3158 pub enum Options {
3159 #[prost(enumeration = "super::EncodingOptionsPreset", tag = "4")]
3160 Preset(i32),
3161 #[prost(message, tag = "5")]
3162 Advanced(super::EncodingOptions),
3163 }
3164}
3165#[derive(Clone, PartialEq, ::prost::Message)]
3166pub struct TrackCompositeEgressRequest {
3167 #[prost(string, tag = "1")]
3168 pub room_name: ::prost::alloc::string::String,
3169 #[prost(string, tag = "2")]
3170 pub audio_track_id: ::prost::alloc::string::String,
3171 #[prost(string, tag = "3")]
3172 pub video_track_id: ::prost::alloc::string::String,
3173 #[prost(message, repeated, tag = "11")]
3174 pub file_outputs: ::prost::alloc::vec::Vec<EncodedFileOutput>,
3175 #[prost(message, repeated, tag = "12")]
3176 pub stream_outputs: ::prost::alloc::vec::Vec<StreamOutput>,
3177 #[prost(message, repeated, tag = "13")]
3178 pub segment_outputs: ::prost::alloc::vec::Vec<SegmentedFileOutput>,
3179 #[prost(message, repeated, tag = "14")]
3180 pub image_outputs: ::prost::alloc::vec::Vec<ImageOutput>,
3181 #[prost(message, repeated, tag = "15")]
3182 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3183 #[prost(oneof = "track_composite_egress_request::Output", tags = "4, 5, 8")]
3184 pub output: ::core::option::Option<track_composite_egress_request::Output>,
3185 #[prost(oneof = "track_composite_egress_request::Options", tags = "6, 7")]
3186 pub options: ::core::option::Option<track_composite_egress_request::Options>,
3187}
3188pub mod track_composite_egress_request {
3190 #[derive(Clone, PartialEq, ::prost::Oneof)]
3191 pub enum Output {
3192 #[deprecated]
3193 #[prost(message, tag = "4")]
3194 File(super::EncodedFileOutput),
3195 #[deprecated]
3196 #[prost(message, tag = "5")]
3197 Stream(super::StreamOutput),
3198 #[deprecated]
3199 #[prost(message, tag = "8")]
3200 Segments(super::SegmentedFileOutput),
3201 }
3202 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
3203 pub enum Options {
3204 #[prost(enumeration = "super::EncodingOptionsPreset", tag = "6")]
3205 Preset(i32),
3206 #[prost(message, tag = "7")]
3207 Advanced(super::EncodingOptions),
3208 }
3209}
3210#[derive(Clone, PartialEq, ::prost::Message)]
3211pub struct TrackEgressRequest {
3212 #[prost(string, tag = "1")]
3213 pub room_name: ::prost::alloc::string::String,
3214 #[prost(string, tag = "2")]
3215 pub track_id: ::prost::alloc::string::String,
3216 #[prost(message, repeated, tag = "5")]
3217 pub webhooks: ::prost::alloc::vec::Vec<WebhookConfig>,
3218 #[prost(oneof = "track_egress_request::Output", tags = "3, 4")]
3219 pub output: ::core::option::Option<track_egress_request::Output>,
3220}
3221pub mod track_egress_request {
3223 #[derive(Clone, PartialEq, ::prost::Oneof)]
3224 pub enum Output {
3225 #[prost(message, tag = "3")]
3226 File(super::DirectFileOutput),
3227 #[prost(string, tag = "4")]
3228 WebsocketUrl(::prost::alloc::string::String),
3229 }
3230}
3231#[derive(Clone, PartialEq, ::prost::Message)]
3232pub struct DirectFileOutput {
3233 #[prost(string, tag = "1")]
3234 pub filepath: ::prost::alloc::string::String,
3235 #[prost(bool, tag = "5")]
3236 pub disable_manifest: bool,
3237 #[prost(oneof = "direct_file_output::Output", tags = "2, 3, 4, 6")]
3238 pub output: ::core::option::Option<direct_file_output::Output>,
3239}
3240pub mod direct_file_output {
3242 #[derive(Clone, PartialEq, ::prost::Oneof)]
3243 pub enum Output {
3244 #[prost(message, tag = "2")]
3245 S3(super::S3Upload),
3246 #[prost(message, tag = "3")]
3247 Gcp(super::GcpUpload),
3248 #[prost(message, tag = "4")]
3249 Azure(super::AzureBlobUpload),
3250 #[prost(message, tag = "6")]
3251 AliOss(super::AliOssUpload),
3252 }
3253}
3254#[derive(Clone, PartialEq, ::prost::Message)]
3255pub struct EncodedFileOutput {
3256 #[prost(enumeration = "EncodedFileType", tag = "1")]
3257 pub file_type: i32,
3258 #[prost(string, tag = "2")]
3259 pub filepath: ::prost::alloc::string::String,
3260 #[prost(bool, tag = "6")]
3261 pub disable_manifest: bool,
3262 #[prost(oneof = "encoded_file_output::Output", tags = "3, 4, 5, 7")]
3263 pub output: ::core::option::Option<encoded_file_output::Output>,
3264}
3265pub mod encoded_file_output {
3267 #[derive(Clone, PartialEq, ::prost::Oneof)]
3268 pub enum Output {
3269 #[prost(message, tag = "3")]
3270 S3(super::S3Upload),
3271 #[prost(message, tag = "4")]
3272 Gcp(super::GcpUpload),
3273 #[prost(message, tag = "5")]
3274 Azure(super::AzureBlobUpload),
3275 #[prost(message, tag = "7")]
3276 AliOss(super::AliOssUpload),
3277 }
3278}
3279#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3280pub struct UpdateLayoutRequest {
3281 #[prost(string, tag = "1")]
3282 pub egress_id: ::prost::alloc::string::String,
3283 #[prost(string, tag = "2")]
3284 pub layout: ::prost::alloc::string::String,
3285}
3286#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3287pub struct UpdateStreamRequest {
3288 #[prost(string, tag = "1")]
3289 pub egress_id: ::prost::alloc::string::String,
3290 #[prost(string, repeated, tag = "2")]
3291 pub add_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3292 #[prost(string, repeated, tag = "3")]
3293 pub remove_output_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3294}
3295#[derive(Clone, PartialEq, ::prost::Message)]
3296pub struct StreamInfoList {
3297 #[prost(message, repeated, tag = "1")]
3298 pub info: ::prost::alloc::vec::Vec<StreamInfo>,
3299}
3300#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3301#[repr(i32)]
3302pub enum AudioChannel {
3303 Both = 0,
3304 Left = 1,
3305 Right = 2,
3306}
3307impl AudioChannel {
3308 pub fn as_str_name(&self) -> &'static str {
3313 match self {
3314 Self::Both => "AUDIO_CHANNEL_BOTH",
3315 Self::Left => "AUDIO_CHANNEL_LEFT",
3316 Self::Right => "AUDIO_CHANNEL_RIGHT",
3317 }
3318 }
3319 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3321 match value {
3322 "AUDIO_CHANNEL_BOTH" => Some(Self::Both),
3323 "AUDIO_CHANNEL_LEFT" => Some(Self::Left),
3324 "AUDIO_CHANNEL_RIGHT" => Some(Self::Right),
3325 _ => None,
3326 }
3327 }
3328}
3329#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3332#[repr(i32)]
3333pub enum EncodingOptionsPreset {
3334 H264720p30 = 0,
3336 H264720p60 = 1,
3338 H2641080p30 = 2,
3340 H2641080p60 = 3,
3342 PortraitH264720p30 = 4,
3344 PortraitH264720p60 = 5,
3346 PortraitH2641080p30 = 6,
3348 PortraitH2641080p60 = 7,
3350 Passthrough = 8,
3352}
3353impl EncodingOptionsPreset {
3354 pub fn as_str_name(&self) -> &'static str {
3359 match self {
3360 Self::H264720p30 => "H264_720P_30",
3361 Self::H264720p60 => "H264_720P_60",
3362 Self::H2641080p30 => "H264_1080P_30",
3363 Self::H2641080p60 => "H264_1080P_60",
3364 Self::PortraitH264720p30 => "PORTRAIT_H264_720P_30",
3365 Self::PortraitH264720p60 => "PORTRAIT_H264_720P_60",
3366 Self::PortraitH2641080p30 => "PORTRAIT_H264_1080P_30",
3367 Self::PortraitH2641080p60 => "PORTRAIT_H264_1080P_60",
3368 Self::Passthrough => "PASSTHROUGH",
3369 }
3370 }
3371 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3373 match value {
3374 "H264_720P_30" => Some(Self::H264720p30),
3375 "H264_720P_60" => Some(Self::H264720p60),
3376 "H264_1080P_30" => Some(Self::H2641080p30),
3377 "H264_1080P_60" => Some(Self::H2641080p60),
3378 "PORTRAIT_H264_720P_30" => Some(Self::PortraitH264720p30),
3379 "PORTRAIT_H264_720P_60" => Some(Self::PortraitH264720p60),
3380 "PORTRAIT_H264_1080P_30" => Some(Self::PortraitH2641080p30),
3381 "PORTRAIT_H264_1080P_60" => Some(Self::PortraitH2641080p60),
3382 "PASSTHROUGH" => Some(Self::Passthrough),
3383 _ => None,
3384 }
3385 }
3386}
3387#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3388#[repr(i32)]
3389pub enum EncodedFileType {
3390 DefaultFiletype = 0,
3392 Mp4 = 1,
3393 Ogg = 2,
3394 Mp3 = 3,
3395}
3396impl EncodedFileType {
3397 pub fn as_str_name(&self) -> &'static str {
3402 match self {
3403 Self::DefaultFiletype => "DEFAULT_FILETYPE",
3404 Self::Mp4 => "MP4",
3405 Self::Ogg => "OGG",
3406 Self::Mp3 => "MP3",
3407 }
3408 }
3409 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3411 match value {
3412 "DEFAULT_FILETYPE" => Some(Self::DefaultFiletype),
3413 "MP4" => Some(Self::Mp4),
3414 "OGG" => Some(Self::Ogg),
3415 "MP3" => Some(Self::Mp3),
3416 _ => None,
3417 }
3418 }
3419}
3420#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3421#[repr(i32)]
3422pub enum StreamProtocol {
3423 DefaultProtocol = 0,
3425 Rtmp = 1,
3426 Srt = 2,
3427 Websocket = 3,
3428}
3429impl StreamProtocol {
3430 pub fn as_str_name(&self) -> &'static str {
3435 match self {
3436 Self::DefaultProtocol => "DEFAULT_PROTOCOL",
3437 Self::Rtmp => "RTMP",
3438 Self::Srt => "SRT",
3439 Self::Websocket => "WEBSOCKET",
3440 }
3441 }
3442 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3444 match value {
3445 "DEFAULT_PROTOCOL" => Some(Self::DefaultProtocol),
3446 "RTMP" => Some(Self::Rtmp),
3447 "SRT" => Some(Self::Srt),
3448 "WEBSOCKET" => Some(Self::Websocket),
3449 _ => None,
3450 }
3451 }
3452}
3453#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3454#[repr(i32)]
3455pub enum SegmentedFileProtocol {
3456 DefaultSegmentedFileProtocol = 0,
3457 HlsProtocol = 1,
3458}
3459impl SegmentedFileProtocol {
3460 pub fn as_str_name(&self) -> &'static str {
3465 match self {
3466 Self::DefaultSegmentedFileProtocol => "DEFAULT_SEGMENTED_FILE_PROTOCOL",
3467 Self::HlsProtocol => "HLS_PROTOCOL",
3468 }
3469 }
3470 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3472 match value {
3473 "DEFAULT_SEGMENTED_FILE_PROTOCOL" => Some(Self::DefaultSegmentedFileProtocol),
3474 "HLS_PROTOCOL" => Some(Self::HlsProtocol),
3475 _ => None,
3476 }
3477 }
3478}
3479#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3480#[repr(i32)]
3481pub enum SegmentedFileSuffix {
3482 Index = 0,
3483 Timestamp = 1,
3484}
3485impl SegmentedFileSuffix {
3486 pub fn as_str_name(&self) -> &'static str {
3491 match self {
3492 Self::Index => "INDEX",
3493 Self::Timestamp => "TIMESTAMP",
3494 }
3495 }
3496 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3498 match value {
3499 "INDEX" => Some(Self::Index),
3500 "TIMESTAMP" => Some(Self::Timestamp),
3501 _ => None,
3502 }
3503 }
3504}
3505#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3506#[repr(i32)]
3507pub enum ImageFileSuffix {
3508 ImageSuffixIndex = 0,
3509 ImageSuffixTimestamp = 1,
3510 ImageSuffixNoneOverwrite = 2,
3512}
3513impl ImageFileSuffix {
3514 pub fn as_str_name(&self) -> &'static str {
3519 match self {
3520 Self::ImageSuffixIndex => "IMAGE_SUFFIX_INDEX",
3521 Self::ImageSuffixTimestamp => "IMAGE_SUFFIX_TIMESTAMP",
3522 Self::ImageSuffixNoneOverwrite => "IMAGE_SUFFIX_NONE_OVERWRITE",
3523 }
3524 }
3525 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3527 match value {
3528 "IMAGE_SUFFIX_INDEX" => Some(Self::ImageSuffixIndex),
3529 "IMAGE_SUFFIX_TIMESTAMP" => Some(Self::ImageSuffixTimestamp),
3530 "IMAGE_SUFFIX_NONE_OVERWRITE" => Some(Self::ImageSuffixNoneOverwrite),
3531 _ => None,
3532 }
3533 }
3534}
3535#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3536#[repr(i32)]
3537pub enum EgressSourceType {
3538 Web = 0,
3539 Sdk = 1,
3540}
3541impl EgressSourceType {
3542 pub fn as_str_name(&self) -> &'static str {
3547 match self {
3548 Self::Web => "EGRESS_SOURCE_TYPE_WEB",
3549 Self::Sdk => "EGRESS_SOURCE_TYPE_SDK",
3550 }
3551 }
3552 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3554 match value {
3555 "EGRESS_SOURCE_TYPE_WEB" => Some(Self::Web),
3556 "EGRESS_SOURCE_TYPE_SDK" => Some(Self::Sdk),
3557 _ => None,
3558 }
3559 }
3560}
3561#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3562#[repr(i32)]
3563pub enum EgressStatus {
3564 EgressStarting = 0,
3565 EgressActive = 1,
3566 EgressEnding = 2,
3567 EgressComplete = 3,
3568 EgressFailed = 4,
3569 EgressAborted = 5,
3570 EgressLimitReached = 6,
3571}
3572impl EgressStatus {
3573 pub fn as_str_name(&self) -> &'static str {
3578 match self {
3579 Self::EgressStarting => "EGRESS_STARTING",
3580 Self::EgressActive => "EGRESS_ACTIVE",
3581 Self::EgressEnding => "EGRESS_ENDING",
3582 Self::EgressComplete => "EGRESS_COMPLETE",
3583 Self::EgressFailed => "EGRESS_FAILED",
3584 Self::EgressAborted => "EGRESS_ABORTED",
3585 Self::EgressLimitReached => "EGRESS_LIMIT_REACHED",
3586 }
3587 }
3588 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3590 match value {
3591 "EGRESS_STARTING" => Some(Self::EgressStarting),
3592 "EGRESS_ACTIVE" => Some(Self::EgressActive),
3593 "EGRESS_ENDING" => Some(Self::EgressEnding),
3594 "EGRESS_COMPLETE" => Some(Self::EgressComplete),
3595 "EGRESS_FAILED" => Some(Self::EgressFailed),
3596 "EGRESS_ABORTED" => Some(Self::EgressAborted),
3597 "EGRESS_LIMIT_REACHED" => Some(Self::EgressLimitReached),
3598 _ => None,
3599 }
3600 }
3601}
3602#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3603#[repr(i32)]
3604pub enum AudioMixing {
3605 DefaultMixing = 0,
3606 DualChannelAgent = 1,
3607 DualChannelAlternate = 2,
3608}
3609impl AudioMixing {
3610 pub fn as_str_name(&self) -> &'static str {
3615 match self {
3616 Self::DefaultMixing => "DEFAULT_MIXING",
3617 Self::DualChannelAgent => "DUAL_CHANNEL_AGENT",
3618 Self::DualChannelAlternate => "DUAL_CHANNEL_ALTERNATE",
3619 }
3620 }
3621 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3623 match value {
3624 "DEFAULT_MIXING" => Some(Self::DefaultMixing),
3625 "DUAL_CHANNEL_AGENT" => Some(Self::DualChannelAgent),
3626 "DUAL_CHANNEL_ALTERNATE" => Some(Self::DualChannelAlternate),
3627 _ => None,
3628 }
3629 }
3630}
3631#[derive(Clone, PartialEq, ::prost::Message)]
3632pub struct SignalRequest {
3633 #[prost(oneof = "signal_request::Message", tags = "1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23")]
3634 pub message: ::core::option::Option<signal_request::Message>,
3635}
3636pub mod signal_request {
3638 #[derive(Clone, PartialEq, ::prost::Oneof)]
3639 pub enum Message {
3640 #[prost(message, tag = "1")]
3642 Offer(super::SessionDescription),
3643 #[prost(message, tag = "2")]
3645 Answer(super::SessionDescription),
3646 #[prost(message, tag = "3")]
3647 Trickle(super::TrickleRequest),
3648 #[prost(message, tag = "4")]
3649 AddTrack(super::AddTrackRequest),
3650 #[prost(message, tag = "5")]
3652 Mute(super::MuteTrackRequest),
3653 #[prost(message, tag = "6")]
3655 Subscription(super::UpdateSubscription),
3656 #[prost(message, tag = "7")]
3658 TrackSetting(super::UpdateTrackSettings),
3659 #[prost(message, tag = "8")]
3661 Leave(super::LeaveRequest),
3662 #[deprecated]
3664 #[prost(message, tag = "10")]
3665 UpdateLayers(super::UpdateVideoLayers),
3666 #[prost(message, tag = "11")]
3668 SubscriptionPermission(super::SubscriptionPermission),
3669 #[prost(message, tag = "12")]
3671 SyncState(super::SyncState),
3672 #[prost(message, tag = "13")]
3674 Simulate(super::SimulateScenario),
3675 #[prost(int64, tag = "14")]
3679 Ping(i64),
3680 #[prost(message, tag = "15")]
3683 UpdateMetadata(super::UpdateParticipantMetadata),
3684 #[prost(message, tag = "16")]
3685 PingReq(super::Ping),
3686 #[prost(message, tag = "17")]
3688 UpdateAudioTrack(super::UpdateLocalAudioTrack),
3689 #[prost(message, tag = "18")]
3691 UpdateVideoTrack(super::UpdateLocalVideoTrack),
3692 #[prost(message, tag = "19")]
3694 PublishDataTrackRequest(super::PublishDataTrackRequest),
3695 #[prost(message, tag = "20")]
3697 UnpublishDataTrackRequest(super::UnpublishDataTrackRequest),
3698 #[prost(message, tag = "21")]
3700 UpdateDataSubscription(super::UpdateDataSubscription),
3701 #[prost(message, tag = "22")]
3703 StoreDataBlobRequest(super::StoreDataBlobRequest),
3704 #[prost(message, tag = "23")]
3706 GetDataBlobRequest(super::GetDataBlobRequest),
3707 }
3708}
3709#[derive(Clone, PartialEq, ::prost::Message)]
3710pub struct SignalResponse {
3711 #[prost(oneof = "signal_response::Message", tags = "1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31")]
3712 pub message: ::core::option::Option<signal_response::Message>,
3713}
3714pub mod signal_response {
3716 #[derive(Clone, PartialEq, ::prost::Oneof)]
3717 pub enum Message {
3718 #[prost(message, tag = "1")]
3720 Join(super::JoinResponse),
3721 #[prost(message, tag = "2")]
3723 Answer(super::SessionDescription),
3724 #[prost(message, tag = "3")]
3726 Offer(super::SessionDescription),
3727 #[prost(message, tag = "4")]
3729 Trickle(super::TrickleRequest),
3730 #[prost(message, tag = "5")]
3732 Update(super::ParticipantUpdate),
3733 #[prost(message, tag = "6")]
3735 TrackPublished(super::TrackPublishedResponse),
3736 #[prost(message, tag = "8")]
3738 Leave(super::LeaveRequest),
3739 #[prost(message, tag = "9")]
3741 Mute(super::MuteTrackRequest),
3742 #[prost(message, tag = "10")]
3744 SpeakersChanged(super::SpeakersChanged),
3745 #[prost(message, tag = "11")]
3747 RoomUpdate(super::RoomUpdate),
3748 #[prost(message, tag = "12")]
3750 ConnectionQuality(super::ConnectionQualityUpdate),
3751 #[prost(message, tag = "13")]
3754 StreamStateUpdate(super::StreamStateUpdate),
3755 #[prost(message, tag = "14")]
3757 SubscribedQualityUpdate(super::SubscribedQualityUpdate),
3758 #[prost(message, tag = "15")]
3760 SubscriptionPermissionUpdate(super::SubscriptionPermissionUpdate),
3761 #[prost(string, tag = "16")]
3763 RefreshToken(::prost::alloc::string::String),
3764 #[prost(message, tag = "17")]
3766 TrackUnpublished(super::TrackUnpublishedResponse),
3767 #[prost(int64, tag = "18")]
3771 Pong(i64),
3772 #[prost(message, tag = "19")]
3774 Reconnect(super::ReconnectResponse),
3775 #[prost(message, tag = "20")]
3777 PongResp(super::Pong),
3778 #[prost(message, tag = "21")]
3780 SubscriptionResponse(super::SubscriptionResponse),
3781 #[prost(message, tag = "22")]
3783 RequestResponse(super::RequestResponse),
3784 #[prost(message, tag = "23")]
3786 TrackSubscribed(super::TrackSubscribed),
3787 #[prost(message, tag = "24")]
3789 RoomMoved(super::RoomMovedResponse),
3790 #[prost(message, tag = "25")]
3792 MediaSectionsRequirement(super::MediaSectionsRequirement),
3793 #[prost(message, tag = "26")]
3795 SubscribedAudioCodecUpdate(super::SubscribedAudioCodecUpdate),
3796 #[prost(message, tag = "27")]
3798 PublishDataTrackResponse(super::PublishDataTrackResponse),
3799 #[prost(message, tag = "28")]
3801 UnpublishDataTrackResponse(super::UnpublishDataTrackResponse),
3802 #[prost(message, tag = "29")]
3804 DataTrackSubscriberHandles(super::DataTrackSubscriberHandles),
3805 #[prost(message, tag = "30")]
3807 StoreDataBlobResponse(super::StoreDataBlobResponse),
3808 #[prost(message, tag = "31")]
3810 GetDataBlobResponse(super::GetDataBlobResponse),
3811 }
3812}
3813#[derive(Clone, PartialEq, ::prost::Message)]
3814pub struct SimulcastCodec {
3815 #[prost(string, tag = "1")]
3816 pub codec: ::prost::alloc::string::String,
3817 #[prost(string, tag = "2")]
3818 pub cid: ::prost::alloc::string::String,
3819 #[prost(message, repeated, tag = "4")]
3820 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3821 #[prost(enumeration = "video_layer::Mode", tag = "5")]
3822 pub video_layer_mode: i32,
3823}
3824#[derive(Clone, PartialEq, ::prost::Message)]
3825pub struct AddTrackRequest {
3826 #[prost(string, tag = "1")]
3828 pub cid: ::prost::alloc::string::String,
3829 #[prost(string, tag = "2")]
3830 pub name: ::prost::alloc::string::String,
3831 #[prost(enumeration = "TrackType", tag = "3")]
3832 pub r#type: i32,
3833 #[prost(uint32, tag = "4")]
3834 pub width: u32,
3835 #[prost(uint32, tag = "5")]
3836 pub height: u32,
3837 #[prost(bool, tag = "6")]
3839 pub muted: bool,
3840 #[deprecated]
3844 #[prost(bool, tag = "7")]
3845 pub disable_dtx: bool,
3846 #[prost(enumeration = "TrackSource", tag = "8")]
3847 pub source: i32,
3848 #[prost(message, repeated, tag = "9")]
3849 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
3850 #[prost(message, repeated, tag = "10")]
3851 pub simulcast_codecs: ::prost::alloc::vec::Vec<SimulcastCodec>,
3852 #[prost(string, tag = "11")]
3854 pub sid: ::prost::alloc::string::String,
3855 #[deprecated]
3857 #[prost(bool, tag = "12")]
3858 pub stereo: bool,
3859 #[prost(bool, tag = "13")]
3861 pub disable_red: bool,
3862 #[prost(enumeration = "encryption::Type", tag = "14")]
3863 pub encryption: i32,
3864 #[prost(string, tag = "15")]
3867 pub stream: ::prost::alloc::string::String,
3868 #[prost(enumeration = "BackupCodecPolicy", tag = "16")]
3869 pub backup_codec_policy: i32,
3870 #[prost(enumeration = "AudioTrackFeature", repeated, tag = "17")]
3871 pub audio_features: ::prost::alloc::vec::Vec<i32>,
3872 #[prost(enumeration = "PacketTrailerFeature", repeated, tag = "18")]
3873 pub packet_trailer_features: ::prost::alloc::vec::Vec<i32>,
3874}
3875#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3876pub struct PublishDataTrackRequest {
3877 #[prost(uint32, tag = "1")]
3880 pub pub_handle: u32,
3881 #[prost(string, tag = "2")]
3884 pub name: ::prost::alloc::string::String,
3885 #[prost(enumeration = "encryption::Type", tag = "3")]
3887 pub encryption: i32,
3888 #[prost(message, optional, tag = "4")]
3890 pub frame_encoding: ::core::option::Option<DataTrackFrameEncoding>,
3891 #[prost(message, optional, tag = "5")]
3894 pub schema: ::core::option::Option<DataTrackSchemaId>,
3895}
3896#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3897pub struct PublishDataTrackResponse {
3898 #[prost(message, optional, tag = "1")]
3900 pub info: ::core::option::Option<DataTrackInfo>,
3901}
3902#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3903pub struct UnpublishDataTrackRequest {
3904 #[prost(uint32, tag = "1")]
3906 pub pub_handle: u32,
3907}
3908#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3909pub struct UnpublishDataTrackResponse {
3910 #[prost(message, optional, tag = "1")]
3912 pub info: ::core::option::Option<DataTrackInfo>,
3913}
3914#[derive(Clone, PartialEq, ::prost::Message)]
3915pub struct DataTrackSubscriberHandles {
3916 #[prost(map = "uint32, message", tag = "1")]
3918 pub sub_handles: ::std::collections::HashMap<u32, data_track_subscriber_handles::PublishedDataTrack>,
3919}
3920pub mod data_track_subscriber_handles {
3922 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3923 pub struct PublishedDataTrack {
3924 #[prost(string, tag = "1")]
3925 pub publisher_identity: ::prost::alloc::string::String,
3926 #[prost(string, tag = "2")]
3927 pub publisher_sid: ::prost::alloc::string::String,
3928 #[prost(string, tag = "3")]
3929 pub track_sid: ::prost::alloc::string::String,
3930 }
3931}
3932#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3933pub struct TrickleRequest {
3934 #[prost(string, tag = "1")]
3935 pub candidate_init: ::prost::alloc::string::String,
3936 #[prost(enumeration = "SignalTarget", tag = "2")]
3937 pub target: i32,
3938 #[prost(bool, tag = "3")]
3939 pub r#final: bool,
3940}
3941#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3942pub struct MuteTrackRequest {
3943 #[prost(string, tag = "1")]
3944 pub sid: ::prost::alloc::string::String,
3945 #[prost(bool, tag = "2")]
3946 pub muted: bool,
3947}
3948#[derive(Clone, PartialEq, ::prost::Message)]
3949pub struct JoinResponse {
3950 #[prost(message, optional, tag = "1")]
3951 pub room: ::core::option::Option<Room>,
3952 #[prost(message, optional, tag = "2")]
3953 pub participant: ::core::option::Option<ParticipantInfo>,
3954 #[prost(message, repeated, tag = "3")]
3955 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
3956 #[prost(string, tag = "4")]
3958 pub server_version: ::prost::alloc::string::String,
3959 #[prost(message, repeated, tag = "5")]
3960 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3961 #[prost(bool, tag = "6")]
3963 pub subscriber_primary: bool,
3964 #[prost(string, tag = "7")]
3967 pub alternative_url: ::prost::alloc::string::String,
3968 #[prost(message, optional, tag = "8")]
3969 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3970 #[prost(string, tag = "9")]
3972 pub server_region: ::prost::alloc::string::String,
3973 #[prost(int32, tag = "10")]
3974 pub ping_timeout: i32,
3975 #[prost(int32, tag = "11")]
3976 pub ping_interval: i32,
3977 #[prost(message, optional, tag = "12")]
3978 pub server_info: ::core::option::Option<ServerInfo>,
3979 #[prost(bytes = "vec", tag = "13")]
3981 pub sif_trailer: ::prost::alloc::vec::Vec<u8>,
3982 #[prost(message, repeated, tag = "14")]
3983 pub enabled_publish_codecs: ::prost::alloc::vec::Vec<Codec>,
3984 #[prost(bool, tag = "15")]
3986 pub fast_publish: bool,
3987}
3988#[derive(Clone, PartialEq, ::prost::Message)]
3989pub struct ReconnectResponse {
3990 #[prost(message, repeated, tag = "1")]
3991 pub ice_servers: ::prost::alloc::vec::Vec<IceServer>,
3992 #[prost(message, optional, tag = "2")]
3993 pub client_configuration: ::core::option::Option<ClientConfiguration>,
3994 #[prost(message, optional, tag = "3")]
3995 pub server_info: ::core::option::Option<ServerInfo>,
3996 #[prost(uint32, tag = "4")]
3998 pub last_message_seq: u32,
3999}
4000#[derive(Clone, PartialEq, ::prost::Message)]
4001pub struct TrackPublishedResponse {
4002 #[prost(string, tag = "1")]
4003 pub cid: ::prost::alloc::string::String,
4004 #[prost(message, optional, tag = "2")]
4005 pub track: ::core::option::Option<TrackInfo>,
4006}
4007#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4008pub struct TrackUnpublishedResponse {
4009 #[prost(string, tag = "1")]
4010 pub track_sid: ::prost::alloc::string::String,
4011}
4012#[derive(Clone, PartialEq, ::prost::Message)]
4013pub struct SessionDescription {
4014 #[prost(string, tag = "1")]
4016 pub r#type: ::prost::alloc::string::String,
4017 #[prost(string, tag = "2")]
4018 pub sdp: ::prost::alloc::string::String,
4019 #[prost(uint32, tag = "3")]
4020 pub id: u32,
4021 #[prost(map = "string, string", tag = "4")]
4022 pub mid_to_track_id: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4023}
4024#[derive(Clone, PartialEq, ::prost::Message)]
4025pub struct ParticipantUpdate {
4026 #[prost(message, repeated, tag = "1")]
4027 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4028}
4029#[derive(Clone, PartialEq, ::prost::Message)]
4030pub struct UpdateSubscription {
4031 #[prost(string, repeated, tag = "1")]
4032 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4033 #[prost(bool, tag = "2")]
4034 pub subscribe: bool,
4035 #[prost(message, repeated, tag = "3")]
4036 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
4037}
4038#[derive(Clone, PartialEq, ::prost::Message)]
4039pub struct UpdateDataSubscription {
4040 #[prost(message, repeated, tag = "1")]
4041 pub updates: ::prost::alloc::vec::Vec<update_data_subscription::Update>,
4042}
4043pub mod update_data_subscription {
4045 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4046 pub struct Update {
4047 #[prost(string, tag = "1")]
4048 pub track_sid: ::prost::alloc::string::String,
4049 #[prost(bool, tag = "2")]
4050 pub subscribe: bool,
4051 #[prost(message, optional, tag = "3")]
4054 pub options: ::core::option::Option<super::DataTrackSubscriptionOptions>,
4055 }
4056}
4057#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4058pub struct StoreDataBlobRequest {
4059 #[prost(uint32, tag = "1")]
4060 pub request_id: u32,
4061 #[prost(message, optional, tag = "2")]
4062 pub blob: ::core::option::Option<DataBlob>,
4063}
4064#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4065pub struct StoreDataBlobResponse {
4066 #[prost(uint32, tag = "1")]
4067 pub request_id: u32,
4068 #[prost(message, optional, tag = "2")]
4070 pub key: ::core::option::Option<DataBlobKey>,
4071}
4072#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4073pub struct GetDataBlobRequest {
4074 #[prost(uint32, tag = "1")]
4075 pub request_id: u32,
4076 #[prost(string, tag = "2")]
4078 pub participant_identity: ::prost::alloc::string::String,
4079 #[prost(message, optional, tag = "3")]
4081 pub key: ::core::option::Option<DataBlobKey>,
4082}
4083#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4084pub struct GetDataBlobResponse {
4085 #[prost(uint32, tag = "1")]
4086 pub request_id: u32,
4087 #[prost(message, optional, tag = "2")]
4088 pub blob: ::core::option::Option<DataBlob>,
4089}
4090#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4091pub struct UpdateTrackSettings {
4092 #[prost(string, repeated, tag = "1")]
4093 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4094 #[prost(bool, tag = "3")]
4096 pub disabled: bool,
4097 #[prost(enumeration = "VideoQuality", tag = "4")]
4099 pub quality: i32,
4100 #[prost(uint32, tag = "5")]
4102 pub width: u32,
4103 #[prost(uint32, tag = "6")]
4105 pub height: u32,
4106 #[prost(uint32, tag = "7")]
4107 pub fps: u32,
4108 #[prost(uint32, tag = "8")]
4116 pub priority: u32,
4117}
4118#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4119pub struct UpdateLocalAudioTrack {
4120 #[prost(string, tag = "1")]
4121 pub track_sid: ::prost::alloc::string::String,
4122 #[prost(enumeration = "AudioTrackFeature", repeated, tag = "2")]
4123 pub features: ::prost::alloc::vec::Vec<i32>,
4124}
4125#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4126pub struct UpdateLocalVideoTrack {
4127 #[prost(string, tag = "1")]
4128 pub track_sid: ::prost::alloc::string::String,
4129 #[prost(uint32, tag = "2")]
4130 pub width: u32,
4131 #[prost(uint32, tag = "3")]
4132 pub height: u32,
4133}
4134#[derive(Clone, PartialEq, ::prost::Message)]
4135pub struct LeaveRequest {
4136 #[prost(bool, tag = "1")]
4140 pub can_reconnect: bool,
4141 #[prost(enumeration = "DisconnectReason", tag = "2")]
4142 pub reason: i32,
4143 #[prost(enumeration = "leave_request::Action", tag = "3")]
4144 pub action: i32,
4145 #[prost(message, optional, tag = "4")]
4146 pub regions: ::core::option::Option<RegionSettings>,
4147}
4148pub mod leave_request {
4150 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4152 #[repr(i32)]
4153 pub enum Action {
4154 Disconnect = 0,
4156 Resume = 1,
4158 Reconnect = 2,
4160 }
4161 impl Action {
4162 pub fn as_str_name(&self) -> &'static str {
4167 match self {
4168 Self::Disconnect => "DISCONNECT",
4169 Self::Resume => "RESUME",
4170 Self::Reconnect => "RECONNECT",
4171 }
4172 }
4173 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4175 match value {
4176 "DISCONNECT" => Some(Self::Disconnect),
4177 "RESUME" => Some(Self::Resume),
4178 "RECONNECT" => Some(Self::Reconnect),
4179 _ => None,
4180 }
4181 }
4182 }
4183}
4184#[derive(Clone, PartialEq, ::prost::Message)]
4186pub struct UpdateVideoLayers {
4187 #[prost(string, tag = "1")]
4188 pub track_sid: ::prost::alloc::string::String,
4189 #[prost(message, repeated, tag = "2")]
4190 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
4191}
4192#[derive(Clone, PartialEq, ::prost::Message)]
4193pub struct UpdateParticipantMetadata {
4194 #[prost(string, tag = "1")]
4195 pub metadata: ::prost::alloc::string::String,
4196 #[prost(string, tag = "2")]
4197 pub name: ::prost::alloc::string::String,
4198 #[prost(map = "string, string", tag = "3")]
4201 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4202 #[prost(uint32, tag = "4")]
4203 pub request_id: u32,
4204}
4205#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4206pub struct IceServer {
4207 #[prost(string, repeated, tag = "1")]
4208 pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4209 #[prost(string, tag = "2")]
4210 pub username: ::prost::alloc::string::String,
4211 #[prost(string, tag = "3")]
4212 pub credential: ::prost::alloc::string::String,
4213}
4214#[derive(Clone, PartialEq, ::prost::Message)]
4215pub struct SpeakersChanged {
4216 #[prost(message, repeated, tag = "1")]
4217 pub speakers: ::prost::alloc::vec::Vec<SpeakerInfo>,
4218}
4219#[derive(Clone, PartialEq, ::prost::Message)]
4220pub struct RoomUpdate {
4221 #[prost(message, optional, tag = "1")]
4222 pub room: ::core::option::Option<Room>,
4223}
4224#[derive(Clone, PartialEq, ::prost::Message)]
4225pub struct ConnectionQualityInfo {
4226 #[prost(string, tag = "1")]
4227 pub participant_sid: ::prost::alloc::string::String,
4228 #[prost(enumeration = "ConnectionQuality", tag = "2")]
4229 pub quality: i32,
4230 #[prost(float, tag = "3")]
4231 pub score: f32,
4232}
4233#[derive(Clone, PartialEq, ::prost::Message)]
4234pub struct ConnectionQualityUpdate {
4235 #[prost(message, repeated, tag = "1")]
4236 pub updates: ::prost::alloc::vec::Vec<ConnectionQualityInfo>,
4237}
4238#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4239pub struct StreamStateInfo {
4240 #[prost(string, tag = "1")]
4241 pub participant_sid: ::prost::alloc::string::String,
4242 #[prost(string, tag = "2")]
4243 pub track_sid: ::prost::alloc::string::String,
4244 #[prost(enumeration = "StreamState", tag = "3")]
4245 pub state: i32,
4246}
4247#[derive(Clone, PartialEq, ::prost::Message)]
4248pub struct StreamStateUpdate {
4249 #[prost(message, repeated, tag = "1")]
4250 pub stream_states: ::prost::alloc::vec::Vec<StreamStateInfo>,
4251}
4252#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4253pub struct SubscribedQuality {
4254 #[prost(enumeration = "VideoQuality", tag = "1")]
4255 pub quality: i32,
4256 #[prost(bool, tag = "2")]
4257 pub enabled: bool,
4258}
4259#[derive(Clone, PartialEq, ::prost::Message)]
4260pub struct SubscribedCodec {
4261 #[prost(string, tag = "1")]
4262 pub codec: ::prost::alloc::string::String,
4263 #[prost(message, repeated, tag = "2")]
4264 pub qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
4265}
4266#[derive(Clone, PartialEq, ::prost::Message)]
4267pub struct SubscribedQualityUpdate {
4268 #[prost(string, tag = "1")]
4269 pub track_sid: ::prost::alloc::string::String,
4270 #[deprecated]
4271 #[prost(message, repeated, tag = "2")]
4272 pub subscribed_qualities: ::prost::alloc::vec::Vec<SubscribedQuality>,
4273 #[prost(message, repeated, tag = "3")]
4274 pub subscribed_codecs: ::prost::alloc::vec::Vec<SubscribedCodec>,
4275}
4276#[derive(Clone, PartialEq, ::prost::Message)]
4277pub struct SubscribedAudioCodecUpdate {
4278 #[prost(string, tag = "1")]
4279 pub track_sid: ::prost::alloc::string::String,
4280 #[prost(message, repeated, tag = "2")]
4281 pub subscribed_audio_codecs: ::prost::alloc::vec::Vec<SubscribedAudioCodec>,
4282}
4283#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4284pub struct TrackPermission {
4285 #[prost(string, tag = "1")]
4287 pub participant_sid: ::prost::alloc::string::String,
4288 #[prost(bool, tag = "2")]
4289 pub all_tracks: bool,
4290 #[prost(string, repeated, tag = "3")]
4291 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4292 #[prost(string, tag = "4")]
4293 pub participant_identity: ::prost::alloc::string::String,
4294}
4295#[derive(Clone, PartialEq, ::prost::Message)]
4296pub struct SubscriptionPermission {
4297 #[prost(bool, tag = "1")]
4298 pub all_participants: bool,
4299 #[prost(message, repeated, tag = "2")]
4300 pub track_permissions: ::prost::alloc::vec::Vec<TrackPermission>,
4301}
4302#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4303pub struct SubscriptionPermissionUpdate {
4304 #[prost(string, tag = "1")]
4305 pub participant_sid: ::prost::alloc::string::String,
4306 #[prost(string, tag = "2")]
4307 pub track_sid: ::prost::alloc::string::String,
4308 #[prost(bool, tag = "3")]
4309 pub allowed: bool,
4310}
4311#[derive(Clone, PartialEq, ::prost::Message)]
4312pub struct RoomMovedResponse {
4313 #[prost(message, optional, tag = "1")]
4315 pub room: ::core::option::Option<Room>,
4316 #[prost(string, tag = "2")]
4318 pub token: ::prost::alloc::string::String,
4319 #[prost(message, optional, tag = "3")]
4320 pub participant: ::core::option::Option<ParticipantInfo>,
4321 #[prost(message, repeated, tag = "4")]
4322 pub other_participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
4323}
4324#[derive(Clone, PartialEq, ::prost::Message)]
4325pub struct SyncState {
4326 #[prost(message, optional, tag = "1")]
4330 pub answer: ::core::option::Option<SessionDescription>,
4331 #[prost(message, optional, tag = "2")]
4332 pub subscription: ::core::option::Option<UpdateSubscription>,
4333 #[prost(message, repeated, tag = "3")]
4334 pub publish_tracks: ::prost::alloc::vec::Vec<TrackPublishedResponse>,
4335 #[prost(message, repeated, tag = "4")]
4336 pub data_channels: ::prost::alloc::vec::Vec<DataChannelInfo>,
4337 #[prost(message, optional, tag = "5")]
4341 pub offer: ::core::option::Option<SessionDescription>,
4342 #[prost(string, repeated, tag = "6")]
4343 pub track_sids_disabled: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4344 #[prost(message, repeated, tag = "7")]
4345 pub datachannel_receive_states: ::prost::alloc::vec::Vec<DataChannelReceiveState>,
4346 #[prost(message, repeated, tag = "8")]
4347 pub publish_data_tracks: ::prost::alloc::vec::Vec<PublishDataTrackResponse>,
4348 #[prost(message, optional, tag = "9")]
4349 pub data_subscription: ::core::option::Option<UpdateDataSubscription>,
4350}
4351#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4352pub struct DataChannelReceiveState {
4353 #[prost(string, tag = "1")]
4354 pub publisher_sid: ::prost::alloc::string::String,
4355 #[prost(uint32, tag = "2")]
4356 pub last_seq: u32,
4357}
4358#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4359pub struct DataChannelInfo {
4360 #[prost(string, tag = "1")]
4361 pub label: ::prost::alloc::string::String,
4362 #[prost(uint32, tag = "2")]
4363 pub id: u32,
4364 #[prost(enumeration = "SignalTarget", tag = "3")]
4365 pub target: i32,
4366}
4367#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4368pub struct SimulateScenario {
4369 #[prost(oneof = "simulate_scenario::Scenario", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9")]
4370 pub scenario: ::core::option::Option<simulate_scenario::Scenario>,
4371}
4372pub mod simulate_scenario {
4374 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
4375 pub enum Scenario {
4376 #[prost(int32, tag = "1")]
4378 SpeakerUpdate(i32),
4379 #[prost(bool, tag = "2")]
4381 NodeFailure(bool),
4382 #[prost(bool, tag = "3")]
4384 Migration(bool),
4385 #[prost(bool, tag = "4")]
4387 ServerLeave(bool),
4388 #[prost(enumeration = "super::CandidateProtocol", tag = "5")]
4390 SwitchCandidateProtocol(i32),
4391 #[prost(int64, tag = "6")]
4394 SubscriberBandwidth(i64),
4395 #[prost(bool, tag = "7")]
4397 DisconnectSignalOnResume(bool),
4398 #[prost(bool, tag = "8")]
4400 DisconnectSignalOnResumeNoMessages(bool),
4401 #[prost(bool, tag = "9")]
4403 LeaveRequestFullReconnect(bool),
4404 }
4405}
4406#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4407pub struct Ping {
4408 #[prost(int64, tag = "1")]
4409 pub timestamp: i64,
4410 #[prost(int64, tag = "2")]
4412 pub rtt: i64,
4413}
4414#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4415pub struct Pong {
4416 #[prost(int64, tag = "1")]
4418 pub last_ping_timestamp: i64,
4419 #[prost(int64, tag = "2")]
4420 pub timestamp: i64,
4421}
4422#[derive(Clone, PartialEq, ::prost::Message)]
4423pub struct RegionSettings {
4424 #[prost(message, repeated, tag = "1")]
4425 pub regions: ::prost::alloc::vec::Vec<RegionInfo>,
4426}
4427#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4428pub struct RegionInfo {
4429 #[prost(string, tag = "1")]
4430 pub region: ::prost::alloc::string::String,
4431 #[prost(string, tag = "2")]
4432 pub url: ::prost::alloc::string::String,
4433 #[prost(int64, tag = "3")]
4434 pub distance: i64,
4435}
4436#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4437pub struct SubscriptionResponse {
4438 #[prost(string, tag = "1")]
4439 pub track_sid: ::prost::alloc::string::String,
4440 #[prost(enumeration = "SubscriptionError", tag = "2")]
4441 pub err: i32,
4442}
4443#[derive(Clone, PartialEq, ::prost::Message)]
4444pub struct RequestResponse {
4445 #[prost(uint32, tag = "1")]
4446 pub request_id: u32,
4447 #[prost(enumeration = "request_response::Reason", tag = "2")]
4448 pub reason: i32,
4449 #[prost(string, tag = "3")]
4450 pub message: ::prost::alloc::string::String,
4451 #[prost(oneof = "request_response::Request", tags = "4, 5, 6, 7, 8, 9, 10, 11")]
4452 pub request: ::core::option::Option<request_response::Request>,
4453}
4454pub mod request_response {
4456 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4457 #[repr(i32)]
4458 pub enum Reason {
4459 Ok = 0,
4460 NotFound = 1,
4461 NotAllowed = 2,
4462 LimitExceeded = 3,
4463 Queued = 4,
4464 UnsupportedType = 5,
4465 UnclassifiedError = 6,
4466 InvalidHandle = 7,
4467 InvalidName = 8,
4468 DuplicateHandle = 9,
4469 DuplicateName = 10,
4470 InvalidRequest = 11,
4471 }
4472 impl Reason {
4473 pub fn as_str_name(&self) -> &'static str {
4478 match self {
4479 Self::Ok => "OK",
4480 Self::NotFound => "NOT_FOUND",
4481 Self::NotAllowed => "NOT_ALLOWED",
4482 Self::LimitExceeded => "LIMIT_EXCEEDED",
4483 Self::Queued => "QUEUED",
4484 Self::UnsupportedType => "UNSUPPORTED_TYPE",
4485 Self::UnclassifiedError => "UNCLASSIFIED_ERROR",
4486 Self::InvalidHandle => "INVALID_HANDLE",
4487 Self::InvalidName => "INVALID_NAME",
4488 Self::DuplicateHandle => "DUPLICATE_HANDLE",
4489 Self::DuplicateName => "DUPLICATE_NAME",
4490 Self::InvalidRequest => "INVALID_REQUEST",
4491 }
4492 }
4493 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4495 match value {
4496 "OK" => Some(Self::Ok),
4497 "NOT_FOUND" => Some(Self::NotFound),
4498 "NOT_ALLOWED" => Some(Self::NotAllowed),
4499 "LIMIT_EXCEEDED" => Some(Self::LimitExceeded),
4500 "QUEUED" => Some(Self::Queued),
4501 "UNSUPPORTED_TYPE" => Some(Self::UnsupportedType),
4502 "UNCLASSIFIED_ERROR" => Some(Self::UnclassifiedError),
4503 "INVALID_HANDLE" => Some(Self::InvalidHandle),
4504 "INVALID_NAME" => Some(Self::InvalidName),
4505 "DUPLICATE_HANDLE" => Some(Self::DuplicateHandle),
4506 "DUPLICATE_NAME" => Some(Self::DuplicateName),
4507 "INVALID_REQUEST" => Some(Self::InvalidRequest),
4508 _ => None,
4509 }
4510 }
4511 }
4512 #[derive(Clone, PartialEq, ::prost::Oneof)]
4513 pub enum Request {
4514 #[prost(message, tag = "4")]
4515 Trickle(super::TrickleRequest),
4516 #[prost(message, tag = "5")]
4517 AddTrack(super::AddTrackRequest),
4518 #[prost(message, tag = "6")]
4519 Mute(super::MuteTrackRequest),
4520 #[prost(message, tag = "7")]
4521 UpdateMetadata(super::UpdateParticipantMetadata),
4522 #[prost(message, tag = "8")]
4523 UpdateAudioTrack(super::UpdateLocalAudioTrack),
4524 #[prost(message, tag = "9")]
4525 UpdateVideoTrack(super::UpdateLocalVideoTrack),
4526 #[prost(message, tag = "10")]
4527 PublishDataTrack(super::PublishDataTrackRequest),
4528 #[prost(message, tag = "11")]
4529 UnpublishDataTrack(super::UnpublishDataTrackRequest),
4530 }
4531}
4532#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4533pub struct TrackSubscribed {
4534 #[prost(string, tag = "1")]
4535 pub track_sid: ::prost::alloc::string::String,
4536}
4537#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4538pub struct ConnectionSettings {
4539 #[prost(bool, tag = "1")]
4540 pub auto_subscribe: bool,
4541 #[prost(bool, tag = "2")]
4542 pub adaptive_stream: bool,
4543 #[prost(bool, optional, tag = "3")]
4544 pub subscriber_allow_pause: ::core::option::Option<bool>,
4545 #[prost(bool, tag = "4")]
4546 pub disable_ice_lite: bool,
4547 #[prost(bool, optional, tag = "5")]
4548 pub auto_subscribe_data_track: ::core::option::Option<bool>,
4549}
4550#[derive(Clone, PartialEq, ::prost::Message)]
4551pub struct JoinRequest {
4552 #[prost(message, optional, tag = "1")]
4553 pub client_info: ::core::option::Option<ClientInfo>,
4554 #[prost(message, optional, tag = "2")]
4555 pub connection_settings: ::core::option::Option<ConnectionSettings>,
4556 #[prost(string, tag = "3")]
4558 pub metadata: ::prost::alloc::string::String,
4559 #[prost(map = "string, string", tag = "4")]
4563 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4564 #[prost(message, repeated, tag = "5")]
4565 pub add_track_requests: ::prost::alloc::vec::Vec<AddTrackRequest>,
4566 #[prost(message, optional, tag = "6")]
4567 pub publisher_offer: ::core::option::Option<SessionDescription>,
4568 #[prost(bool, tag = "7")]
4569 pub reconnect: bool,
4570 #[prost(enumeration = "ReconnectReason", tag = "8")]
4571 pub reconnect_reason: i32,
4572 #[prost(string, tag = "9")]
4573 pub participant_sid: ::prost::alloc::string::String,
4574 #[prost(message, optional, tag = "10")]
4575 pub sync_state: ::core::option::Option<SyncState>,
4576}
4577#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4578pub struct WrappedJoinRequest {
4579 #[prost(enumeration = "wrapped_join_request::Compression", tag = "1")]
4580 pub compression: i32,
4581 #[prost(bytes = "vec", tag = "2")]
4583 pub join_request: ::prost::alloc::vec::Vec<u8>,
4584}
4585pub mod wrapped_join_request {
4587 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4588 #[repr(i32)]
4589 pub enum Compression {
4590 None = 0,
4591 Gzip = 1,
4592 }
4593 impl Compression {
4594 pub fn as_str_name(&self) -> &'static str {
4599 match self {
4600 Self::None => "NONE",
4601 Self::Gzip => "GZIP",
4602 }
4603 }
4604 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4606 match value {
4607 "NONE" => Some(Self::None),
4608 "GZIP" => Some(Self::Gzip),
4609 _ => None,
4610 }
4611 }
4612 }
4613}
4614#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4615pub struct MediaSectionsRequirement {
4616 #[prost(uint32, tag = "1")]
4617 pub num_audios: u32,
4618 #[prost(uint32, tag = "2")]
4619 pub num_videos: u32,
4620}
4621#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4622#[repr(i32)]
4623pub enum SignalTarget {
4624 Publisher = 0,
4625 Subscriber = 1,
4626}
4627impl SignalTarget {
4628 pub fn as_str_name(&self) -> &'static str {
4633 match self {
4634 Self::Publisher => "PUBLISHER",
4635 Self::Subscriber => "SUBSCRIBER",
4636 }
4637 }
4638 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4640 match value {
4641 "PUBLISHER" => Some(Self::Publisher),
4642 "SUBSCRIBER" => Some(Self::Subscriber),
4643 _ => None,
4644 }
4645 }
4646}
4647#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4648#[repr(i32)]
4649pub enum StreamState {
4650 Active = 0,
4651 Paused = 1,
4652}
4653impl StreamState {
4654 pub fn as_str_name(&self) -> &'static str {
4659 match self {
4660 Self::Active => "ACTIVE",
4661 Self::Paused => "PAUSED",
4662 }
4663 }
4664 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4666 match value {
4667 "ACTIVE" => Some(Self::Active),
4668 "PAUSED" => Some(Self::Paused),
4669 _ => None,
4670 }
4671 }
4672}
4673#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4674#[repr(i32)]
4675pub enum CandidateProtocol {
4676 Udp = 0,
4677 Tcp = 1,
4678 Tls = 2,
4679}
4680impl CandidateProtocol {
4681 pub fn as_str_name(&self) -> &'static str {
4686 match self {
4687 Self::Udp => "UDP",
4688 Self::Tcp => "TCP",
4689 Self::Tls => "TLS",
4690 }
4691 }
4692 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4694 match value {
4695 "UDP" => Some(Self::Udp),
4696 "TCP" => Some(Self::Tcp),
4697 "TLS" => Some(Self::Tls),
4698 _ => None,
4699 }
4700 }
4701}
4702#[derive(Clone, PartialEq, ::prost::Message)]
4703pub struct Job {
4704 #[prost(string, tag = "1")]
4705 pub id: ::prost::alloc::string::String,
4706 #[prost(string, tag = "9")]
4707 pub dispatch_id: ::prost::alloc::string::String,
4708 #[prost(enumeration = "JobType", tag = "2")]
4709 pub r#type: i32,
4710 #[prost(message, optional, tag = "3")]
4711 pub room: ::core::option::Option<Room>,
4712 #[prost(message, optional, tag = "4")]
4713 pub participant: ::core::option::Option<ParticipantInfo>,
4714 #[deprecated]
4715 #[prost(string, tag = "5")]
4716 pub namespace: ::prost::alloc::string::String,
4717 #[prost(string, tag = "6")]
4718 pub metadata: ::prost::alloc::string::String,
4719 #[prost(string, tag = "7")]
4720 pub agent_name: ::prost::alloc::string::String,
4721 #[prost(message, optional, tag = "8")]
4722 pub state: ::core::option::Option<JobState>,
4723 #[prost(bool, tag = "10")]
4724 pub enable_recording: bool,
4725 #[prost(string, tag = "11")]
4726 pub deployment: ::prost::alloc::string::String,
4727 #[prost(map = "string, string", tag = "12")]
4728 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4729 #[prost(bool, tag = "13")]
4730 pub enable_redaction: bool,
4731}
4732#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4733pub struct JobState {
4734 #[prost(enumeration = "JobStatus", tag = "1")]
4735 pub status: i32,
4736 #[prost(string, tag = "2")]
4737 pub error: ::prost::alloc::string::String,
4738 #[prost(int64, tag = "3")]
4739 pub started_at: i64,
4740 #[prost(int64, tag = "4")]
4741 pub ended_at: i64,
4742 #[prost(int64, tag = "5")]
4743 pub updated_at: i64,
4744 #[prost(string, tag = "6")]
4745 pub participant_identity: ::prost::alloc::string::String,
4746 #[prost(string, tag = "7")]
4747 pub worker_id: ::prost::alloc::string::String,
4748 #[prost(string, tag = "8")]
4749 pub agent_id: ::prost::alloc::string::String,
4750}
4751#[derive(Clone, PartialEq, ::prost::Message)]
4753pub struct WorkerMessage {
4754 #[prost(oneof = "worker_message::Message", tags = "1, 2, 3, 4, 5, 6, 7")]
4755 pub message: ::core::option::Option<worker_message::Message>,
4756}
4757pub mod worker_message {
4759 #[derive(Clone, PartialEq, ::prost::Oneof)]
4760 pub enum Message {
4761 #[prost(message, tag = "1")]
4763 Register(super::RegisterWorkerRequest),
4764 #[prost(message, tag = "2")]
4766 Availability(super::AvailabilityResponse),
4767 #[prost(message, tag = "3")]
4769 UpdateWorker(super::UpdateWorkerStatus),
4770 #[prost(message, tag = "4")]
4772 UpdateJob(super::UpdateJobStatus),
4773 #[prost(message, tag = "5")]
4774 Ping(super::WorkerPing),
4775 #[prost(message, tag = "6")]
4776 SimulateJob(super::SimulateJobRequest),
4777 #[prost(message, tag = "7")]
4778 MigrateJob(super::MigrateJobRequest),
4779 }
4780}
4781#[derive(Clone, PartialEq, ::prost::Message)]
4783pub struct ServerMessage {
4784 #[prost(oneof = "server_message::Message", tags = "1, 2, 3, 5, 4")]
4785 pub message: ::core::option::Option<server_message::Message>,
4786}
4787pub mod server_message {
4789 #[derive(Clone, PartialEq, ::prost::Oneof)]
4790 pub enum Message {
4791 #[prost(message, tag = "1")]
4793 Register(super::RegisterWorkerResponse),
4794 #[prost(message, tag = "2")]
4796 Availability(super::AvailabilityRequest),
4797 #[prost(message, tag = "3")]
4798 Assignment(super::JobAssignment),
4799 #[prost(message, tag = "5")]
4800 Termination(super::JobTermination),
4801 #[prost(message, tag = "4")]
4802 Pong(super::WorkerPong),
4803 }
4804}
4805#[derive(Clone, PartialEq, ::prost::Message)]
4806pub struct SimulateJobRequest {
4807 #[prost(enumeration = "JobType", tag = "1")]
4808 pub r#type: i32,
4809 #[prost(message, optional, tag = "2")]
4810 pub room: ::core::option::Option<Room>,
4811 #[prost(message, optional, tag = "3")]
4812 pub participant: ::core::option::Option<ParticipantInfo>,
4813}
4814#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4815pub struct WorkerPing {
4816 #[prost(int64, tag = "1")]
4817 pub timestamp: i64,
4818}
4819#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4820pub struct WorkerPong {
4821 #[prost(int64, tag = "1")]
4822 pub last_timestamp: i64,
4823 #[prost(int64, tag = "2")]
4824 pub timestamp: i64,
4825}
4826#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4827pub struct RegisterWorkerRequest {
4828 #[prost(enumeration = "JobType", tag = "1")]
4829 pub r#type: i32,
4830 #[prost(string, tag = "8")]
4831 pub agent_name: ::prost::alloc::string::String,
4832 #[prost(string, tag = "3")]
4834 pub version: ::prost::alloc::string::String,
4835 #[prost(uint32, tag = "5")]
4837 pub ping_interval: u32,
4838 #[prost(string, optional, tag = "6")]
4839 pub namespace: ::core::option::Option<::prost::alloc::string::String>,
4840 #[prost(message, optional, tag = "7")]
4841 pub allowed_permissions: ::core::option::Option<ParticipantPermission>,
4842 #[prost(string, tag = "9")]
4843 pub deployment: ::prost::alloc::string::String,
4844}
4845#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4846pub struct RegisterWorkerResponse {
4847 #[prost(string, tag = "1")]
4848 pub worker_id: ::prost::alloc::string::String,
4849 #[prost(message, optional, tag = "3")]
4850 pub server_info: ::core::option::Option<ServerInfo>,
4851}
4852#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4853pub struct MigrateJobRequest {
4854 #[prost(string, repeated, tag = "2")]
4856 pub job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4857}
4858#[derive(Clone, PartialEq, ::prost::Message)]
4859pub struct AvailabilityRequest {
4860 #[prost(message, optional, tag = "1")]
4861 pub job: ::core::option::Option<Job>,
4862 #[prost(bool, tag = "2")]
4865 pub resuming: bool,
4866}
4867#[derive(Clone, PartialEq, ::prost::Message)]
4868pub struct AvailabilityResponse {
4869 #[prost(string, tag = "1")]
4870 pub job_id: ::prost::alloc::string::String,
4871 #[prost(bool, tag = "2")]
4872 pub available: bool,
4873 #[prost(bool, tag = "3")]
4874 pub supports_resume: bool,
4875 #[prost(bool, tag = "8")]
4876 pub terminate: bool,
4877 #[prost(string, tag = "4")]
4878 pub participant_name: ::prost::alloc::string::String,
4879 #[prost(string, tag = "5")]
4880 pub participant_identity: ::prost::alloc::string::String,
4881 #[prost(string, tag = "6")]
4882 pub participant_metadata: ::prost::alloc::string::String,
4883 #[prost(map = "string, string", tag = "7")]
4885 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
4886}
4887#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4888pub struct UpdateJobStatus {
4889 #[prost(string, tag = "1")]
4890 pub job_id: ::prost::alloc::string::String,
4891 #[prost(enumeration = "JobStatus", tag = "2")]
4893 pub status: i32,
4894 #[prost(string, tag = "3")]
4896 pub error: ::prost::alloc::string::String,
4897}
4898#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4899pub struct UpdateWorkerStatus {
4900 #[prost(enumeration = "WorkerStatus", optional, tag = "1")]
4901 pub status: ::core::option::Option<i32>,
4902 #[prost(float, tag = "3")]
4904 pub load: f32,
4905 #[prost(uint32, tag = "4")]
4906 pub job_count: u32,
4907}
4908#[derive(Clone, PartialEq, ::prost::Message)]
4909pub struct JobAssignment {
4910 #[prost(message, optional, tag = "1")]
4911 pub job: ::core::option::Option<Job>,
4912 #[prost(string, optional, tag = "2")]
4913 pub url: ::core::option::Option<::prost::alloc::string::String>,
4914 #[prost(string, tag = "3")]
4915 pub token: ::prost::alloc::string::String,
4916}
4917#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4918pub struct JobTermination {
4919 #[prost(string, tag = "1")]
4920 pub job_id: ::prost::alloc::string::String,
4921}
4922#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4923#[repr(i32)]
4924pub enum JobType {
4925 JtRoom = 0,
4926 JtPublisher = 1,
4927 JtParticipant = 2,
4928}
4929impl JobType {
4930 pub fn as_str_name(&self) -> &'static str {
4935 match self {
4936 Self::JtRoom => "JT_ROOM",
4937 Self::JtPublisher => "JT_PUBLISHER",
4938 Self::JtParticipant => "JT_PARTICIPANT",
4939 }
4940 }
4941 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4943 match value {
4944 "JT_ROOM" => Some(Self::JtRoom),
4945 "JT_PUBLISHER" => Some(Self::JtPublisher),
4946 "JT_PARTICIPANT" => Some(Self::JtParticipant),
4947 _ => None,
4948 }
4949 }
4950}
4951#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4952#[repr(i32)]
4953pub enum WorkerStatus {
4954 WsAvailable = 0,
4955 WsFull = 1,
4956}
4957impl WorkerStatus {
4958 pub fn as_str_name(&self) -> &'static str {
4963 match self {
4964 Self::WsAvailable => "WS_AVAILABLE",
4965 Self::WsFull => "WS_FULL",
4966 }
4967 }
4968 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4970 match value {
4971 "WS_AVAILABLE" => Some(Self::WsAvailable),
4972 "WS_FULL" => Some(Self::WsFull),
4973 _ => None,
4974 }
4975 }
4976}
4977#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4978#[repr(i32)]
4979pub enum JobStatus {
4980 JsPending = 0,
4981 JsRunning = 1,
4982 JsSuccess = 2,
4983 JsFailed = 3,
4984}
4985impl JobStatus {
4986 pub fn as_str_name(&self) -> &'static str {
4991 match self {
4992 Self::JsPending => "JS_PENDING",
4993 Self::JsRunning => "JS_RUNNING",
4994 Self::JsSuccess => "JS_SUCCESS",
4995 Self::JsFailed => "JS_FAILED",
4996 }
4997 }
4998 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5000 match value {
5001 "JS_PENDING" => Some(Self::JsPending),
5002 "JS_RUNNING" => Some(Self::JsRunning),
5003 "JS_SUCCESS" => Some(Self::JsSuccess),
5004 "JS_FAILED" => Some(Self::JsFailed),
5005 _ => None,
5006 }
5007 }
5008}
5009#[derive(Clone, PartialEq, ::prost::Message)]
5010pub struct CreateAgentDispatchRequest {
5011 #[prost(string, tag = "1")]
5012 pub agent_name: ::prost::alloc::string::String,
5013 #[prost(string, tag = "2")]
5014 pub room: ::prost::alloc::string::String,
5015 #[prost(string, tag = "3")]
5016 pub metadata: ::prost::alloc::string::String,
5017 #[prost(enumeration = "JobRestartPolicy", tag = "4")]
5019 pub restart_policy: i32,
5020 #[prost(string, tag = "5")]
5021 pub deployment: ::prost::alloc::string::String,
5022 #[prost(map = "string, string", tag = "6")]
5023 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5024}
5025#[derive(Clone, PartialEq, ::prost::Message)]
5026pub struct RoomAgentDispatch {
5027 #[prost(string, tag = "1")]
5028 pub agent_name: ::prost::alloc::string::String,
5029 #[prost(string, tag = "2")]
5030 pub metadata: ::prost::alloc::string::String,
5031 #[prost(enumeration = "JobRestartPolicy", tag = "3")]
5033 pub restart_policy: i32,
5034 #[prost(string, tag = "4")]
5035 pub deployment: ::prost::alloc::string::String,
5036 #[prost(map = "string, string", tag = "5")]
5037 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5038}
5039#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5040pub struct DeleteAgentDispatchRequest {
5041 #[prost(string, tag = "1")]
5042 pub dispatch_id: ::prost::alloc::string::String,
5043 #[prost(string, tag = "2")]
5044 pub room: ::prost::alloc::string::String,
5045}
5046#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5047pub struct ListAgentDispatchRequest {
5048 #[prost(string, tag = "1")]
5050 pub dispatch_id: ::prost::alloc::string::String,
5051 #[prost(string, tag = "2")]
5053 pub room: ::prost::alloc::string::String,
5054}
5055#[derive(Clone, PartialEq, ::prost::Message)]
5056pub struct ListAgentDispatchResponse {
5057 #[prost(message, repeated, tag = "1")]
5058 pub agent_dispatches: ::prost::alloc::vec::Vec<AgentDispatch>,
5059}
5060#[derive(Clone, PartialEq, ::prost::Message)]
5061pub struct AgentDispatch {
5062 #[prost(string, tag = "1")]
5063 pub id: ::prost::alloc::string::String,
5064 #[prost(string, tag = "2")]
5065 pub agent_name: ::prost::alloc::string::String,
5066 #[prost(string, tag = "3")]
5067 pub room: ::prost::alloc::string::String,
5068 #[prost(string, tag = "4")]
5069 pub metadata: ::prost::alloc::string::String,
5070 #[prost(message, optional, tag = "5")]
5071 pub state: ::core::option::Option<AgentDispatchState>,
5072 #[prost(enumeration = "JobRestartPolicy", tag = "6")]
5074 pub restart_policy: i32,
5075 #[prost(string, tag = "7")]
5076 pub deployment: ::prost::alloc::string::String,
5077 #[prost(map = "string, string", tag = "8")]
5078 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5079}
5080#[derive(Clone, PartialEq, ::prost::Message)]
5081pub struct AgentDispatchState {
5082 #[prost(message, repeated, tag = "1")]
5085 pub jobs: ::prost::alloc::vec::Vec<Job>,
5086 #[prost(int64, tag = "2")]
5087 pub created_at: i64,
5088 #[prost(int64, tag = "3")]
5089 pub deleted_at: i64,
5090}
5091#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5092#[repr(i32)]
5093pub enum JobRestartPolicy {
5094 JrpOnFailure = 0,
5096 JrpNever = 1,
5098}
5099impl JobRestartPolicy {
5100 pub fn as_str_name(&self) -> &'static str {
5105 match self {
5106 Self::JrpOnFailure => "JRP_ON_FAILURE",
5107 Self::JrpNever => "JRP_NEVER",
5108 }
5109 }
5110 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5112 match value {
5113 "JRP_ON_FAILURE" => Some(Self::JrpOnFailure),
5114 "JRP_NEVER" => Some(Self::JrpNever),
5115 _ => None,
5116 }
5117 }
5118}
5119#[derive(Clone, PartialEq, ::prost::Message)]
5120pub struct CreateRoomRequest {
5121 #[prost(string, tag = "1")]
5123 pub name: ::prost::alloc::string::String,
5124 #[prost(string, tag = "12")]
5126 pub room_preset: ::prost::alloc::string::String,
5127 #[prost(uint32, tag = "2")]
5129 pub empty_timeout: u32,
5130 #[prost(uint32, tag = "10")]
5132 pub departure_timeout: u32,
5133 #[prost(uint32, tag = "3")]
5135 pub max_participants: u32,
5136 #[prost(string, tag = "4")]
5138 pub node_id: ::prost::alloc::string::String,
5139 #[prost(string, tag = "5")]
5141 pub metadata: ::prost::alloc::string::String,
5142 #[prost(map = "string, string", tag = "15")]
5144 pub tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5145 #[prost(message, optional, tag = "6")]
5147 pub egress: ::core::option::Option<RoomEgress>,
5148 #[prost(uint32, tag = "7")]
5150 pub min_playout_delay: u32,
5151 #[prost(uint32, tag = "8")]
5152 pub max_playout_delay: u32,
5153 #[prost(bool, tag = "9")]
5156 pub sync_streams: bool,
5157 #[prost(bool, tag = "13")]
5159 pub replay_enabled: bool,
5160 #[prost(message, repeated, tag = "14")]
5162 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5163}
5164#[derive(Clone, PartialEq, ::prost::Message)]
5165pub struct RoomEgress {
5166 #[prost(message, optional, tag = "1")]
5167 pub room: ::core::option::Option<RoomCompositeEgressRequest>,
5168 #[prost(message, optional, tag = "3")]
5169 pub participant: ::core::option::Option<AutoParticipantEgress>,
5170 #[prost(message, optional, tag = "2")]
5171 pub tracks: ::core::option::Option<AutoTrackEgress>,
5172}
5173#[derive(Clone, PartialEq, ::prost::Message)]
5174pub struct RoomAgent {
5175 #[prost(message, repeated, tag = "1")]
5176 pub dispatches: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5177}
5178#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5179pub struct ListRoomsRequest {
5180 #[prost(string, repeated, tag = "1")]
5182 pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5183}
5184#[derive(Clone, PartialEq, ::prost::Message)]
5185pub struct ListRoomsResponse {
5186 #[prost(message, repeated, tag = "1")]
5187 pub rooms: ::prost::alloc::vec::Vec<Room>,
5188}
5189#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5190pub struct DeleteRoomRequest {
5191 #[prost(string, tag = "1")]
5193 pub room: ::prost::alloc::string::String,
5194}
5195#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5196pub struct DeleteRoomResponse {
5197}
5198#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5199pub struct ListParticipantsRequest {
5200 #[prost(string, tag = "1")]
5202 pub room: ::prost::alloc::string::String,
5203}
5204#[derive(Clone, PartialEq, ::prost::Message)]
5205pub struct ListParticipantsResponse {
5206 #[prost(message, repeated, tag = "1")]
5207 pub participants: ::prost::alloc::vec::Vec<ParticipantInfo>,
5208}
5209#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5210pub struct RoomParticipantIdentity {
5211 #[prost(string, tag = "1")]
5213 pub room: ::prost::alloc::string::String,
5214 #[prost(string, tag = "2")]
5216 pub identity: ::prost::alloc::string::String,
5217 #[prost(int64, tag = "3")]
5220 pub revoke_token_ts: i64,
5221}
5222#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5223pub struct RemoveParticipantResponse {
5224}
5225#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5226pub struct MuteRoomTrackRequest {
5227 #[prost(string, tag = "1")]
5229 pub room: ::prost::alloc::string::String,
5230 #[prost(string, tag = "2")]
5231 pub identity: ::prost::alloc::string::String,
5232 #[prost(string, tag = "3")]
5234 pub track_sid: ::prost::alloc::string::String,
5235 #[prost(bool, tag = "4")]
5237 pub muted: bool,
5238}
5239#[derive(Clone, PartialEq, ::prost::Message)]
5240pub struct MuteRoomTrackResponse {
5241 #[prost(message, optional, tag = "1")]
5242 pub track: ::core::option::Option<TrackInfo>,
5243}
5244#[derive(Clone, PartialEq, ::prost::Message)]
5245pub struct UpdateParticipantRequest {
5246 #[prost(string, tag = "1")]
5247 pub room: ::prost::alloc::string::String,
5248 #[prost(string, tag = "2")]
5249 pub identity: ::prost::alloc::string::String,
5250 #[prost(string, tag = "3")]
5252 pub metadata: ::prost::alloc::string::String,
5253 #[prost(message, optional, tag = "4")]
5255 pub permission: ::core::option::Option<ParticipantPermission>,
5256 #[prost(string, tag = "5")]
5258 pub name: ::prost::alloc::string::String,
5259 #[prost(map = "string, string", tag = "6")]
5262 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5263}
5264#[derive(Clone, PartialEq, ::prost::Message)]
5265pub struct UpdateSubscriptionsRequest {
5266 #[prost(string, tag = "1")]
5267 pub room: ::prost::alloc::string::String,
5268 #[prost(string, tag = "2")]
5269 pub identity: ::prost::alloc::string::String,
5270 #[prost(string, repeated, tag = "3")]
5272 pub track_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5273 #[prost(bool, tag = "4")]
5275 pub subscribe: bool,
5276 #[prost(message, repeated, tag = "5")]
5278 pub participant_tracks: ::prost::alloc::vec::Vec<ParticipantTracks>,
5279}
5280#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5282pub struct UpdateSubscriptionsResponse {
5283}
5284#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5285pub struct SendDataRequest {
5286 #[prost(string, tag = "1")]
5287 pub room: ::prost::alloc::string::String,
5288 #[prost(bytes = "vec", tag = "2")]
5289 pub data: ::prost::alloc::vec::Vec<u8>,
5290 #[prost(enumeration = "data_packet::Kind", tag = "3")]
5291 pub kind: i32,
5292 #[deprecated]
5294 #[prost(string, repeated, tag = "4")]
5295 pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5296 #[prost(string, repeated, tag = "6")]
5298 pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5299 #[prost(string, optional, tag = "5")]
5300 pub topic: ::core::option::Option<::prost::alloc::string::String>,
5301 #[prost(bytes = "vec", tag = "7")]
5303 pub nonce: ::prost::alloc::vec::Vec<u8>,
5304}
5305#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5307pub struct SendDataResponse {
5308}
5309#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5310pub struct UpdateRoomMetadataRequest {
5311 #[prost(string, tag = "1")]
5312 pub room: ::prost::alloc::string::String,
5313 #[prost(string, tag = "2")]
5315 pub metadata: ::prost::alloc::string::String,
5316}
5317#[derive(Clone, PartialEq, ::prost::Message)]
5318pub struct RoomConfiguration {
5319 #[prost(string, tag = "1")]
5321 pub name: ::prost::alloc::string::String,
5322 #[prost(uint32, tag = "2")]
5324 pub empty_timeout: u32,
5325 #[prost(uint32, tag = "3")]
5327 pub departure_timeout: u32,
5328 #[prost(uint32, tag = "4")]
5330 pub max_participants: u32,
5331 #[prost(string, tag = "11")]
5333 pub metadata: ::prost::alloc::string::String,
5334 #[prost(message, optional, tag = "5")]
5336 pub egress: ::core::option::Option<RoomEgress>,
5337 #[prost(uint32, tag = "7")]
5339 pub min_playout_delay: u32,
5340 #[prost(uint32, tag = "8")]
5341 pub max_playout_delay: u32,
5342 #[prost(bool, tag = "9")]
5345 pub sync_streams: bool,
5346 #[prost(message, repeated, tag = "10")]
5348 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
5349 #[prost(map = "string, string", tag = "12")]
5351 pub tags: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5352}
5353#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5354pub struct ForwardParticipantRequest {
5355 #[prost(string, tag = "1")]
5357 pub room: ::prost::alloc::string::String,
5358 #[prost(string, tag = "2")]
5360 pub identity: ::prost::alloc::string::String,
5361 #[prost(string, tag = "3")]
5363 pub destination_room: ::prost::alloc::string::String,
5364}
5365#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5366pub struct ForwardParticipantResponse {
5367}
5368#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5369pub struct MoveParticipantRequest {
5370 #[prost(string, tag = "1")]
5372 pub room: ::prost::alloc::string::String,
5373 #[prost(string, tag = "2")]
5375 pub identity: ::prost::alloc::string::String,
5376 #[prost(string, tag = "3")]
5378 pub destination_room: ::prost::alloc::string::String,
5379}
5380#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5381pub struct MoveParticipantResponse {
5382}
5383#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5384pub struct PerformRpcRequest {
5385 #[prost(string, tag = "1")]
5386 pub room: ::prost::alloc::string::String,
5387 #[prost(string, tag = "2")]
5388 pub destination_identity: ::prost::alloc::string::String,
5389 #[prost(string, tag = "3")]
5390 pub method: ::prost::alloc::string::String,
5391 #[prost(string, tag = "4")]
5392 pub payload: ::prost::alloc::string::String,
5393 #[prost(uint32, tag = "5")]
5394 pub response_timeout_ms: u32,
5395}
5396#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5397pub struct PerformRpcResponse {
5398 #[prost(string, tag = "1")]
5399 pub payload: ::prost::alloc::string::String,
5400}
5401#[derive(Clone, PartialEq, ::prost::Message)]
5402pub struct CreateIngressRequest {
5403 #[prost(enumeration = "IngressInput", tag = "1")]
5404 pub input_type: i32,
5405 #[prost(string, tag = "9")]
5407 pub url: ::prost::alloc::string::String,
5408 #[prost(string, tag = "2")]
5410 pub name: ::prost::alloc::string::String,
5411 #[prost(string, tag = "3")]
5413 pub room_name: ::prost::alloc::string::String,
5414 #[prost(string, tag = "4")]
5416 pub participant_identity: ::prost::alloc::string::String,
5417 #[prost(string, tag = "5")]
5419 pub participant_name: ::prost::alloc::string::String,
5420 #[prost(string, tag = "10")]
5422 pub participant_metadata: ::prost::alloc::string::String,
5423 #[deprecated]
5425 #[prost(bool, tag = "8")]
5426 pub bypass_transcoding: bool,
5427 #[prost(bool, optional, tag = "11")]
5429 pub enable_transcoding: ::core::option::Option<bool>,
5430 #[prost(message, optional, tag = "6")]
5431 pub audio: ::core::option::Option<IngressAudioOptions>,
5432 #[prost(message, optional, tag = "7")]
5433 pub video: ::core::option::Option<IngressVideoOptions>,
5434 #[prost(bool, optional, tag = "12")]
5436 pub enabled: ::core::option::Option<bool>,
5437}
5438#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5439pub struct IngressAudioOptions {
5440 #[prost(string, tag = "1")]
5441 pub name: ::prost::alloc::string::String,
5442 #[prost(enumeration = "TrackSource", tag = "2")]
5443 pub source: i32,
5444 #[prost(oneof = "ingress_audio_options::EncodingOptions", tags = "3, 4")]
5445 pub encoding_options: ::core::option::Option<ingress_audio_options::EncodingOptions>,
5446}
5447pub mod ingress_audio_options {
5449 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
5450 pub enum EncodingOptions {
5451 #[prost(enumeration = "super::IngressAudioEncodingPreset", tag = "3")]
5452 Preset(i32),
5453 #[prost(message, tag = "4")]
5454 Options(super::IngressAudioEncodingOptions),
5455 }
5456}
5457#[derive(Clone, PartialEq, ::prost::Message)]
5458pub struct IngressVideoOptions {
5459 #[prost(string, tag = "1")]
5460 pub name: ::prost::alloc::string::String,
5461 #[prost(enumeration = "TrackSource", tag = "2")]
5462 pub source: i32,
5463 #[prost(oneof = "ingress_video_options::EncodingOptions", tags = "3, 4")]
5464 pub encoding_options: ::core::option::Option<ingress_video_options::EncodingOptions>,
5465}
5466pub mod ingress_video_options {
5468 #[derive(Clone, PartialEq, ::prost::Oneof)]
5469 pub enum EncodingOptions {
5470 #[prost(enumeration = "super::IngressVideoEncodingPreset", tag = "3")]
5471 Preset(i32),
5472 #[prost(message, tag = "4")]
5473 Options(super::IngressVideoEncodingOptions),
5474 }
5475}
5476#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5477pub struct IngressAudioEncodingOptions {
5478 #[prost(enumeration = "AudioCodec", tag = "1")]
5480 pub audio_codec: i32,
5481 #[prost(uint32, tag = "2")]
5482 pub bitrate: u32,
5483 #[prost(bool, tag = "3")]
5484 pub disable_dtx: bool,
5485 #[prost(uint32, tag = "4")]
5486 pub channels: u32,
5487}
5488#[derive(Clone, PartialEq, ::prost::Message)]
5489pub struct IngressVideoEncodingOptions {
5490 #[prost(enumeration = "VideoCodec", tag = "1")]
5492 pub video_codec: i32,
5493 #[prost(double, tag = "2")]
5494 pub frame_rate: f64,
5495 #[prost(message, repeated, tag = "3")]
5497 pub layers: ::prost::alloc::vec::Vec<VideoLayer>,
5498}
5499#[derive(Clone, PartialEq, ::prost::Message)]
5500pub struct IngressInfo {
5501 #[prost(string, tag = "1")]
5502 pub ingress_id: ::prost::alloc::string::String,
5503 #[prost(string, tag = "2")]
5504 pub name: ::prost::alloc::string::String,
5505 #[prost(string, tag = "3")]
5506 pub stream_key: ::prost::alloc::string::String,
5507 #[prost(string, tag = "4")]
5509 pub url: ::prost::alloc::string::String,
5510 #[prost(enumeration = "IngressInput", tag = "5")]
5514 pub input_type: i32,
5515 #[deprecated]
5516 #[prost(bool, tag = "13")]
5517 pub bypass_transcoding: bool,
5518 #[prost(bool, optional, tag = "15")]
5519 pub enable_transcoding: ::core::option::Option<bool>,
5520 #[prost(message, optional, tag = "6")]
5521 pub audio: ::core::option::Option<IngressAudioOptions>,
5522 #[prost(message, optional, tag = "7")]
5523 pub video: ::core::option::Option<IngressVideoOptions>,
5524 #[prost(string, tag = "8")]
5525 pub room_name: ::prost::alloc::string::String,
5526 #[prost(string, tag = "9")]
5527 pub participant_identity: ::prost::alloc::string::String,
5528 #[prost(string, tag = "10")]
5529 pub participant_name: ::prost::alloc::string::String,
5530 #[prost(string, tag = "14")]
5531 pub participant_metadata: ::prost::alloc::string::String,
5532 #[prost(bool, tag = "11")]
5533 pub reusable: bool,
5534 #[prost(message, optional, tag = "12")]
5536 pub state: ::core::option::Option<IngressState>,
5537 #[prost(bool, optional, tag = "16")]
5539 pub enabled: ::core::option::Option<bool>,
5540}
5541#[derive(Clone, PartialEq, ::prost::Message)]
5542pub struct IngressState {
5543 #[prost(enumeration = "ingress_state::Status", tag = "1")]
5544 pub status: i32,
5545 #[prost(string, tag = "2")]
5547 pub error: ::prost::alloc::string::String,
5548 #[prost(message, optional, tag = "3")]
5549 pub video: ::core::option::Option<InputVideoState>,
5550 #[prost(message, optional, tag = "4")]
5551 pub audio: ::core::option::Option<InputAudioState>,
5552 #[prost(string, tag = "5")]
5554 pub room_id: ::prost::alloc::string::String,
5555 #[prost(int64, tag = "7")]
5556 pub started_at: i64,
5557 #[prost(int64, tag = "8")]
5558 pub ended_at: i64,
5559 #[prost(int64, tag = "10")]
5560 pub updated_at: i64,
5561 #[prost(string, tag = "9")]
5562 pub resource_id: ::prost::alloc::string::String,
5563 #[prost(message, repeated, tag = "6")]
5564 pub tracks: ::prost::alloc::vec::Vec<TrackInfo>,
5565}
5566pub mod ingress_state {
5568 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5569 #[repr(i32)]
5570 pub enum Status {
5571 EndpointInactive = 0,
5572 EndpointBuffering = 1,
5573 EndpointPublishing = 2,
5574 EndpointError = 3,
5575 EndpointComplete = 4,
5576 }
5577 impl Status {
5578 pub fn as_str_name(&self) -> &'static str {
5583 match self {
5584 Self::EndpointInactive => "ENDPOINT_INACTIVE",
5585 Self::EndpointBuffering => "ENDPOINT_BUFFERING",
5586 Self::EndpointPublishing => "ENDPOINT_PUBLISHING",
5587 Self::EndpointError => "ENDPOINT_ERROR",
5588 Self::EndpointComplete => "ENDPOINT_COMPLETE",
5589 }
5590 }
5591 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5593 match value {
5594 "ENDPOINT_INACTIVE" => Some(Self::EndpointInactive),
5595 "ENDPOINT_BUFFERING" => Some(Self::EndpointBuffering),
5596 "ENDPOINT_PUBLISHING" => Some(Self::EndpointPublishing),
5597 "ENDPOINT_ERROR" => Some(Self::EndpointError),
5598 "ENDPOINT_COMPLETE" => Some(Self::EndpointComplete),
5599 _ => None,
5600 }
5601 }
5602 }
5603}
5604#[derive(Clone, PartialEq, ::prost::Message)]
5605pub struct InputVideoState {
5606 #[prost(string, tag = "1")]
5607 pub mime_type: ::prost::alloc::string::String,
5608 #[prost(uint32, tag = "2")]
5609 pub average_bitrate: u32,
5610 #[prost(uint32, tag = "3")]
5611 pub width: u32,
5612 #[prost(uint32, tag = "4")]
5613 pub height: u32,
5614 #[prost(double, tag = "5")]
5615 pub framerate: f64,
5616}
5617#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5618pub struct InputAudioState {
5619 #[prost(string, tag = "1")]
5620 pub mime_type: ::prost::alloc::string::String,
5621 #[prost(uint32, tag = "2")]
5622 pub average_bitrate: u32,
5623 #[prost(uint32, tag = "3")]
5624 pub channels: u32,
5625 #[prost(uint32, tag = "4")]
5626 pub sample_rate: u32,
5627}
5628#[derive(Clone, PartialEq, ::prost::Message)]
5629pub struct UpdateIngressRequest {
5630 #[prost(string, tag = "1")]
5631 pub ingress_id: ::prost::alloc::string::String,
5632 #[prost(string, tag = "2")]
5633 pub name: ::prost::alloc::string::String,
5634 #[prost(string, tag = "3")]
5635 pub room_name: ::prost::alloc::string::String,
5636 #[prost(string, tag = "4")]
5637 pub participant_identity: ::prost::alloc::string::String,
5638 #[prost(string, tag = "5")]
5639 pub participant_name: ::prost::alloc::string::String,
5640 #[prost(string, tag = "9")]
5641 pub participant_metadata: ::prost::alloc::string::String,
5642 #[deprecated]
5643 #[prost(bool, optional, tag = "8")]
5644 pub bypass_transcoding: ::core::option::Option<bool>,
5645 #[prost(bool, optional, tag = "10")]
5646 pub enable_transcoding: ::core::option::Option<bool>,
5647 #[prost(message, optional, tag = "6")]
5648 pub audio: ::core::option::Option<IngressAudioOptions>,
5649 #[prost(message, optional, tag = "7")]
5650 pub video: ::core::option::Option<IngressVideoOptions>,
5651 #[prost(bool, optional, tag = "11")]
5653 pub enabled: ::core::option::Option<bool>,
5654}
5655#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5656pub struct ListIngressRequest {
5657 #[prost(message, optional, tag = "3")]
5658 pub page_token: ::core::option::Option<TokenPagination>,
5659 #[prost(string, tag = "1")]
5663 pub room_name: ::prost::alloc::string::String,
5664 #[prost(string, tag = "2")]
5666 pub ingress_id: ::prost::alloc::string::String,
5667}
5668#[derive(Clone, PartialEq, ::prost::Message)]
5669pub struct ListIngressResponse {
5670 #[prost(message, optional, tag = "2")]
5671 pub next_page_token: ::core::option::Option<TokenPagination>,
5672 #[prost(message, repeated, tag = "1")]
5674 pub items: ::prost::alloc::vec::Vec<IngressInfo>,
5675}
5676#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5677pub struct DeleteIngressRequest {
5678 #[prost(string, tag = "1")]
5679 pub ingress_id: ::prost::alloc::string::String,
5680}
5681#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5682#[repr(i32)]
5683pub enum IngressInput {
5684 RtmpInput = 0,
5685 WhipInput = 1,
5686 UrlInput = 2,
5688}
5689impl IngressInput {
5690 pub fn as_str_name(&self) -> &'static str {
5695 match self {
5696 Self::RtmpInput => "RTMP_INPUT",
5697 Self::WhipInput => "WHIP_INPUT",
5698 Self::UrlInput => "URL_INPUT",
5699 }
5700 }
5701 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5703 match value {
5704 "RTMP_INPUT" => Some(Self::RtmpInput),
5705 "WHIP_INPUT" => Some(Self::WhipInput),
5706 "URL_INPUT" => Some(Self::UrlInput),
5707 _ => None,
5708 }
5709 }
5710}
5711#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5712#[repr(i32)]
5713pub enum IngressAudioEncodingPreset {
5714 OpusStereo96kbps = 0,
5716 OpusMono64kbs = 1,
5718}
5719impl IngressAudioEncodingPreset {
5720 pub fn as_str_name(&self) -> &'static str {
5725 match self {
5726 Self::OpusStereo96kbps => "OPUS_STEREO_96KBPS",
5727 Self::OpusMono64kbs => "OPUS_MONO_64KBS",
5728 }
5729 }
5730 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5732 match value {
5733 "OPUS_STEREO_96KBPS" => Some(Self::OpusStereo96kbps),
5734 "OPUS_MONO_64KBS" => Some(Self::OpusMono64kbs),
5735 _ => None,
5736 }
5737 }
5738}
5739#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5740#[repr(i32)]
5741pub enum IngressVideoEncodingPreset {
5742 H264720p30fps3Layers = 0,
5744 H2641080p30fps3Layers = 1,
5746 H264540p25fps2Layers = 2,
5748 H264720p30fps1Layer = 3,
5750 H2641080p30fps1Layer = 4,
5752 H264720p30fps3LayersHighMotion = 5,
5754 H2641080p30fps3LayersHighMotion = 6,
5756 H264540p25fps2LayersHighMotion = 7,
5758 H264720p30fps1LayerHighMotion = 8,
5760 H2641080p30fps1LayerHighMotion = 9,
5762}
5763impl IngressVideoEncodingPreset {
5764 pub fn as_str_name(&self) -> &'static str {
5769 match self {
5770 Self::H264720p30fps3Layers => "H264_720P_30FPS_3_LAYERS",
5771 Self::H2641080p30fps3Layers => "H264_1080P_30FPS_3_LAYERS",
5772 Self::H264540p25fps2Layers => "H264_540P_25FPS_2_LAYERS",
5773 Self::H264720p30fps1Layer => "H264_720P_30FPS_1_LAYER",
5774 Self::H2641080p30fps1Layer => "H264_1080P_30FPS_1_LAYER",
5775 Self::H264720p30fps3LayersHighMotion => "H264_720P_30FPS_3_LAYERS_HIGH_MOTION",
5776 Self::H2641080p30fps3LayersHighMotion => "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION",
5777 Self::H264540p25fps2LayersHighMotion => "H264_540P_25FPS_2_LAYERS_HIGH_MOTION",
5778 Self::H264720p30fps1LayerHighMotion => "H264_720P_30FPS_1_LAYER_HIGH_MOTION",
5779 Self::H2641080p30fps1LayerHighMotion => "H264_1080P_30FPS_1_LAYER_HIGH_MOTION",
5780 }
5781 }
5782 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5784 match value {
5785 "H264_720P_30FPS_3_LAYERS" => Some(Self::H264720p30fps3Layers),
5786 "H264_1080P_30FPS_3_LAYERS" => Some(Self::H2641080p30fps3Layers),
5787 "H264_540P_25FPS_2_LAYERS" => Some(Self::H264540p25fps2Layers),
5788 "H264_720P_30FPS_1_LAYER" => Some(Self::H264720p30fps1Layer),
5789 "H264_1080P_30FPS_1_LAYER" => Some(Self::H2641080p30fps1Layer),
5790 "H264_720P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H264720p30fps3LayersHighMotion),
5791 "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H2641080p30fps3LayersHighMotion),
5792 "H264_540P_25FPS_2_LAYERS_HIGH_MOTION" => Some(Self::H264540p25fps2LayersHighMotion),
5793 "H264_720P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H264720p30fps1LayerHighMotion),
5794 "H264_1080P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H2641080p30fps1LayerHighMotion),
5795 _ => None,
5796 }
5797 }
5798}
5799#[derive(Clone, PartialEq, ::prost::Message)]
5800pub struct WebhookEvent {
5801 #[prost(string, tag = "1")]
5805 pub event: ::prost::alloc::string::String,
5806 #[prost(message, optional, tag = "2")]
5807 pub room: ::core::option::Option<Room>,
5808 #[prost(message, optional, tag = "3")]
5810 pub participant: ::core::option::Option<ParticipantInfo>,
5811 #[prost(message, optional, tag = "9")]
5813 pub egress_info: ::core::option::Option<EgressInfo>,
5814 #[prost(message, optional, tag = "10")]
5816 pub ingress_info: ::core::option::Option<IngressInfo>,
5817 #[prost(message, optional, tag = "8")]
5819 pub track: ::core::option::Option<TrackInfo>,
5820 #[prost(message, optional, tag = "12")]
5822 pub job: ::core::option::Option<Job>,
5823 #[prost(string, tag = "6")]
5825 pub id: ::prost::alloc::string::String,
5826 #[prost(int64, tag = "7")]
5828 pub created_at: i64,
5829 #[deprecated]
5830 #[prost(int32, tag = "11")]
5831 pub num_dropped: i32,
5832}
5833#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5835pub struct SipStatus {
5836 #[prost(enumeration = "SipStatusCode", tag = "1")]
5837 pub code: i32,
5838 #[prost(string, tag = "2")]
5839 pub status: ::prost::alloc::string::String,
5840}
5841#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5842pub struct CreateSipTrunkRequest {
5843 #[prost(string, repeated, tag = "1")]
5846 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5847 #[prost(string, tag = "2")]
5849 pub outbound_address: ::prost::alloc::string::String,
5850 #[prost(string, tag = "3")]
5852 pub outbound_number: ::prost::alloc::string::String,
5853 #[deprecated]
5854 #[prost(string, repeated, tag = "4")]
5855 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5856 #[prost(string, repeated, tag = "9")]
5860 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5861 #[prost(string, tag = "5")]
5864 pub inbound_username: ::prost::alloc::string::String,
5865 #[prost(string, tag = "6")]
5866 pub inbound_password: ::prost::alloc::string::String,
5867 #[prost(string, tag = "7")]
5868 pub outbound_username: ::prost::alloc::string::String,
5869 #[prost(string, tag = "8")]
5870 pub outbound_password: ::prost::alloc::string::String,
5871 #[prost(string, tag = "10")]
5873 pub name: ::prost::alloc::string::String,
5874 #[prost(string, tag = "11")]
5876 pub metadata: ::prost::alloc::string::String,
5877}
5878#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5879pub struct SipCodec {
5880 #[prost(string, tag = "1")]
5881 pub name: ::prost::alloc::string::String,
5882 #[prost(uint32, tag = "2")]
5883 pub rate: u32,
5884}
5885#[derive(Clone, PartialEq, ::prost::Message)]
5886pub struct SipMediaConfig {
5887 #[prost(bool, tag = "1")]
5889 pub only_listed_codecs: bool,
5890 #[prost(message, repeated, tag = "2")]
5892 pub codecs: ::prost::alloc::vec::Vec<SipCodec>,
5893 #[prost(enumeration = "SipMediaEncryption", optional, tag = "3")]
5894 pub encryption: ::core::option::Option<i32>,
5895 #[prost(message, optional, tag = "4")]
5897 pub media_timeout: ::core::option::Option<::pbjson_types::Duration>,
5898}
5899#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5900pub struct ProviderInfo {
5901 #[prost(string, tag = "1")]
5902 pub id: ::prost::alloc::string::String,
5903 #[prost(string, tag = "2")]
5904 pub name: ::prost::alloc::string::String,
5905 #[prost(enumeration = "ProviderType", tag = "3")]
5906 pub r#type: i32,
5907 #[prost(bool, tag = "4")]
5908 pub prevent_transfer: bool,
5909}
5910#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
5911pub struct SipTrunkInfo {
5912 #[prost(string, tag = "1")]
5913 pub sip_trunk_id: ::prost::alloc::string::String,
5914 #[prost(enumeration = "sip_trunk_info::TrunkKind", tag = "14")]
5915 pub kind: i32,
5916 #[prost(string, repeated, tag = "2")]
5919 pub inbound_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5920 #[prost(string, tag = "3")]
5922 pub outbound_address: ::prost::alloc::string::String,
5923 #[prost(string, tag = "4")]
5925 pub outbound_number: ::prost::alloc::string::String,
5926 #[prost(enumeration = "SipTransport", tag = "13")]
5928 pub transport: i32,
5929 #[deprecated]
5930 #[prost(string, repeated, tag = "5")]
5931 pub inbound_numbers_regex: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5932 #[prost(string, repeated, tag = "10")]
5936 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5937 #[prost(string, tag = "6")]
5940 pub inbound_username: ::prost::alloc::string::String,
5941 #[prost(string, tag = "7")]
5942 pub inbound_password: ::prost::alloc::string::String,
5943 #[prost(string, tag = "8")]
5944 pub outbound_username: ::prost::alloc::string::String,
5945 #[prost(string, tag = "9")]
5946 pub outbound_password: ::prost::alloc::string::String,
5947 #[prost(string, tag = "11")]
5949 pub name: ::prost::alloc::string::String,
5950 #[prost(string, tag = "12")]
5952 pub metadata: ::prost::alloc::string::String,
5953}
5954pub mod sip_trunk_info {
5956 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5957 #[repr(i32)]
5958 pub enum TrunkKind {
5959 TrunkLegacy = 0,
5960 TrunkInbound = 1,
5961 TrunkOutbound = 2,
5962 }
5963 impl TrunkKind {
5964 pub fn as_str_name(&self) -> &'static str {
5969 match self {
5970 Self::TrunkLegacy => "TRUNK_LEGACY",
5971 Self::TrunkInbound => "TRUNK_INBOUND",
5972 Self::TrunkOutbound => "TRUNK_OUTBOUND",
5973 }
5974 }
5975 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5977 match value {
5978 "TRUNK_LEGACY" => Some(Self::TrunkLegacy),
5979 "TRUNK_INBOUND" => Some(Self::TrunkInbound),
5980 "TRUNK_OUTBOUND" => Some(Self::TrunkOutbound),
5981 _ => None,
5982 }
5983 }
5984 }
5985}
5986#[derive(Clone, PartialEq, ::prost::Message)]
5987pub struct CreateSipInboundTrunkRequest {
5988 #[prost(message, optional, tag = "1")]
5990 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
5991}
5992#[derive(Clone, PartialEq, ::prost::Message)]
5993pub struct UpdateSipInboundTrunkRequest {
5994 #[prost(string, tag = "1")]
5995 pub sip_trunk_id: ::prost::alloc::string::String,
5996 #[prost(oneof = "update_sip_inbound_trunk_request::Action", tags = "2, 3")]
5997 pub action: ::core::option::Option<update_sip_inbound_trunk_request::Action>,
5998}
5999pub mod update_sip_inbound_trunk_request {
6001 #[derive(Clone, PartialEq, ::prost::Oneof)]
6002 pub enum Action {
6003 #[prost(message, tag = "2")]
6004 Replace(super::SipInboundTrunkInfo),
6005 #[prost(message, tag = "3")]
6006 Update(super::SipInboundTrunkUpdate),
6007 }
6008}
6009#[derive(Clone, PartialEq, ::prost::Message)]
6010pub struct SipInboundTrunkInfo {
6011 #[prost(string, tag = "1")]
6012 pub sip_trunk_id: ::prost::alloc::string::String,
6013 #[prost(string, tag = "2")]
6015 pub name: ::prost::alloc::string::String,
6016 #[prost(string, tag = "3")]
6018 pub metadata: ::prost::alloc::string::String,
6019 #[prost(string, repeated, tag = "4")]
6022 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6023 #[prost(string, repeated, tag = "5")]
6026 pub allowed_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6027 #[prost(string, repeated, tag = "6")]
6030 pub allowed_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6031 #[prost(string, tag = "7")]
6034 pub auth_username: ::prost::alloc::string::String,
6035 #[prost(string, tag = "8")]
6036 pub auth_password: ::prost::alloc::string::String,
6037 #[prost(string, tag = "19")]
6038 pub auth_realm: ::prost::alloc::string::String,
6039 #[prost(map = "string, string", tag = "9")]
6041 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6042 #[prost(map = "string, string", tag = "10")]
6044 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6045 #[prost(map = "string, string", tag = "14")]
6048 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6049 #[prost(enumeration = "SipHeaderOptions", tag = "15")]
6056 pub include_headers: i32,
6057 #[prost(message, optional, tag = "11")]
6059 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6060 #[prost(message, optional, tag = "12")]
6062 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
6063 #[prost(bool, tag = "13")]
6064 pub krisp_enabled: bool,
6065 #[deprecated]
6066 #[prost(enumeration = "SipMediaEncryption", tag = "16")]
6067 pub media_encryption: i32,
6068 #[prost(message, optional, tag = "20")]
6069 pub media: ::core::option::Option<SipMediaConfig>,
6070 #[prost(message, optional, tag = "17")]
6071 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6072 #[prost(message, optional, tag = "18")]
6073 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6074}
6075#[derive(Clone, PartialEq, ::prost::Message)]
6076pub struct SipInboundTrunkUpdate {
6077 #[prost(message, optional, tag = "1")]
6078 pub numbers: ::core::option::Option<ListUpdate>,
6079 #[prost(message, optional, tag = "2")]
6080 pub allowed_addresses: ::core::option::Option<ListUpdate>,
6081 #[prost(message, optional, tag = "3")]
6082 pub allowed_numbers: ::core::option::Option<ListUpdate>,
6083 #[prost(string, optional, tag = "4")]
6084 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
6085 #[prost(string, optional, tag = "5")]
6086 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
6087 #[prost(string, optional, tag = "9")]
6088 pub auth_realm: ::core::option::Option<::prost::alloc::string::String>,
6089 #[prost(string, optional, tag = "6")]
6090 pub name: ::core::option::Option<::prost::alloc::string::String>,
6091 #[prost(string, optional, tag = "7")]
6092 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6093 #[deprecated]
6094 #[prost(enumeration = "SipMediaEncryption", optional, tag = "8")]
6095 pub media_encryption: ::core::option::Option<i32>,
6096 #[prost(message, optional, tag = "10")]
6097 pub media: ::core::option::Option<SipMediaConfig>,
6098}
6099#[derive(Clone, PartialEq, ::prost::Message)]
6100pub struct CreateSipOutboundTrunkRequest {
6101 #[prost(message, optional, tag = "1")]
6103 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
6104}
6105#[derive(Clone, PartialEq, ::prost::Message)]
6106pub struct UpdateSipOutboundTrunkRequest {
6107 #[prost(string, tag = "1")]
6108 pub sip_trunk_id: ::prost::alloc::string::String,
6109 #[prost(oneof = "update_sip_outbound_trunk_request::Action", tags = "2, 3")]
6110 pub action: ::core::option::Option<update_sip_outbound_trunk_request::Action>,
6111}
6112pub mod update_sip_outbound_trunk_request {
6114 #[derive(Clone, PartialEq, ::prost::Oneof)]
6115 pub enum Action {
6116 #[prost(message, tag = "2")]
6117 Replace(super::SipOutboundTrunkInfo),
6118 #[prost(message, tag = "3")]
6119 Update(super::SipOutboundTrunkUpdate),
6120 }
6121}
6122#[derive(Clone, PartialEq, ::prost::Message)]
6123pub struct SipOutboundTrunkInfo {
6124 #[prost(string, tag = "1")]
6125 pub sip_trunk_id: ::prost::alloc::string::String,
6126 #[prost(string, tag = "2")]
6128 pub name: ::prost::alloc::string::String,
6129 #[prost(string, tag = "3")]
6131 pub metadata: ::prost::alloc::string::String,
6132 #[prost(string, tag = "4")]
6135 pub address: ::prost::alloc::string::String,
6136 #[prost(string, tag = "14")]
6138 pub destination_country: ::prost::alloc::string::String,
6139 #[prost(enumeration = "SipTransport", tag = "5")]
6141 pub transport: i32,
6142 #[prost(string, repeated, tag = "6")]
6144 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6145 #[prost(string, tag = "7")]
6148 pub auth_username: ::prost::alloc::string::String,
6149 #[prost(string, tag = "8")]
6150 pub auth_password: ::prost::alloc::string::String,
6151 #[prost(map = "string, string", tag = "9")]
6154 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6155 #[prost(map = "string, string", tag = "10")]
6158 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6159 #[prost(map = "string, string", tag = "11")]
6162 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6163 #[prost(enumeration = "SipHeaderOptions", tag = "12")]
6170 pub include_headers: i32,
6171 #[deprecated]
6172 #[prost(enumeration = "SipMediaEncryption", tag = "13")]
6173 pub media_encryption: i32,
6174 #[prost(message, optional, tag = "18")]
6175 pub media: ::core::option::Option<SipMediaConfig>,
6176 #[prost(string, tag = "15")]
6180 pub from_host: ::prost::alloc::string::String,
6181 #[prost(message, optional, tag = "16")]
6182 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6183 #[prost(message, optional, tag = "17")]
6184 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6185}
6186#[derive(Clone, PartialEq, ::prost::Message)]
6187pub struct SipOutboundTrunkUpdate {
6188 #[prost(string, optional, tag = "1")]
6189 pub address: ::core::option::Option<::prost::alloc::string::String>,
6190 #[prost(enumeration = "SipTransport", optional, tag = "2")]
6191 pub transport: ::core::option::Option<i32>,
6192 #[prost(string, optional, tag = "9")]
6193 pub destination_country: ::core::option::Option<::prost::alloc::string::String>,
6194 #[prost(message, optional, tag = "3")]
6195 pub numbers: ::core::option::Option<ListUpdate>,
6196 #[prost(string, optional, tag = "4")]
6197 pub auth_username: ::core::option::Option<::prost::alloc::string::String>,
6198 #[prost(string, optional, tag = "5")]
6199 pub auth_password: ::core::option::Option<::prost::alloc::string::String>,
6200 #[prost(string, optional, tag = "6")]
6201 pub name: ::core::option::Option<::prost::alloc::string::String>,
6202 #[prost(string, optional, tag = "7")]
6203 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6204 #[deprecated]
6205 #[prost(enumeration = "SipMediaEncryption", optional, tag = "8")]
6206 pub media_encryption: ::core::option::Option<i32>,
6207 #[prost(message, optional, tag = "11")]
6208 pub media: ::core::option::Option<SipMediaConfig>,
6209 #[prost(string, optional, tag = "10")]
6210 pub from_host: ::core::option::Option<::prost::alloc::string::String>,
6211}
6212#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6213pub struct GetSipInboundTrunkRequest {
6214 #[prost(string, tag = "1")]
6215 pub sip_trunk_id: ::prost::alloc::string::String,
6216}
6217#[derive(Clone, PartialEq, ::prost::Message)]
6218pub struct GetSipInboundTrunkResponse {
6219 #[prost(message, optional, tag = "1")]
6220 pub trunk: ::core::option::Option<SipInboundTrunkInfo>,
6221}
6222#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6223pub struct GetSipOutboundTrunkRequest {
6224 #[prost(string, tag = "1")]
6225 pub sip_trunk_id: ::prost::alloc::string::String,
6226}
6227#[derive(Clone, PartialEq, ::prost::Message)]
6228pub struct GetSipOutboundTrunkResponse {
6229 #[prost(message, optional, tag = "1")]
6230 pub trunk: ::core::option::Option<SipOutboundTrunkInfo>,
6231}
6232#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6233pub struct ListSipTrunkRequest {
6234 #[prost(message, optional, tag = "1")]
6235 pub page: ::core::option::Option<Pagination>,
6236}
6237#[derive(Clone, PartialEq, ::prost::Message)]
6238pub struct ListSipTrunkResponse {
6239 #[prost(message, repeated, tag = "1")]
6240 pub items: ::prost::alloc::vec::Vec<SipTrunkInfo>,
6241}
6242#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6244pub struct ListSipInboundTrunkRequest {
6245 #[prost(message, optional, tag = "3")]
6246 pub page: ::core::option::Option<Pagination>,
6247 #[prost(string, repeated, tag = "1")]
6250 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6251 #[prost(string, repeated, tag = "2")]
6253 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6254}
6255#[derive(Clone, PartialEq, ::prost::Message)]
6256pub struct ListSipInboundTrunkResponse {
6257 #[prost(message, repeated, tag = "1")]
6258 pub items: ::prost::alloc::vec::Vec<SipInboundTrunkInfo>,
6259}
6260#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6262pub struct ListSipOutboundTrunkRequest {
6263 #[prost(message, optional, tag = "3")]
6264 pub page: ::core::option::Option<Pagination>,
6265 #[prost(string, repeated, tag = "1")]
6268 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6269 #[prost(string, repeated, tag = "2")]
6271 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6272}
6273#[derive(Clone, PartialEq, ::prost::Message)]
6274pub struct ListSipOutboundTrunkResponse {
6275 #[prost(message, repeated, tag = "1")]
6276 pub items: ::prost::alloc::vec::Vec<SipOutboundTrunkInfo>,
6277}
6278#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6279pub struct DeleteSipTrunkRequest {
6280 #[prost(string, tag = "1")]
6281 pub sip_trunk_id: ::prost::alloc::string::String,
6282}
6283#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6284pub struct SipDispatchRuleDirect {
6285 #[prost(string, tag = "1")]
6287 pub room_name: ::prost::alloc::string::String,
6288 #[prost(string, tag = "2")]
6290 pub pin: ::prost::alloc::string::String,
6291}
6292#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6293pub struct SipDispatchRuleIndividual {
6294 #[prost(string, tag = "1")]
6296 pub room_prefix: ::prost::alloc::string::String,
6297 #[prost(string, tag = "2")]
6299 pub pin: ::prost::alloc::string::String,
6300 #[prost(bool, tag = "3")]
6302 pub no_randomness: bool,
6303}
6304#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6305pub struct SipDispatchRuleCallee {
6306 #[prost(string, tag = "1")]
6308 pub room_prefix: ::prost::alloc::string::String,
6309 #[prost(string, tag = "2")]
6311 pub pin: ::prost::alloc::string::String,
6312 #[prost(bool, tag = "3")]
6314 pub randomize: bool,
6315}
6316#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6317pub struct SipDispatchRule {
6318 #[prost(oneof = "sip_dispatch_rule::Rule", tags = "1, 2, 3")]
6319 pub rule: ::core::option::Option<sip_dispatch_rule::Rule>,
6320}
6321pub mod sip_dispatch_rule {
6323 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
6324 pub enum Rule {
6325 #[prost(message, tag = "1")]
6329 DispatchRuleDirect(super::SipDispatchRuleDirect),
6330 #[prost(message, tag = "2")]
6332 DispatchRuleIndividual(super::SipDispatchRuleIndividual),
6333 #[prost(message, tag = "3")]
6335 DispatchRuleCallee(super::SipDispatchRuleCallee),
6336 }
6337}
6338#[derive(Clone, PartialEq, ::prost::Message)]
6339pub struct CreateSipDispatchRuleRequest {
6340 #[prost(message, optional, tag = "10")]
6342 pub dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
6343 #[deprecated]
6344 #[prost(message, optional, tag = "1")]
6345 pub rule: ::core::option::Option<SipDispatchRule>,
6346 #[deprecated]
6349 #[prost(string, repeated, tag = "2")]
6350 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6351 #[deprecated]
6354 #[prost(bool, tag = "3")]
6355 pub hide_phone_number: bool,
6356 #[deprecated]
6358 #[prost(string, repeated, tag = "6")]
6359 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6360 #[deprecated]
6362 #[prost(string, tag = "4")]
6363 pub name: ::prost::alloc::string::String,
6364 #[deprecated]
6367 #[prost(string, tag = "5")]
6368 pub metadata: ::prost::alloc::string::String,
6369 #[prost(map = "string, string", tag = "7")]
6372 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6373 #[deprecated]
6375 #[prost(string, tag = "8")]
6376 pub room_preset: ::prost::alloc::string::String,
6377 #[deprecated]
6379 #[prost(message, optional, tag = "9")]
6380 pub room_config: ::core::option::Option<RoomConfiguration>,
6381}
6382#[derive(Clone, PartialEq, ::prost::Message)]
6383pub struct UpdateSipDispatchRuleRequest {
6384 #[prost(string, tag = "1")]
6385 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6386 #[prost(oneof = "update_sip_dispatch_rule_request::Action", tags = "2, 3")]
6387 pub action: ::core::option::Option<update_sip_dispatch_rule_request::Action>,
6388}
6389pub mod update_sip_dispatch_rule_request {
6391 #[derive(Clone, PartialEq, ::prost::Oneof)]
6392 pub enum Action {
6393 #[prost(message, tag = "2")]
6394 Replace(super::SipDispatchRuleInfo),
6395 #[prost(message, tag = "3")]
6396 Update(super::SipDispatchRuleUpdate),
6397 }
6398}
6399#[derive(Clone, PartialEq, ::prost::Message)]
6400pub struct SipDispatchRuleInfo {
6401 #[prost(string, tag = "1")]
6402 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6403 #[prost(message, optional, tag = "2")]
6404 pub rule: ::core::option::Option<SipDispatchRule>,
6405 #[prost(string, repeated, tag = "3")]
6406 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6407 #[prost(bool, tag = "4")]
6408 pub hide_phone_number: bool,
6409 #[prost(string, repeated, tag = "7")]
6411 pub inbound_numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6412 #[prost(string, repeated, tag = "13")]
6414 pub numbers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6415 #[prost(string, tag = "5")]
6417 pub name: ::prost::alloc::string::String,
6418 #[prost(string, tag = "6")]
6421 pub metadata: ::prost::alloc::string::String,
6422 #[prost(map = "string, string", tag = "8")]
6425 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6426 #[prost(string, tag = "9")]
6428 pub room_preset: ::prost::alloc::string::String,
6429 #[prost(message, optional, tag = "10")]
6431 pub room_config: ::core::option::Option<RoomConfiguration>,
6432 #[prost(message, optional, tag = "16")]
6433 pub media: ::core::option::Option<SipMediaConfig>,
6434 #[prost(bool, tag = "11")]
6435 pub krisp_enabled: bool,
6436 #[deprecated]
6437 #[prost(enumeration = "SipMediaEncryption", tag = "12")]
6438 pub media_encryption: i32,
6439 #[prost(message, optional, tag = "14")]
6440 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
6441 #[prost(message, optional, tag = "15")]
6442 pub updated_at: ::core::option::Option<::pbjson_types::Timestamp>,
6443}
6444#[derive(Clone, PartialEq, ::prost::Message)]
6445pub struct SipDispatchRuleUpdate {
6446 #[prost(message, optional, tag = "1")]
6447 pub trunk_ids: ::core::option::Option<ListUpdate>,
6448 #[prost(message, optional, tag = "2")]
6449 pub rule: ::core::option::Option<SipDispatchRule>,
6450 #[prost(string, optional, tag = "3")]
6451 pub name: ::core::option::Option<::prost::alloc::string::String>,
6452 #[prost(string, optional, tag = "4")]
6453 pub metadata: ::core::option::Option<::prost::alloc::string::String>,
6454 #[prost(map = "string, string", tag = "5")]
6455 pub attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6456 #[deprecated]
6457 #[prost(enumeration = "SipMediaEncryption", optional, tag = "6")]
6458 pub media_encryption: ::core::option::Option<i32>,
6459 #[prost(message, optional, tag = "7")]
6460 pub media: ::core::option::Option<SipMediaConfig>,
6461}
6462#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6464pub struct ListSipDispatchRuleRequest {
6465 #[prost(message, optional, tag = "3")]
6466 pub page: ::core::option::Option<Pagination>,
6467 #[prost(string, repeated, tag = "1")]
6470 pub dispatch_rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6471 #[prost(string, repeated, tag = "2")]
6473 pub trunk_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
6474}
6475#[derive(Clone, PartialEq, ::prost::Message)]
6476pub struct ListSipDispatchRuleResponse {
6477 #[prost(message, repeated, tag = "1")]
6478 pub items: ::prost::alloc::vec::Vec<SipDispatchRuleInfo>,
6479}
6480#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6481pub struct DeleteSipDispatchRuleRequest {
6482 #[prost(string, tag = "1")]
6483 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
6484}
6485#[derive(Clone, PartialEq, ::prost::Message)]
6486pub struct SipOutboundConfig {
6487 #[prost(string, tag = "1")]
6489 pub hostname: ::prost::alloc::string::String,
6490 #[prost(string, tag = "7")]
6492 pub destination_country: ::prost::alloc::string::String,
6493 #[prost(enumeration = "SipTransport", tag = "2")]
6495 pub transport: i32,
6496 #[prost(string, tag = "3")]
6499 pub auth_username: ::prost::alloc::string::String,
6500 #[prost(string, tag = "4")]
6501 pub auth_password: ::prost::alloc::string::String,
6502 #[prost(map = "string, string", tag = "5")]
6505 pub headers_to_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6506 #[prost(map = "string, string", tag = "6")]
6509 pub attributes_to_headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6510 #[prost(string, tag = "8")]
6512 pub from_host: ::prost::alloc::string::String,
6513}
6514#[derive(Clone, PartialEq, ::prost::Message)]
6517pub struct CreateSipParticipantRequest {
6518 #[prost(string, tag = "1")]
6520 pub sip_trunk_id: ::prost::alloc::string::String,
6521 #[prost(message, optional, tag = "20")]
6522 pub trunk: ::core::option::Option<SipOutboundConfig>,
6523 #[prost(message, optional, tag = "24")]
6525 pub sip_request_uri: ::core::option::Option<SipRequestDest>,
6526 #[prost(message, optional, tag = "25")]
6528 pub sip_to_header: ::core::option::Option<SipNamedDest>,
6529 #[prost(message, optional, tag = "26")]
6531 pub sip_from_header: ::core::option::Option<SipNamedDest>,
6532 #[prost(string, tag = "2")]
6534 pub sip_call_to: ::prost::alloc::string::String,
6535 #[prost(string, tag = "15")]
6537 pub sip_number: ::prost::alloc::string::String,
6538 #[prost(string, tag = "3")]
6540 pub room_name: ::prost::alloc::string::String,
6541 #[prost(string, tag = "4")]
6543 pub participant_identity: ::prost::alloc::string::String,
6544 #[prost(string, tag = "7")]
6546 pub participant_name: ::prost::alloc::string::String,
6547 #[prost(string, tag = "8")]
6549 pub participant_metadata: ::prost::alloc::string::String,
6550 #[prost(map = "string, string", tag = "9")]
6552 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6553 #[prost(string, tag = "5")]
6556 pub dtmf: ::prost::alloc::string::String,
6557 #[deprecated]
6559 #[prost(bool, tag = "6")]
6560 pub play_ringtone: bool,
6561 #[prost(bool, tag = "13")]
6562 pub play_dialtone: bool,
6563 #[prost(bool, tag = "10")]
6566 pub hide_phone_number: bool,
6567 #[prost(map = "string, string", tag = "16")]
6569 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6570 #[prost(enumeration = "SipHeaderOptions", tag = "17")]
6577 pub include_headers: i32,
6578 #[prost(message, optional, tag = "11")]
6580 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6581 #[prost(message, optional, tag = "12")]
6583 pub max_call_duration: ::core::option::Option<::pbjson_types::Duration>,
6584 #[prost(bool, tag = "14")]
6586 pub krisp_enabled: bool,
6587 #[deprecated]
6588 #[prost(enumeration = "SipMediaEncryption", tag = "18")]
6589 pub media_encryption: i32,
6590 #[prost(message, optional, tag = "23")]
6591 pub media: ::core::option::Option<SipMediaConfig>,
6592 #[prost(bool, tag = "19")]
6594 pub wait_until_answered: bool,
6595 #[prost(string, optional, tag = "21")]
6602 pub display_name: ::core::option::Option<::prost::alloc::string::String>,
6603 #[prost(message, optional, tag = "22")]
6605 pub destination: ::core::option::Option<Destination>,
6606}
6607#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6608pub struct SipParticipantInfo {
6609 #[prost(string, tag = "1")]
6610 pub participant_id: ::prost::alloc::string::String,
6611 #[prost(string, tag = "2")]
6612 pub participant_identity: ::prost::alloc::string::String,
6613 #[prost(string, tag = "3")]
6614 pub room_name: ::prost::alloc::string::String,
6615 #[prost(string, tag = "4")]
6616 pub sip_call_id: ::prost::alloc::string::String,
6617}
6618#[derive(Clone, PartialEq, ::prost::Message)]
6619pub struct TransferSipParticipantRequest {
6620 #[prost(string, tag = "1")]
6621 pub participant_identity: ::prost::alloc::string::String,
6622 #[prost(string, tag = "2")]
6623 pub room_name: ::prost::alloc::string::String,
6624 #[prost(string, tag = "3")]
6625 pub transfer_to: ::prost::alloc::string::String,
6626 #[prost(bool, tag = "4")]
6628 pub play_dialtone: bool,
6629 #[prost(map = "string, string", tag = "5")]
6631 pub headers: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6632 #[prost(message, optional, tag = "6")]
6634 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
6635}
6636#[derive(Clone, PartialEq, ::prost::Message)]
6637pub struct SipCallInfo {
6638 #[prost(string, tag = "1")]
6639 pub call_id: ::prost::alloc::string::String,
6640 #[prost(string, tag = "2")]
6641 pub trunk_id: ::prost::alloc::string::String,
6642 #[prost(string, tag = "16")]
6643 pub dispatch_rule_id: ::prost::alloc::string::String,
6644 #[prost(string, tag = "17")]
6645 pub region: ::prost::alloc::string::String,
6646 #[prost(string, tag = "3")]
6647 pub room_name: ::prost::alloc::string::String,
6648 #[prost(string, tag = "4")]
6650 pub room_id: ::prost::alloc::string::String,
6651 #[prost(string, tag = "5")]
6652 pub participant_identity: ::prost::alloc::string::String,
6653 #[prost(map = "string, string", tag = "18")]
6654 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
6655 #[prost(message, optional, tag = "6")]
6656 pub from_uri: ::core::option::Option<SipUri>,
6657 #[prost(message, optional, tag = "7")]
6658 pub to_uri: ::core::option::Option<SipUri>,
6659 #[deprecated]
6660 #[prost(int64, tag = "9")]
6661 pub created_at: i64,
6662 #[deprecated]
6663 #[prost(int64, tag = "10")]
6664 pub started_at: i64,
6665 #[deprecated]
6666 #[prost(int64, tag = "11")]
6667 pub ended_at: i64,
6668 #[prost(enumeration = "SipFeature", repeated, tag = "14")]
6669 pub enabled_features: ::prost::alloc::vec::Vec<i32>,
6670 #[prost(enumeration = "SipCallDirection", tag = "15")]
6671 pub call_direction: i32,
6672 #[prost(enumeration = "SipCallStatus", tag = "8")]
6673 pub call_status: i32,
6674 #[prost(int64, tag = "22")]
6675 pub created_at_ns: i64,
6676 #[prost(int64, tag = "23")]
6677 pub started_at_ns: i64,
6678 #[prost(int64, tag = "24")]
6679 pub ended_at_ns: i64,
6680 #[prost(enumeration = "DisconnectReason", tag = "12")]
6681 pub disconnect_reason: i32,
6682 #[prost(string, tag = "13")]
6683 pub error: ::prost::alloc::string::String,
6684 #[prost(message, optional, tag = "19")]
6685 pub call_status_code: ::core::option::Option<SipStatus>,
6686 #[prost(string, tag = "20")]
6687 pub audio_codec: ::prost::alloc::string::String,
6688 #[prost(string, tag = "21")]
6689 pub media_encryption: ::prost::alloc::string::String,
6690 #[prost(string, tag = "25")]
6691 pub pcap_file_link: ::prost::alloc::string::String,
6692 #[prost(message, repeated, tag = "26")]
6693 pub call_context: ::prost::alloc::vec::Vec<::pbjson_types::Any>,
6694 #[prost(message, optional, tag = "27")]
6695 pub provider_info: ::core::option::Option<ProviderInfo>,
6696 #[prost(string, tag = "28")]
6697 pub sip_call_id: ::prost::alloc::string::String,
6698}
6699#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6700pub struct SipTransferInfo {
6701 #[prost(string, tag = "1")]
6702 pub transfer_id: ::prost::alloc::string::String,
6703 #[prost(string, tag = "2")]
6704 pub call_id: ::prost::alloc::string::String,
6705 #[prost(string, tag = "3")]
6706 pub transfer_to: ::prost::alloc::string::String,
6707 #[prost(int64, tag = "4")]
6708 pub transfer_initiated_at_ns: i64,
6709 #[prost(int64, tag = "5")]
6710 pub transfer_completed_at_ns: i64,
6711 #[prost(enumeration = "SipTransferStatus", tag = "6")]
6712 pub transfer_status: i32,
6713 #[prost(string, tag = "7")]
6714 pub error: ::prost::alloc::string::String,
6715 #[prost(message, optional, tag = "8")]
6716 pub transfer_status_code: ::core::option::Option<SipStatus>,
6717}
6718#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6719pub struct SipUri {
6720 #[prost(string, tag = "1")]
6721 pub user: ::prost::alloc::string::String,
6722 #[prost(string, tag = "2")]
6723 pub host: ::prost::alloc::string::String,
6724 #[prost(string, tag = "3")]
6725 pub ip: ::prost::alloc::string::String,
6726 #[prost(uint32, tag = "4")]
6727 pub port: u32,
6728 #[prost(enumeration = "SipTransport", tag = "5")]
6729 pub transport: i32,
6730}
6731#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6732pub struct SipRequestDest {
6733 #[prost(oneof = "sip_request_dest::Uri", tags = "1, 2")]
6734 pub uri: ::core::option::Option<sip_request_dest::Uri>,
6735}
6736pub mod sip_request_dest {
6738 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
6739 pub enum Uri {
6740 #[prost(string, tag = "1")]
6742 Raw(::prost::alloc::string::String),
6743 #[prost(message, tag = "2")]
6744 Values(super::SipUri),
6745 }
6746}
6747#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6748pub struct SipNamedDest {
6749 #[prost(string, tag = "3")]
6750 pub display_name: ::prost::alloc::string::String,
6751 #[prost(oneof = "sip_named_dest::Uri", tags = "1, 2")]
6752 pub uri: ::core::option::Option<sip_named_dest::Uri>,
6753}
6754pub mod sip_named_dest {
6756 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
6757 pub enum Uri {
6758 #[prost(string, tag = "1")]
6760 Raw(::prost::alloc::string::String),
6761 #[prost(message, tag = "2")]
6762 Values(super::SipUri),
6763 }
6764}
6765#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6766pub struct Destination {
6767 #[prost(string, tag = "1")]
6768 pub city: ::prost::alloc::string::String,
6769 #[prost(string, tag = "2")]
6770 pub country: ::prost::alloc::string::String,
6771 #[prost(string, tag = "3")]
6772 pub region: ::prost::alloc::string::String,
6773}
6774#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6775#[repr(i32)]
6776pub enum SipStatusCode {
6777 SipStatusUnknown = 0,
6778 SipStatusTrying = 100,
6779 SipStatusRinging = 180,
6780 SipStatusCallIsForwarded = 181,
6781 SipStatusQueued = 182,
6782 SipStatusSessionProgress = 183,
6783 SipStatusEarlyDialogTerminated = 199,
6784 SipStatusOk = 200,
6785 SipStatusAccepted = 202,
6786 SipStatusNoNotification = 204,
6787 SipStatusMultipleChoices = 300,
6788 SipStatusMovedPermanently = 301,
6789 SipStatusMovedTemporarily = 302,
6790 SipStatusUseProxy = 305,
6791 SipStatusAlternativeService = 380,
6792 SipStatusBadRequest = 400,
6793 SipStatusUnauthorized = 401,
6794 SipStatusPaymentRequired = 402,
6795 SipStatusForbidden = 403,
6796 SipStatusNotfound = 404,
6797 SipStatusMethodNotAllowed = 405,
6798 SipStatusNotAcceptable = 406,
6799 SipStatusProxyAuthRequired = 407,
6800 SipStatusRequestTimeout = 408,
6801 SipStatusConflict = 409,
6802 SipStatusGone = 410,
6803 SipStatusLengthRequired = 411,
6804 SipStatusConditionalRequestFailed = 412,
6805 SipStatusRequestEntityTooLarge = 413,
6806 SipStatusRequestUriTooLong = 414,
6807 SipStatusUnsupportedMediaType = 415,
6808 SipStatusRequestedRangeNotSatisfiable = 416,
6809 SipStatusUnknownResourcePriority = 417,
6810 SipStatusBadExtension = 420,
6811 SipStatusExtensionRequired = 421,
6812 SipStatusSessionIntervalTooSmall = 422,
6813 SipStatusIntervalTooBrief = 423,
6814 SipStatusBadLocationInformation = 424,
6815 SipStatusBadAlertMessage = 425,
6816 SipStatusUseIdentityHeader = 428,
6817 SipStatusProvideReferrerIdentity = 429,
6818 SipStatusFlowFailed = 430,
6819 SipStatusAnonymityDisallowed = 433,
6820 SipStatusBadIdentityInfo = 436,
6821 SipStatusUnsupportedCertificate = 437,
6822 SipStatusInvalidIdentityHeader = 438,
6823 SipStatusFirstHopLacksOutboundSupport = 439,
6824 SipStatusMaxBreadthExceeded = 440,
6825 SipStatusBadInfoPackage = 469,
6826 SipStatusConsentNeeded = 470,
6827 SipStatusTemporarilyUnavailable = 480,
6828 SipStatusCallTransactionDoesNotExists = 481,
6829 SipStatusLoopDetected = 482,
6830 SipStatusTooManyHops = 483,
6831 SipStatusAddressIncomplete = 484,
6832 SipStatusAmbiguous = 485,
6833 SipStatusBusyHere = 486,
6834 SipStatusRequestTerminated = 487,
6835 SipStatusNotAcceptableHere = 488,
6836 SipStatusBadEvent = 489,
6837 SipStatusRequestPending = 491,
6838 SipStatusUndecipherable = 493,
6839 SipStatusSecurityAgreementRequired = 494,
6840 SipStatusInternalServerError = 500,
6841 SipStatusNotImplemented = 501,
6842 SipStatusBadGateway = 502,
6843 SipStatusServiceUnavailable = 503,
6844 SipStatusGatewayTimeout = 504,
6845 SipStatusVersionNotSupported = 505,
6846 SipStatusMessageTooLarge = 513,
6847 SipStatusGlobalBusyEverywhere = 600,
6848 SipStatusGlobalDecline = 603,
6849 SipStatusGlobalDoesNotExistAnywhere = 604,
6850 SipStatusGlobalNotAcceptable = 606,
6851 SipStatusGlobalUnwanted = 607,
6852 SipStatusGlobalRejected = 608,
6853}
6854impl SipStatusCode {
6855 pub fn as_str_name(&self) -> &'static str {
6860 match self {
6861 Self::SipStatusUnknown => "SIP_STATUS_UNKNOWN",
6862 Self::SipStatusTrying => "SIP_STATUS_TRYING",
6863 Self::SipStatusRinging => "SIP_STATUS_RINGING",
6864 Self::SipStatusCallIsForwarded => "SIP_STATUS_CALL_IS_FORWARDED",
6865 Self::SipStatusQueued => "SIP_STATUS_QUEUED",
6866 Self::SipStatusSessionProgress => "SIP_STATUS_SESSION_PROGRESS",
6867 Self::SipStatusEarlyDialogTerminated => "SIP_STATUS_EARLY_DIALOG_TERMINATED",
6868 Self::SipStatusOk => "SIP_STATUS_OK",
6869 Self::SipStatusAccepted => "SIP_STATUS_ACCEPTED",
6870 Self::SipStatusNoNotification => "SIP_STATUS_NO_NOTIFICATION",
6871 Self::SipStatusMultipleChoices => "SIP_STATUS_MULTIPLE_CHOICES",
6872 Self::SipStatusMovedPermanently => "SIP_STATUS_MOVED_PERMANENTLY",
6873 Self::SipStatusMovedTemporarily => "SIP_STATUS_MOVED_TEMPORARILY",
6874 Self::SipStatusUseProxy => "SIP_STATUS_USE_PROXY",
6875 Self::SipStatusAlternativeService => "SIP_STATUS_ALTERNATIVE_SERVICE",
6876 Self::SipStatusBadRequest => "SIP_STATUS_BAD_REQUEST",
6877 Self::SipStatusUnauthorized => "SIP_STATUS_UNAUTHORIZED",
6878 Self::SipStatusPaymentRequired => "SIP_STATUS_PAYMENT_REQUIRED",
6879 Self::SipStatusForbidden => "SIP_STATUS_FORBIDDEN",
6880 Self::SipStatusNotfound => "SIP_STATUS_NOTFOUND",
6881 Self::SipStatusMethodNotAllowed => "SIP_STATUS_METHOD_NOT_ALLOWED",
6882 Self::SipStatusNotAcceptable => "SIP_STATUS_NOT_ACCEPTABLE",
6883 Self::SipStatusProxyAuthRequired => "SIP_STATUS_PROXY_AUTH_REQUIRED",
6884 Self::SipStatusRequestTimeout => "SIP_STATUS_REQUEST_TIMEOUT",
6885 Self::SipStatusConflict => "SIP_STATUS_CONFLICT",
6886 Self::SipStatusGone => "SIP_STATUS_GONE",
6887 Self::SipStatusLengthRequired => "SIP_STATUS_LENGTH_REQUIRED",
6888 Self::SipStatusConditionalRequestFailed => "SIP_STATUS_CONDITIONAL_REQUEST_FAILED",
6889 Self::SipStatusRequestEntityTooLarge => "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE",
6890 Self::SipStatusRequestUriTooLong => "SIP_STATUS_REQUEST_URI_TOO_LONG",
6891 Self::SipStatusUnsupportedMediaType => "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE",
6892 Self::SipStatusRequestedRangeNotSatisfiable => "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE",
6893 Self::SipStatusUnknownResourcePriority => "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY",
6894 Self::SipStatusBadExtension => "SIP_STATUS_BAD_EXTENSION",
6895 Self::SipStatusExtensionRequired => "SIP_STATUS_EXTENSION_REQUIRED",
6896 Self::SipStatusSessionIntervalTooSmall => "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL",
6897 Self::SipStatusIntervalTooBrief => "SIP_STATUS_INTERVAL_TOO_BRIEF",
6898 Self::SipStatusBadLocationInformation => "SIP_STATUS_BAD_LOCATION_INFORMATION",
6899 Self::SipStatusBadAlertMessage => "SIP_STATUS_BAD_ALERT_MESSAGE",
6900 Self::SipStatusUseIdentityHeader => "SIP_STATUS_USE_IDENTITY_HEADER",
6901 Self::SipStatusProvideReferrerIdentity => "SIP_STATUS_PROVIDE_REFERRER_IDENTITY",
6902 Self::SipStatusFlowFailed => "SIP_STATUS_FLOW_FAILED",
6903 Self::SipStatusAnonymityDisallowed => "SIP_STATUS_ANONYMITY_DISALLOWED",
6904 Self::SipStatusBadIdentityInfo => "SIP_STATUS_BAD_IDENTITY_INFO",
6905 Self::SipStatusUnsupportedCertificate => "SIP_STATUS_UNSUPPORTED_CERTIFICATE",
6906 Self::SipStatusInvalidIdentityHeader => "SIP_STATUS_INVALID_IDENTITY_HEADER",
6907 Self::SipStatusFirstHopLacksOutboundSupport => "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT",
6908 Self::SipStatusMaxBreadthExceeded => "SIP_STATUS_MAX_BREADTH_EXCEEDED",
6909 Self::SipStatusBadInfoPackage => "SIP_STATUS_BAD_INFO_PACKAGE",
6910 Self::SipStatusConsentNeeded => "SIP_STATUS_CONSENT_NEEDED",
6911 Self::SipStatusTemporarilyUnavailable => "SIP_STATUS_TEMPORARILY_UNAVAILABLE",
6912 Self::SipStatusCallTransactionDoesNotExists => "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS",
6913 Self::SipStatusLoopDetected => "SIP_STATUS_LOOP_DETECTED",
6914 Self::SipStatusTooManyHops => "SIP_STATUS_TOO_MANY_HOPS",
6915 Self::SipStatusAddressIncomplete => "SIP_STATUS_ADDRESS_INCOMPLETE",
6916 Self::SipStatusAmbiguous => "SIP_STATUS_AMBIGUOUS",
6917 Self::SipStatusBusyHere => "SIP_STATUS_BUSY_HERE",
6918 Self::SipStatusRequestTerminated => "SIP_STATUS_REQUEST_TERMINATED",
6919 Self::SipStatusNotAcceptableHere => "SIP_STATUS_NOT_ACCEPTABLE_HERE",
6920 Self::SipStatusBadEvent => "SIP_STATUS_BAD_EVENT",
6921 Self::SipStatusRequestPending => "SIP_STATUS_REQUEST_PENDING",
6922 Self::SipStatusUndecipherable => "SIP_STATUS_UNDECIPHERABLE",
6923 Self::SipStatusSecurityAgreementRequired => "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED",
6924 Self::SipStatusInternalServerError => "SIP_STATUS_INTERNAL_SERVER_ERROR",
6925 Self::SipStatusNotImplemented => "SIP_STATUS_NOT_IMPLEMENTED",
6926 Self::SipStatusBadGateway => "SIP_STATUS_BAD_GATEWAY",
6927 Self::SipStatusServiceUnavailable => "SIP_STATUS_SERVICE_UNAVAILABLE",
6928 Self::SipStatusGatewayTimeout => "SIP_STATUS_GATEWAY_TIMEOUT",
6929 Self::SipStatusVersionNotSupported => "SIP_STATUS_VERSION_NOT_SUPPORTED",
6930 Self::SipStatusMessageTooLarge => "SIP_STATUS_MESSAGE_TOO_LARGE",
6931 Self::SipStatusGlobalBusyEverywhere => "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE",
6932 Self::SipStatusGlobalDecline => "SIP_STATUS_GLOBAL_DECLINE",
6933 Self::SipStatusGlobalDoesNotExistAnywhere => "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE",
6934 Self::SipStatusGlobalNotAcceptable => "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE",
6935 Self::SipStatusGlobalUnwanted => "SIP_STATUS_GLOBAL_UNWANTED",
6936 Self::SipStatusGlobalRejected => "SIP_STATUS_GLOBAL_REJECTED",
6937 }
6938 }
6939 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6941 match value {
6942 "SIP_STATUS_UNKNOWN" => Some(Self::SipStatusUnknown),
6943 "SIP_STATUS_TRYING" => Some(Self::SipStatusTrying),
6944 "SIP_STATUS_RINGING" => Some(Self::SipStatusRinging),
6945 "SIP_STATUS_CALL_IS_FORWARDED" => Some(Self::SipStatusCallIsForwarded),
6946 "SIP_STATUS_QUEUED" => Some(Self::SipStatusQueued),
6947 "SIP_STATUS_SESSION_PROGRESS" => Some(Self::SipStatusSessionProgress),
6948 "SIP_STATUS_EARLY_DIALOG_TERMINATED" => Some(Self::SipStatusEarlyDialogTerminated),
6949 "SIP_STATUS_OK" => Some(Self::SipStatusOk),
6950 "SIP_STATUS_ACCEPTED" => Some(Self::SipStatusAccepted),
6951 "SIP_STATUS_NO_NOTIFICATION" => Some(Self::SipStatusNoNotification),
6952 "SIP_STATUS_MULTIPLE_CHOICES" => Some(Self::SipStatusMultipleChoices),
6953 "SIP_STATUS_MOVED_PERMANENTLY" => Some(Self::SipStatusMovedPermanently),
6954 "SIP_STATUS_MOVED_TEMPORARILY" => Some(Self::SipStatusMovedTemporarily),
6955 "SIP_STATUS_USE_PROXY" => Some(Self::SipStatusUseProxy),
6956 "SIP_STATUS_ALTERNATIVE_SERVICE" => Some(Self::SipStatusAlternativeService),
6957 "SIP_STATUS_BAD_REQUEST" => Some(Self::SipStatusBadRequest),
6958 "SIP_STATUS_UNAUTHORIZED" => Some(Self::SipStatusUnauthorized),
6959 "SIP_STATUS_PAYMENT_REQUIRED" => Some(Self::SipStatusPaymentRequired),
6960 "SIP_STATUS_FORBIDDEN" => Some(Self::SipStatusForbidden),
6961 "SIP_STATUS_NOTFOUND" => Some(Self::SipStatusNotfound),
6962 "SIP_STATUS_METHOD_NOT_ALLOWED" => Some(Self::SipStatusMethodNotAllowed),
6963 "SIP_STATUS_NOT_ACCEPTABLE" => Some(Self::SipStatusNotAcceptable),
6964 "SIP_STATUS_PROXY_AUTH_REQUIRED" => Some(Self::SipStatusProxyAuthRequired),
6965 "SIP_STATUS_REQUEST_TIMEOUT" => Some(Self::SipStatusRequestTimeout),
6966 "SIP_STATUS_CONFLICT" => Some(Self::SipStatusConflict),
6967 "SIP_STATUS_GONE" => Some(Self::SipStatusGone),
6968 "SIP_STATUS_LENGTH_REQUIRED" => Some(Self::SipStatusLengthRequired),
6969 "SIP_STATUS_CONDITIONAL_REQUEST_FAILED" => Some(Self::SipStatusConditionalRequestFailed),
6970 "SIP_STATUS_REQUEST_ENTITY_TOO_LARGE" => Some(Self::SipStatusRequestEntityTooLarge),
6971 "SIP_STATUS_REQUEST_URI_TOO_LONG" => Some(Self::SipStatusRequestUriTooLong),
6972 "SIP_STATUS_UNSUPPORTED_MEDIA_TYPE" => Some(Self::SipStatusUnsupportedMediaType),
6973 "SIP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE" => Some(Self::SipStatusRequestedRangeNotSatisfiable),
6974 "SIP_STATUS_UNKNOWN_RESOURCE_PRIORITY" => Some(Self::SipStatusUnknownResourcePriority),
6975 "SIP_STATUS_BAD_EXTENSION" => Some(Self::SipStatusBadExtension),
6976 "SIP_STATUS_EXTENSION_REQUIRED" => Some(Self::SipStatusExtensionRequired),
6977 "SIP_STATUS_SESSION_INTERVAL_TOO_SMALL" => Some(Self::SipStatusSessionIntervalTooSmall),
6978 "SIP_STATUS_INTERVAL_TOO_BRIEF" => Some(Self::SipStatusIntervalTooBrief),
6979 "SIP_STATUS_BAD_LOCATION_INFORMATION" => Some(Self::SipStatusBadLocationInformation),
6980 "SIP_STATUS_BAD_ALERT_MESSAGE" => Some(Self::SipStatusBadAlertMessage),
6981 "SIP_STATUS_USE_IDENTITY_HEADER" => Some(Self::SipStatusUseIdentityHeader),
6982 "SIP_STATUS_PROVIDE_REFERRER_IDENTITY" => Some(Self::SipStatusProvideReferrerIdentity),
6983 "SIP_STATUS_FLOW_FAILED" => Some(Self::SipStatusFlowFailed),
6984 "SIP_STATUS_ANONYMITY_DISALLOWED" => Some(Self::SipStatusAnonymityDisallowed),
6985 "SIP_STATUS_BAD_IDENTITY_INFO" => Some(Self::SipStatusBadIdentityInfo),
6986 "SIP_STATUS_UNSUPPORTED_CERTIFICATE" => Some(Self::SipStatusUnsupportedCertificate),
6987 "SIP_STATUS_INVALID_IDENTITY_HEADER" => Some(Self::SipStatusInvalidIdentityHeader),
6988 "SIP_STATUS_FIRST_HOP_LACKS_OUTBOUND_SUPPORT" => Some(Self::SipStatusFirstHopLacksOutboundSupport),
6989 "SIP_STATUS_MAX_BREADTH_EXCEEDED" => Some(Self::SipStatusMaxBreadthExceeded),
6990 "SIP_STATUS_BAD_INFO_PACKAGE" => Some(Self::SipStatusBadInfoPackage),
6991 "SIP_STATUS_CONSENT_NEEDED" => Some(Self::SipStatusConsentNeeded),
6992 "SIP_STATUS_TEMPORARILY_UNAVAILABLE" => Some(Self::SipStatusTemporarilyUnavailable),
6993 "SIP_STATUS_CALL_TRANSACTION_DOES_NOT_EXISTS" => Some(Self::SipStatusCallTransactionDoesNotExists),
6994 "SIP_STATUS_LOOP_DETECTED" => Some(Self::SipStatusLoopDetected),
6995 "SIP_STATUS_TOO_MANY_HOPS" => Some(Self::SipStatusTooManyHops),
6996 "SIP_STATUS_ADDRESS_INCOMPLETE" => Some(Self::SipStatusAddressIncomplete),
6997 "SIP_STATUS_AMBIGUOUS" => Some(Self::SipStatusAmbiguous),
6998 "SIP_STATUS_BUSY_HERE" => Some(Self::SipStatusBusyHere),
6999 "SIP_STATUS_REQUEST_TERMINATED" => Some(Self::SipStatusRequestTerminated),
7000 "SIP_STATUS_NOT_ACCEPTABLE_HERE" => Some(Self::SipStatusNotAcceptableHere),
7001 "SIP_STATUS_BAD_EVENT" => Some(Self::SipStatusBadEvent),
7002 "SIP_STATUS_REQUEST_PENDING" => Some(Self::SipStatusRequestPending),
7003 "SIP_STATUS_UNDECIPHERABLE" => Some(Self::SipStatusUndecipherable),
7004 "SIP_STATUS_SECURITY_AGREEMENT_REQUIRED" => Some(Self::SipStatusSecurityAgreementRequired),
7005 "SIP_STATUS_INTERNAL_SERVER_ERROR" => Some(Self::SipStatusInternalServerError),
7006 "SIP_STATUS_NOT_IMPLEMENTED" => Some(Self::SipStatusNotImplemented),
7007 "SIP_STATUS_BAD_GATEWAY" => Some(Self::SipStatusBadGateway),
7008 "SIP_STATUS_SERVICE_UNAVAILABLE" => Some(Self::SipStatusServiceUnavailable),
7009 "SIP_STATUS_GATEWAY_TIMEOUT" => Some(Self::SipStatusGatewayTimeout),
7010 "SIP_STATUS_VERSION_NOT_SUPPORTED" => Some(Self::SipStatusVersionNotSupported),
7011 "SIP_STATUS_MESSAGE_TOO_LARGE" => Some(Self::SipStatusMessageTooLarge),
7012 "SIP_STATUS_GLOBAL_BUSY_EVERYWHERE" => Some(Self::SipStatusGlobalBusyEverywhere),
7013 "SIP_STATUS_GLOBAL_DECLINE" => Some(Self::SipStatusGlobalDecline),
7014 "SIP_STATUS_GLOBAL_DOES_NOT_EXIST_ANYWHERE" => Some(Self::SipStatusGlobalDoesNotExistAnywhere),
7015 "SIP_STATUS_GLOBAL_NOT_ACCEPTABLE" => Some(Self::SipStatusGlobalNotAcceptable),
7016 "SIP_STATUS_GLOBAL_UNWANTED" => Some(Self::SipStatusGlobalUnwanted),
7017 "SIP_STATUS_GLOBAL_REJECTED" => Some(Self::SipStatusGlobalRejected),
7018 _ => None,
7019 }
7020 }
7021}
7022#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7023#[repr(i32)]
7024pub enum SipTransport {
7025 Auto = 0,
7026 Udp = 1,
7027 Tcp = 2,
7028 Tls = 3,
7029}
7030impl SipTransport {
7031 pub fn as_str_name(&self) -> &'static str {
7036 match self {
7037 Self::Auto => "SIP_TRANSPORT_AUTO",
7038 Self::Udp => "SIP_TRANSPORT_UDP",
7039 Self::Tcp => "SIP_TRANSPORT_TCP",
7040 Self::Tls => "SIP_TRANSPORT_TLS",
7041 }
7042 }
7043 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7045 match value {
7046 "SIP_TRANSPORT_AUTO" => Some(Self::Auto),
7047 "SIP_TRANSPORT_UDP" => Some(Self::Udp),
7048 "SIP_TRANSPORT_TCP" => Some(Self::Tcp),
7049 "SIP_TRANSPORT_TLS" => Some(Self::Tls),
7050 _ => None,
7051 }
7052 }
7053}
7054#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7055#[repr(i32)]
7056pub enum SipHeaderOptions {
7057 SipNoHeaders = 0,
7059 SipXHeaders = 1,
7061 SipAllHeaders = 2,
7063}
7064impl SipHeaderOptions {
7065 pub fn as_str_name(&self) -> &'static str {
7070 match self {
7071 Self::SipNoHeaders => "SIP_NO_HEADERS",
7072 Self::SipXHeaders => "SIP_X_HEADERS",
7073 Self::SipAllHeaders => "SIP_ALL_HEADERS",
7074 }
7075 }
7076 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7078 match value {
7079 "SIP_NO_HEADERS" => Some(Self::SipNoHeaders),
7080 "SIP_X_HEADERS" => Some(Self::SipXHeaders),
7081 "SIP_ALL_HEADERS" => Some(Self::SipAllHeaders),
7082 _ => None,
7083 }
7084 }
7085}
7086#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7087#[repr(i32)]
7088pub enum SipMediaEncryption {
7089 SipMediaEncryptDisable = 0,
7091 SipMediaEncryptAllow = 1,
7093 SipMediaEncryptRequire = 2,
7095}
7096impl SipMediaEncryption {
7097 pub fn as_str_name(&self) -> &'static str {
7102 match self {
7103 Self::SipMediaEncryptDisable => "SIP_MEDIA_ENCRYPT_DISABLE",
7104 Self::SipMediaEncryptAllow => "SIP_MEDIA_ENCRYPT_ALLOW",
7105 Self::SipMediaEncryptRequire => "SIP_MEDIA_ENCRYPT_REQUIRE",
7106 }
7107 }
7108 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7110 match value {
7111 "SIP_MEDIA_ENCRYPT_DISABLE" => Some(Self::SipMediaEncryptDisable),
7112 "SIP_MEDIA_ENCRYPT_ALLOW" => Some(Self::SipMediaEncryptAllow),
7113 "SIP_MEDIA_ENCRYPT_REQUIRE" => Some(Self::SipMediaEncryptRequire),
7114 _ => None,
7115 }
7116 }
7117}
7118#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7119#[repr(i32)]
7120pub enum ProviderType {
7121 Unknown = 0,
7122 Internal = 1,
7124 External = 2,
7126}
7127impl ProviderType {
7128 pub fn as_str_name(&self) -> &'static str {
7133 match self {
7134 Self::Unknown => "PROVIDER_TYPE_UNKNOWN",
7135 Self::Internal => "PROVIDER_TYPE_INTERNAL",
7136 Self::External => "PROVIDER_TYPE_EXTERNAL",
7137 }
7138 }
7139 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7141 match value {
7142 "PROVIDER_TYPE_UNKNOWN" => Some(Self::Unknown),
7143 "PROVIDER_TYPE_INTERNAL" => Some(Self::Internal),
7144 "PROVIDER_TYPE_EXTERNAL" => Some(Self::External),
7145 _ => None,
7146 }
7147 }
7148}
7149#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7150#[repr(i32)]
7151pub enum SipCallStatus {
7152 ScsCallIncoming = 0,
7154 ScsParticipantJoined = 1,
7156 ScsActive = 2,
7158 ScsDisconnected = 3,
7160 ScsError = 4,
7162}
7163impl SipCallStatus {
7164 pub fn as_str_name(&self) -> &'static str {
7169 match self {
7170 Self::ScsCallIncoming => "SCS_CALL_INCOMING",
7171 Self::ScsParticipantJoined => "SCS_PARTICIPANT_JOINED",
7172 Self::ScsActive => "SCS_ACTIVE",
7173 Self::ScsDisconnected => "SCS_DISCONNECTED",
7174 Self::ScsError => "SCS_ERROR",
7175 }
7176 }
7177 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7179 match value {
7180 "SCS_CALL_INCOMING" => Some(Self::ScsCallIncoming),
7181 "SCS_PARTICIPANT_JOINED" => Some(Self::ScsParticipantJoined),
7182 "SCS_ACTIVE" => Some(Self::ScsActive),
7183 "SCS_DISCONNECTED" => Some(Self::ScsDisconnected),
7184 "SCS_ERROR" => Some(Self::ScsError),
7185 _ => None,
7186 }
7187 }
7188}
7189#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7190#[repr(i32)]
7191pub enum SipTransferStatus {
7192 StsTransferOngoing = 0,
7193 StsTransferFailed = 1,
7194 StsTransferSuccessful = 2,
7195}
7196impl SipTransferStatus {
7197 pub fn as_str_name(&self) -> &'static str {
7202 match self {
7203 Self::StsTransferOngoing => "STS_TRANSFER_ONGOING",
7204 Self::StsTransferFailed => "STS_TRANSFER_FAILED",
7205 Self::StsTransferSuccessful => "STS_TRANSFER_SUCCESSFUL",
7206 }
7207 }
7208 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7210 match value {
7211 "STS_TRANSFER_ONGOING" => Some(Self::StsTransferOngoing),
7212 "STS_TRANSFER_FAILED" => Some(Self::StsTransferFailed),
7213 "STS_TRANSFER_SUCCESSFUL" => Some(Self::StsTransferSuccessful),
7214 _ => None,
7215 }
7216 }
7217}
7218#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7219#[repr(i32)]
7220pub enum SipFeature {
7221 None = 0,
7222 KrispEnabled = 1,
7223}
7224impl SipFeature {
7225 pub fn as_str_name(&self) -> &'static str {
7230 match self {
7231 Self::None => "NONE",
7232 Self::KrispEnabled => "KRISP_ENABLED",
7233 }
7234 }
7235 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7237 match value {
7238 "NONE" => Some(Self::None),
7239 "KRISP_ENABLED" => Some(Self::KrispEnabled),
7240 _ => None,
7241 }
7242 }
7243}
7244#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7245#[repr(i32)]
7246pub enum SipCallDirection {
7247 ScdUnknown = 0,
7248 ScdInbound = 1,
7249 ScdOutbound = 2,
7250}
7251impl SipCallDirection {
7252 pub fn as_str_name(&self) -> &'static str {
7257 match self {
7258 Self::ScdUnknown => "SCD_UNKNOWN",
7259 Self::ScdInbound => "SCD_INBOUND",
7260 Self::ScdOutbound => "SCD_OUTBOUND",
7261 }
7262 }
7263 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7265 match value {
7266 "SCD_UNKNOWN" => Some(Self::ScdUnknown),
7267 "SCD_INBOUND" => Some(Self::ScdInbound),
7268 "SCD_OUTBOUND" => Some(Self::ScdOutbound),
7269 _ => None,
7270 }
7271 }
7272}
7273#[derive(Clone, PartialEq, ::prost::Message)]
7274pub struct DialWhatsAppCallRequest {
7275 #[prost(string, tag = "1")]
7277 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
7278 #[prost(string, tag = "2")]
7280 pub whatsapp_to_phone_number: ::prost::alloc::string::String,
7281 #[prost(string, tag = "3")]
7283 pub whatsapp_api_key: ::prost::alloc::string::String,
7284 #[prost(string, tag = "12")]
7286 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
7287 #[prost(string, tag = "4")]
7289 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
7290 #[prost(string, tag = "5")]
7292 pub room_name: ::prost::alloc::string::String,
7293 #[prost(message, repeated, tag = "6")]
7295 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7296 #[prost(string, tag = "7")]
7299 pub participant_identity: ::prost::alloc::string::String,
7300 #[prost(string, tag = "8")]
7302 pub participant_name: ::prost::alloc::string::String,
7303 #[prost(string, tag = "9")]
7305 pub participant_metadata: ::prost::alloc::string::String,
7306 #[prost(map = "string, string", tag = "10")]
7308 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7309 #[prost(string, tag = "11")]
7311 pub destination_country: ::prost::alloc::string::String,
7312 #[prost(message, optional, tag = "13")]
7314 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
7315}
7316#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7317pub struct DialWhatsAppCallResponse {
7318 #[prost(string, tag = "1")]
7320 pub whatsapp_call_id: ::prost::alloc::string::String,
7321 #[prost(string, tag = "2")]
7323 pub room_name: ::prost::alloc::string::String,
7324}
7325#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7326pub struct DisconnectWhatsAppCallRequest {
7327 #[prost(string, tag = "1")]
7329 pub whatsapp_call_id: ::prost::alloc::string::String,
7330 #[prost(string, tag = "2")]
7334 pub whatsapp_api_key: ::prost::alloc::string::String,
7335 #[prost(enumeration = "disconnect_whats_app_call_request::DisconnectReason", tag = "3")]
7337 pub disconnect_reason: i32,
7338}
7339pub mod disconnect_whats_app_call_request {
7341 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7342 #[repr(i32)]
7343 pub enum DisconnectReason {
7344 BusinessInitiated = 0,
7346 UserInitiated = 1,
7352 }
7353 impl DisconnectReason {
7354 pub fn as_str_name(&self) -> &'static str {
7359 match self {
7360 Self::BusinessInitiated => "BUSINESS_INITIATED",
7361 Self::UserInitiated => "USER_INITIATED",
7362 }
7363 }
7364 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7366 match value {
7367 "BUSINESS_INITIATED" => Some(Self::BusinessInitiated),
7368 "USER_INITIATED" => Some(Self::UserInitiated),
7369 _ => None,
7370 }
7371 }
7372 }
7373}
7374#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7375pub struct DisconnectWhatsAppCallResponse {
7376}
7377#[derive(Clone, PartialEq, ::prost::Message)]
7378pub struct ConnectWhatsAppCallRequest {
7379 #[prost(string, tag = "1")]
7381 pub whatsapp_call_id: ::prost::alloc::string::String,
7382 #[prost(message, optional, tag = "2")]
7385 pub sdp: ::core::option::Option<SessionDescription>,
7386 #[prost(bool, tag = "3")]
7388 pub wait_until_answered: bool,
7389}
7390#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7391pub struct ConnectWhatsAppCallResponse {
7392}
7393#[derive(Clone, PartialEq, ::prost::Message)]
7394pub struct AcceptWhatsAppCallRequest {
7395 #[prost(string, tag = "1")]
7397 pub whatsapp_phone_number_id: ::prost::alloc::string::String,
7398 #[prost(string, tag = "2")]
7400 pub whatsapp_api_key: ::prost::alloc::string::String,
7401 #[prost(string, tag = "13")]
7403 pub whatsapp_cloud_api_version: ::prost::alloc::string::String,
7404 #[prost(string, tag = "3")]
7406 pub whatsapp_call_id: ::prost::alloc::string::String,
7407 #[prost(string, tag = "4")]
7409 pub whatsapp_biz_opaque_callback_data: ::prost::alloc::string::String,
7410 #[prost(message, optional, tag = "5")]
7413 pub sdp: ::core::option::Option<SessionDescription>,
7414 #[prost(string, tag = "6")]
7416 pub room_name: ::prost::alloc::string::String,
7417 #[prost(message, repeated, tag = "7")]
7419 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7420 #[prost(string, tag = "8")]
7423 pub participant_identity: ::prost::alloc::string::String,
7424 #[prost(string, tag = "9")]
7426 pub participant_name: ::prost::alloc::string::String,
7427 #[prost(string, tag = "10")]
7429 pub participant_metadata: ::prost::alloc::string::String,
7430 #[prost(map = "string, string", tag = "11")]
7432 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7433 #[prost(string, tag = "12")]
7435 pub destination_country: ::prost::alloc::string::String,
7436 #[prost(message, optional, tag = "14")]
7438 pub ringing_timeout: ::core::option::Option<::pbjson_types::Duration>,
7439 #[prost(bool, tag = "15")]
7441 pub wait_until_answered: bool,
7442}
7443#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7444pub struct AcceptWhatsAppCallResponse {
7445 #[prost(string, tag = "1")]
7447 pub room_name: ::prost::alloc::string::String,
7448}
7449#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7450pub struct WhatsAppCall {
7451 #[prost(string, tag = "1")]
7453 pub whatsapp_call_id: ::prost::alloc::string::String,
7454 #[prost(enumeration = "WhatsAppCallDirection", tag = "2")]
7456 pub direction: i32,
7457}
7458#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7459#[repr(i32)]
7460pub enum WhatsAppCallDirection {
7461 WhatsappCallDirectionInbound = 0,
7462 WhatsappCallDirectionOutbound = 2,
7463}
7464impl WhatsAppCallDirection {
7465 pub fn as_str_name(&self) -> &'static str {
7470 match self {
7471 Self::WhatsappCallDirectionInbound => "WHATSAPP_CALL_DIRECTION_INBOUND",
7472 Self::WhatsappCallDirectionOutbound => "WHATSAPP_CALL_DIRECTION_OUTBOUND",
7473 }
7474 }
7475 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7477 match value {
7478 "WHATSAPP_CALL_DIRECTION_INBOUND" => Some(Self::WhatsappCallDirectionInbound),
7479 "WHATSAPP_CALL_DIRECTION_OUTBOUND" => Some(Self::WhatsappCallDirectionOutbound),
7480 _ => None,
7481 }
7482 }
7483}
7484#[derive(Clone, PartialEq, ::prost::Message)]
7485pub struct ConnectTwilioCallRequest {
7486 #[prost(enumeration = "connect_twilio_call_request::TwilioCallDirection", tag = "1")]
7488 pub twilio_call_direction: i32,
7489 #[prost(string, tag = "2")]
7491 pub room_name: ::prost::alloc::string::String,
7492 #[prost(message, repeated, tag = "3")]
7494 pub agents: ::prost::alloc::vec::Vec<RoomAgentDispatch>,
7495 #[prost(string, tag = "4")]
7498 pub participant_identity: ::prost::alloc::string::String,
7499 #[prost(string, tag = "5")]
7501 pub participant_name: ::prost::alloc::string::String,
7502 #[prost(string, tag = "6")]
7504 pub participant_metadata: ::prost::alloc::string::String,
7505 #[prost(map = "string, string", tag = "7")]
7507 pub participant_attributes: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7508 #[prost(string, tag = "8")]
7510 pub destination_country: ::prost::alloc::string::String,
7511}
7512pub mod connect_twilio_call_request {
7514 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7515 #[repr(i32)]
7516 pub enum TwilioCallDirection {
7517 Inbound = 0,
7519 Outbound = 1,
7521 }
7522 impl TwilioCallDirection {
7523 pub fn as_str_name(&self) -> &'static str {
7528 match self {
7529 Self::Inbound => "TWILIO_CALL_DIRECTION_INBOUND",
7530 Self::Outbound => "TWILIO_CALL_DIRECTION_OUTBOUND",
7531 }
7532 }
7533 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7535 match value {
7536 "TWILIO_CALL_DIRECTION_INBOUND" => Some(Self::Inbound),
7537 "TWILIO_CALL_DIRECTION_OUTBOUND" => Some(Self::Outbound),
7538 _ => None,
7539 }
7540 }
7541 }
7542}
7543#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7544pub struct ConnectTwilioCallResponse {
7545 #[prost(string, tag = "1")]
7547 pub connect_url: ::prost::alloc::string::String,
7548}
7549#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7550#[repr(i32)]
7551pub enum ConnectorType {
7552 Unspecified = 0,
7553 WhatsApp = 1,
7554 Twilio = 2,
7555}
7556impl ConnectorType {
7557 pub fn as_str_name(&self) -> &'static str {
7562 match self {
7563 Self::Unspecified => "Unspecified",
7564 Self::WhatsApp => "WhatsApp",
7565 Self::Twilio => "Twilio",
7566 }
7567 }
7568 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7570 match value {
7571 "Unspecified" => Some(Self::Unspecified),
7572 "WhatsApp" => Some(Self::WhatsApp),
7573 "Twilio" => Some(Self::Twilio),
7574 _ => None,
7575 }
7576 }
7577}
7578#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7579pub struct AnalyticsVideoLayer {
7580 #[prost(int32, tag = "1")]
7581 pub layer: i32,
7582 #[prost(uint32, tag = "2")]
7583 pub packets: u32,
7584 #[prost(uint64, tag = "3")]
7585 pub bytes: u64,
7586 #[prost(uint32, tag = "4")]
7587 pub frames: u32,
7588}
7589#[derive(Clone, PartialEq, ::prost::Message)]
7590pub struct AnalyticsStream {
7591 #[prost(uint32, tag = "1")]
7592 pub ssrc: u32,
7593 #[prost(uint32, tag = "2")]
7594 pub primary_packets: u32,
7595 #[prost(uint64, tag = "3")]
7596 pub primary_bytes: u64,
7597 #[prost(uint32, tag = "4")]
7598 pub retransmit_packets: u32,
7599 #[prost(uint64, tag = "5")]
7600 pub retransmit_bytes: u64,
7601 #[prost(uint32, tag = "6")]
7602 pub padding_packets: u32,
7603 #[prost(uint64, tag = "7")]
7604 pub padding_bytes: u64,
7605 #[prost(uint32, tag = "8")]
7606 pub packets_lost: u32,
7607 #[prost(uint32, tag = "9")]
7608 pub frames: u32,
7609 #[prost(uint32, tag = "10")]
7610 pub rtt: u32,
7611 #[prost(uint32, tag = "11")]
7612 pub jitter: u32,
7613 #[prost(uint32, tag = "12")]
7614 pub nacks: u32,
7615 #[prost(uint32, tag = "13")]
7616 pub plis: u32,
7617 #[prost(uint32, tag = "14")]
7618 pub firs: u32,
7619 #[prost(message, repeated, tag = "15")]
7620 pub video_layers: ::prost::alloc::vec::Vec<AnalyticsVideoLayer>,
7621 #[prost(message, optional, tag = "17")]
7622 pub start_time: ::core::option::Option<::pbjson_types::Timestamp>,
7623 #[prost(message, optional, tag = "18")]
7624 pub end_time: ::core::option::Option<::pbjson_types::Timestamp>,
7625 #[prost(uint32, tag = "19")]
7626 pub packets_out_of_order: u32,
7627}
7628#[derive(Clone, PartialEq, ::prost::Message)]
7629pub struct AnalyticsStat {
7630 #[prost(string, tag = "14")]
7632 pub id: ::prost::alloc::string::String,
7633 #[prost(string, tag = "1")]
7634 pub analytics_key: ::prost::alloc::string::String,
7635 #[prost(enumeration = "StreamType", tag = "2")]
7636 pub kind: i32,
7637 #[prost(message, optional, tag = "3")]
7638 pub time_stamp: ::core::option::Option<::pbjson_types::Timestamp>,
7639 #[prost(string, tag = "4")]
7640 pub node: ::prost::alloc::string::String,
7641 #[prost(string, tag = "5")]
7642 pub room_id: ::prost::alloc::string::String,
7643 #[prost(string, tag = "6")]
7644 pub room_name: ::prost::alloc::string::String,
7645 #[prost(string, tag = "7")]
7646 pub participant_id: ::prost::alloc::string::String,
7647 #[prost(string, tag = "8")]
7648 pub track_id: ::prost::alloc::string::String,
7649 #[prost(float, tag = "9")]
7651 pub score: f32,
7652 #[prost(message, repeated, tag = "10")]
7653 pub streams: ::prost::alloc::vec::Vec<AnalyticsStream>,
7654 #[prost(string, tag = "11")]
7655 pub mime: ::prost::alloc::string::String,
7656 #[prost(float, tag = "12")]
7657 pub min_score: f32,
7658 #[prost(float, tag = "13")]
7659 pub median_score: f32,
7660}
7661#[derive(Clone, PartialEq, ::prost::Message)]
7662pub struct AnalyticsStats {
7663 #[prost(message, repeated, tag = "1")]
7664 pub stats: ::prost::alloc::vec::Vec<AnalyticsStat>,
7665}
7666#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7667pub struct AnalyticsClientMeta {
7668 #[prost(string, tag = "1")]
7669 pub region: ::prost::alloc::string::String,
7670 #[prost(string, tag = "2")]
7671 pub node: ::prost::alloc::string::String,
7672 #[prost(string, tag = "3")]
7673 pub client_addr: ::prost::alloc::string::String,
7674 #[prost(uint32, tag = "4")]
7675 pub client_connect_time: u32,
7676 #[prost(string, tag = "5")]
7678 pub connection_type: ::prost::alloc::string::String,
7679 #[prost(enumeration = "ReconnectReason", tag = "6")]
7680 pub reconnect_reason: i32,
7681 #[prost(string, optional, tag = "7")]
7682 pub geo_hash: ::core::option::Option<::prost::alloc::string::String>,
7683 #[prost(string, optional, tag = "8")]
7684 pub country: ::core::option::Option<::prost::alloc::string::String>,
7685 #[prost(uint32, optional, tag = "9")]
7686 pub isp_asn: ::core::option::Option<u32>,
7687}
7688#[derive(Clone, PartialEq, ::prost::Message)]
7689pub struct AnalyticsEvent {
7690 #[prost(string, tag = "25")]
7692 pub id: ::prost::alloc::string::String,
7693 #[prost(enumeration = "AnalyticsEventType", tag = "1")]
7694 pub r#type: i32,
7695 #[prost(message, optional, tag = "2")]
7696 pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
7697 #[prost(string, tag = "3")]
7698 pub room_id: ::prost::alloc::string::String,
7699 #[prost(message, optional, tag = "4")]
7700 pub room: ::core::option::Option<Room>,
7701 #[prost(string, tag = "5")]
7702 pub participant_id: ::prost::alloc::string::String,
7703 #[prost(message, optional, tag = "6")]
7704 pub participant: ::core::option::Option<ParticipantInfo>,
7705 #[prost(string, tag = "7")]
7706 pub track_id: ::prost::alloc::string::String,
7707 #[prost(message, optional, tag = "8")]
7708 pub track: ::core::option::Option<TrackInfo>,
7709 #[prost(string, tag = "10")]
7710 pub analytics_key: ::prost::alloc::string::String,
7711 #[prost(message, optional, tag = "11")]
7712 pub client_info: ::core::option::Option<ClientInfo>,
7713 #[prost(message, optional, tag = "12")]
7714 pub client_meta: ::core::option::Option<AnalyticsClientMeta>,
7715 #[prost(string, tag = "13")]
7716 pub egress_id: ::prost::alloc::string::String,
7717 #[prost(string, tag = "19")]
7718 pub ingress_id: ::prost::alloc::string::String,
7719 #[prost(enumeration = "VideoQuality", tag = "14")]
7720 pub max_subscribed_video_quality: i32,
7721 #[prost(message, optional, tag = "15")]
7722 pub publisher: ::core::option::Option<ParticipantInfo>,
7723 #[prost(string, tag = "16")]
7724 pub mime: ::prost::alloc::string::String,
7725 #[prost(message, optional, tag = "17")]
7726 pub egress: ::core::option::Option<EgressInfo>,
7727 #[prost(message, optional, tag = "18")]
7728 pub ingress: ::core::option::Option<IngressInfo>,
7729 #[prost(string, tag = "20")]
7730 pub error: ::prost::alloc::string::String,
7731 #[prost(message, optional, tag = "21")]
7732 pub rtp_stats: ::core::option::Option<RtpStats>,
7733 #[prost(int32, tag = "22")]
7734 pub video_layer: i32,
7735 #[prost(string, tag = "24")]
7736 pub node_id: ::prost::alloc::string::String,
7737 #[prost(string, tag = "26")]
7738 pub sip_call_id: ::prost::alloc::string::String,
7739 #[prost(message, optional, tag = "27")]
7740 pub sip_call: ::core::option::Option<SipCallInfo>,
7741 #[prost(string, tag = "28")]
7742 pub sip_trunk_id: ::prost::alloc::string::String,
7743 #[prost(message, optional, tag = "29")]
7744 pub sip_inbound_trunk: ::core::option::Option<SipInboundTrunkInfo>,
7745 #[prost(message, optional, tag = "30")]
7746 pub sip_outbound_trunk: ::core::option::Option<SipOutboundTrunkInfo>,
7747 #[prost(string, tag = "31")]
7748 pub sip_dispatch_rule_id: ::prost::alloc::string::String,
7749 #[prost(message, optional, tag = "32")]
7750 pub sip_dispatch_rule: ::core::option::Option<SipDispatchRuleInfo>,
7751 #[prost(message, optional, tag = "36")]
7752 pub sip_transfer: ::core::option::Option<SipTransferInfo>,
7753 #[prost(message, optional, tag = "33")]
7754 pub report: ::core::option::Option<ReportInfo>,
7755 #[prost(message, optional, tag = "34")]
7756 pub api_call: ::core::option::Option<ApiCallInfo>,
7757 #[prost(message, optional, tag = "35")]
7758 pub webhook: ::core::option::Option<WebhookInfo>,
7759}
7760#[derive(Clone, PartialEq, ::prost::Message)]
7761pub struct AnalyticsEvents {
7762 #[prost(message, repeated, tag = "1")]
7763 pub events: ::prost::alloc::vec::Vec<AnalyticsEvent>,
7764}
7765#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7766pub struct AnalyticsRoomParticipant {
7767 #[prost(string, tag = "1")]
7768 pub id: ::prost::alloc::string::String,
7769 #[prost(string, tag = "2")]
7770 pub identity: ::prost::alloc::string::String,
7771 #[prost(string, tag = "3")]
7772 pub name: ::prost::alloc::string::String,
7773 #[prost(enumeration = "participant_info::State", tag = "4")]
7774 pub state: i32,
7775 #[prost(message, optional, tag = "5")]
7776 pub joined_at: ::core::option::Option<::pbjson_types::Timestamp>,
7777}
7778#[derive(Clone, PartialEq, ::prost::Message)]
7779pub struct AnalyticsRoom {
7780 #[prost(string, tag = "1")]
7781 pub id: ::prost::alloc::string::String,
7782 #[prost(string, tag = "2")]
7783 pub name: ::prost::alloc::string::String,
7784 #[prost(string, tag = "5")]
7785 pub project_id: ::prost::alloc::string::String,
7786 #[prost(message, optional, tag = "3")]
7787 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
7788 #[prost(message, repeated, tag = "4")]
7789 pub participants: ::prost::alloc::vec::Vec<AnalyticsRoomParticipant>,
7790}
7791#[derive(Clone, PartialEq, ::prost::Message)]
7792pub struct AnalyticsNodeRooms {
7793 #[prost(string, tag = "1")]
7794 pub node_id: ::prost::alloc::string::String,
7795 #[prost(uint64, tag = "2")]
7796 pub sequence_number: u64,
7797 #[prost(message, optional, tag = "3")]
7798 pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
7799 #[prost(message, repeated, tag = "4")]
7800 pub rooms: ::prost::alloc::vec::Vec<AnalyticsRoom>,
7801}
7802#[derive(Clone, PartialEq, ::prost::Message)]
7803pub struct ReportInfo {
7804 #[prost(oneof = "report_info::Message", tags = "1")]
7805 pub message: ::core::option::Option<report_info::Message>,
7806}
7807pub mod report_info {
7809 #[derive(Clone, PartialEq, ::prost::Oneof)]
7810 pub enum Message {
7811 #[prost(message, tag = "1")]
7812 FeatureUsage(super::FeatureUsageInfo),
7813 }
7814}
7815#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
7816pub struct TimeRange {
7817 #[prost(message, optional, tag = "1")]
7818 pub started_at: ::core::option::Option<::pbjson_types::Timestamp>,
7819 #[prost(message, optional, tag = "2")]
7820 pub ended_at: ::core::option::Option<::pbjson_types::Timestamp>,
7821}
7822#[derive(Clone, PartialEq, ::prost::Message)]
7823pub struct FeatureUsageInfo {
7824 #[prost(enumeration = "feature_usage_info::Feature", tag = "1")]
7825 pub feature: i32,
7826 #[prost(string, tag = "2")]
7827 pub project_id: ::prost::alloc::string::String,
7828 #[prost(string, tag = "3")]
7829 pub room_name: ::prost::alloc::string::String,
7830 #[prost(string, tag = "4")]
7831 pub room_id: ::prost::alloc::string::String,
7832 #[prost(string, tag = "5")]
7833 pub participant_identity: ::prost::alloc::string::String,
7834 #[prost(string, tag = "6")]
7835 pub participant_id: ::prost::alloc::string::String,
7836 #[prost(string, tag = "7")]
7837 pub track_id: ::prost::alloc::string::String,
7838 #[prost(message, repeated, tag = "8")]
7842 pub time_ranges: ::prost::alloc::vec::Vec<TimeRange>,
7843 #[prost(map = "string, string", tag = "9")]
7845 pub feature_info: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
7846}
7847pub mod feature_usage_info {
7849 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7850 #[repr(i32)]
7851 pub enum Feature {
7852 KrispNoiseCancellation = 0,
7853 KrispBackgroundVoiceCancellation = 1,
7854 AicAudioEnhancement = 2,
7855 KrispViva = 3,
7856 }
7857 impl Feature {
7858 pub fn as_str_name(&self) -> &'static str {
7863 match self {
7864 Self::KrispNoiseCancellation => "KRISP_NOISE_CANCELLATION",
7865 Self::KrispBackgroundVoiceCancellation => "KRISP_BACKGROUND_VOICE_CANCELLATION",
7866 Self::AicAudioEnhancement => "AIC_AUDIO_ENHANCEMENT",
7867 Self::KrispViva => "KRISP_VIVA",
7868 }
7869 }
7870 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7872 match value {
7873 "KRISP_NOISE_CANCELLATION" => Some(Self::KrispNoiseCancellation),
7874 "KRISP_BACKGROUND_VOICE_CANCELLATION" => Some(Self::KrispBackgroundVoiceCancellation),
7875 "AIC_AUDIO_ENHANCEMENT" => Some(Self::AicAudioEnhancement),
7876 "KRISP_VIVA" => Some(Self::KrispViva),
7877 _ => None,
7878 }
7879 }
7880 }
7881}
7882#[derive(Clone, PartialEq, ::prost::Message)]
7883pub struct ApiCallRequest {
7884 #[prost(oneof = "api_call_request::Message", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10")]
7885 pub message: ::core::option::Option<api_call_request::Message>,
7886}
7887pub mod api_call_request {
7889 #[derive(Clone, PartialEq, ::prost::Oneof)]
7890 pub enum Message {
7891 #[prost(message, tag = "1")]
7892 CreateRoomRequest(super::CreateRoomRequest),
7893 #[prost(message, tag = "2")]
7894 ListRoomsRequest(super::ListRoomsRequest),
7895 #[prost(message, tag = "3")]
7896 DeleteRoomRequest(super::DeleteRoomRequest),
7897 #[prost(message, tag = "4")]
7898 ListParticipantsRequest(super::ListParticipantsRequest),
7899 #[prost(message, tag = "5")]
7900 RoomParticipantIdentity(super::RoomParticipantIdentity),
7901 #[prost(message, tag = "6")]
7902 MuteRoomTrackRequest(super::MuteRoomTrackRequest),
7903 #[prost(message, tag = "7")]
7904 UpdateParticipantRequest(super::UpdateParticipantRequest),
7905 #[prost(message, tag = "8")]
7906 UpdateSubscriptionsRequest(super::UpdateSubscriptionsRequest),
7907 #[prost(message, tag = "9")]
7908 SendDataRequest(super::SendDataRequest),
7909 #[prost(message, tag = "10")]
7910 UpdateRoomMetadataRequest(super::UpdateRoomMetadataRequest),
7911 }
7912}
7913#[derive(Clone, PartialEq, ::prost::Message)]
7914pub struct ApiCallInfo {
7915 #[prost(string, tag = "1")]
7916 pub project_id: ::prost::alloc::string::String,
7917 #[prost(message, optional, tag = "2")]
7918 pub request: ::core::option::Option<ApiCallRequest>,
7919 #[prost(string, tag = "3")]
7920 pub service: ::prost::alloc::string::String,
7921 #[prost(string, tag = "4")]
7922 pub method: ::prost::alloc::string::String,
7923 #[prost(string, tag = "5")]
7924 pub node_id: ::prost::alloc::string::String,
7925 #[prost(int32, tag = "6")]
7926 pub status: i32,
7927 #[prost(string, tag = "7")]
7928 pub twirp_error_code: ::prost::alloc::string::String,
7929 #[prost(string, tag = "8")]
7930 pub twirp_error_message: ::prost::alloc::string::String,
7931 #[prost(string, tag = "9")]
7932 pub room_name: ::prost::alloc::string::String,
7933 #[prost(string, tag = "10")]
7934 pub room_id: ::prost::alloc::string::String,
7935 #[prost(string, tag = "11")]
7936 pub participant_identity: ::prost::alloc::string::String,
7937 #[prost(string, tag = "12")]
7938 pub participant_id: ::prost::alloc::string::String,
7939 #[prost(string, tag = "13")]
7940 pub track_id: ::prost::alloc::string::String,
7941 #[prost(message, optional, tag = "14")]
7942 pub started_at: ::core::option::Option<::pbjson_types::Timestamp>,
7943 #[prost(int64, tag = "15")]
7944 pub duration_ns: i64,
7945}
7946#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7947pub struct WebhookInfo {
7948 #[prost(string, tag = "1")]
7949 pub event_id: ::prost::alloc::string::String,
7950 #[prost(string, tag = "2")]
7951 pub event: ::prost::alloc::string::String,
7952 #[prost(string, tag = "3")]
7953 pub project_id: ::prost::alloc::string::String,
7954 #[prost(string, tag = "4")]
7955 pub room_name: ::prost::alloc::string::String,
7956 #[prost(string, tag = "5")]
7957 pub room_id: ::prost::alloc::string::String,
7958 #[prost(string, tag = "6")]
7959 pub participant_identity: ::prost::alloc::string::String,
7960 #[prost(string, tag = "7")]
7961 pub participant_id: ::prost::alloc::string::String,
7962 #[prost(string, tag = "8")]
7963 pub track_id: ::prost::alloc::string::String,
7964 #[prost(string, tag = "9")]
7965 pub egress_id: ::prost::alloc::string::String,
7966 #[prost(string, tag = "10")]
7967 pub ingress_id: ::prost::alloc::string::String,
7968 #[prost(message, optional, tag = "11")]
7969 pub created_at: ::core::option::Option<::pbjson_types::Timestamp>,
7970 #[prost(message, optional, tag = "12")]
7971 pub queued_at: ::core::option::Option<::pbjson_types::Timestamp>,
7972 #[prost(int64, tag = "13")]
7973 pub queue_duration_ns: i64,
7974 #[prost(message, optional, tag = "14")]
7975 pub sent_at: ::core::option::Option<::pbjson_types::Timestamp>,
7976 #[prost(int64, tag = "15")]
7977 pub send_duration_ns: i64,
7978 #[prost(string, tag = "16")]
7979 pub url: ::prost::alloc::string::String,
7980 #[prost(int32, tag = "17")]
7981 pub num_dropped: i32,
7982 #[prost(bool, tag = "18")]
7983 pub is_dropped: bool,
7984 #[prost(string, tag = "19")]
7985 pub service_status: ::prost::alloc::string::String,
7986 #[prost(int32, tag = "20")]
7987 pub service_error_code: i32,
7988 #[prost(string, tag = "21")]
7989 pub service_error: ::prost::alloc::string::String,
7990 #[prost(string, tag = "22")]
7991 pub send_error: ::prost::alloc::string::String,
7992 #[prost(int32, tag = "23")]
7994 pub http_status_code: i32,
7995}
7996#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7997#[repr(i32)]
7998pub enum StreamType {
7999 Upstream = 0,
8000 Downstream = 1,
8001}
8002impl StreamType {
8003 pub fn as_str_name(&self) -> &'static str {
8008 match self {
8009 Self::Upstream => "UPSTREAM",
8010 Self::Downstream => "DOWNSTREAM",
8011 }
8012 }
8013 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8015 match value {
8016 "UPSTREAM" => Some(Self::Upstream),
8017 "DOWNSTREAM" => Some(Self::Downstream),
8018 _ => None,
8019 }
8020 }
8021}
8022#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
8023#[repr(i32)]
8024pub enum AnalyticsEventType {
8025 RoomCreated = 0,
8026 RoomEnded = 1,
8027 ParticipantJoined = 2,
8028 ParticipantLeft = 3,
8029 ParticipantConnectionAborted = 45,
8030 TrackPublished = 4,
8031 TrackPublishRequested = 20,
8032 TrackUnpublished = 5,
8033 TrackSubscribed = 6,
8034 TrackSubscribeRequested = 21,
8035 TrackSubscribeFailed = 25,
8036 TrackUnsubscribed = 7,
8037 TrackPublishedUpdate = 10,
8038 TrackMuted = 23,
8039 TrackUnmuted = 24,
8040 TrackPublishStats = 26,
8041 TrackSubscribeStats = 27,
8042 ParticipantActive = 11,
8043 ParticipantResumed = 22,
8044 EgressStarted = 12,
8045 EgressEnded = 13,
8046 EgressUpdated = 28,
8047 TrackMaxSubscribedVideoQuality = 14,
8048 Reconnected = 15,
8049 IngressCreated = 18,
8050 IngressDeleted = 19,
8051 IngressStarted = 16,
8052 IngressEnded = 17,
8053 IngressUpdated = 29,
8054 SipInboundTrunkCreated = 30,
8055 SipInboundTrunkDeleted = 31,
8056 SipOutboundTrunkCreated = 32,
8057 SipOutboundTrunkDeleted = 33,
8058 SipDispatchRuleCreated = 34,
8059 SipDispatchRuleDeleted = 35,
8060 SipParticipantCreated = 36,
8061 SipCallIncoming = 37,
8062 SipCallStarted = 38,
8063 SipCallEnded = 39,
8064 SipTransferRequested = 43,
8065 SipTransferComplete = 44,
8066 SipCallUpdate = 46,
8067 Report = 40,
8068 ApiCall = 41,
8069 Webhook = 42,
8070}
8071impl AnalyticsEventType {
8072 pub fn as_str_name(&self) -> &'static str {
8077 match self {
8078 Self::RoomCreated => "ROOM_CREATED",
8079 Self::RoomEnded => "ROOM_ENDED",
8080 Self::ParticipantJoined => "PARTICIPANT_JOINED",
8081 Self::ParticipantLeft => "PARTICIPANT_LEFT",
8082 Self::ParticipantConnectionAborted => "PARTICIPANT_CONNECTION_ABORTED",
8083 Self::TrackPublished => "TRACK_PUBLISHED",
8084 Self::TrackPublishRequested => "TRACK_PUBLISH_REQUESTED",
8085 Self::TrackUnpublished => "TRACK_UNPUBLISHED",
8086 Self::TrackSubscribed => "TRACK_SUBSCRIBED",
8087 Self::TrackSubscribeRequested => "TRACK_SUBSCRIBE_REQUESTED",
8088 Self::TrackSubscribeFailed => "TRACK_SUBSCRIBE_FAILED",
8089 Self::TrackUnsubscribed => "TRACK_UNSUBSCRIBED",
8090 Self::TrackPublishedUpdate => "TRACK_PUBLISHED_UPDATE",
8091 Self::TrackMuted => "TRACK_MUTED",
8092 Self::TrackUnmuted => "TRACK_UNMUTED",
8093 Self::TrackPublishStats => "TRACK_PUBLISH_STATS",
8094 Self::TrackSubscribeStats => "TRACK_SUBSCRIBE_STATS",
8095 Self::ParticipantActive => "PARTICIPANT_ACTIVE",
8096 Self::ParticipantResumed => "PARTICIPANT_RESUMED",
8097 Self::EgressStarted => "EGRESS_STARTED",
8098 Self::EgressEnded => "EGRESS_ENDED",
8099 Self::EgressUpdated => "EGRESS_UPDATED",
8100 Self::TrackMaxSubscribedVideoQuality => "TRACK_MAX_SUBSCRIBED_VIDEO_QUALITY",
8101 Self::Reconnected => "RECONNECTED",
8102 Self::IngressCreated => "INGRESS_CREATED",
8103 Self::IngressDeleted => "INGRESS_DELETED",
8104 Self::IngressStarted => "INGRESS_STARTED",
8105 Self::IngressEnded => "INGRESS_ENDED",
8106 Self::IngressUpdated => "INGRESS_UPDATED",
8107 Self::SipInboundTrunkCreated => "SIP_INBOUND_TRUNK_CREATED",
8108 Self::SipInboundTrunkDeleted => "SIP_INBOUND_TRUNK_DELETED",
8109 Self::SipOutboundTrunkCreated => "SIP_OUTBOUND_TRUNK_CREATED",
8110 Self::SipOutboundTrunkDeleted => "SIP_OUTBOUND_TRUNK_DELETED",
8111 Self::SipDispatchRuleCreated => "SIP_DISPATCH_RULE_CREATED",
8112 Self::SipDispatchRuleDeleted => "SIP_DISPATCH_RULE_DELETED",
8113 Self::SipParticipantCreated => "SIP_PARTICIPANT_CREATED",
8114 Self::SipCallIncoming => "SIP_CALL_INCOMING",
8115 Self::SipCallStarted => "SIP_CALL_STARTED",
8116 Self::SipCallEnded => "SIP_CALL_ENDED",
8117 Self::SipTransferRequested => "SIP_TRANSFER_REQUESTED",
8118 Self::SipTransferComplete => "SIP_TRANSFER_COMPLETE",
8119 Self::SipCallUpdate => "SIP_CALL_UPDATE",
8120 Self::Report => "REPORT",
8121 Self::ApiCall => "API_CALL",
8122 Self::Webhook => "WEBHOOK",
8123 }
8124 }
8125 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8127 match value {
8128 "ROOM_CREATED" => Some(Self::RoomCreated),
8129 "ROOM_ENDED" => Some(Self::RoomEnded),
8130 "PARTICIPANT_JOINED" => Some(Self::ParticipantJoined),
8131 "PARTICIPANT_LEFT" => Some(Self::ParticipantLeft),
8132 "PARTICIPANT_CONNECTION_ABORTED" => Some(Self::ParticipantConnectionAborted),
8133 "TRACK_PUBLISHED" => Some(Self::TrackPublished),
8134 "TRACK_PUBLISH_REQUESTED" => Some(Self::TrackPublishRequested),
8135 "TRACK_UNPUBLISHED" => Some(Self::TrackUnpublished),
8136 "TRACK_SUBSCRIBED" => Some(Self::TrackSubscribed),
8137 "TRACK_SUBSCRIBE_REQUESTED" => Some(Self::TrackSubscribeRequested),
8138 "TRACK_SUBSCRIBE_FAILED" => Some(Self::TrackSubscribeFailed),
8139 "TRACK_UNSUBSCRIBED" => Some(Self::TrackUnsubscribed),
8140 "TRACK_PUBLISHED_UPDATE" => Some(Self::TrackPublishedUpdate),
8141 "TRACK_MUTED" => Some(Self::TrackMuted),
8142 "TRACK_UNMUTED" => Some(Self::TrackUnmuted),
8143 "TRACK_PUBLISH_STATS" => Some(Self::TrackPublishStats),
8144 "TRACK_SUBSCRIBE_STATS" => Some(Self::TrackSubscribeStats),
8145 "PARTICIPANT_ACTIVE" => Some(Self::ParticipantActive),
8146 "PARTICIPANT_RESUMED" => Some(Self::ParticipantResumed),
8147 "EGRESS_STARTED" => Some(Self::EgressStarted),
8148 "EGRESS_ENDED" => Some(Self::EgressEnded),
8149 "EGRESS_UPDATED" => Some(Self::EgressUpdated),
8150 "TRACK_MAX_SUBSCRIBED_VIDEO_QUALITY" => Some(Self::TrackMaxSubscribedVideoQuality),
8151 "RECONNECTED" => Some(Self::Reconnected),
8152 "INGRESS_CREATED" => Some(Self::IngressCreated),
8153 "INGRESS_DELETED" => Some(Self::IngressDeleted),
8154 "INGRESS_STARTED" => Some(Self::IngressStarted),
8155 "INGRESS_ENDED" => Some(Self::IngressEnded),
8156 "INGRESS_UPDATED" => Some(Self::IngressUpdated),
8157 "SIP_INBOUND_TRUNK_CREATED" => Some(Self::SipInboundTrunkCreated),
8158 "SIP_INBOUND_TRUNK_DELETED" => Some(Self::SipInboundTrunkDeleted),
8159 "SIP_OUTBOUND_TRUNK_CREATED" => Some(Self::SipOutboundTrunkCreated),
8160 "SIP_OUTBOUND_TRUNK_DELETED" => Some(Self::SipOutboundTrunkDeleted),
8161 "SIP_DISPATCH_RULE_CREATED" => Some(Self::SipDispatchRuleCreated),
8162 "SIP_DISPATCH_RULE_DELETED" => Some(Self::SipDispatchRuleDeleted),
8163 "SIP_PARTICIPANT_CREATED" => Some(Self::SipParticipantCreated),
8164 "SIP_CALL_INCOMING" => Some(Self::SipCallIncoming),
8165 "SIP_CALL_STARTED" => Some(Self::SipCallStarted),
8166 "SIP_CALL_ENDED" => Some(Self::SipCallEnded),
8167 "SIP_TRANSFER_REQUESTED" => Some(Self::SipTransferRequested),
8168 "SIP_TRANSFER_COMPLETE" => Some(Self::SipTransferComplete),
8169 "SIP_CALL_UPDATE" => Some(Self::SipCallUpdate),
8170 "REPORT" => Some(Self::Report),
8171 "API_CALL" => Some(Self::ApiCall),
8172 "WEBHOOK" => Some(Self::Webhook),
8173 _ => None,
8174 }
8175 }
8176}
8177include!("livekit.serde.rs");
8178