Skip to main content

voip_ms/
generated.rs

1// @generated by xtask from tools/server.wsdl + tools/api-responses.json.
2// DO NOT EDIT — regenerate with `cargo xtask gen`.
3
4use serde::Serialize;
5use serde_json::Value;
6
7use crate::client::Client;
8use crate::error::Result;
9
10/// Sub-account call-pickup permissions.
11#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12pub enum CallPickupBehavior {
13    /// Can pick up and be picked up.
14    PickUpAndBePickedUp,
15    /// Can pick up; cannot be picked up.
16    PickUpOnly,
17    /// Can be picked up; cannot pick up.
18    BePickedUpOnly,
19    /// Cannot pick up nor be picked up.
20    Disabled,
21    /// Any wire value this crate doesn't recognize.
22    Unknown(String),
23}
24
25impl CallPickupBehavior {
26    /// The wire string for this variant.
27    pub fn as_wire(&self) -> &str {
28        match self {
29            CallPickupBehavior::PickUpAndBePickedUp => "1",
30            CallPickupBehavior::PickUpOnly => "2",
31            CallPickupBehavior::BePickedUpOnly => "3",
32            CallPickupBehavior::Disabled => "4",
33            CallPickupBehavior::Unknown(s) => s.as_str(),
34        }
35    }
36
37    /// Parse a wire string. Unknown values are preserved.
38    pub fn from_wire(s: &str) -> Self {
39        match s {
40            "1" => CallPickupBehavior::PickUpAndBePickedUp,
41            "2" => CallPickupBehavior::PickUpOnly,
42            "3" => CallPickupBehavior::BePickedUpOnly,
43            "4" => CallPickupBehavior::Disabled,
44            other => CallPickupBehavior::Unknown(other.to_string()),
45        }
46    }
47}
48
49impl std::fmt::Display for CallPickupBehavior {
50    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
51        f.write_str(self.as_wire())
52    }
53}
54
55impl serde::Serialize for CallPickupBehavior {
56    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
57        s.serialize_str(self.as_wire())
58    }
59}
60
61impl<'de> serde::Deserialize<'de> for CallPickupBehavior {
62    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
63        let s = crate::responses::deserialize_enum_wire_string(d)?;
64        Ok(CallPickupBehavior::from_wire(&s))
65    }
66}
67
68#[allow(dead_code)]
69pub(crate) fn deserialize_opt_call_pickup_behavior<'de, D>(
70    d: D,
71) -> std::result::Result<Option<CallPickupBehavior>, D::Error>
72where
73    D: serde::Deserializer<'de>,
74{
75    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
76    Ok(opt.and_then(|s| {
77        let t = s.trim();
78        if t.is_empty() {
79            None
80        } else {
81            Some(CallPickupBehavior::from_wire(t))
82        }
83    }))
84}
85
86/// Outgoing-call dialing mode for a sub-account.
87#[derive(Debug, Clone, PartialEq, Eq, Hash)]
88pub enum DialingMode {
89    /// Use the main account setting.
90    MainAccount,
91    E164,
92    Nanpa,
93    /// Any wire value this crate doesn't recognize.
94    Unknown(String),
95}
96
97impl DialingMode {
98    /// The wire string for this variant.
99    pub fn as_wire(&self) -> &str {
100        match self {
101            DialingMode::MainAccount => "0",
102            DialingMode::E164 => "1",
103            DialingMode::Nanpa => "2",
104            DialingMode::Unknown(s) => s.as_str(),
105        }
106    }
107
108    /// Parse a wire string. Unknown values are preserved.
109    pub fn from_wire(s: &str) -> Self {
110        match s {
111            "0" => DialingMode::MainAccount,
112            "1" => DialingMode::E164,
113            "2" => DialingMode::Nanpa,
114            other => DialingMode::Unknown(other.to_string()),
115        }
116    }
117}
118
119impl std::fmt::Display for DialingMode {
120    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
121        f.write_str(self.as_wire())
122    }
123}
124
125impl serde::Serialize for DialingMode {
126    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
127        s.serialize_str(self.as_wire())
128    }
129}
130
131impl<'de> serde::Deserialize<'de> for DialingMode {
132    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
133        let s = crate::responses::deserialize_enum_wire_string(d)?;
134        Ok(DialingMode::from_wire(&s))
135    }
136}
137
138#[allow(dead_code)]
139pub(crate) fn deserialize_opt_dialing_mode<'de, D>(
140    d: D,
141) -> std::result::Result<Option<DialingMode>, D::Error>
142where
143    D: serde::Deserializer<'de>,
144{
145    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
146    Ok(opt.and_then(|s| {
147        let t = s.trim();
148        if t.is_empty() {
149            None
150        } else {
151            Some(DialingMode::from_wire(t))
152        }
153    }))
154}
155
156/// DID billing model.
157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
158pub enum DidBillingType {
159    PerMinute,
160    Flat,
161    /// Any wire value this crate doesn't recognize.
162    Unknown(String),
163}
164
165impl DidBillingType {
166    /// The wire string for this variant.
167    pub fn as_wire(&self) -> &str {
168        match self {
169            DidBillingType::PerMinute => "1",
170            DidBillingType::Flat => "2",
171            DidBillingType::Unknown(s) => s.as_str(),
172        }
173    }
174
175    /// Parse a wire string. Unknown values are preserved.
176    pub fn from_wire(s: &str) -> Self {
177        match s {
178            "1" => DidBillingType::PerMinute,
179            "2" => DidBillingType::Flat,
180            other => DidBillingType::Unknown(other.to_string()),
181        }
182    }
183}
184
185impl std::fmt::Display for DidBillingType {
186    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
187        f.write_str(self.as_wire())
188    }
189}
190
191impl serde::Serialize for DidBillingType {
192    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
193        s.serialize_str(self.as_wire())
194    }
195}
196
197impl<'de> serde::Deserialize<'de> for DidBillingType {
198    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
199        let s = crate::responses::deserialize_enum_wire_string(d)?;
200        Ok(DidBillingType::from_wire(&s))
201    }
202}
203
204#[allow(dead_code)]
205pub(crate) fn deserialize_opt_did_billing_type<'de, D>(
206    d: D,
207) -> std::result::Result<Option<DidBillingType>, D::Error>
208where
209    D: serde::Deserializer<'de>,
210{
211    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
212    Ok(opt.and_then(|s| {
213        let t = s.trim();
214        if t.is_empty() {
215            None
216        } else {
217            Some(DidBillingType::from_wire(t))
218        }
219    }))
220}
221
222/// DTMF transport mode for SIP sub-accounts.
223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
224pub enum DtmfMode {
225    Auto,
226    Rfc2833,
227    Inband,
228    Info,
229    /// Any wire value this crate doesn't recognize.
230    Unknown(String),
231}
232
233impl DtmfMode {
234    /// The wire string for this variant.
235    pub fn as_wire(&self) -> &str {
236        match self {
237            DtmfMode::Auto => "auto",
238            DtmfMode::Rfc2833 => "rfc2833",
239            DtmfMode::Inband => "inband",
240            DtmfMode::Info => "info",
241            DtmfMode::Unknown(s) => s.as_str(),
242        }
243    }
244
245    /// Parse a wire string. Unknown values are preserved.
246    pub fn from_wire(s: &str) -> Self {
247        match s {
248            "auto" => DtmfMode::Auto,
249            "rfc2833" => DtmfMode::Rfc2833,
250            "inband" => DtmfMode::Inband,
251            "info" => DtmfMode::Info,
252            other => DtmfMode::Unknown(other.to_string()),
253        }
254    }
255}
256
257impl std::fmt::Display for DtmfMode {
258    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
259        f.write_str(self.as_wire())
260    }
261}
262
263impl serde::Serialize for DtmfMode {
264    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
265        s.serialize_str(self.as_wire())
266    }
267}
268
269impl<'de> serde::Deserialize<'de> for DtmfMode {
270    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
271        let s = crate::responses::deserialize_enum_wire_string(d)?;
272        Ok(DtmfMode::from_wire(&s))
273    }
274}
275
276#[allow(dead_code)]
277pub(crate) fn deserialize_opt_dtmf_mode<'de, D>(
278    d: D,
279) -> std::result::Result<Option<DtmfMode>, D::Error>
280where
281    D: serde::Deserializer<'de>,
282{
283    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
284    Ok(opt.and_then(|s| {
285        let t = s.trim();
286        if t.is_empty() {
287            None
288        } else {
289            Some(DtmfMode::from_wire(t))
290        }
291    }))
292}
293
294/// Voicemail email attachment format.
295#[derive(Debug, Clone, PartialEq, Eq, Hash)]
296pub enum EmailAttachmentFormat {
297    /// GSM-compressed WAV.
298    Wav49,
299    Wav,
300    /// MP3 (wire value `wavmp3`).
301    Mp3,
302    /// Do not attach audio.
303    No,
304    /// Any wire value this crate doesn't recognize.
305    Unknown(String),
306}
307
308impl EmailAttachmentFormat {
309    /// The wire string for this variant.
310    pub fn as_wire(&self) -> &str {
311        match self {
312            EmailAttachmentFormat::Wav49 => "wav49",
313            EmailAttachmentFormat::Wav => "wav",
314            EmailAttachmentFormat::Mp3 => "wavmp3",
315            EmailAttachmentFormat::No => "no",
316            EmailAttachmentFormat::Unknown(s) => s.as_str(),
317        }
318    }
319
320    /// Parse a wire string. Unknown values are preserved.
321    pub fn from_wire(s: &str) -> Self {
322        match s {
323            "wav49" => EmailAttachmentFormat::Wav49,
324            "wav" => EmailAttachmentFormat::Wav,
325            "wavmp3" => EmailAttachmentFormat::Mp3,
326            "no" => EmailAttachmentFormat::No,
327            other => EmailAttachmentFormat::Unknown(other.to_string()),
328        }
329    }
330}
331
332impl std::fmt::Display for EmailAttachmentFormat {
333    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
334        f.write_str(self.as_wire())
335    }
336}
337
338impl serde::Serialize for EmailAttachmentFormat {
339    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
340        s.serialize_str(self.as_wire())
341    }
342}
343
344impl<'de> serde::Deserialize<'de> for EmailAttachmentFormat {
345    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
346        let s = crate::responses::deserialize_enum_wire_string(d)?;
347        Ok(EmailAttachmentFormat::from_wire(&s))
348    }
349}
350
351#[allow(dead_code)]
352pub(crate) fn deserialize_opt_email_attachment_format<'de, D>(
353    d: D,
354) -> std::result::Result<Option<EmailAttachmentFormat>, D::Error>
355where
356    D: serde::Deserializer<'de>,
357{
358    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
359    Ok(opt.and_then(|s| {
360        let t = s.trim();
361        if t.is_empty() {
362            None
363        } else {
364            Some(EmailAttachmentFormat::from_wire(t))
365        }
366    }))
367}
368
369/// When to include estimated hold time in queue position announcements.
370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
371pub enum EstimatedHoldTimeAnnounce {
372    Yes,
373    No,
374    /// Announce only the first time.
375    Once,
376    /// Any wire value this crate doesn't recognize.
377    Unknown(String),
378}
379
380impl EstimatedHoldTimeAnnounce {
381    /// The wire string for this variant.
382    pub fn as_wire(&self) -> &str {
383        match self {
384            EstimatedHoldTimeAnnounce::Yes => "yes",
385            EstimatedHoldTimeAnnounce::No => "no",
386            EstimatedHoldTimeAnnounce::Once => "once",
387            EstimatedHoldTimeAnnounce::Unknown(s) => s.as_str(),
388        }
389    }
390
391    /// Parse a wire string. Unknown values are preserved.
392    pub fn from_wire(s: &str) -> Self {
393        match s {
394            "yes" => EstimatedHoldTimeAnnounce::Yes,
395            "no" => EstimatedHoldTimeAnnounce::No,
396            "once" => EstimatedHoldTimeAnnounce::Once,
397            other => EstimatedHoldTimeAnnounce::Unknown(other.to_string()),
398        }
399    }
400}
401
402impl std::fmt::Display for EstimatedHoldTimeAnnounce {
403    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
404        f.write_str(self.as_wire())
405    }
406}
407
408impl serde::Serialize for EstimatedHoldTimeAnnounce {
409    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
410        s.serialize_str(self.as_wire())
411    }
412}
413
414impl<'de> serde::Deserialize<'de> for EstimatedHoldTimeAnnounce {
415    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
416        let s = crate::responses::deserialize_enum_wire_string(d)?;
417        Ok(EstimatedHoldTimeAnnounce::from_wire(&s))
418    }
419}
420
421#[allow(dead_code)]
422pub(crate) fn deserialize_opt_estimated_hold_time_announce<'de, D>(
423    d: D,
424) -> std::result::Result<Option<EstimatedHoldTimeAnnounce>, D::Error>
425where
426    D: serde::Deserializer<'de>,
427{
428    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
429    Ok(opt.and_then(|s| {
430        let t = s.trim();
431        if t.is_empty() {
432            None
433        } else {
434            Some(EstimatedHoldTimeAnnounce::from_wire(t))
435        }
436    }))
437}
438
439/// Type of service location for an LNP port.
440#[derive(Debug, Clone, PartialEq, Eq, Hash)]
441pub enum LocationType {
442    Residential,
443    Business,
444    /// Any wire value this crate doesn't recognize.
445    Unknown(String),
446}
447
448impl LocationType {
449    /// The wire string for this variant.
450    pub fn as_wire(&self) -> &str {
451        match self {
452            LocationType::Residential => "0",
453            LocationType::Business => "1",
454            LocationType::Unknown(s) => s.as_str(),
455        }
456    }
457
458    /// Parse a wire string. Unknown values are preserved.
459    pub fn from_wire(s: &str) -> Self {
460        match s {
461            "0" => LocationType::Residential,
462            "1" => LocationType::Business,
463            other => LocationType::Unknown(other.to_string()),
464        }
465    }
466}
467
468impl std::fmt::Display for LocationType {
469    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
470        f.write_str(self.as_wire())
471    }
472}
473
474impl serde::Serialize for LocationType {
475    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
476        s.serialize_str(self.as_wire())
477    }
478}
479
480impl<'de> serde::Deserialize<'de> for LocationType {
481    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
482        let s = crate::responses::deserialize_enum_wire_string(d)?;
483        Ok(LocationType::from_wire(&s))
484    }
485}
486
487#[allow(dead_code)]
488pub(crate) fn deserialize_opt_location_type<'de, D>(
489    d: D,
490) -> std::result::Result<Option<LocationType>, D::Error>
491where
492    D: serde::Deserializer<'de>,
493{
494    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
495    Ok(opt.and_then(|s| {
496        let t = s.trim();
497        if t.is_empty() {
498            None
499        } else {
500            Some(LocationType::from_wire(t))
501        }
502    }))
503}
504
505/// Direction of an SMS / MMS message: a filter on requests, the direction on results.
506#[derive(Debug, Clone, PartialEq, Eq, Hash)]
507pub enum MessageType {
508    Received,
509    Sent,
510    /// Any wire value this crate doesn't recognize.
511    Unknown(String),
512}
513
514impl MessageType {
515    /// The wire string for this variant.
516    pub fn as_wire(&self) -> &str {
517        match self {
518            MessageType::Received => "1",
519            MessageType::Sent => "0",
520            MessageType::Unknown(s) => s.as_str(),
521        }
522    }
523
524    /// Parse a wire string. Unknown values are preserved.
525    pub fn from_wire(s: &str) -> Self {
526        match s {
527            "1" => MessageType::Received,
528            "0" => MessageType::Sent,
529            other => MessageType::Unknown(other.to_string()),
530        }
531    }
532}
533
534impl std::fmt::Display for MessageType {
535    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
536        f.write_str(self.as_wire())
537    }
538}
539
540impl serde::Serialize for MessageType {
541    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
542        s.serialize_str(self.as_wire())
543    }
544}
545
546impl<'de> serde::Deserialize<'de> for MessageType {
547    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
548        let s = crate::responses::deserialize_enum_wire_string(d)?;
549        Ok(MessageType::from_wire(&s))
550    }
551}
552
553#[allow(dead_code)]
554pub(crate) fn deserialize_opt_message_type<'de, D>(
555    d: D,
556) -> std::result::Result<Option<MessageType>, D::Error>
557where
558    D: serde::Deserializer<'de>,
559{
560    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
561    Ok(opt.and_then(|s| {
562        let t = s.trim();
563        if t.is_empty() {
564            None
565        } else {
566            Some(MessageType::from_wire(t))
567        }
568    }))
569}
570
571/// Asterisk NAT handling mode.
572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
573pub enum Nat {
574    Yes,
575    No,
576    Route,
577    Never,
578    /// Any wire value this crate doesn't recognize.
579    Unknown(String),
580}
581
582impl Nat {
583    /// The wire string for this variant.
584    pub fn as_wire(&self) -> &str {
585        match self {
586            Nat::Yes => "yes",
587            Nat::No => "no",
588            Nat::Route => "route",
589            Nat::Never => "never",
590            Nat::Unknown(s) => s.as_str(),
591        }
592    }
593
594    /// Parse a wire string. Unknown values are preserved.
595    pub fn from_wire(s: &str) -> Self {
596        match s {
597            "yes" => Nat::Yes,
598            "no" => Nat::No,
599            "route" => Nat::Route,
600            "never" => Nat::Never,
601            other => Nat::Unknown(other.to_string()),
602        }
603    }
604}
605
606impl std::fmt::Display for Nat {
607    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
608        f.write_str(self.as_wire())
609    }
610}
611
612impl serde::Serialize for Nat {
613    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
614        s.serialize_str(self.as_wire())
615    }
616}
617
618impl<'de> serde::Deserialize<'de> for Nat {
619    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
620        let s = crate::responses::deserialize_enum_wire_string(d)?;
621        Ok(Nat::from_wire(&s))
622    }
623}
624
625#[allow(dead_code)]
626pub(crate) fn deserialize_opt_nat<'de, D>(d: D) -> std::result::Result<Option<Nat>, D::Error>
627where
628    D: serde::Deserializer<'de>,
629{
630    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
631    Ok(opt.and_then(|s| {
632        let t = s.trim();
633        if t.is_empty() {
634            None
635        } else {
636            Some(Nat::from_wire(t))
637        }
638    }))
639}
640
641/// Voicemail playback instruction mode.
642#[derive(Debug, Clone, PartialEq, Eq, Hash)]
643pub enum PlayInstructions {
644    /// Skip instructions on unread messages.
645    SkipUnread,
646    /// Read full instructions for unread messages.
647    Unread,
648    /// Any wire value this crate doesn't recognize.
649    Unknown(String),
650}
651
652impl PlayInstructions {
653    /// The wire string for this variant.
654    pub fn as_wire(&self) -> &str {
655        match self {
656            PlayInstructions::SkipUnread => "su",
657            PlayInstructions::Unread => "u",
658            PlayInstructions::Unknown(s) => s.as_str(),
659        }
660    }
661
662    /// Parse a wire string. Unknown values are preserved.
663    pub fn from_wire(s: &str) -> Self {
664        match s {
665            "su" => PlayInstructions::SkipUnread,
666            "u" => PlayInstructions::Unread,
667            other => PlayInstructions::Unknown(other.to_string()),
668        }
669    }
670}
671
672impl std::fmt::Display for PlayInstructions {
673    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
674        f.write_str(self.as_wire())
675    }
676}
677
678impl serde::Serialize for PlayInstructions {
679    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
680        s.serialize_str(self.as_wire())
681    }
682}
683
684impl<'de> serde::Deserialize<'de> for PlayInstructions {
685    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
686        let s = crate::responses::deserialize_enum_wire_string(d)?;
687        Ok(PlayInstructions::from_wire(&s))
688    }
689}
690
691#[allow(dead_code)]
692pub(crate) fn deserialize_opt_play_instructions<'de, D>(
693    d: D,
694) -> std::result::Result<Option<PlayInstructions>, D::Error>
695where
696    D: serde::Deserializer<'de>,
697{
698    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
699    Ok(opt.and_then(|s| {
700        let t = s.trim();
701        if t.is_empty() {
702            None
703        } else {
704            Some(PlayInstructions::from_wire(t))
705        }
706    }))
707}
708
709/// Whether callers may join, or are kept in, a queue with no available members. Used by both `join_when_empty` and `leave_when_empty`.
710#[derive(Debug, Clone, PartialEq, Eq, Hash)]
711pub enum QueueEmptyBehavior {
712    /// Callers may join / remain with no members.
713    Yes,
714    /// Callers may not join / are sent to failover.
715    No,
716    /// Like `No`, but also applies when members are present yet all unavailable.
717    Strict,
718    /// Any wire value this crate doesn't recognize.
719    Unknown(String),
720}
721
722impl QueueEmptyBehavior {
723    /// The wire string for this variant.
724    pub fn as_wire(&self) -> &str {
725        match self {
726            QueueEmptyBehavior::Yes => "yes",
727            QueueEmptyBehavior::No => "no",
728            QueueEmptyBehavior::Strict => "strict",
729            QueueEmptyBehavior::Unknown(s) => s.as_str(),
730        }
731    }
732
733    /// Parse a wire string. Unknown values are preserved.
734    pub fn from_wire(s: &str) -> Self {
735        match s {
736            "yes" => QueueEmptyBehavior::Yes,
737            "no" => QueueEmptyBehavior::No,
738            "strict" => QueueEmptyBehavior::Strict,
739            other => QueueEmptyBehavior::Unknown(other.to_string()),
740        }
741    }
742}
743
744impl std::fmt::Display for QueueEmptyBehavior {
745    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
746        f.write_str(self.as_wire())
747    }
748}
749
750impl serde::Serialize for QueueEmptyBehavior {
751    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
752        s.serialize_str(self.as_wire())
753    }
754}
755
756impl<'de> serde::Deserialize<'de> for QueueEmptyBehavior {
757    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
758        let s = crate::responses::deserialize_enum_wire_string(d)?;
759        Ok(QueueEmptyBehavior::from_wire(&s))
760    }
761}
762
763#[allow(dead_code)]
764pub(crate) fn deserialize_opt_queue_empty_behavior<'de, D>(
765    d: D,
766) -> std::result::Result<Option<QueueEmptyBehavior>, D::Error>
767where
768    D: serde::Deserializer<'de>,
769{
770    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
771    Ok(opt.and_then(|s| {
772        let t = s.trim();
773        if t.is_empty() {
774            None
775        } else {
776            Some(QueueEmptyBehavior::from_wire(t))
777        }
778    }))
779}
780
781/// Sort order for selected recordings.
782#[derive(Debug, Clone, PartialEq, Eq, Hash)]
783pub enum RecordingSort {
784    Alpha,
785    Random,
786    /// Any wire value this crate doesn't recognize.
787    Unknown(String),
788}
789
790impl RecordingSort {
791    /// The wire string for this variant.
792    pub fn as_wire(&self) -> &str {
793        match self {
794            RecordingSort::Alpha => "alpha",
795            RecordingSort::Random => "random",
796            RecordingSort::Unknown(s) => s.as_str(),
797        }
798    }
799
800    /// Parse a wire string. Unknown values are preserved.
801    pub fn from_wire(s: &str) -> Self {
802        match s {
803            "alpha" => RecordingSort::Alpha,
804            "random" => RecordingSort::Random,
805            other => RecordingSort::Unknown(other.to_string()),
806        }
807    }
808}
809
810impl std::fmt::Display for RecordingSort {
811    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
812        f.write_str(self.as_wire())
813    }
814}
815
816impl serde::Serialize for RecordingSort {
817    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
818        s.serialize_str(self.as_wire())
819    }
820}
821
822impl<'de> serde::Deserialize<'de> for RecordingSort {
823    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
824        let s = crate::responses::deserialize_enum_wire_string(d)?;
825        Ok(RecordingSort::from_wire(&s))
826    }
827}
828
829#[allow(dead_code)]
830pub(crate) fn deserialize_opt_recording_sort<'de, D>(
831    d: D,
832) -> std::result::Result<Option<RecordingSort>, D::Error>
833where
834    D: serde::Deserializer<'de>,
835{
836    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
837    Ok(opt.and_then(|s| {
838        let t = s.trim();
839        if t.is_empty() {
840            None
841        } else {
842            Some(RecordingSort::from_wire(t))
843        }
844    }))
845}
846
847/// Order in which ring-group members are attempted.
848#[derive(Debug, Clone, PartialEq, Eq, Hash)]
849pub enum RingGroupOrder {
850    /// Try members in declared order.
851    Follow,
852    Random,
853    /// Any wire value this crate doesn't recognize.
854    Unknown(String),
855}
856
857impl RingGroupOrder {
858    /// The wire string for this variant.
859    pub fn as_wire(&self) -> &str {
860        match self {
861            RingGroupOrder::Follow => "follow",
862            RingGroupOrder::Random => "random",
863            RingGroupOrder::Unknown(s) => s.as_str(),
864        }
865    }
866
867    /// Parse a wire string. Unknown values are preserved.
868    pub fn from_wire(s: &str) -> Self {
869        match s {
870            "follow" => RingGroupOrder::Follow,
871            "random" => RingGroupOrder::Random,
872            other => RingGroupOrder::Unknown(other.to_string()),
873        }
874    }
875}
876
877impl std::fmt::Display for RingGroupOrder {
878    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
879        f.write_str(self.as_wire())
880    }
881}
882
883impl serde::Serialize for RingGroupOrder {
884    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
885        s.serialize_str(self.as_wire())
886    }
887}
888
889impl<'de> serde::Deserialize<'de> for RingGroupOrder {
890    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
891        let s = crate::responses::deserialize_enum_wire_string(d)?;
892        Ok(RingGroupOrder::from_wire(&s))
893    }
894}
895
896#[allow(dead_code)]
897pub(crate) fn deserialize_opt_ring_group_order<'de, D>(
898    d: D,
899) -> std::result::Result<Option<RingGroupOrder>, D::Error>
900where
901    D: serde::Deserializer<'de>,
902{
903    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
904    Ok(opt.and_then(|s| {
905        let t = s.trim();
906        if t.is_empty() {
907            None
908        } else {
909            Some(RingGroupOrder::from_wire(t))
910        }
911    }))
912}
913
914/// Queue ring strategy. Mirrors Asterisk's queue strategy options.
915#[derive(Debug, Clone, PartialEq, Eq, Hash)]
916pub enum RingStrategy {
917    RingAll,
918    LeastRecent,
919    FewestCalls,
920    Random,
921    RrMemory,
922    /// Any wire value this crate doesn't recognize.
923    Unknown(String),
924}
925
926impl RingStrategy {
927    /// The wire string for this variant.
928    pub fn as_wire(&self) -> &str {
929        match self {
930            RingStrategy::RingAll => "ringall",
931            RingStrategy::LeastRecent => "leastrecent",
932            RingStrategy::FewestCalls => "fewestcalls",
933            RingStrategy::Random => "random",
934            RingStrategy::RrMemory => "rrmemory",
935            RingStrategy::Unknown(s) => s.as_str(),
936        }
937    }
938
939    /// Parse a wire string. Unknown values are preserved.
940    pub fn from_wire(s: &str) -> Self {
941        match s {
942            "ringall" => RingStrategy::RingAll,
943            "leastrecent" => RingStrategy::LeastRecent,
944            "fewestcalls" => RingStrategy::FewestCalls,
945            "random" => RingStrategy::Random,
946            "rrmemory" => RingStrategy::RrMemory,
947            other => RingStrategy::Unknown(other.to_string()),
948        }
949    }
950}
951
952impl std::fmt::Display for RingStrategy {
953    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
954        f.write_str(self.as_wire())
955    }
956}
957
958impl serde::Serialize for RingStrategy {
959    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
960        s.serialize_str(self.as_wire())
961    }
962}
963
964impl<'de> serde::Deserialize<'de> for RingStrategy {
965    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
966        let s = crate::responses::deserialize_enum_wire_string(d)?;
967        Ok(RingStrategy::from_wire(&s))
968    }
969}
970
971#[allow(dead_code)]
972pub(crate) fn deserialize_opt_ring_strategy<'de, D>(
973    d: D,
974) -> std::result::Result<Option<RingStrategy>, D::Error>
975where
976    D: serde::Deserializer<'de>,
977{
978    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
979    Ok(opt.and_then(|s| {
980        let t = s.trim();
981        if t.is_empty() {
982            None
983        } else {
984            Some(RingStrategy::from_wire(t))
985        }
986    }))
987}
988
989/// How a DID / toll-free search string is matched.
990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
991pub enum SearchType {
992    Starts,
993    Contains,
994    Ends,
995    /// Any wire value this crate doesn't recognize.
996    Unknown(String),
997}
998
999impl SearchType {
1000    /// The wire string for this variant.
1001    pub fn as_wire(&self) -> &str {
1002        match self {
1003            SearchType::Starts => "starts",
1004            SearchType::Contains => "contains",
1005            SearchType::Ends => "ends",
1006            SearchType::Unknown(s) => s.as_str(),
1007        }
1008    }
1009
1010    /// Parse a wire string. Unknown values are preserved.
1011    pub fn from_wire(s: &str) -> Self {
1012        match s {
1013            "starts" => SearchType::Starts,
1014            "contains" => SearchType::Contains,
1015            "ends" => SearchType::Ends,
1016            other => SearchType::Unknown(other.to_string()),
1017        }
1018    }
1019}
1020
1021impl std::fmt::Display for SearchType {
1022    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1023        f.write_str(self.as_wire())
1024    }
1025}
1026
1027impl serde::Serialize for SearchType {
1028    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
1029        s.serialize_str(self.as_wire())
1030    }
1031}
1032
1033impl<'de> serde::Deserialize<'de> for SearchType {
1034    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
1035        let s = crate::responses::deserialize_enum_wire_string(d)?;
1036        Ok(SearchType::from_wire(&s))
1037    }
1038}
1039
1040#[allow(dead_code)]
1041pub(crate) fn deserialize_opt_search_type<'de, D>(
1042    d: D,
1043) -> std::result::Result<Option<SearchType>, D::Error>
1044where
1045    D: serde::Deserializer<'de>,
1046{
1047    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
1048    Ok(opt.and_then(|s| {
1049        let t = s.trim();
1050        if t.is_empty() {
1051            None
1052        } else {
1053            Some(SearchType::from_wire(t))
1054        }
1055    }))
1056}
1057
1058/// Carrier for outgoing calls to toll-free numbers.
1059#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1060pub enum TollFreeCarrier {
1061    /// Use the main account setting.
1062    MainAccount,
1063    /// Default server setting.
1064    Default,
1065    Us,
1066    Canadian,
1067    /// Any wire value this crate doesn't recognize.
1068    Unknown(String),
1069}
1070
1071impl TollFreeCarrier {
1072    /// The wire string for this variant.
1073    pub fn as_wire(&self) -> &str {
1074        match self {
1075            TollFreeCarrier::MainAccount => "-1",
1076            TollFreeCarrier::Default => "0",
1077            TollFreeCarrier::Us => "1",
1078            TollFreeCarrier::Canadian => "2",
1079            TollFreeCarrier::Unknown(s) => s.as_str(),
1080        }
1081    }
1082
1083    /// Parse a wire string. Unknown values are preserved.
1084    pub fn from_wire(s: &str) -> Self {
1085        match s {
1086            "-1" => TollFreeCarrier::MainAccount,
1087            "0" => TollFreeCarrier::Default,
1088            "1" => TollFreeCarrier::Us,
1089            "2" => TollFreeCarrier::Canadian,
1090            other => TollFreeCarrier::Unknown(other.to_string()),
1091        }
1092    }
1093}
1094
1095impl std::fmt::Display for TollFreeCarrier {
1096    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1097        f.write_str(self.as_wire())
1098    }
1099}
1100
1101impl serde::Serialize for TollFreeCarrier {
1102    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
1103        s.serialize_str(self.as_wire())
1104    }
1105}
1106
1107impl<'de> serde::Deserialize<'de> for TollFreeCarrier {
1108    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
1109        let s = crate::responses::deserialize_enum_wire_string(d)?;
1110        Ok(TollFreeCarrier::from_wire(&s))
1111    }
1112}
1113
1114#[allow(dead_code)]
1115pub(crate) fn deserialize_opt_toll_free_carrier<'de, D>(
1116    d: D,
1117) -> std::result::Result<Option<TollFreeCarrier>, D::Error>
1118where
1119    D: serde::Deserializer<'de>,
1120{
1121    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
1122    Ok(opt.and_then(|s| {
1123        let t = s.trim();
1124        if t.is_empty() {
1125            None
1126        } else {
1127            Some(TollFreeCarrier::from_wire(t))
1128        }
1129    }))
1130}
1131
1132/// Voicemail transcription output format.
1133#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1134pub enum TranscriptionFormat {
1135    Text,
1136    Html,
1137    /// Any wire value this crate doesn't recognize.
1138    Unknown(String),
1139}
1140
1141impl TranscriptionFormat {
1142    /// The wire string for this variant.
1143    pub fn as_wire(&self) -> &str {
1144        match self {
1145            TranscriptionFormat::Text => "text",
1146            TranscriptionFormat::Html => "html",
1147            TranscriptionFormat::Unknown(s) => s.as_str(),
1148        }
1149    }
1150
1151    /// Parse a wire string. Unknown values are preserved.
1152    pub fn from_wire(s: &str) -> Self {
1153        match s {
1154            "text" => TranscriptionFormat::Text,
1155            "html" => TranscriptionFormat::Html,
1156            other => TranscriptionFormat::Unknown(other.to_string()),
1157        }
1158    }
1159}
1160
1161impl std::fmt::Display for TranscriptionFormat {
1162    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1163        f.write_str(self.as_wire())
1164    }
1165}
1166
1167impl serde::Serialize for TranscriptionFormat {
1168    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
1169        s.serialize_str(self.as_wire())
1170    }
1171}
1172
1173impl<'de> serde::Deserialize<'de> for TranscriptionFormat {
1174    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
1175        let s = crate::responses::deserialize_enum_wire_string(d)?;
1176        Ok(TranscriptionFormat::from_wire(&s))
1177    }
1178}
1179
1180#[allow(dead_code)]
1181pub(crate) fn deserialize_opt_transcription_format<'de, D>(
1182    d: D,
1183) -> std::result::Result<Option<TranscriptionFormat>, D::Error>
1184where
1185    D: serde::Deserializer<'de>,
1186{
1187    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
1188    Ok(opt.and_then(|s| {
1189        let t = s.trim();
1190        if t.is_empty() {
1191            None
1192        } else {
1193            Some(TranscriptionFormat::from_wire(t))
1194        }
1195    }))
1196}
1197
1198/// Toll-free prefix to search for a vanity number.
1199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1200pub enum VanityType {
1201    /// Any toll-free prefix.
1202    Any,
1203    N800,
1204    N833,
1205    N844,
1206    N855,
1207    N866,
1208    N877,
1209    N888,
1210    /// Any wire value this crate doesn't recognize.
1211    Unknown(String),
1212}
1213
1214impl VanityType {
1215    /// The wire string for this variant.
1216    pub fn as_wire(&self) -> &str {
1217        match self {
1218            VanityType::Any => "8**",
1219            VanityType::N800 => "800",
1220            VanityType::N833 => "833",
1221            VanityType::N844 => "844",
1222            VanityType::N855 => "855",
1223            VanityType::N866 => "866",
1224            VanityType::N877 => "877",
1225            VanityType::N888 => "888",
1226            VanityType::Unknown(s) => s.as_str(),
1227        }
1228    }
1229
1230    /// Parse a wire string. Unknown values are preserved.
1231    pub fn from_wire(s: &str) -> Self {
1232        match s {
1233            "8**" => VanityType::Any,
1234            "800" => VanityType::N800,
1235            "833" => VanityType::N833,
1236            "844" => VanityType::N844,
1237            "855" => VanityType::N855,
1238            "866" => VanityType::N866,
1239            "877" => VanityType::N877,
1240            "888" => VanityType::N888,
1241            other => VanityType::Unknown(other.to_string()),
1242        }
1243    }
1244}
1245
1246impl std::fmt::Display for VanityType {
1247    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1248        f.write_str(self.as_wire())
1249    }
1250}
1251
1252impl serde::Serialize for VanityType {
1253    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
1254        s.serialize_str(self.as_wire())
1255    }
1256}
1257
1258impl<'de> serde::Deserialize<'de> for VanityType {
1259    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
1260        let s = crate::responses::deserialize_enum_wire_string(d)?;
1261        Ok(VanityType::from_wire(&s))
1262    }
1263}
1264
1265#[allow(dead_code)]
1266pub(crate) fn deserialize_opt_vanity_type<'de, D>(
1267    d: D,
1268) -> std::result::Result<Option<VanityType>, D::Error>
1269where
1270    D: serde::Deserializer<'de>,
1271{
1272    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
1273    Ok(opt.and_then(|s| {
1274        let t = s.trim();
1275        if t.is_empty() {
1276            None
1277        } else {
1278            Some(VanityType::from_wire(t))
1279        }
1280    }))
1281}
1282
1283/// Voicemail message folder.
1284#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1285pub enum VoicemailFolder {
1286    Inbox,
1287    Old,
1288    Urgent,
1289    Family,
1290    Friends,
1291    Work,
1292    /// Any wire value this crate doesn't recognize.
1293    Unknown(String),
1294}
1295
1296impl VoicemailFolder {
1297    /// The wire string for this variant.
1298    pub fn as_wire(&self) -> &str {
1299        match self {
1300            VoicemailFolder::Inbox => "INBOX",
1301            VoicemailFolder::Old => "Old",
1302            VoicemailFolder::Urgent => "Urgent",
1303            VoicemailFolder::Family => "Family",
1304            VoicemailFolder::Friends => "Friends",
1305            VoicemailFolder::Work => "Work",
1306            VoicemailFolder::Unknown(s) => s.as_str(),
1307        }
1308    }
1309
1310    /// Parse a wire string. Unknown values are preserved.
1311    pub fn from_wire(s: &str) -> Self {
1312        match s {
1313            "INBOX" => VoicemailFolder::Inbox,
1314            "Old" => VoicemailFolder::Old,
1315            "Urgent" => VoicemailFolder::Urgent,
1316            "Family" => VoicemailFolder::Family,
1317            "Friends" => VoicemailFolder::Friends,
1318            "Work" => VoicemailFolder::Work,
1319            other => VoicemailFolder::Unknown(other.to_string()),
1320        }
1321    }
1322}
1323
1324impl std::fmt::Display for VoicemailFolder {
1325    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1326        f.write_str(self.as_wire())
1327    }
1328}
1329
1330impl serde::Serialize for VoicemailFolder {
1331    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
1332        s.serialize_str(self.as_wire())
1333    }
1334}
1335
1336impl<'de> serde::Deserialize<'de> for VoicemailFolder {
1337    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
1338        let s = crate::responses::deserialize_enum_wire_string(d)?;
1339        Ok(VoicemailFolder::from_wire(&s))
1340    }
1341}
1342
1343#[allow(dead_code)]
1344pub(crate) fn deserialize_opt_voicemail_folder<'de, D>(
1345    d: D,
1346) -> std::result::Result<Option<VoicemailFolder>, D::Error>
1347where
1348    D: serde::Deserializer<'de>,
1349{
1350    let opt = crate::responses::deserialize_opt_string_from_string_number_or_bool(d)?;
1351    Ok(opt.and_then(|s| {
1352        let t = s.trim();
1353        if t.is_empty() {
1354            None
1355        } else {
1356            Some(VoicemailFolder::from_wire(t))
1357        }
1358    }))
1359}
1360
1361/// A non-success `status` returned by the VoIP.ms API.
1362///
1363/// Every documented error code from the official API docs' global
1364/// error-code table is a variant; [`ApiStatus::description`] returns its
1365/// documented meaning. The set of codes is documentation, not a stable
1366/// contract — a code VoIP.ms returns but hasn't documented is preserved
1367/// verbatim in [`ApiStatus::Unknown`] rather than lost.
1368///
1369/// ```
1370/// # use voip_ms::ApiStatus;
1371/// let status = ApiStatus::from_wire("invalid_credentials");
1372/// assert_eq!(status, ApiStatus::InvalidCredentials);
1373/// assert_eq!(status.as_str(), "invalid_credentials");
1374/// assert_eq!(status.description(), Some("Username or Password is incorrect"));
1375/// assert!(status.is_documented());
1376///
1377/// let unknown = ApiStatus::from_wire("some_new_code");
1378/// assert_eq!(unknown, ApiStatus::Unknown("some_new_code".to_string()));
1379/// assert_eq!(unknown.description(), None);
1380/// assert!(!unknown.is_documented());
1381/// ```
1382#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1383pub enum ApiStatus {
1384    /// `account_with_dids` — The Account has DIDs assigned to it.
1385    AccountWithDIDs,
1386    /// `api_limit_exceeded` — API requests limit per minute has been reached
1387    APILimitExceeded,
1388    /// `api_not_enabled` — API has not been enabled or has been disabled
1389    APINotEnabled,
1390    /// `cancel_failed` — The cancellation wasn't completed.
1391    CancelFailed,
1392    /// `can_have_only_one_profile_without_pin` — The conference can just have one profile member without pin
1393    CANHaveOnlyOneProfileWithoutPIN,
1394    /// `conference_member_relation_not_found` — There is no relation between the profile member and the conference.
1395    ConferenceMemberRelationNotFound,
1396    /// `did_in_use` — DID Number is already in use
1397    DIDInUse,
1398    /// `did_limit_reached` — You have reached the maximum number of DID numbers allowed for your account type. Please contact our team if you have a specific use case or if you would like to upgrade to a Business account.
1399    DIDLimitReached,
1400    /// `duplicated_name` — There is already another entry with this name
1401    DuplicatedName,
1402    /// `duplicated_pin` — The given pin has been duplicated
1403    DuplicatedPIN,
1404    /// `e911_disabled` — DID e911 service it's not enabled.
1405    E911Disabled,
1406    /// `e911_pending` — DID e911 service has been requested and is in validation process.
1407    E911Pending,
1408    /// `error_deleting_msg` — Error when deleting message
1409    ErrorDeletingMsg,
1410    /// `error_moving_msg` — Error when move the voicemail message to folder
1411    ErrorMovingMsg,
1412    /// `exceeds_file_size` — The file exceeds the limite size allowed.
1413    ExceedsFileSize,
1414    /// `existing_did` — You can't set a callback to an existing VoIP.ms DID number
1415    ExistingDID,
1416    /// `forwards_exceeded` — Your account is limited to 4 forward entries
1417    ForwardsExceeded,
1418    /// `invalid_account` — This is not a valid account
1419    InvalidAccount,
1420    /// `invalid_address` — Address is missing or the format is invalid.
1421    InvalidAddress,
1422    /// `invalid_admin` — This is not a valid admin
1423    InvalidAdmin,
1424    /// `invalid_agent_ring_timeout` — This is not a valid Agent ring time out value
1425    InvalidAgentRingTimeout,
1426    /// `invalid_allowedcodecs` — One of the codecs provided is invalid Format and Values: ulaw;g729;gsm;all
1427    InvalidAllowedcodecs,
1428    /// `invalid_announce_join_leave` — This is not a valid "Announce join leave"
1429    InvalidAnnounceJoinLeave,
1430    /// `invalid_announce_only_user` — This is not a valid "Announce only user"
1431    InvalidAnnounceOnlyUser,
1432    /// `invalid_announce_position_frequency` — This is not a valid Announce position frequency
1433    InvalidAnnouncePositionFrequency,
1434    /// `invalid_announce_round_seconds` — This is not a valid "Announce round seconds"
1435    InvalidAnnounceRoundSeconds,
1436    /// `invalid_announce_user_count` — This is not a valid "Announce user count"
1437    InvalidAnnounceUserCount,
1438    /// `invalid_area_code` — this is not a valid Area Code.
1439    InvalidAreaCode,
1440    /// `invalid_attachid` — The given ID is invalid or doesn't exist.
1441    InvalidAttachid,
1442    /// `invalid_attachmessage` — this is not a valid AttachMessage Should be: yes/no
1443    InvalidAttachmessage,
1444    /// `invalid_attach_file` — Valid formats: PDF, MS Word, BMP, JPG
1445    InvalidAttachFile,
1446    /// `invalid_authtype` — This is not a valid Auth Type
1447    InvalidAuthtype,
1448    /// `invalid_authtype_h323` — You must select IP Auth to use H.323
1449    InvalidAuthtypeH323,
1450    /// `invalid_authtype_iax2` — You must use User/Password Authentication for IAX2
1451    InvalidAuthtypeIax2,
1452    /// `invalid_balancemanagement` — This is not a valid BalanceManagement
1453    InvalidBalancemanagement,
1454    /// `invalid_base_recording` — This is not a valid recording path
1455    InvalidBaseRecording,
1456    /// `invalid_billingtype` — This is not a valid Billing Type Allowed values: 1 = PerMinute, 2 = Flat
1457    InvalidBillingtype,
1458    /// `invalid_callback` — This is not a valid Callback
1459    InvalidCallback,
1460    /// `invalid_callback_enable` — This is not a valid Callback enable value
1461    InvalidCallbackEnable,
1462    /// `invalid_callback_retry` — This is not a valid Callback retry
1463    InvalidCallbackRetry,
1464    /// `invalid_callerid` — This is not a valid CallerID
1465    InvalidCallerid,
1466    /// `invalid_calleridprefix` — This is not a valid CID Prefix, lenght should be less than 20 chars
1467    InvalidCalleridprefix,
1468    /// `invalid_callerid_override` — This is not a valid CallerID Override
1469    InvalidCalleridOverride,
1470    /// `invalid_callhunting` — This is not a valid Call Hunting
1471    InvalidCallhunting,
1472    /// `invalid_callparking` — This is not a valid Call Parking
1473    InvalidCallparking,
1474    /// `invalid_callrecording` — This is not a valid Call recording
1475    InvalidCallrecording,
1476    /// `invalid_call_type` — Call Type is not valid.
1477    InvalidCallType,
1478    /// `invalid_canada_routing` — This is not a valid Canada Route
1479    InvalidCanadaRouting,
1480    /// `invalid_carrier` — This is not a valid Carrier
1481    InvalidCarrier,
1482    /// `invalid_charge` — This is not a valid Charge
1483    InvalidCharge,
1484    /// `invalid_city` — City is missing or the format is invalid.
1485    InvalidCity,
1486    /// `invalid_client` — This is not a valid Client
1487    InvalidClient,
1488    /// `invalid_cnam` — This is not a valid CNAM Should be: 1/0
1489    InvalidCNAM,
1490    /// `invalid_codec` — This is not a valid Codec
1491    InvalidCodec,
1492    /// `invalid_conference` — This is not a valid Conference ID
1493    InvalidConference,
1494    /// `invalid_contact` — This is not a valid Contact Number
1495    InvalidContact,
1496    /// `invalid_country` — Country is missing or the format is invalid, must be in format ISO 3166-1 alpha-2, example: US, CA, etc. (You can use the values returned by the method getCountries)
1497    InvalidCountry,
1498    /// `invalid_countryid` — This is not a valid Country ID
1499    InvalidCountryid,
1500    /// `invalid_credentials` — Username or Password is incorrect
1501    InvalidCredentials,
1502    /// `invalid_date` — This is not a valid date Format is: yyyy-mm-dd
1503    InvalidDate,
1504    /// `invalid_daterange` — Date Range should be 92 days or less
1505    InvalidDaterange,
1506    /// `invalid_datetime` — This is not a valid datetime Format is: yyyy-mm-dd hh:mm:ss
1507    InvalidDatetime,
1508    /// `invalid_date_from` — The "From" date should be prior to the "To" date.
1509    InvalidDateFrom,
1510    /// `invalid_dayrange` — This is not a valid Day Range
1511    InvalidDayrange,
1512    /// `invalid_delay_before` — This is not a valid DelayBefore
1513    InvalidDelayBefore,
1514    /// `invalid_deletemessage` — This is not a valid DeleteMessage Should be: yes/no
1515    InvalidDeletemessage,
1516    /// `invalid_description` — This is not a valid Description
1517    InvalidDescription,
1518    /// `invalid_destination` — This is not a valid Destination
1519    InvalidDestination,
1520    /// `invalid_destination_folder` — This is not a valid Destination Folder
1521    InvalidDestinationFolder,
1522    /// `invalid_devicetype` — This is not a valid Device Type
1523    InvalidDevicetype,
1524    /// `invalid_dialtime` — This is not a valid Dialtime
1525    InvalidDialtime,
1526    /// `invalid_did` — This is not a valid DID
1527    InvalidDID,
1528    /// `invalid_digits` — These are not valid DigitsOrderDIDVirtual: Digits must be 3 numbers
1529    InvalidDigits,
1530    /// `invalid_digit_timeout` — This is not a valid DigitTimeOut
1531    InvalidDigitTimeout,
1532    /// `invalid_disa` — This is not a valid DISA
1533    InvalidDISA,
1534    /// `invalid_diversion_header` — This is not a valid Diversion Header. It must be a numeric value, accepting only 0 or 1.
1535    InvalidDiversionHeader,
1536    /// `invalid_drop_silence` — This is not a valid "drop silence" value
1537    InvalidDropSilence,
1538    /// `invalid_dst` — This is not a valid Destination Number
1539    InvalidDST,
1540    /// `invalid_dtmfmode` — This is no a valid DTMF Mode
1541    InvalidDtmfmode,
1542    /// `invalid_dtmf_digits` — This is no a valid DTMF digit
1543    InvalidDTMFDigits,
1544    /// `invalid_email` — This is not a valid email or email is already in database
1545    InvalidEmail,
1546    /// `invalid_email_attachment_format` — This is not a valid format value
1547    InvalidEmailAttachmentFormat,
1548    /// `invalid_email_enable` — This is not a valid email enable value
1549    InvalidEmailEnable,
1550    /// `invalid_enable_ip_restriction` — This is not a valid Enable IP Restriction value
1551    InvalidEnableIPRestriction,
1552    /// `invalid_enable_pop_restriction` — This is not a valid Enable POP Restriction value
1553    InvalidEnablePOPRestriction,
1554    /// `invalid_endhour` — This is not a valid End Hour
1555    InvalidEndhour,
1556    /// `invalid_endminute` — This is not a valid End Minute
1557    InvalidEndminute,
1558    /// `invalid_extension` — This is not a valid extension Extension can only contain digits
1559    InvalidExtension,
1560    /// `invalid_extensions` — Extensions cannot be: 098, 211, 311, 411, 4443, 4444, 4747, 511, 711, 811, 822, 911, 988
1561    InvalidExtensions,
1562    /// `invalid_extension_length` — Extensions should not contain more than 5 digits
1563    InvalidExtensionLength,
1564    /// `invalid_extension_prefix` — Extensions cannot start with: 068, 097
1565    InvalidExtensionPrefix,
1566    /// `invalid_failover_header` — This is not a valid failover header Should be: account/vm/fwd/none
1567    InvalidFailoverHeader,
1568    /// `invalid_fax_id` — This is not a valid Fax Message ID
1569    InvalidFAXID,
1570    /// `invalid_file` — This is not a valid File
1571    InvalidFile,
1572    /// `invalid_filter` — This is not a valid Filter
1573    InvalidFilter,
1574    /// `invalid_firstname` — First name is missing or the format is invalid.
1575    InvalidFirstname,
1576    /// `invalid_foc_enddate` — Invalid date format, must be: YYYY-mm-dd. Example: 2018-02-22
1577    InvalidFocEnddate,
1578    /// `invalid_foc_startdate` — Invalid date format, must be: YYYY-mm-dd. Example: 2018-02-22
1579    InvalidFocStartdate,
1580    /// `invalid_folder` — This is not a valid Folder
1581    InvalidFolder,
1582    /// `invalid_folder_id` — This is not a valid Fax Folder ID
1583    InvalidFolderID,
1584    /// `invalid_forwarding` — This is not a valid forwarding
1585    InvalidForwarding,
1586    /// `invalid_forwarding_did` — Forwarding to the same did is not allowed
1587    InvalidForwardingDID,
1588    /// `invalid_forward_enable` — This is not a valid forward enable value
1589    InvalidForwardEnable,
1590    /// `invalid_frequency_announcement` — This is not a valid Frequency announce
1591    InvalidFrequencyAnnouncement,
1592    /// `invalid_from_number` — This is not a valid sender number.
1593    InvalidFromNumber,
1594    /// `invalid_fullname` — This is not a valid Full Name
1595    InvalidFullname,
1596    /// `invalid_id` — This is not a valid ID
1597    InvalidID,
1598    /// `invalid_if_announce_position_enabled_report_e` — This is not a Report estimated hold time type
1599    InvalidIfAnnouncePositionEnabledReportE,
1600    /// `invalid_internaldialtime` — This is not a valid Internal Dialtime Should be: 1 to 60
1601    InvalidInternaldialtime,
1602    /// `invalid_internalvoicemail` — This is not a valid Internal Voicemail
1603    InvalidInternalvoicemail,
1604    /// `invalid_internationalroute` — This is not a valid International Route
1605    InvalidInternationalroute,
1606    /// `invalid_invoice_type` — Invalid invoice type, possible values: 0 = US, 1 = CAN.
1607    InvalidInvoiceType,
1608    /// `invalid_ip` — This is an invalid IP
1609    InvalidIP,
1610    /// `invalid_ip_auth` — Do not provide an IP address for User/Pass Authentication
1611    InvalidIPAuth,
1612    /// `invalid_ip_iax2` — Do not provide an IP address for IAX2
1613    InvalidIPIax2,
1614    /// `invalid_ivr` — This is not a valid IVR
1615    InvalidIVR,
1616    /// `invalid_jitter_buffer` — This is not a valid "jitter buffer" value
1617    InvalidJitterBuffer,
1618    /// `invalid_join_announcement` — This is not a valid 'Join Announcement' Type for a Queue
1619    InvalidJoinAnnouncement,
1620    /// `invalid_join_empty_type` — This is not a valid 'JoinWhenEmpty' Type for a Queue
1621    InvalidJoinEmptyType,
1622    /// `invalid_language` — This is not a valid Language Should be: es/en/fr
1623    InvalidLanguage,
1624    /// `invalid_lastname` — Lastname is missing or the format is invalid.
1625    InvalidLastname,
1626    /// `invalid_listened` — This is not a valid Listened value
1627    InvalidListened,
1628    /// `invalid_location` — This is not a valid Location
1629    InvalidLocation,
1630    /// `invalid_lockinternational` — This is not a valid Lock International
1631    InvalidLockinternational,
1632    /// `invalid_mailbox` — This is not a valid mailbox
1633    InvalidMailbox,
1634    /// `invalid_maximum_callers` — This is not a valid maximum callers value
1635    InvalidMaximumCallers,
1636    /// `invalid_maximum_wait_time` — This is not a valid maximum wait time value
1637    InvalidMaximumWaitTime,
1638    /// `invalid_max_expiry` — This is not a valid Max Expiry (value must be between 60 and 3600 seconds)
1639    InvalidMaxExpiry,
1640    /// `invalid_member` — This is not a valid Member
1641    InvalidMember,
1642    /// `invalid_member_delay` — This is not a valid Member Delay
1643    InvalidMemberDelay,
1644    /// `invalid_message_num` — This is not a valid Voicemail Message Number
1645    InvalidMessageNum,
1646    /// `invalid_method` — This is not a valid Method
1647    InvalidMethod,
1648    /// `invalid_minute` — This is not a valid Minute Rate
1649    InvalidMinute,
1650    /// `invalid_mixed_numbers` — Toll-free numbers and local numbers can not be mixed in the same order.
1651    InvalidMixedNumbers,
1652    /// `invalid_monthly` — This is not a valid Montly Fee
1653    InvalidMonthly,
1654    /// `invalid_musiconhold` — This is not a valid Music on Hold
1655    InvalidMusiconhold,
1656    /// `invalid_name` — This is not a valid name, Alphanumeric Only
1657    InvalidName,
1658    /// `invalid_nat` — This is not a valid NAT
1659    InvalidNAT,
1660    /// `invalid_note` — This is not a valid Note, lenght should be less than 50 chars
1661    InvalidNote,
1662    /// `invalid_number` — This is not a valid Number
1663    InvalidNumber,
1664    /// `invalid_numbermembers` — The element format of multiple data is not correct or it size does not match with other elements
1665    InvalidNumbermembers,
1666    /// `invalid_number_canadian` — You have entered a Canadian number (not valid in this portability process).
1667    InvalidNumberCanadian,
1668    /// `invalid_number_exist` — The number is already in our network
1669    InvalidNumberExist,
1670    /// `invalid_number_fax` — The Fax number can not be ported into our network
1671    InvalidNumberFAX,
1672    /// `invalid_number_porttype` — You have entered a local number (not valid in this portability process)
1673    InvalidNumberPorttype,
1674    /// `invalid_number_us` — You have entered a USA number (not valid in this portability process).
1675    InvalidNumberUS,
1676    /// `invalid_order` — This is not a valid "order" value
1677    InvalidOrder,
1678    /// `invalid_package` — This is not a valid Package
1679    InvalidPackage,
1680    /// `invalid_password` — This is not a valid passwordVoicemail: Must be 4 Digits SubAccounts: More than 6 chars, Must Contain Alphanumeric and !#$%&/()=?*[]_:.,{}+-
1681    InvalidPassword,
1682    /// `invalid_password_auth` — Do not provide a Password for IP Authentication
1683    InvalidPasswordAuth,
1684    /// `invalid_password_ilegal_characters` — This is not a valid password (Allowed characters: Alphanumeric and ! # $ % & / ( ) = ? * [ ] _ : . , { } + -)
1685    InvalidPasswordIlegalCharacters,
1686    /// `invalid_password_lessthan_8characters_long` — This is not a valid password (Less than 8 characters long)
1687    InvalidPasswordLessthan8charactersLong,
1688    /// `invalid_password_missing_lowercase` — This is not a valid password (Missing lower case character)
1689    InvalidPasswordMissingLowercase,
1690    /// `invalid_password_missing_number` — This is not a valid password (Missing a number)
1691    InvalidPasswordMissingNumber,
1692    /// `invalid_password_missing_uppercase` — This is not a valid password (Missing upper case character)
1693    InvalidPasswordMissingUppercase,
1694    /// `invalid_pause` — This is not a valid Pause
1695    InvalidPause,
1696    /// `invalid_payment` — This is not a valid Payment
1697    InvalidPayment,
1698    /// `invalid_phonebook` — This is not a valid Phonebook
1699    InvalidPhonebook,
1700    /// `invalid_phonenumber` — This is not a valid Phone Number
1701    InvalidPhonenumber,
1702    /// `invalid_pin` — This is not a valid PIN
1703    InvalidPIN,
1704    /// `invalid_pin_number` — Must provide the account PIN number.
1705    InvalidPINNumber,
1706    /// `invalid_playinstructions` — This is not a valid PlayInstructions Should be: u/su
1707    InvalidPlayinstructions,
1708    /// `invalid_pop_restriction` — This is not a valid POP Restriction
1709    InvalidPOPRestriction,
1710    /// `invalid_portingid` — The given ID is invalid or doesn't exist.
1711    InvalidPortingid,
1712    /// `invalid_porttype` — Must provide a valid port type.
1713    InvalidPorttype,
1714    /// `invalid_port_status` — The status code is invalid. (You can use the values returned by the method getListStatus)
1715    InvalidPortStatus,
1716    /// `invalid_priority` — This is not a valid Priority
1717    InvalidPriority,
1718    /// `invalid_priority_weight` — This is not valid weight/priority value
1719    InvalidPriorityWeight,
1720    /// `invalid_protocol` — This is not a valid Protocol
1721    InvalidProtocol,
1722    /// `invalid_provider_account` — You must provide your account # with the current provider
1723    InvalidProviderAccount,
1724    /// `invalid_provider_name` — You must provide the service provider name
1725    InvalidProviderName,
1726    /// `invalid_province` — This is not a valid Province
1727    InvalidProvince,
1728    /// `invalid_quantity` — This is not a valid quantity
1729    InvalidQuantity,
1730    /// `invalid_query` — This is not a valid Query
1731    InvalidQuery,
1732    /// `invalid_queue` — This is not a valid Queue
1733    InvalidQueue,
1734    /// `invalid_quiet` — This is not a valid "quiet" value
1735    InvalidQuiet,
1736    /// `invalid_recording` — This is not a valid recording
1737    InvalidRecording,
1738    /// `invalid_recording_sound_error_menu` — "error menu" is not a valid recording
1739    InvalidRecordingSoundErrorMenu,
1740    /// `invalid_recording_sound_get_pin` — "get pin" is not a valid recording
1741    InvalidRecordingSoundGetPIN,
1742    /// `invalid_recording_sound_has_joined` — "has_joined" is not a valid recording
1743    InvalidRecordingSoundHasJoined,
1744    /// `invalid_recording_sound_has_left` — "has_left" is not a valid recording
1745    InvalidRecordingSoundHasLeft,
1746    /// `invalid_recording_sound_invalid_pin` — "invalid pin" is not a valid recording
1747    InvalidRecordingSoundInvalidPIN,
1748    /// `invalid_recording_sound_join` — "join" is not a valid recording
1749    InvalidRecordingSoundJoin,
1750    /// `invalid_recording_sound_kicked` — "kicked" is not a valid recording
1751    InvalidRecordingSoundKicked,
1752    /// `invalid_recording_sound_leave` — "leave" is not a valid recording
1753    InvalidRecordingSoundLeave,
1754    /// `invalid_recording_sound_locked` — "locked" is not a valid recording
1755    InvalidRecordingSoundLocked,
1756    /// `invalid_recording_sound_locked_now` — "locked now" is not a valid recording
1757    InvalidRecordingSoundLockedNow,
1758    /// `invalid_recording_sound_muted` — "muted" is not a valid recording
1759    InvalidRecordingSoundMuted,
1760    /// `invalid_recording_sound_only_one` — "only one" is not a valid recording
1761    InvalidRecordingSoundOnlyOne,
1762    /// `invalid_recording_sound_only_person` — "only person" is not a valid recording
1763    InvalidRecordingSoundOnlyPerson,
1764    /// `invalid_recording_sound_other_in_party` — "other in party" is not a valid recording
1765    InvalidRecordingSoundOtherInParty,
1766    /// `invalid_recording_sound_participants_muted` — "participants muted" is not a valid recording
1767    InvalidRecordingSoundParticipantsMuted,
1768    /// `invalid_recording_sound_participants_unmuted` — "participants unmuted" is not a valid recording
1769    InvalidRecordingSoundParticipantsUnmuted,
1770    /// `invalid_recording_sound_place_into_conference` — "place into conference" is not a valid recording
1771    InvalidRecordingSoundPlaceIntoConference,
1772    /// `invalid_recording_sound_there_are` — "there are" is not a valid recording
1773    InvalidRecordingSoundThereAre,
1774    /// `invalid_recording_sound_unlocked_now` — "unlocked now" is not a valid recording
1775    InvalidRecordingSoundUnlockedNow,
1776    /// `invalid_recording_sound_unmuted` — "unmuted" is not a valid recording
1777    InvalidRecordingSoundUnmuted,
1778    /// `invalid_record_calls` — Record calls is not valid.
1779    InvalidRecordCalls,
1780    /// `invalid_report_hold_time_agent` — This is not a valid Report hold time agent
1781    InvalidReportHoldTimeAgent,
1782    /// `invalid_resellerclient` — This is not a valid Reseller Client
1783    InvalidResellerclient,
1784    /// `invalid_resellernextbilling` — This is not a valid Reseller Next Billing date, date should not be set in the past.
1785    InvalidResellernextbilling,
1786    /// `invalid_resellerpackage` — This is not a valid Reseller Package
1787    InvalidResellerpackage,
1788    /// `invalid_response_timeout` — This is not a valid ResponseTimeOut
1789    InvalidResponseTimeout,
1790    /// `invalid_retry_timer` — This is not a valid Retry timer
1791    InvalidRetryTimer,
1792    /// `invalid_ringgroup` — This is not a valid Ring group
1793    InvalidRinggroup,
1794    /// `invalid_ring_inuse` — This is not a valid Ring in use value
1795    InvalidRingInuse,
1796    /// `invalid_route` — This is not a valid Route
1797    InvalidRoute,
1798    /// `invalid_routing_header` — This is not a valid Routing header Should be: account/vm/fwd
1799    InvalidRoutingHeader,
1800    /// `invalid_rtp_hold_timeout` — This is not a valid RTP Hold Time Out (value must be between 1 and 3600 seconds)
1801    InvalidRTPHoldTimeout,
1802    /// `invalid_rtp_timeout` — This is not a valid RTP Time Out (value must be between 1 and 3600 seconds)
1803    InvalidRTPTimeout,
1804    /// `invalid_saycallerid` — This is not a valid SayCallerID Should be: yes/no
1805    InvalidSaycallerid,
1806    /// `invalid_saytime` — This is not a valid SayTime Should be: yes/no
1807    InvalidSaytime,
1808    /// `invalid_security_code` — This is not a valid Security Code. Should be alphanumeric.
1809    InvalidSecurityCode,
1810    /// `invalid_serverpop` — This is not a valid Server POP
1811    InvalidServerpop,
1812    /// `invalid_setup` — This is not a valid Setup Fee
1813    InvalidSetup,
1814    /// `invalid_silence_threshold` — This is not a valid "silence threshold" value
1815    InvalidSilenceThreshold,
1816    /// `invalid_sipuri` — This is not a valid SIPURI
1817    InvalidSIPURI,
1818    /// `invalid_sip_traffic` — This is not a valid Encrypted SIP Traffic value
1819    InvalidSIPTraffic,
1820    /// `invalid_skippassword` — This is not a valid skippassword Should be: 1/0 - or - yes/no
1821    InvalidSkippassword,
1822    /// `invalid_smpp_password` — This is not a valid SMPP Password
1823    InvalidSmppPassword,
1824    /// `invalid_smpp_url` — This is not a valid SMPP URL
1825    InvalidSmppURL,
1826    /// `invalid_smpp_username` — This is not a valid SMPP Username
1827    InvalidSmppUsername,
1828    /// `invalid_sms` — This is not a valid SMS
1829    InvalidSMS,
1830    /// `invalid_sms_forward` — This is not a valid SMS forward
1831    InvalidSMSForward,
1832    /// `invalid_snn` — Must provide the 4 last digits of the SSN.
1833    InvalidSnn,
1834    /// `invalid_speed_dial` — This is not a valid Speed Dial
1835    InvalidSpeedDial,
1836    /// `invalid_starthour` — This is not a valid Start Hour
1837    InvalidStarthour,
1838    /// `invalid_startminute` — This is not a valid Start Minute
1839    InvalidStartminute,
1840    /// `invalid_start_muted` — This is not a valid Start Muted
1841    InvalidStartMuted,
1842    /// `invalid_state` — This is not a valid State
1843    InvalidState,
1844    /// `invalid_statement_name` — Statement Name is missing or the format is invalid.
1845    InvalidStatementName,
1846    /// `invalid_strategy` — This is not a valid Ring Strategy
1847    InvalidStrategy,
1848    /// `invalid_street_name` — This is not a valid Street Name
1849    InvalidStreetName,
1850    /// `invalid_street_number` — This is not a valid Street Number
1851    InvalidStreetNumber,
1852    /// `invalid_talking_threshold` — This is not a valid "talking threshold" value
1853    InvalidTalkingThreshold,
1854    /// `invalid_talk_detection` — This is not a valid talk detection value
1855    InvalidTalkDetection,
1856    /// `invalid_tfnumber_porttype` — You have entered a toll-free number (not valid in this portability process).
1857    InvalidTfnumberPorttype,
1858    /// `invalid_thankyou_for_your_patience` — This is not a valid Thankyou for your patience value
1859    InvalidThankyouForYourPatience,
1860    /// `Invalid_threshold` — This is not a valid Threshold Amount. The Threshold Amount should be between 1 and 250
1861    InvalidThreshold,
1862    /// `invalid_timecondition` — This is not a valid Time Condition
1863    InvalidTimecondition,
1864    /// `invalid_timeout` — This is not a valid timeout
1865    InvalidTimeout,
1866    /// `invalid_timerange` — This is not a valid Timer Range
1867    InvalidTimerange,
1868    /// `invalid_timezone` — This is not a valid TimezoneCDR and resellerCDR: Must be numeric Voicemail: Values from getTimezone
1869    InvalidTimezone,
1870    /// `invalid_to_number` — This is not a valid destination number
1871    InvalidToNumber,
1872    /// `invalid_transcription_email` — Transcription email is not valid
1873    InvalidTranscriptionEmail,
1874    /// `invalid_transcription_format` — Invalid Transcription Format
1875    InvalidTranscriptionFormat,
1876    /// `invalid_transcription_locale` — Transcription locale is not valid.
1877    InvalidTranscriptionLocale,
1878    /// `invalid_transcription_redaction` — Invalid Transcription Redaction
1879    InvalidTranscriptionRedaction,
1880    /// `invalid_transcription_sentiment` — Invalid Transcription Sentiment
1881    InvalidTranscriptionSentiment,
1882    /// `invalid_transcription_summary` — Invalid Transcription Summary
1883    InvalidTranscriptionSummary,
1884    /// `invalid_type` — This is not a valid Type
1885    InvalidType,
1886    /// `invalid_urgent` — This is not valid urgent value
1887    InvalidUrgent,
1888    /// `invalid_username` — This is not a valid Username
1889    InvalidUsername,
1890    /// `invalid_voicemailsetup` — This is not a valid voicemail
1891    InvalidVoicemailsetup,
1892    /// `invalid_voice_announcement` — This is not a valid Voice announce
1893    InvalidVoiceAnnouncement,
1894    /// `invalid_weekdayend` — This is not a valid Week End
1895    InvalidWeekdayend,
1896    /// `invalid_weekdaystart` — This is not a valid Week Start
1897    InvalidWeekdaystart,
1898    /// `invalid_wrapup_time` — This is not a valid Wrapup time
1899    InvalidWrapupTime,
1900    /// `invalid_zip` — Zip Code is missing or the format is invalid.
1901    InvalidZip,
1902    /// `ip_not_enabled` — This IP is not enabled for API use
1903    IPNotEnabled,
1904    /// `limit_reached` — You have reached the maximum number of messages allowed per day. - SMS limit using the API. - Fax limit applies using any method.
1905    LimitReached,
1906    /// `location_already_exists` — A location with this name already exists
1907    LocationAlreadyExists,
1908    /// `location_linked_to_subaccount` — This location is in use by one or more sub accounts and cannot be deleted
1909    LocationLinkedToSubaccount,
1910    /// `location_not_found` — The specified location could not be found
1911    LocationNotFound,
1912    /// `max_phonebook` — Your account is limited to 8 SIP, IAX or SIP URI members
1913    MaxPhonebook,
1914    /// `members_exceeded` — You have reached the maximum allowed entries for the Phonebook
1915    MembersExceeded,
1916    /// `member_already_included` — The member has been included already
1917    MemberAlreadyIncluded,
1918    /// `message_empty` — The SMS Message is empty
1919    MessageEmpty,
1920    /// `message_not_found` — The voicemail message was not found
1921    MessageNotFound,
1922    /// `method_maintenance` — This API method is under maintenance
1923    MethodMaintenance,
1924    /// `mismatch_email_confirm` — e-mail confirm does not match with e-mail
1925    MismatchEmailConfirm,
1926    /// `mismatch_password_confirm` — Pasword confirm does not match with Password
1927    MismatchPasswordConfirm,
1928    /// `missing_account` — Account was not provided
1929    MissingAccount,
1930    /// `missing_address` — Address was not provided
1931    MissingAddress,
1932    /// `missing_agent_ring_timeout` — Agent ring time out was not provided
1933    MissingAgentRingTimeout,
1934    /// `missing_allowedcodecs` — Allowed Codecs were not provided
1935    MissingAllowedcodecs,
1936    /// `missing_attachmessage` — AttachMessage was not provided
1937    MissingAttachmessage,
1938    /// `missing_authtype` — Auth Type was not provided
1939    MissingAuthtype,
1940    /// `missing_balancemanagement` — BalanceManagemente was not provided
1941    MissingBalancemanagement,
1942    /// `missing_billingtype` — Billing Type was not provided
1943    MissingBillingtype,
1944    /// `missing_callback` — Callback was not provided
1945    MissingCallback,
1946    /// `missing_callerid` — CallerID was not provided
1947    MissingCallerid,
1948    /// `missing_callhunting` — Call hunting was not provided
1949    MissingCallhunting,
1950    /// `missing_callparking` — Call Parking was not provided
1951    MissingCallparking,
1952    /// `missing_callrecording` — Call recording was not provided
1953    MissingCallrecording,
1954    /// `missing_carrier` — Carrier was not provided
1955    MissingCarrier,
1956    /// `missing_charge` — Charge was not provided.
1957    MissingCharge,
1958    /// `missing_choices` — Choices was not provided
1959    MissingChoices,
1960    /// `missing_city` — City was not provided
1961    MissingCity,
1962    /// `missing_client` — Client was not provided
1963    MissingClient,
1964    /// `missing_cnam` — CNAM was not provided
1965    MissingCNAM,
1966    /// `missing_codec` — Codec was not provided
1967    MissingCodec,
1968    /// `missing_conference` — Conference was not provided
1969    MissingConference,
1970    /// `missing_country` — Country was not provided
1971    MissingCountry,
1972    /// `missing_countryid` — Country ID was not provided
1973    MissingCountryid,
1974    /// `missing_credentials` — Username or Password was not provided
1975    MissingCredentials,
1976    /// `missing_datetime` — DateTime value was not provided
1977    MissingDatetime,
1978    /// `missing_delay_before` — DelayBefore was not provided
1979    MissingDelayBefore,
1980    /// `missing_deletemessage` — DeleteMessage was not provided
1981    MissingDeletemessage,
1982    /// `missing_description` — Description was not provided
1983    MissingDescription,
1984    /// `missing_devicetype` — Device Type was not provided
1985    MissingDevicetype,
1986    /// `missing_dialtime` — Dialtime was not provided
1987    MissingDialtime,
1988    /// `missing_did` — DID was not provided
1989    MissingDID,
1990    /// `missing_digits` — Digits were not provided
1991    MissingDigits,
1992    /// `missing_digit_timeout` — DigitTimeOut was not provided
1993    MissingDigitTimeout,
1994    /// `missing_disa` — DISA was not provided
1995    MissingDISA,
1996    /// `missing_dtmfmode` — DTMF Mode was not provided
1997    MissingDtmfmode,
1998    /// `missing_email` — e-mail was not provided
1999    MissingEmail,
2000    /// `missing_email_confirm` — e-mail confirm was not provided
2001    MissingEmailConfirm,
2002    /// `missing_enable` — Enable was not provided
2003    MissingEnable,
2004    /// `missing_endhour` — End Hour was not provided
2005    MissingEndhour,
2006    /// `missing_endminute` — End Minute was not provided
2007    MissingEndminute,
2008    /// `missing_failover_busy` — Failover Busy was not provided
2009    MissingFailoverBusy,
2010    /// `missing_failover_noanswer` — Failover NoAnswer was not provided
2011    MissingFailoverNoanswer,
2012    /// `missing_failover_unreachable` — Failover Unreachable was not provided
2013    MissingFailoverUnreachable,
2014    /// `missing_file` — File was not provided
2015    MissingFile,
2016    /// `missing_filter` — Filter was not provided
2017    MissingFilter,
2018    /// `missing_firstname` — Firstname was not provided
2019    MissingFirstname,
2020    /// `missing_folder` — folder was not provided
2021    MissingFolder,
2022    /// `missing_forwarding` — Forwarding was not provided
2023    MissingForwarding,
2024    /// `missing_from_date` — From date was not provided
2025    MissingFromDate,
2026    /// `missing_fullname` — Full Name was not provided
2027    MissingFullname,
2028    /// `missing_id` — ID was not provided
2029    MissingID,
2030    /// `missing_if_announce_position_enabled_report_e` — If announce position enabled report estimated hold time' type was not provided
2031    MissingIfAnnouncePositionEnabledReportE,
2032    /// `missing_internationalroute` — International Route was not provided
2033    MissingInternationalroute,
2034    /// `missing_ip` — You need to provide an IP if you select IP Authentication Method
2035    MissingIP,
2036    /// `missing_ip_h323` — You must enter an IP Address for H.323
2037    MissingIPH323,
2038    /// `missing_ip_restriction` — IP Restriction was not provided
2039    MissingIPRestriction,
2040    /// `missing_ivr` — IVR was not provided
2041    MissingIVR,
2042    /// `missing_join_when_empty` — JoinWhenEmpty' type was not provided
2043    MissingJoinWhenEmpty,
2044    /// `missing_language` — Language was not provided
2045    MissingLanguage,
2046    /// `missing_lastname` — Lastname was not provided
2047    MissingLastname,
2048    /// `missing_leave_when_empty` — LeaveWhenEmpty' type was not provided
2049    MissingLeaveWhenEmpty,
2050    /// `missing_length` — Length was not provided
2051    MissingLength,
2052    /// `missing_listened` — Listened code was not provided
2053    MissingListened,
2054    /// `missing_location` — Location was not provided
2055    MissingLocation,
2056    /// `missing_location_name` — Location Name Missing
2057    MissingLocationName,
2058    /// `missing_lockinternational` — Lock International was not provided
2059    MissingLockinternational,
2060    /// `missing_mailbox` — Mailbox was not provided
2061    MissingMailbox,
2062    /// `missing_member` — Member was not provided
2063    MissingMember,
2064    /// `missing_members` — You need at least 1 member to create a ring group
2065    MissingMembers,
2066    /// `missing_message_num` — Voicemail message number was not provided
2067    MissingMessageNum,
2068    /// `missing_method` — Method must be provided when using the REST/JSON API
2069    MissingMethod,
2070    /// `missing_minute` — Minute Rate was not provided
2071    MissingMinute,
2072    /// `missing_monthly` — Monthly Fee was not provided
2073    MissingMonthly,
2074    /// `missing_musiconhold` — Music on Hold was not provided
2075    MissingMusiconhold,
2076    /// `missing_name` — Name was not provided
2077    MissingName,
2078    /// `missing_nat` — NAT was not provided
2079    MissingNAT,
2080    /// `missing_number` — Number was not provided
2081    MissingNumber,
2082    /// `missing_numbers` — You must enter at least one valid phone number.
2083    MissingNumbers,
2084    /// `missing_package` — Package was not provided
2085    MissingPackage,
2086    /// `missing_params` — Required parameters were not provided
2087    MissingParams,
2088    /// `missing_password` — Password was not provided
2089    MissingPassword,
2090    /// `missing_password_confirm` — Password Confirm was not provided
2091    MissingPasswordConfirm,
2092    /// `missing_payment` — Payment was not provided.
2093    MissingPayment,
2094    /// `missing_phonebook` — Phonebook was not provided
2095    MissingPhonebook,
2096    /// `missing_phonenumber` — Phone Number was not provided
2097    MissingPhonenumber,
2098    /// `missing_pin` — PIN was not provided
2099    MissingPIN,
2100    /// `missing_playinstructions` — PlayInstructions was not provided
2101    MissingPlayinstructions,
2102    /// `missing_pop_restriction` — POP Restriction was not provided
2103    MissingPOPRestriction,
2104    /// `missing_priority` — Priority was not provided
2105    MissingPriority,
2106    /// `missing_priority_weight` — Priority/Weight was not provided
2107    MissingPriorityWeight,
2108    /// `missing_protocol` — Protocol was not provided
2109    MissingProtocol,
2110    /// `missing_province` — Province was not provided
2111    MissingProvince,
2112    /// `missing_query` — Query was not provided
2113    MissingQuery,
2114    /// `missing_recording` — Recording was not provided
2115    MissingRecording,
2116    /// `missing_report_hold_time_agent` — Report hold time agent was not provided
2117    MissingReportHoldTimeAgent,
2118    /// `missing_resellerclient` — Provide a Reseller Client or don't provide a Reseller Package
2119    MissingResellerclient,
2120    /// `missing_resellerpackage` — Provide a Reseller Package or don't provide a Reseller Client
2121    MissingResellerpackage,
2122    /// `missing_response_timeout` — ResponseTimeOut was not provided
2123    MissingResponseTimeout,
2124    /// `missing_ringgroup` — Ring group was not provided
2125    MissingRinggroup,
2126    /// `missing_ring_inuse` — Ring in use was not provided
2127    MissingRingInuse,
2128    /// `missing_ring_strategy` — Ring strategy was not provided
2129    MissingRingStrategy,
2130    /// `missing_route` — Route was not provided
2131    MissingRoute,
2132    /// `missing_routing` — Routing was not provided
2133    MissingRouting,
2134    /// `missing_saycallerid` — SayCallerID was not provided
2135    MissingSaycallerid,
2136    /// `missing_saytime` — SayTime was not provided
2137    MissingSaytime,
2138    /// `missing_serverpop` — Server POP was not provided
2139    MissingServerpop,
2140    /// `missing_setup` — Setup Fee was not provided
2141    MissingSetup,
2142    /// `missing_sipuri` — SIPURI was not provided
2143    MissingSIPURI,
2144    /// `missing_skippassword` — SkipPassword was not provided
2145    MissingSkippassword,
2146    /// `missing_sms` — SMS was not provided
2147    MissingSMS,
2148    /// `missing_speed_dial` — Speed Dial was not provided
2149    MissingSpeedDial,
2150    /// `missing_start` — Start date was not provided
2151    MissingStart,
2152    /// `missing_starthour` — Start Hour was not provided
2153    MissingStarthour,
2154    /// `missing_startminute` — Start Minute was not provided
2155    MissingStartminute,
2156    /// `missing_state` — State was not provided
2157    MissingState,
2158    /// `missing_street_name` — Street Name was not provided
2159    MissingStreetName,
2160    /// `missing_street_number` — Street Number was not provided
2161    MissingStreetNumber,
2162    /// `missing_thankyou_for_your_patience` — Thankyou for your patience was not provided
2163    MissingThankyouForYourPatience,
2164    /// `missing_timecondition` — Time Condition was not provided
2165    MissingTimecondition,
2166    /// `missing_timeout` — Timeout was not provided
2167    MissingTimeout,
2168    /// `missing_timezone` — Timezone was not provided
2169    MissingTimezone,
2170    /// `missing_to_date` — To date was not provided
2171    MissingToDate,
2172    /// `missing_transcription_email` — Transcription email is required.
2173    MissingTranscriptionEmail,
2174    /// `missing_transcription_locale` — Transcription locale is required.
2175    MissingTranscriptionLocale,
2176    /// `missing_type` — Type was not provided
2177    MissingType,
2178    /// `missing_urgent` — Urgent code was not provided
2179    MissingUrgent,
2180    /// `missing_uri` — URI was not provided
2181    MissingURI,
2182    /// `missing_username` — Username was not provided
2183    MissingUsername,
2184    /// `missing_voicemailsetup` — Voice mail setup was not provided
2185    MissingVoicemailsetup,
2186    /// `missing_weekdayend` — Week End was not provide
2187    MissingWeekdayend,
2188    /// `missing_weekdaystart` — Week Start was not provided
2189    MissingWeekdaystart,
2190    /// `missing_zip` — Zip Code was not provided
2191    MissingZip,
2192    /// `moving_fail` — The Fax Message was not moved
2193    MovingFail,
2194    /// `name_toolong` — The name exceeds character size limit
2195    NameToolong,
2196    /// `non_sufficient_funds` — Your account does not have sufficient funds to proceed
2197    NonSufficientFunds,
2198    /// `note_toolong` — The note exceeds character size limit
2199    NoteToolong,
2200    /// `no_account` — There are no accounts
2201    NoAccount,
2202    /// `no_attachments` — Theres no attachments records to show.
2203    NoAttachments,
2204    /// `no_base64file` — File not encoded in base64
2205    NoBase64file,
2206    /// `no_callback` — There are not Callbacks
2207    NoCallback,
2208    /// `no_callhunting` — There are no Call Huntings
2209    NoCallhunting,
2210    /// `no_callparking` — There are no Call Parking
2211    NoCallparking,
2212    /// `no_callstatus` — No Call Status was provided. One of the following parameters needs to be set to "1": answered, noanswer, busy, failed
2213    NoCallstatus,
2214    /// `no_cdr` — There are no CDR entries for the filter
2215    NoCDR,
2216    /// `no_change_billingtype` — Imposible change DID billing plan
2217    NoChangeBillingtype,
2218    /// `no_client` — There are no Clients
2219    NoClient,
2220    /// `no_conference` — There are no Conferences
2221    NoConference,
2222    /// `no_did` — There are no DIDs
2223    NoDID,
2224    /// `no_disa` — There are no DISAs
2225    NoDISA,
2226    /// `no_emailtofax` — There are no Email to Fax entries
2227    NoEmailtofax,
2228    /// `no_filter` — There are no Filters
2229    NoFilter,
2230    /// `no_folder` — There are no Fax Folders
2231    NoFolder,
2232    /// `no_forwarding` — There was no Forwarding
2233    NoForwarding,
2234    /// `no_ivr` — There are no ivr
2235    NoIVR,
2236    /// `no_mailbox` — There are no Mailboxes
2237    NoMailbox,
2238    /// `no_member` — There are no Static Members
2239    NoMember,
2240    /// `no_message` — There are no Fax Message(s)
2241    NoMessage,
2242    /// `no_messages` — There are no Voicemail Message(s)
2243    NoMessages,
2244    /// `no_numbers` — There are no Fax Numbers
2245    NoNumbers,
2246    /// `no_package` — there are no Packages
2247    NoPackage,
2248    /// `no_phonebook` — There are no Phonebook entries
2249    NoPhonebook,
2250    /// `no_phonebook_group` — There are no Phonebook Groups
2251    NoPhonebookGroup,
2252    /// `no_provision` — E911 service wasn't activated, this response comes with a description of the error.
2253    NoProvision,
2254    /// `no_provision_update` — E911 service wasn't updated, this response comes with a description of the error.
2255    NoProvisionUpdate,
2256    /// `no_queue` — There are no Queue entries
2257    NoQueue,
2258    /// `no_rate` — There are no Rates
2259    NoRate,
2260    /// `no_recording` — There are no recordings
2261    NoRecording,
2262    /// `no_ringgroup` — There are no Ring groups
2263    NoRinggroup,
2264    /// `no_sequences` — No sequence has been found
2265    NoSequences,
2266    /// `no_sipuri` — There are no SIP URIs
2267    NoSIPURI,
2268    /// `no_sms` — There are no SMS messages
2269    NoSMS,
2270    /// `no_timecondition` — There are no Time Conditions
2271    NoTimecondition,
2272    /// `no_transactions` — There are no transactions
2273    NoTransactions,
2274    /// `no_vpri` — There are no vPRIs
2275    NoVPRI,
2276    /// `order_failed` — The order wasn't completed.
2277    OrderFailed,
2278    /// `problem_sending_mail` — There was a problem sending an email.
2279    ProblemSendingMail,
2280    /// `provider_outofservice` — One of our providers is out of service
2281    ProviderOutofservice,
2282    /// `recording_in_use_caller_id_filtering` — You have a Caller ID Filtering using this Recording
2283    RecordingInUseCallerIDFiltering,
2284    /// `recording_in_use_caller_timecondition` — You have a Time Condition using this Recording
2285    RecordingInUseCallerTimecondition,
2286    /// `recording_in_use_did` — You have a DID using this Recording
2287    RecordingInUseDID,
2288    /// `recording_in_use_ivr` — You have an IVR using this Recording
2289    RecordingInUseIVR,
2290    /// `recording_in_use_queue` — You have a Calling Queue using this Recording
2291    RecordingInUseQueue,
2292    /// `repeated_ip` — You already have a Subaccount using this IP and Protocol
2293    RepeatedIP,
2294    /// `reserved_ip` — This is a reserved IP used by VoIP.ms or other Companies
2295    ReservedIP,
2296    /// `rtp_timeout_greater_than_rtp_hold_timeout` — RTP Time Out can't be greater than RTP Hold Time Out
2297    RTPTimeoutGreaterThanRTPHoldTimeout,
2298    /// `same_did_billingtype` — The Billing Type provided and DID billing type are the same
2299    SameDIDBillingtype,
2300    /// `sent_fail` — The Fax Message it wasn't send.
2301    SentFail,
2302    /// `sipuri_in_phonebook` — This SIPURI can't be deleted, it is mapped in the phonebook
2303    SIPURIInPhonebook,
2304    /// `sms_apply_regulations` — The number was not updated due to SMS regulations, please contact customer service for more information
2305    SMSApplyRegulations,
2306    /// `sms_failed` — The SMS message was not sent
2307    SMSFailed,
2308    /// `sms_toolong` — The SMS message exceeds 160 characters
2309    SMSToolong,
2310    /// `sms_wait_message` — SMS was not (Enabled/Disabled) for this DID, please wait a minute before you try again.
2311    SMSWaitMessage,
2312    /// `tls_error` — Theres was a TLS error, please try later.
2313    TlsError,
2314    /// `Unable_to_purchase` — Unable to purchase DIDs
2315    UnableToPurchase,
2316    /// `unavailable_info` — The information you requested is unavailable at this moment
2317    UnavailableInfo,
2318    /// `unsifficient_stock` — Theres no sufficient stock to complete the order.
2319    UnsifficientStock,
2320    /// `used_description` — You already have a record with this Description
2321    UsedDescription,
2322    /// `used_email` — You already have an entry with this Email
2323    UsedEmail,
2324    /// `used_extension` — You already have a subaccount using this extension
2325    UsedExtension,
2326    /// `used_extension_in_location` — You already have a subaccount using extension in this location
2327    UsedExtensionInLocation,
2328    /// `used_filter` — You already have a record with this Filter
2329    UsedFilter,
2330    /// `used_ip` — There is already another customer using this IP Address
2331    UsedIP,
2332    /// `used_name` — You already have an entry using this name
2333    UsedName,
2334    /// `used_number` — You already have a record with this Number
2335    UsedNumber,
2336    /// `used_password` — This password has been used previously by this account.
2337    UsedPassword,
2338    /// `used_speed_dial` — You have an entry with this Speed Dial
2339    UsedSpeedDial,
2340    /// `used_username` — You already have a subaccount using this Username.
2341    UsedUsername,
2342    /// `weak_password` — This Password is too weak or too common
2343    WeakPassword,
2344    /// A `status` value not present in the documented table,
2345    /// preserved verbatim.
2346    Unknown(String),
2347}
2348
2349impl ApiStatus {
2350    /// The verbatim wire `status` string.
2351    pub fn as_str(&self) -> &str {
2352        match self {
2353            ApiStatus::AccountWithDIDs => "account_with_dids",
2354            ApiStatus::APILimitExceeded => "api_limit_exceeded",
2355            ApiStatus::APINotEnabled => "api_not_enabled",
2356            ApiStatus::CancelFailed => "cancel_failed",
2357            ApiStatus::CANHaveOnlyOneProfileWithoutPIN => "can_have_only_one_profile_without_pin",
2358            ApiStatus::ConferenceMemberRelationNotFound => "conference_member_relation_not_found",
2359            ApiStatus::DIDInUse => "did_in_use",
2360            ApiStatus::DIDLimitReached => "did_limit_reached",
2361            ApiStatus::DuplicatedName => "duplicated_name",
2362            ApiStatus::DuplicatedPIN => "duplicated_pin",
2363            ApiStatus::E911Disabled => "e911_disabled",
2364            ApiStatus::E911Pending => "e911_pending",
2365            ApiStatus::ErrorDeletingMsg => "error_deleting_msg",
2366            ApiStatus::ErrorMovingMsg => "error_moving_msg",
2367            ApiStatus::ExceedsFileSize => "exceeds_file_size",
2368            ApiStatus::ExistingDID => "existing_did",
2369            ApiStatus::ForwardsExceeded => "forwards_exceeded",
2370            ApiStatus::InvalidAccount => "invalid_account",
2371            ApiStatus::InvalidAddress => "invalid_address",
2372            ApiStatus::InvalidAdmin => "invalid_admin",
2373            ApiStatus::InvalidAgentRingTimeout => "invalid_agent_ring_timeout",
2374            ApiStatus::InvalidAllowedcodecs => "invalid_allowedcodecs",
2375            ApiStatus::InvalidAnnounceJoinLeave => "invalid_announce_join_leave",
2376            ApiStatus::InvalidAnnounceOnlyUser => "invalid_announce_only_user",
2377            ApiStatus::InvalidAnnouncePositionFrequency => "invalid_announce_position_frequency",
2378            ApiStatus::InvalidAnnounceRoundSeconds => "invalid_announce_round_seconds",
2379            ApiStatus::InvalidAnnounceUserCount => "invalid_announce_user_count",
2380            ApiStatus::InvalidAreaCode => "invalid_area_code",
2381            ApiStatus::InvalidAttachid => "invalid_attachid",
2382            ApiStatus::InvalidAttachmessage => "invalid_attachmessage",
2383            ApiStatus::InvalidAttachFile => "invalid_attach_file",
2384            ApiStatus::InvalidAuthtype => "invalid_authtype",
2385            ApiStatus::InvalidAuthtypeH323 => "invalid_authtype_h323",
2386            ApiStatus::InvalidAuthtypeIax2 => "invalid_authtype_iax2",
2387            ApiStatus::InvalidBalancemanagement => "invalid_balancemanagement",
2388            ApiStatus::InvalidBaseRecording => "invalid_base_recording",
2389            ApiStatus::InvalidBillingtype => "invalid_billingtype",
2390            ApiStatus::InvalidCallback => "invalid_callback",
2391            ApiStatus::InvalidCallbackEnable => "invalid_callback_enable",
2392            ApiStatus::InvalidCallbackRetry => "invalid_callback_retry",
2393            ApiStatus::InvalidCallerid => "invalid_callerid",
2394            ApiStatus::InvalidCalleridprefix => "invalid_calleridprefix",
2395            ApiStatus::InvalidCalleridOverride => "invalid_callerid_override",
2396            ApiStatus::InvalidCallhunting => "invalid_callhunting",
2397            ApiStatus::InvalidCallparking => "invalid_callparking",
2398            ApiStatus::InvalidCallrecording => "invalid_callrecording",
2399            ApiStatus::InvalidCallType => "invalid_call_type",
2400            ApiStatus::InvalidCanadaRouting => "invalid_canada_routing",
2401            ApiStatus::InvalidCarrier => "invalid_carrier",
2402            ApiStatus::InvalidCharge => "invalid_charge",
2403            ApiStatus::InvalidCity => "invalid_city",
2404            ApiStatus::InvalidClient => "invalid_client",
2405            ApiStatus::InvalidCNAM => "invalid_cnam",
2406            ApiStatus::InvalidCodec => "invalid_codec",
2407            ApiStatus::InvalidConference => "invalid_conference",
2408            ApiStatus::InvalidContact => "invalid_contact",
2409            ApiStatus::InvalidCountry => "invalid_country",
2410            ApiStatus::InvalidCountryid => "invalid_countryid",
2411            ApiStatus::InvalidCredentials => "invalid_credentials",
2412            ApiStatus::InvalidDate => "invalid_date",
2413            ApiStatus::InvalidDaterange => "invalid_daterange",
2414            ApiStatus::InvalidDatetime => "invalid_datetime",
2415            ApiStatus::InvalidDateFrom => "invalid_date_from",
2416            ApiStatus::InvalidDayrange => "invalid_dayrange",
2417            ApiStatus::InvalidDelayBefore => "invalid_delay_before",
2418            ApiStatus::InvalidDeletemessage => "invalid_deletemessage",
2419            ApiStatus::InvalidDescription => "invalid_description",
2420            ApiStatus::InvalidDestination => "invalid_destination",
2421            ApiStatus::InvalidDestinationFolder => "invalid_destination_folder",
2422            ApiStatus::InvalidDevicetype => "invalid_devicetype",
2423            ApiStatus::InvalidDialtime => "invalid_dialtime",
2424            ApiStatus::InvalidDID => "invalid_did",
2425            ApiStatus::InvalidDigits => "invalid_digits",
2426            ApiStatus::InvalidDigitTimeout => "invalid_digit_timeout",
2427            ApiStatus::InvalidDISA => "invalid_disa",
2428            ApiStatus::InvalidDiversionHeader => "invalid_diversion_header",
2429            ApiStatus::InvalidDropSilence => "invalid_drop_silence",
2430            ApiStatus::InvalidDST => "invalid_dst",
2431            ApiStatus::InvalidDtmfmode => "invalid_dtmfmode",
2432            ApiStatus::InvalidDTMFDigits => "invalid_dtmf_digits",
2433            ApiStatus::InvalidEmail => "invalid_email",
2434            ApiStatus::InvalidEmailAttachmentFormat => "invalid_email_attachment_format",
2435            ApiStatus::InvalidEmailEnable => "invalid_email_enable",
2436            ApiStatus::InvalidEnableIPRestriction => "invalid_enable_ip_restriction",
2437            ApiStatus::InvalidEnablePOPRestriction => "invalid_enable_pop_restriction",
2438            ApiStatus::InvalidEndhour => "invalid_endhour",
2439            ApiStatus::InvalidEndminute => "invalid_endminute",
2440            ApiStatus::InvalidExtension => "invalid_extension",
2441            ApiStatus::InvalidExtensions => "invalid_extensions",
2442            ApiStatus::InvalidExtensionLength => "invalid_extension_length",
2443            ApiStatus::InvalidExtensionPrefix => "invalid_extension_prefix",
2444            ApiStatus::InvalidFailoverHeader => "invalid_failover_header",
2445            ApiStatus::InvalidFAXID => "invalid_fax_id",
2446            ApiStatus::InvalidFile => "invalid_file",
2447            ApiStatus::InvalidFilter => "invalid_filter",
2448            ApiStatus::InvalidFirstname => "invalid_firstname",
2449            ApiStatus::InvalidFocEnddate => "invalid_foc_enddate",
2450            ApiStatus::InvalidFocStartdate => "invalid_foc_startdate",
2451            ApiStatus::InvalidFolder => "invalid_folder",
2452            ApiStatus::InvalidFolderID => "invalid_folder_id",
2453            ApiStatus::InvalidForwarding => "invalid_forwarding",
2454            ApiStatus::InvalidForwardingDID => "invalid_forwarding_did",
2455            ApiStatus::InvalidForwardEnable => "invalid_forward_enable",
2456            ApiStatus::InvalidFrequencyAnnouncement => "invalid_frequency_announcement",
2457            ApiStatus::InvalidFromNumber => "invalid_from_number",
2458            ApiStatus::InvalidFullname => "invalid_fullname",
2459            ApiStatus::InvalidID => "invalid_id",
2460            ApiStatus::InvalidIfAnnouncePositionEnabledReportE => {
2461                "invalid_if_announce_position_enabled_report_e"
2462            }
2463            ApiStatus::InvalidInternaldialtime => "invalid_internaldialtime",
2464            ApiStatus::InvalidInternalvoicemail => "invalid_internalvoicemail",
2465            ApiStatus::InvalidInternationalroute => "invalid_internationalroute",
2466            ApiStatus::InvalidInvoiceType => "invalid_invoice_type",
2467            ApiStatus::InvalidIP => "invalid_ip",
2468            ApiStatus::InvalidIPAuth => "invalid_ip_auth",
2469            ApiStatus::InvalidIPIax2 => "invalid_ip_iax2",
2470            ApiStatus::InvalidIVR => "invalid_ivr",
2471            ApiStatus::InvalidJitterBuffer => "invalid_jitter_buffer",
2472            ApiStatus::InvalidJoinAnnouncement => "invalid_join_announcement",
2473            ApiStatus::InvalidJoinEmptyType => "invalid_join_empty_type",
2474            ApiStatus::InvalidLanguage => "invalid_language",
2475            ApiStatus::InvalidLastname => "invalid_lastname",
2476            ApiStatus::InvalidListened => "invalid_listened",
2477            ApiStatus::InvalidLocation => "invalid_location",
2478            ApiStatus::InvalidLockinternational => "invalid_lockinternational",
2479            ApiStatus::InvalidMailbox => "invalid_mailbox",
2480            ApiStatus::InvalidMaximumCallers => "invalid_maximum_callers",
2481            ApiStatus::InvalidMaximumWaitTime => "invalid_maximum_wait_time",
2482            ApiStatus::InvalidMaxExpiry => "invalid_max_expiry",
2483            ApiStatus::InvalidMember => "invalid_member",
2484            ApiStatus::InvalidMemberDelay => "invalid_member_delay",
2485            ApiStatus::InvalidMessageNum => "invalid_message_num",
2486            ApiStatus::InvalidMethod => "invalid_method",
2487            ApiStatus::InvalidMinute => "invalid_minute",
2488            ApiStatus::InvalidMixedNumbers => "invalid_mixed_numbers",
2489            ApiStatus::InvalidMonthly => "invalid_monthly",
2490            ApiStatus::InvalidMusiconhold => "invalid_musiconhold",
2491            ApiStatus::InvalidName => "invalid_name",
2492            ApiStatus::InvalidNAT => "invalid_nat",
2493            ApiStatus::InvalidNote => "invalid_note",
2494            ApiStatus::InvalidNumber => "invalid_number",
2495            ApiStatus::InvalidNumbermembers => "invalid_numbermembers",
2496            ApiStatus::InvalidNumberCanadian => "invalid_number_canadian",
2497            ApiStatus::InvalidNumberExist => "invalid_number_exist",
2498            ApiStatus::InvalidNumberFAX => "invalid_number_fax",
2499            ApiStatus::InvalidNumberPorttype => "invalid_number_porttype",
2500            ApiStatus::InvalidNumberUS => "invalid_number_us",
2501            ApiStatus::InvalidOrder => "invalid_order",
2502            ApiStatus::InvalidPackage => "invalid_package",
2503            ApiStatus::InvalidPassword => "invalid_password",
2504            ApiStatus::InvalidPasswordAuth => "invalid_password_auth",
2505            ApiStatus::InvalidPasswordIlegalCharacters => "invalid_password_ilegal_characters",
2506            ApiStatus::InvalidPasswordLessthan8charactersLong => {
2507                "invalid_password_lessthan_8characters_long"
2508            }
2509            ApiStatus::InvalidPasswordMissingLowercase => "invalid_password_missing_lowercase",
2510            ApiStatus::InvalidPasswordMissingNumber => "invalid_password_missing_number",
2511            ApiStatus::InvalidPasswordMissingUppercase => "invalid_password_missing_uppercase",
2512            ApiStatus::InvalidPause => "invalid_pause",
2513            ApiStatus::InvalidPayment => "invalid_payment",
2514            ApiStatus::InvalidPhonebook => "invalid_phonebook",
2515            ApiStatus::InvalidPhonenumber => "invalid_phonenumber",
2516            ApiStatus::InvalidPIN => "invalid_pin",
2517            ApiStatus::InvalidPINNumber => "invalid_pin_number",
2518            ApiStatus::InvalidPlayinstructions => "invalid_playinstructions",
2519            ApiStatus::InvalidPOPRestriction => "invalid_pop_restriction",
2520            ApiStatus::InvalidPortingid => "invalid_portingid",
2521            ApiStatus::InvalidPorttype => "invalid_porttype",
2522            ApiStatus::InvalidPortStatus => "invalid_port_status",
2523            ApiStatus::InvalidPriority => "invalid_priority",
2524            ApiStatus::InvalidPriorityWeight => "invalid_priority_weight",
2525            ApiStatus::InvalidProtocol => "invalid_protocol",
2526            ApiStatus::InvalidProviderAccount => "invalid_provider_account",
2527            ApiStatus::InvalidProviderName => "invalid_provider_name",
2528            ApiStatus::InvalidProvince => "invalid_province",
2529            ApiStatus::InvalidQuantity => "invalid_quantity",
2530            ApiStatus::InvalidQuery => "invalid_query",
2531            ApiStatus::InvalidQueue => "invalid_queue",
2532            ApiStatus::InvalidQuiet => "invalid_quiet",
2533            ApiStatus::InvalidRecording => "invalid_recording",
2534            ApiStatus::InvalidRecordingSoundErrorMenu => "invalid_recording_sound_error_menu",
2535            ApiStatus::InvalidRecordingSoundGetPIN => "invalid_recording_sound_get_pin",
2536            ApiStatus::InvalidRecordingSoundHasJoined => "invalid_recording_sound_has_joined",
2537            ApiStatus::InvalidRecordingSoundHasLeft => "invalid_recording_sound_has_left",
2538            ApiStatus::InvalidRecordingSoundInvalidPIN => "invalid_recording_sound_invalid_pin",
2539            ApiStatus::InvalidRecordingSoundJoin => "invalid_recording_sound_join",
2540            ApiStatus::InvalidRecordingSoundKicked => "invalid_recording_sound_kicked",
2541            ApiStatus::InvalidRecordingSoundLeave => "invalid_recording_sound_leave",
2542            ApiStatus::InvalidRecordingSoundLocked => "invalid_recording_sound_locked",
2543            ApiStatus::InvalidRecordingSoundLockedNow => "invalid_recording_sound_locked_now",
2544            ApiStatus::InvalidRecordingSoundMuted => "invalid_recording_sound_muted",
2545            ApiStatus::InvalidRecordingSoundOnlyOne => "invalid_recording_sound_only_one",
2546            ApiStatus::InvalidRecordingSoundOnlyPerson => "invalid_recording_sound_only_person",
2547            ApiStatus::InvalidRecordingSoundOtherInParty => {
2548                "invalid_recording_sound_other_in_party"
2549            }
2550            ApiStatus::InvalidRecordingSoundParticipantsMuted => {
2551                "invalid_recording_sound_participants_muted"
2552            }
2553            ApiStatus::InvalidRecordingSoundParticipantsUnmuted => {
2554                "invalid_recording_sound_participants_unmuted"
2555            }
2556            ApiStatus::InvalidRecordingSoundPlaceIntoConference => {
2557                "invalid_recording_sound_place_into_conference"
2558            }
2559            ApiStatus::InvalidRecordingSoundThereAre => "invalid_recording_sound_there_are",
2560            ApiStatus::InvalidRecordingSoundUnlockedNow => "invalid_recording_sound_unlocked_now",
2561            ApiStatus::InvalidRecordingSoundUnmuted => "invalid_recording_sound_unmuted",
2562            ApiStatus::InvalidRecordCalls => "invalid_record_calls",
2563            ApiStatus::InvalidReportHoldTimeAgent => "invalid_report_hold_time_agent",
2564            ApiStatus::InvalidResellerclient => "invalid_resellerclient",
2565            ApiStatus::InvalidResellernextbilling => "invalid_resellernextbilling",
2566            ApiStatus::InvalidResellerpackage => "invalid_resellerpackage",
2567            ApiStatus::InvalidResponseTimeout => "invalid_response_timeout",
2568            ApiStatus::InvalidRetryTimer => "invalid_retry_timer",
2569            ApiStatus::InvalidRinggroup => "invalid_ringgroup",
2570            ApiStatus::InvalidRingInuse => "invalid_ring_inuse",
2571            ApiStatus::InvalidRoute => "invalid_route",
2572            ApiStatus::InvalidRoutingHeader => "invalid_routing_header",
2573            ApiStatus::InvalidRTPHoldTimeout => "invalid_rtp_hold_timeout",
2574            ApiStatus::InvalidRTPTimeout => "invalid_rtp_timeout",
2575            ApiStatus::InvalidSaycallerid => "invalid_saycallerid",
2576            ApiStatus::InvalidSaytime => "invalid_saytime",
2577            ApiStatus::InvalidSecurityCode => "invalid_security_code",
2578            ApiStatus::InvalidServerpop => "invalid_serverpop",
2579            ApiStatus::InvalidSetup => "invalid_setup",
2580            ApiStatus::InvalidSilenceThreshold => "invalid_silence_threshold",
2581            ApiStatus::InvalidSIPURI => "invalid_sipuri",
2582            ApiStatus::InvalidSIPTraffic => "invalid_sip_traffic",
2583            ApiStatus::InvalidSkippassword => "invalid_skippassword",
2584            ApiStatus::InvalidSmppPassword => "invalid_smpp_password",
2585            ApiStatus::InvalidSmppURL => "invalid_smpp_url",
2586            ApiStatus::InvalidSmppUsername => "invalid_smpp_username",
2587            ApiStatus::InvalidSMS => "invalid_sms",
2588            ApiStatus::InvalidSMSForward => "invalid_sms_forward",
2589            ApiStatus::InvalidSnn => "invalid_snn",
2590            ApiStatus::InvalidSpeedDial => "invalid_speed_dial",
2591            ApiStatus::InvalidStarthour => "invalid_starthour",
2592            ApiStatus::InvalidStartminute => "invalid_startminute",
2593            ApiStatus::InvalidStartMuted => "invalid_start_muted",
2594            ApiStatus::InvalidState => "invalid_state",
2595            ApiStatus::InvalidStatementName => "invalid_statement_name",
2596            ApiStatus::InvalidStrategy => "invalid_strategy",
2597            ApiStatus::InvalidStreetName => "invalid_street_name",
2598            ApiStatus::InvalidStreetNumber => "invalid_street_number",
2599            ApiStatus::InvalidTalkingThreshold => "invalid_talking_threshold",
2600            ApiStatus::InvalidTalkDetection => "invalid_talk_detection",
2601            ApiStatus::InvalidTfnumberPorttype => "invalid_tfnumber_porttype",
2602            ApiStatus::InvalidThankyouForYourPatience => "invalid_thankyou_for_your_patience",
2603            ApiStatus::InvalidThreshold => "Invalid_threshold",
2604            ApiStatus::InvalidTimecondition => "invalid_timecondition",
2605            ApiStatus::InvalidTimeout => "invalid_timeout",
2606            ApiStatus::InvalidTimerange => "invalid_timerange",
2607            ApiStatus::InvalidTimezone => "invalid_timezone",
2608            ApiStatus::InvalidToNumber => "invalid_to_number",
2609            ApiStatus::InvalidTranscriptionEmail => "invalid_transcription_email",
2610            ApiStatus::InvalidTranscriptionFormat => "invalid_transcription_format",
2611            ApiStatus::InvalidTranscriptionLocale => "invalid_transcription_locale",
2612            ApiStatus::InvalidTranscriptionRedaction => "invalid_transcription_redaction",
2613            ApiStatus::InvalidTranscriptionSentiment => "invalid_transcription_sentiment",
2614            ApiStatus::InvalidTranscriptionSummary => "invalid_transcription_summary",
2615            ApiStatus::InvalidType => "invalid_type",
2616            ApiStatus::InvalidUrgent => "invalid_urgent",
2617            ApiStatus::InvalidUsername => "invalid_username",
2618            ApiStatus::InvalidVoicemailsetup => "invalid_voicemailsetup",
2619            ApiStatus::InvalidVoiceAnnouncement => "invalid_voice_announcement",
2620            ApiStatus::InvalidWeekdayend => "invalid_weekdayend",
2621            ApiStatus::InvalidWeekdaystart => "invalid_weekdaystart",
2622            ApiStatus::InvalidWrapupTime => "invalid_wrapup_time",
2623            ApiStatus::InvalidZip => "invalid_zip",
2624            ApiStatus::IPNotEnabled => "ip_not_enabled",
2625            ApiStatus::LimitReached => "limit_reached",
2626            ApiStatus::LocationAlreadyExists => "location_already_exists",
2627            ApiStatus::LocationLinkedToSubaccount => "location_linked_to_subaccount",
2628            ApiStatus::LocationNotFound => "location_not_found",
2629            ApiStatus::MaxPhonebook => "max_phonebook",
2630            ApiStatus::MembersExceeded => "members_exceeded",
2631            ApiStatus::MemberAlreadyIncluded => "member_already_included",
2632            ApiStatus::MessageEmpty => "message_empty",
2633            ApiStatus::MessageNotFound => "message_not_found",
2634            ApiStatus::MethodMaintenance => "method_maintenance",
2635            ApiStatus::MismatchEmailConfirm => "mismatch_email_confirm",
2636            ApiStatus::MismatchPasswordConfirm => "mismatch_password_confirm",
2637            ApiStatus::MissingAccount => "missing_account",
2638            ApiStatus::MissingAddress => "missing_address",
2639            ApiStatus::MissingAgentRingTimeout => "missing_agent_ring_timeout",
2640            ApiStatus::MissingAllowedcodecs => "missing_allowedcodecs",
2641            ApiStatus::MissingAttachmessage => "missing_attachmessage",
2642            ApiStatus::MissingAuthtype => "missing_authtype",
2643            ApiStatus::MissingBalancemanagement => "missing_balancemanagement",
2644            ApiStatus::MissingBillingtype => "missing_billingtype",
2645            ApiStatus::MissingCallback => "missing_callback",
2646            ApiStatus::MissingCallerid => "missing_callerid",
2647            ApiStatus::MissingCallhunting => "missing_callhunting",
2648            ApiStatus::MissingCallparking => "missing_callparking",
2649            ApiStatus::MissingCallrecording => "missing_callrecording",
2650            ApiStatus::MissingCarrier => "missing_carrier",
2651            ApiStatus::MissingCharge => "missing_charge",
2652            ApiStatus::MissingChoices => "missing_choices",
2653            ApiStatus::MissingCity => "missing_city",
2654            ApiStatus::MissingClient => "missing_client",
2655            ApiStatus::MissingCNAM => "missing_cnam",
2656            ApiStatus::MissingCodec => "missing_codec",
2657            ApiStatus::MissingConference => "missing_conference",
2658            ApiStatus::MissingCountry => "missing_country",
2659            ApiStatus::MissingCountryid => "missing_countryid",
2660            ApiStatus::MissingCredentials => "missing_credentials",
2661            ApiStatus::MissingDatetime => "missing_datetime",
2662            ApiStatus::MissingDelayBefore => "missing_delay_before",
2663            ApiStatus::MissingDeletemessage => "missing_deletemessage",
2664            ApiStatus::MissingDescription => "missing_description",
2665            ApiStatus::MissingDevicetype => "missing_devicetype",
2666            ApiStatus::MissingDialtime => "missing_dialtime",
2667            ApiStatus::MissingDID => "missing_did",
2668            ApiStatus::MissingDigits => "missing_digits",
2669            ApiStatus::MissingDigitTimeout => "missing_digit_timeout",
2670            ApiStatus::MissingDISA => "missing_disa",
2671            ApiStatus::MissingDtmfmode => "missing_dtmfmode",
2672            ApiStatus::MissingEmail => "missing_email",
2673            ApiStatus::MissingEmailConfirm => "missing_email_confirm",
2674            ApiStatus::MissingEnable => "missing_enable",
2675            ApiStatus::MissingEndhour => "missing_endhour",
2676            ApiStatus::MissingEndminute => "missing_endminute",
2677            ApiStatus::MissingFailoverBusy => "missing_failover_busy",
2678            ApiStatus::MissingFailoverNoanswer => "missing_failover_noanswer",
2679            ApiStatus::MissingFailoverUnreachable => "missing_failover_unreachable",
2680            ApiStatus::MissingFile => "missing_file",
2681            ApiStatus::MissingFilter => "missing_filter",
2682            ApiStatus::MissingFirstname => "missing_firstname",
2683            ApiStatus::MissingFolder => "missing_folder",
2684            ApiStatus::MissingForwarding => "missing_forwarding",
2685            ApiStatus::MissingFromDate => "missing_from_date",
2686            ApiStatus::MissingFullname => "missing_fullname",
2687            ApiStatus::MissingID => "missing_id",
2688            ApiStatus::MissingIfAnnouncePositionEnabledReportE => {
2689                "missing_if_announce_position_enabled_report_e"
2690            }
2691            ApiStatus::MissingInternationalroute => "missing_internationalroute",
2692            ApiStatus::MissingIP => "missing_ip",
2693            ApiStatus::MissingIPH323 => "missing_ip_h323",
2694            ApiStatus::MissingIPRestriction => "missing_ip_restriction",
2695            ApiStatus::MissingIVR => "missing_ivr",
2696            ApiStatus::MissingJoinWhenEmpty => "missing_join_when_empty",
2697            ApiStatus::MissingLanguage => "missing_language",
2698            ApiStatus::MissingLastname => "missing_lastname",
2699            ApiStatus::MissingLeaveWhenEmpty => "missing_leave_when_empty",
2700            ApiStatus::MissingLength => "missing_length",
2701            ApiStatus::MissingListened => "missing_listened",
2702            ApiStatus::MissingLocation => "missing_location",
2703            ApiStatus::MissingLocationName => "missing_location_name",
2704            ApiStatus::MissingLockinternational => "missing_lockinternational",
2705            ApiStatus::MissingMailbox => "missing_mailbox",
2706            ApiStatus::MissingMember => "missing_member",
2707            ApiStatus::MissingMembers => "missing_members",
2708            ApiStatus::MissingMessageNum => "missing_message_num",
2709            ApiStatus::MissingMethod => "missing_method",
2710            ApiStatus::MissingMinute => "missing_minute",
2711            ApiStatus::MissingMonthly => "missing_monthly",
2712            ApiStatus::MissingMusiconhold => "missing_musiconhold",
2713            ApiStatus::MissingName => "missing_name",
2714            ApiStatus::MissingNAT => "missing_nat",
2715            ApiStatus::MissingNumber => "missing_number",
2716            ApiStatus::MissingNumbers => "missing_numbers",
2717            ApiStatus::MissingPackage => "missing_package",
2718            ApiStatus::MissingParams => "missing_params",
2719            ApiStatus::MissingPassword => "missing_password",
2720            ApiStatus::MissingPasswordConfirm => "missing_password_confirm",
2721            ApiStatus::MissingPayment => "missing_payment",
2722            ApiStatus::MissingPhonebook => "missing_phonebook",
2723            ApiStatus::MissingPhonenumber => "missing_phonenumber",
2724            ApiStatus::MissingPIN => "missing_pin",
2725            ApiStatus::MissingPlayinstructions => "missing_playinstructions",
2726            ApiStatus::MissingPOPRestriction => "missing_pop_restriction",
2727            ApiStatus::MissingPriority => "missing_priority",
2728            ApiStatus::MissingPriorityWeight => "missing_priority_weight",
2729            ApiStatus::MissingProtocol => "missing_protocol",
2730            ApiStatus::MissingProvince => "missing_province",
2731            ApiStatus::MissingQuery => "missing_query",
2732            ApiStatus::MissingRecording => "missing_recording",
2733            ApiStatus::MissingReportHoldTimeAgent => "missing_report_hold_time_agent",
2734            ApiStatus::MissingResellerclient => "missing_resellerclient",
2735            ApiStatus::MissingResellerpackage => "missing_resellerpackage",
2736            ApiStatus::MissingResponseTimeout => "missing_response_timeout",
2737            ApiStatus::MissingRinggroup => "missing_ringgroup",
2738            ApiStatus::MissingRingInuse => "missing_ring_inuse",
2739            ApiStatus::MissingRingStrategy => "missing_ring_strategy",
2740            ApiStatus::MissingRoute => "missing_route",
2741            ApiStatus::MissingRouting => "missing_routing",
2742            ApiStatus::MissingSaycallerid => "missing_saycallerid",
2743            ApiStatus::MissingSaytime => "missing_saytime",
2744            ApiStatus::MissingServerpop => "missing_serverpop",
2745            ApiStatus::MissingSetup => "missing_setup",
2746            ApiStatus::MissingSIPURI => "missing_sipuri",
2747            ApiStatus::MissingSkippassword => "missing_skippassword",
2748            ApiStatus::MissingSMS => "missing_sms",
2749            ApiStatus::MissingSpeedDial => "missing_speed_dial",
2750            ApiStatus::MissingStart => "missing_start",
2751            ApiStatus::MissingStarthour => "missing_starthour",
2752            ApiStatus::MissingStartminute => "missing_startminute",
2753            ApiStatus::MissingState => "missing_state",
2754            ApiStatus::MissingStreetName => "missing_street_name",
2755            ApiStatus::MissingStreetNumber => "missing_street_number",
2756            ApiStatus::MissingThankyouForYourPatience => "missing_thankyou_for_your_patience",
2757            ApiStatus::MissingTimecondition => "missing_timecondition",
2758            ApiStatus::MissingTimeout => "missing_timeout",
2759            ApiStatus::MissingTimezone => "missing_timezone",
2760            ApiStatus::MissingToDate => "missing_to_date",
2761            ApiStatus::MissingTranscriptionEmail => "missing_transcription_email",
2762            ApiStatus::MissingTranscriptionLocale => "missing_transcription_locale",
2763            ApiStatus::MissingType => "missing_type",
2764            ApiStatus::MissingUrgent => "missing_urgent",
2765            ApiStatus::MissingURI => "missing_uri",
2766            ApiStatus::MissingUsername => "missing_username",
2767            ApiStatus::MissingVoicemailsetup => "missing_voicemailsetup",
2768            ApiStatus::MissingWeekdayend => "missing_weekdayend",
2769            ApiStatus::MissingWeekdaystart => "missing_weekdaystart",
2770            ApiStatus::MissingZip => "missing_zip",
2771            ApiStatus::MovingFail => "moving_fail",
2772            ApiStatus::NameToolong => "name_toolong",
2773            ApiStatus::NonSufficientFunds => "non_sufficient_funds",
2774            ApiStatus::NoteToolong => "note_toolong",
2775            ApiStatus::NoAccount => "no_account",
2776            ApiStatus::NoAttachments => "no_attachments",
2777            ApiStatus::NoBase64file => "no_base64file",
2778            ApiStatus::NoCallback => "no_callback",
2779            ApiStatus::NoCallhunting => "no_callhunting",
2780            ApiStatus::NoCallparking => "no_callparking",
2781            ApiStatus::NoCallstatus => "no_callstatus",
2782            ApiStatus::NoCDR => "no_cdr",
2783            ApiStatus::NoChangeBillingtype => "no_change_billingtype",
2784            ApiStatus::NoClient => "no_client",
2785            ApiStatus::NoConference => "no_conference",
2786            ApiStatus::NoDID => "no_did",
2787            ApiStatus::NoDISA => "no_disa",
2788            ApiStatus::NoEmailtofax => "no_emailtofax",
2789            ApiStatus::NoFilter => "no_filter",
2790            ApiStatus::NoFolder => "no_folder",
2791            ApiStatus::NoForwarding => "no_forwarding",
2792            ApiStatus::NoIVR => "no_ivr",
2793            ApiStatus::NoMailbox => "no_mailbox",
2794            ApiStatus::NoMember => "no_member",
2795            ApiStatus::NoMessage => "no_message",
2796            ApiStatus::NoMessages => "no_messages",
2797            ApiStatus::NoNumbers => "no_numbers",
2798            ApiStatus::NoPackage => "no_package",
2799            ApiStatus::NoPhonebook => "no_phonebook",
2800            ApiStatus::NoPhonebookGroup => "no_phonebook_group",
2801            ApiStatus::NoProvision => "no_provision",
2802            ApiStatus::NoProvisionUpdate => "no_provision_update",
2803            ApiStatus::NoQueue => "no_queue",
2804            ApiStatus::NoRate => "no_rate",
2805            ApiStatus::NoRecording => "no_recording",
2806            ApiStatus::NoRinggroup => "no_ringgroup",
2807            ApiStatus::NoSequences => "no_sequences",
2808            ApiStatus::NoSIPURI => "no_sipuri",
2809            ApiStatus::NoSMS => "no_sms",
2810            ApiStatus::NoTimecondition => "no_timecondition",
2811            ApiStatus::NoTransactions => "no_transactions",
2812            ApiStatus::NoVPRI => "no_vpri",
2813            ApiStatus::OrderFailed => "order_failed",
2814            ApiStatus::ProblemSendingMail => "problem_sending_mail",
2815            ApiStatus::ProviderOutofservice => "provider_outofservice",
2816            ApiStatus::RecordingInUseCallerIDFiltering => "recording_in_use_caller_id_filtering",
2817            ApiStatus::RecordingInUseCallerTimecondition => "recording_in_use_caller_timecondition",
2818            ApiStatus::RecordingInUseDID => "recording_in_use_did",
2819            ApiStatus::RecordingInUseIVR => "recording_in_use_ivr",
2820            ApiStatus::RecordingInUseQueue => "recording_in_use_queue",
2821            ApiStatus::RepeatedIP => "repeated_ip",
2822            ApiStatus::ReservedIP => "reserved_ip",
2823            ApiStatus::RTPTimeoutGreaterThanRTPHoldTimeout => {
2824                "rtp_timeout_greater_than_rtp_hold_timeout"
2825            }
2826            ApiStatus::SameDIDBillingtype => "same_did_billingtype",
2827            ApiStatus::SentFail => "sent_fail",
2828            ApiStatus::SIPURIInPhonebook => "sipuri_in_phonebook",
2829            ApiStatus::SMSApplyRegulations => "sms_apply_regulations",
2830            ApiStatus::SMSFailed => "sms_failed",
2831            ApiStatus::SMSToolong => "sms_toolong",
2832            ApiStatus::SMSWaitMessage => "sms_wait_message",
2833            ApiStatus::TlsError => "tls_error",
2834            ApiStatus::UnableToPurchase => "Unable_to_purchase",
2835            ApiStatus::UnavailableInfo => "unavailable_info",
2836            ApiStatus::UnsifficientStock => "unsifficient_stock",
2837            ApiStatus::UsedDescription => "used_description",
2838            ApiStatus::UsedEmail => "used_email",
2839            ApiStatus::UsedExtension => "used_extension",
2840            ApiStatus::UsedExtensionInLocation => "used_extension_in_location",
2841            ApiStatus::UsedFilter => "used_filter",
2842            ApiStatus::UsedIP => "used_ip",
2843            ApiStatus::UsedName => "used_name",
2844            ApiStatus::UsedNumber => "used_number",
2845            ApiStatus::UsedPassword => "used_password",
2846            ApiStatus::UsedSpeedDial => "used_speed_dial",
2847            ApiStatus::UsedUsername => "used_username",
2848            ApiStatus::WeakPassword => "weak_password",
2849            ApiStatus::Unknown(s) => s.as_str(),
2850        }
2851    }
2852
2853    /// Parse a wire `status` string. Unknown values are preserved
2854    /// in [`ApiStatus::Unknown`].
2855    pub fn from_wire(s: &str) -> Self {
2856        match s {
2857            "account_with_dids" => ApiStatus::AccountWithDIDs,
2858            "api_limit_exceeded" => ApiStatus::APILimitExceeded,
2859            "api_not_enabled" => ApiStatus::APINotEnabled,
2860            "cancel_failed" => ApiStatus::CancelFailed,
2861            "can_have_only_one_profile_without_pin" => ApiStatus::CANHaveOnlyOneProfileWithoutPIN,
2862            "conference_member_relation_not_found" => ApiStatus::ConferenceMemberRelationNotFound,
2863            "did_in_use" => ApiStatus::DIDInUse,
2864            "did_limit_reached" => ApiStatus::DIDLimitReached,
2865            "duplicated_name" => ApiStatus::DuplicatedName,
2866            "duplicated_pin" => ApiStatus::DuplicatedPIN,
2867            "e911_disabled" => ApiStatus::E911Disabled,
2868            "e911_pending" => ApiStatus::E911Pending,
2869            "error_deleting_msg" => ApiStatus::ErrorDeletingMsg,
2870            "error_moving_msg" => ApiStatus::ErrorMovingMsg,
2871            "exceeds_file_size" => ApiStatus::ExceedsFileSize,
2872            "existing_did" => ApiStatus::ExistingDID,
2873            "forwards_exceeded" => ApiStatus::ForwardsExceeded,
2874            "invalid_account" => ApiStatus::InvalidAccount,
2875            "invalid_address" => ApiStatus::InvalidAddress,
2876            "invalid_admin" => ApiStatus::InvalidAdmin,
2877            "invalid_agent_ring_timeout" => ApiStatus::InvalidAgentRingTimeout,
2878            "invalid_allowedcodecs" => ApiStatus::InvalidAllowedcodecs,
2879            "invalid_announce_join_leave" => ApiStatus::InvalidAnnounceJoinLeave,
2880            "invalid_announce_only_user" => ApiStatus::InvalidAnnounceOnlyUser,
2881            "invalid_announce_position_frequency" => ApiStatus::InvalidAnnouncePositionFrequency,
2882            "invalid_announce_round_seconds" => ApiStatus::InvalidAnnounceRoundSeconds,
2883            "invalid_announce_user_count" => ApiStatus::InvalidAnnounceUserCount,
2884            "invalid_area_code" => ApiStatus::InvalidAreaCode,
2885            "invalid_attachid" => ApiStatus::InvalidAttachid,
2886            "invalid_attachmessage" => ApiStatus::InvalidAttachmessage,
2887            "invalid_attach_file" => ApiStatus::InvalidAttachFile,
2888            "invalid_authtype" => ApiStatus::InvalidAuthtype,
2889            "invalid_authtype_h323" => ApiStatus::InvalidAuthtypeH323,
2890            "invalid_authtype_iax2" => ApiStatus::InvalidAuthtypeIax2,
2891            "invalid_balancemanagement" => ApiStatus::InvalidBalancemanagement,
2892            "invalid_base_recording" => ApiStatus::InvalidBaseRecording,
2893            "invalid_billingtype" => ApiStatus::InvalidBillingtype,
2894            "invalid_callback" => ApiStatus::InvalidCallback,
2895            "invalid_callback_enable" => ApiStatus::InvalidCallbackEnable,
2896            "invalid_callback_retry" => ApiStatus::InvalidCallbackRetry,
2897            "invalid_callerid" => ApiStatus::InvalidCallerid,
2898            "invalid_calleridprefix" => ApiStatus::InvalidCalleridprefix,
2899            "invalid_callerid_override" => ApiStatus::InvalidCalleridOverride,
2900            "invalid_callhunting" => ApiStatus::InvalidCallhunting,
2901            "invalid_callparking" => ApiStatus::InvalidCallparking,
2902            "invalid_callrecording" => ApiStatus::InvalidCallrecording,
2903            "invalid_call_type" => ApiStatus::InvalidCallType,
2904            "invalid_canada_routing" => ApiStatus::InvalidCanadaRouting,
2905            "invalid_carrier" => ApiStatus::InvalidCarrier,
2906            "invalid_charge" => ApiStatus::InvalidCharge,
2907            "invalid_city" => ApiStatus::InvalidCity,
2908            "invalid_client" => ApiStatus::InvalidClient,
2909            "invalid_cnam" => ApiStatus::InvalidCNAM,
2910            "invalid_codec" => ApiStatus::InvalidCodec,
2911            "invalid_conference" => ApiStatus::InvalidConference,
2912            "invalid_contact" => ApiStatus::InvalidContact,
2913            "invalid_country" => ApiStatus::InvalidCountry,
2914            "invalid_countryid" => ApiStatus::InvalidCountryid,
2915            "invalid_credentials" => ApiStatus::InvalidCredentials,
2916            "invalid_date" => ApiStatus::InvalidDate,
2917            "invalid_daterange" => ApiStatus::InvalidDaterange,
2918            "invalid_datetime" => ApiStatus::InvalidDatetime,
2919            "invalid_date_from" => ApiStatus::InvalidDateFrom,
2920            "invalid_dayrange" => ApiStatus::InvalidDayrange,
2921            "invalid_delay_before" => ApiStatus::InvalidDelayBefore,
2922            "invalid_deletemessage" => ApiStatus::InvalidDeletemessage,
2923            "invalid_description" => ApiStatus::InvalidDescription,
2924            "invalid_destination" => ApiStatus::InvalidDestination,
2925            "invalid_destination_folder" => ApiStatus::InvalidDestinationFolder,
2926            "invalid_devicetype" => ApiStatus::InvalidDevicetype,
2927            "invalid_dialtime" => ApiStatus::InvalidDialtime,
2928            "invalid_did" => ApiStatus::InvalidDID,
2929            "invalid_digits" => ApiStatus::InvalidDigits,
2930            "invalid_digit_timeout" => ApiStatus::InvalidDigitTimeout,
2931            "invalid_disa" => ApiStatus::InvalidDISA,
2932            "invalid_diversion_header" => ApiStatus::InvalidDiversionHeader,
2933            "invalid_drop_silence" => ApiStatus::InvalidDropSilence,
2934            "invalid_dst" => ApiStatus::InvalidDST,
2935            "invalid_dtmfmode" => ApiStatus::InvalidDtmfmode,
2936            "invalid_dtmf_digits" => ApiStatus::InvalidDTMFDigits,
2937            "invalid_email" => ApiStatus::InvalidEmail,
2938            "invalid_email_attachment_format" => ApiStatus::InvalidEmailAttachmentFormat,
2939            "invalid_email_enable" => ApiStatus::InvalidEmailEnable,
2940            "invalid_enable_ip_restriction" => ApiStatus::InvalidEnableIPRestriction,
2941            "invalid_enable_pop_restriction" => ApiStatus::InvalidEnablePOPRestriction,
2942            "invalid_endhour" => ApiStatus::InvalidEndhour,
2943            "invalid_endminute" => ApiStatus::InvalidEndminute,
2944            "invalid_extension" => ApiStatus::InvalidExtension,
2945            "invalid_extensions" => ApiStatus::InvalidExtensions,
2946            "invalid_extension_length" => ApiStatus::InvalidExtensionLength,
2947            "invalid_extension_prefix" => ApiStatus::InvalidExtensionPrefix,
2948            "invalid_failover_header" => ApiStatus::InvalidFailoverHeader,
2949            "invalid_fax_id" => ApiStatus::InvalidFAXID,
2950            "invalid_file" => ApiStatus::InvalidFile,
2951            "invalid_filter" => ApiStatus::InvalidFilter,
2952            "invalid_firstname" => ApiStatus::InvalidFirstname,
2953            "invalid_foc_enddate" => ApiStatus::InvalidFocEnddate,
2954            "invalid_foc_startdate" => ApiStatus::InvalidFocStartdate,
2955            "invalid_folder" => ApiStatus::InvalidFolder,
2956            "invalid_folder_id" => ApiStatus::InvalidFolderID,
2957            "invalid_forwarding" => ApiStatus::InvalidForwarding,
2958            "invalid_forwarding_did" => ApiStatus::InvalidForwardingDID,
2959            "invalid_forward_enable" => ApiStatus::InvalidForwardEnable,
2960            "invalid_frequency_announcement" => ApiStatus::InvalidFrequencyAnnouncement,
2961            "invalid_from_number" => ApiStatus::InvalidFromNumber,
2962            "invalid_fullname" => ApiStatus::InvalidFullname,
2963            "invalid_id" => ApiStatus::InvalidID,
2964            "invalid_if_announce_position_enabled_report_e" => {
2965                ApiStatus::InvalidIfAnnouncePositionEnabledReportE
2966            }
2967            "invalid_internaldialtime" => ApiStatus::InvalidInternaldialtime,
2968            "invalid_internalvoicemail" => ApiStatus::InvalidInternalvoicemail,
2969            "invalid_internationalroute" => ApiStatus::InvalidInternationalroute,
2970            "invalid_invoice_type" => ApiStatus::InvalidInvoiceType,
2971            "invalid_ip" => ApiStatus::InvalidIP,
2972            "invalid_ip_auth" => ApiStatus::InvalidIPAuth,
2973            "invalid_ip_iax2" => ApiStatus::InvalidIPIax2,
2974            "invalid_ivr" => ApiStatus::InvalidIVR,
2975            "invalid_jitter_buffer" => ApiStatus::InvalidJitterBuffer,
2976            "invalid_join_announcement" => ApiStatus::InvalidJoinAnnouncement,
2977            "invalid_join_empty_type" => ApiStatus::InvalidJoinEmptyType,
2978            "invalid_language" => ApiStatus::InvalidLanguage,
2979            "invalid_lastname" => ApiStatus::InvalidLastname,
2980            "invalid_listened" => ApiStatus::InvalidListened,
2981            "invalid_location" => ApiStatus::InvalidLocation,
2982            "invalid_lockinternational" => ApiStatus::InvalidLockinternational,
2983            "invalid_mailbox" => ApiStatus::InvalidMailbox,
2984            "invalid_maximum_callers" => ApiStatus::InvalidMaximumCallers,
2985            "invalid_maximum_wait_time" => ApiStatus::InvalidMaximumWaitTime,
2986            "invalid_max_expiry" => ApiStatus::InvalidMaxExpiry,
2987            "invalid_member" => ApiStatus::InvalidMember,
2988            "invalid_member_delay" => ApiStatus::InvalidMemberDelay,
2989            "invalid_message_num" => ApiStatus::InvalidMessageNum,
2990            "invalid_method" => ApiStatus::InvalidMethod,
2991            "invalid_minute" => ApiStatus::InvalidMinute,
2992            "invalid_mixed_numbers" => ApiStatus::InvalidMixedNumbers,
2993            "invalid_monthly" => ApiStatus::InvalidMonthly,
2994            "invalid_musiconhold" => ApiStatus::InvalidMusiconhold,
2995            "invalid_name" => ApiStatus::InvalidName,
2996            "invalid_nat" => ApiStatus::InvalidNAT,
2997            "invalid_note" => ApiStatus::InvalidNote,
2998            "invalid_number" => ApiStatus::InvalidNumber,
2999            "invalid_numbermembers" => ApiStatus::InvalidNumbermembers,
3000            "invalid_number_canadian" => ApiStatus::InvalidNumberCanadian,
3001            "invalid_number_exist" => ApiStatus::InvalidNumberExist,
3002            "invalid_number_fax" => ApiStatus::InvalidNumberFAX,
3003            "invalid_number_porttype" => ApiStatus::InvalidNumberPorttype,
3004            "invalid_number_us" => ApiStatus::InvalidNumberUS,
3005            "invalid_order" => ApiStatus::InvalidOrder,
3006            "invalid_package" => ApiStatus::InvalidPackage,
3007            "invalid_password" => ApiStatus::InvalidPassword,
3008            "invalid_password_auth" => ApiStatus::InvalidPasswordAuth,
3009            "invalid_password_ilegal_characters" => ApiStatus::InvalidPasswordIlegalCharacters,
3010            "invalid_password_lessthan_8characters_long" => {
3011                ApiStatus::InvalidPasswordLessthan8charactersLong
3012            }
3013            "invalid_password_missing_lowercase" => ApiStatus::InvalidPasswordMissingLowercase,
3014            "invalid_password_missing_number" => ApiStatus::InvalidPasswordMissingNumber,
3015            "invalid_password_missing_uppercase" => ApiStatus::InvalidPasswordMissingUppercase,
3016            "invalid_pause" => ApiStatus::InvalidPause,
3017            "invalid_payment" => ApiStatus::InvalidPayment,
3018            "invalid_phonebook" => ApiStatus::InvalidPhonebook,
3019            "invalid_phonenumber" => ApiStatus::InvalidPhonenumber,
3020            "invalid_pin" => ApiStatus::InvalidPIN,
3021            "invalid_pin_number" => ApiStatus::InvalidPINNumber,
3022            "invalid_playinstructions" => ApiStatus::InvalidPlayinstructions,
3023            "invalid_pop_restriction" => ApiStatus::InvalidPOPRestriction,
3024            "invalid_portingid" => ApiStatus::InvalidPortingid,
3025            "invalid_porttype" => ApiStatus::InvalidPorttype,
3026            "invalid_port_status" => ApiStatus::InvalidPortStatus,
3027            "invalid_priority" => ApiStatus::InvalidPriority,
3028            "invalid_priority_weight" => ApiStatus::InvalidPriorityWeight,
3029            "invalid_protocol" => ApiStatus::InvalidProtocol,
3030            "invalid_provider_account" => ApiStatus::InvalidProviderAccount,
3031            "invalid_provider_name" => ApiStatus::InvalidProviderName,
3032            "invalid_province" => ApiStatus::InvalidProvince,
3033            "invalid_quantity" => ApiStatus::InvalidQuantity,
3034            "invalid_query" => ApiStatus::InvalidQuery,
3035            "invalid_queue" => ApiStatus::InvalidQueue,
3036            "invalid_quiet" => ApiStatus::InvalidQuiet,
3037            "invalid_recording" => ApiStatus::InvalidRecording,
3038            "invalid_recording_sound_error_menu" => ApiStatus::InvalidRecordingSoundErrorMenu,
3039            "invalid_recording_sound_get_pin" => ApiStatus::InvalidRecordingSoundGetPIN,
3040            "invalid_recording_sound_has_joined" => ApiStatus::InvalidRecordingSoundHasJoined,
3041            "invalid_recording_sound_has_left" => ApiStatus::InvalidRecordingSoundHasLeft,
3042            "invalid_recording_sound_invalid_pin" => ApiStatus::InvalidRecordingSoundInvalidPIN,
3043            "invalid_recording_sound_join" => ApiStatus::InvalidRecordingSoundJoin,
3044            "invalid_recording_sound_kicked" => ApiStatus::InvalidRecordingSoundKicked,
3045            "invalid_recording_sound_leave" => ApiStatus::InvalidRecordingSoundLeave,
3046            "invalid_recording_sound_locked" => ApiStatus::InvalidRecordingSoundLocked,
3047            "invalid_recording_sound_locked_now" => ApiStatus::InvalidRecordingSoundLockedNow,
3048            "invalid_recording_sound_muted" => ApiStatus::InvalidRecordingSoundMuted,
3049            "invalid_recording_sound_only_one" => ApiStatus::InvalidRecordingSoundOnlyOne,
3050            "invalid_recording_sound_only_person" => ApiStatus::InvalidRecordingSoundOnlyPerson,
3051            "invalid_recording_sound_other_in_party" => {
3052                ApiStatus::InvalidRecordingSoundOtherInParty
3053            }
3054            "invalid_recording_sound_participants_muted" => {
3055                ApiStatus::InvalidRecordingSoundParticipantsMuted
3056            }
3057            "invalid_recording_sound_participants_unmuted" => {
3058                ApiStatus::InvalidRecordingSoundParticipantsUnmuted
3059            }
3060            "invalid_recording_sound_place_into_conference" => {
3061                ApiStatus::InvalidRecordingSoundPlaceIntoConference
3062            }
3063            "invalid_recording_sound_there_are" => ApiStatus::InvalidRecordingSoundThereAre,
3064            "invalid_recording_sound_unlocked_now" => ApiStatus::InvalidRecordingSoundUnlockedNow,
3065            "invalid_recording_sound_unmuted" => ApiStatus::InvalidRecordingSoundUnmuted,
3066            "invalid_record_calls" => ApiStatus::InvalidRecordCalls,
3067            "invalid_report_hold_time_agent" => ApiStatus::InvalidReportHoldTimeAgent,
3068            "invalid_resellerclient" => ApiStatus::InvalidResellerclient,
3069            "invalid_resellernextbilling" => ApiStatus::InvalidResellernextbilling,
3070            "invalid_resellerpackage" => ApiStatus::InvalidResellerpackage,
3071            "invalid_response_timeout" => ApiStatus::InvalidResponseTimeout,
3072            "invalid_retry_timer" => ApiStatus::InvalidRetryTimer,
3073            "invalid_ringgroup" => ApiStatus::InvalidRinggroup,
3074            "invalid_ring_inuse" => ApiStatus::InvalidRingInuse,
3075            "invalid_route" => ApiStatus::InvalidRoute,
3076            "invalid_routing_header" => ApiStatus::InvalidRoutingHeader,
3077            "invalid_rtp_hold_timeout" => ApiStatus::InvalidRTPHoldTimeout,
3078            "invalid_rtp_timeout" => ApiStatus::InvalidRTPTimeout,
3079            "invalid_saycallerid" => ApiStatus::InvalidSaycallerid,
3080            "invalid_saytime" => ApiStatus::InvalidSaytime,
3081            "invalid_security_code" => ApiStatus::InvalidSecurityCode,
3082            "invalid_serverpop" => ApiStatus::InvalidServerpop,
3083            "invalid_setup" => ApiStatus::InvalidSetup,
3084            "invalid_silence_threshold" => ApiStatus::InvalidSilenceThreshold,
3085            "invalid_sipuri" => ApiStatus::InvalidSIPURI,
3086            "invalid_sip_traffic" => ApiStatus::InvalidSIPTraffic,
3087            "invalid_skippassword" => ApiStatus::InvalidSkippassword,
3088            "invalid_smpp_password" => ApiStatus::InvalidSmppPassword,
3089            "invalid_smpp_url" => ApiStatus::InvalidSmppURL,
3090            "invalid_smpp_username" => ApiStatus::InvalidSmppUsername,
3091            "invalid_sms" => ApiStatus::InvalidSMS,
3092            "invalid_sms_forward" => ApiStatus::InvalidSMSForward,
3093            "invalid_snn" => ApiStatus::InvalidSnn,
3094            "invalid_speed_dial" => ApiStatus::InvalidSpeedDial,
3095            "invalid_starthour" => ApiStatus::InvalidStarthour,
3096            "invalid_startminute" => ApiStatus::InvalidStartminute,
3097            "invalid_start_muted" => ApiStatus::InvalidStartMuted,
3098            "invalid_state" => ApiStatus::InvalidState,
3099            "invalid_statement_name" => ApiStatus::InvalidStatementName,
3100            "invalid_strategy" => ApiStatus::InvalidStrategy,
3101            "invalid_street_name" => ApiStatus::InvalidStreetName,
3102            "invalid_street_number" => ApiStatus::InvalidStreetNumber,
3103            "invalid_talking_threshold" => ApiStatus::InvalidTalkingThreshold,
3104            "invalid_talk_detection" => ApiStatus::InvalidTalkDetection,
3105            "invalid_tfnumber_porttype" => ApiStatus::InvalidTfnumberPorttype,
3106            "invalid_thankyou_for_your_patience" => ApiStatus::InvalidThankyouForYourPatience,
3107            "Invalid_threshold" => ApiStatus::InvalidThreshold,
3108            "invalid_timecondition" => ApiStatus::InvalidTimecondition,
3109            "invalid_timeout" => ApiStatus::InvalidTimeout,
3110            "invalid_timerange" => ApiStatus::InvalidTimerange,
3111            "invalid_timezone" => ApiStatus::InvalidTimezone,
3112            "invalid_to_number" => ApiStatus::InvalidToNumber,
3113            "invalid_transcription_email" => ApiStatus::InvalidTranscriptionEmail,
3114            "invalid_transcription_format" => ApiStatus::InvalidTranscriptionFormat,
3115            "invalid_transcription_locale" => ApiStatus::InvalidTranscriptionLocale,
3116            "invalid_transcription_redaction" => ApiStatus::InvalidTranscriptionRedaction,
3117            "invalid_transcription_sentiment" => ApiStatus::InvalidTranscriptionSentiment,
3118            "invalid_transcription_summary" => ApiStatus::InvalidTranscriptionSummary,
3119            "invalid_type" => ApiStatus::InvalidType,
3120            "invalid_urgent" => ApiStatus::InvalidUrgent,
3121            "invalid_username" => ApiStatus::InvalidUsername,
3122            "invalid_voicemailsetup" => ApiStatus::InvalidVoicemailsetup,
3123            "invalid_voice_announcement" => ApiStatus::InvalidVoiceAnnouncement,
3124            "invalid_weekdayend" => ApiStatus::InvalidWeekdayend,
3125            "invalid_weekdaystart" => ApiStatus::InvalidWeekdaystart,
3126            "invalid_wrapup_time" => ApiStatus::InvalidWrapupTime,
3127            "invalid_zip" => ApiStatus::InvalidZip,
3128            "ip_not_enabled" => ApiStatus::IPNotEnabled,
3129            "limit_reached" => ApiStatus::LimitReached,
3130            "location_already_exists" => ApiStatus::LocationAlreadyExists,
3131            "location_linked_to_subaccount" => ApiStatus::LocationLinkedToSubaccount,
3132            "location_not_found" => ApiStatus::LocationNotFound,
3133            "max_phonebook" => ApiStatus::MaxPhonebook,
3134            "members_exceeded" => ApiStatus::MembersExceeded,
3135            "member_already_included" => ApiStatus::MemberAlreadyIncluded,
3136            "message_empty" => ApiStatus::MessageEmpty,
3137            "message_not_found" => ApiStatus::MessageNotFound,
3138            "method_maintenance" => ApiStatus::MethodMaintenance,
3139            "mismatch_email_confirm" => ApiStatus::MismatchEmailConfirm,
3140            "mismatch_password_confirm" => ApiStatus::MismatchPasswordConfirm,
3141            "missing_account" => ApiStatus::MissingAccount,
3142            "missing_address" => ApiStatus::MissingAddress,
3143            "missing_agent_ring_timeout" => ApiStatus::MissingAgentRingTimeout,
3144            "missing_allowedcodecs" => ApiStatus::MissingAllowedcodecs,
3145            "missing_attachmessage" => ApiStatus::MissingAttachmessage,
3146            "missing_authtype" => ApiStatus::MissingAuthtype,
3147            "missing_balancemanagement" => ApiStatus::MissingBalancemanagement,
3148            "missing_billingtype" => ApiStatus::MissingBillingtype,
3149            "missing_callback" => ApiStatus::MissingCallback,
3150            "missing_callerid" => ApiStatus::MissingCallerid,
3151            "missing_callhunting" => ApiStatus::MissingCallhunting,
3152            "missing_callparking" => ApiStatus::MissingCallparking,
3153            "missing_callrecording" => ApiStatus::MissingCallrecording,
3154            "missing_carrier" => ApiStatus::MissingCarrier,
3155            "missing_charge" => ApiStatus::MissingCharge,
3156            "missing_choices" => ApiStatus::MissingChoices,
3157            "missing_city" => ApiStatus::MissingCity,
3158            "missing_client" => ApiStatus::MissingClient,
3159            "missing_cnam" => ApiStatus::MissingCNAM,
3160            "missing_codec" => ApiStatus::MissingCodec,
3161            "missing_conference" => ApiStatus::MissingConference,
3162            "missing_country" => ApiStatus::MissingCountry,
3163            "missing_countryid" => ApiStatus::MissingCountryid,
3164            "missing_credentials" => ApiStatus::MissingCredentials,
3165            "missing_datetime" => ApiStatus::MissingDatetime,
3166            "missing_delay_before" => ApiStatus::MissingDelayBefore,
3167            "missing_deletemessage" => ApiStatus::MissingDeletemessage,
3168            "missing_description" => ApiStatus::MissingDescription,
3169            "missing_devicetype" => ApiStatus::MissingDevicetype,
3170            "missing_dialtime" => ApiStatus::MissingDialtime,
3171            "missing_did" => ApiStatus::MissingDID,
3172            "missing_digits" => ApiStatus::MissingDigits,
3173            "missing_digit_timeout" => ApiStatus::MissingDigitTimeout,
3174            "missing_disa" => ApiStatus::MissingDISA,
3175            "missing_dtmfmode" => ApiStatus::MissingDtmfmode,
3176            "missing_email" => ApiStatus::MissingEmail,
3177            "missing_email_confirm" => ApiStatus::MissingEmailConfirm,
3178            "missing_enable" => ApiStatus::MissingEnable,
3179            "missing_endhour" => ApiStatus::MissingEndhour,
3180            "missing_endminute" => ApiStatus::MissingEndminute,
3181            "missing_failover_busy" => ApiStatus::MissingFailoverBusy,
3182            "missing_failover_noanswer" => ApiStatus::MissingFailoverNoanswer,
3183            "missing_failover_unreachable" => ApiStatus::MissingFailoverUnreachable,
3184            "missing_file" => ApiStatus::MissingFile,
3185            "missing_filter" => ApiStatus::MissingFilter,
3186            "missing_firstname" => ApiStatus::MissingFirstname,
3187            "missing_folder" => ApiStatus::MissingFolder,
3188            "missing_forwarding" => ApiStatus::MissingForwarding,
3189            "missing_from_date" => ApiStatus::MissingFromDate,
3190            "missing_fullname" => ApiStatus::MissingFullname,
3191            "missing_id" => ApiStatus::MissingID,
3192            "missing_if_announce_position_enabled_report_e" => {
3193                ApiStatus::MissingIfAnnouncePositionEnabledReportE
3194            }
3195            "missing_internationalroute" => ApiStatus::MissingInternationalroute,
3196            "missing_ip" => ApiStatus::MissingIP,
3197            "missing_ip_h323" => ApiStatus::MissingIPH323,
3198            "missing_ip_restriction" => ApiStatus::MissingIPRestriction,
3199            "missing_ivr" => ApiStatus::MissingIVR,
3200            "missing_join_when_empty" => ApiStatus::MissingJoinWhenEmpty,
3201            "missing_language" => ApiStatus::MissingLanguage,
3202            "missing_lastname" => ApiStatus::MissingLastname,
3203            "missing_leave_when_empty" => ApiStatus::MissingLeaveWhenEmpty,
3204            "missing_length" => ApiStatus::MissingLength,
3205            "missing_listened" => ApiStatus::MissingListened,
3206            "missing_location" => ApiStatus::MissingLocation,
3207            "missing_location_name" => ApiStatus::MissingLocationName,
3208            "missing_lockinternational" => ApiStatus::MissingLockinternational,
3209            "missing_mailbox" => ApiStatus::MissingMailbox,
3210            "missing_member" => ApiStatus::MissingMember,
3211            "missing_members" => ApiStatus::MissingMembers,
3212            "missing_message_num" => ApiStatus::MissingMessageNum,
3213            "missing_method" => ApiStatus::MissingMethod,
3214            "missing_minute" => ApiStatus::MissingMinute,
3215            "missing_monthly" => ApiStatus::MissingMonthly,
3216            "missing_musiconhold" => ApiStatus::MissingMusiconhold,
3217            "missing_name" => ApiStatus::MissingName,
3218            "missing_nat" => ApiStatus::MissingNAT,
3219            "missing_number" => ApiStatus::MissingNumber,
3220            "missing_numbers" => ApiStatus::MissingNumbers,
3221            "missing_package" => ApiStatus::MissingPackage,
3222            "missing_params" => ApiStatus::MissingParams,
3223            "missing_password" => ApiStatus::MissingPassword,
3224            "missing_password_confirm" => ApiStatus::MissingPasswordConfirm,
3225            "missing_payment" => ApiStatus::MissingPayment,
3226            "missing_phonebook" => ApiStatus::MissingPhonebook,
3227            "missing_phonenumber" => ApiStatus::MissingPhonenumber,
3228            "missing_pin" => ApiStatus::MissingPIN,
3229            "missing_playinstructions" => ApiStatus::MissingPlayinstructions,
3230            "missing_pop_restriction" => ApiStatus::MissingPOPRestriction,
3231            "missing_priority" => ApiStatus::MissingPriority,
3232            "missing_priority_weight" => ApiStatus::MissingPriorityWeight,
3233            "missing_protocol" => ApiStatus::MissingProtocol,
3234            "missing_province" => ApiStatus::MissingProvince,
3235            "missing_query" => ApiStatus::MissingQuery,
3236            "missing_recording" => ApiStatus::MissingRecording,
3237            "missing_report_hold_time_agent" => ApiStatus::MissingReportHoldTimeAgent,
3238            "missing_resellerclient" => ApiStatus::MissingResellerclient,
3239            "missing_resellerpackage" => ApiStatus::MissingResellerpackage,
3240            "missing_response_timeout" => ApiStatus::MissingResponseTimeout,
3241            "missing_ringgroup" => ApiStatus::MissingRinggroup,
3242            "missing_ring_inuse" => ApiStatus::MissingRingInuse,
3243            "missing_ring_strategy" => ApiStatus::MissingRingStrategy,
3244            "missing_route" => ApiStatus::MissingRoute,
3245            "missing_routing" => ApiStatus::MissingRouting,
3246            "missing_saycallerid" => ApiStatus::MissingSaycallerid,
3247            "missing_saytime" => ApiStatus::MissingSaytime,
3248            "missing_serverpop" => ApiStatus::MissingServerpop,
3249            "missing_setup" => ApiStatus::MissingSetup,
3250            "missing_sipuri" => ApiStatus::MissingSIPURI,
3251            "missing_skippassword" => ApiStatus::MissingSkippassword,
3252            "missing_sms" => ApiStatus::MissingSMS,
3253            "missing_speed_dial" => ApiStatus::MissingSpeedDial,
3254            "missing_start" => ApiStatus::MissingStart,
3255            "missing_starthour" => ApiStatus::MissingStarthour,
3256            "missing_startminute" => ApiStatus::MissingStartminute,
3257            "missing_state" => ApiStatus::MissingState,
3258            "missing_street_name" => ApiStatus::MissingStreetName,
3259            "missing_street_number" => ApiStatus::MissingStreetNumber,
3260            "missing_thankyou_for_your_patience" => ApiStatus::MissingThankyouForYourPatience,
3261            "missing_timecondition" => ApiStatus::MissingTimecondition,
3262            "missing_timeout" => ApiStatus::MissingTimeout,
3263            "missing_timezone" => ApiStatus::MissingTimezone,
3264            "missing_to_date" => ApiStatus::MissingToDate,
3265            "missing_transcription_email" => ApiStatus::MissingTranscriptionEmail,
3266            "missing_transcription_locale" => ApiStatus::MissingTranscriptionLocale,
3267            "missing_type" => ApiStatus::MissingType,
3268            "missing_urgent" => ApiStatus::MissingUrgent,
3269            "missing_uri" => ApiStatus::MissingURI,
3270            "missing_username" => ApiStatus::MissingUsername,
3271            "missing_voicemailsetup" => ApiStatus::MissingVoicemailsetup,
3272            "missing_weekdayend" => ApiStatus::MissingWeekdayend,
3273            "missing_weekdaystart" => ApiStatus::MissingWeekdaystart,
3274            "missing_zip" => ApiStatus::MissingZip,
3275            "moving_fail" => ApiStatus::MovingFail,
3276            "name_toolong" => ApiStatus::NameToolong,
3277            "non_sufficient_funds" => ApiStatus::NonSufficientFunds,
3278            "note_toolong" => ApiStatus::NoteToolong,
3279            "no_account" => ApiStatus::NoAccount,
3280            "no_attachments" => ApiStatus::NoAttachments,
3281            "no_base64file" => ApiStatus::NoBase64file,
3282            "no_callback" => ApiStatus::NoCallback,
3283            "no_callhunting" => ApiStatus::NoCallhunting,
3284            "no_callparking" => ApiStatus::NoCallparking,
3285            "no_callstatus" => ApiStatus::NoCallstatus,
3286            "no_cdr" => ApiStatus::NoCDR,
3287            "no_change_billingtype" => ApiStatus::NoChangeBillingtype,
3288            "no_client" => ApiStatus::NoClient,
3289            "no_conference" => ApiStatus::NoConference,
3290            "no_did" => ApiStatus::NoDID,
3291            "no_disa" => ApiStatus::NoDISA,
3292            "no_emailtofax" => ApiStatus::NoEmailtofax,
3293            "no_filter" => ApiStatus::NoFilter,
3294            "no_folder" => ApiStatus::NoFolder,
3295            "no_forwarding" => ApiStatus::NoForwarding,
3296            "no_ivr" => ApiStatus::NoIVR,
3297            "no_mailbox" => ApiStatus::NoMailbox,
3298            "no_member" => ApiStatus::NoMember,
3299            "no_message" => ApiStatus::NoMessage,
3300            "no_messages" => ApiStatus::NoMessages,
3301            "no_numbers" => ApiStatus::NoNumbers,
3302            "no_package" => ApiStatus::NoPackage,
3303            "no_phonebook" => ApiStatus::NoPhonebook,
3304            "no_phonebook_group" => ApiStatus::NoPhonebookGroup,
3305            "no_provision" => ApiStatus::NoProvision,
3306            "no_provision_update" => ApiStatus::NoProvisionUpdate,
3307            "no_queue" => ApiStatus::NoQueue,
3308            "no_rate" => ApiStatus::NoRate,
3309            "no_recording" => ApiStatus::NoRecording,
3310            "no_ringgroup" => ApiStatus::NoRinggroup,
3311            "no_sequences" => ApiStatus::NoSequences,
3312            "no_sipuri" => ApiStatus::NoSIPURI,
3313            "no_sms" => ApiStatus::NoSMS,
3314            "no_timecondition" => ApiStatus::NoTimecondition,
3315            "no_transactions" => ApiStatus::NoTransactions,
3316            "no_vpri" => ApiStatus::NoVPRI,
3317            "order_failed" => ApiStatus::OrderFailed,
3318            "problem_sending_mail" => ApiStatus::ProblemSendingMail,
3319            "provider_outofservice" => ApiStatus::ProviderOutofservice,
3320            "recording_in_use_caller_id_filtering" => ApiStatus::RecordingInUseCallerIDFiltering,
3321            "recording_in_use_caller_timecondition" => ApiStatus::RecordingInUseCallerTimecondition,
3322            "recording_in_use_did" => ApiStatus::RecordingInUseDID,
3323            "recording_in_use_ivr" => ApiStatus::RecordingInUseIVR,
3324            "recording_in_use_queue" => ApiStatus::RecordingInUseQueue,
3325            "repeated_ip" => ApiStatus::RepeatedIP,
3326            "reserved_ip" => ApiStatus::ReservedIP,
3327            "rtp_timeout_greater_than_rtp_hold_timeout" => {
3328                ApiStatus::RTPTimeoutGreaterThanRTPHoldTimeout
3329            }
3330            "same_did_billingtype" => ApiStatus::SameDIDBillingtype,
3331            "sent_fail" => ApiStatus::SentFail,
3332            "sipuri_in_phonebook" => ApiStatus::SIPURIInPhonebook,
3333            "sms_apply_regulations" => ApiStatus::SMSApplyRegulations,
3334            "sms_failed" => ApiStatus::SMSFailed,
3335            "sms_toolong" => ApiStatus::SMSToolong,
3336            "sms_wait_message" => ApiStatus::SMSWaitMessage,
3337            "tls_error" => ApiStatus::TlsError,
3338            "Unable_to_purchase" => ApiStatus::UnableToPurchase,
3339            "unavailable_info" => ApiStatus::UnavailableInfo,
3340            "unsifficient_stock" => ApiStatus::UnsifficientStock,
3341            "used_description" => ApiStatus::UsedDescription,
3342            "used_email" => ApiStatus::UsedEmail,
3343            "used_extension" => ApiStatus::UsedExtension,
3344            "used_extension_in_location" => ApiStatus::UsedExtensionInLocation,
3345            "used_filter" => ApiStatus::UsedFilter,
3346            "used_ip" => ApiStatus::UsedIP,
3347            "used_name" => ApiStatus::UsedName,
3348            "used_number" => ApiStatus::UsedNumber,
3349            "used_password" => ApiStatus::UsedPassword,
3350            "used_speed_dial" => ApiStatus::UsedSpeedDial,
3351            "used_username" => ApiStatus::UsedUsername,
3352            "weak_password" => ApiStatus::WeakPassword,
3353            other => ApiStatus::Unknown(other.to_string()),
3354        }
3355    }
3356
3357    /// The human-readable description of this status from the
3358    /// VoIP.ms docs, or `None` for [`ApiStatus::Unknown`].
3359    pub fn description(&self) -> Option<&'static str> {
3360        match self {
3361            ApiStatus::AccountWithDIDs => Some("The Account has DIDs assigned to it."),
3362            ApiStatus::APILimitExceeded => Some("API requests limit per minute has been reached"),
3363            ApiStatus::APINotEnabled => Some("API has not been enabled or has been disabled"),
3364            ApiStatus::CancelFailed => Some("The cancellation wasn't completed."),
3365            ApiStatus::CANHaveOnlyOneProfileWithoutPIN => {
3366                Some("The conference can just have one profile member without pin")
3367            }
3368            ApiStatus::ConferenceMemberRelationNotFound => {
3369                Some("There is no relation between the profile member and the conference.")
3370            }
3371            ApiStatus::DIDInUse => Some("DID Number is already in use"),
3372            ApiStatus::DIDLimitReached => Some(
3373                "You have reached the maximum number of DID numbers allowed for your account type. Please contact our team if you have a specific use case or if you would like to upgrade to a Business account.",
3374            ),
3375            ApiStatus::DuplicatedName => Some("There is already another entry with this name"),
3376            ApiStatus::DuplicatedPIN => Some("The given pin has been duplicated"),
3377            ApiStatus::E911Disabled => Some("DID e911 service it's not enabled."),
3378            ApiStatus::E911Pending => {
3379                Some("DID e911 service has been requested and is in validation process.")
3380            }
3381            ApiStatus::ErrorDeletingMsg => Some("Error when deleting message"),
3382            ApiStatus::ErrorMovingMsg => Some("Error when move the voicemail message to folder"),
3383            ApiStatus::ExceedsFileSize => Some("The file exceeds the limite size allowed."),
3384            ApiStatus::ExistingDID => {
3385                Some("You can't set a callback to an existing VoIP.ms DID number")
3386            }
3387            ApiStatus::ForwardsExceeded => Some("Your account is limited to 4 forward entries"),
3388            ApiStatus::InvalidAccount => Some("This is not a valid account"),
3389            ApiStatus::InvalidAddress => Some("Address is missing or the format is invalid."),
3390            ApiStatus::InvalidAdmin => Some("This is not a valid admin"),
3391            ApiStatus::InvalidAgentRingTimeout => {
3392                Some("This is not a valid Agent ring time out value")
3393            }
3394            ApiStatus::InvalidAllowedcodecs => {
3395                Some("One of the codecs provided is invalid Format and Values: ulaw;g729;gsm;all")
3396            }
3397            ApiStatus::InvalidAnnounceJoinLeave => {
3398                Some("This is not a valid \"Announce join leave\"")
3399            }
3400            ApiStatus::InvalidAnnounceOnlyUser => {
3401                Some("This is not a valid \"Announce only user\"")
3402            }
3403            ApiStatus::InvalidAnnouncePositionFrequency => {
3404                Some("This is not a valid Announce position frequency")
3405            }
3406            ApiStatus::InvalidAnnounceRoundSeconds => {
3407                Some("This is not a valid \"Announce round seconds\"")
3408            }
3409            ApiStatus::InvalidAnnounceUserCount => {
3410                Some("This is not a valid \"Announce user count\"")
3411            }
3412            ApiStatus::InvalidAreaCode => Some("this is not a valid Area Code."),
3413            ApiStatus::InvalidAttachid => Some("The given ID is invalid or doesn't exist."),
3414            ApiStatus::InvalidAttachmessage => {
3415                Some("this is not a valid AttachMessage Should be: yes/no")
3416            }
3417            ApiStatus::InvalidAttachFile => Some("Valid formats: PDF, MS Word, BMP, JPG"),
3418            ApiStatus::InvalidAuthtype => Some("This is not a valid Auth Type"),
3419            ApiStatus::InvalidAuthtypeH323 => Some("You must select IP Auth to use H.323"),
3420            ApiStatus::InvalidAuthtypeIax2 => {
3421                Some("You must use User/Password Authentication for IAX2")
3422            }
3423            ApiStatus::InvalidBalancemanagement => Some("This is not a valid BalanceManagement"),
3424            ApiStatus::InvalidBaseRecording => Some("This is not a valid recording path"),
3425            ApiStatus::InvalidBillingtype => {
3426                Some("This is not a valid Billing Type Allowed values: 1 = PerMinute, 2 = Flat")
3427            }
3428            ApiStatus::InvalidCallback => Some("This is not a valid Callback"),
3429            ApiStatus::InvalidCallbackEnable => Some("This is not a valid Callback enable value"),
3430            ApiStatus::InvalidCallbackRetry => Some("This is not a valid Callback retry"),
3431            ApiStatus::InvalidCallerid => Some("This is not a valid CallerID"),
3432            ApiStatus::InvalidCalleridprefix => {
3433                Some("This is not a valid CID Prefix, lenght should be less than 20 chars")
3434            }
3435            ApiStatus::InvalidCalleridOverride => Some("This is not a valid CallerID Override"),
3436            ApiStatus::InvalidCallhunting => Some("This is not a valid Call Hunting"),
3437            ApiStatus::InvalidCallparking => Some("This is not a valid Call Parking"),
3438            ApiStatus::InvalidCallrecording => Some("This is not a valid Call recording"),
3439            ApiStatus::InvalidCallType => Some("Call Type is not valid."),
3440            ApiStatus::InvalidCanadaRouting => Some("This is not a valid Canada Route"),
3441            ApiStatus::InvalidCarrier => Some("This is not a valid Carrier"),
3442            ApiStatus::InvalidCharge => Some("This is not a valid Charge"),
3443            ApiStatus::InvalidCity => Some("City is missing or the format is invalid."),
3444            ApiStatus::InvalidClient => Some("This is not a valid Client"),
3445            ApiStatus::InvalidCNAM => Some("This is not a valid CNAM Should be: 1/0"),
3446            ApiStatus::InvalidCodec => Some("This is not a valid Codec"),
3447            ApiStatus::InvalidConference => Some("This is not a valid Conference ID"),
3448            ApiStatus::InvalidContact => Some("This is not a valid Contact Number"),
3449            ApiStatus::InvalidCountry => Some(
3450                "Country is missing or the format is invalid, must be in format ISO 3166-1 alpha-2, example: US, CA, etc. (You can use the values returned by the method getCountries)",
3451            ),
3452            ApiStatus::InvalidCountryid => Some("This is not a valid Country ID"),
3453            ApiStatus::InvalidCredentials => Some("Username or Password is incorrect"),
3454            ApiStatus::InvalidDate => Some("This is not a valid date Format is: yyyy-mm-dd"),
3455            ApiStatus::InvalidDaterange => Some("Date Range should be 92 days or less"),
3456            ApiStatus::InvalidDatetime => {
3457                Some("This is not a valid datetime Format is: yyyy-mm-dd hh:mm:ss")
3458            }
3459            ApiStatus::InvalidDateFrom => {
3460                Some("The \"From\" date should be prior to the \"To\" date.")
3461            }
3462            ApiStatus::InvalidDayrange => Some("This is not a valid Day Range"),
3463            ApiStatus::InvalidDelayBefore => Some("This is not a valid DelayBefore"),
3464            ApiStatus::InvalidDeletemessage => {
3465                Some("This is not a valid DeleteMessage Should be: yes/no")
3466            }
3467            ApiStatus::InvalidDescription => Some("This is not a valid Description"),
3468            ApiStatus::InvalidDestination => Some("This is not a valid Destination"),
3469            ApiStatus::InvalidDestinationFolder => Some("This is not a valid Destination Folder"),
3470            ApiStatus::InvalidDevicetype => Some("This is not a valid Device Type"),
3471            ApiStatus::InvalidDialtime => Some("This is not a valid Dialtime"),
3472            ApiStatus::InvalidDID => Some("This is not a valid DID"),
3473            ApiStatus::InvalidDigits => {
3474                Some("These are not valid DigitsOrderDIDVirtual: Digits must be 3 numbers")
3475            }
3476            ApiStatus::InvalidDigitTimeout => Some("This is not a valid DigitTimeOut"),
3477            ApiStatus::InvalidDISA => Some("This is not a valid DISA"),
3478            ApiStatus::InvalidDiversionHeader => Some(
3479                "This is not a valid Diversion Header. It must be a numeric value, accepting only 0 or 1.",
3480            ),
3481            ApiStatus::InvalidDropSilence => Some("This is not a valid \"drop silence\" value"),
3482            ApiStatus::InvalidDST => Some("This is not a valid Destination Number"),
3483            ApiStatus::InvalidDtmfmode => Some("This is no a valid DTMF Mode"),
3484            ApiStatus::InvalidDTMFDigits => Some("This is no a valid DTMF digit"),
3485            ApiStatus::InvalidEmail => {
3486                Some("This is not a valid email or email is already in database")
3487            }
3488            ApiStatus::InvalidEmailAttachmentFormat => Some("This is not a valid format value"),
3489            ApiStatus::InvalidEmailEnable => Some("This is not a valid email enable value"),
3490            ApiStatus::InvalidEnableIPRestriction => {
3491                Some("This is not a valid Enable IP Restriction value")
3492            }
3493            ApiStatus::InvalidEnablePOPRestriction => {
3494                Some("This is not a valid Enable POP Restriction value")
3495            }
3496            ApiStatus::InvalidEndhour => Some("This is not a valid End Hour"),
3497            ApiStatus::InvalidEndminute => Some("This is not a valid End Minute"),
3498            ApiStatus::InvalidExtension => {
3499                Some("This is not a valid extension Extension can only contain digits")
3500            }
3501            ApiStatus::InvalidExtensions => Some(
3502                "Extensions cannot be: 098, 211, 311, 411, 4443, 4444, 4747, 511, 711, 811, 822, 911, 988",
3503            ),
3504            ApiStatus::InvalidExtensionLength => {
3505                Some("Extensions should not contain more than 5 digits")
3506            }
3507            ApiStatus::InvalidExtensionPrefix => Some("Extensions cannot start with: 068, 097"),
3508            ApiStatus::InvalidFailoverHeader => {
3509                Some("This is not a valid failover header Should be: account/vm/fwd/none")
3510            }
3511            ApiStatus::InvalidFAXID => Some("This is not a valid Fax Message ID"),
3512            ApiStatus::InvalidFile => Some("This is not a valid File"),
3513            ApiStatus::InvalidFilter => Some("This is not a valid Filter"),
3514            ApiStatus::InvalidFirstname => Some("First name is missing or the format is invalid."),
3515            ApiStatus::InvalidFocEnddate => {
3516                Some("Invalid date format, must be: YYYY-mm-dd. Example: 2018-02-22")
3517            }
3518            ApiStatus::InvalidFocStartdate => {
3519                Some("Invalid date format, must be: YYYY-mm-dd. Example: 2018-02-22")
3520            }
3521            ApiStatus::InvalidFolder => Some("This is not a valid Folder"),
3522            ApiStatus::InvalidFolderID => Some("This is not a valid Fax Folder ID"),
3523            ApiStatus::InvalidForwarding => Some("This is not a valid forwarding"),
3524            ApiStatus::InvalidForwardingDID => Some("Forwarding to the same did is not allowed"),
3525            ApiStatus::InvalidForwardEnable => Some("This is not a valid forward enable value"),
3526            ApiStatus::InvalidFrequencyAnnouncement => {
3527                Some("This is not a valid Frequency announce")
3528            }
3529            ApiStatus::InvalidFromNumber => Some("This is not a valid sender number."),
3530            ApiStatus::InvalidFullname => Some("This is not a valid Full Name"),
3531            ApiStatus::InvalidID => Some("This is not a valid ID"),
3532            ApiStatus::InvalidIfAnnouncePositionEnabledReportE => {
3533                Some("This is not a Report estimated hold time type")
3534            }
3535            ApiStatus::InvalidInternaldialtime => {
3536                Some("This is not a valid Internal Dialtime Should be: 1 to 60")
3537            }
3538            ApiStatus::InvalidInternalvoicemail => Some("This is not a valid Internal Voicemail"),
3539            ApiStatus::InvalidInternationalroute => Some("This is not a valid International Route"),
3540            ApiStatus::InvalidInvoiceType => {
3541                Some("Invalid invoice type, possible values: 0 = US, 1 = CAN.")
3542            }
3543            ApiStatus::InvalidIP => Some("This is an invalid IP"),
3544            ApiStatus::InvalidIPAuth => {
3545                Some("Do not provide an IP address for User/Pass Authentication")
3546            }
3547            ApiStatus::InvalidIPIax2 => Some("Do not provide an IP address for IAX2"),
3548            ApiStatus::InvalidIVR => Some("This is not a valid IVR"),
3549            ApiStatus::InvalidJitterBuffer => Some("This is not a valid \"jitter buffer\" value"),
3550            ApiStatus::InvalidJoinAnnouncement => {
3551                Some("This is not a valid 'Join Announcement' Type for a Queue")
3552            }
3553            ApiStatus::InvalidJoinEmptyType => {
3554                Some("This is not a valid 'JoinWhenEmpty' Type for a Queue")
3555            }
3556            ApiStatus::InvalidLanguage => Some("This is not a valid Language Should be: es/en/fr"),
3557            ApiStatus::InvalidLastname => Some("Lastname is missing or the format is invalid."),
3558            ApiStatus::InvalidListened => Some("This is not a valid Listened value"),
3559            ApiStatus::InvalidLocation => Some("This is not a valid Location"),
3560            ApiStatus::InvalidLockinternational => Some("This is not a valid Lock International"),
3561            ApiStatus::InvalidMailbox => Some("This is not a valid mailbox"),
3562            ApiStatus::InvalidMaximumCallers => Some("This is not a valid maximum callers value"),
3563            ApiStatus::InvalidMaximumWaitTime => {
3564                Some("This is not a valid maximum wait time value")
3565            }
3566            ApiStatus::InvalidMaxExpiry => {
3567                Some("This is not a valid Max Expiry (value must be between 60 and 3600 seconds)")
3568            }
3569            ApiStatus::InvalidMember => Some("This is not a valid Member"),
3570            ApiStatus::InvalidMemberDelay => Some("This is not a valid Member Delay"),
3571            ApiStatus::InvalidMessageNum => Some("This is not a valid Voicemail Message Number"),
3572            ApiStatus::InvalidMethod => Some("This is not a valid Method"),
3573            ApiStatus::InvalidMinute => Some("This is not a valid Minute Rate"),
3574            ApiStatus::InvalidMixedNumbers => {
3575                Some("Toll-free numbers and local numbers can not be mixed in the same order.")
3576            }
3577            ApiStatus::InvalidMonthly => Some("This is not a valid Montly Fee"),
3578            ApiStatus::InvalidMusiconhold => Some("This is not a valid Music on Hold"),
3579            ApiStatus::InvalidName => Some("This is not a valid name, Alphanumeric Only"),
3580            ApiStatus::InvalidNAT => Some("This is not a valid NAT"),
3581            ApiStatus::InvalidNote => {
3582                Some("This is not a valid Note, lenght should be less than 50 chars")
3583            }
3584            ApiStatus::InvalidNumber => Some("This is not a valid Number"),
3585            ApiStatus::InvalidNumbermembers => Some(
3586                "The element format of multiple data is not correct or it size does not match with other elements",
3587            ),
3588            ApiStatus::InvalidNumberCanadian => {
3589                Some("You have entered a Canadian number (not valid in this portability process).")
3590            }
3591            ApiStatus::InvalidNumberExist => Some("The number is already in our network"),
3592            ApiStatus::InvalidNumberFAX => {
3593                Some("The Fax number can not be ported into our network")
3594            }
3595            ApiStatus::InvalidNumberPorttype => {
3596                Some("You have entered a local number (not valid in this portability process)")
3597            }
3598            ApiStatus::InvalidNumberUS => {
3599                Some("You have entered a USA number (not valid in this portability process).")
3600            }
3601            ApiStatus::InvalidOrder => Some("This is not a valid \"order\" value"),
3602            ApiStatus::InvalidPackage => Some("This is not a valid Package"),
3603            ApiStatus::InvalidPassword => Some(
3604                "This is not a valid passwordVoicemail: Must be 4 Digits SubAccounts: More than 6 chars, Must Contain Alphanumeric and !#$%&/()=?*[]_:.,{}+-",
3605            ),
3606            ApiStatus::InvalidPasswordAuth => {
3607                Some("Do not provide a Password for IP Authentication")
3608            }
3609            ApiStatus::InvalidPasswordIlegalCharacters => Some(
3610                "This is not a valid password (Allowed characters: Alphanumeric and ! # $ % & / ( ) = ? * [ ] _ : . , { } + -)",
3611            ),
3612            ApiStatus::InvalidPasswordLessthan8charactersLong => {
3613                Some("This is not a valid password (Less than 8 characters long)")
3614            }
3615            ApiStatus::InvalidPasswordMissingLowercase => {
3616                Some("This is not a valid password (Missing lower case character)")
3617            }
3618            ApiStatus::InvalidPasswordMissingNumber => {
3619                Some("This is not a valid password (Missing a number)")
3620            }
3621            ApiStatus::InvalidPasswordMissingUppercase => {
3622                Some("This is not a valid password (Missing upper case character)")
3623            }
3624            ApiStatus::InvalidPause => Some("This is not a valid Pause"),
3625            ApiStatus::InvalidPayment => Some("This is not a valid Payment"),
3626            ApiStatus::InvalidPhonebook => Some("This is not a valid Phonebook"),
3627            ApiStatus::InvalidPhonenumber => Some("This is not a valid Phone Number"),
3628            ApiStatus::InvalidPIN => Some("This is not a valid PIN"),
3629            ApiStatus::InvalidPINNumber => Some("Must provide the account PIN number."),
3630            ApiStatus::InvalidPlayinstructions => {
3631                Some("This is not a valid PlayInstructions Should be: u/su")
3632            }
3633            ApiStatus::InvalidPOPRestriction => Some("This is not a valid POP Restriction"),
3634            ApiStatus::InvalidPortingid => Some("The given ID is invalid or doesn't exist."),
3635            ApiStatus::InvalidPorttype => Some("Must provide a valid port type."),
3636            ApiStatus::InvalidPortStatus => Some(
3637                "The status code is invalid. (You can use the values returned by the method getListStatus)",
3638            ),
3639            ApiStatus::InvalidPriority => Some("This is not a valid Priority"),
3640            ApiStatus::InvalidPriorityWeight => Some("This is not valid weight/priority value"),
3641            ApiStatus::InvalidProtocol => Some("This is not a valid Protocol"),
3642            ApiStatus::InvalidProviderAccount => {
3643                Some("You must provide your account # with the current provider")
3644            }
3645            ApiStatus::InvalidProviderName => Some("You must provide the service provider name"),
3646            ApiStatus::InvalidProvince => Some("This is not a valid Province"),
3647            ApiStatus::InvalidQuantity => Some("This is not a valid quantity"),
3648            ApiStatus::InvalidQuery => Some("This is not a valid Query"),
3649            ApiStatus::InvalidQueue => Some("This is not a valid Queue"),
3650            ApiStatus::InvalidQuiet => Some("This is not a valid \"quiet\" value"),
3651            ApiStatus::InvalidRecording => Some("This is not a valid recording"),
3652            ApiStatus::InvalidRecordingSoundErrorMenu => {
3653                Some("\"error menu\" is not a valid recording")
3654            }
3655            ApiStatus::InvalidRecordingSoundGetPIN => Some("\"get pin\" is not a valid recording"),
3656            ApiStatus::InvalidRecordingSoundHasJoined => {
3657                Some("\"has_joined\" is not a valid recording")
3658            }
3659            ApiStatus::InvalidRecordingSoundHasLeft => {
3660                Some("\"has_left\" is not a valid recording")
3661            }
3662            ApiStatus::InvalidRecordingSoundInvalidPIN => {
3663                Some("\"invalid pin\" is not a valid recording")
3664            }
3665            ApiStatus::InvalidRecordingSoundJoin => Some("\"join\" is not a valid recording"),
3666            ApiStatus::InvalidRecordingSoundKicked => Some("\"kicked\" is not a valid recording"),
3667            ApiStatus::InvalidRecordingSoundLeave => Some("\"leave\" is not a valid recording"),
3668            ApiStatus::InvalidRecordingSoundLocked => Some("\"locked\" is not a valid recording"),
3669            ApiStatus::InvalidRecordingSoundLockedNow => {
3670                Some("\"locked now\" is not a valid recording")
3671            }
3672            ApiStatus::InvalidRecordingSoundMuted => Some("\"muted\" is not a valid recording"),
3673            ApiStatus::InvalidRecordingSoundOnlyOne => {
3674                Some("\"only one\" is not a valid recording")
3675            }
3676            ApiStatus::InvalidRecordingSoundOnlyPerson => {
3677                Some("\"only person\" is not a valid recording")
3678            }
3679            ApiStatus::InvalidRecordingSoundOtherInParty => {
3680                Some("\"other in party\" is not a valid recording")
3681            }
3682            ApiStatus::InvalidRecordingSoundParticipantsMuted => {
3683                Some("\"participants muted\" is not a valid recording")
3684            }
3685            ApiStatus::InvalidRecordingSoundParticipantsUnmuted => {
3686                Some("\"participants unmuted\" is not a valid recording")
3687            }
3688            ApiStatus::InvalidRecordingSoundPlaceIntoConference => {
3689                Some("\"place into conference\" is not a valid recording")
3690            }
3691            ApiStatus::InvalidRecordingSoundThereAre => {
3692                Some("\"there are\" is not a valid recording")
3693            }
3694            ApiStatus::InvalidRecordingSoundUnlockedNow => {
3695                Some("\"unlocked now\" is not a valid recording")
3696            }
3697            ApiStatus::InvalidRecordingSoundUnmuted => Some("\"unmuted\" is not a valid recording"),
3698            ApiStatus::InvalidRecordCalls => Some("Record calls is not valid."),
3699            ApiStatus::InvalidReportHoldTimeAgent => {
3700                Some("This is not a valid Report hold time agent")
3701            }
3702            ApiStatus::InvalidResellerclient => Some("This is not a valid Reseller Client"),
3703            ApiStatus::InvalidResellernextbilling => Some(
3704                "This is not a valid Reseller Next Billing date, date should not be set in the past.",
3705            ),
3706            ApiStatus::InvalidResellerpackage => Some("This is not a valid Reseller Package"),
3707            ApiStatus::InvalidResponseTimeout => Some("This is not a valid ResponseTimeOut"),
3708            ApiStatus::InvalidRetryTimer => Some("This is not a valid Retry timer"),
3709            ApiStatus::InvalidRinggroup => Some("This is not a valid Ring group"),
3710            ApiStatus::InvalidRingInuse => Some("This is not a valid Ring in use value"),
3711            ApiStatus::InvalidRoute => Some("This is not a valid Route"),
3712            ApiStatus::InvalidRoutingHeader => {
3713                Some("This is not a valid Routing header Should be: account/vm/fwd")
3714            }
3715            ApiStatus::InvalidRTPHoldTimeout => Some(
3716                "This is not a valid RTP Hold Time Out (value must be between 1 and 3600 seconds)",
3717            ),
3718            ApiStatus::InvalidRTPTimeout => {
3719                Some("This is not a valid RTP Time Out (value must be between 1 and 3600 seconds)")
3720            }
3721            ApiStatus::InvalidSaycallerid => {
3722                Some("This is not a valid SayCallerID Should be: yes/no")
3723            }
3724            ApiStatus::InvalidSaytime => Some("This is not a valid SayTime Should be: yes/no"),
3725            ApiStatus::InvalidSecurityCode => {
3726                Some("This is not a valid Security Code. Should be alphanumeric.")
3727            }
3728            ApiStatus::InvalidServerpop => Some("This is not a valid Server POP"),
3729            ApiStatus::InvalidSetup => Some("This is not a valid Setup Fee"),
3730            ApiStatus::InvalidSilenceThreshold => {
3731                Some("This is not a valid \"silence threshold\" value")
3732            }
3733            ApiStatus::InvalidSIPURI => Some("This is not a valid SIPURI"),
3734            ApiStatus::InvalidSIPTraffic => Some("This is not a valid Encrypted SIP Traffic value"),
3735            ApiStatus::InvalidSkippassword => {
3736                Some("This is not a valid skippassword Should be: 1/0 - or - yes/no")
3737            }
3738            ApiStatus::InvalidSmppPassword => Some("This is not a valid SMPP Password"),
3739            ApiStatus::InvalidSmppURL => Some("This is not a valid SMPP URL"),
3740            ApiStatus::InvalidSmppUsername => Some("This is not a valid SMPP Username"),
3741            ApiStatus::InvalidSMS => Some("This is not a valid SMS"),
3742            ApiStatus::InvalidSMSForward => Some("This is not a valid SMS forward"),
3743            ApiStatus::InvalidSnn => Some("Must provide the 4 last digits of the SSN."),
3744            ApiStatus::InvalidSpeedDial => Some("This is not a valid Speed Dial"),
3745            ApiStatus::InvalidStarthour => Some("This is not a valid Start Hour"),
3746            ApiStatus::InvalidStartminute => Some("This is not a valid Start Minute"),
3747            ApiStatus::InvalidStartMuted => Some("This is not a valid Start Muted"),
3748            ApiStatus::InvalidState => Some("This is not a valid State"),
3749            ApiStatus::InvalidStatementName => {
3750                Some("Statement Name is missing or the format is invalid.")
3751            }
3752            ApiStatus::InvalidStrategy => Some("This is not a valid Ring Strategy"),
3753            ApiStatus::InvalidStreetName => Some("This is not a valid Street Name"),
3754            ApiStatus::InvalidStreetNumber => Some("This is not a valid Street Number"),
3755            ApiStatus::InvalidTalkingThreshold => {
3756                Some("This is not a valid \"talking threshold\" value")
3757            }
3758            ApiStatus::InvalidTalkDetection => Some("This is not a valid talk detection value"),
3759            ApiStatus::InvalidTfnumberPorttype => {
3760                Some("You have entered a toll-free number (not valid in this portability process).")
3761            }
3762            ApiStatus::InvalidThankyouForYourPatience => {
3763                Some("This is not a valid Thankyou for your patience value")
3764            }
3765            ApiStatus::InvalidThreshold => Some(
3766                "This is not a valid Threshold Amount. The Threshold Amount should be between 1 and 250",
3767            ),
3768            ApiStatus::InvalidTimecondition => Some("This is not a valid Time Condition"),
3769            ApiStatus::InvalidTimeout => Some("This is not a valid timeout"),
3770            ApiStatus::InvalidTimerange => Some("This is not a valid Timer Range"),
3771            ApiStatus::InvalidTimezone => Some(
3772                "This is not a valid TimezoneCDR and resellerCDR: Must be numeric Voicemail: Values from getTimezone",
3773            ),
3774            ApiStatus::InvalidToNumber => Some("This is not a valid destination number"),
3775            ApiStatus::InvalidTranscriptionEmail => Some("Transcription email is not valid"),
3776            ApiStatus::InvalidTranscriptionFormat => Some("Invalid Transcription Format"),
3777            ApiStatus::InvalidTranscriptionLocale => Some("Transcription locale is not valid."),
3778            ApiStatus::InvalidTranscriptionRedaction => Some("Invalid Transcription Redaction"),
3779            ApiStatus::InvalidTranscriptionSentiment => Some("Invalid Transcription Sentiment"),
3780            ApiStatus::InvalidTranscriptionSummary => Some("Invalid Transcription Summary"),
3781            ApiStatus::InvalidType => Some("This is not a valid Type"),
3782            ApiStatus::InvalidUrgent => Some("This is not valid urgent value"),
3783            ApiStatus::InvalidUsername => Some("This is not a valid Username"),
3784            ApiStatus::InvalidVoicemailsetup => Some("This is not a valid voicemail"),
3785            ApiStatus::InvalidVoiceAnnouncement => Some("This is not a valid Voice announce"),
3786            ApiStatus::InvalidWeekdayend => Some("This is not a valid Week End"),
3787            ApiStatus::InvalidWeekdaystart => Some("This is not a valid Week Start"),
3788            ApiStatus::InvalidWrapupTime => Some("This is not a valid Wrapup time"),
3789            ApiStatus::InvalidZip => Some("Zip Code is missing or the format is invalid."),
3790            ApiStatus::IPNotEnabled => Some("This IP is not enabled for API use"),
3791            ApiStatus::LimitReached => Some(
3792                "You have reached the maximum number of messages allowed per day. - SMS limit using the API. - Fax limit applies using any method.",
3793            ),
3794            ApiStatus::LocationAlreadyExists => Some("A location with this name already exists"),
3795            ApiStatus::LocationLinkedToSubaccount => {
3796                Some("This location is in use by one or more sub accounts and cannot be deleted")
3797            }
3798            ApiStatus::LocationNotFound => Some("The specified location could not be found"),
3799            ApiStatus::MaxPhonebook => {
3800                Some("Your account is limited to 8 SIP, IAX or SIP URI members")
3801            }
3802            ApiStatus::MembersExceeded => {
3803                Some("You have reached the maximum allowed entries for the Phonebook")
3804            }
3805            ApiStatus::MemberAlreadyIncluded => Some("The member has been included already"),
3806            ApiStatus::MessageEmpty => Some("The SMS Message is empty"),
3807            ApiStatus::MessageNotFound => Some("The voicemail message was not found"),
3808            ApiStatus::MethodMaintenance => Some("This API method is under maintenance"),
3809            ApiStatus::MismatchEmailConfirm => Some("e-mail confirm does not match with e-mail"),
3810            ApiStatus::MismatchPasswordConfirm => {
3811                Some("Pasword confirm does not match with Password")
3812            }
3813            ApiStatus::MissingAccount => Some("Account was not provided"),
3814            ApiStatus::MissingAddress => Some("Address was not provided"),
3815            ApiStatus::MissingAgentRingTimeout => Some("Agent ring time out was not provided"),
3816            ApiStatus::MissingAllowedcodecs => Some("Allowed Codecs were not provided"),
3817            ApiStatus::MissingAttachmessage => Some("AttachMessage was not provided"),
3818            ApiStatus::MissingAuthtype => Some("Auth Type was not provided"),
3819            ApiStatus::MissingBalancemanagement => Some("BalanceManagemente was not provided"),
3820            ApiStatus::MissingBillingtype => Some("Billing Type was not provided"),
3821            ApiStatus::MissingCallback => Some("Callback was not provided"),
3822            ApiStatus::MissingCallerid => Some("CallerID was not provided"),
3823            ApiStatus::MissingCallhunting => Some("Call hunting was not provided"),
3824            ApiStatus::MissingCallparking => Some("Call Parking was not provided"),
3825            ApiStatus::MissingCallrecording => Some("Call recording was not provided"),
3826            ApiStatus::MissingCarrier => Some("Carrier was not provided"),
3827            ApiStatus::MissingCharge => Some("Charge was not provided."),
3828            ApiStatus::MissingChoices => Some("Choices was not provided"),
3829            ApiStatus::MissingCity => Some("City was not provided"),
3830            ApiStatus::MissingClient => Some("Client was not provided"),
3831            ApiStatus::MissingCNAM => Some("CNAM was not provided"),
3832            ApiStatus::MissingCodec => Some("Codec was not provided"),
3833            ApiStatus::MissingConference => Some("Conference was not provided"),
3834            ApiStatus::MissingCountry => Some("Country was not provided"),
3835            ApiStatus::MissingCountryid => Some("Country ID was not provided"),
3836            ApiStatus::MissingCredentials => Some("Username or Password was not provided"),
3837            ApiStatus::MissingDatetime => Some("DateTime value was not provided"),
3838            ApiStatus::MissingDelayBefore => Some("DelayBefore was not provided"),
3839            ApiStatus::MissingDeletemessage => Some("DeleteMessage was not provided"),
3840            ApiStatus::MissingDescription => Some("Description was not provided"),
3841            ApiStatus::MissingDevicetype => Some("Device Type was not provided"),
3842            ApiStatus::MissingDialtime => Some("Dialtime was not provided"),
3843            ApiStatus::MissingDID => Some("DID was not provided"),
3844            ApiStatus::MissingDigits => Some("Digits were not provided"),
3845            ApiStatus::MissingDigitTimeout => Some("DigitTimeOut was not provided"),
3846            ApiStatus::MissingDISA => Some("DISA was not provided"),
3847            ApiStatus::MissingDtmfmode => Some("DTMF Mode was not provided"),
3848            ApiStatus::MissingEmail => Some("e-mail was not provided"),
3849            ApiStatus::MissingEmailConfirm => Some("e-mail confirm was not provided"),
3850            ApiStatus::MissingEnable => Some("Enable was not provided"),
3851            ApiStatus::MissingEndhour => Some("End Hour was not provided"),
3852            ApiStatus::MissingEndminute => Some("End Minute was not provided"),
3853            ApiStatus::MissingFailoverBusy => Some("Failover Busy was not provided"),
3854            ApiStatus::MissingFailoverNoanswer => Some("Failover NoAnswer was not provided"),
3855            ApiStatus::MissingFailoverUnreachable => Some("Failover Unreachable was not provided"),
3856            ApiStatus::MissingFile => Some("File was not provided"),
3857            ApiStatus::MissingFilter => Some("Filter was not provided"),
3858            ApiStatus::MissingFirstname => Some("Firstname was not provided"),
3859            ApiStatus::MissingFolder => Some("folder was not provided"),
3860            ApiStatus::MissingForwarding => Some("Forwarding was not provided"),
3861            ApiStatus::MissingFromDate => Some("From date was not provided"),
3862            ApiStatus::MissingFullname => Some("Full Name was not provided"),
3863            ApiStatus::MissingID => Some("ID was not provided"),
3864            ApiStatus::MissingIfAnnouncePositionEnabledReportE => Some(
3865                "If announce position enabled report estimated hold time' type was not provided",
3866            ),
3867            ApiStatus::MissingInternationalroute => Some("International Route was not provided"),
3868            ApiStatus::MissingIP => {
3869                Some("You need to provide an IP if you select IP Authentication Method")
3870            }
3871            ApiStatus::MissingIPH323 => Some("You must enter an IP Address for H.323"),
3872            ApiStatus::MissingIPRestriction => Some("IP Restriction was not provided"),
3873            ApiStatus::MissingIVR => Some("IVR was not provided"),
3874            ApiStatus::MissingJoinWhenEmpty => Some("JoinWhenEmpty' type was not provided"),
3875            ApiStatus::MissingLanguage => Some("Language was not provided"),
3876            ApiStatus::MissingLastname => Some("Lastname was not provided"),
3877            ApiStatus::MissingLeaveWhenEmpty => Some("LeaveWhenEmpty' type was not provided"),
3878            ApiStatus::MissingLength => Some("Length was not provided"),
3879            ApiStatus::MissingListened => Some("Listened code was not provided"),
3880            ApiStatus::MissingLocation => Some("Location was not provided"),
3881            ApiStatus::MissingLocationName => Some("Location Name Missing"),
3882            ApiStatus::MissingLockinternational => Some("Lock International was not provided"),
3883            ApiStatus::MissingMailbox => Some("Mailbox was not provided"),
3884            ApiStatus::MissingMember => Some("Member was not provided"),
3885            ApiStatus::MissingMembers => Some("You need at least 1 member to create a ring group"),
3886            ApiStatus::MissingMessageNum => Some("Voicemail message number was not provided"),
3887            ApiStatus::MissingMethod => {
3888                Some("Method must be provided when using the REST/JSON API")
3889            }
3890            ApiStatus::MissingMinute => Some("Minute Rate was not provided"),
3891            ApiStatus::MissingMonthly => Some("Monthly Fee was not provided"),
3892            ApiStatus::MissingMusiconhold => Some("Music on Hold was not provided"),
3893            ApiStatus::MissingName => Some("Name was not provided"),
3894            ApiStatus::MissingNAT => Some("NAT was not provided"),
3895            ApiStatus::MissingNumber => Some("Number was not provided"),
3896            ApiStatus::MissingNumbers => Some("You must enter at least one valid phone number."),
3897            ApiStatus::MissingPackage => Some("Package was not provided"),
3898            ApiStatus::MissingParams => Some("Required parameters were not provided"),
3899            ApiStatus::MissingPassword => Some("Password was not provided"),
3900            ApiStatus::MissingPasswordConfirm => Some("Password Confirm was not provided"),
3901            ApiStatus::MissingPayment => Some("Payment was not provided."),
3902            ApiStatus::MissingPhonebook => Some("Phonebook was not provided"),
3903            ApiStatus::MissingPhonenumber => Some("Phone Number was not provided"),
3904            ApiStatus::MissingPIN => Some("PIN was not provided"),
3905            ApiStatus::MissingPlayinstructions => Some("PlayInstructions was not provided"),
3906            ApiStatus::MissingPOPRestriction => Some("POP Restriction was not provided"),
3907            ApiStatus::MissingPriority => Some("Priority was not provided"),
3908            ApiStatus::MissingPriorityWeight => Some("Priority/Weight was not provided"),
3909            ApiStatus::MissingProtocol => Some("Protocol was not provided"),
3910            ApiStatus::MissingProvince => Some("Province was not provided"),
3911            ApiStatus::MissingQuery => Some("Query was not provided"),
3912            ApiStatus::MissingRecording => Some("Recording was not provided"),
3913            ApiStatus::MissingReportHoldTimeAgent => {
3914                Some("Report hold time agent was not provided")
3915            }
3916            ApiStatus::MissingResellerclient => {
3917                Some("Provide a Reseller Client or don't provide a Reseller Package")
3918            }
3919            ApiStatus::MissingResellerpackage => {
3920                Some("Provide a Reseller Package or don't provide a Reseller Client")
3921            }
3922            ApiStatus::MissingResponseTimeout => Some("ResponseTimeOut was not provided"),
3923            ApiStatus::MissingRinggroup => Some("Ring group was not provided"),
3924            ApiStatus::MissingRingInuse => Some("Ring in use was not provided"),
3925            ApiStatus::MissingRingStrategy => Some("Ring strategy was not provided"),
3926            ApiStatus::MissingRoute => Some("Route was not provided"),
3927            ApiStatus::MissingRouting => Some("Routing was not provided"),
3928            ApiStatus::MissingSaycallerid => Some("SayCallerID was not provided"),
3929            ApiStatus::MissingSaytime => Some("SayTime was not provided"),
3930            ApiStatus::MissingServerpop => Some("Server POP was not provided"),
3931            ApiStatus::MissingSetup => Some("Setup Fee was not provided"),
3932            ApiStatus::MissingSIPURI => Some("SIPURI was not provided"),
3933            ApiStatus::MissingSkippassword => Some("SkipPassword was not provided"),
3934            ApiStatus::MissingSMS => Some("SMS was not provided"),
3935            ApiStatus::MissingSpeedDial => Some("Speed Dial was not provided"),
3936            ApiStatus::MissingStart => Some("Start date was not provided"),
3937            ApiStatus::MissingStarthour => Some("Start Hour was not provided"),
3938            ApiStatus::MissingStartminute => Some("Start Minute was not provided"),
3939            ApiStatus::MissingState => Some("State was not provided"),
3940            ApiStatus::MissingStreetName => Some("Street Name was not provided"),
3941            ApiStatus::MissingStreetNumber => Some("Street Number was not provided"),
3942            ApiStatus::MissingThankyouForYourPatience => {
3943                Some("Thankyou for your patience was not provided")
3944            }
3945            ApiStatus::MissingTimecondition => Some("Time Condition was not provided"),
3946            ApiStatus::MissingTimeout => Some("Timeout was not provided"),
3947            ApiStatus::MissingTimezone => Some("Timezone was not provided"),
3948            ApiStatus::MissingToDate => Some("To date was not provided"),
3949            ApiStatus::MissingTranscriptionEmail => Some("Transcription email is required."),
3950            ApiStatus::MissingTranscriptionLocale => Some("Transcription locale is required."),
3951            ApiStatus::MissingType => Some("Type was not provided"),
3952            ApiStatus::MissingUrgent => Some("Urgent code was not provided"),
3953            ApiStatus::MissingURI => Some("URI was not provided"),
3954            ApiStatus::MissingUsername => Some("Username was not provided"),
3955            ApiStatus::MissingVoicemailsetup => Some("Voice mail setup was not provided"),
3956            ApiStatus::MissingWeekdayend => Some("Week End was not provide"),
3957            ApiStatus::MissingWeekdaystart => Some("Week Start was not provided"),
3958            ApiStatus::MissingZip => Some("Zip Code was not provided"),
3959            ApiStatus::MovingFail => Some("The Fax Message was not moved"),
3960            ApiStatus::NameToolong => Some("The name exceeds character size limit"),
3961            ApiStatus::NonSufficientFunds => {
3962                Some("Your account does not have sufficient funds to proceed")
3963            }
3964            ApiStatus::NoteToolong => Some("The note exceeds character size limit"),
3965            ApiStatus::NoAccount => Some("There are no accounts"),
3966            ApiStatus::NoAttachments => Some("Theres no attachments records to show."),
3967            ApiStatus::NoBase64file => Some("File not encoded in base64"),
3968            ApiStatus::NoCallback => Some("There are not Callbacks"),
3969            ApiStatus::NoCallhunting => Some("There are no Call Huntings"),
3970            ApiStatus::NoCallparking => Some("There are no Call Parking"),
3971            ApiStatus::NoCallstatus => Some(
3972                "No Call Status was provided. One of the following parameters needs to be set to \"1\": answered, noanswer, busy, failed",
3973            ),
3974            ApiStatus::NoCDR => Some("There are no CDR entries for the filter"),
3975            ApiStatus::NoChangeBillingtype => Some("Imposible change DID billing plan"),
3976            ApiStatus::NoClient => Some("There are no Clients"),
3977            ApiStatus::NoConference => Some("There are no Conferences"),
3978            ApiStatus::NoDID => Some("There are no DIDs"),
3979            ApiStatus::NoDISA => Some("There are no DISAs"),
3980            ApiStatus::NoEmailtofax => Some("There are no Email to Fax entries"),
3981            ApiStatus::NoFilter => Some("There are no Filters"),
3982            ApiStatus::NoFolder => Some("There are no Fax Folders"),
3983            ApiStatus::NoForwarding => Some("There was no Forwarding"),
3984            ApiStatus::NoIVR => Some("There are no ivr"),
3985            ApiStatus::NoMailbox => Some("There are no Mailboxes"),
3986            ApiStatus::NoMember => Some("There are no Static Members"),
3987            ApiStatus::NoMessage => Some("There are no Fax Message(s)"),
3988            ApiStatus::NoMessages => Some("There are no Voicemail Message(s)"),
3989            ApiStatus::NoNumbers => Some("There are no Fax Numbers"),
3990            ApiStatus::NoPackage => Some("there are no Packages"),
3991            ApiStatus::NoPhonebook => Some("There are no Phonebook entries"),
3992            ApiStatus::NoPhonebookGroup => Some("There are no Phonebook Groups"),
3993            ApiStatus::NoProvision => Some(
3994                "E911 service wasn't activated, this response comes with a description of the error.",
3995            ),
3996            ApiStatus::NoProvisionUpdate => Some(
3997                "E911 service wasn't updated, this response comes with a description of the error.",
3998            ),
3999            ApiStatus::NoQueue => Some("There are no Queue entries"),
4000            ApiStatus::NoRate => Some("There are no Rates"),
4001            ApiStatus::NoRecording => Some("There are no recordings"),
4002            ApiStatus::NoRinggroup => Some("There are no Ring groups"),
4003            ApiStatus::NoSequences => Some("No sequence has been found"),
4004            ApiStatus::NoSIPURI => Some("There are no SIP URIs"),
4005            ApiStatus::NoSMS => Some("There are no SMS messages"),
4006            ApiStatus::NoTimecondition => Some("There are no Time Conditions"),
4007            ApiStatus::NoTransactions => Some("There are no transactions"),
4008            ApiStatus::NoVPRI => Some("There are no vPRIs"),
4009            ApiStatus::OrderFailed => Some("The order wasn't completed."),
4010            ApiStatus::ProblemSendingMail => Some("There was a problem sending an email."),
4011            ApiStatus::ProviderOutofservice => Some("One of our providers is out of service"),
4012            ApiStatus::RecordingInUseCallerIDFiltering => {
4013                Some("You have a Caller ID Filtering using this Recording")
4014            }
4015            ApiStatus::RecordingInUseCallerTimecondition => {
4016                Some("You have a Time Condition using this Recording")
4017            }
4018            ApiStatus::RecordingInUseDID => Some("You have a DID using this Recording"),
4019            ApiStatus::RecordingInUseIVR => Some("You have an IVR using this Recording"),
4020            ApiStatus::RecordingInUseQueue => Some("You have a Calling Queue using this Recording"),
4021            ApiStatus::RepeatedIP => {
4022                Some("You already have a Subaccount using this IP and Protocol")
4023            }
4024            ApiStatus::ReservedIP => {
4025                Some("This is a reserved IP used by VoIP.ms or other Companies")
4026            }
4027            ApiStatus::RTPTimeoutGreaterThanRTPHoldTimeout => {
4028                Some("RTP Time Out can't be greater than RTP Hold Time Out")
4029            }
4030            ApiStatus::SameDIDBillingtype => {
4031                Some("The Billing Type provided and DID billing type are the same")
4032            }
4033            ApiStatus::SentFail => Some("The Fax Message it wasn't send."),
4034            ApiStatus::SIPURIInPhonebook => {
4035                Some("This SIPURI can't be deleted, it is mapped in the phonebook")
4036            }
4037            ApiStatus::SMSApplyRegulations => Some(
4038                "The number was not updated due to SMS regulations, please contact customer service for more information",
4039            ),
4040            ApiStatus::SMSFailed => Some("The SMS message was not sent"),
4041            ApiStatus::SMSToolong => Some("The SMS message exceeds 160 characters"),
4042            ApiStatus::SMSWaitMessage => Some(
4043                "SMS was not (Enabled/Disabled) for this DID, please wait a minute before you try again.",
4044            ),
4045            ApiStatus::TlsError => Some("Theres was a TLS error, please try later."),
4046            ApiStatus::UnableToPurchase => Some("Unable to purchase DIDs"),
4047            ApiStatus::UnavailableInfo => {
4048                Some("The information you requested is unavailable at this moment")
4049            }
4050            ApiStatus::UnsifficientStock => {
4051                Some("Theres no sufficient stock to complete the order.")
4052            }
4053            ApiStatus::UsedDescription => Some("You already have a record with this Description"),
4054            ApiStatus::UsedEmail => Some("You already have an entry with this Email"),
4055            ApiStatus::UsedExtension => Some("You already have a subaccount using this extension"),
4056            ApiStatus::UsedExtensionInLocation => {
4057                Some("You already have a subaccount using extension in this location")
4058            }
4059            ApiStatus::UsedFilter => Some("You already have a record with this Filter"),
4060            ApiStatus::UsedIP => Some("There is already another customer using this IP Address"),
4061            ApiStatus::UsedName => Some("You already have an entry using this name"),
4062            ApiStatus::UsedNumber => Some("You already have a record with this Number"),
4063            ApiStatus::UsedPassword => {
4064                Some("This password has been used previously by this account.")
4065            }
4066            ApiStatus::UsedSpeedDial => Some("You have an entry with this Speed Dial"),
4067            ApiStatus::UsedUsername => Some("You already have a subaccount using this Username."),
4068            ApiStatus::WeakPassword => Some("This Password is too weak or too common"),
4069            ApiStatus::Unknown(_) => None,
4070        }
4071    }
4072
4073    /// Whether this status is a documented code (not
4074    /// [`ApiStatus::Unknown`]).
4075    pub fn is_documented(&self) -> bool {
4076        !matches!(self, ApiStatus::Unknown(_))
4077    }
4078
4079    /// Whether this status means "the requested collection is empty,"
4080    /// rather than a failure. VoIP.ms returns a distinct `no_*` status
4081    /// for each list method when the list has no entries; the typed
4082    /// `Client` methods treat such a status as a successful empty
4083    /// response (collection fields deserialize to `None`) instead of an
4084    /// [`crate::Error::Api`], while the `*_raw` methods still surface it
4085    /// verbatim. Codes that look like `no_*` but signal a real failure
4086    /// (`no_base64file`, `no_callstatus`, `no_provision`, ...) are not
4087    /// included.
4088    pub fn is_empty(&self) -> bool {
4089        matches!(
4090            self,
4091            ApiStatus::NoAccount
4092                | ApiStatus::NoAttachments
4093                | ApiStatus::NoCallback
4094                | ApiStatus::NoCallhunting
4095                | ApiStatus::NoCallparking
4096                | ApiStatus::NoCDR
4097                | ApiStatus::NoClient
4098                | ApiStatus::NoConference
4099                | ApiStatus::NoDID
4100                | ApiStatus::NoDISA
4101                | ApiStatus::NoEmailtofax
4102                | ApiStatus::NoFilter
4103                | ApiStatus::NoFolder
4104                | ApiStatus::NoForwarding
4105                | ApiStatus::NoIVR
4106                | ApiStatus::NoMailbox
4107                | ApiStatus::NoMember
4108                | ApiStatus::NoMessage
4109                | ApiStatus::NoMessages
4110                | ApiStatus::NoNumbers
4111                | ApiStatus::NoPackage
4112                | ApiStatus::NoPhonebook
4113                | ApiStatus::NoPhonebookGroup
4114                | ApiStatus::NoQueue
4115                | ApiStatus::NoRate
4116                | ApiStatus::NoRecording
4117                | ApiStatus::NoRinggroup
4118                | ApiStatus::NoSIPURI
4119                | ApiStatus::NoSMS
4120                | ApiStatus::NoTimecondition
4121                | ApiStatus::NoTransactions
4122                | ApiStatus::NoVPRI
4123        )
4124    }
4125}
4126
4127impl std::fmt::Display for ApiStatus {
4128    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4129        f.write_str(self.as_str())
4130    }
4131}
4132
4133impl From<String> for ApiStatus {
4134    fn from(s: String) -> Self {
4135        ApiStatus::from_wire(&s)
4136    }
4137}
4138
4139impl From<&str> for ApiStatus {
4140    fn from(s: &str) -> Self {
4141        ApiStatus::from_wire(s)
4142    }
4143}
4144
4145impl serde::Serialize for ApiStatus {
4146    fn serialize<S: serde::Serializer>(&self, s: S) -> std::result::Result<S::Ok, S::Error> {
4147        s.serialize_str(self.as_str())
4148    }
4149}
4150
4151impl<'de> serde::Deserialize<'de> for ApiStatus {
4152    fn deserialize<D: serde::Deserializer<'de>>(d: D) -> std::result::Result<Self, D::Error> {
4153        let s = <String as serde::Deserialize>::deserialize(d)?;
4154        Ok(ApiStatus::from_wire(&s))
4155    }
4156}
4157
4158/// \- Adds a Charge to a specific Reseller Client
4159///
4160/// Parameters for [`Client::add_charge`] (wire method `addCharge`).
4161#[derive(Debug, Default, Clone, Serialize)]
4162pub struct AddChargeParams {
4163    /// ID for a specific Reseller Client (Example: 561115) (required)
4164    #[serde(skip_serializing_if = "Option::is_none")]
4165    pub client: Option<u64>,
4166    /// Amount of money that will be Debited from the customer (Example: 4.99)
4167    /// (required)
4168    #[serde(skip_serializing_if = "Option::is_none")]
4169    pub charge: Option<rust_decimal::Decimal>,
4170    /// Charge Description
4171    #[serde(skip_serializing_if = "Option::is_none")]
4172    pub description: Option<String>,
4173    /// Set to true if testing how adding charges works
4174    #[serde(
4175        skip_serializing_if = "crate::responses::is_false",
4176        serialize_with = "crate::responses::serialize_flag_01"
4177    )]
4178    pub test: bool,
4179}
4180
4181/// \- Add an invoice file to a portability process.
4182///
4183/// Parameters for [`Client::add_lnp_file`] (wire method `addLNPFile`).
4184#[derive(Debug, Default, Clone, Serialize)]
4185pub struct AddLNPFileParams {
4186    /// ID of the port previously created. (required)
4187    #[serde(skip_serializing_if = "Option::is_none")]
4188    pub portid: Option<u64>,
4189    /// Base 64 code of the file to be attached (required)
4190    #[serde(skip_serializing_if = "Option::is_none")]
4191    pub file: Option<String>,
4192}
4193
4194/// \- Add one or more numbers to start a portability process.
4195///
4196/// Parameters for [`Client::add_lnp_port`] (wire method `addLNPPort`).
4197#[derive(Debug, Default, Clone, Serialize)]
4198pub struct AddLNPPortParams {
4199    /// Digits from 1 to 4: 1: United States Local numbers 2: Canadian Local
4200    /// Numbers 3: US/CA Toll Free Numbers 4: United States Fax numbers 5:
4201    /// Canadian Fax Numbers (required)
4202    #[serde(skip_serializing_if = "Option::is_none", rename = "portType")]
4203    pub port_type: Option<u64>,
4204    /// DID(s) to port into VoIP.ms network (Example: 5552341234,5552341233). If
4205    /// you are porting more than one number, please separate them with commas.
4206    /// (required)
4207    #[serde(skip_serializing_if = "Option::is_none")]
4208    pub numbers: Option<String>,
4209    /// If you have more then 1 number with your current carrier and not porting
4210    /// them all, choose yes. If you are porting all the numbers, choose no.
4211    /// Please note that you still need to include all numbers you want to port.
4212    /// If you have 2 numbers and want to port both, you need to include both
4213    /// numbers in the list of numbers to port. - (Values: 1 = true, 0 = false)
4214    /// \- Default: 0
4215    #[serde(
4216        skip_serializing_if = "Option::is_none",
4217        serialize_with = "crate::responses::serialize_opt_flag_01",
4218        rename = "isPartial"
4219    )]
4220    pub is_partial: Option<bool>,
4221    /// \- (Values: 1 = Business, 0 = Residential) - Default: 0
4222    #[serde(skip_serializing_if = "Option::is_none", rename = "locationType")]
4223    pub location_type: Option<LocationType>,
4224    /// \- (Values: 1 = All the numbers are mobile numbers, 0 = false) - Default:
4225    /// 0
4226    #[serde(
4227        skip_serializing_if = "Option::is_none",
4228        serialize_with = "crate::responses::serialize_opt_flag_01",
4229        rename = "isMobile"
4230    )]
4231    pub is_mobile: Option<bool>,
4232    /// PIN Number
4233    #[serde(skip_serializing_if = "Option::is_none")]
4234    pub pin: Option<String>,
4235    /// \[Required If isMobile = 1\] BTN: It is the phone number to which all
4236    /// the other numbers of the customer are charged, in a consolidated
4237    /// telephone bill (instead of showing separate charges for each number you
4238    /// own). Please try to find the BTN on your invoice, and if you are unable
4239    /// to do so please contact the current provider to obtain it.
4240    #[serde(skip_serializing_if = "Option::is_none")]
4241    pub btn: Option<String>,
4242    /// \[Required If isMobile = 1\] Please be specific and describe ALL
4243    /// remaining services with the current carrier. This includes DSL/Data
4244    /// services, Hunt Group services, etc. Any services NOT listed below may be
4245    /// disconnected upon completion of this port order.
4246    #[serde(skip_serializing_if = "Option::is_none")]
4247    pub services: Option<String>,
4248    /// \[Required If portType = 3\] Values: 1 - American Carrier, American
4249    /// Callers Only, 2 - American Carrier, American and Canadian Callers
4250    /// allowed, 3 - Canadian Carrier
4251    #[serde(skip_serializing_if = "Option::is_none", rename = "tfType")]
4252    pub tf_type: Option<u64>,
4253    /// This is for Business numbers only. Please type your Company Name if
4254    /// applicable, otherwise leave it blank. (required)
4255    #[serde(skip_serializing_if = "Option::is_none", rename = "statementName")]
4256    pub statement_name: Option<String>,
4257    /// This is the "Customer First Name" as it appears on the CSR (Customer
4258    /// Service Record) of the losing carrier. Please Enter the first name of
4259    /// the owner of the number or the autorized contact. No company name must
4260    /// be entered in the field. (required)
4261    #[serde(skip_serializing_if = "Option::is_none", rename = "firstName")]
4262    pub first_name: Option<String>,
4263    /// This is the "Customer Last Name" as it appears on the CSR (Customer
4264    /// Service Record) of the losing carrier. Please Enter the last name of the
4265    /// owner of the number or the autorized contact. No company name must be
4266    /// entered in the field (required)
4267    #[serde(skip_serializing_if = "Option::is_none", rename = "lastName")]
4268    pub last_name: Option<String>,
4269    /// This is the "Customer Address" as it appears on the CSR (Customer
4270    /// Service Record) of the losing carrier. (required)
4271    #[serde(skip_serializing_if = "Option::is_none")]
4272    pub address1: Option<String>,
4273    /// Optional Address information (e.g: Suite 343)
4274    #[serde(skip_serializing_if = "Option::is_none")]
4275    pub address2: Option<String>,
4276    /// This is the "City" as it appears on the CSR (Customer Service Record) of
4277    /// the losing carrier. (required)
4278    #[serde(skip_serializing_if = "Option::is_none")]
4279    pub city: Option<String>,
4280    /// This is the "ZIP or Postal Code" as it appears on the CSR (Customer
4281    /// Service Record) of the losing carrier. (required)
4282    #[serde(skip_serializing_if = "Option::is_none")]
4283    pub zip: Option<String>,
4284    /// This is the "State or Province" as it appears on the CSR (Customer
4285    /// Service Record) of the losing carrier. (required)
4286    #[serde(skip_serializing_if = "Option::is_none")]
4287    pub state: Option<String>,
4288    /// This is the "Country" as it appears on the CSR (Customer Service Record)
4289    /// of the losing carrier. (required)
4290    #[serde(skip_serializing_if = "Option::is_none")]
4291    pub country: Option<String>,
4292    /// The name of your current service provider. (required)
4293    #[serde(skip_serializing_if = "Option::is_none", rename = "providerName")]
4294    pub provider_name: Option<String>,
4295    /// Your Account with your current service provider. (required)
4296    #[serde(skip_serializing_if = "Option::is_none", rename = "providerAccount")]
4297    pub provider_account: Option<String>,
4298    /// \- If you would like to include additional information regarding this
4299    /// port, you can use this parameter.
4300    #[serde(skip_serializing_if = "Option::is_none")]
4301    pub notes: Option<String>,
4302}
4303
4304/// \- Add Member to a Conference
4305///
4306/// Parameters for [`Client::add_member_to_conference`] (wire method `addMemberToConference`).
4307#[derive(Debug, Default, Clone, Serialize)]
4308pub struct AddMemberToConferenceParams {
4309    /// Specific Member ID (Example: 6547) (required)
4310    #[serde(skip_serializing_if = "Option::is_none")]
4311    pub member: Option<u64>,
4312    /// Specific Conference ID (Example: 234) (required)
4313    #[serde(skip_serializing_if = "Option::is_none")]
4314    pub conference: Option<u64>,
4315}
4316
4317/// \- Adds a Payment to a specific Reseller Client
4318///
4319/// Parameters for [`Client::add_payment`] (wire method `addPayment`).
4320#[derive(Debug, Default, Clone, Serialize)]
4321pub struct AddPaymentParams {
4322    /// ID for a specific Reseller Client (Example: 561115) (required)
4323    #[serde(skip_serializing_if = "Option::is_none")]
4324    pub client: Option<u64>,
4325    /// Amount of money that will be Credited to the customer (Example: 4.99)
4326    /// (required)
4327    #[serde(skip_serializing_if = "Option::is_none")]
4328    pub payment: Option<rust_decimal::Decimal>,
4329    /// Payment Description
4330    #[serde(skip_serializing_if = "Option::is_none")]
4331    pub description: Option<String>,
4332    /// Set to true if testing how adding payments works
4333    #[serde(
4334        skip_serializing_if = "crate::responses::is_false",
4335        serialize_with = "crate::responses::serialize_flag_01"
4336    )]
4337    pub test: bool,
4338}
4339
4340/// \- Assigns a Per Minute DID to a VPRI (Flat Rate DIDs can&rsquo;t be
4341/// assigned)
4342///
4343/// Parameters for [`Client::assign_did_vpri`] (wire method `assignDIDvPRI`).
4344#[derive(Debug, Default, Clone, Serialize)]
4345pub struct AssignDIDvPRIParams {
4346    /// Id for specific Vpri (required)
4347    #[serde(skip_serializing_if = "Option::is_none")]
4348    pub vpri: Option<u64>,
4349    /// DID Number to be assign into our Vpri (Example: 561115) (required)
4350    #[serde(skip_serializing_if = "Option::is_none")]
4351    pub did: Option<String>,
4352}
4353
4354/// \- Backorder DID (CANADA) from a specific ratecenter and province.
4355///
4356/// Parameters for [`Client::back_order_did_can`] (wire method `backOrderDIDCAN`).
4357#[derive(Debug, Default, Clone, Serialize)]
4358pub struct BackOrderDIDCANParams {
4359    /// Number of DIDs to be Ordered (Example: 3) (required)
4360    #[serde(skip_serializing_if = "Option::is_none")]
4361    pub quantity: Option<u64>,
4362    /// Canadian Province (values from getProvinces) (required)
4363    #[serde(skip_serializing_if = "Option::is_none")]
4364    pub province: Option<String>,
4365    /// USA Ratecenter (Values from getRateCentersUSA) (required)
4366    #[serde(skip_serializing_if = "Option::is_none")]
4367    pub ratecenter: Option<String>,
4368    /// Main Routing for the DID (required)
4369    #[serde(skip_serializing_if = "Option::is_none")]
4370    pub routing: Option<crate::Routing>,
4371    /// Busy Routing for the DID
4372    #[serde(skip_serializing_if = "Option::is_none")]
4373    pub failover_busy: Option<crate::Routing>,
4374    /// Unreachable Routing for the DID
4375    #[serde(skip_serializing_if = "Option::is_none")]
4376    pub failover_unreachable: Option<crate::Routing>,
4377    /// NoAnswer Routing for the DID
4378    #[serde(skip_serializing_if = "Option::is_none")]
4379    pub failover_noanswer: Option<crate::Routing>,
4380    /// Voicemail for the DID (Example: 101)
4381    #[serde(skip_serializing_if = "Option::is_none")]
4382    pub voicemail: Option<String>,
4383    /// Point of Presence for the DID (Example: 5) (required)
4384    #[serde(skip_serializing_if = "Option::is_none")]
4385    pub pop: Option<u64>,
4386    /// Dial Time Out for the DID (Example: 60 -> in seconds) (required)
4387    #[serde(skip_serializing_if = "Option::is_none")]
4388    pub dialtime: Option<u64>,
4389    /// CNAM for the DID (Boolean: 1/0) (required)
4390    #[serde(skip_serializing_if = "Option::is_none")]
4391    pub cnam: Option<u64>,
4392    /// Caller ID Prefix for the DID
4393    #[serde(skip_serializing_if = "Option::is_none")]
4394    pub callerid_prefix: Option<String>,
4395    /// Note for the DID
4396    #[serde(skip_serializing_if = "Option::is_none")]
4397    pub note: Option<String>,
4398    /// Billing type for the DID (1 = Per Minute, 2 = Flat) (required)
4399    #[serde(skip_serializing_if = "Option::is_none")]
4400    pub billing_type: Option<DidBillingType>,
4401    /// Set to true if testing how Orders work - Orders can not be undone - When
4402    /// testing, no Orders are made routing, failover_busy, failover_unreachable
4403    /// and failover_noanswer can receive values in the following format =>
4404    /// header:record_id Where header could be: account, fwd, vm, sip, grp, ivr,
4405    /// sys, recording, queue, cb, tc, disa, none. Examples: account Used for
4406    /// routing calls to Sub Accounts You can get all sub accounts using the
4407    /// getSubAccounts function fwd Used for routing calls to Forwarding
4408    /// entries. You can get the ID right after creating a Forwarding with
4409    /// setForwarding or by requesting all forwardings entries with
4410    /// getForwardings. vm Used for routing calls to a Voicemail. You can get
4411    /// all voicemails and their IDs using the getVoicemails function sys System
4412    /// Options: hangup = Hangup the Call busy = Busy tone noservice = System
4413    /// Recording: Number not in service disconnected = System Recording: Number
4414    /// has been disconnected dtmf = DTMF Test echo = Sound Quality Test none
4415    /// Used to route calls to no action Examples: 'account:100001_VoIP'
4416    /// 'fwd:1026' 'vm:101' 'none:' 'sys:echo'
4417    #[serde(
4418        skip_serializing_if = "crate::responses::is_false",
4419        serialize_with = "crate::responses::serialize_flag_01"
4420    )]
4421    pub test: bool,
4422}
4423
4424/// \- Backorder DID (USA) from a specific ratecenter and state.
4425///
4426/// Parameters for [`Client::back_order_did_usa`] (wire method `backOrderDIDUSA`).
4427#[derive(Debug, Default, Clone, Serialize)]
4428pub struct BackOrderDIDUSAParams {
4429    /// Number of DIDs to be Ordered (Example: 3) (required)
4430    #[serde(skip_serializing_if = "Option::is_none")]
4431    pub quantity: Option<u64>,
4432    /// USA State (values from getStates) (required)
4433    #[serde(skip_serializing_if = "Option::is_none")]
4434    pub state: Option<String>,
4435    /// USA Ratecenter (Values from getRateCentersUSA) (required)
4436    #[serde(skip_serializing_if = "Option::is_none")]
4437    pub ratecenter: Option<String>,
4438    /// Main Routing for the DID (required)
4439    #[serde(skip_serializing_if = "Option::is_none")]
4440    pub routing: Option<crate::Routing>,
4441    /// Busy Routing for the DID
4442    #[serde(skip_serializing_if = "Option::is_none")]
4443    pub failover_busy: Option<crate::Routing>,
4444    /// Unreachable Routing for the DID
4445    #[serde(skip_serializing_if = "Option::is_none")]
4446    pub failover_unreachable: Option<crate::Routing>,
4447    /// NoAnswer Routing for the DID
4448    #[serde(skip_serializing_if = "Option::is_none")]
4449    pub failover_noanswer: Option<crate::Routing>,
4450    /// Voicemail for the DID (Example: 101)
4451    #[serde(skip_serializing_if = "Option::is_none")]
4452    pub voicemail: Option<String>,
4453    /// Point of Presence for the DID (Example: 5) (required)
4454    #[serde(skip_serializing_if = "Option::is_none")]
4455    pub pop: Option<u64>,
4456    /// Dial Time Out for the DID (Example: 60 -> in seconds) (required)
4457    #[serde(skip_serializing_if = "Option::is_none")]
4458    pub dialtime: Option<u64>,
4459    /// CNAM for the DID (Boolean: 1/0) (required)
4460    #[serde(skip_serializing_if = "Option::is_none")]
4461    pub cnam: Option<u64>,
4462    /// Caller ID Prefix for the DID
4463    #[serde(skip_serializing_if = "Option::is_none")]
4464    pub callerid_prefix: Option<String>,
4465    /// Note for the DID
4466    #[serde(skip_serializing_if = "Option::is_none")]
4467    pub note: Option<String>,
4468    /// Billing type for the DID (1 = Per Minute, 2 = Flat) (required)
4469    #[serde(skip_serializing_if = "Option::is_none")]
4470    pub billing_type: Option<DidBillingType>,
4471    /// Set to true if testing how Orders work - Orders can not be undone - When
4472    /// testing, no Orders are made routing, failover_busy, failover_unreachable
4473    /// and failover_noanswer can receive values in the following format =>
4474    /// header:record_id Where header could be: account, fwd, vm, sip, grp, ivr,
4475    /// sys, recording, queue, cb, tc, disa, none. Examples: account Used for
4476    /// routing calls to Sub Accounts You can get all sub accounts using the
4477    /// getSubAccounts function fwd Used for routing calls to Forwarding
4478    /// entries. You can get the ID right after creating a Forwarding with
4479    /// setForwarding or by requesting all forwardings entries with
4480    /// getForwardings. vm Used for routing calls to a Voicemail. You can get
4481    /// all voicemails and their IDs using the getVoicemails function sys System
4482    /// Options: hangup = Hangup the Call busy = Busy tone noservice = System
4483    /// Recording: Number not in service disconnected = System Recording: Number
4484    /// has been disconnected dtmf = DTMF Test echo = Sound Quality Test none
4485    /// Used to route calls to no action Examples: 'account:100001_VoIP'
4486    /// 'fwd:1026' 'vm:101' 'none:' 'sys:echo'
4487    #[serde(
4488        skip_serializing_if = "crate::responses::is_false",
4489        serialize_with = "crate::responses::serialize_flag_01"
4490    )]
4491    pub test: bool,
4492}
4493
4494/// \- Deletes a specific DID from your Account.
4495///
4496/// Parameters for [`Client::cancel_did`] (wire method `cancelDID`).
4497#[derive(Debug, Default, Clone, Serialize)]
4498pub struct CancelDIDParams {
4499    /// DID to be canceled and deleted (Example: 5551234567) (required)
4500    #[serde(skip_serializing_if = "Option::is_none")]
4501    pub did: Option<String>,
4502    /// Comment for DID cancellation
4503    #[serde(skip_serializing_if = "Option::is_none")]
4504    pub cancelcomment: Option<String>,
4505    /// Set to true if the DID is being ported out
4506    #[serde(
4507        skip_serializing_if = "Option::is_none",
4508        serialize_with = "crate::responses::serialize_opt_flag_01"
4509    )]
4510    pub portout: Option<bool>,
4511    /// Set to true if testing how cancellation works - Cancellation can not be
4512    /// undone - When testing, no changes are made
4513    #[serde(
4514        skip_serializing_if = "crate::responses::is_false",
4515        serialize_with = "crate::responses::serialize_flag_01"
4516    )]
4517    pub test: bool,
4518}
4519
4520/// \- Deletes a specific Fax Number from your Account.
4521///
4522/// Parameters for [`Client::cancel_fax_number`] (wire method `cancelFaxNumber`).
4523#[derive(Debug, Default, Clone, Serialize)]
4524pub struct CancelFAXNumberParams {
4525    /// ID for a specific Fax Number (Example: 923) (required)
4526    #[serde(skip_serializing_if = "Option::is_none")]
4527    pub id: Option<u64>,
4528    /// Set to true if testing how cancel a Fax Number
4529    #[serde(
4530        skip_serializing_if = "crate::responses::is_false",
4531        serialize_with = "crate::responses::serialize_flag_01"
4532    )]
4533    pub test: bool,
4534}
4535
4536/// \- Connects a specific DID to a specific Reseller Client Sub Account
4537///
4538/// Parameters for [`Client::connect_did`] (wire method `connectDID`).
4539#[derive(Debug, Default, Clone, Serialize)]
4540pub struct ConnectDIDParams {
4541    /// DID to be Connected to Reseler Sub Account (Example: 5551234567)
4542    /// (required)
4543    #[serde(skip_serializing_if = "Option::is_none")]
4544    pub did: Option<String>,
4545    /// Reseller Sub Account (Example: '100001_VoIP') (required)
4546    #[serde(skip_serializing_if = "Option::is_none")]
4547    pub account: Option<String>,
4548    /// Montly Fee for Reseller Client (Example: 3.50) (required)
4549    #[serde(skip_serializing_if = "Option::is_none")]
4550    pub monthly: Option<rust_decimal::Decimal>,
4551    /// Setup Fee for Reseller Client (Example: 1.99) (required)
4552    #[serde(skip_serializing_if = "Option::is_none")]
4553    pub setup: Option<rust_decimal::Decimal>,
4554    /// Minute Rate for Reseller Client (Example: 0.03) (required)
4555    #[serde(skip_serializing_if = "Option::is_none")]
4556    pub minute: Option<rust_decimal::Decimal>,
4557    /// Next billing date (Example: '2014-03-30')
4558    #[serde(skip_serializing_if = "Option::is_none")]
4559    pub next_billing: Option<String>,
4560    /// If set to true, the setup value will not be charged after Connect
4561    #[serde(
4562        skip_serializing_if = "Option::is_none",
4563        serialize_with = "crate::responses::serialize_opt_flag_01"
4564    )]
4565    pub dont_charge_setup: Option<bool>,
4566    /// If set to true, the monthly value will not be charged after Connect
4567    #[serde(
4568        skip_serializing_if = "Option::is_none",
4569        serialize_with = "crate::responses::serialize_opt_flag_01"
4570    )]
4571    pub dont_charge_monthly: Option<bool>,
4572}
4573
4574/// \- Connects a specific FAX DID to a specific Reseller Client Sub Account
4575///
4576/// Parameters for [`Client::connect_fax`] (wire method `connectFAX`).
4577#[derive(Debug, Default, Clone, Serialize)]
4578pub struct ConnectFAXParams {
4579    /// FAX DID to be Connected to Reseller Sub Account (Example: 5551234567)
4580    /// (required)
4581    #[serde(skip_serializing_if = "Option::is_none")]
4582    pub did: Option<String>,
4583    /// Reseller Sub Account (Example: '100001_VoIP') (required)
4584    #[serde(skip_serializing_if = "Option::is_none")]
4585    pub account: Option<String>,
4586    /// Montly Fee for Reseller Client (Example: 3.50) (required)
4587    #[serde(skip_serializing_if = "Option::is_none")]
4588    pub monthly: Option<rust_decimal::Decimal>,
4589    /// Setup Fee for Reseller Client (Example: 1.99) (required)
4590    #[serde(skip_serializing_if = "Option::is_none")]
4591    pub setup: Option<rust_decimal::Decimal>,
4592    /// Minute Rate for Reseller Client (Example: 0.03) (required)
4593    #[serde(skip_serializing_if = "Option::is_none")]
4594    pub minute: Option<rust_decimal::Decimal>,
4595    /// Next billing date (Example: '2014-03-30')
4596    #[serde(skip_serializing_if = "Option::is_none")]
4597    pub next_billing: Option<String>,
4598    /// If set to true, the setup value will not be charged after Connect
4599    #[serde(
4600        skip_serializing_if = "Option::is_none",
4601        serialize_with = "crate::responses::serialize_opt_flag_01"
4602    )]
4603    pub dont_charge_setup: Option<bool>,
4604    /// If set to true, the monthly value will not be charged after Connect
4605    #[serde(
4606        skip_serializing_if = "Option::is_none",
4607        serialize_with = "crate::responses::serialize_opt_flag_01"
4608    )]
4609    pub dont_charge_monthly: Option<bool>,
4610}
4611
4612/// \- Adds a new Sub Account entry to your Account
4613///
4614/// Parameters for [`Client::create_sub_account`] (wire method `createSubAccount`).
4615#[derive(Debug, Default, Clone, Serialize)]
4616pub struct CreateSubAccountParams {
4617    /// Username for the Sub Account (Example: 'VoIP') (required)
4618    #[serde(skip_serializing_if = "Option::is_none")]
4619    pub username: Option<String>,
4620    /// Protocol used for the Sub Account (Values from getProtocols) (required)
4621    #[serde(skip_serializing_if = "Option::is_none")]
4622    pub protocol: Option<u64>,
4623    /// Sub Account Description (Example: 'VoIP Account')
4624    #[serde(skip_serializing_if = "Option::is_none")]
4625    pub description: Option<String>,
4626    /// Authorization Type Code (Values from getAuthTypes) (required)
4627    #[serde(skip_serializing_if = "Option::is_none")]
4628    pub auth_type: Option<u64>,
4629    /// Sub Account Password (For Password Authentication)
4630    #[serde(skip_serializing_if = "Option::is_none")]
4631    pub password: Option<String>,
4632    /// Sub Account IP (For IP Authentication)
4633    #[serde(skip_serializing_if = "Option::is_none")]
4634    pub ip: Option<String>,
4635    /// Device Type Code (Values from getDeviceTypes) (required)
4636    #[serde(skip_serializing_if = "Option::is_none")]
4637    pub device_type: Option<u64>,
4638    /// Caller ID Override
4639    #[serde(skip_serializing_if = "Option::is_none")]
4640    pub callerid_number: Option<String>,
4641    /// Route Code (Values from getRoutes)
4642    #[serde(skip_serializing_if = "Option::is_none")]
4643    pub canada_routing: Option<String>,
4644    /// Lock International Code (Values from getLockInternational) (required)
4645    #[serde(skip_serializing_if = "Option::is_none")]
4646    pub lock_international: Option<u64>,
4647    /// Route Code (Values from getRoutes) (required)
4648    #[serde(skip_serializing_if = "Option::is_none")]
4649    pub international_route: Option<u64>,
4650    /// Music on Hold Code (Values from getMusicOnHold) (required)
4651    #[serde(skip_serializing_if = "Option::is_none")]
4652    pub music_on_hold: Option<String>,
4653    /// Language for system messages, such as "Invalid Option" (Values from
4654    /// getLanguages)
4655    #[serde(skip_serializing_if = "Option::is_none")]
4656    pub language: Option<String>,
4657    /// List of Allowed Codecs (Values from getAllowedCodecs) Codecs separated
4658    /// by semicolon (Example: ulaw;g729;gsm) (required)
4659    #[serde(skip_serializing_if = "Option::is_none")]
4660    pub allowed_codecs: Option<String>,
4661    /// DTMF Mode Code (Values from getDTMFModes) (required)
4662    #[serde(skip_serializing_if = "Option::is_none")]
4663    pub dtmf_mode: Option<DtmfMode>,
4664    /// NAT Mode Code (Values from getNAT) (required)
4665    #[serde(skip_serializing_if = "Option::is_none")]
4666    pub nat: Option<Nat>,
4667    /// Encrypted SIP Traffic (Boolean: 1/0)
4668    #[serde(skip_serializing_if = "Option::is_none")]
4669    pub sip_traffic: Option<u64>,
4670    /// Max Expiry between 60 and 3600 (Example: 3000)
4671    #[serde(skip_serializing_if = "Option::is_none")]
4672    pub max_expiry: Option<u64>,
4673    /// RTP Time Out between 1 and 3600 (Example: 60)
4674    #[serde(skip_serializing_if = "Option::is_none")]
4675    pub rtp_timeout: Option<u64>,
4676    /// RTP Hold Time Out between 1 and 3600 (Example: 600)
4677    #[serde(skip_serializing_if = "Option::is_none")]
4678    pub rtp_hold_timeout: Option<u64>,
4679    /// List of IP Addresses, IP Addresses/Netmask, or Fully Qualified Domain
4680    /// Names to allow outgoing calls separated by commas (Example:
4681    /// 123.45.3.21,10.255.12.0/22,device.mydomain.com)
4682    #[serde(skip_serializing_if = "Option::is_none")]
4683    pub ip_restriction: Option<String>,
4684    /// Enable IP Restriction (Boolean: 1/0)
4685    #[serde(
4686        skip_serializing_if = "Option::is_none",
4687        serialize_with = "crate::responses::serialize_opt_flag_01"
4688    )]
4689    pub enable_ip_restriction: Option<bool>,
4690    /// List of POP Servers to allow outgoing calls separated by commas (values
4691    /// from getServersInfo. Example: 10,23,45)
4692    #[serde(skip_serializing_if = "Option::is_none")]
4693    pub pop_restriction: Option<String>,
4694    /// Enable POP Restriction (Boolean: 1/0)
4695    #[serde(
4696        skip_serializing_if = "Option::is_none",
4697        serialize_with = "crate::responses::serialize_opt_flag_01"
4698    )]
4699    pub enable_pop_restriction: Option<bool>,
4700    /// Sub Account Internal Extension (Example: 1 -> Creates 101)
4701    #[serde(skip_serializing_if = "Option::is_none")]
4702    pub internal_extension: Option<String>,
4703    /// Sub Account Internal Voicemail (Example: 101)
4704    #[serde(skip_serializing_if = "Option::is_none")]
4705    pub internal_voicemail: Option<String>,
4706    /// Sub Account Internal Dialtime (Example: 60 -> seconds)
4707    #[serde(skip_serializing_if = "Option::is_none")]
4708    pub internal_dialtime: Option<String>,
4709    /// Reseller Account ID (Example: 561115)
4710    #[serde(skip_serializing_if = "Option::is_none")]
4711    pub reseller_client: Option<String>,
4712    /// Reseller Package (Example: 92364)
4713    #[serde(skip_serializing_if = "Option::is_none")]
4714    pub reseller_package: Option<String>,
4715    /// Reseller Next Billing Date (Example: '2012-12-31')
4716    #[serde(skip_serializing_if = "Option::is_none")]
4717    pub reseller_nextbilling: Option<String>,
4718    /// True if you want to charge Package Setup Fee after Save
4719    #[serde(skip_serializing_if = "Option::is_none")]
4720    pub reseller_chargesetup: Option<String>,
4721    /// Send BYE on successful transfer (Boolean: 1/0)
4722    #[serde(
4723        skip_serializing_if = "Option::is_none",
4724        serialize_with = "crate::responses::serialize_opt_flag_01"
4725    )]
4726    pub send_bye: Option<bool>,
4727    /// Record Calls (Boolean: 1/0)
4728    #[serde(
4729        skip_serializing_if = "Option::is_none",
4730        serialize_with = "crate::responses::serialize_opt_flag_01"
4731    )]
4732    pub record_calls: Option<bool>,
4733    /// Enable Call Transcription (Boolean: 1/0)
4734    #[serde(
4735        skip_serializing_if = "Option::is_none",
4736        serialize_with = "crate::responses::serialize_opt_flag_01"
4737    )]
4738    pub transcribe: Option<bool>,
4739    /// Transcription locale code (values from getLocales, comma separated for
4740    /// more than one locale up to 10 locales)
4741    #[serde(skip_serializing_if = "Option::is_none")]
4742    pub transcription_locale: Option<String>,
4743    /// Call Transcription Email
4744    #[serde(skip_serializing_if = "Option::is_none")]
4745    pub transcription_email: Option<String>,
4746    /// Call Transcription Delay Seconds between 0 and 60, Increments of 5
4747    /// (Example: 10 -> seconds)
4748    #[serde(skip_serializing_if = "Option::is_none")]
4749    pub transcription_start_delay: Option<u64>,
4750    /// Enable Internal CallerID
4751    #[serde(
4752        skip_serializing_if = "Option::is_none",
4753        serialize_with = "crate::responses::serialize_opt_flag_01"
4754    )]
4755    pub enable_internal_cnam: Option<bool>,
4756    /// Internal CallerID Name
4757    #[serde(skip_serializing_if = "Option::is_none")]
4758    pub internal_cnam: Option<String>,
4759    /// Allows you to dial outgoing calls using either the NANPA configuration
4760    /// or the E164 configuration. (Values: 0 = Use Main Account Setting, 1 =
4761    /// E164, 2 = NANPA)
4762    #[serde(skip_serializing_if = "Option::is_none")]
4763    pub dialing_mode: Option<DialingMode>,
4764    /// This allows you to select the carrier to be used for outgoing calls to
4765    /// toll-free numbers. (Values: -1 = Use main account settings, 0 = Default
4766    /// server setting, 1 = US carrier, 2 = Canadian carrier)
4767    #[serde(skip_serializing_if = "Option::is_none")]
4768    pub tfcarrier: Option<TollFreeCarrier>,
4769    /// Location group for the internal extension (Values from getLocations)
4770    #[serde(skip_serializing_if = "Option::is_none")]
4771    pub internal_extension_location: Option<u64>,
4772}
4773
4774/// \- Adds a new Voicemail entry to your Account
4775///
4776/// Parameters for [`Client::create_voicemail`] (wire method `createVoicemail`).
4777#[derive(Debug, Default, Clone, Serialize)]
4778pub struct CreateVoicemailParams {
4779    /// Digits used to create the voicemail (Example: 01) Minimum 1 digit,
4780    /// maximum 10 digits (required)
4781    #[serde(skip_serializing_if = "Option::is_none")]
4782    pub digits: Option<u64>,
4783    /// Name for the Mailbox (required)
4784    #[serde(skip_serializing_if = "Option::is_none")]
4785    pub name: Option<String>,
4786    /// Password for the Mailbox (required)
4787    #[serde(skip_serializing_if = "Option::is_none")]
4788    pub password: Option<String>,
4789    /// True if Skipping Password (Boolean: 1/0) (required)
4790    #[serde(
4791        skip_serializing_if = "Option::is_none",
4792        serialize_with = "crate::responses::serialize_opt_flag_01"
4793    )]
4794    pub skip_password: Option<bool>,
4795    /// Email address for receiving messages, multiple email addresses are
4796    /// allowed if separated by a comma
4797    #[serde(skip_serializing_if = "Option::is_none")]
4798    pub email: Option<String>,
4799    /// Yes for Attaching WAV files to Message (Values: 'yes'/'no') (required)
4800    #[serde(
4801        skip_serializing_if = "Option::is_none",
4802        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
4803    )]
4804    pub attach_message: Option<bool>,
4805    /// Yes for Deleting Messages (Values: 'yes'/'no') (required)
4806    #[serde(
4807        skip_serializing_if = "Option::is_none",
4808        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
4809    )]
4810    pub delete_message: Option<bool>,
4811    /// Yes for Saying Time Stamp (Values: 'yes'/'no') (required)
4812    #[serde(
4813        skip_serializing_if = "Option::is_none",
4814        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
4815    )]
4816    pub say_time: Option<bool>,
4817    /// Time Zone for Mailbox (Values from getTimeZones) (required)
4818    #[serde(
4819        skip_serializing_if = "Option::is_none",
4820        serialize_with = "crate::responses::serialize_opt_tz"
4821    )]
4822    pub timezone: Option<chrono_tz::Tz>,
4823    /// Yes for Saying the Caller ID (Values: 'yes'/'no') (required)
4824    #[serde(
4825        skip_serializing_if = "Option::is_none",
4826        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
4827    )]
4828    pub say_callerid: Option<bool>,
4829    /// Code for Play Instructions Setting (Values from getPlayInstructions)
4830    /// (required)
4831    #[serde(skip_serializing_if = "Option::is_none")]
4832    pub play_instructions: Option<PlayInstructions>,
4833    /// Code for Language (Values from getLanguages) (required)
4834    #[serde(skip_serializing_if = "Option::is_none")]
4835    pub language: Option<String>,
4836    /// Code for Email Attachment format (Values from
4837    /// getVoicemailAttachmentFormats)
4838    #[serde(skip_serializing_if = "Option::is_none")]
4839    pub email_attachment_format: Option<EmailAttachmentFormat>,
4840    /// Recording for the Unavailable Message (values from getRecordings)
4841    #[serde(skip_serializing_if = "Option::is_none")]
4842    pub unavailable_message_recording: Option<String>,
4843    /// 'yes' to enable Voicemail Transcription
4844    #[serde(
4845        skip_serializing_if = "Option::is_none",
4846        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
4847    )]
4848    pub transcription: Option<bool>,
4849    /// Transcription locale code (values from getLocales, comma separated for
4850    /// more than one locale up to 10 locales)
4851    #[serde(skip_serializing_if = "Option::is_none")]
4852    pub transcription_locale: Option<String>,
4853    /// Yes for Transcription redaction (Values: 'yes'/'no')
4854    #[serde(
4855        skip_serializing_if = "Option::is_none",
4856        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
4857    )]
4858    pub transcription_redaction: Option<bool>,
4859    /// Yes for Transcription sentiment (Values: 'yes'/'no')
4860    #[serde(
4861        skip_serializing_if = "Option::is_none",
4862        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
4863    )]
4864    pub transcription_sentiment: Option<bool>,
4865    /// Yes for Transcription summary (Values: 'yes'/'no')
4866    #[serde(
4867        skip_serializing_if = "Option::is_none",
4868        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
4869    )]
4870    pub transcription_summary: Option<bool>,
4871    /// Transcription format ( Values: 'html'/'text')
4872    #[serde(skip_serializing_if = "Option::is_none")]
4873    pub transcription_format: Option<TranscriptionFormat>,
4874}
4875
4876/// \- Deletes a specific Call Hunting from your Account.
4877///
4878/// Parameters for [`Client::del_call_hunting`] (wire method `delCallHunting`).
4879#[derive(Debug, Default, Clone, Serialize)]
4880pub struct DelCallHuntingParams {
4881    /// ID for a specific Call Hunting (Example: 323) (required)
4882    #[serde(skip_serializing_if = "Option::is_none")]
4883    pub callhunting: Option<u64>,
4884}
4885
4886/// \- Deletes a specific Call Parking entry from your Account.
4887///
4888/// Parameters for [`Client::del_call_parking`] (wire method `delCallParking`).
4889#[derive(Debug, Default, Clone, Serialize)]
4890pub struct DelCallParkingParams {
4891    /// ID for a specific Call Parking (Example: 323) (required)
4892    #[serde(skip_serializing_if = "Option::is_none")]
4893    pub callparking: Option<u64>,
4894}
4895
4896/// \- Delete specific call recording, audio file and information related.
4897///
4898/// Parameters for [`Client::del_call_recording`] (wire method `delCallRecording`).
4899#[derive(Debug, Default, Clone, Serialize)]
4900pub struct DelCallRecordingParams {
4901    /// Call Recording (Values from getCallRecordings) (required)
4902    #[serde(skip_serializing_if = "Option::is_none")]
4903    pub callrecording: Option<String>,
4904    /// Filter Call Recordings by Account (Values from getCallAccounts)
4905    /// (required)
4906    #[serde(skip_serializing_if = "Option::is_none")]
4907    pub account: Option<String>,
4908}
4909
4910/// \- Deletes a specific Callback from your Account.
4911///
4912/// Parameters for [`Client::del_callback`] (wire method `delCallback`).
4913#[derive(Debug, Default, Clone, Serialize)]
4914pub struct DelCallbackParams {
4915    /// ID for a specific Callback (Example: 19183) (required)
4916    #[serde(skip_serializing_if = "Option::is_none")]
4917    pub callback: Option<u64>,
4918}
4919
4920/// \- Deletes a specific CallerID Filtering from your Account.
4921///
4922/// Parameters for [`Client::del_caller_id_filtering`] (wire method `delCallerIDFiltering`).
4923#[derive(Debug, Default, Clone, Serialize)]
4924pub struct DelCallerIDFilteringParams {
4925    /// ID for a specific CallerID Filtering (Example: 19183) (required)
4926    #[serde(skip_serializing_if = "Option::is_none")]
4927    pub filtering: Option<u64>,
4928}
4929
4930/// \- Deletes a specific reseller client from your Account.
4931///
4932/// Parameters for [`Client::del_client`] (wire method `delClient`).
4933#[derive(Debug, Default, Clone, Serialize)]
4934pub struct DelClientParams {
4935    /// ID for a specific Reseller Client (Example: 1998) (required)
4936    #[serde(skip_serializing_if = "Option::is_none")]
4937    pub client: Option<u64>,
4938}
4939
4940/// \- Deletes a specific Conference from your Account.
4941///
4942/// Parameters for [`Client::del_conference`] (wire method `delConference`).
4943#[derive(Debug, Default, Clone, Serialize)]
4944pub struct DelConferenceParams {
4945    /// ID for a specific Conference (Example: 737) (required)
4946    #[serde(skip_serializing_if = "Option::is_none")]
4947    pub conference: Option<u64>,
4948}
4949
4950/// \- Deletes a specific Member profile from your Account.
4951///
4952/// Parameters for [`Client::del_conference_member`] (wire method `delConferenceMember`).
4953#[derive(Debug, Default, Clone, Serialize)]
4954pub struct DelConferenceMemberParams {
4955    /// ID for a specific Member Profile (Example: 737) (required)
4956    #[serde(skip_serializing_if = "Option::is_none")]
4957    pub member: Option<u64>,
4958}
4959
4960/// \- Deletes a specific DISA from your Account.
4961///
4962/// Parameters for [`Client::del_disa`] (wire method `delDISA`).
4963#[derive(Debug, Default, Clone, Serialize)]
4964pub struct DelDISAParams {
4965    /// ID for a specific DISA (Example: 19183) (required)
4966    #[serde(skip_serializing_if = "Option::is_none")]
4967    pub disa: Option<u64>,
4968}
4969
4970/// \- Deletes a specific "Email to Fax configuration" from your Account.
4971///
4972/// Parameters for [`Client::del_email_to_fax`] (wire method `delEmailToFax`).
4973#[derive(Debug, Default, Clone, Serialize)]
4974pub struct DelEmailToFAXParams {
4975    /// ID for a specific "Email To Fax Configuration" (Example: 923) (required)
4976    #[serde(skip_serializing_if = "Option::is_none")]
4977    pub id: Option<u64>,
4978    /// Set to true if testing how cancel a "Email To Fax Configuration"
4979    #[serde(
4980        skip_serializing_if = "crate::responses::is_false",
4981        serialize_with = "crate::responses::serialize_flag_01"
4982    )]
4983    pub test: bool,
4984}
4985
4986/// \- Deletes a specific Fax Folder from your Account.
4987///
4988/// Parameters for [`Client::del_fax_folder`] (wire method `delFaxFolder`).
4989#[derive(Debug, Default, Clone, Serialize)]
4990pub struct DelFAXFolderParams {
4991    /// ID for a specific Fax Folder (Example: 923) (required)
4992    #[serde(skip_serializing_if = "Option::is_none")]
4993    pub id: Option<u64>,
4994    /// Set to true if testing how to delete a Fax Folder
4995    #[serde(
4996        skip_serializing_if = "crate::responses::is_false",
4997        serialize_with = "crate::responses::serialize_flag_01"
4998    )]
4999    pub test: bool,
5000}
5001
5002/// \- Deletes a specific Forwarding from your Account.
5003///
5004/// Parameters for [`Client::del_forwarding`] (wire method `delForwarding`).
5005#[derive(Debug, Default, Clone, Serialize)]
5006pub struct DelForwardingParams {
5007    /// ID for a specific Forwarding (Example: 19183)
5008    #[serde(skip_serializing_if = "Option::is_none")]
5009    pub forwarding: Option<u64>,
5010}
5011
5012/// \- Deletes a specific IVR from your Account.
5013///
5014/// Parameters for [`Client::del_ivr`] (wire method `delIVR`).
5015#[derive(Debug, Default, Clone, Serialize)]
5016pub struct DelIVRParams {
5017    /// ID for a specific IVR (Example: 19183) (required)
5018    #[serde(skip_serializing_if = "Option::is_none")]
5019    pub ivr: Option<u64>,
5020}
5021
5022/// Parameters for [`Client::del_location`] (wire method `delLocation`).
5023#[derive(Debug, Default, Clone, Serialize)]
5024pub struct DelLocationParams {
5025    /// Internal Extension Location name (Value from getLocations) (required)
5026    #[serde(skip_serializing_if = "Option::is_none")]
5027    pub name: Option<String>,
5028    /// Internal Extension Location id (Value from getLocations") (required)
5029    #[serde(skip_serializing_if = "Option::is_none")]
5030    pub id: Option<String>,
5031}
5032
5033/// \- Removes a member profile from a specific Conference from your Account
5034///
5035/// Parameters for [`Client::del_member_from_conference`] (wire method `delMemberFromConference`).
5036#[derive(Debug, Default, Clone, Serialize)]
5037pub struct DelMemberFromConferenceParams {
5038    /// ID for a specific Member (Example: 101) (required)
5039    #[serde(skip_serializing_if = "Option::is_none")]
5040    pub member: Option<u64>,
5041    /// ID for a specific Conference (Example: 3829)
5042    #[serde(skip_serializing_if = "Option::is_none")]
5043    pub conference: Option<u64>,
5044}
5045
5046/// \- Deletes all messages in all servers from a specific Voicemail from your
5047/// Account
5048///
5049/// Parameters for [`Client::del_messages`] (wire method `delMessages`).
5050#[derive(Debug, Default, Clone, Serialize)]
5051pub struct DelMessagesParams {
5052    /// ID for a specific Mailbox (Example: 1001) (required)
5053    #[serde(skip_serializing_if = "Option::is_none")]
5054    pub mailbox: Option<u64>,
5055    /// Name for specific Folder (Required if message id is passed, Example:
5056    /// 'INBOX', values from: getVoicemailFolders)
5057    #[serde(skip_serializing_if = "Option::is_none")]
5058    pub folder: Option<VoicemailFolder>,
5059    /// ID for specific Voicemail Message (Required if folder is passed,
5060    /// Example: 1)
5061    #[serde(skip_serializing_if = "Option::is_none")]
5062    pub message_num: Option<u64>,
5063}
5064
5065/// \- Deletes a specific custom Music on Hold.
5066///
5067/// Parameters for [`Client::del_music_on_hold`] (wire method `delMusicOnHold`).
5068#[derive(Debug, Default, Clone, Serialize)]
5069pub struct DelMusicOnHoldParams {
5070    /// Music on Hold Name (Values from getMusicOnHold) (required)
5071    #[serde(skip_serializing_if = "Option::is_none")]
5072    pub music_on_hold: Option<String>,
5073}
5074
5075/// \- Deletes a specific Phonebook from your Account.
5076///
5077/// Parameters for [`Client::del_phonebook`] (wire method `delPhonebook`).
5078#[derive(Debug, Default, Clone, Serialize)]
5079pub struct DelPhonebookParams {
5080    /// ID for a specific Phonebook (Example: 19183) (required)
5081    #[serde(skip_serializing_if = "Option::is_none")]
5082    pub phonebook: Option<u64>,
5083}
5084
5085/// \- Deletes a specific Phonebook group from your Account.
5086///
5087/// Parameters for [`Client::del_phonebook_group`] (wire method `delPhonebookGroup`).
5088#[derive(Debug, Default, Clone, Serialize)]
5089pub struct DelPhonebookGroupParams {
5090    /// ID for a specific Phonebook group (required)
5091    #[serde(skip_serializing_if = "Option::is_none")]
5092    pub group: Option<String>,
5093}
5094
5095/// \- Deletes a specific Queue from your Account.
5096///
5097/// Parameters for [`Client::del_queue`] (wire method `delQueue`).
5098#[derive(Debug, Default, Clone, Serialize)]
5099pub struct DelQueueParams {
5100    /// ID for a specific Queue (Example: 13183) (required)
5101    #[serde(skip_serializing_if = "Option::is_none")]
5102    pub queue: Option<u64>,
5103}
5104
5105/// \- Deletes a specific Recording from your Account.
5106///
5107/// Parameters for [`Client::del_recording`] (wire method `delRecording`).
5108#[derive(Debug, Default, Clone, Serialize)]
5109pub struct DelRecordingParams {
5110    /// ID for a specific Recording (Example: 19183) (required)
5111    #[serde(skip_serializing_if = "Option::is_none")]
5112    pub recording: Option<u64>,
5113}
5114
5115/// \- Deletes a specific Ring Group from your Account.
5116///
5117/// Parameters for [`Client::del_ring_group`] (wire method `delRingGroup`).
5118#[derive(Debug, Default, Clone, Serialize)]
5119pub struct DelRingGroupParams {
5120    /// ID for a specific Ring Group (Example: 19183) (required)
5121    #[serde(skip_serializing_if = "Option::is_none", rename = "ringgroup")]
5122    pub ring_group: Option<u64>,
5123}
5124
5125/// \- Deletes a specific SIP URI from your Account.
5126///
5127/// Parameters for [`Client::del_sip_uri`] (wire method `delSIPURI`).
5128#[derive(Debug, Default, Clone, Serialize)]
5129pub struct DelSIPURIParams {
5130    /// ID for a specific SIP URI (Example: 19183) (required)
5131    #[serde(skip_serializing_if = "Option::is_none", rename = "sipuri")]
5132    pub sip_uri: Option<u64>,
5133}
5134
5135/// \- Deletes a specific Static Member from Queue.
5136///
5137/// Parameters for [`Client::del_static_member`] (wire method `delStaticMember`).
5138#[derive(Debug, Default, Clone, Serialize)]
5139pub struct DelStaticMemberParams {
5140    /// ID for a specific Member Queue (Example: 1918) (required)
5141    #[serde(skip_serializing_if = "Option::is_none")]
5142    pub member: Option<u64>,
5143    /// ID for a specific Queue (Example: 27183) (required)
5144    #[serde(skip_serializing_if = "Option::is_none")]
5145    pub queue: Option<u64>,
5146}
5147
5148/// \- Deletes a specific Sub Account from your Account
5149///
5150/// Parameters for [`Client::del_sub_account`] (wire method `delSubAccount`).
5151#[derive(Debug, Default, Clone, Serialize)]
5152pub struct DelSubAccountParams {
5153    /// ID for a specific Sub Account (Example: 99785)
5154    #[serde(skip_serializing_if = "Option::is_none")]
5155    pub id: Option<u64>,
5156}
5157
5158/// \- Deletes a specific Time Condition from your Account.
5159///
5160/// Parameters for [`Client::del_time_condition`] (wire method `delTimeCondition`).
5161#[derive(Debug, Default, Clone, Serialize)]
5162pub struct DelTimeConditionParams {
5163    /// ID for a specific Time Condition (Example: 19183) (required)
5164    #[serde(skip_serializing_if = "Option::is_none")]
5165    pub timecondition: Option<u64>,
5166}
5167
5168/// \- Deletes a specific Voicemail from your Account
5169///
5170/// Parameters for [`Client::del_voicemail`] (wire method `delVoicemail`).
5171#[derive(Debug, Default, Clone, Serialize)]
5172pub struct DelVoicemailParams {
5173    /// ID for a specific Mailbox (Example: 1001) (required)
5174    #[serde(skip_serializing_if = "Option::is_none")]
5175    pub mailbox: Option<u64>,
5176}
5177
5178/// \- Deletes a specific Fax Message from your Account.
5179///
5180/// Parameters for [`Client::delete_fax_message`] (wire method `deleteFaxMessage`).
5181#[derive(Debug, Default, Clone, Serialize)]
5182pub struct DeleteFAXMessageParams {
5183    /// ID for a specific Fax Message (Example: 923) (required)
5184    #[serde(skip_serializing_if = "Option::is_none")]
5185    pub id: Option<u64>,
5186    /// Set to true if testing how cancel a Fax Message
5187    #[serde(
5188        skip_serializing_if = "crate::responses::is_false",
5189        serialize_with = "crate::responses::serialize_flag_01"
5190    )]
5191    pub test: bool,
5192}
5193
5194/// \- Deletes a specific MMS from your Account.
5195///
5196/// Parameters for [`Client::delete_mms`] (wire method `deleteMMS`).
5197#[derive(Debug, Default, Clone, Serialize)]
5198pub struct DeleteMMSParams {
5199    /// ID for a specific MMS (Example: 1918) (required)
5200    #[serde(skip_serializing_if = "Option::is_none")]
5201    pub id: Option<u64>,
5202}
5203
5204/// \- Deletes a specific SMS from your Account.
5205///
5206/// Parameters for [`Client::delete_sms`] (wire method `deleteSMS`).
5207#[derive(Debug, Default, Clone, Serialize)]
5208pub struct DeleteSMSParams {
5209    /// ID for a specific SMS (Example: 1918) (required)
5210    #[serde(skip_serializing_if = "Option::is_none")]
5211    pub id: Option<u64>,
5212}
5213
5214/// \- Retrieves a list of e911 Address Types if no additional parameter is
5215/// provided.
5216/// \- Retrieves a specific e911 Address Type if an Address code is provided.
5217///
5218/// Parameters for [`Client::e911_address_types`] (wire method `e911AddressTypes`).
5219#[derive(Debug, Default, Clone, Serialize)]
5220pub struct E911AddressTypesParams {
5221    /// Code for a specific Address Type (Example: Apartment)
5222    #[serde(skip_serializing_if = "Option::is_none")]
5223    pub r#type: Option<String>,
5224}
5225
5226/// \- Cancel the e911 Service from a specific DID.
5227///
5228/// Parameters for [`Client::e911_cancel`] (wire method `e911Cancel`).
5229#[derive(Debug, Default, Clone, Serialize)]
5230pub struct E911CancelParams {
5231    /// DID to be canceled. (required)
5232    #[serde(skip_serializing_if = "Option::is_none")]
5233    pub did: Option<String>,
5234}
5235
5236/// \- Retrieves the e911 information from a specific DID.
5237///
5238/// Parameters for [`Client::e911_info`] (wire method `e911Info`).
5239#[derive(Debug, Default, Clone, Serialize)]
5240pub struct E911InfoParams {
5241    /// DID with e911 enabled / in process. (required)
5242    #[serde(skip_serializing_if = "Option::is_none")]
5243    pub did: Option<String>,
5244}
5245
5246/// \- Subscribes your DID to the e911 Emergency Services.
5247///
5248/// Parameters for [`Client::e911_provision`] (wire method `e911Provision`).
5249#[derive(Debug, Default, Clone, Serialize)]
5250pub struct E911ProvisionParams {
5251    /// DID that will be sent to the e911 service. (required)
5252    #[serde(skip_serializing_if = "Option::is_none")]
5253    pub did: Option<String>,
5254    /// Full Name that will be sent to the e911 service. (required)
5255    #[serde(skip_serializing_if = "Option::is_none")]
5256    pub full_name: Option<String>,
5257    /// Street Number that will be sent to the e911 service. (required)
5258    #[serde(skip_serializing_if = "Option::is_none")]
5259    pub street_number: Option<u64>,
5260    /// Street Name that will be sent to the e911 service. (required)
5261    #[serde(skip_serializing_if = "Option::is_none")]
5262    pub street_name: Option<String>,
5263    /// Address Type that will be sent to the e911 service (Values from
5264    /// e911AddressTypes).
5265    #[serde(skip_serializing_if = "Option::is_none")]
5266    pub address_type: Option<String>,
5267    /// Address Number that will be sent to the e911 service.
5268    #[serde(skip_serializing_if = "Option::is_none")]
5269    pub address_number: Option<u64>,
5270    /// City that will be sent to the e911 service. (required)
5271    #[serde(skip_serializing_if = "Option::is_none")]
5272    pub city: Option<String>,
5273    /// State / Province that will be sent to the e911 service. (required)
5274    #[serde(skip_serializing_if = "Option::is_none")]
5275    pub state: Option<String>,
5276    /// Country that will be sent to the e911 service. Value can be US (United
5277    /// states) or CA (Canada). (required)
5278    #[serde(skip_serializing_if = "Option::is_none")]
5279    pub country: Option<String>,
5280    #[serde(skip_serializing_if = "Option::is_none")]
5281    pub zip: Option<String>,
5282    /// Language that will be sent to the e911 service. Only available for
5283    /// addresses from Canada. Value can be EN (English) or FR (French).
5284    /// (required)
5285    #[serde(skip_serializing_if = "Option::is_none")]
5286    pub language: Option<String>,
5287    /// Additional Address Information that will be sent to the e911 service.
5288    /// Only available for addresses from Canada.
5289    #[serde(skip_serializing_if = "Option::is_none")]
5290    pub other_info: Option<String>,
5291}
5292
5293/// \- Subscribes your DID to the e911 Emergency Services.
5294/// \- All e911 information will be validated by the VoIP.ms staff.
5295///
5296/// Parameters for [`Client::e911_provision_manually`] (wire method `e911ProvisionManually`).
5297#[derive(Debug, Default, Clone, Serialize)]
5298pub struct E911ProvisionManuallyParams {
5299    /// DID that will be sent to the e911 service. (required)
5300    #[serde(skip_serializing_if = "Option::is_none")]
5301    pub did: Option<String>,
5302    /// Full Name that will be sent to the e911 service. (required)
5303    #[serde(skip_serializing_if = "Option::is_none")]
5304    pub full_name: Option<String>,
5305    /// Street Number that will be sent to the e911 service. (required)
5306    #[serde(skip_serializing_if = "Option::is_none")]
5307    pub street_number: Option<u64>,
5308    /// Street Name that will be sent to the e911 service. (required)
5309    #[serde(skip_serializing_if = "Option::is_none")]
5310    pub street_name: Option<String>,
5311    /// Address Type that will be sent to the e911 service (Values from
5312    /// e911AddressTypes).
5313    #[serde(skip_serializing_if = "Option::is_none")]
5314    pub address_type: Option<String>,
5315    /// Address Number that will be sent to the e911 service.
5316    #[serde(skip_serializing_if = "Option::is_none")]
5317    pub address_number: Option<u64>,
5318    /// City that will be sent to the e911 service. (required)
5319    #[serde(skip_serializing_if = "Option::is_none")]
5320    pub city: Option<String>,
5321    /// State / Province that will be sent to the e911 service. (required)
5322    #[serde(skip_serializing_if = "Option::is_none")]
5323    pub state: Option<String>,
5324    /// Country that will be sent to the e911 service. Value can be US (United
5325    /// states) or CA (Canada). (required)
5326    #[serde(skip_serializing_if = "Option::is_none")]
5327    pub country: Option<String>,
5328    #[serde(skip_serializing_if = "Option::is_none")]
5329    pub zip: Option<String>,
5330    /// Language that will be sent to the e911 service. Only available for
5331    /// addresses from Canada. Value can be EN (English) or FR (French).
5332    /// (required)
5333    #[serde(skip_serializing_if = "Option::is_none")]
5334    pub language: Option<String>,
5335    /// Additional Address Information that will be sent to the e911 service.
5336    /// Only available for addresses from Canada.
5337    #[serde(skip_serializing_if = "Option::is_none")]
5338    pub other_info: Option<String>,
5339}
5340
5341/// \- Updates the Information from your e911 Emergency Services Subscription.
5342///
5343/// Parameters for [`Client::e911_update`] (wire method `e911Update`).
5344#[derive(Debug, Default, Clone, Serialize)]
5345pub struct E911UpdateParams {
5346    /// DID with e911 enabled / in process. (required)
5347    #[serde(skip_serializing_if = "Option::is_none")]
5348    pub did: Option<String>,
5349    /// Full Name that will be updated to the e911 service. (required)
5350    #[serde(skip_serializing_if = "Option::is_none")]
5351    pub full_name: Option<String>,
5352    /// Street Number that will be updated to the e911 service. (required)
5353    #[serde(skip_serializing_if = "Option::is_none")]
5354    pub street_number: Option<u64>,
5355    /// Street Name that will be updated to the e911 service. (required)
5356    #[serde(skip_serializing_if = "Option::is_none")]
5357    pub street_name: Option<String>,
5358    /// Address Type that will be updated to the e911 service (Values from
5359    /// e911AddressTypes).
5360    #[serde(skip_serializing_if = "Option::is_none")]
5361    pub address_type: Option<String>,
5362    /// Address Number that will be updated to the e911 service.
5363    #[serde(skip_serializing_if = "Option::is_none")]
5364    pub address_number: Option<u64>,
5365    /// City that will be updated to the e911 service. (required)
5366    #[serde(skip_serializing_if = "Option::is_none")]
5367    pub city: Option<String>,
5368    /// State / Province that will be updated to the e911 service. (required)
5369    #[serde(skip_serializing_if = "Option::is_none")]
5370    pub state: Option<String>,
5371    /// Country that will be updated to the e911 service. Value can be US
5372    /// (United states) or CA (Canada). (required)
5373    #[serde(skip_serializing_if = "Option::is_none")]
5374    pub country: Option<String>,
5375    #[serde(skip_serializing_if = "Option::is_none")]
5376    pub zip: Option<String>,
5377    /// Language that will be updated to the e911 service. Only available for
5378    /// addresses from Canada. Value can be EN (English) or FR (French).
5379    /// (required)
5380    #[serde(skip_serializing_if = "Option::is_none")]
5381    pub language: Option<String>,
5382    /// Additional Address Information that will be updated to the e911 service.
5383    /// Only available for addresses from Canada.
5384    #[serde(skip_serializing_if = "Option::is_none")]
5385    pub other_info: Option<String>,
5386}
5387
5388/// \- Validates your e911 information in order to start your e911 Emergency
5389/// Services Subscription.
5390///
5391/// Parameters for [`Client::e911_validate`] (wire method `e911Validate`).
5392#[derive(Debug, Default, Clone, Serialize)]
5393pub struct E911ValidateParams {
5394    /// DID with e911 enabled / in process. (required)
5395    #[serde(skip_serializing_if = "Option::is_none")]
5396    pub did: Option<String>,
5397    /// Full Name that will be validated. (required)
5398    #[serde(skip_serializing_if = "Option::is_none")]
5399    pub full_name: Option<String>,
5400    /// Street Number that will be validated. (required)
5401    #[serde(skip_serializing_if = "Option::is_none")]
5402    pub street_number: Option<u64>,
5403    /// Street Name that will be validated. (required)
5404    #[serde(skip_serializing_if = "Option::is_none")]
5405    pub street_name: Option<String>,
5406    /// Address Type that will be validated (Values from e911AddressTypes).
5407    #[serde(skip_serializing_if = "Option::is_none")]
5408    pub address_type: Option<String>,
5409    /// Address Number that will be validated.
5410    #[serde(skip_serializing_if = "Option::is_none")]
5411    pub address_number: Option<u64>,
5412    /// City that will be validated. (required)
5413    #[serde(skip_serializing_if = "Option::is_none")]
5414    pub city: Option<String>,
5415    /// State / Province that will be validated. (required)
5416    #[serde(skip_serializing_if = "Option::is_none")]
5417    pub state: Option<String>,
5418    /// Country that will be validated. Value can be US (United states) or CA
5419    /// (Canada). (required)
5420    #[serde(skip_serializing_if = "Option::is_none")]
5421    pub country: Option<String>,
5422    #[serde(skip_serializing_if = "Option::is_none")]
5423    pub zip: Option<String>,
5424    /// Language that will be validated. Only available for addresses from
5425    /// Canada. Value can be EN (English) or FR (French).
5426    #[serde(skip_serializing_if = "Option::is_none")]
5427    pub language: Option<String>,
5428    /// Additional Address Information that will be validated. Only available
5429    /// for addresses from Canada.
5430    #[serde(skip_serializing_if = "Option::is_none")]
5431    pub other_info: Option<String>,
5432}
5433
5434/// \- Retrieves a list of Allowed Codecs if no additional parameter is provided.
5435/// \- Retrieves a specific Allowed Codec if a codec code is provided.
5436///
5437/// Parameters for [`Client::get_allowed_codecs`] (wire method `getAllowedCodecs`).
5438#[derive(Debug, Default, Clone, Serialize)]
5439pub struct GetAllowedCodecsParams {
5440    /// Code for a specific Codec (Example: 'ulaw')
5441    #[serde(skip_serializing_if = "Option::is_none")]
5442    pub codec: Option<String>,
5443}
5444
5445/// \- Retrieves a list of Authentication Types if no additional parameter is
5446/// provided.
5447/// \- Retrieves a specific Authentication Type if an auth type code is provided.
5448///
5449/// Parameters for [`Client::get_auth_types`] (wire method `getAuthTypes`).
5450#[derive(Debug, Default, Clone, Serialize)]
5451pub struct GetAuthTypesParams {
5452    /// Code for a specific Authorization Type (Example: 2)
5453    #[serde(skip_serializing_if = "Option::is_none")]
5454    pub r#type: Option<String>,
5455}
5456
5457/// \- Retrieves a list of backorder DIDs if no additional parameter is provided.
5458/// \- Retrieves a specific backorder DID if a backorder DID code is provided.
5459///
5460/// Parameters for [`Client::get_back_orders`] (wire method `getBackOrders`).
5461#[derive(Debug, Default, Clone, Serialize)]
5462pub struct GetBackOrdersParams {
5463    /// ID for a specific backorder DID
5464    #[serde(skip_serializing_if = "Option::is_none")]
5465    pub id: Option<String>,
5466}
5467
5468/// \- Retrieves Balance for your Account if no additional parameter is provided.
5469/// \- Retrieves Balance and Calls Statistics for your Account if "advanced"
5470/// parameter is true.
5471///
5472/// Parameters for [`Client::get_balance`] (wire method `getBalance`).
5473#[derive(Debug, Default, Clone, Serialize)]
5474pub struct GetBalanceParams {
5475    /// True for Calls Statistics
5476    #[serde(
5477        skip_serializing_if = "Option::is_none",
5478        serialize_with = "crate::responses::serialize_opt_flag_01"
5479    )]
5480    pub advanced: Option<bool>,
5481}
5482
5483/// \- Retrieves a list of Balance Management Options if no additional parameter
5484/// is provided.
5485/// \- Retrieves a specific Balance Management Option if a code is provided.
5486///
5487/// Parameters for [`Client::get_balance_management`] (wire method `getBalanceManagement`).
5488#[derive(Debug, Default, Clone, Serialize)]
5489pub struct GetBalanceManagementParams {
5490    /// Code for a specific Balance Management Setting (Example: 1)
5491    #[serde(skip_serializing_if = "Option::is_none")]
5492    pub balance_management: Option<String>,
5493}
5494
5495/// \- Retrieves the Call Detail Records of all your calls.
5496///
5497/// Parameters for [`Client::get_cdr`] (wire method `getCDR`).
5498#[derive(Debug, Default, Clone, Serialize)]
5499pub struct GetCDRParams {
5500    /// Start Date for Filtering CDR (Example: '2010-11-30') (required)
5501    #[serde(skip_serializing_if = "Option::is_none")]
5502    pub date_from: Option<chrono::NaiveDate>,
5503    /// End Date for Filtering CDR (Example: '2010-11-30') (required)
5504    #[serde(skip_serializing_if = "Option::is_none")]
5505    pub date_to: Option<chrono::NaiveDate>,
5506    /// Include Answered Calls to CDR (Boolean: 1/0)
5507    #[serde(
5508        skip_serializing_if = "Option::is_none",
5509        serialize_with = "crate::responses::serialize_opt_flag_01"
5510    )]
5511    pub answered: Option<bool>,
5512    /// Include NoAnswered calls to CDR (Boolean: 1/0)
5513    #[serde(
5514        skip_serializing_if = "Option::is_none",
5515        serialize_with = "crate::responses::serialize_opt_flag_01"
5516    )]
5517    pub noanswer: Option<bool>,
5518    /// Include Busy Calls to CDR (Boolean: 1/0)
5519    #[serde(
5520        skip_serializing_if = "Option::is_none",
5521        serialize_with = "crate::responses::serialize_opt_flag_01"
5522    )]
5523    pub busy: Option<bool>,
5524    /// Include Failed Calls to CDR (Boolean: 1/0)
5525    #[serde(
5526        skip_serializing_if = "Option::is_none",
5527        serialize_with = "crate::responses::serialize_opt_flag_01"
5528    )]
5529    pub failed: Option<bool>,
5530    /// IANA time zone for the reported timestamps (Example:
5531    /// 'America/New_York'); resolved to the numeric UTC offset VoIP.ms expects,
5532    /// at the query start date (DST-aware). Omit to keep timestamps in the
5533    /// account's configured time zone. (required)
5534    #[serde(
5535        skip_serializing_if = "Option::is_none",
5536        serialize_with = "crate::responses::serialize_opt_tz"
5537    )]
5538    pub timezone: Option<chrono_tz::Tz>,
5539    /// Filters CDR by Call Type (Values from getCallTypes)
5540    #[serde(skip_serializing_if = "Option::is_none")]
5541    pub calltype: Option<String>,
5542    /// Filter CDR by Call Billing (Values from getCallBilling)
5543    #[serde(skip_serializing_if = "Option::is_none")]
5544    pub callbilling: Option<String>,
5545    /// Filter CDR by Account (Values from getCallAccounts)
5546    #[serde(skip_serializing_if = "Option::is_none")]
5547    pub account: Option<String>,
5548}
5549
5550/// Wire form of [`GetCDRParams`]: `timezone` resolved to the numeric UTC
5551/// offset `getCDR` expects.
5552#[derive(Debug, Clone, Serialize)]
5553struct GetCDRParamsWire {
5554    #[serde(skip_serializing_if = "Option::is_none")]
5555    date_from: Option<chrono::NaiveDate>,
5556    #[serde(skip_serializing_if = "Option::is_none")]
5557    date_to: Option<chrono::NaiveDate>,
5558    #[serde(
5559        skip_serializing_if = "Option::is_none",
5560        serialize_with = "crate::responses::serialize_opt_flag_01"
5561    )]
5562    answered: Option<bool>,
5563    #[serde(
5564        skip_serializing_if = "Option::is_none",
5565        serialize_with = "crate::responses::serialize_opt_flag_01"
5566    )]
5567    noanswer: Option<bool>,
5568    #[serde(
5569        skip_serializing_if = "Option::is_none",
5570        serialize_with = "crate::responses::serialize_opt_flag_01"
5571    )]
5572    busy: Option<bool>,
5573    #[serde(
5574        skip_serializing_if = "Option::is_none",
5575        serialize_with = "crate::responses::serialize_opt_flag_01"
5576    )]
5577    failed: Option<bool>,
5578    #[serde(skip_serializing_if = "Option::is_none")]
5579    timezone: Option<crate::TimezoneOffset>,
5580    #[serde(skip_serializing_if = "Option::is_none")]
5581    calltype: Option<String>,
5582    #[serde(skip_serializing_if = "Option::is_none")]
5583    callbilling: Option<String>,
5584    #[serde(skip_serializing_if = "Option::is_none")]
5585    account: Option<String>,
5586}
5587
5588impl TryFrom<&GetCDRParams> for GetCDRParamsWire {
5589    type Error = crate::types::TimezoneOffsetError;
5590
5591    fn try_from(p: &GetCDRParams) -> std::result::Result<Self, Self::Error> {
5592        let timezone = match p.timezone {
5593            Some(tz) => {
5594                let start = p
5595                    .date_from
5596                    .ok_or(crate::types::TimezoneOffsetError::MissingStartDate)?;
5597                Some(crate::TimezoneOffset::at(tz, start)?)
5598            }
5599            None => None,
5600        };
5601        Ok(Self {
5602            date_from: p.date_from,
5603            date_to: p.date_to,
5604            answered: p.answered,
5605            noanswer: p.noanswer,
5606            busy: p.busy,
5607            failed: p.failed,
5608            timezone,
5609            calltype: p.calltype.clone(),
5610            callbilling: p.callbilling.clone(),
5611            account: p.account.clone(),
5612        })
5613    }
5614}
5615
5616/// \- Retrieves all Sub Accounts if no additional parameter is provided.
5617/// \- Retrieves Reseller Client Accounts if Reseller Client ID is provided.
5618///
5619/// Parameters for [`Client::get_call_accounts`] (wire method `getCallAccounts`).
5620#[derive(Debug, Default, Clone, Serialize)]
5621pub struct GetCallAccountsParams {}
5622
5623/// \- Retrieves a list of Call Billing Options.
5624///
5625/// Parameters for [`Client::get_call_billing`] (wire method `getCallBilling`).
5626#[derive(Debug, Default, Clone, Serialize)]
5627pub struct GetCallBillingParams {}
5628
5629/// \- Retrieves a list of Call Huntings if no additional parameter is provided.
5630/// \- Retrieves a specific Call Huntings if a Call Hunting code is provided.
5631///
5632/// Parameters for [`Client::get_call_huntings`] (wire method `getCallHuntings`).
5633#[derive(Debug, Default, Clone, Serialize)]
5634pub struct GetCallHuntingsParams {
5635    /// ID for a specific Call Hunting (Example: 323)
5636    #[serde(skip_serializing_if = "Option::is_none")]
5637    pub callhunting: Option<u64>,
5638}
5639
5640/// \- Retrieves all Call Parking entries if no additional parameter is provided.
5641/// \- Retrieves a specific Parking entry if a Call Parking ID is provided.
5642///
5643/// Parameters for [`Client::get_call_parking`] (wire method `getCallParking`).
5644#[derive(Debug, Default, Clone, Serialize)]
5645pub struct GetCallParkingParams {
5646    /// ID for a specific Call Parking (Example: 737)
5647    #[serde(skip_serializing_if = "Option::is_none")]
5648    pub callparking: Option<u64>,
5649}
5650
5651/// \- Retrieves one especific call recording information, including the
5652/// recording file on mp3 format.
5653///
5654/// Parameters for [`Client::get_call_recording`] (wire method `getCallRecording`).
5655#[derive(Debug, Default, Clone, Serialize)]
5656pub struct GetCallRecordingParams {
5657    /// Call Recording (Values from getCallRecordings) (required)
5658    #[serde(skip_serializing_if = "Option::is_none")]
5659    pub callrecording: Option<String>,
5660    /// Main Account or Sub Account related to the call recording (Values from
5661    /// getCallRecordings) (required)
5662    #[serde(skip_serializing_if = "Option::is_none")]
5663    pub account: Option<String>,
5664}
5665
5666/// \- Retrieves all call recordings related to account.
5667///
5668/// Parameters for [`Client::get_call_recordings`] (wire method `getCallRecordings`).
5669#[derive(Debug, Default, Clone, Serialize)]
5670pub struct GetCallRecordingsParams {
5671    /// Filter Call Recordings by Account (Values from getCallAccounts)
5672    /// (required)
5673    #[serde(skip_serializing_if = "Option::is_none")]
5674    pub account: Option<String>,
5675    /// Number of records shown previously, used for pages
5676    #[serde(skip_serializing_if = "Option::is_none")]
5677    pub start: Option<u64>,
5678    /// Number of records to show
5679    #[serde(skip_serializing_if = "Option::is_none")]
5680    pub length: Option<u64>,
5681    /// Start Date for Filtering Call Recording (Example:'2018-11-01')
5682    /// (required)
5683    #[serde(skip_serializing_if = "Option::is_none")]
5684    pub date_from: Option<chrono::NaiveDate>,
5685    /// End Date for Filtering Call Recording (Example:'2018-12-01') (required)
5686    #[serde(skip_serializing_if = "Option::is_none")]
5687    pub date_to: Option<chrono::NaiveDate>,
5688}
5689
5690/// \- Retrieves all Call Transcriptions if no additional parameter is provided.
5691///
5692/// Parameters for [`Client::get_call_transcriptions`] (wire method `getCallTranscriptions`).
5693#[derive(Debug, Default, Clone, Serialize)]
5694pub struct GetCallTranscriptionsParams {
5695    /// Specific Account (Example: '100001_VoIP') (required)
5696    #[serde(skip_serializing_if = "Option::is_none")]
5697    pub account: Option<String>,
5698    /// End Date for Filtering (Example: '2010-11-30') (required)
5699    #[serde(skip_serializing_if = "Option::is_none")]
5700    pub date_to: Option<chrono::NaiveDate>,
5701    /// Start Date for Filtering (Example: '2010-11-30') (required)
5702    #[serde(skip_serializing_if = "Option::is_none")]
5703    pub date_from: Option<chrono::NaiveDate>,
5704    /// Filters by Call Type (Values from getCallTypes)
5705    #[serde(skip_serializing_if = "Option::is_none")]
5706    pub call_type: Option<String>,
5707}
5708
5709/// \- Retrieves a list of Call Types and All DIDs if no additional parameter is
5710/// provided.
5711/// \- Retrieves a list of Call Types and Reseller Client DIDs if a Reseller
5712/// Client ID is provided.
5713///
5714/// Parameters for [`Client::get_call_types`] (wire method `getCallTypes`).
5715#[derive(Debug, Default, Clone, Serialize)]
5716pub struct GetCallTypesParams {
5717    /// ID for a specific Reseller Client (Example: 561115)
5718    #[serde(skip_serializing_if = "Option::is_none")]
5719    pub client: Option<String>,
5720}
5721
5722/// \- Retrieves a list of Callbacks if no additional parameter is provided.
5723/// \- Retrieves a specific Callback if a Callback code is provided.
5724///
5725/// Parameters for [`Client::get_callbacks`] (wire method `getCallbacks`).
5726#[derive(Debug, Default, Clone, Serialize)]
5727pub struct GetCallbacksParams {
5728    /// ID for a specific Callback (Example: 2359)
5729    #[serde(skip_serializing_if = "Option::is_none")]
5730    pub callback: Option<String>,
5731}
5732
5733/// \- Retrieves a list of CallerID Filterings if no additional parameter is
5734/// provided.
5735/// \- Retrieves a specific CallerID Filtering if a CallerID Filtering code is
5736/// provided.
5737///
5738/// Parameters for [`Client::get_caller_id_filtering`] (wire method `getCallerIDFiltering`).
5739#[derive(Debug, Default, Clone, Serialize)]
5740pub struct GetCallerIDFilteringParams {
5741    /// ID for a specific CallerID Filtering (Example: 18915)
5742    #[serde(skip_serializing_if = "Option::is_none")]
5743    pub filtering: Option<String>,
5744    /// DID for a specific CallerID Filtering (Example: 5551234567)
5745    #[serde(skip_serializing_if = "Option::is_none")]
5746    pub did: Option<String>,
5747}
5748
5749/// \- Retrieves a list of Carriers for Vanity Numbers if no additional parameter
5750/// is provided.
5751/// \- Retrieves a specific Carrier for Vanity Numbers if a carrier code is
5752/// provided.
5753///
5754/// Parameters for [`Client::get_carriers`] (wire method `getCarriers`).
5755#[derive(Debug, Default, Clone, Serialize)]
5756pub struct GetCarriersParams {
5757    /// Code for a specific Carrier (Example: 2)
5758    #[serde(skip_serializing_if = "Option::is_none")]
5759    pub carrier: Option<String>,
5760}
5761
5762/// \- Retrieves Charges made to a specific Reseller Client.
5763///
5764/// Parameters for [`Client::get_charges`] (wire method `getCharges`).
5765#[derive(Debug, Default, Clone, Serialize)]
5766pub struct GetChargesParams {
5767    /// ID for a specific Reseller Client (Example: 561115) (required)
5768    #[serde(skip_serializing_if = "Option::is_none")]
5769    pub client: Option<String>,
5770}
5771
5772/// \- Retrieves a list of Packages for a specific Reseller Client.
5773///
5774/// Parameters for [`Client::get_client_packages`] (wire method `getClientPackages`).
5775#[derive(Debug, Default, Clone, Serialize)]
5776pub struct GetClientPackagesParams {
5777    /// ID for a specific Reseller Client (Example: 561115) (required)
5778    #[serde(skip_serializing_if = "Option::is_none")]
5779    pub client: Option<String>,
5780}
5781
5782/// \- Retrieves the Threshold Information for a specific Reseller Client.
5783///
5784/// Parameters for [`Client::get_client_threshold`] (wire method `getClientThreshold`).
5785#[derive(Debug, Default, Clone, Serialize)]
5786pub struct GetClientThresholdParams {
5787    /// ID for a specific Reseller Client (Example: 561115) (required)
5788    #[serde(skip_serializing_if = "Option::is_none")]
5789    pub client: Option<String>,
5790}
5791
5792/// \- Retrieves a list of all Clients if no additional parameter is provided.-
5793/// Retrieves a specific Reseller Client if a Reseller Client ID is provided.
5794/// \- Retrieves a specific Reseller Client if a Reseller Client e-mail is
5795/// provided.
5796///
5797/// Parameters for [`Client::get_clients`] (wire method `getClients`).
5798#[derive(Debug, Default, Clone, Serialize)]
5799pub struct GetClientsParams {
5800    /// Parameter could have the following values: * Empty Value \[Not
5801    /// Required\] * Specific Reseller Client ID (Example: 561115) * Specific
5802    /// Reseller Client e-mail (Example: '\[email protected\]')
5803    #[serde(skip_serializing_if = "Option::is_none")]
5804    pub client: Option<String>,
5805}
5806
5807/// \- Retrieves a list of Conferences if no additional parameter is provided.
5808/// \- Retrieves a specific Conference if a conference code is provided.
5809///
5810/// Parameters for [`Client::get_conference`] (wire method `getConference`).
5811#[derive(Debug, Default, Clone, Serialize)]
5812pub struct GetConferenceParams {
5813    /// Code for a specific Conference (Example: 1599)
5814    #[serde(skip_serializing_if = "Option::is_none")]
5815    pub conference: Option<u64>,
5816}
5817
5818/// \- Retrieves a list of Member profiles if no additional parameter is
5819/// provided.
5820/// \- Retrieves a specific member if a member code is provided.
5821///
5822/// Parameters for [`Client::get_conference_members`] (wire method `getConferenceMembers`).
5823#[derive(Debug, Default, Clone, Serialize)]
5824pub struct GetConferenceMembersParams {
5825    /// Code for a specific Member profile (Example: 1599)
5826    #[serde(skip_serializing_if = "Option::is_none")]
5827    pub member: Option<u64>,
5828}
5829
5830/// \- Retrieves a specific Recording File data in Base64 format.
5831///
5832/// Parameters for [`Client::get_conference_recording_file`] (wire method `getConferenceRecordingFile`).
5833#[derive(Debug, Default, Clone, Serialize)]
5834pub struct GetConferenceRecordingFileParams {
5835    /// ID for a specific Conference (Example: 5356) (required)
5836    #[serde(skip_serializing_if = "Option::is_none")]
5837    pub conference: Option<u64>,
5838    /// ID for a specific Conference Recording (Example: 1543338379) (required)
5839    #[serde(skip_serializing_if = "Option::is_none")]
5840    pub recording: Option<u64>,
5841}
5842
5843/// \- Retrieves a list of recordings of a specific conference.
5844///
5845/// Parameters for [`Client::get_conference_recordings`] (wire method `getConferenceRecordings`).
5846#[derive(Debug, Default, Clone, Serialize)]
5847pub struct GetConferenceRecordingsParams {
5848    /// ID for a specific Conference (Example: 5356) (required)
5849    #[serde(skip_serializing_if = "Option::is_none")]
5850    pub conference: Option<u64>,
5851    /// Start Date for Filtering Transactions (Example: '2016-06-03')
5852    #[serde(skip_serializing_if = "Option::is_none")]
5853    pub date_from: Option<chrono::NaiveDate>,
5854    /// End Date for Filtering Transactions (Example: '2016-06-04')
5855    #[serde(skip_serializing_if = "Option::is_none")]
5856    pub date_to: Option<chrono::NaiveDate>,
5857}
5858
5859/// \- Retrieves a list of Countries if no additional parameter is provided.
5860/// \- Retrieves a specific Country if a country code is provided.
5861///
5862/// Parameters for [`Client::get_countries`] (wire method `getCountries`).
5863#[derive(Debug, Default, Clone, Serialize)]
5864pub struct GetCountriesParams {
5865    /// Code for a specific Country (Example: 'CA')
5866    #[serde(skip_serializing_if = "Option::is_none")]
5867    pub country: Option<String>,
5868}
5869
5870/// \- Retrieves a list of Countries for International DIDs if no country code is
5871/// provided.
5872/// \- Retrieves a specific Country for International DIDs if a country code is
5873/// provided.
5874///
5875/// Parameters for [`Client::get_did_countries`] (wire method `getDIDCountries`).
5876#[derive(Debug, Default, Clone, Serialize)]
5877pub struct GetDIDCountriesParams {
5878    /// ID for a specific country (Example: 205)
5879    #[serde(skip_serializing_if = "Option::is_none")]
5880    pub country_id: Option<String>,
5881    /// Type of International DID (Values from getInternationalTypes) (required)
5882    #[serde(skip_serializing_if = "Option::is_none")]
5883    pub r#type: Option<String>,
5884}
5885
5886/// \- Retrives a list of Canadian DIDs by Province and Ratecenter.
5887///
5888/// Parameters for [`Client::get_dids_can`] (wire method `getDIDsCAN`).
5889#[derive(Debug, Default, Clone, Serialize)]
5890pub struct GetDIDsCANParams {
5891    /// Canadian Province (Values from getProvinces) (required)
5892    #[serde(skip_serializing_if = "Option::is_none")]
5893    pub province: Option<String>,
5894    /// Canadian Ratecenter (Values from getRateCentersCAN)
5895    #[serde(skip_serializing_if = "Option::is_none")]
5896    pub ratecenter: Option<String>,
5897}
5898
5899/// \- Retrieves information from all your DIDs if no additional parameter is
5900/// provided.
5901/// \- Retrieves information from Reseller Client's DIDs if a Reseller Client ID
5902/// is provided.
5903/// \- Retrieves information from Sub Account's DIDs if a Sub Accunt is provided.
5904/// \- Retrieves information from a specific DID if a DID Number is provided.
5905/// \- Retrieves SMS information from a specific DID if the SMS is available.
5906///
5907/// Parameters for [`Client::get_dids_info`] (wire method `getDIDsInfo`).
5908#[derive(Debug, Default, Clone, Serialize)]
5909pub struct GetDIDsInfoParams {
5910    /// Parameter could have the following values: * Empty Value \[Not
5911    /// Required\] * Specific Reseller Client ID (Example: 561115) * Specific
5912    /// Sub Account (Example: '100001_VoIP')
5913    #[serde(skip_serializing_if = "Option::is_none")]
5914    pub client: Option<String>,
5915    /// DID from Client or Sub Account (Example: 5551234567)
5916    #[serde(skip_serializing_if = "Option::is_none")]
5917    pub did: Option<String>,
5918}
5919
5920/// \- Retrieves a list of International Geographic DIDs by Country.
5921///
5922/// Parameters for [`Client::get_dids_international_geographic`] (wire method `getDIDsInternationalGeographic`).
5923#[derive(Debug, Default, Clone, Serialize)]
5924pub struct GetDIDsInternationalGeographicParams {
5925    /// ID for a specific Country (Values from getDIDCountries) (required)
5926    #[serde(skip_serializing_if = "Option::is_none")]
5927    pub country_id: Option<String>,
5928}
5929
5930/// \- Retrieves a list of International National DIDs by Country.
5931///
5932/// Parameters for [`Client::get_dids_international_national`] (wire method `getDIDsInternationalNational`).
5933#[derive(Debug, Default, Clone, Serialize)]
5934pub struct GetDIDsInternationalNationalParams {
5935    /// ID for a specific Country (Values from getDIDCountries) (required)
5936    #[serde(skip_serializing_if = "Option::is_none")]
5937    pub country_id: Option<String>,
5938}
5939
5940/// \- Retrieves a list of International TollFree DIDs by Country.
5941///
5942/// Parameters for [`Client::get_dids_international_toll_free`] (wire method `getDIDsInternationalTollFree`).
5943#[derive(Debug, Default, Clone, Serialize)]
5944pub struct GetDIDsInternationalTollFreeParams {
5945    /// ID for a specific Country (Values from getDIDCountries) (required)
5946    #[serde(skip_serializing_if = "Option::is_none")]
5947    pub country_id: Option<String>,
5948}
5949
5950/// \- Retrives a list of USA DIDs by State and Ratecenter.
5951///
5952/// Parameters for [`Client::get_dids_usa`] (wire method `getDIDsUSA`).
5953#[derive(Debug, Default, Clone, Serialize)]
5954pub struct GetDIDsUSAParams {
5955    /// United States State (Values from getStates) (required)
5956    #[serde(skip_serializing_if = "Option::is_none")]
5957    pub state: Option<String>,
5958    /// United States Ratecenter (Values from getRateCentersUSA)
5959    #[serde(skip_serializing_if = "Option::is_none")]
5960    pub ratecenter: Option<String>,
5961}
5962
5963/// \- Retrives the list of DIDs assigned to the VPRI.
5964///
5965/// Parameters for [`Client::get_did_vpri`] (wire method `getDIDvPRI`).
5966#[derive(Debug, Default, Clone, Serialize)]
5967pub struct GetDIDvPRIParams {
5968    /// Id for specific Vpri (required)
5969    #[serde(skip_serializing_if = "Option::is_none")]
5970    pub vpri: Option<String>,
5971}
5972
5973/// \- Retrieves a list of DISAs if no additional parameter is provided.
5974/// \- Retrieves a specific DISA if a DISA code is provided.
5975///
5976/// Parameters for [`Client::get_disas`] (wire method `getDISAs`).
5977#[derive(Debug, Default, Clone, Serialize)]
5978pub struct GetDISAsParams {
5979    /// ID for a specific DISA (Example: 2114)
5980    #[serde(skip_serializing_if = "Option::is_none")]
5981    pub disa: Option<String>,
5982}
5983
5984/// \- Retrieves a list of DTMF Modes if no additional parameter is provided.
5985/// \- Retrieves a specific DTMF Mode if a DTMF mode code is provided.
5986///
5987/// Parameters for [`Client::get_dtmf_modes`] (wire method `getDTMFModes`).
5988#[derive(Debug, Default, Clone, Serialize)]
5989pub struct GetDTMFModesParams {
5990    /// Code for a specific DTMF Mode (Example: 'inband')
5991    #[serde(skip_serializing_if = "Option::is_none")]
5992    pub dtmf_mode: Option<DtmfMode>,
5993}
5994
5995/// \- Retrieves Deposits made for a specific Reseller Client.
5996///
5997/// Parameters for [`Client::get_deposits`] (wire method `getDeposits`).
5998#[derive(Debug, Default, Clone, Serialize)]
5999pub struct GetDepositsParams {
6000    /// ID for a specific Reseller Client (Example: 561115) (required)
6001    #[serde(skip_serializing_if = "Option::is_none")]
6002    pub client: Option<String>,
6003}
6004
6005/// \- Retrieves a list of Device Types if no additional parameter is provided.
6006/// \- Retrieves a specific Device Type if a device type code is provided.
6007///
6008/// Parameters for [`Client::get_device_types`] (wire method `getDeviceTypes`).
6009#[derive(Debug, Default, Clone, Serialize)]
6010pub struct GetDeviceTypesParams {
6011    /// Code for a specific Device Type (Example: 1)
6012    #[serde(skip_serializing_if = "Option::is_none")]
6013    pub device_type: Option<String>,
6014}
6015
6016/// \- Retrieves a list of "Email to Fax configurations" from your account if no
6017/// additional parameter is provided.
6018/// \- Retrieves a specific "Email to Fax configuration" from your account if a
6019/// ID is provided.
6020///
6021/// Parameters for [`Client::get_email_to_fax`] (wire method `getEmailToFax`).
6022#[derive(Debug, Default, Clone, Serialize)]
6023pub struct GetEmailToFAXParams {
6024    #[serde(skip_serializing_if = "Option::is_none")]
6025    pub id: Option<u64>,
6026}
6027
6028/// \- Retrieves a list of Fax Folders from your account.
6029///
6030/// Parameters for [`Client::get_fax_folders`] (wire method `getFaxFolders`).
6031#[derive(Debug, Default, Clone, Serialize)]
6032pub struct GetFAXFoldersParams {
6033    #[serde(skip_serializing_if = "Option::is_none")]
6034    pub id: Option<u64>,
6035}
6036
6037/// \- Retrieves a Base64 code of the Fax Message to create a PDF file.
6038///
6039/// Parameters for [`Client::get_fax_message_pdf`] (wire method `getFaxMessagePDF`).
6040#[derive(Debug, Default, Clone, Serialize)]
6041pub struct GetFAXMessagePDFParams {
6042    /// ID of the Fax Message requested (Values from getFaxMessages) (required)
6043    #[serde(skip_serializing_if = "Option::is_none")]
6044    pub id: Option<u64>,
6045}
6046
6047/// \- Retrieves a list of Fax Messages.
6048/// \- Retrieves a specific Fax Message if a Fax Message ID is provided.
6049///
6050/// Parameters for [`Client::get_fax_messages`] (wire method `getFaxMessages`).
6051#[derive(Debug, Default, Clone, Serialize)]
6052pub struct GetFAXMessagesParams {
6053    /// Start Date for Filtering Fax Messages (Example: '2014-03-30') - Default
6054    /// value: Today
6055    #[serde(skip_serializing_if = "Option::is_none")]
6056    pub from: Option<String>,
6057    /// End Date for Filtering Fax Messages (Example: '2014-03-30') - Default
6058    /// value: Today
6059    #[serde(skip_serializing_if = "Option::is_none")]
6060    pub to: Option<String>,
6061    /// Name of specific Fax Folder (Example: SENT) - Default value: ALL
6062    #[serde(skip_serializing_if = "Option::is_none")]
6063    pub folder: Option<String>,
6064    /// ID for a Specific Fax Message (Example: 23434)
6065    #[serde(skip_serializing_if = "Option::is_none")]
6066    pub id: Option<u64>,
6067}
6068
6069/// \- Retrieves a list of Fax Numbers.
6070///
6071/// Parameters for [`Client::get_fax_numbers_info`] (wire method `getFaxNumbersInfo`).
6072#[derive(Debug, Default, Clone, Serialize)]
6073pub struct GetFAXNumbersInfoParams {
6074    /// Fax Number to retrieves the information of a single number, or not send
6075    /// if you want retrieves the information of all your Fax Numbers.
6076    #[serde(skip_serializing_if = "Option::is_none")]
6077    pub did: Option<String>,
6078}
6079
6080/// \- Shows if a Fax Number can be ported into our network
6081///
6082/// Parameters for [`Client::get_fax_numbers_portability`] (wire method `getFaxNumbersPortability`).
6083#[derive(Debug, Default, Clone, Serialize)]
6084pub struct GetFAXNumbersPortabilityParams {
6085    /// DID Number to be ported into our network (Example: 5552341234)
6086    /// (required)
6087    #[serde(skip_serializing_if = "Option::is_none")]
6088    pub did: Option<String>,
6089}
6090
6091/// \- Retrieves a list of Canadian Fax Provinces if no additional parameter is
6092/// provided.
6093/// \- Retrieves a specific Canadian Fax Province if a province code is provided.
6094///
6095/// Parameters for [`Client::get_fax_provinces`] (wire method `getFaxProvinces`).
6096#[derive(Debug, Default, Clone, Serialize)]
6097pub struct GetFAXProvincesParams {
6098    /// CODE for a specific Province (Example: AB)
6099    #[serde(skip_serializing_if = "Option::is_none")]
6100    pub province: Option<String>,
6101}
6102
6103/// \- Retrieves a list of Canadian Ratecenters by Province.
6104///
6105/// Parameters for [`Client::get_fax_rate_centers_can`] (wire method `getFaxRateCentersCAN`).
6106#[derive(Debug, Default, Clone, Serialize)]
6107pub struct GetFAXRateCentersCANParams {
6108    /// Province two letters code (Example: AB) (required)
6109    #[serde(skip_serializing_if = "Option::is_none")]
6110    pub province: Option<String>,
6111}
6112
6113/// \- Retrieves a list of USA Ratecenters by State.
6114///
6115/// Parameters for [`Client::get_fax_rate_centers_usa`] (wire method `getFaxRateCentersUSA`).
6116#[derive(Debug, Default, Clone, Serialize)]
6117pub struct GetFAXRateCentersUSAParams {
6118    /// Province two letters code (Example: AL) (required)
6119    #[serde(skip_serializing_if = "Option::is_none")]
6120    pub state: Option<String>,
6121}
6122
6123/// \- Retrieves a list of American Fax States if no additional parameter is
6124/// provided.
6125/// \- Retrieves a specific American Fax State if a state code is provided.
6126///
6127/// Parameters for [`Client::get_fax_states`] (wire method `getFaxStates`).
6128#[derive(Debug, Default, Clone, Serialize)]
6129pub struct GetFAXStatesParams {
6130    /// CODE for a specific State (Example: AL)
6131    #[serde(skip_serializing_if = "Option::is_none")]
6132    pub state: Option<String>,
6133}
6134
6135/// \- Retrieves a list of Forwardings if no additional parameter is provided.
6136/// \- Retrieves a specific Forwarding if a fwd code is provided.
6137///
6138/// Parameters for [`Client::get_forwardings`] (wire method `getForwardings`).
6139#[derive(Debug, Default, Clone, Serialize)]
6140pub struct GetForwardingsParams {
6141    /// ID for a specific Forwarding (Example: 18635)
6142    #[serde(skip_serializing_if = "Option::is_none")]
6143    pub forwarding: Option<String>,
6144}
6145
6146/// \- Shows the IP used by the client application requesting information from
6147/// the API
6148/// \* this is the only function not using the IP for authentication.
6149/// \* the IP returned should be the one used in the API Configuration.
6150///
6151/// Parameters for [`Client::get_ip`] (wire method `getIP`).
6152#[derive(Debug, Default, Clone, Serialize)]
6153pub struct GetIPParams {}
6154
6155/// \- Retrieves a list of IVRs if no additional parameter is provided.
6156/// \- Retrieves a specific IVR if a IVR code is provided.
6157///
6158/// Parameters for [`Client::get_ivrs`] (wire method `getIVRs`).
6159#[derive(Debug, Default, Clone, Serialize)]
6160pub struct GetIVRsParams {
6161    /// ID for a specific IVR (Example: 4636)
6162    #[serde(skip_serializing_if = "Option::is_none")]
6163    pub ivr: Option<String>,
6164}
6165
6166/// \- Retrieves a list of Types for International DIDs if no additional
6167/// parameter is provided.
6168/// \- Retrieves a specific Types for International DIDs if a type code is
6169/// provided.
6170///
6171/// Parameters for [`Client::get_international_types`] (wire method `getInternationalTypes`).
6172#[derive(Debug, Default, Clone, Serialize)]
6173pub struct GetInternationalTypesParams {
6174    /// Code for a specific International Type (Example: 'NATIONAL')
6175    #[serde(skip_serializing_if = "Option::is_none")]
6176    pub r#type: Option<String>,
6177}
6178
6179/// \- Retrieves a list of 'JoinWhenEmpty' Types if no additional parameter is
6180/// provided.
6181/// \- Retrieves a specific 'JoinWhenEmpty' Types if a type code is provided.
6182///
6183/// Parameters for [`Client::get_join_when_empty_types`] (wire method `getJoinWhenEmptyTypes`).
6184#[derive(Debug, Default, Clone, Serialize)]
6185pub struct GetJoinWhenEmptyTypesParams {
6186    /// Code for a specific 'JoinWhenEmpty' Type (Example: 'yes')
6187    #[serde(skip_serializing_if = "Option::is_none")]
6188    pub r#type: Option<String>,
6189}
6190
6191/// \- Retrieve the details of an attached invoice.
6192///
6193/// Parameters for [`Client::get_lnp_attach`] (wire method `getLNPAttach`).
6194#[derive(Debug, Default, Clone, Serialize)]
6195pub struct GetLNPAttachParams {
6196    /// ID of the invoice (attachment) previously uploaded. (required)
6197    #[serde(skip_serializing_if = "Option::is_none")]
6198    pub attachid: Option<u64>,
6199}
6200
6201/// \- Retrieve the list of invoice (attached) files from a given portability
6202/// process.
6203///
6204/// Parameters for [`Client::get_lnp_attach_list`] (wire method `getLNPAttachList`).
6205#[derive(Debug, Default, Clone, Serialize)]
6206pub struct GetLNPAttachListParams {
6207    /// ID of the port previously created. (required)
6208    #[serde(skip_serializing_if = "Option::is_none")]
6209    pub portid: Option<u64>,
6210}
6211
6212/// \- Retrieve the details of a given portability process.
6213///
6214/// Parameters for [`Client::get_lnp_details`] (wire method `getLNPDetails`).
6215#[derive(Debug, Default, Clone, Serialize)]
6216pub struct GetLNPDetailsParams {
6217    /// ID of the port previously created. (required)
6218    #[serde(skip_serializing_if = "Option::is_none")]
6219    pub portid: Option<u64>,
6220}
6221
6222/// \- Retrieve the full list of all your portability processes.
6223///
6224/// Parameters for [`Client::get_lnp_list`] (wire method `getLNPList`).
6225#[derive(Debug, Default, Clone, Serialize)]
6226pub struct GetLNPListParams {
6227    /// ID of the port previously created. (required)
6228    #[serde(skip_serializing_if = "Option::is_none")]
6229    pub portid: Option<u64>,
6230    /// Status code to filtering Ports. Example: precessing. (You can use the
6231    /// values returned by the method getLNPListStatus)
6232    #[serde(skip_serializing_if = "Option::is_none", rename = "portStatus")]
6233    pub port_status: Option<String>,
6234    /// Start Date for filtering Ports. (Example: '2014-03-30')
6235    #[serde(skip_serializing_if = "Option::is_none", rename = "startDate")]
6236    pub start_date: Option<String>,
6237    /// End Date for filtering Ports. (Example: '2014-03-30')
6238    #[serde(skip_serializing_if = "Option::is_none", rename = "endDate")]
6239    pub end_date: Option<String>,
6240}
6241
6242/// \- Retrieve the list of possible status of a portability process.
6243///
6244/// Parameters for [`Client::get_lnp_list_status`] (wire method `getLNPListStatus`).
6245#[derive(Debug, Default, Clone, Serialize)]
6246pub struct GetLNPListStatusParams {}
6247
6248/// \- Retrieve the list of notes from the given portability process.
6249///
6250/// Parameters for [`Client::get_lnp_notes`] (wire method `getLNPNotes`).
6251#[derive(Debug, Default, Clone, Serialize)]
6252pub struct GetLNPNotesParams {
6253    /// ID of the port previously created. (required)
6254    #[serde(skip_serializing_if = "Option::is_none")]
6255    pub portid: Option<u64>,
6256}
6257
6258/// \- Retrieve the current status of a given portability process.
6259///
6260/// Parameters for [`Client::get_lnp_status`] (wire method `getLNPStatus`).
6261#[derive(Debug, Default, Clone, Serialize)]
6262pub struct GetLNPStatusParams {
6263    /// ID of the port previously created. (required)
6264    #[serde(skip_serializing_if = "Option::is_none")]
6265    pub portid: Option<u64>,
6266}
6267
6268/// \- Retrieves a list of Languages if no additional parameter is provided.
6269/// \- Retrieves a specific Language if a language code is provided.
6270///
6271/// Parameters for [`Client::get_languages`] (wire method `getLanguages`).
6272#[derive(Debug, Default, Clone, Serialize)]
6273pub struct GetLanguagesParams {
6274    /// Code for a specific Language (Example: 'en')
6275    #[serde(skip_serializing_if = "Option::is_none")]
6276    pub language: Option<String>,
6277}
6278
6279/// \- Retrieves a list of locale codes if no additional parameter is provided.
6280/// \- Retrieves a specific locale code if a language code is provided.
6281///
6282/// Parameters for [`Client::get_locales`] (wire method `getLocales`).
6283#[derive(Debug, Default, Clone, Serialize)]
6284pub struct GetLocalesParams {
6285    /// Code for a specific Locale Code (Example: 'en-US')
6286    #[serde(skip_serializing_if = "Option::is_none")]
6287    pub locale: Option<String>,
6288}
6289
6290/// Parameters for [`Client::get_locations`] (wire method `getLocations`).
6291#[derive(Debug, Default, Clone, Serialize)]
6292pub struct GetLocationsParams {}
6293
6294/// \- Retrieves a list of Lock Modes if no additional parameter is provided.
6295/// \- Retrieves a specific Lock Mode if a lock code is provided.
6296///
6297/// Parameters for [`Client::get_lock_international`] (wire method `getLockInternational`).
6298#[derive(Debug, Default, Clone, Serialize)]
6299pub struct GetLockInternationalParams {
6300    /// Code for a specific Lock International Mode (Example: 1)
6301    #[serde(skip_serializing_if = "Option::is_none")]
6302    pub lock_international: Option<String>,
6303}
6304
6305/// \- Retrieves a list of MMS messages by: date range, mms type, DID number, and
6306/// contact.
6307///
6308/// Parameters for [`Client::get_mms`] (wire method `getMMS`).
6309#[derive(Debug, Default, Clone, Serialize)]
6310pub struct GetMMSParams {
6311    /// ID for a specific MMS (Example: 1918)
6312    #[serde(skip_serializing_if = "Option::is_none")]
6313    pub mms: Option<u64>,
6314    /// Start Date for Filtering MMSs (Example: '2014-03-30') - Default value:
6315    /// Today
6316    #[serde(skip_serializing_if = "Option::is_none")]
6317    pub from: Option<String>,
6318    /// End Date for Filtering MMSs (Example: '2014-03-30') - Default value:
6319    /// Today
6320    #[serde(skip_serializing_if = "Option::is_none")]
6321    pub to: Option<String>,
6322    /// Filter MMSs by Type (Boolean: 1 = received / 0 = sent)
6323    #[serde(skip_serializing_if = "Option::is_none")]
6324    pub r#type: Option<MessageType>,
6325    /// DID number for Filtering MMSs (Example: 5551234567)
6326    #[serde(skip_serializing_if = "Option::is_none")]
6327    pub did: Option<String>,
6328    /// Contact number for Filtering MMSs (Example: 5551234567)
6329    #[serde(skip_serializing_if = "Option::is_none")]
6330    pub contact: Option<String>,
6331    /// Number of records to be displayed (Example: 20) - Default value: 50
6332    #[serde(skip_serializing_if = "Option::is_none")]
6333    pub limit: Option<String>,
6334    /// IANA time zone for the reported timestamps (Example:
6335    /// 'America/New_York'); resolved to the numeric UTC offset VoIP.ms expects,
6336    /// at the query start date (DST-aware). Omit to keep timestamps in the
6337    /// account's configured time zone.
6338    #[serde(
6339        skip_serializing_if = "Option::is_none",
6340        serialize_with = "crate::responses::serialize_opt_tz"
6341    )]
6342    pub timezone: Option<chrono_tz::Tz>,
6343    /// Filter to recive all MMSs and SMSs, 1 recive all SMS and MMS, 0 if only
6344    /// need MMS, important: the sms ID must be 0
6345    #[serde(skip_serializing_if = "Option::is_none")]
6346    pub all_messages: Option<u64>,
6347}
6348
6349/// Wire form of [`GetMMSParams`]: `timezone` resolved to the numeric UTC
6350/// offset `getMMS` expects.
6351#[derive(Debug, Clone, Serialize)]
6352struct GetMMSParamsWire {
6353    #[serde(skip_serializing_if = "Option::is_none")]
6354    mms: Option<u64>,
6355    #[serde(skip_serializing_if = "Option::is_none")]
6356    from: Option<String>,
6357    #[serde(skip_serializing_if = "Option::is_none")]
6358    to: Option<String>,
6359    #[serde(skip_serializing_if = "Option::is_none")]
6360    r#type: Option<MessageType>,
6361    #[serde(skip_serializing_if = "Option::is_none")]
6362    did: Option<String>,
6363    #[serde(skip_serializing_if = "Option::is_none")]
6364    contact: Option<String>,
6365    #[serde(skip_serializing_if = "Option::is_none")]
6366    limit: Option<String>,
6367    #[serde(skip_serializing_if = "Option::is_none")]
6368    timezone: Option<crate::TimezoneOffset>,
6369    #[serde(skip_serializing_if = "Option::is_none")]
6370    all_messages: Option<u64>,
6371}
6372
6373impl TryFrom<&GetMMSParams> for GetMMSParamsWire {
6374    type Error = crate::types::TimezoneOffsetError;
6375
6376    fn try_from(p: &GetMMSParams) -> std::result::Result<Self, Self::Error> {
6377        let timezone = match p.timezone {
6378            Some(tz) => {
6379                let start = p
6380                    .from
6381                    .as_deref()
6382                    .ok_or(crate::types::TimezoneOffsetError::MissingStartDate)?
6383                    .trim()
6384                    .parse::<chrono::NaiveDate>()
6385                    .map_err(|_| crate::types::TimezoneOffsetError::InvalidStartDate)?;
6386                Some(crate::TimezoneOffset::at(tz, start)?)
6387            }
6388            None => None,
6389        };
6390        Ok(Self {
6391            mms: p.mms,
6392            from: p.from.clone(),
6393            to: p.to.clone(),
6394            r#type: p.r#type.clone(),
6395            did: p.did.clone(),
6396            contact: p.contact.clone(),
6397            limit: p.limit.clone(),
6398            timezone,
6399            all_messages: p.all_messages,
6400        })
6401    }
6402}
6403
6404/// \- Retrieves media files from the message.
6405///
6406/// Parameters for [`Client::get_media_mms`] (wire method `getMediaMMS`).
6407#[derive(Debug, Default, Clone, Serialize)]
6408pub struct GetMediaMMSParams {
6409    /// ID for a specific MMS (Example: 1918)
6410    #[serde(skip_serializing_if = "Option::is_none")]
6411    pub id: Option<u64>,
6412    /// Return the list of media attachments as an Array if the value is 1 or as
6413    /// a JSON Object if the value is 0 (Default: 0)
6414    #[serde(skip_serializing_if = "Option::is_none")]
6415    pub media_as_array: Option<u64>,
6416}
6417
6418/// \- Retrieves a list of Music on Hold Options if no additional parameter is
6419/// provided.
6420/// \- Retrieves a specific Music on Hold Option if a MOH code is provided.
6421///
6422/// Parameters for [`Client::get_music_on_hold`] (wire method `getMusicOnHold`).
6423#[derive(Debug, Default, Clone, Serialize)]
6424pub struct GetMusicOnHoldParams {
6425    /// Code for a specific Music on Hold (Example: 'jazz')
6426    #[serde(skip_serializing_if = "Option::is_none")]
6427    pub music_on_hold: Option<String>,
6428}
6429
6430/// \- Retrieves a list of NAT Options if no additional parameter is provided.
6431/// \- Retrieves a specific NAT Option if a NAT code is provided.
6432///
6433/// Parameters for [`Client::get_nat`] (wire method `getNAT`).
6434#[derive(Debug, Default, Clone, Serialize)]
6435pub struct GetNATParams {
6436    /// Code for a specific NAT Option (Example: 'route')
6437    #[serde(skip_serializing_if = "Option::is_none")]
6438    pub nat: Option<Nat>,
6439}
6440
6441/// \- Retrieves a list of Packages if no additional parameter is provided.-
6442/// Retrieves a specific Package if a package code is provided.
6443///
6444/// Parameters for [`Client::get_packages`] (wire method `getPackages`).
6445#[derive(Debug, Default, Clone, Serialize)]
6446pub struct GetPackagesParams {
6447    /// Code for a specific Package (Example: 8378)
6448    #[serde(skip_serializing_if = "Option::is_none")]
6449    pub package: Option<String>,
6450}
6451
6452/// \- Retrieves a list of Phonebook entries if no additional parameter is
6453/// provided.
6454/// \- Retrieves a list of Phonebook entries if a name is provided.
6455/// \- Retrieves a specific Phonebook entry if a Phonebook code is provided.
6456/// \- Retrieves a list of Phonebook entries if a phonebook group name is
6457/// provided.
6458/// \- Retrieves a list of Phonebook entries if a phonebook group code is
6459/// provided.
6460///
6461/// Parameters for [`Client::get_phonebook`] (wire method `getPhonebook`).
6462#[derive(Debug, Default, Clone, Serialize)]
6463pub struct GetPhonebookParams {
6464    /// ID for a specific Phonebook entry (Example: 32207)
6465    #[serde(skip_serializing_if = "Option::is_none")]
6466    pub phonebook: Option<String>,
6467    /// Name to be searched in database (Example: 'jane')
6468    #[serde(skip_serializing_if = "Option::is_none")]
6469    pub name: Option<String>,
6470    /// ID for a specific Phonebook group
6471    #[serde(skip_serializing_if = "Option::is_none")]
6472    pub group: Option<String>,
6473    /// Group Name
6474    #[serde(skip_serializing_if = "Option::is_none")]
6475    pub group_name: Option<String>,
6476}
6477
6478/// \- Retrieves a list of Phonebook groups if no additional parameter is
6479/// provided.
6480/// \- Retrieves a list of Phonebook groups if a name is provided.
6481/// \- Retrieves a specific Phonebook group if a group ID is provided.
6482///
6483/// Parameters for [`Client::get_phonebook_groups`] (wire method `getPhonebookGroups`).
6484#[derive(Debug, Default, Clone, Serialize)]
6485pub struct GetPhonebookGroupsParams {
6486    /// Group Name
6487    #[serde(skip_serializing_if = "Option::is_none")]
6488    pub name: Option<String>,
6489    /// ID for a specific Phonebook group
6490    #[serde(skip_serializing_if = "Option::is_none")]
6491    pub group: Option<String>,
6492}
6493
6494/// \- Retrieves a list of Play Instructions modes if no additional parameter is
6495/// provided.
6496/// \- Retrieves a specific Play Instructions mode if a play code is provided.
6497///
6498/// Parameters for [`Client::get_play_instructions`] (wire method `getPlayInstructions`).
6499#[derive(Debug, Default, Clone, Serialize)]
6500pub struct GetPlayInstructionsParams {
6501    /// Code for a specific Play Instructions setting (Example: 'u')
6502    #[serde(skip_serializing_if = "Option::is_none")]
6503    pub play_instructions: Option<PlayInstructions>,
6504}
6505
6506/// \- Shows if a DID Number can be ported into our network.
6507/// \- Display plans and rates available if the DID Number can be ported into our
6508/// network.
6509///
6510/// Parameters for [`Client::get_portability`] (wire method `getPortability`).
6511#[derive(Debug, Default, Clone, Serialize)]
6512pub struct GetPortabilityParams {
6513    /// DID Number to be ported into our network (Example: 5552341234)
6514    /// (required)
6515    #[serde(skip_serializing_if = "Option::is_none")]
6516    pub did: Option<String>,
6517}
6518
6519/// \- Retrieves a list of Protocols if no additional parameter is provided.
6520/// \- Retrieves a specific Protocol if a protocol code is provided.
6521///
6522/// Parameters for [`Client::get_protocols`] (wire method `getProtocols`).
6523#[derive(Debug, Default, Clone, Serialize)]
6524pub struct GetProtocolsParams {
6525    /// Code for a specific Protocol (Example: 3)
6526    #[serde(skip_serializing_if = "Option::is_none")]
6527    pub protocol: Option<String>,
6528}
6529
6530/// \- Retrieves a list of Canadian Provinces.
6531///
6532/// Parameters for [`Client::get_provinces`] (wire method `getProvinces`).
6533#[derive(Debug, Default, Clone, Serialize)]
6534pub struct GetProvincesParams {}
6535
6536/// \- Retrieves a list of Queue entries if no additional parameter is provided.
6537/// \- Retrieves a specific Queue entry if a Queue code is provided.
6538///
6539/// Parameters for [`Client::get_queues`] (wire method `getQueues`).
6540#[derive(Debug, Default, Clone, Serialize)]
6541pub struct GetQueuesParams {
6542    /// ID for a specific Queue (Example: 4764)
6543    #[serde(skip_serializing_if = "Option::is_none")]
6544    pub queue: Option<String>,
6545}
6546
6547/// \- Retrieves a list of Canadian Ratecenters by Province.
6548///
6549/// Parameters for [`Client::get_rate_centers_can`] (wire method `getRateCentersCAN`).
6550#[derive(Debug, Default, Clone, Serialize)]
6551pub struct GetRateCentersCANParams {
6552    /// Canadian Province (Values from getProvinces) (required)
6553    #[serde(skip_serializing_if = "Option::is_none")]
6554    pub province: Option<String>,
6555}
6556
6557/// \- Retrieves a list of USA Ratecenters by State.
6558///
6559/// Parameters for [`Client::get_rate_centers_usa`] (wire method `getRateCentersUSA`).
6560#[derive(Debug, Default, Clone, Serialize)]
6561pub struct GetRateCentersUSAParams {
6562    /// United States State (Values from getStates) (required)
6563    #[serde(skip_serializing_if = "Option::is_none")]
6564    pub state: Option<String>,
6565}
6566
6567/// \- Retrieves the Rates for a specific Package and a Search term.
6568///
6569/// Parameters for [`Client::get_rates`] (wire method `getRates`).
6570#[derive(Debug, Default, Clone, Serialize)]
6571pub struct GetRatesParams {
6572    /// ID for a specific Package (Example: 92364) (required)
6573    #[serde(skip_serializing_if = "Option::is_none")]
6574    pub package: Option<String>,
6575    /// Query for searching rates (Example: 'Canada') (required)
6576    #[serde(skip_serializing_if = "Option::is_none")]
6577    pub query: Option<String>,
6578}
6579
6580/// \- Retrieves a specific Recording File data in Base64 format.
6581///
6582/// Parameters for [`Client::get_recording_file`] (wire method `getRecordingFile`).
6583#[derive(Debug, Default, Clone, Serialize)]
6584pub struct GetRecordingFileParams {
6585    /// ID for a specific Recording (Example: 7567) (required)
6586    #[serde(skip_serializing_if = "Option::is_none")]
6587    pub recording: Option<String>,
6588}
6589
6590/// \- Retrieves a list of Recordings if no additional parameter is provided.
6591/// \- Retrieves a specific Recording if a Recording code is provided.
6592///
6593/// Parameters for [`Client::get_recordings`] (wire method `getRecordings`).
6594#[derive(Debug, Default, Clone, Serialize)]
6595pub struct GetRecordingsParams {
6596    /// ID for a specific Recording (Example: 7567)
6597    #[serde(skip_serializing_if = "Option::is_none")]
6598    pub recording: Option<String>,
6599}
6600
6601/// \- Retrieves the Registration Status of all accounts if no account is
6602/// provided.
6603///
6604/// Parameters for [`Client::get_registration_status`] (wire method `getRegistrationStatus`).
6605#[derive(Debug, Default, Clone, Serialize)]
6606pub struct GetRegistrationStatusParams {
6607    /// Specific Account (Example: '100001_VoIP') (required)
6608    #[serde(skip_serializing_if = "Option::is_none")]
6609    pub account: Option<String>,
6610}
6611
6612/// \- Retrieves a list of 'ReportEstimateHoldTime' Types if no additional
6613/// parameter is provided.
6614/// \- Retrieves a specific 'ReportEstimateHoldTime' Type if a type code is
6615/// provided.
6616///
6617/// Parameters for [`Client::get_report_estimated_hold_time`] (wire method `getReportEstimatedHoldTime`).
6618#[derive(Debug, Default, Clone, Serialize)]
6619pub struct GetReportEstimatedHoldTimeParams {
6620    /// Code for a specific 'ReportEstimatedHoldTime' Type (Example: 'yes')
6621    #[serde(skip_serializing_if = "Option::is_none")]
6622    pub r#type: Option<String>,
6623}
6624
6625/// \- Retrieves Balance and Calls Statistics for a specific Reseller Client for
6626/// the last 30 days and current day.
6627///
6628/// Parameters for [`Client::get_reseller_balance`] (wire method `getResellerBalance`).
6629#[derive(Debug, Default, Clone, Serialize)]
6630pub struct GetResellerBalanceParams {
6631    /// ID for a specific Reseller Client (Example: 561115) (required)
6632    #[serde(skip_serializing_if = "Option::is_none")]
6633    pub client: Option<String>,
6634}
6635
6636/// \- Retrieves the Call Detail Records for a specific Reseller Client.
6637///
6638/// Parameters for [`Client::get_reseller_cdr`] (wire method `getResellerCDR`).
6639#[derive(Debug, Default, Clone, Serialize)]
6640pub struct GetResellerCDRParams {
6641    /// Start Date for Filtering CDR (Example: '2010-11-30') (required)
6642    #[serde(skip_serializing_if = "Option::is_none")]
6643    pub date_from: Option<chrono::NaiveDate>,
6644    /// End Date for Filtering CDR (Example: '2010-11-30') (required)
6645    #[serde(skip_serializing_if = "Option::is_none")]
6646    pub date_to: Option<chrono::NaiveDate>,
6647    /// ID for a specific Reseller Client (Example: 561115) (required)
6648    #[serde(skip_serializing_if = "Option::is_none")]
6649    pub client: Option<u64>,
6650    /// Include Answered Calls to CDR (Boolean: 1/0)
6651    #[serde(
6652        skip_serializing_if = "Option::is_none",
6653        serialize_with = "crate::responses::serialize_opt_flag_01"
6654    )]
6655    pub answered: Option<bool>,
6656    /// Include NoAnswered calls to CDR (Boolean: 1/0)
6657    #[serde(
6658        skip_serializing_if = "Option::is_none",
6659        serialize_with = "crate::responses::serialize_opt_flag_01"
6660    )]
6661    pub noanswer: Option<bool>,
6662    /// Include Busy Calls to CDR (Boolean: 1/0)
6663    #[serde(
6664        skip_serializing_if = "Option::is_none",
6665        serialize_with = "crate::responses::serialize_opt_flag_01"
6666    )]
6667    pub busy: Option<bool>,
6668    /// Include Failed Calls to CDR (Boolean: 1/0)
6669    #[serde(
6670        skip_serializing_if = "Option::is_none",
6671        serialize_with = "crate::responses::serialize_opt_flag_01"
6672    )]
6673    pub failed: Option<bool>,
6674    /// IANA time zone for the reported timestamps (Example:
6675    /// 'America/New_York'); resolved to the numeric UTC offset VoIP.ms expects,
6676    /// at the query start date (DST-aware). Omit to keep timestamps in the
6677    /// account's configured time zone. (required)
6678    #[serde(
6679        skip_serializing_if = "Option::is_none",
6680        serialize_with = "crate::responses::serialize_opt_tz"
6681    )]
6682    pub timezone: Option<chrono_tz::Tz>,
6683    /// Filters CDR by Call Type (Values from getCallTypes)
6684    #[serde(skip_serializing_if = "Option::is_none")]
6685    pub calltype: Option<String>,
6686    /// Filter CDR by Call Billing (Values from getCallBilling)
6687    #[serde(skip_serializing_if = "Option::is_none")]
6688    pub callbilling: Option<String>,
6689    /// Filter CDR by Account (Values from getCallAccounts)
6690    #[serde(skip_serializing_if = "Option::is_none")]
6691    pub account: Option<String>,
6692}
6693
6694/// Wire form of [`GetResellerCDRParams`]: `timezone` resolved to the numeric UTC
6695/// offset `getResellerCDR` expects.
6696#[derive(Debug, Clone, Serialize)]
6697struct GetResellerCDRParamsWire {
6698    #[serde(skip_serializing_if = "Option::is_none")]
6699    date_from: Option<chrono::NaiveDate>,
6700    #[serde(skip_serializing_if = "Option::is_none")]
6701    date_to: Option<chrono::NaiveDate>,
6702    #[serde(skip_serializing_if = "Option::is_none")]
6703    client: Option<u64>,
6704    #[serde(
6705        skip_serializing_if = "Option::is_none",
6706        serialize_with = "crate::responses::serialize_opt_flag_01"
6707    )]
6708    answered: Option<bool>,
6709    #[serde(
6710        skip_serializing_if = "Option::is_none",
6711        serialize_with = "crate::responses::serialize_opt_flag_01"
6712    )]
6713    noanswer: Option<bool>,
6714    #[serde(
6715        skip_serializing_if = "Option::is_none",
6716        serialize_with = "crate::responses::serialize_opt_flag_01"
6717    )]
6718    busy: Option<bool>,
6719    #[serde(
6720        skip_serializing_if = "Option::is_none",
6721        serialize_with = "crate::responses::serialize_opt_flag_01"
6722    )]
6723    failed: Option<bool>,
6724    #[serde(skip_serializing_if = "Option::is_none")]
6725    timezone: Option<crate::TimezoneOffset>,
6726    #[serde(skip_serializing_if = "Option::is_none")]
6727    calltype: Option<String>,
6728    #[serde(skip_serializing_if = "Option::is_none")]
6729    callbilling: Option<String>,
6730    #[serde(skip_serializing_if = "Option::is_none")]
6731    account: Option<String>,
6732}
6733
6734impl TryFrom<&GetResellerCDRParams> for GetResellerCDRParamsWire {
6735    type Error = crate::types::TimezoneOffsetError;
6736
6737    fn try_from(p: &GetResellerCDRParams) -> std::result::Result<Self, Self::Error> {
6738        let timezone = match p.timezone {
6739            Some(tz) => {
6740                let start = p
6741                    .date_from
6742                    .ok_or(crate::types::TimezoneOffsetError::MissingStartDate)?;
6743                Some(crate::TimezoneOffset::at(tz, start)?)
6744            }
6745            None => None,
6746        };
6747        Ok(Self {
6748            date_from: p.date_from,
6749            date_to: p.date_to,
6750            client: p.client,
6751            answered: p.answered,
6752            noanswer: p.noanswer,
6753            busy: p.busy,
6754            failed: p.failed,
6755            timezone,
6756            calltype: p.calltype.clone(),
6757            callbilling: p.callbilling.clone(),
6758            account: p.account.clone(),
6759        })
6760    }
6761}
6762
6763/// \- Retrieves a list of MMS messages for a specific Reseller Client. by: date
6764/// range, mms type, DID number, and contact
6765///
6766/// Parameters for [`Client::get_reseller_mms`] (wire method `getResellerMMS`).
6767#[derive(Debug, Default, Clone, Serialize)]
6768pub struct GetResellerMMSParams {
6769    #[serde(skip_serializing_if = "Option::is_none")]
6770    pub mms: Option<u64>,
6771    #[serde(skip_serializing_if = "Option::is_none")]
6772    pub client: Option<u64>,
6773    /// Start Date for Filtering SMSs (Example: '2014-03-30') - Default value:
6774    /// Today
6775    #[serde(skip_serializing_if = "Option::is_none")]
6776    pub from: Option<String>,
6777    /// End Date for Filtering MMSs (Example: '2014-03-30') - Default value:
6778    /// Todayclient => \[Required\] ID for a specific Reseller Client (Example:
6779    /// 561115)
6780    #[serde(skip_serializing_if = "Option::is_none")]
6781    pub to: Option<String>,
6782    /// Filter SMSs by Type (Boolean: 1 = received / 0 = sent)
6783    #[serde(skip_serializing_if = "Option::is_none")]
6784    pub r#type: Option<MessageType>,
6785    /// DID number for Filtering MMSs (Example: 5551234567)
6786    #[serde(skip_serializing_if = "Option::is_none")]
6787    pub did: Option<String>,
6788    /// Contact number for Filtering MMSs (Example: 5551234567)
6789    #[serde(skip_serializing_if = "Option::is_none")]
6790    pub contact: Option<String>,
6791    /// Number of records to be displayed (Example: 20) - Default value: 50
6792    #[serde(skip_serializing_if = "Option::is_none")]
6793    pub limit: Option<String>,
6794    /// IANA time zone for the reported timestamps (Example:
6795    /// 'America/New_York'); resolved to the numeric UTC offset VoIP.ms expects,
6796    /// at the query start date (DST-aware). Omit to keep timestamps in the
6797    /// account's configured time zone.
6798    #[serde(
6799        skip_serializing_if = "Option::is_none",
6800        serialize_with = "crate::responses::serialize_opt_tz"
6801    )]
6802    pub timezone: Option<chrono_tz::Tz>,
6803    /// Filter to recive all SMSs and MMSs, 1 recive all SMS and MMS, 0 if only
6804    /// need SMS, important: the sms ID must be 0
6805    #[serde(skip_serializing_if = "Option::is_none")]
6806    pub all_messages: Option<u64>,
6807}
6808
6809/// Wire form of [`GetResellerMMSParams`]: `timezone` resolved to the numeric UTC
6810/// offset `getResellerMMS` expects.
6811#[derive(Debug, Clone, Serialize)]
6812struct GetResellerMMSParamsWire {
6813    #[serde(skip_serializing_if = "Option::is_none")]
6814    mms: Option<u64>,
6815    #[serde(skip_serializing_if = "Option::is_none")]
6816    client: Option<u64>,
6817    #[serde(skip_serializing_if = "Option::is_none")]
6818    from: Option<String>,
6819    #[serde(skip_serializing_if = "Option::is_none")]
6820    to: Option<String>,
6821    #[serde(skip_serializing_if = "Option::is_none")]
6822    r#type: Option<MessageType>,
6823    #[serde(skip_serializing_if = "Option::is_none")]
6824    did: Option<String>,
6825    #[serde(skip_serializing_if = "Option::is_none")]
6826    contact: Option<String>,
6827    #[serde(skip_serializing_if = "Option::is_none")]
6828    limit: Option<String>,
6829    #[serde(skip_serializing_if = "Option::is_none")]
6830    timezone: Option<crate::TimezoneOffset>,
6831    #[serde(skip_serializing_if = "Option::is_none")]
6832    all_messages: Option<u64>,
6833}
6834
6835impl TryFrom<&GetResellerMMSParams> for GetResellerMMSParamsWire {
6836    type Error = crate::types::TimezoneOffsetError;
6837
6838    fn try_from(p: &GetResellerMMSParams) -> std::result::Result<Self, Self::Error> {
6839        let timezone = match p.timezone {
6840            Some(tz) => {
6841                let start = p
6842                    .from
6843                    .as_deref()
6844                    .ok_or(crate::types::TimezoneOffsetError::MissingStartDate)?
6845                    .trim()
6846                    .parse::<chrono::NaiveDate>()
6847                    .map_err(|_| crate::types::TimezoneOffsetError::InvalidStartDate)?;
6848                Some(crate::TimezoneOffset::at(tz, start)?)
6849            }
6850            None => None,
6851        };
6852        Ok(Self {
6853            mms: p.mms,
6854            client: p.client,
6855            from: p.from.clone(),
6856            to: p.to.clone(),
6857            r#type: p.r#type.clone(),
6858            did: p.did.clone(),
6859            contact: p.contact.clone(),
6860            limit: p.limit.clone(),
6861            timezone,
6862            all_messages: p.all_messages,
6863        })
6864    }
6865}
6866
6867/// \- Retrieves a list of SMS messages for a specific Reseller Client. by: date
6868/// range, sms type, DID number, and contact
6869///
6870/// Parameters for [`Client::get_reseller_sms`] (wire method `getResellerSMS`).
6871#[derive(Debug, Default, Clone, Serialize)]
6872pub struct GetResellerSMSParams {
6873    /// ID for a specific SMS (Example: 5853)
6874    #[serde(skip_serializing_if = "Option::is_none")]
6875    pub sms: Option<u64>,
6876    #[serde(skip_serializing_if = "Option::is_none")]
6877    pub client: Option<u64>,
6878    /// Start Date for Filtering SMSs (Example: '2014-03-30') - Default value:
6879    /// Today
6880    #[serde(skip_serializing_if = "Option::is_none")]
6881    pub from: Option<String>,
6882    /// End Date for Filtering SMSs (Example: '2014-03-30') - Default value:
6883    /// Todayclient => \[Required\] ID for a specific Reseller Client (Example:
6884    /// 561115)
6885    #[serde(skip_serializing_if = "Option::is_none")]
6886    pub to: Option<String>,
6887    /// Filter SMSs by Type (Boolean: 1 = received / 0 = sent)
6888    #[serde(skip_serializing_if = "Option::is_none")]
6889    pub r#type: Option<MessageType>,
6890    /// DID number for Filtering SMSs (Example: 5551234567)
6891    #[serde(skip_serializing_if = "Option::is_none")]
6892    pub did: Option<String>,
6893    /// Contact number for Filtering SMSs (Example: 5551234567)
6894    #[serde(skip_serializing_if = "Option::is_none")]
6895    pub contact: Option<String>,
6896    /// Number of records to be displayed (Example: 20) - Default value: 50
6897    #[serde(skip_serializing_if = "Option::is_none")]
6898    pub limit: Option<String>,
6899    /// IANA time zone for the reported timestamps (Example:
6900    /// 'America/New_York'); resolved to the numeric UTC offset VoIP.ms expects,
6901    /// at the query start date (DST-aware). Omit to keep timestamps in the
6902    /// account's configured time zone.
6903    #[serde(
6904        skip_serializing_if = "Option::is_none",
6905        serialize_with = "crate::responses::serialize_opt_tz"
6906    )]
6907    pub timezone: Option<chrono_tz::Tz>,
6908    /// Filter to recive all SMSs and MMSs, 1 recive all SMS and MMS, 0 if only
6909    /// need SMS, important: the sms ID must be 0
6910    #[serde(skip_serializing_if = "Option::is_none")]
6911    pub all_messages: Option<u64>,
6912}
6913
6914/// Wire form of [`GetResellerSMSParams`]: `timezone` resolved to the numeric UTC
6915/// offset `getResellerSMS` expects.
6916#[derive(Debug, Clone, Serialize)]
6917struct GetResellerSMSParamsWire {
6918    #[serde(skip_serializing_if = "Option::is_none")]
6919    sms: Option<u64>,
6920    #[serde(skip_serializing_if = "Option::is_none")]
6921    client: Option<u64>,
6922    #[serde(skip_serializing_if = "Option::is_none")]
6923    from: Option<String>,
6924    #[serde(skip_serializing_if = "Option::is_none")]
6925    to: Option<String>,
6926    #[serde(skip_serializing_if = "Option::is_none")]
6927    r#type: Option<MessageType>,
6928    #[serde(skip_serializing_if = "Option::is_none")]
6929    did: Option<String>,
6930    #[serde(skip_serializing_if = "Option::is_none")]
6931    contact: Option<String>,
6932    #[serde(skip_serializing_if = "Option::is_none")]
6933    limit: Option<String>,
6934    #[serde(skip_serializing_if = "Option::is_none")]
6935    timezone: Option<crate::TimezoneOffset>,
6936    #[serde(skip_serializing_if = "Option::is_none")]
6937    all_messages: Option<u64>,
6938}
6939
6940impl TryFrom<&GetResellerSMSParams> for GetResellerSMSParamsWire {
6941    type Error = crate::types::TimezoneOffsetError;
6942
6943    fn try_from(p: &GetResellerSMSParams) -> std::result::Result<Self, Self::Error> {
6944        let timezone = match p.timezone {
6945            Some(tz) => {
6946                let start = p
6947                    .from
6948                    .as_deref()
6949                    .ok_or(crate::types::TimezoneOffsetError::MissingStartDate)?
6950                    .trim()
6951                    .parse::<chrono::NaiveDate>()
6952                    .map_err(|_| crate::types::TimezoneOffsetError::InvalidStartDate)?;
6953                Some(crate::TimezoneOffset::at(tz, start)?)
6954            }
6955            None => None,
6956        };
6957        Ok(Self {
6958            sms: p.sms,
6959            client: p.client,
6960            from: p.from.clone(),
6961            to: p.to.clone(),
6962            r#type: p.r#type.clone(),
6963            did: p.did.clone(),
6964            contact: p.contact.clone(),
6965            limit: p.limit.clone(),
6966            timezone,
6967            all_messages: p.all_messages,
6968        })
6969    }
6970}
6971
6972/// \- Retrieves a list of Ring Groups if no additional parameter is provided.
6973/// \- Retrieves a specific Ring Group if a ring group code is provided.
6974///
6975/// Parameters for [`Client::get_ring_groups`] (wire method `getRingGroups`).
6976#[derive(Debug, Default, Clone, Serialize)]
6977pub struct GetRingGroupsParams {
6978    /// ID for a specific Ring Group (Example: 4768)
6979    #[serde(skip_serializing_if = "Option::is_none")]
6980    pub ring_group: Option<String>,
6981}
6982
6983/// \- Retrieves a list of Ring Strategies if no additional parameter is
6984/// provided.
6985/// \- Retrieves a specific Ring Strategy if a ring strategy code is provided.
6986///
6987/// Parameters for [`Client::get_ring_strategies`] (wire method `getRingStrategies`).
6988#[derive(Debug, Default, Clone, Serialize)]
6989pub struct GetRingStrategiesParams {
6990    /// ID for a specific Ring Strategy (Example: 'rrmemory')
6991    #[serde(skip_serializing_if = "Option::is_none")]
6992    pub strategy: Option<String>,
6993}
6994
6995/// \- Retrieves a list of Route Options if no additional parameter is provided.
6996/// \- Retrieves a specific Route Option if a route code is provided.
6997///
6998/// Parameters for [`Client::get_routes`] (wire method `getRoutes`).
6999#[derive(Debug, Default, Clone, Serialize)]
7000pub struct GetRoutesParams {
7001    /// Code for a specific Route (Example: 2)
7002    #[serde(skip_serializing_if = "Option::is_none")]
7003    pub route: Option<String>,
7004}
7005
7006/// \- Retrieves a list of SIP URIs if no additional parameter is provided.
7007/// \- Retrieves a specific SIP URI if a SIP URI code is provided.
7008///
7009/// Parameters for [`Client::get_sip_uris`] (wire method `getSIPURIs`).
7010#[derive(Debug, Default, Clone, Serialize)]
7011pub struct GetSIPURIsParams {
7012    /// ID for a specific SIP URI (Example: 6199)
7013    #[serde(skip_serializing_if = "Option::is_none", rename = "sipuri")]
7014    pub sip_uri: Option<String>,
7015}
7016
7017/// \- Retrieves a list of SMS messages by: date range, sms type, DID number, and
7018/// contact.
7019///
7020/// Parameters for [`Client::get_sms`] (wire method `getSMS`).
7021#[derive(Debug, Default, Clone, Serialize)]
7022pub struct GetSMSParams {
7023    /// ID for a specific SMS (Example: 5853)
7024    #[serde(skip_serializing_if = "Option::is_none")]
7025    pub sms: Option<u64>,
7026    /// Start Date for Filtering SMSs (Example: '2014-03-30') - Default value:
7027    /// Today
7028    #[serde(skip_serializing_if = "Option::is_none")]
7029    pub from: Option<String>,
7030    /// End Date for Filtering SMSs (Example: '2014-03-30') - Default value:
7031    /// Today
7032    #[serde(skip_serializing_if = "Option::is_none")]
7033    pub to: Option<String>,
7034    /// Filter SMSs by Type (Boolean: 1 = received / 0 = sent)
7035    #[serde(skip_serializing_if = "Option::is_none")]
7036    pub r#type: Option<MessageType>,
7037    /// DID number for Filtering SMSs (Example: 5551234567)
7038    #[serde(skip_serializing_if = "Option::is_none")]
7039    pub did: Option<String>,
7040    /// Contact number for Filtering SMSs (Example: 5551234567)
7041    #[serde(skip_serializing_if = "Option::is_none")]
7042    pub contact: Option<String>,
7043    /// Number of records to be displayed (Example: 20) - Default value: 50
7044    #[serde(skip_serializing_if = "Option::is_none")]
7045    pub limit: Option<String>,
7046    /// IANA time zone for the reported timestamps (Example:
7047    /// 'America/New_York'); resolved to the numeric UTC offset VoIP.ms expects,
7048    /// at the query start date (DST-aware). Omit to keep timestamps in the
7049    /// account's configured time zone.
7050    #[serde(
7051        skip_serializing_if = "Option::is_none",
7052        serialize_with = "crate::responses::serialize_opt_tz"
7053    )]
7054    pub timezone: Option<chrono_tz::Tz>,
7055    /// Filter to recive all SMSs and MMSs, 1 recive all SMS and MMS, 0 if only
7056    /// need SMS, important: the sms ID must be 0
7057    #[serde(skip_serializing_if = "Option::is_none")]
7058    pub all_messages: Option<u64>,
7059}
7060
7061/// Wire form of [`GetSMSParams`]: `timezone` resolved to the numeric UTC
7062/// offset `getSMS` expects.
7063#[derive(Debug, Clone, Serialize)]
7064struct GetSMSParamsWire {
7065    #[serde(skip_serializing_if = "Option::is_none")]
7066    sms: Option<u64>,
7067    #[serde(skip_serializing_if = "Option::is_none")]
7068    from: Option<String>,
7069    #[serde(skip_serializing_if = "Option::is_none")]
7070    to: Option<String>,
7071    #[serde(skip_serializing_if = "Option::is_none")]
7072    r#type: Option<MessageType>,
7073    #[serde(skip_serializing_if = "Option::is_none")]
7074    did: Option<String>,
7075    #[serde(skip_serializing_if = "Option::is_none")]
7076    contact: Option<String>,
7077    #[serde(skip_serializing_if = "Option::is_none")]
7078    limit: Option<String>,
7079    #[serde(skip_serializing_if = "Option::is_none")]
7080    timezone: Option<crate::TimezoneOffset>,
7081    #[serde(skip_serializing_if = "Option::is_none")]
7082    all_messages: Option<u64>,
7083}
7084
7085impl TryFrom<&GetSMSParams> for GetSMSParamsWire {
7086    type Error = crate::types::TimezoneOffsetError;
7087
7088    fn try_from(p: &GetSMSParams) -> std::result::Result<Self, Self::Error> {
7089        let timezone = match p.timezone {
7090            Some(tz) => {
7091                let start = p
7092                    .from
7093                    .as_deref()
7094                    .ok_or(crate::types::TimezoneOffsetError::MissingStartDate)?
7095                    .trim()
7096                    .parse::<chrono::NaiveDate>()
7097                    .map_err(|_| crate::types::TimezoneOffsetError::InvalidStartDate)?;
7098                Some(crate::TimezoneOffset::at(tz, start)?)
7099            }
7100            None => None,
7101        };
7102        Ok(Self {
7103            sms: p.sms,
7104            from: p.from.clone(),
7105            to: p.to.clone(),
7106            r#type: p.r#type.clone(),
7107            did: p.did.clone(),
7108            contact: p.contact.clone(),
7109            limit: p.limit.clone(),
7110            timezone,
7111            all_messages: p.all_messages,
7112        })
7113    }
7114}
7115
7116/// \- Retrieves a list of Servers with their info if no additional parameter is
7117/// provided.
7118/// \- Retrieves a specific Server with its info if a Server POP is provided.
7119///
7120/// Parameters for [`Client::get_servers_info`] (wire method `getServersInfo`).
7121#[derive(Debug, Default, Clone, Serialize)]
7122pub struct GetServersInfoParams {
7123    /// POP for a specific Server (Example: 1)
7124    #[serde(skip_serializing_if = "Option::is_none")]
7125    pub server_pop: Option<String>,
7126}
7127
7128/// \- Retrieves a list of USA States.
7129///
7130/// Parameters for [`Client::get_states`] (wire method `getStates`).
7131#[derive(Debug, Default, Clone, Serialize)]
7132pub struct GetStatesParams {}
7133
7134/// \- Retrieves a list of Static Members from a queue if no additional parameter
7135/// is provided.
7136/// \- Retrieves a specific Static Member from a queue if Queue ID and Member ID
7137/// are provided
7138///
7139/// Parameters for [`Client::get_static_members`] (wire method `getStaticMembers`).
7140#[derive(Debug, Default, Clone, Serialize)]
7141pub struct GetStaticMembersParams {
7142    /// ID for a specific Queue (Example: 4136) (required)
7143    #[serde(skip_serializing_if = "Option::is_none")]
7144    pub queue: Option<String>,
7145    /// ID for a specific Static Member (Example: 163) - The Member must belong
7146    /// to the queue provided
7147    #[serde(skip_serializing_if = "Option::is_none")]
7148    pub member: Option<String>,
7149}
7150
7151/// \- Retrieves all Sub Accounts if no additional parameter is provided.
7152/// \- Retrieves Reseller Client Accounts if Reseller Client ID is provided.
7153/// \- Retrieves a specific Sub Account if a Sub Account is provided.
7154///
7155/// Parameters for [`Client::get_sub_accounts`] (wire method `getSubAccounts`).
7156#[derive(Debug, Default, Clone, Serialize)]
7157pub struct GetSubAccountsParams {
7158    /// Parameter could have the following values: * Empty Value \[Not
7159    /// Required\] * Specific Sub Account (Example: '100000_VoIP') * Specific
7160    /// Reseller Client ID (Example: 561115)
7161    #[serde(skip_serializing_if = "Option::is_none")]
7162    pub account: Option<String>,
7163}
7164
7165/// \- Retrieves the Rates for a specific Route (Premium, Value) and a Search
7166/// term.
7167///
7168/// Parameters for [`Client::get_termination_rates`] (wire method `getTerminationRates`).
7169#[derive(Debug, Default, Clone, Serialize)]
7170pub struct GetTerminationRatesParams {
7171    /// Query for searching rates (Example: 'Canada') (required)
7172    #[serde(skip_serializing_if = "Option::is_none")]
7173    pub query: Option<String>,
7174    /// Route Code (Values from getRoutes)(Example: '2') (required)
7175    #[serde(skip_serializing_if = "Option::is_none")]
7176    pub route: Option<u64>,
7177}
7178
7179/// \- Retrieves a list of Time Conditions if no additional parameter is
7180/// provided.
7181/// \- Retrieves a specific Time Condition if a time condition code is provided.
7182///
7183/// Parameters for [`Client::get_time_conditions`] (wire method `getTimeConditions`).
7184#[derive(Debug, Default, Clone, Serialize)]
7185pub struct GetTimeConditionsParams {
7186    /// ID for a specific Time Condition (Example: 1830)
7187    #[serde(skip_serializing_if = "Option::is_none")]
7188    pub timecondition: Option<u64>,
7189}
7190
7191/// \- Retrieves a list of Timezones if no additional parameter is provided.
7192/// \- Retrieves a specific Timezone if a timezone code is provided.
7193///
7194/// Parameters for [`Client::get_timezones`] (wire method `getTimezones`).
7195#[derive(Debug, Default, Clone, Serialize)]
7196pub struct GetTimezonesParams {
7197    /// Code for a specific Time Zone (Example: 'America/Buenos_Aires')
7198    #[serde(
7199        skip_serializing_if = "Option::is_none",
7200        serialize_with = "crate::responses::serialize_opt_tz"
7201    )]
7202    pub timezone: Option<chrono_tz::Tz>,
7203}
7204
7205/// \- Retrieves the Transaction History records between two dates.
7206///
7207/// Parameters for [`Client::get_transaction_history`] (wire method `getTransactionHistory`).
7208#[derive(Debug, Default, Clone, Serialize)]
7209pub struct GetTransactionHistoryParams {
7210    /// Start Date for Filtering Transactions (Example: '2016-06-03') (required)
7211    #[serde(skip_serializing_if = "Option::is_none")]
7212    pub date_from: Option<chrono::NaiveDate>,
7213    /// End Date for Filtering Transactions (Example: '2016-06-04') (required)
7214    #[serde(skip_serializing_if = "Option::is_none")]
7215    pub date_to: Option<chrono::NaiveDate>,
7216}
7217
7218/// \- Retrieves a list of vpri.
7219///
7220/// Parameters for [`Client::get_vpris`] (wire method `getVPRIs`).
7221#[derive(Debug, Default, Clone, Serialize)]
7222pub struct GetVPRIsParams {}
7223
7224/// \- Retrieves a list of Email Attachment Format Options if no additional
7225/// parameter is provided.
7226/// \- Retrieves a specific Email Attachment Format Option if a format value is
7227/// provided.
7228///
7229/// Parameters for [`Client::get_voicemail_attachment_formats`] (wire method `getVoicemailAttachmentFormats`).
7230#[derive(Debug, Default, Clone, Serialize)]
7231pub struct GetVoicemailAttachmentFormatsParams {
7232    /// ID for a specific attachment format (Example: wav49)
7233    #[serde(skip_serializing_if = "Option::is_none")]
7234    pub email_attachment_format: Option<EmailAttachmentFormat>,
7235}
7236
7237/// \- Retrieves a list of default Voicemail Folders if no additional parameter
7238/// is provided.
7239/// \- Retrieves a list of Voicemail Folders within a mailbox if mailbox
7240/// parameter is provided.
7241/// \- Retrieves a specific Folder if a folder name is provided.
7242///
7243/// Parameters for [`Client::get_voicemail_folders`] (wire method `getVoicemailFolders`).
7244#[derive(Debug, Default, Clone, Serialize)]
7245pub struct GetVoicemailFoldersParams {
7246    /// Folder Name (Example: 'INBOX')
7247    #[serde(skip_serializing_if = "Option::is_none")]
7248    pub folder: Option<VoicemailFolder>,
7249}
7250
7251/// \- Retrieves a specific Voicemail Message File in Base64 format.
7252///
7253/// Parameters for [`Client::get_voicemail_message_file`] (wire method `getVoicemailMessageFile`).
7254#[derive(Debug, Default, Clone, Serialize)]
7255pub struct GetVoicemailMessageFileParams {
7256    /// ID for specific Mailbox (Example: 1001) (required)
7257    #[serde(skip_serializing_if = "Option::is_none")]
7258    pub mailbox: Option<String>,
7259    /// Name for specific Folder (Example: 'INBOX', values from:
7260    /// getVoicemailFolders) (required)
7261    #[serde(skip_serializing_if = "Option::is_none")]
7262    pub folder: Option<VoicemailFolder>,
7263    /// ID for specific Voicemail Message (Example: 1) (required)
7264    #[serde(skip_serializing_if = "Option::is_none")]
7265    pub message_num: Option<u64>,
7266}
7267
7268/// \- Retrieves a list of Voicemail Messages if mailbox parameter is provided.
7269/// \- Retrieves a list of Voicemail Messages in a Folder if a folder is
7270/// provided.
7271/// \- Retrieves a list of Voicemail Messages in a date range if a from and to
7272/// are provided.
7273///
7274/// Parameters for [`Client::get_voicemail_messages`] (wire method `getVoicemailMessages`).
7275#[derive(Debug, Default, Clone, Serialize)]
7276pub struct GetVoicemailMessagesParams {
7277    /// ID for specific Mailbox (Example: 1001) (required)
7278    #[serde(skip_serializing_if = "Option::is_none")]
7279    pub mailbox: Option<String>,
7280    /// Name for specific Folder (Example: 'INBOX', values from:
7281    /// getVoicemailFolders)
7282    #[serde(skip_serializing_if = "Option::is_none")]
7283    pub folder: Option<VoicemailFolder>,
7284    /// Start Date for Filtering Voicemail Messages (Example: '2016-01-30')
7285    #[serde(skip_serializing_if = "Option::is_none")]
7286    pub date_from: Option<chrono::NaiveDate>,
7287    /// End Date for Filtering Voicemail Messages (Example: '2016-01-30')
7288    #[serde(skip_serializing_if = "Option::is_none")]
7289    pub date_to: Option<chrono::NaiveDate>,
7290}
7291
7292/// \- Retrieves a list of Voicemail Setup Options if no additional parameter is
7293/// provided.
7294/// \- Retrieves a specific Voicemail Setup Option if a voicemail setup code is
7295/// provided.
7296///
7297/// Parameters for [`Client::get_voicemail_setups`] (wire method `getVoicemailSetups`).
7298#[derive(Debug, Default, Clone, Serialize)]
7299pub struct GetVoicemailSetupsParams {
7300    /// ID for a specific Voicemail Setup (Example: 2)
7301    #[serde(skip_serializing_if = "Option::is_none")]
7302    pub voicemailsetup: Option<String>,
7303}
7304
7305/// \- Retrieves all Voicemail Transcriptions if no additional parameter is
7306/// provided.
7307///
7308/// Parameters for [`Client::get_voicemail_transcriptions`] (wire method `getVoicemailTranscriptions`).
7309#[derive(Debug, Default, Clone, Serialize)]
7310pub struct GetVoicemailTranscriptionsParams {
7311    #[serde(skip_serializing_if = "Option::is_none")]
7312    pub account: Option<String>,
7313    /// ID for specific Mailbox (Example: 1001) (required)
7314    #[serde(skip_serializing_if = "Option::is_none")]
7315    pub mailbox: Option<String>,
7316    /// End Date for Filtering (Example: '2010-11-30') (required)
7317    #[serde(skip_serializing_if = "Option::is_none")]
7318    pub date_to: Option<chrono::NaiveDate>,
7319    /// Start Date for Filtering (Example: '2010-11-30') (required)
7320    #[serde(skip_serializing_if = "Option::is_none")]
7321    pub date_from: Option<chrono::NaiveDate>,
7322    /// Name for specific Folder (Example: 'INBOX', values from:
7323    /// getVoicemailFolders) (required)
7324    #[serde(skip_serializing_if = "Option::is_none")]
7325    pub folder: Option<VoicemailFolder>,
7326}
7327
7328/// \- Retrieves a list of Voicemails if no additional parameter is provided.
7329/// \- Retrieves a specific Voicemail if a voicemail code is provided.
7330///
7331/// Parameters for [`Client::get_voicemails`] (wire method `getVoicemails`).
7332#[derive(Debug, Default, Clone, Serialize)]
7333pub struct GetVoicemailsParams {
7334    /// ID for specific Mailbox (Example: 1001)
7335    #[serde(skip_serializing_if = "Option::is_none")]
7336    pub mailbox: Option<String>,
7337}
7338
7339/// \- Send a Fax Message attached as a PDF file to an email destination.
7340///
7341/// Parameters for [`Client::mail_fax_message_pdf`] (wire method `mailFaxMessagePDF`).
7342#[derive(Debug, Default, Clone, Serialize)]
7343pub struct MailFAXMessagePDFParams {
7344    /// ID of the Fax Message requested (Values from getFaxMessages) (required)
7345    #[serde(skip_serializing_if = "Option::is_none")]
7346    pub id: Option<u64>,
7347    /// Destination email adreess (example: \[email protected\]) (required)
7348    #[serde(skip_serializing_if = "Option::is_none")]
7349    pub email: Option<String>,
7350}
7351
7352/// \- Mark a Voicemail Message as Listened or Unlistened.
7353/// \- If value is 'yes', the voicemail message will be marked as listened and
7354/// will be moved to the Old Folder.
7355/// \- If value is 'no', the voicemail message will be marked as not-listened and
7356/// will be moved to the INBOX Folder.
7357///
7358/// Parameters for [`Client::mark_listened_voicemail_message`] (wire method `markListenedVoicemailMessage`).
7359#[derive(Debug, Default, Clone, Serialize)]
7360pub struct MarkListenedVoicemailMessageParams {
7361    /// ID for specific Mailbox (Example: 1001) (required)
7362    #[serde(skip_serializing_if = "Option::is_none")]
7363    pub mailbox: Option<String>,
7364    /// Name for specific Folder (Example: 'INBOX', values from:
7365    /// getVoicemailFolders) (required)
7366    #[serde(skip_serializing_if = "Option::is_none")]
7367    pub folder: Option<VoicemailFolder>,
7368    /// ID for specific Voicemail Message (Example: 1) (required)
7369    #[serde(skip_serializing_if = "Option::is_none")]
7370    pub message_num: Option<u64>,
7371    /// Code for mark voicemail as listened or not-listened (Values: 'yes'/'no')
7372    /// (required)
7373    #[serde(
7374        skip_serializing_if = "Option::is_none",
7375        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
7376    )]
7377    pub listened: Option<bool>,
7378}
7379
7380/// \- Mark Voicemail Message as Urgent or not Urgent.
7381/// \- If value is 'yes', the voicemail message will be marked as urgent and will
7382/// be moved to the Urgent Folder.
7383/// \- If value is 'no', the voicemail message will be unmarked as urgent and
7384/// will be moved to the INBOX Folder.
7385///
7386/// Parameters for [`Client::mark_urgent_voicemail_message`] (wire method `markUrgentVoicemailMessage`).
7387#[derive(Debug, Default, Clone, Serialize)]
7388pub struct MarkUrgentVoicemailMessageParams {
7389    /// ID for specific Mailbox (Example: 1001) (required)
7390    #[serde(skip_serializing_if = "Option::is_none")]
7391    pub mailbox: Option<String>,
7392    /// Name for specific Folder (Example: 'INBOX', values from:
7393    /// getVoicemailFolders) (required)
7394    #[serde(skip_serializing_if = "Option::is_none")]
7395    pub folder: Option<VoicemailFolder>,
7396    /// ID for specific Voicemail Message (Example: 1) (required)
7397    #[serde(skip_serializing_if = "Option::is_none")]
7398    pub message_num: Option<u64>,
7399    /// Code for mark voicemail as urgent or not-urgent (Values: 'yes'/'no')
7400    /// (required)
7401    #[serde(
7402        skip_serializing_if = "Option::is_none",
7403        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
7404    )]
7405    pub urgent: Option<bool>,
7406}
7407
7408/// \- Moves a Fax Message to a different folder.
7409///
7410/// Parameters for [`Client::move_fax_message`] (wire method `moveFaxMessage`).
7411#[derive(Debug, Default, Clone, Serialize)]
7412pub struct MoveFAXMessageParams {
7413    /// ID of the Fax Message requested (Values from getFaxMessages) (required)
7414    #[serde(skip_serializing_if = "Option::is_none")]
7415    pub fax_id: Option<u64>,
7416    /// ID of the destination Fax Folder (Values from getFaxFolders) (required)
7417    #[serde(skip_serializing_if = "Option::is_none")]
7418    pub folder_id: Option<u64>,
7419    /// Set to true if testing how to move a Fax Message
7420    #[serde(
7421        skip_serializing_if = "crate::responses::is_false",
7422        serialize_with = "crate::responses::serialize_flag_01"
7423    )]
7424    pub test: bool,
7425}
7426
7427/// \- Move Voicemail Message to a Destination Folder.
7428///
7429/// Parameters for [`Client::move_folder_voicemail_message`] (wire method `moveFolderVoicemailMessage`).
7430#[derive(Debug, Default, Clone, Serialize)]
7431pub struct MoveFolderVoicemailMessageParams {
7432    /// ID for specific Mailbox (Example: 1001) (required)
7433    #[serde(skip_serializing_if = "Option::is_none")]
7434    pub mailbox: Option<String>,
7435    /// Name for specific Folder (Example: 'INBOX', values from:
7436    /// getVoicemailFolders) (required)
7437    #[serde(skip_serializing_if = "Option::is_none")]
7438    pub folder: Option<VoicemailFolder>,
7439    /// ID for specific Voicemail Message (Example: 1) (required)
7440    #[serde(skip_serializing_if = "Option::is_none")]
7441    pub message_num: Option<u64>,
7442    /// Destination Folder (Example: 'Urgent', values from: getVoicemailFolders)
7443    /// (required)
7444    #[serde(skip_serializing_if = "Option::is_none")]
7445    pub new_folder: Option<String>,
7446}
7447
7448/// \- Orders and Adds a new DID Number to the Account.
7449///
7450/// Parameters for [`Client::order_did`] (wire method `orderDID`).
7451#[derive(Debug, Default, Clone, Serialize)]
7452pub struct OrderDIDParams {
7453    /// DID to be Ordered (Example: 5552223333) (required)
7454    #[serde(skip_serializing_if = "Option::is_none")]
7455    pub did: Option<String>,
7456    /// Main Routing for the DID (required)
7457    #[serde(skip_serializing_if = "Option::is_none")]
7458    pub routing: Option<crate::Routing>,
7459    /// Busy Routing for the DID
7460    #[serde(skip_serializing_if = "Option::is_none")]
7461    pub failover_busy: Option<crate::Routing>,
7462    /// Unreachable Routing for the DID
7463    #[serde(skip_serializing_if = "Option::is_none")]
7464    pub failover_unreachable: Option<crate::Routing>,
7465    /// NoAnswer Routing for the DID
7466    #[serde(skip_serializing_if = "Option::is_none")]
7467    pub failover_noanswer: Option<crate::Routing>,
7468    /// Voicemail for the DID (Example: 101)
7469    #[serde(skip_serializing_if = "Option::is_none")]
7470    pub voicemail: Option<String>,
7471    /// Point of Presence for the DID (Example: 5) (required)
7472    #[serde(skip_serializing_if = "Option::is_none")]
7473    pub pop: Option<u64>,
7474    /// Dial Time Out for the DID (Example: 60 -> in seconds) (required)
7475    #[serde(skip_serializing_if = "Option::is_none")]
7476    pub dialtime: Option<u64>,
7477    /// CNAM for the DID (Boolean: 1/0) (required)
7478    #[serde(skip_serializing_if = "Option::is_none")]
7479    pub cnam: Option<u64>,
7480    /// Caller ID Prefix for the DID
7481    #[serde(skip_serializing_if = "Option::is_none")]
7482    pub callerid_prefix: Option<String>,
7483    /// Note for the DID
7484    #[serde(skip_serializing_if = "Option::is_none")]
7485    pub note: Option<String>,
7486    /// Billing type for the DID (1 = Per Minute, 2 = Flat) (required)
7487    #[serde(skip_serializing_if = "Option::is_none")]
7488    pub billing_type: Option<DidBillingType>,
7489    /// Reseller Sub Account (Example: '100001_VoIP')
7490    #[serde(skip_serializing_if = "Option::is_none")]
7491    pub account: Option<String>,
7492    /// Montly Fee for Reseller Client (Example: 3.50)
7493    #[serde(skip_serializing_if = "Option::is_none")]
7494    pub monthly: Option<String>,
7495    /// Setup Fee for Reseller Client (Example: 1.99)
7496    #[serde(skip_serializing_if = "Option::is_none")]
7497    pub setup: Option<String>,
7498    /// Minute Rate for Reseller Client (Example: 0.03)
7499    #[serde(skip_serializing_if = "Option::is_none")]
7500    pub minute: Option<String>,
7501    /// Set to true if testing how Orders work - Orders can not be undone - When
7502    /// testing, no Orders are made routing, failover_busy, failover_unreachable
7503    /// and failover_noanswer can receive values in the following format =>
7504    /// header:record_id Where header could be: account, fwd, vm, sip, grp, ivr,
7505    /// sys, recording, queue, cb, tc, disa, none. Examples: account Used for
7506    /// routing calls to Sub Accounts You can get all sub accounts using the
7507    /// getSubAccounts function fwd Used for routing calls to Forwarding
7508    /// entries. You can get the ID right after creating a Forwarding with
7509    /// setForwarding or by requesting all forwardings entries with
7510    /// getForwardings. vm Used for routing calls to a Voicemail. You can get
7511    /// all voicemails and their IDs using the getVoicemails function sys System
7512    /// Options: hangup = Hangup the Call busy = Busy tone noservice = System
7513    /// Recording: Number not in service disconnected = System Recording: Number
7514    /// has been disconnected dtmf = DTMF Test echo = Sound Quality Test none
7515    /// Used to route calls to no action Examples: 'account:100001_VoIP'
7516    /// 'fwd:1026' 'vm:101' 'none:' 'sys:echo'
7517    #[serde(
7518        skip_serializing_if = "crate::responses::is_false",
7519        serialize_with = "crate::responses::serialize_flag_01"
7520    )]
7521    pub test: bool,
7522}
7523
7524/// \- Orders and Adds new International Geographic DID Numbers to the Account.
7525///
7526/// Parameters for [`Client::order_did_international_geographic`] (wire method `orderDIDInternationalGeographic`).
7527#[derive(Debug, Default, Clone, Serialize)]
7528pub struct OrderDIDInternationalGeographicParams {
7529    /// ID for a specific International Location (Values from
7530    /// getDIDsInternationalGeographic) (required)
7531    #[serde(skip_serializing_if = "Option::is_none")]
7532    pub location_id: Option<String>,
7533    /// Number of dids to be purchased (Example: 2) (required)
7534    #[serde(skip_serializing_if = "Option::is_none")]
7535    pub quantity: Option<u64>,
7536    /// Main Routing for the DID (required)
7537    #[serde(skip_serializing_if = "Option::is_none")]
7538    pub routing: Option<crate::Routing>,
7539    /// Busy Routing for the DID
7540    #[serde(skip_serializing_if = "Option::is_none")]
7541    pub failover_busy: Option<crate::Routing>,
7542    /// Unreachable Routing for the DID
7543    #[serde(skip_serializing_if = "Option::is_none")]
7544    pub failover_unreachable: Option<crate::Routing>,
7545    /// NoAnswer Routing for the DID
7546    #[serde(skip_serializing_if = "Option::is_none")]
7547    pub failover_noanswer: Option<crate::Routing>,
7548    /// Voicemail for the DID (Example: 101)
7549    #[serde(skip_serializing_if = "Option::is_none")]
7550    pub voicemail: Option<String>,
7551    /// Point of Presence for the DID (Example: 5) (required)
7552    #[serde(skip_serializing_if = "Option::is_none")]
7553    pub pop: Option<u64>,
7554    /// Dial Time Out for the DID (Example: 60 -> in seconds) (required)
7555    #[serde(skip_serializing_if = "Option::is_none")]
7556    pub dialtime: Option<u64>,
7557    /// CNAM for the DID (Boolean: 1/0) (required)
7558    #[serde(skip_serializing_if = "Option::is_none")]
7559    pub cnam: Option<String>,
7560    /// Caller ID Prefix for the DID
7561    #[serde(skip_serializing_if = "Option::is_none")]
7562    pub callerid_prefix: Option<String>,
7563    /// Billing type for the DID (1 = Per Minute, 2 = Flat) (required)
7564    #[serde(skip_serializing_if = "Option::is_none")]
7565    pub billing_type: Option<DidBillingType>,
7566    /// Note for the DID
7567    #[serde(skip_serializing_if = "Option::is_none")]
7568    pub note: Option<String>,
7569    /// Reseller Sub Account (Example: '100001_VoIP')
7570    #[serde(skip_serializing_if = "Option::is_none")]
7571    pub account: Option<String>,
7572    /// Montly Fee for Reseller Client (Example: 3.50)
7573    #[serde(skip_serializing_if = "Option::is_none")]
7574    pub monthly: Option<String>,
7575    /// Setup Fee for Reseller Client (Example: 1.99)
7576    #[serde(skip_serializing_if = "Option::is_none")]
7577    pub setup: Option<String>,
7578    /// Minute Rate for Reseller Client (Example: 0.03)
7579    #[serde(skip_serializing_if = "Option::is_none")]
7580    pub minute: Option<String>,
7581    /// Set to true if testing how Orders work - Orders can not be undone - When
7582    /// testing, no Orders are made routing, failover_busy, failover_unreachable
7583    /// and failover_noanswer can receive values in the following format =>
7584    /// header:record_id Where header could be: account, fwd, vm, sip, grp, ivr,
7585    /// sys, recording, queue, cb, tc, disa, none. Examples: account Used for
7586    /// routing calls to Sub Accounts You can get all sub accounts using the
7587    /// getSubAccounts function fwd Used for routing calls to Forwarding
7588    /// entries. You can get the ID right after creating a Forwarding with
7589    /// setForwarding or by requesting all forwardings entries with
7590    /// getForwardings. vm Used for routing calls to a Voicemail. You can get
7591    /// all voicemails and their IDs using the getVoicemails function sys System
7592    /// Options: hangup = Hangup the Call busy = Busy tone noservice = System
7593    /// Recording: Number not in service disconnected = System Recording: Number
7594    /// has been disconnected dtmf = DTMF Test echo = Sound Quality Test none
7595    /// Used to route calls to no action Examples: 'account:100001_VoIP'
7596    /// 'fwd:1026' 'vm:101' 'none:' 'sys:echo'
7597    #[serde(
7598        skip_serializing_if = "crate::responses::is_false",
7599        serialize_with = "crate::responses::serialize_flag_01"
7600    )]
7601    pub test: bool,
7602}
7603
7604/// \- Orders and Adds new International National DID Numbers to the Account.
7605///
7606/// Parameters for [`Client::order_did_international_national`] (wire method `orderDIDInternationalNational`).
7607#[derive(Debug, Default, Clone, Serialize)]
7608pub struct OrderDIDInternationalNationalParams {
7609    /// ID for a specific International Location (Values from
7610    /// getDIDsInternationalNational) (required)
7611    #[serde(skip_serializing_if = "Option::is_none")]
7612    pub location_id: Option<String>,
7613    /// Number of dids to be purchased (Example: 2) (required)
7614    #[serde(skip_serializing_if = "Option::is_none")]
7615    pub quantity: Option<u64>,
7616    /// Main Routing for the DID (required)
7617    #[serde(skip_serializing_if = "Option::is_none")]
7618    pub routing: Option<crate::Routing>,
7619    /// Busy Routing for the DID
7620    #[serde(skip_serializing_if = "Option::is_none")]
7621    pub failover_busy: Option<crate::Routing>,
7622    /// Unreachable Routing for the DID
7623    #[serde(skip_serializing_if = "Option::is_none")]
7624    pub failover_unreachable: Option<crate::Routing>,
7625    /// NoAnswer Routing for the DID
7626    #[serde(skip_serializing_if = "Option::is_none")]
7627    pub failover_noanswer: Option<crate::Routing>,
7628    /// Voicemail for the DID (Example: 101)
7629    #[serde(skip_serializing_if = "Option::is_none")]
7630    pub voicemail: Option<String>,
7631    /// Point of Presence for the DID (Example: 5) (required)
7632    #[serde(skip_serializing_if = "Option::is_none")]
7633    pub pop: Option<u64>,
7634    /// Dial Time Out for the DID (Example: 60 -> in seconds) (required)
7635    #[serde(skip_serializing_if = "Option::is_none")]
7636    pub dialtime: Option<u64>,
7637    /// CNAM for the DID (Boolean: 1/0) (required)
7638    #[serde(skip_serializing_if = "Option::is_none")]
7639    pub cnam: Option<String>,
7640    /// Caller ID Prefix for the DID
7641    #[serde(skip_serializing_if = "Option::is_none")]
7642    pub callerid_prefix: Option<String>,
7643    /// Billing type for the DID (1 = Per Minute, 2 = Flat) (required)
7644    #[serde(skip_serializing_if = "Option::is_none")]
7645    pub billing_type: Option<DidBillingType>,
7646    /// Note for the DID
7647    #[serde(skip_serializing_if = "Option::is_none")]
7648    pub note: Option<String>,
7649    /// Reseller Sub Account (Example: '100001_VoIP')
7650    #[serde(skip_serializing_if = "Option::is_none")]
7651    pub account: Option<String>,
7652    /// Montly Fee for Reseller Client (Example: 3.50)
7653    #[serde(skip_serializing_if = "Option::is_none")]
7654    pub monthly: Option<String>,
7655    /// Setup Fee for Reseller Client (Example: 1.99)
7656    #[serde(skip_serializing_if = "Option::is_none")]
7657    pub setup: Option<String>,
7658    /// Minute Rate for Reseller Client (Example: 0.03)
7659    #[serde(skip_serializing_if = "Option::is_none")]
7660    pub minute: Option<String>,
7661    /// Set to true if testing how Orders work - Orders can not be undone - When
7662    /// testing, no Orders are made routing, failover_busy, failover_unreachable
7663    /// and failover_noanswer can receive values in the following format =>
7664    /// header:record_id Where header could be: account, fwd, vm, sip, grp, ivr,
7665    /// sys, recording, queue, cb, tc, disa, none. Examples: account Used for
7666    /// routing calls to Sub Accounts You can get all sub accounts using the
7667    /// getSubAccounts function fwd Used for routing calls to Forwarding
7668    /// entries. You can get the ID right after creating a Forwarding with
7669    /// setForwarding or by requesting all forwardings entries with
7670    /// getForwardings. vm Used for routing calls to a Voicemail. You can get
7671    /// all voicemails and their IDs using the getVoicemails function sys System
7672    /// Options: hangup = Hangup the Call busy = Busy tone noservice = System
7673    /// Recording: Number not in service disconnected = System Recording: Number
7674    /// has been disconnected dtmf = DTMF Test echo = Sound Quality Test none
7675    /// Used to route calls to no action Examples: 'account:100001_VoIP'
7676    /// 'fwd:1026' 'vm:101' 'none:' 'sys:echo'
7677    #[serde(
7678        skip_serializing_if = "crate::responses::is_false",
7679        serialize_with = "crate::responses::serialize_flag_01"
7680    )]
7681    pub test: bool,
7682}
7683
7684/// \- Orders and Adds new International TollFree DID Numbers to the Account.
7685///
7686/// Parameters for [`Client::order_did_international_toll_free`] (wire method `orderDIDInternationalTollFree`).
7687#[derive(Debug, Default, Clone, Serialize)]
7688pub struct OrderDIDInternationalTollFreeParams {
7689    /// ID for a specific International Location (Values from
7690    /// getDIDsInternationalTollFree) (required)
7691    #[serde(skip_serializing_if = "Option::is_none")]
7692    pub location_id: Option<String>,
7693    /// Number of dids to be purchased (Example: 2) (required)
7694    #[serde(skip_serializing_if = "Option::is_none")]
7695    pub quantity: Option<u64>,
7696    /// Main Routing for the DID (required)
7697    #[serde(skip_serializing_if = "Option::is_none")]
7698    pub routing: Option<crate::Routing>,
7699    /// Busy Routing for the DID
7700    #[serde(skip_serializing_if = "Option::is_none")]
7701    pub failover_busy: Option<crate::Routing>,
7702    /// Unreachable Routing for the DID
7703    #[serde(skip_serializing_if = "Option::is_none")]
7704    pub failover_unreachable: Option<crate::Routing>,
7705    /// NoAnswer Routing for the DID
7706    #[serde(skip_serializing_if = "Option::is_none")]
7707    pub failover_noanswer: Option<crate::Routing>,
7708    /// Voicemail for the DID (Example: 101)
7709    #[serde(skip_serializing_if = "Option::is_none")]
7710    pub voicemail: Option<String>,
7711    /// Point of Presence for the DID (Example: 5) (required)
7712    #[serde(skip_serializing_if = "Option::is_none")]
7713    pub pop: Option<u64>,
7714    /// Dial Time Out for the DID (Example: 60 -> in seconds) (required)
7715    #[serde(skip_serializing_if = "Option::is_none")]
7716    pub dialtime: Option<u64>,
7717    /// CNAM for the DID (Boolean: 1/0) (required)
7718    #[serde(skip_serializing_if = "Option::is_none")]
7719    pub cnam: Option<String>,
7720    /// Caller ID Prefix for the DID
7721    #[serde(skip_serializing_if = "Option::is_none")]
7722    pub callerid_prefix: Option<String>,
7723    /// Note for the DID
7724    #[serde(skip_serializing_if = "Option::is_none")]
7725    pub note: Option<String>,
7726    /// Reseller Sub Account (Example: '100001_VoIP')
7727    #[serde(skip_serializing_if = "Option::is_none")]
7728    pub account: Option<String>,
7729    /// Montly Fee for Reseller Client (Example: 3.50)
7730    #[serde(skip_serializing_if = "Option::is_none")]
7731    pub monthly: Option<String>,
7732    /// Setup Fee for Reseller Client (Example: 1.99)
7733    #[serde(skip_serializing_if = "Option::is_none")]
7734    pub setup: Option<String>,
7735    /// Minute Rate for Reseller Client (Example: 0.03)
7736    #[serde(skip_serializing_if = "Option::is_none")]
7737    pub minute: Option<String>,
7738    /// Set to true if testing how Orders work - Orders can not be undone - When
7739    /// testing, no Orders are made routing, failover_busy, failover_unreachable
7740    /// and failover_noanswer can receive values in the following format =>
7741    /// header:record_id Where header could be: account, fwd, vm, sip, grp, ivr,
7742    /// sys, recording, queue, cb, tc, disa, none. Examples: account Used for
7743    /// routing calls to Sub Accounts You can get all sub accounts using the
7744    /// getSubAccounts function fwd Used for routing calls to Forwarding
7745    /// entries. You can get the ID right after creating a Forwarding with
7746    /// setForwarding or by requesting all forwardings entries with
7747    /// getForwardings. vm Used for routing calls to a Voicemail. You can get
7748    /// all voicemails and their IDs using the getVoicemails function sys System
7749    /// Options: hangup = Hangup the Call busy = Busy tone noservice = System
7750    /// Recording: Number not in service disconnected = System Recording: Number
7751    /// has been disconnected dtmf = DTMF Test echo = Sound Quality Test none
7752    /// Used to route calls to no action Examples: 'account:100001_VoIP'
7753    /// 'fwd:1026' 'vm:101' 'none:' 'sys:echo'
7754    #[serde(
7755        skip_serializing_if = "crate::responses::is_false",
7756        serialize_with = "crate::responses::serialize_flag_01"
7757    )]
7758    pub test: bool,
7759}
7760
7761/// \- Orders and Adds a new Virtual DID Number to the Account.
7762///
7763/// Parameters for [`Client::order_did_virtual`] (wire method `orderDIDVirtual`).
7764#[derive(Debug, Default, Clone, Serialize)]
7765pub struct OrderDIDVirtualParams {
7766    /// Three Digits for the new Virtual DID (Example: 001) (required)
7767    #[serde(skip_serializing_if = "Option::is_none")]
7768    pub digits: Option<u64>,
7769    /// Main Routing for the DID (required)
7770    #[serde(skip_serializing_if = "Option::is_none")]
7771    pub routing: Option<crate::Routing>,
7772    /// Busy Routing for the DID
7773    #[serde(skip_serializing_if = "Option::is_none")]
7774    pub failover_busy: Option<crate::Routing>,
7775    /// Unreachable Routing for the DID
7776    #[serde(skip_serializing_if = "Option::is_none")]
7777    pub failover_unreachable: Option<crate::Routing>,
7778    /// NoAnswer Routing for the DID
7779    #[serde(skip_serializing_if = "Option::is_none")]
7780    pub failover_noanswer: Option<crate::Routing>,
7781    /// Voicemail for the DID (Example: 101)
7782    #[serde(skip_serializing_if = "Option::is_none")]
7783    pub voicemail: Option<String>,
7784    /// Point of Presence for the DID (Example: 5) (required)
7785    #[serde(skip_serializing_if = "Option::is_none")]
7786    pub pop: Option<u64>,
7787    /// Dial Time Out for the DID (Example: 60 -> in seconds) (required)
7788    #[serde(skip_serializing_if = "Option::is_none")]
7789    pub dialtime: Option<u64>,
7790    /// CNAM for the DID (Boolean: 1/0) (required)
7791    #[serde(skip_serializing_if = "Option::is_none")]
7792    pub cnam: Option<String>,
7793    /// Caller ID Prefix for the DID
7794    #[serde(skip_serializing_if = "Option::is_none")]
7795    pub callerid_prefix: Option<String>,
7796    /// Note for the DID
7797    #[serde(skip_serializing_if = "Option::is_none")]
7798    pub note: Option<String>,
7799    /// Reseller Sub Account (Example: '100001_VoIP')
7800    #[serde(skip_serializing_if = "Option::is_none")]
7801    pub account: Option<String>,
7802    /// Montly Fee for Reseller Client (Example: 3.50)
7803    #[serde(skip_serializing_if = "Option::is_none")]
7804    pub monthly: Option<String>,
7805    /// Setup Fee for Reseller Client (Example: 1.99)
7806    #[serde(skip_serializing_if = "Option::is_none")]
7807    pub setup: Option<String>,
7808    /// Minute Rate for Reseller Client (Example: 0.03)
7809    #[serde(skip_serializing_if = "Option::is_none")]
7810    pub minute: Option<String>,
7811    /// Set to true if testing how Orders work - Orders can not be undone - When
7812    /// testing, no Orders are made routing, failover_busy, failover_unreachable
7813    /// and failover_noanswer can receive values in the following format =>
7814    /// header:record_id Where header could be: account, fwd, vm, sip, grp, ivr,
7815    /// sys, recording, queue, cb, tc, disa, none. Examples: account Used for
7816    /// routing calls to Sub Accounts You can get all sub accounts using the
7817    /// getSubAccounts function fwd Used for routing calls to Forwarding
7818    /// entries. You can get the ID right after creating a Forwarding with
7819    /// setForwarding or by requesting all forwardings entries with
7820    /// getForwardings. vm Used for routing calls to a Voicemail. You can get
7821    /// all voicemails and their IDs using the getVoicemails function sys System
7822    /// Options: hangup = Hangup the Call busy = Busy tone noservice = System
7823    /// Recording: Number not in service disconnected = System Recording: Number
7824    /// has been disconnected dtmf = DTMF Test echo = Sound Quality Test none
7825    /// Used to route calls to no action Examples: 'account:100001_VoIP'
7826    /// 'fwd:1026' 'vm:101' 'none:' 'sys:echo'
7827    #[serde(
7828        skip_serializing_if = "crate::responses::is_false",
7829        serialize_with = "crate::responses::serialize_flag_01"
7830    )]
7831    pub test: bool,
7832}
7833
7834/// \- Orders and Adds a new Fax Number to the Account.
7835///
7836/// Parameters for [`Client::order_fax_number`] (wire method `orderFaxNumber`).
7837#[derive(Debug, Default, Clone, Serialize)]
7838pub struct OrderFAXNumberParams {
7839    /// Location ID of the Fax Number (Values from
7840    /// getFaxRateCentersCAN/getFaxRateCentersUSA) (required)
7841    #[serde(skip_serializing_if = "Option::is_none")]
7842    pub location: Option<u64>,
7843    /// Quantity of Fax Numbers to order (Example: 3) (required)
7844    #[serde(skip_serializing_if = "Option::is_none")]
7845    pub quantity: Option<u64>,
7846    /// Email address where send notifications when receive Fax Messages -
7847    /// (Example: \[email protected\])
7848    #[serde(skip_serializing_if = "Option::is_none")]
7849    pub email: Option<String>,
7850    /// Flag to enable the email notifications. - (Values: 1 = true, 0 = false)
7851    /// \- Default: 0
7852    #[serde(
7853        skip_serializing_if = "Option::is_none",
7854        serialize_with = "crate::responses::serialize_opt_flag_01"
7855    )]
7856    pub email_enable: Option<bool>,
7857    /// Flag to enable attach the Fax Message as a PDF file in the
7858    /// notifications. - (Values: 1 = true, 0 = false) - Default: 0
7859    #[serde(
7860        skip_serializing_if = "Option::is_none",
7861        serialize_with = "crate::responses::serialize_opt_flag_01"
7862    )]
7863    pub email_attach_file: Option<bool>,
7864    /// URL where make a POST when you receive a Fax Message.
7865    #[serde(skip_serializing_if = "Option::is_none")]
7866    pub url_callback: Option<String>,
7867    /// Flag to enable the URL Callback functionality. - (Values: 1 = true, 0 =
7868    /// false) - Default: 0
7869    #[serde(
7870        skip_serializing_if = "Option::is_none",
7871        serialize_with = "crate::responses::serialize_opt_flag_01"
7872    )]
7873    pub url_callback_enable: Option<bool>,
7874    /// Flag to enable retry the POST action in case we don't receive "ok".
7875    #[serde(
7876        skip_serializing_if = "Option::is_none",
7877        serialize_with = "crate::responses::serialize_opt_flag_01"
7878    )]
7879    pub url_callback_retry: Option<bool>,
7880    /// Set to true if testing how Orders work - Orders can not be undone - When
7881    /// testing, no Orders are made
7882    #[serde(
7883        skip_serializing_if = "crate::responses::is_false",
7884        serialize_with = "crate::responses::serialize_flag_01"
7885    )]
7886    pub test: bool,
7887}
7888
7889/// \- Orders and Adds a new Toll Free Number to the Account.
7890///
7891/// Parameters for [`Client::order_toll_free`] (wire method `orderTollFree`).
7892#[derive(Debug, Default, Clone, Serialize)]
7893pub struct OrderTollFreeParams {
7894    /// DID to be Ordered (Example: 8772223333) (required)
7895    #[serde(skip_serializing_if = "Option::is_none")]
7896    pub did: Option<String>,
7897    /// Main Routing for the DID (required)
7898    #[serde(skip_serializing_if = "Option::is_none")]
7899    pub routing: Option<crate::Routing>,
7900    /// Busy Routing for the DID
7901    #[serde(skip_serializing_if = "Option::is_none")]
7902    pub failover_busy: Option<crate::Routing>,
7903    /// Unreachable Routing for the DID
7904    #[serde(skip_serializing_if = "Option::is_none")]
7905    pub failover_unreachable: Option<crate::Routing>,
7906    /// NoAnswer Routing for the DID
7907    #[serde(skip_serializing_if = "Option::is_none")]
7908    pub failover_noanswer: Option<crate::Routing>,
7909    /// Voicemail for the DID (Example: 101)
7910    #[serde(skip_serializing_if = "Option::is_none")]
7911    pub voicemail: Option<String>,
7912    /// Point of Presence for the DID (Example: 5) (required)
7913    #[serde(skip_serializing_if = "Option::is_none")]
7914    pub pop: Option<u64>,
7915    /// Dial Time Out for the DID (Example: 60 -> in seconds) (required)
7916    #[serde(skip_serializing_if = "Option::is_none")]
7917    pub dialtime: Option<u64>,
7918    /// CNAM for the DID (Boolean: 1/0) (required)
7919    #[serde(skip_serializing_if = "Option::is_none")]
7920    pub cnam: Option<u64>,
7921    /// Caller ID Prefix for the DID
7922    #[serde(skip_serializing_if = "Option::is_none")]
7923    pub callerid_prefix: Option<String>,
7924    /// Note for the DID
7925    #[serde(skip_serializing_if = "Option::is_none")]
7926    pub note: Option<String>,
7927    /// Reseller Sub Account (Example: '100001_VoIP')
7928    #[serde(skip_serializing_if = "Option::is_none")]
7929    pub account: Option<String>,
7930    /// Montly Fee for Reseller Client (Example: 3.50)
7931    #[serde(skip_serializing_if = "Option::is_none")]
7932    pub monthly: Option<String>,
7933    /// Setup Fee for Reseller Client (Example: 1.99)
7934    #[serde(skip_serializing_if = "Option::is_none")]
7935    pub setup: Option<String>,
7936    /// Minute Rate for Reseller Client (Example: 0.03)
7937    #[serde(skip_serializing_if = "Option::is_none")]
7938    pub minute: Option<String>,
7939    /// Set to true if testing how Orders work - Orders can not be undone - When
7940    /// testing, no Orders are made routing, failover_busy, failover_unreachable
7941    /// and failover_noanswer can receive values in the following format =>
7942    /// header:record_id Where header could be: account, fwd, vm, sip, grp, ivr,
7943    /// sys, recording, queue, cb, tc, disa, none. Examples: account Used for
7944    /// routing calls to Sub Accounts You can get all sub accounts using the
7945    /// getSubAccounts function fwd Used for routing calls to Forwarding
7946    /// entries. You can get the ID right after creating a Forwarding with
7947    /// setForwarding or by requesting all forwardings entries with
7948    /// getForwardings. vm Used for routing calls to a Voicemail. You can get
7949    /// all voicemails and their IDs using the getVoicemails function sys System
7950    /// Options: hangup = Hangup the Call busy = Busy tone noservice = System
7951    /// Recording: Number not in service disconnected = System Recording: Number
7952    /// has been disconnected dtmf = DTMF Test echo = Sound Quality Test none
7953    /// Used to route calls to no action Examples: 'account:100001_VoIP'
7954    /// 'fwd:1026' 'vm:101' 'none:' 'sys:echo'
7955    #[serde(
7956        skip_serializing_if = "crate::responses::is_false",
7957        serialize_with = "crate::responses::serialize_flag_01"
7958    )]
7959    pub test: bool,
7960}
7961
7962/// \- Orders and Adds a new Vanity Toll Free Number to the Account.
7963///
7964/// Parameters for [`Client::order_vanity`] (wire method `orderVanity`).
7965#[derive(Debug, Default, Clone, Serialize)]
7966pub struct OrderVanityParams {
7967    /// DID to be Ordered (Example: 8772223333) (required)
7968    #[serde(skip_serializing_if = "Option::is_none")]
7969    pub did: Option<String>,
7970    /// Main Routing for the DID (required)
7971    #[serde(skip_serializing_if = "Option::is_none")]
7972    pub routing: Option<crate::Routing>,
7973    /// Busy Routing for the DID
7974    #[serde(skip_serializing_if = "Option::is_none")]
7975    pub failover_busy: Option<crate::Routing>,
7976    /// Unreachable Routing for the DID
7977    #[serde(skip_serializing_if = "Option::is_none")]
7978    pub failover_unreachable: Option<crate::Routing>,
7979    /// NoAnswer Routing for the DID
7980    #[serde(skip_serializing_if = "Option::is_none")]
7981    pub failover_noanswer: Option<crate::Routing>,
7982    /// Voicemail for the DID (Example: 101)
7983    #[serde(skip_serializing_if = "Option::is_none")]
7984    pub voicemail: Option<String>,
7985    /// Point of Presence for the DID (Example: 5) (required)
7986    #[serde(skip_serializing_if = "Option::is_none")]
7987    pub pop: Option<u64>,
7988    /// Dial Time Out for the DID (Example: 60 -> in seconds) (required)
7989    #[serde(skip_serializing_if = "Option::is_none")]
7990    pub dialtime: Option<u64>,
7991    /// CNAM for the DID (Boolean: 1/0) (required)
7992    #[serde(skip_serializing_if = "Option::is_none")]
7993    pub cnam: Option<u64>,
7994    /// Caller ID Prefix for the DID
7995    #[serde(skip_serializing_if = "Option::is_none")]
7996    pub callerid_prefix: Option<String>,
7997    /// Note for the DID
7998    #[serde(skip_serializing_if = "Option::is_none")]
7999    pub note: Option<String>,
8000    /// Carrier for the DID (Values from getCarriers) (required)
8001    #[serde(skip_serializing_if = "Option::is_none")]
8002    pub carrier: Option<u64>,
8003    /// Reseller Sub Account (Example: '100001_VoIP')
8004    #[serde(skip_serializing_if = "Option::is_none")]
8005    pub account: Option<String>,
8006    /// Montly Fee for Reseller Client (Example: 3.50)
8007    #[serde(skip_serializing_if = "Option::is_none")]
8008    pub monthly: Option<String>,
8009    /// Setup Fee for Reseller Client (Example: 1.99)
8010    #[serde(skip_serializing_if = "Option::is_none")]
8011    pub setup: Option<String>,
8012    /// Minute Rate for Reseller Client (Example: 0.03)
8013    #[serde(skip_serializing_if = "Option::is_none")]
8014    pub minute: Option<String>,
8015    /// Set to true if testing how Orders work - Orders can not be undone - When
8016    /// testing, no Orders are made routing, failover_busy, failover_unreachable
8017    /// and failover_noanswer can receive values in the following format =>
8018    /// header:record_id Where header could be: account, fwd, vm, sip, grp, ivr,
8019    /// sys, recording, queue, cb, tc, disa, none. Examples: account Used for
8020    /// routing calls to Sub Accounts You can get all sub accounts using the
8021    /// getSubAccounts function fwd Used for routing calls to Forwarding
8022    /// entries. You can get the ID right after creating a Forwarding with
8023    /// setForwarding or by requesting all forwardings entries with
8024    /// getForwardings. vm Used for routing calls to a Voicemail. You can get
8025    /// all voicemails and their IDs using the getVoicemails function sys System
8026    /// Options: hangup = Hangup the Call busy = Busy tone noservice = System
8027    /// Recording: Number not in service disconnected = System Recording: Number
8028    /// has been disconnected dtmf = DTMF Test echo = Sound Quality Test none
8029    /// Used to route calls to no action Examples: 'account:100001_VoIP'
8030    /// 'fwd:1026' 'vm:101' 'none:' 'sys:echo'
8031    #[serde(
8032        skip_serializing_if = "crate::responses::is_false",
8033        serialize_with = "crate::responses::serialize_flag_01"
8034    )]
8035    pub test: bool,
8036}
8037
8038/// \- Removes a DID from a VPRI
8039///
8040/// Parameters for [`Client::remove_did_vpri`] (wire method `removeDIDvPRI`).
8041#[derive(Debug, Default, Clone, Serialize)]
8042pub struct RemoveDIDvPRIParams {
8043    /// Id for specific Vpri
8044    #[serde(skip_serializing_if = "Option::is_none")]
8045    pub vpri: Option<u64>,
8046    /// DID Number to be remove from our Vpri (Example: 561115) (required)
8047    #[serde(skip_serializing_if = "Option::is_none")]
8048    pub did: Option<String>,
8049}
8050
8051/// \- Searches for Canadian DIDs by Province using a Search Criteria.
8052///
8053/// Parameters for [`Client::search_dids_can`] (wire method `searchDIDsCAN`).
8054#[derive(Debug, Default, Clone, Serialize)]
8055pub struct SearchDIDsCANParams {
8056    /// Canadian Province (Values from getProvinces)
8057    #[serde(skip_serializing_if = "Option::is_none")]
8058    pub province: Option<String>,
8059    /// Type of search (Values: 'starts', 'contains', 'ends') (required)
8060    #[serde(skip_serializing_if = "Option::is_none")]
8061    pub r#type: Option<SearchType>,
8062    /// Query for searching (Examples: 'JOHN', '555', '123ABC') (required)
8063    #[serde(skip_serializing_if = "Option::is_none")]
8064    pub query: Option<String>,
8065}
8066
8067/// \- Searches for USA DIDs by State using a Search Criteria.
8068///
8069/// Parameters for [`Client::search_dids_usa`] (wire method `searchDIDsUSA`).
8070#[derive(Debug, Default, Clone, Serialize)]
8071pub struct SearchDIDsUSAParams {
8072    /// United States State (Values from getStates)
8073    #[serde(skip_serializing_if = "Option::is_none")]
8074    pub state: Option<String>,
8075    /// Type of search (Values: 'starts', 'contains', 'ends') (required)
8076    #[serde(skip_serializing_if = "Option::is_none")]
8077    pub r#type: Option<SearchType>,
8078    /// Query for searching (Examples: 'JOHN', '555', '123ABC') (required)
8079    #[serde(skip_serializing_if = "Option::is_none")]
8080    pub query: Option<String>,
8081}
8082
8083/// \- Retrieves a list of Canadian Ratecenters searched by Area Code.
8084///
8085/// Parameters for [`Client::search_fax_area_code_can`] (wire method `searchFaxAreaCodeCAN`).
8086#[derive(Debug, Default, Clone, Serialize)]
8087pub struct SearchFAXAreaCodeCANParams {
8088    /// Area code number, as the initial of the Fax Number you looking for.
8089    /// (values from getFaxRateCentersCAN) (required)
8090    #[serde(skip_serializing_if = "Option::is_none")]
8091    pub area_code: Option<u64>,
8092}
8093
8094/// \- Retrieves a list of USA Ratecenters searched by Area Code.
8095///
8096/// Parameters for [`Client::search_fax_area_code_usa`] (wire method `searchFaxAreaCodeUSA`).
8097#[derive(Debug, Default, Clone, Serialize)]
8098pub struct SearchFAXAreaCodeUSAParams {
8099    /// Area code number, as the initial of the Fax Number you looking for.
8100    /// (values from getFaxRateCentersUSA) (required)
8101    #[serde(skip_serializing_if = "Option::is_none")]
8102    pub area_code: Option<u64>,
8103}
8104
8105/// \- Searches for USA/Canada Toll Free Numbers using a Search Criteria.
8106/// \- Shows all USA/Canada Toll Free Numbers available if no criteria is
8107/// provided.
8108///
8109/// Parameters for [`Client::search_toll_free_can_us`] (wire method `searchTollFreeCanUS`).
8110#[derive(Debug, Default, Clone, Serialize)]
8111pub struct SearchTollFreeCANUSParams {
8112    /// Type of search (Values: 'starts', 'contains', 'ends')
8113    #[serde(skip_serializing_if = "Option::is_none")]
8114    pub r#type: Option<SearchType>,
8115    /// Query for searching (Examples: 'JOHN', '555', '123ABC')
8116    #[serde(skip_serializing_if = "Option::is_none")]
8117    pub query: Option<String>,
8118}
8119
8120/// \- Searches for USA Toll Free Numbers using a Search Criteria.
8121/// \- Shows all USA Toll Free Numbers available if no criteria is provided.
8122///
8123/// Parameters for [`Client::search_toll_free_usa`] (wire method `searchTollFreeUSA`).
8124#[derive(Debug, Default, Clone, Serialize)]
8125pub struct SearchTollFreeUSAParams {
8126    /// Type of search (Values: 'starts', 'contains', 'ends')
8127    #[serde(skip_serializing_if = "Option::is_none")]
8128    pub r#type: Option<SearchType>,
8129    /// Query for searching (Examples: 'JOHN', '555', '123ABC')
8130    #[serde(skip_serializing_if = "Option::is_none")]
8131    pub query: Option<String>,
8132}
8133
8134/// \- Searches for Vanity Toll Free Numbers using a Search Criteria.
8135///
8136/// Parameters for [`Client::search_vanity`] (wire method `searchVanity`).
8137#[derive(Debug, Default, Clone, Serialize)]
8138pub struct SearchVanityParams {
8139    /// Type of Vanity Number Values: '8**', '800', '833', '844', '855', '866',
8140    /// '877', '888' (required)
8141    #[serde(skip_serializing_if = "Option::is_none")]
8142    pub r#type: Option<VanityType>,
8143    /// Query for searching : 7 Chars Examples: '***JHON', '**555**', '**HELLO'
8144    /// (required)
8145    #[serde(skip_serializing_if = "Option::is_none")]
8146    pub query: Option<String>,
8147}
8148
8149/// \- Send information and audio file to email account.
8150///
8151/// Parameters for [`Client::send_call_recording_email`] (wire method `sendCallRecordingEmail`).
8152#[derive(Debug, Default, Clone, Serialize)]
8153pub struct SendCallRecordingEmailParams {
8154    /// Call Recording (Values from getCallRecordings) (required)
8155    #[serde(skip_serializing_if = "Option::is_none")]
8156    pub callrecording: Option<String>,
8157    /// Filter Call Recordings by Account (Values from getCallAccounts)
8158    /// (required)
8159    #[serde(skip_serializing_if = "Option::is_none")]
8160    pub account: Option<String>,
8161    /// Email to send call recording (required)
8162    #[serde(skip_serializing_if = "Option::is_none")]
8163    pub email: Option<String>,
8164}
8165
8166/// \- Send a Fax message to a Destination Number.
8167///
8168/// Parameters for [`Client::send_fax_message`] (wire method `sendFaxMessage`).
8169#[derive(Debug, Default, Clone, Serialize)]
8170pub struct SendFAXMessageParams {
8171    /// Destination DID Number (Example: 5552341234) (required)
8172    #[serde(skip_serializing_if = "Option::is_none")]
8173    pub to_number: Option<String>,
8174    /// Name of the sender (Example: 5552341234) (required)
8175    #[serde(skip_serializing_if = "Option::is_none")]
8176    pub from_name: Option<String>,
8177    /// DID number of the Fax sender (required)
8178    #[serde(skip_serializing_if = "Option::is_none")]
8179    pub from_number: Option<String>,
8180    /// Flag to enable the send of a copy of your Fax via email. - (Values: 1 =
8181    /// true, 0 = false) - Default: 0
8182    #[serde(
8183        skip_serializing_if = "Option::is_none",
8184        serialize_with = "crate::responses::serialize_opt_flag_01"
8185    )]
8186    pub send_email_enabled: Option<bool>,
8187    /// Email address where you want send a copy of your Fax.
8188    #[serde(skip_serializing_if = "Option::is_none")]
8189    pub send_email: Option<String>,
8190    /// An word to identify a equipment or department sending the Fax.
8191    #[serde(skip_serializing_if = "Option::is_none")]
8192    pub station_id: Option<String>,
8193    /// The file must be encoded in Base64, and in one of the following formats:
8194    /// pdf, txt, jpg, gif, png, tif (required)
8195    #[serde(skip_serializing_if = "Option::is_none")]
8196    pub file: Option<String>,
8197    /// Set to true if testing how to send a Fax Message
8198    #[serde(
8199        skip_serializing_if = "crate::responses::is_false",
8200        serialize_with = "crate::responses::serialize_flag_01"
8201    )]
8202    pub test: bool,
8203}
8204
8205/// \- Send a MMS message to a Destination Number.
8206///
8207/// Parameters for [`Client::send_mms`] (wire method `sendMMS`).
8208#[derive(Debug, Default, Clone, Serialize)]
8209pub struct SendMMSParams {
8210    /// DID Numbers which is sending the message (Example: 5551234567)
8211    /// (required)
8212    #[serde(skip_serializing_if = "Option::is_none")]
8213    pub did: Option<String>,
8214    /// Destination Number (Example: 5551234568) (required)
8215    #[serde(skip_serializing_if = "Option::is_none")]
8216    pub dst: Option<String>,
8217    /// Message to be sent (Example: 'hello John Smith' max chars: 2048)
8218    /// (required)
8219    #[serde(skip_serializing_if = "Option::is_none")]
8220    pub message: Option<String>,
8221    /// Url to media file (Example:
8222    /// '<https://voip.ms/themes/voipms/assets/img/talent.jpg?v=2>' (optional)
8223    #[serde(skip_serializing_if = "Option::is_none")]
8224    pub media1: Option<String>,
8225    /// Base 64 image encode (Example:
8226    /// data:image/png;base64,iVBORw0KGgoAAAANSUh...) (optional)
8227    #[serde(skip_serializing_if = "Option::is_none")]
8228    pub media2: Option<String>,
8229    /// Empty value (Example: '' ) (optional)
8230    #[serde(skip_serializing_if = "Option::is_none")]
8231    pub media3: Option<String>,
8232}
8233
8234/// \- Send a SMS message to a Destination Number.
8235///
8236/// Parameters for [`Client::send_sms`] (wire method `sendSMS`).
8237#[derive(Debug, Default, Clone, Serialize)]
8238pub struct SendSMSParams {
8239    /// DID Numbers which is sending the message (Example: 5551234567)
8240    /// (required)
8241    #[serde(skip_serializing_if = "Option::is_none")]
8242    pub did: Option<String>,
8243    /// Destination Number (Example: 5551234568) (required)
8244    #[serde(skip_serializing_if = "Option::is_none")]
8245    pub dst: Option<String>,
8246    /// Message to be sent (Example: 'hello John Smith' max chars: 160)
8247    /// (required)
8248    #[serde(skip_serializing_if = "Option::is_none")]
8249    pub message: Option<String>,
8250}
8251
8252/// \- Send a Voicemail Message File to an Email Address.
8253///
8254/// Parameters for [`Client::send_voicemail_email`] (wire method `sendVoicemailEmail`).
8255#[derive(Debug, Default, Clone, Serialize)]
8256pub struct SendVoicemailEmailParams {
8257    /// ID for specific Mailbox (Example: 1001) (required)
8258    #[serde(skip_serializing_if = "Option::is_none")]
8259    pub mailbox: Option<String>,
8260    /// Name for specific Folder (Example: 'INBOX', values from:
8261    /// getVoicemailFolders) (required)
8262    #[serde(skip_serializing_if = "Option::is_none")]
8263    pub folder: Option<VoicemailFolder>,
8264    /// ID for specific Voicemail Message (Example: 1) (required)
8265    #[serde(skip_serializing_if = "Option::is_none")]
8266    pub message_num: Option<u64>,
8267    /// Destination Email address (Example: \[email protected\]) (required)
8268    #[serde(skip_serializing_if = "Option::is_none")]
8269    pub email_address: Option<String>,
8270}
8271
8272/// \- Updates a specific Call Hunting if a Call Hunting code is provided.
8273/// \- Adds a new Call Hunting if no Call Hunting code is provided.
8274///
8275/// Parameters for [`Client::set_call_hunting`] (wire method `setCallHunting`).
8276#[derive(Debug, Default, Clone, Serialize)]
8277pub struct SetCallHuntingParams {
8278    /// ID for a specific Call Hunting (Example: 235 / Leave empty to create a
8279    /// new one)
8280    #[serde(skip_serializing_if = "Option::is_none")]
8281    pub callhunting: Option<u64>,
8282    /// Description for the Call Hunting (required)
8283    #[serde(skip_serializing_if = "Option::is_none")]
8284    pub description: Option<String>,
8285    /// Music on Hold Code (Values from getMusicOnHold) (required)
8286    #[serde(skip_serializing_if = "Option::is_none")]
8287    pub music: Option<String>,
8288    /// Recording for the Call Hunting (values from getRecordings) (required)
8289    #[serde(skip_serializing_if = "Option::is_none")]
8290    pub recording: Option<String>,
8291    /// Language for the Call Hunting (values from getLanguages) (required)
8292    #[serde(skip_serializing_if = "Option::is_none")]
8293    pub language: Option<String>,
8294    /// The members will be called in follow or random order (values follow or
8295    /// random) (required)
8296    #[serde(skip_serializing_if = "Option::is_none")]
8297    pub order: Option<RingGroupOrder>,
8298    /// The list of members assigned to the call hunting (required)
8299    #[serde(skip_serializing_if = "Option::is_none")]
8300    pub members: Option<String>,
8301    /// The Maximum amount of time the call will ring the member (required)
8302    #[serde(skip_serializing_if = "Option::is_none")]
8303    pub ring_time: Option<String>,
8304    /// This option confirm if the member will take the call by pressing 1 *
8305    /// ring_time and press parameters need to have the same amount of items as
8306    /// the members parameter, one for each member. (required)
8307    #[serde(skip_serializing_if = "Option::is_none")]
8308    pub press: Option<String>,
8309}
8310
8311/// \- Updates a specific Call Parking entry if a Call Parking ID is provided.
8312/// \- Adds a new Call Parking entry if no Call Parking ID is provided.
8313///
8314/// Parameters for [`Client::set_call_parking`] (wire method `setCallParking`).
8315#[derive(Debug, Default, Clone, Serialize)]
8316pub struct SetCallParkingParams {
8317    /// ID for a specific Call Parking (Example: 235 / Leave empty to create a
8318    /// new one)
8319    #[serde(skip_serializing_if = "Option::is_none")]
8320    pub callparking: Option<u64>,
8321    /// Name for the Call Parking (required)
8322    #[serde(skip_serializing_if = "Option::is_none")]
8323    pub name: Option<String>,
8324    /// The number of seconds a call will stay parked before it is forwarded to
8325    /// the Failover Destination (required)
8326    #[serde(skip_serializing_if = "Option::is_none")]
8327    pub timeout: Option<u64>,
8328    /// Music on Hold Code (Values from getMusicOnHold) (required)
8329    #[serde(skip_serializing_if = "Option::is_none")]
8330    pub music: Option<String>,
8331    /// Final destination where the call will be forwarded if it isn&rsquo;t
8332    /// answered. (Values: callback, system:hangup, vm:mailbox) (required)
8333    #[serde(skip_serializing_if = "Option::is_none")]
8334    pub failover: Option<String>,
8335    /// Language for the Call Parking (values from getLanguages) (required)
8336    #[serde(skip_serializing_if = "Option::is_none")]
8337    pub language: Option<String>,
8338    /// The system will make an automatic call to this destination to announce
8339    /// the extension of the parked call. (Values: parker, main account or
8340    /// sub-accounts) (required)
8341    #[serde(skip_serializing_if = "Option::is_none")]
8342    pub destination: Option<String>,
8343    /// The number of seconds before the Announce Destination receives an
8344    /// automatic call from the system to announce the extension of the parked
8345    /// call (required)
8346    #[serde(skip_serializing_if = "Option::is_none")]
8347    pub delay: Option<u64>,
8348}
8349
8350/// \- Updates a specific Callback if a callback code is provided.
8351/// \- Adds a new Callback entry if no callback code is provided.
8352///
8353/// Parameters for [`Client::set_callback`] (wire method `setCallback`).
8354#[derive(Debug, Default, Clone, Serialize)]
8355pub struct SetCallbackParams {
8356    /// ID for a specific Callback (Example: 2359 / Leave empty to create a new
8357    /// one)
8358    #[serde(skip_serializing_if = "Option::is_none")]
8359    pub callback: Option<String>,
8360    /// Description for the Callback (required)
8361    #[serde(skip_serializing_if = "Option::is_none")]
8362    pub description: Option<String>,
8363    /// Number that will be called back (required)
8364    #[serde(skip_serializing_if = "Option::is_none")]
8365    pub number: Option<String>,
8366    /// Delay befor calling back (required)
8367    #[serde(skip_serializing_if = "Option::is_none")]
8368    pub delay_before: Option<u64>,
8369    /// Time before hanging up for incomplete input (required)
8370    #[serde(skip_serializing_if = "Option::is_none")]
8371    pub response_timeout: Option<u64>,
8372    /// Time between digits input (required)
8373    #[serde(skip_serializing_if = "Option::is_none")]
8374    pub digit_timeout: Option<u64>,
8375    /// Caller ID Override for the callback
8376    #[serde(skip_serializing_if = "Option::is_none")]
8377    pub callerid_number: Option<String>,
8378}
8379
8380/// \- Updates a specific Caller ID Filtering if a filtering code is provided.
8381/// \- Adds a new Caller ID Filtering if no filtering code is provided.
8382///
8383/// Parameters for [`Client::set_caller_id_filtering`] (wire method `setCallerIDFiltering`).
8384#[derive(Debug, Default, Clone, Serialize)]
8385pub struct SetCallerIDFilteringParams {
8386    /// ID for a specific Caller ID Filtering (Example: 18915 / Leave empty to
8387    /// create a new one)
8388    #[serde(skip_serializing_if = "Option::is_none")]
8389    pub filter: Option<String>,
8390    /// Caller ID that triggers the Filter (i = Not North American format, 0 =
8391    /// Anonymous, NPANXXXXXX, s or sb or sc = STIR/SHAKEN Attestation Level, p
8392    /// = All Phone Book, p:XXXX = Specific Phone Book Group) (required)
8393    #[serde(skip_serializing_if = "Option::is_none")]
8394    pub callerid: Option<String>,
8395    /// DIDs affected by the filter (all, NPANXXXXXX) (required)
8396    #[serde(skip_serializing_if = "Option::is_none")]
8397    pub did: Option<String>,
8398    /// Route the call follows when filter is triggered (required)
8399    #[serde(skip_serializing_if = "Option::is_none")]
8400    pub routing: Option<crate::Routing>,
8401    /// Route the call follows when unreachable
8402    #[serde(skip_serializing_if = "Option::is_none")]
8403    pub failover_unreachable: Option<crate::Routing>,
8404    /// Route the call follows when busy
8405    #[serde(skip_serializing_if = "Option::is_none")]
8406    pub failover_busy: Option<crate::Routing>,
8407    /// Route the call follows when noanswer
8408    #[serde(skip_serializing_if = "Option::is_none")]
8409    pub failover_noanswer: Option<crate::Routing>,
8410    /// Note for the Caller ID Filtering
8411    #[serde(skip_serializing_if = "Option::is_none")]
8412    pub note: Option<String>,
8413}
8414
8415/// \- Updates Reseller Client information.
8416///
8417/// Parameters for [`Client::set_client`] (wire method `setClient`).
8418#[derive(Debug, Default, Clone, Serialize)]
8419pub struct SetClientParams {
8420    /// ID for a specific Reseller Client (Example: 561115) (required)
8421    #[serde(skip_serializing_if = "Option::is_none")]
8422    pub client: Option<u64>,
8423    /// Client's e-mail (required)
8424    #[serde(skip_serializing_if = "Option::is_none")]
8425    pub email: Option<String>,
8426    /// Client's Password (required)
8427    #[serde(skip_serializing_if = "Option::is_none")]
8428    pub password: Option<String>,
8429    /// Client's Company
8430    #[serde(skip_serializing_if = "Option::is_none")]
8431    pub company: Option<String>,
8432    /// Client's Firstname (required)
8433    #[serde(skip_serializing_if = "Option::is_none")]
8434    pub firstname: Option<String>,
8435    /// Client's Lastname (required)
8436    #[serde(skip_serializing_if = "Option::is_none")]
8437    pub lastname: Option<String>,
8438    /// Client's Address
8439    #[serde(skip_serializing_if = "Option::is_none")]
8440    pub address: Option<String>,
8441    /// Client's City
8442    #[serde(skip_serializing_if = "Option::is_none")]
8443    pub city: Option<String>,
8444    /// Client's State
8445    #[serde(skip_serializing_if = "Option::is_none")]
8446    pub state: Option<String>,
8447    /// Client's Country (Values from getCountries)
8448    #[serde(skip_serializing_if = "Option::is_none")]
8449    pub country: Option<String>,
8450    /// Client's Zip Code
8451    #[serde(skip_serializing_if = "Option::is_none")]
8452    pub zip: Option<String>,
8453    /// Client's Phone Number (required)
8454    #[serde(skip_serializing_if = "Option::is_none")]
8455    pub phone_number: Option<String>,
8456    /// Balance Management for Client (Values from getBalanceManagement)
8457    #[serde(skip_serializing_if = "Option::is_none")]
8458    pub balance_management: Option<u64>,
8459}
8460
8461/// \- Update the Threshold Amount for a specific Reseller Client.- Update the
8462/// Threshold notification e-mail for a specific Reseller Client if the e-mail
8463/// address is provided.
8464///
8465/// Parameters for [`Client::set_client_threshold`] (wire method `setClientThreshold`).
8466#[derive(Debug, Default, Clone, Serialize)]
8467pub struct SetClientThresholdParams {
8468    /// ID for a specific Reseller Client (Example: 561115) (required)
8469    #[serde(skip_serializing_if = "Option::is_none")]
8470    pub client: Option<u64>,
8471    /// Client's e-mail for balance threshold notification
8472    #[serde(skip_serializing_if = "Option::is_none")]
8473    pub email: Option<String>,
8474    /// Threshold amount between 1 and 250 (Example: 10) (required)
8475    #[serde(skip_serializing_if = "Option::is_none")]
8476    pub threshold: Option<u64>,
8477}
8478
8479/// \- Updates a specific Conference if a conference code is provided.
8480/// \- Adds a new Conference entry if no conference code is provided.
8481///
8482/// Parameters for [`Client::set_conference`] (wire method `setConference`).
8483#[derive(Debug, Default, Clone, Serialize)]
8484pub struct SetConferenceParams {
8485    /// ID for a specific Conference (Example: 5356) (required)
8486    #[serde(skip_serializing_if = "Option::is_none")]
8487    pub conference: Option<u64>,
8488    /// Conference name (required)
8489    #[serde(skip_serializing_if = "Option::is_none")]
8490    pub name: Option<String>,
8491    /// Conference description (required)
8492    #[serde(skip_serializing_if = "Option::is_none")]
8493    pub description: Option<String>,
8494    /// Conference Members
8495    #[serde(skip_serializing_if = "Option::is_none")]
8496    pub members: Option<String>,
8497    /// Members Max Value (required)
8498    #[serde(skip_serializing_if = "Option::is_none")]
8499    pub max_members: Option<crate::MaxMembers>,
8500    /// The recording played when a user joins, typically some kind of beep
8501    /// sound (Values from getRecordings)
8502    #[serde(skip_serializing_if = "Option::is_none")]
8503    pub sound_join: Option<String>,
8504    /// The recording played when a user leaves, typically some kind of beep
8505    /// sound (Values from getRecordings)
8506    #[serde(skip_serializing_if = "Option::is_none")]
8507    pub sound_leave: Option<String>,
8508    /// The recording played as a user intro (Values from getRecordings)
8509    #[serde(skip_serializing_if = "Option::is_none")]
8510    pub sound_has_joined: Option<String>,
8511    /// The recording played as a user leaves the conference (Values from
8512    /// getRecordings)
8513    #[serde(skip_serializing_if = "Option::is_none")]
8514    pub sound_has_left: Option<String>,
8515    /// The recording played to a user who has been kicked from the conference
8516    /// (Values from getRecordings)
8517    #[serde(skip_serializing_if = "Option::is_none")]
8518    pub sound_kicked: Option<String>,
8519    /// The recording played to a user when the mute option is toggled on
8520    /// (Values from getRecordings)
8521    #[serde(skip_serializing_if = "Option::is_none")]
8522    pub sound_muted: Option<String>,
8523    /// The recording played to a user when the mute option is toggled off
8524    /// (Values from getRecordings)
8525    #[serde(skip_serializing_if = "Option::is_none")]
8526    pub sound_unmuted: Option<String>,
8527    /// The recording played when a user is the only person in the conference
8528    /// (Values from getRecordings)
8529    #[serde(skip_serializing_if = "Option::is_none")]
8530    pub sound_only_person: Option<String>,
8531    /// The recording played to a user when there is only one other person in
8532    /// the conference. (Values from getRecordings)
8533    #[serde(skip_serializing_if = "Option::is_none")]
8534    pub sound_only_one: Option<String>,
8535    /// The recording played when announcing how many users there are in a
8536    /// conference. (Values from getRecordings)
8537    #[serde(skip_serializing_if = "Option::is_none")]
8538    pub sound_there_are: Option<String>,
8539    /// The recording used in conjunction with the There are option, used like
8540    /// There are (number of participants) Other in party (Values from
8541    /// getRecordings)
8542    #[serde(skip_serializing_if = "Option::is_none")]
8543    pub sound_other_in_party: Option<String>,
8544    /// The recording played when a user is placed into a conference that cannot
8545    /// start until a marked user enters (Values from getRecordings)
8546    #[serde(skip_serializing_if = "Option::is_none")]
8547    pub sound_place_into_conference: Option<String>,
8548    /// The recording played when prompting for a conference PIN (Values from
8549    /// getRecordings)
8550    #[serde(skip_serializing_if = "Option::is_none")]
8551    pub sound_get_pin: Option<String>,
8552    /// The recording played when an invalid PIN is entered too many (3) times
8553    /// (Values from getRecordings)
8554    #[serde(skip_serializing_if = "Option::is_none")]
8555    pub sound_invalid_pin: Option<String>,
8556    /// The recording played to a user trying to join a locked conference
8557    /// (Values from getRecordings)
8558    #[serde(skip_serializing_if = "Option::is_none")]
8559    pub sound_locked: Option<String>,
8560    /// The recording played to an Admin-level user after toggling the
8561    /// conference to locked mode (Values from getRecordings)
8562    #[serde(skip_serializing_if = "Option::is_none")]
8563    pub sound_locked_now: Option<String>,
8564    /// The recording played to an Admin-level user after toggling the
8565    /// conference to unlocked mode (Values from getRecordings)
8566    #[serde(skip_serializing_if = "Option::is_none")]
8567    pub sound_unlocked_now: Option<String>,
8568    /// The recording played when there is an error on the menu. (Values from
8569    /// getRecordings)
8570    #[serde(skip_serializing_if = "Option::is_none")]
8571    pub sound_error_menu: Option<String>,
8572    /// The recording played when all non-admin participants are muted. (Values
8573    /// from getRecordings)
8574    #[serde(skip_serializing_if = "Option::is_none")]
8575    pub sound_participants_muted: Option<String>,
8576    /// The recording played when all non-admin participants are unmuted.
8577    /// (Values from getRecordings)
8578    #[serde(skip_serializing_if = "Option::is_none")]
8579    pub sound_participants_unmuted: Option<String>,
8580    /// Conference Language (Values from getLanguages)
8581    #[serde(skip_serializing_if = "Option::is_none")]
8582    pub language: Option<String>,
8583}
8584
8585/// \- Updates a specific Member profile if a member code is provided.
8586/// \- Adds a new Member profile entry if no member code is provided.
8587///
8588/// Parameters for [`Client::set_conference_member`] (wire method `setConferenceMember`).
8589#[derive(Debug, Default, Clone, Serialize)]
8590pub struct SetConferenceMemberParams {
8591    /// ID for a specific Member profile (Example: 5356) (required)
8592    #[serde(skip_serializing_if = "Option::is_none")]
8593    pub member: Option<u64>,
8594    /// ID for a specific Conference (Example: 5356) (required)
8595    #[serde(skip_serializing_if = "Option::is_none")]
8596    pub conference: Option<u64>,
8597    /// Member name. (required)
8598    #[serde(skip_serializing_if = "Option::is_none")]
8599    pub name: Option<String>,
8600    /// Member description.
8601    #[serde(skip_serializing_if = "Option::is_none")]
8602    pub description: Option<String>,
8603    /// Assigned PIN.
8604    #[serde(skip_serializing_if = "Option::is_none")]
8605    pub pin: Option<u64>,
8606    /// Sets if the conference recording when a member joins or leaves will be
8607    /// played (yes/no).
8608    #[serde(
8609        skip_serializing_if = "Option::is_none",
8610        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
8611    )]
8612    pub announce_join_leave: Option<bool>,
8613    /// Sets if the member is an admin or not (yes/no).
8614    #[serde(
8615        skip_serializing_if = "Option::is_none",
8616        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
8617    )]
8618    pub admin: Option<bool>,
8619    /// Sets if the member should start out muted after entering the conference
8620    /// (yes/no).
8621    #[serde(
8622        skip_serializing_if = "Option::is_none",
8623        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
8624    )]
8625    pub start_muted: Option<bool>,
8626    /// Sets if the number of members in the conference should be announced to
8627    /// the caller as he joins (yes/no).
8628    #[serde(
8629        skip_serializing_if = "Option::is_none",
8630        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
8631    )]
8632    pub announce_user_count: Option<bool>,
8633    /// Sets if the "only user" announcement should be played when a caller
8634    /// enters an empty conference (yes/no).
8635    #[serde(
8636        skip_serializing_if = "Option::is_none",
8637        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
8638    )]
8639    pub announce_only_user: Option<bool>,
8640    /// Sets whether music on hold (MOH) should be played when only one person
8641    /// is in the conference (Values from getMusicOnHold).
8642    #[serde(skip_serializing_if = "Option::is_none")]
8643    pub moh_when_empty: Option<String>,
8644    /// When set to "yes", enter/leave prompts and user introductions are not
8645    /// played (yes/no).
8646    #[serde(
8647        skip_serializing_if = "Option::is_none",
8648        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
8649    )]
8650    pub quiet: Option<bool>,
8651    /// If set, this recording will be heard only by the user as he joins the
8652    /// conference (Values from getRecordings).
8653    #[serde(skip_serializing_if = "Option::is_none")]
8654    pub announcement: Option<u64>,
8655    /// The system will drop what is detected as silence from entering into the
8656    /// conference (yes/no).
8657    #[serde(
8658        skip_serializing_if = "Option::is_none",
8659        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
8660    )]
8661    pub drop_silence: Option<bool>,
8662    /// The time, in milliseconds, that a users needs to be sending sound or
8663    /// voice before the system can consider them to be talking (allowed values
8664    /// are 100, 120, 140, 160, 180, 200, 220, 240 or 250).
8665    #[serde(skip_serializing_if = "Option::is_none")]
8666    pub talking_threshold: Option<u64>,
8667    /// The time, in milliseconds, that silence needs to be present in the
8668    /// user&rsquo;s sound stream before the system can consider it to be in
8669    /// fact silent and close the audio (allowed values are 2000, 2100, 2200,
8670    /// 2300, 2400, 2500, 2600, 2700, 2800, 2900 or 3000).
8671    #[serde(skip_serializing_if = "Option::is_none")]
8672    pub silence_threshold: Option<u64>,
8673    /// If set to YES, the conference dashboard will display a notification when
8674    /// a participant starts and stops talking (yes/no).
8675    #[serde(
8676        skip_serializing_if = "Option::is_none",
8677        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
8678    )]
8679    pub talk_detection: Option<bool>,
8680    /// When set to YES, the system will place a jitter buffer on the caller's
8681    /// audio stream before any audio mixing is performed (yes/no).
8682    #[serde(
8683        skip_serializing_if = "Option::is_none",
8684        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
8685    )]
8686    pub jitter_buffer: Option<bool>,
8687}
8688
8689/// \- Updates the Billing Plan from a specific DID.
8690///
8691/// Parameters for [`Client::set_did_billing_type`] (wire method `setDIDBillingType`).
8692#[derive(Debug, Default, Clone, Serialize)]
8693pub struct SetDIDBillingTypeParams {
8694    /// DID affected by the new billing plan (required)
8695    #[serde(skip_serializing_if = "Option::is_none")]
8696    pub did: Option<String>,
8697    /// Billing type for the DID (1 = Per Minute, 2 = Flat) (required)
8698    #[serde(skip_serializing_if = "Option::is_none")]
8699    pub billing_type: Option<DidBillingType>,
8700}
8701
8702/// \- Updates the information from a specific DID.
8703///
8704/// Parameters for [`Client::set_did_info`] (wire method `setDIDInfo`).
8705#[derive(Debug, Default, Clone, Serialize)]
8706pub struct SetDIDInfoParams {
8707    /// DID to be Updated (Example: 5551234567) (required)
8708    #[serde(skip_serializing_if = "Option::is_none")]
8709    pub did: Option<String>,
8710    /// Main Routing for the DID (required)
8711    #[serde(skip_serializing_if = "Option::is_none")]
8712    pub routing: Option<crate::Routing>,
8713    /// Busy Routing for the DID
8714    #[serde(skip_serializing_if = "Option::is_none")]
8715    pub failover_busy: Option<crate::Routing>,
8716    /// Unreachable Routing for the DID
8717    #[serde(skip_serializing_if = "Option::is_none")]
8718    pub failover_unreachable: Option<crate::Routing>,
8719    /// NoAnswer Routing for the DID
8720    #[serde(skip_serializing_if = "Option::is_none")]
8721    pub failover_noanswer: Option<crate::Routing>,
8722    /// Voicemail for the DID
8723    #[serde(skip_serializing_if = "Option::is_none")]
8724    pub voicemail: Option<String>,
8725    /// Point of Presence for the DID ("server_pop" values from getServersInfo.
8726    /// Example: 3) (required)
8727    #[serde(skip_serializing_if = "Option::is_none")]
8728    pub pop: Option<u64>,
8729    /// Dial Time Out for the DID (Example: 60 -> in seconds) (required)
8730    #[serde(skip_serializing_if = "Option::is_none")]
8731    pub dialtime: Option<u64>,
8732    /// CNAM for the DID (Boolean: 1/0) (required)
8733    #[serde(skip_serializing_if = "Option::is_none")]
8734    pub cnam: Option<u64>,
8735    /// Caller ID Prefix for the DID
8736    #[serde(skip_serializing_if = "Option::is_none")]
8737    pub callerid_prefix: Option<String>,
8738    /// Note for the DID
8739    #[serde(skip_serializing_if = "Option::is_none")]
8740    pub note: Option<String>,
8741    /// Port Out PIN protection is used as a means of authorizing outgoing
8742    /// portability (only for selected US numbers with the lock icon)
8743    #[serde(skip_serializing_if = "Option::is_none")]
8744    pub port_out_pin: Option<u64>,
8745    /// Billing type for the DID (1 = Per Minute, 2 = Flat) (required)
8746    #[serde(skip_serializing_if = "Option::is_none")]
8747    pub billing_type: Option<DidBillingType>,
8748    /// Record Calls (Boolean: 1/0)
8749    #[serde(
8750        skip_serializing_if = "Option::is_none",
8751        serialize_with = "crate::responses::serialize_opt_flag_01"
8752    )]
8753    pub record_calls: Option<bool>,
8754    /// Enable Call Transcription (Boolean: 1/0)
8755    #[serde(
8756        skip_serializing_if = "Option::is_none",
8757        serialize_with = "crate::responses::serialize_opt_flag_01"
8758    )]
8759    pub transcribe: Option<bool>,
8760    /// Transcription locale code (values from getLocales, comma separated for
8761    /// more than one locale up to 10 locales)
8762    #[serde(skip_serializing_if = "Option::is_none")]
8763    pub transcription_locale: Option<String>,
8764    /// Call Transcription Email
8765    #[serde(skip_serializing_if = "Option::is_none")]
8766    pub transcription_email: Option<String>,
8767    /// Call Transcription Delay Seconds between 0 and 60, Increments of 5
8768    /// (Example: 10 -> seconds)
8769    #[serde(skip_serializing_if = "Option::is_none")]
8770    pub transcription_start_delay: Option<u64>,
8771    /// Voicemail Threshold Seconds between 0 and 60, Increments of 5 (Example:
8772    /// 10 -> seconds) routing, failover_busy, failover_unreachable and
8773    /// failover_noanswer can receive values in the following format =>
8774    /// header:record_id Where header could be: account, fwd, vm, sip, grp, ivr,
8775    /// sys, recording, queue, cb, tc, disa, none. Examples: account Used for
8776    /// routing calls to Sub Accounts You can get all sub accounts using the
8777    /// getSubAccounts function fwd Used for routing calls to Forwarding
8778    /// entries. You can get the ID right after creating a Forwarding with
8779    /// setForwarding or by requesting all forwardings entries with
8780    /// getForwardings. vm Used for routing calls to a Voicemail. You can get
8781    /// all voicemails and their IDs using the getVoicemails function sys System
8782    /// Options: hangup = Hangup the Call busy = Busy tone noservice = System
8783    /// Recording: Number not in service disconnected = System Recording: Number
8784    /// has been disconnected dtmf = DTMF Test echo = Sound Quality Test none
8785    /// Used to route calls to no action Examples: 'account:100001_VoIP'
8786    /// 'fwd:1026' 'vm:101' 'none:' 'sys:echo'
8787    #[serde(skip_serializing_if = "Option::is_none")]
8788    pub voicemail_threshold: Option<u64>,
8789}
8790
8791/// \- Updates the POP from a specific DID.
8792///
8793/// Parameters for [`Client::set_did_pop`] (wire method `setDIDPOP`).
8794#[derive(Debug, Default, Clone, Serialize)]
8795pub struct SetDIDPOPParams {
8796    /// DID to be Updated (Example: 5551234567) (required)
8797    #[serde(skip_serializing_if = "Option::is_none")]
8798    pub did: Option<String>,
8799    /// Point of Presence for the DID ("server_pop" values from getServersInfo.
8800    /// Example: 3) (required)
8801    #[serde(skip_serializing_if = "Option::is_none")]
8802    pub pop: Option<u64>,
8803}
8804
8805/// \- Updates the Routing from a specific DID.
8806///
8807/// Parameters for [`Client::set_did_routing`] (wire method `setDIDRouting`).
8808#[derive(Debug, Default, Clone, Serialize)]
8809pub struct SetDIDRoutingParams {
8810    /// DID to be Updated (Example: 5551234567) (required)
8811    #[serde(skip_serializing_if = "Option::is_none")]
8812    pub did: Option<String>,
8813    /// Main Routing for the DID routing can receive values in the following
8814    /// format => header:record_id Where header could be: account, fwd, vm, sip,
8815    /// grp, ivr, sys, recording, queue, cb, tc, disa, none. Examples: account
8816    /// Used for routing calls to Sub Accounts You can get all sub accounts
8817    /// using the getSubAccounts function fwd Used for routing calls to
8818    /// Forwarding entries. You can get the ID right after creating a Forwarding
8819    /// with setForwarding or by requesting all forwardings entries with
8820    /// getForwardings. vm Used for routing calls to a Voicemail. You can get
8821    /// all voicemails and their IDs using the getVoicemails function Examples:
8822    /// 'account:100001_VoIP' 'fwd:1026' 'vm:101' (required)
8823    #[serde(skip_serializing_if = "Option::is_none")]
8824    pub routing: Option<crate::Routing>,
8825}
8826
8827/// \- Updates the Voicemail from a specific DID.
8828///
8829/// Parameters for [`Client::set_did_voicemail`] (wire method `setDIDVoicemail`).
8830#[derive(Debug, Default, Clone, Serialize)]
8831pub struct SetDIDVoicemailParams {
8832    /// DID to be Updated (Example: 5551234567) (required)
8833    #[serde(skip_serializing_if = "Option::is_none")]
8834    pub did: Option<String>,
8835    /// Mailbox for the DID
8836    #[serde(skip_serializing_if = "Option::is_none")]
8837    pub voicemail: Option<String>,
8838}
8839
8840/// \- Updates a specific DISA if a disa code is provided.
8841/// \- Adds a new DISA entry if no disa code is provided.
8842///
8843/// Parameters for [`Client::set_disa`] (wire method `setDISA`).
8844#[derive(Debug, Default, Clone, Serialize)]
8845pub struct SetDISAParams {
8846    /// ID for a specific DISA (Example: 2114 / Leave empty to create a new one)
8847    #[serde(skip_serializing_if = "Option::is_none")]
8848    pub disa: Option<String>,
8849    /// Name for the DISA (required)
8850    #[serde(skip_serializing_if = "Option::is_none")]
8851    pub name: Option<String>,
8852    /// Password for the DISA (required)
8853    #[serde(skip_serializing_if = "Option::is_none")]
8854    pub pin: Option<u64>,
8855    /// Time between digits (required)
8856    #[serde(skip_serializing_if = "Option::is_none")]
8857    pub digit_timeout: Option<u64>,
8858    /// Caller ID Override for the DISA
8859    #[serde(skip_serializing_if = "Option::is_none")]
8860    pub callerid_override: Option<String>,
8861    /// Language for the DISA (en, fr, es)
8862    #[serde(skip_serializing_if = "Option::is_none")]
8863    pub language: Option<String>,
8864}
8865
8866/// \- Create or update the information of a specific "Email to Fax
8867/// configuration".
8868///
8869/// Parameters for [`Client::set_email_to_fax`] (wire method `setEmailToFax`).
8870#[derive(Debug, Default, Clone, Serialize)]
8871pub struct SetEmailToFAXParams {
8872    /// \[Only for updates\] ID of the "Email to Fax" to edit (Values from
8873    /// getEmailToFax)
8874    #[serde(skip_serializing_if = "Option::is_none")]
8875    pub id: Option<u64>,
8876    /// If Enable, we will send Fax Message when we receive an email from the
8877    /// provided address. (Values: 1=Enable / 0=Disable)
8878    #[serde(
8879        skip_serializing_if = "Option::is_none",
8880        serialize_with = "crate::responses::serialize_opt_flag_01"
8881    )]
8882    pub enabled: Option<bool>,
8883    /// Email address from you will sent Fax Messages (required)
8884    #[serde(skip_serializing_if = "Option::is_none")]
8885    pub auth_email: Option<String>,
8886    /// Fax number that will appear as fax sender. (values from
8887    /// getFaxNumbersInfo) (required)
8888    #[serde(skip_serializing_if = "Option::is_none")]
8889    pub from_number_id: Option<String>,
8890    /// If Enable, we will check the mail subject if this include a Security
8891    /// Code before send the Fax. (Values: 1=Enable / 0=Disable)
8892    #[serde(
8893        skip_serializing_if = "Option::is_none",
8894        serialize_with = "crate::responses::serialize_opt_flag_01"
8895    )]
8896    pub security_code_enabled: Option<bool>,
8897    /// An alphanumeric code to identify your emails before send as Fax.
8898    /// (required)
8899    #[serde(skip_serializing_if = "Option::is_none")]
8900    pub security_code: Option<String>,
8901    /// Set to true if testing.
8902    #[serde(
8903        skip_serializing_if = "crate::responses::is_false",
8904        serialize_with = "crate::responses::serialize_flag_01"
8905    )]
8906    pub test: bool,
8907}
8908
8909/// \- Create or update the information of a specific Fax Folder.
8910///
8911/// Parameters for [`Client::set_fax_folder`] (wire method `setFaxFolder`).
8912#[derive(Debug, Default, Clone, Serialize)]
8913pub struct SetFAXFolderParams {
8914    /// \[Only for updates\] ID of the Fax Folder to edit (Values from
8915    /// getFaxFolders)
8916    #[serde(skip_serializing_if = "Option::is_none")]
8917    pub id: Option<u64>,
8918    /// Name of the Fax Folder to create or update (Example: FAMILY) (required)
8919    #[serde(skip_serializing_if = "Option::is_none")]
8920    pub name: Option<String>,
8921    /// Set to true if testing how to create/update a Fax Folder
8922    #[serde(
8923        skip_serializing_if = "crate::responses::is_false",
8924        serialize_with = "crate::responses::serialize_flag_01"
8925    )]
8926    pub test: bool,
8927}
8928
8929/// \- Updates the email configuration from a specific Fax Number.
8930///
8931/// Parameters for [`Client::set_fax_number_email`] (wire method `setFaxNumberEmail`).
8932#[derive(Debug, Default, Clone, Serialize)]
8933pub struct SetFAXNumberEmailParams {
8934    /// DID Number to be ported into our network (Example: 5552341234)
8935    /// (required)
8936    #[serde(skip_serializing_if = "Option::is_none")]
8937    pub did: Option<String>,
8938    /// Email address where send notifications when receive Fax Messages -
8939    /// (Example: \[email protected\])
8940    #[serde(skip_serializing_if = "Option::is_none")]
8941    pub email: Option<String>,
8942    /// Flag to enable the email notifications. - (Values: 1 = true, 0 = false)
8943    /// \- Default: 0
8944    #[serde(
8945        skip_serializing_if = "Option::is_none",
8946        serialize_with = "crate::responses::serialize_opt_flag_01"
8947    )]
8948    pub email_enable: Option<bool>,
8949    /// Flag to enable attach the Fax Message as a PDF file in the
8950    /// notifications. - (Values: 1 = true, 0 = false) - Default: 0
8951    #[serde(
8952        skip_serializing_if = "Option::is_none",
8953        serialize_with = "crate::responses::serialize_opt_flag_01"
8954    )]
8955    pub email_attach_file: Option<bool>,
8956    /// Set to true if testing how to set the email of a Fax Number
8957    #[serde(
8958        skip_serializing_if = "crate::responses::is_false",
8959        serialize_with = "crate::responses::serialize_flag_01"
8960    )]
8961    pub test: bool,
8962}
8963
8964/// \- Updates the information from a specific Fax Number.
8965///
8966/// Parameters for [`Client::set_fax_number_info`] (wire method `setFaxNumberInfo`).
8967#[derive(Debug, Default, Clone, Serialize)]
8968pub struct SetFAXNumberInfoParams {
8969    /// DID Number to be ported into our network (Example: 5552341234)
8970    /// (required)
8971    #[serde(skip_serializing_if = "Option::is_none")]
8972    pub did: Option<String>,
8973    /// Email address where send notifications when receive Fax Messages -
8974    /// (Example: \[email protected\])
8975    #[serde(skip_serializing_if = "Option::is_none")]
8976    pub email: Option<String>,
8977    /// Flag to enable the email notifications. - (Values: 1 = true, 0 = false)
8978    /// \- Default: 0
8979    #[serde(
8980        skip_serializing_if = "Option::is_none",
8981        serialize_with = "crate::responses::serialize_opt_flag_01"
8982    )]
8983    pub email_enable: Option<bool>,
8984    /// Flag to enable attach the Fax Message as a PDF file in the
8985    /// notifications. - (Values: 1 = true, 0 = false) - Default: 0
8986    #[serde(
8987        skip_serializing_if = "Option::is_none",
8988        serialize_with = "crate::responses::serialize_opt_flag_01"
8989    )]
8990    pub email_attach_file: Option<bool>,
8991    /// URL where make a POST when you receive a Fax Message.
8992    #[serde(skip_serializing_if = "Option::is_none")]
8993    pub url_callback: Option<String>,
8994    /// Flag to enable the URL Callback functionality. - (Values: 1 = true, 0 =
8995    /// false) - Default: 0
8996    #[serde(
8997        skip_serializing_if = "Option::is_none",
8998        serialize_with = "crate::responses::serialize_opt_flag_01"
8999    )]
9000    pub url_callback_enable: Option<bool>,
9001    /// Flag to enable retry the POST action in case we don't receive "ok".
9002    #[serde(
9003        skip_serializing_if = "Option::is_none",
9004        serialize_with = "crate::responses::serialize_opt_flag_01"
9005    )]
9006    pub url_callback_retry: Option<bool>,
9007    /// Set to true if testing how to update the information of a Fax Number
9008    #[serde(
9009        skip_serializing_if = "crate::responses::is_false",
9010        serialize_with = "crate::responses::serialize_flag_01"
9011    )]
9012    pub test: bool,
9013}
9014
9015/// \- Updates the url callback configuration from a specific Fax Number.
9016///
9017/// Parameters for [`Client::set_fax_number_url_callback`] (wire method `setFaxNumberURLCallback`).
9018#[derive(Debug, Default, Clone, Serialize)]
9019pub struct SetFAXNumberURLCallbackParams {
9020    /// DID Number to be ported into our network (Example: 5552341234)
9021    /// (required)
9022    #[serde(skip_serializing_if = "Option::is_none")]
9023    pub did: Option<String>,
9024    /// URL where make a POST when you receive a Fax Message.
9025    #[serde(skip_serializing_if = "Option::is_none")]
9026    pub url_callback: Option<String>,
9027    /// Flag to enable the URL Callback functionality. - (Values: 1 = true, 0 =
9028    /// false) - Default: 0
9029    #[serde(
9030        skip_serializing_if = "Option::is_none",
9031        serialize_with = "crate::responses::serialize_opt_flag_01"
9032    )]
9033    pub url_callback_enable: Option<bool>,
9034    /// Flag to enable retry the POST action in case we don't receive "ok".
9035    #[serde(
9036        skip_serializing_if = "Option::is_none",
9037        serialize_with = "crate::responses::serialize_opt_flag_01"
9038    )]
9039    pub url_callback_retry: Option<bool>,
9040    /// Set to true if testing how to set the URL callback of a Fax Number
9041    #[serde(
9042        skip_serializing_if = "crate::responses::is_false",
9043        serialize_with = "crate::responses::serialize_flag_01"
9044    )]
9045    pub test: bool,
9046}
9047
9048/// \- Updates a specific Forwarding if a fwd code is provided.
9049/// \- Adds a new Forwarding entry if no fwd code is provided.
9050///
9051/// Parameters for [`Client::set_forwarding`] (wire method `setForwarding`).
9052#[derive(Debug, Default, Clone, Serialize)]
9053pub struct SetForwardingParams {
9054    /// ID for a specific Forwarding (Example: 19183 / Leave empty to create a
9055    /// new one)
9056    #[serde(skip_serializing_if = "Option::is_none")]
9057    pub forwarding: Option<String>,
9058    /// Phone Number for the Forwarding (required)
9059    #[serde(skip_serializing_if = "Option::is_none")]
9060    pub phone_number: Option<String>,
9061    /// Caller ID Override for the Forwarding
9062    #[serde(skip_serializing_if = "Option::is_none")]
9063    pub callerid_override: Option<String>,
9064    /// Description for the Forwarding
9065    #[serde(skip_serializing_if = "Option::is_none")]
9066    pub description: Option<String>,
9067    /// Send DTMF digits when call is answered
9068    #[serde(skip_serializing_if = "Option::is_none")]
9069    pub dtmf_digits: Option<String>,
9070    /// Pause (seconds) when call is answered before sending digits (Example:
9071    /// 1.5 / Values: 0 to 10 in increments of 0.5)
9072    #[serde(skip_serializing_if = "Option::is_none")]
9073    pub pause: Option<String>,
9074    /// If enabled, we will add a Diversion Header to your forwarded call
9075    #[serde(
9076        skip_serializing_if = "Option::is_none",
9077        serialize_with = "crate::responses::serialize_opt_flag_01"
9078    )]
9079    pub diversion_header: Option<bool>,
9080}
9081
9082/// \- Updates a specific IVR if an IVR code is provided.
9083/// \- Adds a new IVR entry if no IVR code is provided.
9084///
9085/// Parameters for [`Client::set_ivr`] (wire method `setIVR`).
9086#[derive(Debug, Default, Clone, Serialize)]
9087pub struct SetIVRParams {
9088    /// ID for a specific IVR (Example: 4636 / Leave empty to create a new one)
9089    #[serde(skip_serializing_if = "Option::is_none")]
9090    pub ivr: Option<String>,
9091    /// Name for the IVR (required)
9092    #[serde(skip_serializing_if = "Option::is_none")]
9093    pub name: Option<String>,
9094    /// Recording for the IVR (values from getRecordings) (required)
9095    #[serde(skip_serializing_if = "Option::is_none")]
9096    pub recording: Option<u64>,
9097    /// Maximum time for type in a choice after recording (required)
9098    #[serde(skip_serializing_if = "Option::is_none")]
9099    pub timeout: Option<u64>,
9100    /// Language for the IVR (values from getLanguages) (required)
9101    #[serde(skip_serializing_if = "Option::is_none")]
9102    pub language: Option<String>,
9103    /// Voicemail Setup for the IVR (values from getVoicemailSetups) (required)
9104    #[serde(skip_serializing_if = "Option::is_none")]
9105    pub voicemailsetup: Option<u64>,
9106    /// Choices for the IVR (Example: '1=sip:5096 ; 2=fwd:20222') (required)
9107    #[serde(skip_serializing_if = "Option::is_none")]
9108    pub choices: Option<String>,
9109}
9110
9111/// Parameters for [`Client::set_location`] (wire method `setLocation`).
9112#[derive(Debug, Default, Clone, Serialize)]
9113pub struct SetLocationParams {
9114    /// Internal Extension Location name (Example: "Location1") (required)
9115    #[serde(skip_serializing_if = "Option::is_none")]
9116    pub name: Option<String>,
9117}
9118
9119/// Parameters for [`Client::set_music_on_hold`] (wire method `setMusicOnHold`).
9120#[derive(Debug, Default, Clone, Serialize)]
9121pub struct SetMusicOnHoldParams {
9122    /// Music on Hold Name (Values from getMusicOnHold)
9123    #[serde(skip_serializing_if = "Option::is_none")]
9124    pub name: Option<String>,
9125    /// Music on Hold Description (required)
9126    #[serde(skip_serializing_if = "Option::is_none")]
9127    pub description: Option<String>,
9128    /// Music on Hold Quiet Volume (Boolean: 1/0)
9129    #[serde(skip_serializing_if = "Option::is_none")]
9130    pub volume: Option<String>,
9131    /// Selected recordings sort mode (Example: "alpha", "random")
9132    #[serde(skip_serializing_if = "Option::is_none")]
9133    pub sort: Option<RecordingSort>,
9134    /// Selected recordings separated by commas (Values from getRecordings,
9135    /// example: (1234,1235,1236) (required)
9136    #[serde(skip_serializing_if = "Option::is_none")]
9137    pub recordings: Option<String>,
9138}
9139
9140/// \- Updates a specific Phonebook entry if a phonebook code is provided.
9141/// \- Adds a new Phonebook entry if no phonebook code is provided.
9142///
9143/// Parameters for [`Client::set_phonebook`] (wire method `setPhonebook`).
9144#[derive(Debug, Default, Clone, Serialize)]
9145pub struct SetPhonebookParams {
9146    /// ID for a specific Phonebook entry (Example: 32207 / Leave empty to
9147    /// create a new one)
9148    #[serde(skip_serializing_if = "Option::is_none")]
9149    pub phonebook: Option<String>,
9150    /// Speed Dial for the Phonebook entry
9151    #[serde(skip_serializing_if = "Option::is_none")]
9152    pub speed_dial: Option<String>,
9153    /// Name for the Phonebook Entry (required)
9154    #[serde(skip_serializing_if = "Option::is_none")]
9155    pub name: Option<String>,
9156    /// Number or SIP for the Phonebook entry (Example: 'sip:2563' or
9157    /// '5552223333') (required)
9158    #[serde(skip_serializing_if = "Option::is_none")]
9159    pub number: Option<String>,
9160    /// Caller ID Override when dialing via Speed Dial
9161    #[serde(skip_serializing_if = "Option::is_none")]
9162    pub callerid: Option<String>,
9163    /// Note for the phonebook entry
9164    #[serde(skip_serializing_if = "Option::is_none")]
9165    pub note: Option<String>,
9166    /// ID for a specific Phonebook group
9167    #[serde(skip_serializing_if = "Option::is_none")]
9168    pub group: Option<u64>,
9169}
9170
9171/// \- Updates a specific Phonebook group if a phonebook code is provided.
9172/// \- Adds a new Phonebook group if no phonebook group code is provided.
9173/// \- Assigns or modifies group members if a member list is provided
9174///
9175/// Parameters for [`Client::set_phonebook_group`] (wire method `setPhonebookGroup`).
9176#[derive(Debug, Default, Clone, Serialize)]
9177pub struct SetPhonebookGroupParams {
9178    #[serde(skip_serializing_if = "Option::is_none")]
9179    pub phonebook: Option<String>,
9180    /// ID for a specific Phonebook group (Example: 32207 / Leave empty to
9181    /// create a new one)
9182    #[serde(skip_serializing_if = "Option::is_none")]
9183    pub group: Option<String>,
9184    /// Name for the Phonebook group (required)
9185    #[serde(skip_serializing_if = "Option::is_none")]
9186    pub name: Option<String>,
9187    /// Phonebook entry codes associated to this group separated by a semicolon
9188    #[serde(skip_serializing_if = "Option::is_none")]
9189    pub members: Option<String>,
9190}
9191
9192/// \- Updates a specific Queue entry if a queue code is provided.
9193/// \- Adds a new Queue entry if no queue code is provided.
9194///
9195/// Parameters for [`Client::set_queue`] (wire method `setQueue`).
9196#[derive(Debug, Default, Clone, Serialize)]
9197pub struct SetQueueParams {
9198    /// ID for a specific Queue entry (Example: 32208 / Leave empty to create a
9199    /// new one)
9200    #[serde(skip_serializing_if = "Option::is_none")]
9201    pub queue: Option<String>,
9202    /// Queue entry name (required)
9203    #[serde(skip_serializing_if = "Option::is_none")]
9204    pub queue_name: Option<String>,
9205    /// Queue entry number (required)
9206    #[serde(skip_serializing_if = "Option::is_none")]
9207    pub queue_number: Option<u64>,
9208    /// Language Code (Values from getLanguages) (required)
9209    #[serde(skip_serializing_if = "Option::is_none")]
9210    pub queue_language: Option<String>,
9211    /// Queue Password
9212    #[serde(skip_serializing_if = "Option::is_none")]
9213    pub queue_password: Option<String>,
9214    /// Caller ID Prefix for queue
9215    #[serde(skip_serializing_if = "Option::is_none")]
9216    pub callerid_prefix: Option<u64>,
9217    /// Recording Code (Values from getRecordings or 'none')
9218    #[serde(skip_serializing_if = "Option::is_none")]
9219    pub join_announcement: Option<String>,
9220    /// weight/priority of queue (Values 1 to 60) (required)
9221    #[serde(skip_serializing_if = "Option::is_none")]
9222    pub priority_weight: Option<String>,
9223    /// Recording Code (Values from getRecordings or 'none')
9224    #[serde(skip_serializing_if = "Option::is_none")]
9225    pub agent_announcement: Option<String>,
9226    /// Report hold time to agent (Values from getReportEstimatedHoldTime)
9227    /// (required)
9228    #[serde(skip_serializing_if = "Option::is_none")]
9229    pub report_hold_time_agent: Option<String>,
9230    /// Member delay when the agent is connected to the caller (Values 1 to 15
9231    /// in seconds or 'none')
9232    #[serde(skip_serializing_if = "Option::is_none")]
9233    pub member_delay: Option<crate::Seconds>,
9234    /// Ammount of time a caller can wait in queue (Values in seconds: multiples
9235    /// of 30, max value: 1200 or 'unlimited')
9236    #[serde(skip_serializing_if = "Option::is_none")]
9237    pub maximum_wait_time: Option<crate::WaitTime>,
9238    /// Maximum callers (Values: 1 to 60 or 'unlimited')
9239    #[serde(skip_serializing_if = "Option::is_none")]
9240    pub maximum_callers: Option<String>,
9241    /// How caller join to the queue (Values from getJoinWhenEmptyTypes)
9242    /// Examples: yes Callers can join a queue with no members or only
9243    /// unavailable members no Callers cannot join a queue with no members
9244    /// strict Callers cannot join a queue with no members or only unavailable
9245    /// members (required)
9246    #[serde(skip_serializing_if = "Option::is_none")]
9247    pub join_when_empty: Option<QueueEmptyBehavior>,
9248    /// How caller leave the queue (Values 'yes'/'no'/'strict') Examples: yes
9249    /// Callers are sent to failover when there are no members no Callers will
9250    /// remain in the queue even if there are no members strict Callers are sent
9251    /// to failover if there are members but none of them is available.
9252    /// (required)
9253    #[serde(skip_serializing_if = "Option::is_none")]
9254    pub leave_when_empty: Option<QueueEmptyBehavior>,
9255    /// Ring strategy (Values from getRingStrategies) (required)
9256    #[serde(skip_serializing_if = "Option::is_none")]
9257    pub ring_strategy: Option<RingStrategy>,
9258    /// If you want the queue to avoid sending calls to members (Values
9259    /// 'yes'/'no') (required)
9260    #[serde(
9261        skip_serializing_if = "Option::is_none",
9262        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
9263    )]
9264    pub ring_inuse: Option<bool>,
9265    /// Number of seconds to ring an agent (Values 5 to 60)
9266    #[serde(skip_serializing_if = "Option::is_none")]
9267    pub agent_ring_timeout: Option<u64>,
9268    /// How long do we wait before trying all the members again (Values 5 to 60
9269    /// seconds or 'none'= No Delay)
9270    #[serde(skip_serializing_if = "Option::is_none")]
9271    pub retry_timer: Option<crate::Seconds>,
9272    /// After a successful call, the number of seconds to wait before sending a
9273    /// free agent another call (Values 1 to 60 seconds or 'none'= No Delay)
9274    #[serde(skip_serializing_if = "Option::is_none")]
9275    pub wrapup_time: Option<crate::Seconds>,
9276    /// Code for Recording (Values from getRecordings or 'none')
9277    #[serde(skip_serializing_if = "Option::is_none")]
9278    pub voice_announcement: Option<String>,
9279    /// Periodic interval to play voice announce recording (Values in seconds:
9280    /// multiples of 15, max value: 1200 or 'none' = No announcement)
9281    #[serde(skip_serializing_if = "Option::is_none")]
9282    pub frequency_announcement: Option<crate::Seconds>,
9283    /// How often to make any periodic announcement (Values in seconds:
9284    /// multiples of 15, max value: 1200 or 'none' = No announcement)
9285    #[serde(skip_serializing_if = "Option::is_none")]
9286    pub announce_position_frecuency: Option<crate::Seconds>,
9287    /// Announce seconds (Values in seconds: 1 to 60 or 'none' = Do not
9288    /// announce)
9289    #[serde(skip_serializing_if = "Option::is_none")]
9290    pub announce_round_seconds: Option<crate::Seconds>,
9291    /// Include estimated hold time in position announcements (Values
9292    /// 'yes'/'no'/'once')
9293    #[serde(skip_serializing_if = "Option::is_none")]
9294    pub if_announce_position_enabled_report_estimated_hold_time: Option<EstimatedHoldTimeAnnounce>,
9295    /// Yes to say "Thank you for your patience" immediatly after announcing
9296    /// Queue Position and Estimated hold time left (Values 'yes'/'no')
9297    #[serde(
9298        skip_serializing_if = "Option::is_none",
9299        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
9300    )]
9301    pub thankyou_for_your_patience: Option<bool>,
9302    /// Music on Hold Code (Values from getMusicOnHold)
9303    #[serde(skip_serializing_if = "Option::is_none")]
9304    pub music_on_hold: Option<String>,
9305    /// Failover routing to Maximum wait time reached
9306    #[serde(skip_serializing_if = "Option::is_none")]
9307    pub fail_over_routing_timeout: Option<crate::Routing>,
9308    /// Failover routing to Maximum callers reached
9309    #[serde(skip_serializing_if = "Option::is_none")]
9310    pub fail_over_routing_full: Option<crate::Routing>,
9311    /// A call was sent to the queue but the queue had no members (Only works
9312    /// when Join when Empty is set to no)
9313    #[serde(skip_serializing_if = "Option::is_none")]
9314    pub fail_over_routing_join_empty: Option<crate::Routing>,
9315    /// The last agent was removed form the queue before alls calls were handled
9316    /// (Only works when Leave when Empty is set to yes)
9317    #[serde(skip_serializing_if = "Option::is_none")]
9318    pub fail_over_routing_leave_empty: Option<crate::Routing>,
9319    /// Same as routingjoinempty, except that there were still queue members,
9320    /// but all were status unavailable
9321    #[serde(skip_serializing_if = "Option::is_none")]
9322    pub fail_over_routing_join_unavail: Option<crate::Routing>,
9323    /// Same as routingleaveempty, except that there were still queue members,
9324    /// but all were status unavailable routings can receive values in the
9325    /// following format => header:record_id Where header could be: account,
9326    /// fwd, vm, sip, grp, ivr, sys, recording, queue, cb, tc, disa, none.
9327    /// Examples: account Used for routing calls to Sub Accounts You can get all
9328    /// sub accounts using the getSubAccounts function fwd Used for routing
9329    /// calls to Forwarding entries. You can get the ID right after creating a
9330    /// Forwarding with setForwarding or by requesting all forwardings entries
9331    /// with getForwardings. vm Used for routing calls to a Voicemail. You can
9332    /// get all voicemails and their IDs using the getVoicemails function
9333    /// Examples: 'account:100001_VoIP' 'fwd:1026' 'vm:101'
9334    #[serde(skip_serializing_if = "Option::is_none")]
9335    pub fail_over_routing_leave_unavail: Option<crate::Routing>,
9336}
9337
9338/// \- Updates a specific Recording File if a Recording ID is provided.
9339/// \- Adds a new Recording file entry if no Recording ID is provided.
9340///
9341/// Parameters for [`Client::set_recording`] (wire method `setRecording`).
9342#[derive(Debug, Default, Clone, Serialize)]
9343pub struct SetRecordingParams {
9344    /// ID for a specific Phonebook entry (Example: 33221 / Leave empty to
9345    /// create a new one)
9346    #[serde(skip_serializing_if = "Option::is_none")]
9347    pub recording: Option<String>,
9348    /// Base64 encoded file (Provide Recording ID and file if you want update
9349    /// the file only) (required)
9350    #[serde(skip_serializing_if = "Option::is_none")]
9351    pub file: Option<String>,
9352    /// Name for the Recording Entry (Example: 'recording1') (Provide Recording
9353    /// ID and name if you want update the name only) (Provide Recording ID,
9354    /// file and name if you want update both parameters at the same time)
9355    /// (required)
9356    #[serde(skip_serializing_if = "Option::is_none")]
9357    pub name: Option<String>,
9358}
9359
9360/// \- Updates a specific Ring Group if a ring group code is provided.
9361/// \- Adds a new Ring Group entry if no ring group code is provided.
9362///
9363/// Parameters for [`Client::set_ring_group`] (wire method `setRingGroup`).
9364#[derive(Debug, Default, Clone, Serialize)]
9365pub struct SetRingGroupParams {
9366    /// ID for a specific Ring Group (Example: 4768 / Leave empty to create a
9367    /// new one)
9368    #[serde(skip_serializing_if = "Option::is_none")]
9369    pub ring_group: Option<String>,
9370    /// Name for the Ring Group (required)
9371    #[serde(skip_serializing_if = "Option::is_none")]
9372    pub name: Option<String>,
9373    /// Members for the Ring Group (Example: 'account:100001;fwd:16006')
9374    /// (required)
9375    #[serde(skip_serializing_if = "Option::is_none")]
9376    pub members: Option<String>,
9377    /// Voicemail for the Ring Group (Values from getVoicemails) (required)
9378    #[serde(skip_serializing_if = "Option::is_none")]
9379    pub voicemail: Option<String>,
9380    /// Recording Code (Values from getRecordings)
9381    #[serde(skip_serializing_if = "Option::is_none")]
9382    pub caller_announcement: Option<String>,
9383    /// Music on Hold Code (Values from getMusicOnHold)
9384    #[serde(skip_serializing_if = "Option::is_none")]
9385    pub music_on_hold: Option<String>,
9386    /// Code for Language (Values from getLanguages) "members" can receive the
9387    /// following routing headers: account Used to route the call to an Account
9388    /// or a Sub Account fwd Used to route the call to a Forwarding entry sip
9389    /// Used to route the call to a SIP URI Each member can a specific ring time
9390    /// and press1 values, you can add those to the routing header as follow:
9391    /// Example: 'account:100001,25,0;fwd:16006,10,1' 25 = Default ring time
9392    /// value (Values from 1 to 60 sec) 0 = Default press1 value (Values allowed
9393    /// 0 and 1)
9394    #[serde(skip_serializing_if = "Option::is_none")]
9395    pub language: Option<String>,
9396}
9397
9398/// \- Updates a specific SIP URI if a SIP URI code is provided.
9399/// \- Adds a new SIP URI entry if no SIP URI code is provided.
9400///
9401/// Parameters for [`Client::set_sip_uri`] (wire method `setSIPURI`).
9402#[derive(Debug, Default, Clone, Serialize)]
9403pub struct SetSIPURIParams {
9404    /// ID for a specific SIP URI (Example: 6199 / Leave empty to create a new
9405    /// one)
9406    #[serde(skip_serializing_if = "Option::is_none", rename = "sipuri")]
9407    pub sip_uri: Option<String>,
9408    /// SIP URI (Example: '\[email protected\]') (required)
9409    #[serde(skip_serializing_if = "Option::is_none")]
9410    pub uri: Option<String>,
9411    /// Description for the SIP URI
9412    #[serde(skip_serializing_if = "Option::is_none")]
9413    pub description: Option<String>,
9414    /// This setting is optional. You can configure a 'CallerID Number
9415    /// Override'. Your default CallerID number will be changed to the override
9416    /// you have configured here when using this SIP URI.
9417    #[serde(skip_serializing_if = "Option::is_none")]
9418    pub callerid_override: Option<String>,
9419    /// If this option is Enabled, then your CallerID will be E164 compliant.
9420    #[serde(skip_serializing_if = "Option::is_none")]
9421    pub callerid_e164: Option<u64>,
9422}
9423
9424/// \- Enable/Disable the SMS Service for a DID
9425/// \- Change the SMS settings for a DID
9426///
9427/// Parameters for [`Client::set_sms`] (wire method `setSMS`).
9428#[derive(Debug, Default, Clone, Serialize)]
9429pub struct SetSMSParams {
9430    /// DID to be Updated (Example: 5551234567) (required)
9431    #[serde(skip_serializing_if = "Option::is_none")]
9432    pub did: Option<String>,
9433    /// Enable/Disable the DID to receive SMS Messages (Values: 1=Enable /
9434    /// 0=Disable) (required)
9435    #[serde(
9436        skip_serializing_if = "Option::is_none",
9437        serialize_with = "crate::responses::serialize_opt_flag_01"
9438    )]
9439    pub enable: Option<bool>,
9440    /// If Enable, SMS Messages received by your DID will be sent to the email
9441    /// address provided (Values: 1=Enable / 0=Disable)
9442    #[serde(
9443        skip_serializing_if = "Option::is_none",
9444        serialize_with = "crate::responses::serialize_opt_flag_01"
9445    )]
9446    pub email_enabled: Option<bool>,
9447    /// SMS Messages received by your DID will be sent to the email address
9448    /// provided
9449    #[serde(skip_serializing_if = "Option::is_none")]
9450    pub email_address: Option<String>,
9451    /// If Enable, SMS Messages received by your DID will be forwarded to the
9452    /// phone number provided (Values: 1=Enable / 0=Disable)
9453    #[serde(
9454        skip_serializing_if = "Option::is_none",
9455        serialize_with = "crate::responses::serialize_opt_flag_01"
9456    )]
9457    pub sms_forward_enable: Option<bool>,
9458    /// SMS Messages received by your DID will be forwarded to the phone number
9459    /// provided (Example: 5551234567)
9460    #[serde(skip_serializing_if = "Option::is_none")]
9461    pub sms_forward: Option<String>,
9462    /// If Enable, SMS Messages received by your DID will be send a GET request
9463    /// to the URL callback provided (Values: 1=Enable / 0=Disable)
9464    #[serde(
9465        skip_serializing_if = "Option::is_none",
9466        serialize_with = "crate::responses::serialize_opt_flag_01"
9467    )]
9468    pub url_callback_enable: Option<bool>,
9469    /// SMS Messages received by your DID will be send a GET request to the URL
9470    /// callback provided Available Variables for your URL {FROM} The phone
9471    /// number that sent you the message. {TO} The DID number that received the
9472    /// message. {MESSAGE} The content of the message. Example:
9473    /// <http://mysite.com/sms.php?to={TO}&from={FROM}&message={MESSAGE}>
9474    #[serde(skip_serializing_if = "Option::is_none")]
9475    pub url_callback: Option<String>,
9476    /// Enable URL callback Retry (Values: 1=Enable / 0=Disable) we will be
9477    /// expecting an 'ok' output (without quotes) from your URL callback page as
9478    /// an indicator that you have received the message correctly. If we don't
9479    /// receive the 'ok' letters (wihtout quotes) from your callback page, we
9480    /// will keep sending you the same message every 30 minutes.
9481    #[serde(
9482        skip_serializing_if = "Option::is_none",
9483        serialize_with = "crate::responses::serialize_opt_flag_01"
9484    )]
9485    pub url_callback_retry: Option<bool>,
9486    /// SIP account or sub-account that will receive the SMS Messages
9487    #[serde(skip_serializing_if = "Option::is_none")]
9488    pub sms_sipaccount: Option<String>,
9489    /// If Enable, SMS Messages received by your DID will be sent to the
9490    /// specified SIP account or sub-account (Values: 1=Enable / 0=Disable)
9491    #[serde(
9492        skip_serializing_if = "Option::is_none",
9493        serialize_with = "crate::responses::serialize_opt_flag_01"
9494    )]
9495    pub sms_sipaccount_enabled: Option<bool>,
9496}
9497
9498/// \- Updates a specific Member from queue if a Member code is provided.
9499/// \- Adds a new Member to Queue if no Member code is provided.
9500///
9501/// Parameters for [`Client::set_static_member`] (wire method `setStaticMember`).
9502#[derive(Debug, Default, Clone, Serialize)]
9503pub struct SetStaticMemberParams {
9504    /// ID for a specific Member (Example: 619 / Leave empty to create a new
9505    /// one)
9506    #[serde(skip_serializing_if = "Option::is_none")]
9507    pub member: Option<String>,
9508    /// ID for a specific Queue (required)
9509    #[serde(skip_serializing_if = "Option::is_none")]
9510    pub queue: Option<u64>,
9511    /// Member Description (required)
9512    #[serde(skip_serializing_if = "Option::is_none")]
9513    pub member_name: Option<String>,
9514    /// Static Member Routing to receive calls - You can get all sub accounts
9515    /// using the getSubAccounts function
9516    #[serde(skip_serializing_if = "Option::is_none")]
9517    pub account: Option<String>,
9518    /// Values for get calls first (Example: 0) (required)
9519    #[serde(skip_serializing_if = "Option::is_none")]
9520    pub priority: Option<u64>,
9521}
9522
9523/// \- Updates Sub Account information.
9524///
9525/// Parameters for [`Client::set_sub_account`] (wire method `setSubAccount`).
9526#[derive(Debug, Default, Clone, Serialize)]
9527pub struct SetSubAccountParams {
9528    /// Sub Account ID (Example: 10236) (required)
9529    #[serde(skip_serializing_if = "Option::is_none")]
9530    pub id: Option<u64>,
9531    /// Sub Account Description (Example: 'VoIP Account')
9532    #[serde(skip_serializing_if = "Option::is_none")]
9533    pub description: Option<String>,
9534    /// Authorization Type Code (Values from getAuthTypes) (required)
9535    #[serde(skip_serializing_if = "Option::is_none")]
9536    pub auth_type: Option<u64>,
9537    /// Sub Account Password (For Password Authentication)
9538    #[serde(skip_serializing_if = "Option::is_none")]
9539    pub password: Option<String>,
9540    /// Sub Account IP (For IP Authentication)
9541    #[serde(skip_serializing_if = "Option::is_none")]
9542    pub ip: Option<String>,
9543    /// Device Type Code (Values from getDeviceTypes) (required)
9544    #[serde(skip_serializing_if = "Option::is_none")]
9545    pub device_type: Option<u64>,
9546    /// Caller ID Override
9547    #[serde(skip_serializing_if = "Option::is_none")]
9548    pub callerid_number: Option<String>,
9549    /// Route Code (Values from getRoutes)
9550    #[serde(skip_serializing_if = "Option::is_none")]
9551    pub canada_routing: Option<String>,
9552    /// Lock International Code (Values from getLockInternational) (required)
9553    #[serde(skip_serializing_if = "Option::is_none")]
9554    pub lock_international: Option<u64>,
9555    /// Route Code (Values from getRoutes) (required)
9556    #[serde(skip_serializing_if = "Option::is_none")]
9557    pub international_route: Option<u64>,
9558    /// Music on Hold Code (Values from getMusicOnHold) (required)
9559    #[serde(skip_serializing_if = "Option::is_none")]
9560    pub music_on_hold: Option<String>,
9561    /// Language for system messages, such as "Invalid Option" (Values from
9562    /// getLanguages)
9563    #[serde(skip_serializing_if = "Option::is_none")]
9564    pub language: Option<String>,
9565    /// List of Allowed Codecs (Values from getAllowedCodecs) Codecs separated
9566    /// by semicolon (Example: ulaw;g729;gsm) (required)
9567    #[serde(skip_serializing_if = "Option::is_none")]
9568    pub allowed_codecs: Option<String>,
9569    /// DTMF Mode Code (Values from getDTMFModes) (required)
9570    #[serde(skip_serializing_if = "Option::is_none")]
9571    pub dtmf_mode: Option<DtmfMode>,
9572    /// NAT Mode Code (Values from getNAT) (required)
9573    #[serde(skip_serializing_if = "Option::is_none")]
9574    pub nat: Option<Nat>,
9575    /// Encrypted SIP Traffic (Boolean: 1/0)
9576    #[serde(skip_serializing_if = "Option::is_none")]
9577    pub sip_traffic: Option<u64>,
9578    /// Max Expiry between 60 and 3600 (Example: 3000)
9579    #[serde(skip_serializing_if = "Option::is_none")]
9580    pub max_expiry: Option<u64>,
9581    /// RTP Time Out between 1 and 3600 (Example: 60)
9582    #[serde(skip_serializing_if = "Option::is_none")]
9583    pub rtp_timeout: Option<u64>,
9584    /// RTP Hold Time Out between 1 and 3600 (Example: 600)
9585    #[serde(skip_serializing_if = "Option::is_none")]
9586    pub rtp_hold_timeout: Option<u64>,
9587    /// List of IP/Netmask to allow outgoing calls separated by commas (Example:
9588    /// 123.45.3.21,10.255.12.0/22,device.mydomain.com)
9589    #[serde(skip_serializing_if = "Option::is_none")]
9590    pub ip_restriction: Option<String>,
9591    /// Enable IP Restriction (Boolean: 1/0)
9592    #[serde(
9593        skip_serializing_if = "Option::is_none",
9594        serialize_with = "crate::responses::serialize_opt_flag_01"
9595    )]
9596    pub enable_ip_restriction: Option<bool>,
9597    /// List of POP Servers to allow outgoing calls separated by commas (values
9598    /// from getServersInfo. Example: 10,23,45)
9599    #[serde(skip_serializing_if = "Option::is_none")]
9600    pub pop_restriction: Option<String>,
9601    /// Enable POP Restriction (Boolean: 1/0)
9602    #[serde(
9603        skip_serializing_if = "Option::is_none",
9604        serialize_with = "crate::responses::serialize_opt_flag_01"
9605    )]
9606    pub enable_pop_restriction: Option<bool>,
9607    /// Sub Account Internal Extension (Example: 1 -> Creates 101)
9608    #[serde(skip_serializing_if = "Option::is_none")]
9609    pub internal_extension: Option<String>,
9610    /// Sub Account Internal Voicemail (Example: 101)
9611    #[serde(skip_serializing_if = "Option::is_none")]
9612    pub internal_voicemail: Option<String>,
9613    /// Sub Account Internal Dialtime (Example: 60 -> seconds)
9614    #[serde(skip_serializing_if = "Option::is_none")]
9615    pub internal_dialtime: Option<String>,
9616    /// Reseller Account ID (Example: 561115)
9617    #[serde(skip_serializing_if = "Option::is_none")]
9618    pub reseller_client: Option<String>,
9619    /// Reseller Package (Example: 92364)
9620    #[serde(skip_serializing_if = "Option::is_none")]
9621    pub reseller_package: Option<String>,
9622    /// Reseller Next Billing Date (Example: '2012-12-31')
9623    #[serde(skip_serializing_if = "Option::is_none")]
9624    pub reseller_nextbilling: Option<String>,
9625    /// True if you want to charge Package Setup Fee after Save
9626    #[serde(skip_serializing_if = "Option::is_none")]
9627    pub reseller_chargesetup: Option<String>,
9628    /// Send BYE on successful transfer (Boolean: 1/0)
9629    #[serde(
9630        skip_serializing_if = "Option::is_none",
9631        serialize_with = "crate::responses::serialize_opt_flag_01"
9632    )]
9633    pub send_bye: Option<bool>,
9634    /// Record Calls (Boolean: 1/0)
9635    #[serde(
9636        skip_serializing_if = "Option::is_none",
9637        serialize_with = "crate::responses::serialize_opt_flag_01"
9638    )]
9639    pub record_calls: Option<bool>,
9640    #[serde(
9641        skip_serializing_if = "Option::is_none",
9642        serialize_with = "crate::responses::serialize_opt_flag_01"
9643    )]
9644    pub transcribe: Option<bool>,
9645    #[serde(skip_serializing_if = "Option::is_none")]
9646    pub transcription_locale: Option<String>,
9647    #[serde(skip_serializing_if = "Option::is_none")]
9648    pub transcription_email: Option<String>,
9649    /// Call Transcription Delay Seconds between 0 and 60, Increments of 5
9650    /// (Example: 10 -> seconds)
9651    #[serde(skip_serializing_if = "Option::is_none")]
9652    pub transcription_start_delay: Option<u64>,
9653    /// Allows you to dial outgoing calls using either the NANPA configuration
9654    /// or the E164 configuration. (Values: 0 = Use Main Account Setting, 1 =
9655    /// E164, 2 = NANPA)
9656    #[serde(skip_serializing_if = "Option::is_none")]
9657    pub dialing_mode: Option<DialingMode>,
9658    /// This allows you to select the carrier to be used for outgoing calls to
9659    /// toll-free numbers. (Values: -1 = Use main account settings, 0 = Default
9660    /// server setting, 1 = US carrier, 2 = Canadian carrier)
9661    #[serde(skip_serializing_if = "Option::is_none")]
9662    pub tfcarrier: Option<TollFreeCarrier>,
9663    /// Location group for the internal extension (Values from getLocations)
9664    #[serde(skip_serializing_if = "Option::is_none")]
9665    pub internal_extension_location: Option<u64>,
9666    /// e911 Default CallerID
9667    #[serde(skip_serializing_if = "Option::is_none")]
9668    pub default_e911: Option<String>,
9669}
9670
9671/// \- Updates a specific Time Condition if a time condition code is provided.
9672/// \- Adds a new Time Condition entry if no time condition code is provided.
9673///
9674/// Parameters for [`Client::set_time_condition`] (wire method `setTimeCondition`).
9675#[derive(Debug, Default, Clone, Serialize)]
9676pub struct SetTimeConditionParams {
9677    /// ID for a specific Time Condition (Example: 1830 / Leave empty to create
9678    /// a new one)
9679    #[serde(skip_serializing_if = "Option::is_none")]
9680    pub timecondition: Option<String>,
9681    /// Name for the Time Condition (required)
9682    #[serde(skip_serializing_if = "Option::is_none")]
9683    pub name: Option<String>,
9684    /// Routing for the Call when condition matches (required)
9685    #[serde(skip_serializing_if = "Option::is_none")]
9686    pub routing_match: Option<crate::Routing>,
9687    /// Routing for the Call when condition does not matche (required)
9688    #[serde(skip_serializing_if = "Option::is_none")]
9689    pub routing_nomatch: Option<crate::Routing>,
9690    /// All the Start Hour Conditions (Example: '8;8') (required)
9691    #[serde(skip_serializing_if = "Option::is_none")]
9692    pub starthour: Option<String>,
9693    /// All the Start Minute Conditions (Example: '0;0') (required)
9694    #[serde(skip_serializing_if = "Option::is_none")]
9695    pub startminute: Option<String>,
9696    /// All the End Hour Conditions (Example: '16;12') (required)
9697    #[serde(skip_serializing_if = "Option::is_none")]
9698    pub endhour: Option<String>,
9699    /// All the End Minute Conditions (Example: '0;0') (required)
9700    #[serde(skip_serializing_if = "Option::is_none")]
9701    pub endminute: Option<String>,
9702    /// All the Week Day Start Conditions (Example: 'mon;sat') (required)
9703    #[serde(skip_serializing_if = "Option::is_none")]
9704    pub weekdaystart: Option<String>,
9705    /// All the Week Day End Conditions (Example: 'fri;sat') (required)
9706    #[serde(skip_serializing_if = "Option::is_none")]
9707    pub weekdayend: Option<String>,
9708}
9709
9710/// \- Updates the information from a specific Voicemail.
9711///
9712/// Parameters for [`Client::set_voicemail`] (wire method `setVoicemail`).
9713#[derive(Debug, Default, Clone, Serialize)]
9714pub struct SetVoicemailParams {
9715    /// ID for a specific Mailbox (Example: 1001) (required)
9716    #[serde(skip_serializing_if = "Option::is_none")]
9717    pub mailbox: Option<u64>,
9718    /// Name for the Mailbox (required)
9719    #[serde(skip_serializing_if = "Option::is_none")]
9720    pub name: Option<String>,
9721    /// Password for the Mailbox (required)
9722    #[serde(skip_serializing_if = "Option::is_none")]
9723    pub password: Option<String>,
9724    /// True if Skipping Password (Boolean: 1/0) (required)
9725    #[serde(
9726        skip_serializing_if = "Option::is_none",
9727        serialize_with = "crate::responses::serialize_opt_flag_01"
9728    )]
9729    pub skip_password: Option<bool>,
9730    /// Email address for receiving messages, multiple email addresses are
9731    /// allowed if separated by a comma
9732    #[serde(skip_serializing_if = "Option::is_none")]
9733    pub email: Option<String>,
9734    /// Yes for Attaching WAV files to Message (Values: 'yes'/'no') (required)
9735    #[serde(
9736        skip_serializing_if = "Option::is_none",
9737        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
9738    )]
9739    pub attach_message: Option<bool>,
9740    /// Yes for Deleting Messages (Values: 'yes'/'no') (required)
9741    #[serde(
9742        skip_serializing_if = "Option::is_none",
9743        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
9744    )]
9745    pub delete_message: Option<bool>,
9746    /// Yes for Saying Time Stamp (Values: 'yes'/'no') (required)
9747    #[serde(
9748        skip_serializing_if = "Option::is_none",
9749        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
9750    )]
9751    pub say_time: Option<bool>,
9752    /// Time Zone for Mailbox (Values from getTimeZones) (required)
9753    #[serde(
9754        skip_serializing_if = "Option::is_none",
9755        serialize_with = "crate::responses::serialize_opt_tz"
9756    )]
9757    pub timezone: Option<chrono_tz::Tz>,
9758    /// Yes for Saying the Caller ID (Values: 'yes'/'no') (required)
9759    #[serde(
9760        skip_serializing_if = "Option::is_none",
9761        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
9762    )]
9763    pub say_callerid: Option<bool>,
9764    /// Code for Play Instructions Setting (Values from getPlayInstructions)
9765    /// (required)
9766    #[serde(skip_serializing_if = "Option::is_none")]
9767    pub play_instructions: Option<PlayInstructions>,
9768    /// Code for Language (Values from getLanguages) (required)
9769    #[serde(skip_serializing_if = "Option::is_none")]
9770    pub language: Option<String>,
9771    /// Code for Email Attachment format (Values from
9772    /// getVoicemailAttachmentFormats)
9773    #[serde(skip_serializing_if = "Option::is_none")]
9774    pub email_attachment_format: Option<EmailAttachmentFormat>,
9775    /// Recording for the Unavailable Message (values from getRecordings)
9776    #[serde(skip_serializing_if = "Option::is_none")]
9777    pub unavailable_message_recording: Option<String>,
9778    /// 'yes' to enable Voicemail Transcription
9779    #[serde(
9780        skip_serializing_if = "Option::is_none",
9781        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
9782    )]
9783    pub transcription: Option<bool>,
9784    /// Transcription locale code (values from getLocales, comma separated for
9785    /// more than one locale up to 10 locales)
9786    #[serde(skip_serializing_if = "Option::is_none")]
9787    pub transcription_locale: Option<String>,
9788    /// Yes for Transcription redaction (Values: 'yes'/'no')
9789    #[serde(
9790        skip_serializing_if = "Option::is_none",
9791        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
9792    )]
9793    pub transcription_redaction: Option<bool>,
9794    /// Yes for Transcription sentiment (Values: 'yes'/'no')
9795    #[serde(
9796        skip_serializing_if = "Option::is_none",
9797        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
9798    )]
9799    pub transcription_sentiment: Option<bool>,
9800    /// Yes for Transcription summary (Values: 'yes'/'no')
9801    #[serde(
9802        skip_serializing_if = "Option::is_none",
9803        serialize_with = "crate::responses::serialize_opt_flag_yes_no"
9804    )]
9805    pub transcription_summary: Option<bool>,
9806    /// Transcription format ( Values: 'html'/'text')
9807    #[serde(skip_serializing_if = "Option::is_none")]
9808    pub transcription_format: Option<TranscriptionFormat>,
9809}
9810
9811/// \- Signs a new Reseller Client to your Reseller Account.
9812///
9813/// Parameters for [`Client::signup_client`] (wire method `signupClient`).
9814#[derive(Debug, Default, Clone, Serialize)]
9815pub struct SignupClientParams {
9816    /// Client's Firstname (required)
9817    #[serde(skip_serializing_if = "Option::is_none")]
9818    pub firstname: Option<String>,
9819    /// Client's Lastname (required)
9820    #[serde(skip_serializing_if = "Option::is_none")]
9821    pub lastname: Option<String>,
9822    /// Client's Company
9823    #[serde(skip_serializing_if = "Option::is_none")]
9824    pub company: Option<String>,
9825    /// Client's Address (required)
9826    #[serde(skip_serializing_if = "Option::is_none")]
9827    pub address: Option<String>,
9828    /// Client's City (required)
9829    #[serde(skip_serializing_if = "Option::is_none")]
9830    pub city: Option<String>,
9831    /// Client's State (required)
9832    #[serde(skip_serializing_if = "Option::is_none")]
9833    pub state: Option<String>,
9834    /// Client's Country (Values from getCountries) (required)
9835    #[serde(skip_serializing_if = "Option::is_none")]
9836    pub country: Option<String>,
9837    /// Client's Zip Code (required)
9838    #[serde(skip_serializing_if = "Option::is_none")]
9839    pub zip: Option<String>,
9840    /// Client's Phone Number (required)
9841    #[serde(skip_serializing_if = "Option::is_none")]
9842    pub phone_number: Option<String>,
9843    /// Client's e-mail (required)
9844    #[serde(skip_serializing_if = "Option::is_none")]
9845    pub email: Option<String>,
9846    /// Client's Confirmation e-mail (required)
9847    #[serde(skip_serializing_if = "Option::is_none")]
9848    pub confirm_email: Option<String>,
9849    /// Client's Password (required)
9850    #[serde(skip_serializing_if = "Option::is_none")]
9851    pub password: Option<String>,
9852    /// Client's Confirmation Password (required)
9853    #[serde(skip_serializing_if = "Option::is_none")]
9854    pub confirm_password: Option<String>,
9855    /// Activates Client (Boolean: 1/0)
9856    #[serde(
9857        skip_serializing_if = "Option::is_none",
9858        serialize_with = "crate::responses::serialize_opt_flag_01"
9859    )]
9860    pub activate: Option<bool>,
9861    /// Balance Management for Client (Values from getBalanceManagement)
9862    #[serde(skip_serializing_if = "Option::is_none")]
9863    pub balance_management: Option<u64>,
9864}
9865
9866/// \- Unconnects specific DID from Reseller Client Sub Account.
9867///
9868/// Parameters for [`Client::unconnect_did`] (wire method `unconnectDID`).
9869#[derive(Debug, Default, Clone, Serialize)]
9870pub struct UnconnectDIDParams {
9871    /// DID to be Unconnected from Reseller Sub Account(Example: 5551234567)
9872    /// (required)
9873    #[serde(skip_serializing_if = "Option::is_none")]
9874    pub did: Option<String>,
9875}
9876
9877/// \- Unconnects specific FAX DID from Reseller Client Sub Account.
9878///
9879/// Parameters for [`Client::unconnect_fax`] (wire method `unconnectFAX`).
9880#[derive(Debug, Default, Clone, Serialize)]
9881pub struct UnconnectFAXParams {
9882    /// FAX DID to be Unconnected from Reseller Sub Account (Example:
9883    /// 5551234567) (required)
9884    #[serde(skip_serializing_if = "Option::is_none")]
9885    pub did: Option<String>,
9886}
9887
9888/// Response body for [`Client::add_charge`] (wire method `addCharge`).
9889#[derive(Debug, Clone, Default, serde::Deserialize)]
9890pub struct AddChargeResponse {
9891    #[serde(
9892        default,
9893        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
9894    )]
9895    pub status: Option<String>,
9896}
9897
9898/// Response body for [`Client::add_lnp_file`] (wire method `addLNPFile`).
9899#[derive(Debug, Clone, Default, serde::Deserialize)]
9900pub struct AddLNPFileResponse {
9901    #[serde(
9902        default,
9903        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
9904    )]
9905    pub status: Option<String>,
9906    #[serde(
9907        default,
9908        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
9909    )]
9910    pub attachment: Option<String>,
9911}
9912
9913/// Response body for [`Client::add_lnp_port`] (wire method `addLNPPort`).
9914#[derive(Debug, Clone, Default, serde::Deserialize)]
9915pub struct AddLNPPortResponse {
9916    #[serde(
9917        default,
9918        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
9919    )]
9920    pub status: Option<String>,
9921    #[serde(
9922        default,
9923        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
9924    )]
9925    pub port: Option<String>,
9926}
9927
9928/// Response body for [`Client::add_member_to_conference`] (wire method `addMemberToConference`).
9929#[derive(Debug, Clone, Default, serde::Deserialize)]
9930pub struct AddMemberToConferenceResponse {
9931    #[serde(
9932        default,
9933        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
9934    )]
9935    pub status: Option<String>,
9936    #[serde(
9937        default,
9938        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
9939    )]
9940    pub member: Option<u64>,
9941}
9942
9943/// Response body for [`Client::add_payment`] (wire method `addPayment`).
9944#[derive(Debug, Clone, Default, serde::Deserialize)]
9945pub struct AddPaymentResponse {
9946    #[serde(
9947        default,
9948        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
9949    )]
9950    pub status: Option<String>,
9951}
9952
9953/// Response body for [`Client::assign_did_vpri`] (wire method `assignDIDvPRI`).
9954#[derive(Debug, Clone, Default, serde::Deserialize)]
9955pub struct AssignDIDvPRIResponse {
9956    #[serde(
9957        default,
9958        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
9959    )]
9960    pub status: Option<String>,
9961    #[serde(
9962        default,
9963        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
9964    )]
9965    pub vpri: Option<u64>,
9966    #[serde(
9967        default,
9968        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool",
9969        rename = "DIDAdded"
9970    )]
9971    pub did_added: Option<String>,
9972    #[serde(
9973        default,
9974        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
9975    )]
9976    pub monthly: Option<rust_decimal::Decimal>,
9977}
9978
9979/// Response body for [`Client::back_order_did_can`] (wire method `backOrderDIDCAN`).
9980#[derive(Debug, Clone, Default, serde::Deserialize)]
9981pub struct BackOrderDIDCANResponse {
9982    #[serde(
9983        default,
9984        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
9985    )]
9986    pub status: Option<String>,
9987}
9988
9989/// Response body for [`Client::back_order_did_usa`] (wire method `backOrderDIDUSA`).
9990#[derive(Debug, Clone, Default, serde::Deserialize)]
9991pub struct BackOrderDIDUSAResponse {
9992    #[serde(
9993        default,
9994        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
9995    )]
9996    pub status: Option<String>,
9997}
9998
9999/// Response body for [`Client::cancel_did`] (wire method `cancelDID`).
10000#[derive(Debug, Clone, Default, serde::Deserialize)]
10001pub struct CancelDIDResponse {
10002    #[serde(
10003        default,
10004        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10005    )]
10006    pub status: Option<String>,
10007}
10008
10009/// Response body for [`Client::cancel_fax_number`] (wire method `cancelFaxNumber`).
10010#[derive(Debug, Clone, Default, serde::Deserialize)]
10011pub struct CancelFAXNumberResponse {
10012    #[serde(
10013        default,
10014        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10015    )]
10016    pub status: Option<String>,
10017    #[serde(
10018        default,
10019        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10020    )]
10021    pub deleted_did: Option<String>,
10022}
10023
10024/// Response body for [`Client::connect_did`] (wire method `connectDID`).
10025#[derive(Debug, Clone, Default, serde::Deserialize)]
10026pub struct ConnectDIDResponse {
10027    #[serde(
10028        default,
10029        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10030    )]
10031    pub status: Option<String>,
10032}
10033
10034/// Response body for [`Client::connect_fax`] (wire method `connectFAX`).
10035#[derive(Debug, Clone, Default, serde::Deserialize)]
10036pub struct ConnectFAXResponse {
10037    #[serde(
10038        default,
10039        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10040    )]
10041    pub status: Option<String>,
10042}
10043
10044/// Response body for [`Client::create_sub_account`] (wire method `createSubAccount`).
10045#[derive(Debug, Clone, Default, serde::Deserialize)]
10046pub struct CreateSubAccountResponse {
10047    #[serde(
10048        default,
10049        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10050    )]
10051    pub status: Option<String>,
10052    #[serde(
10053        default,
10054        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
10055    )]
10056    pub id: Option<u64>,
10057    #[serde(
10058        default,
10059        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10060    )]
10061    pub account: Option<String>,
10062}
10063
10064/// Response body for [`Client::create_voicemail`] (wire method `createVoicemail`).
10065#[derive(Debug, Clone, Default, serde::Deserialize)]
10066pub struct CreateVoicemailResponse {
10067    #[serde(
10068        default,
10069        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10070    )]
10071    pub status: Option<String>,
10072}
10073
10074/// Response body for [`Client::del_call_hunting`] (wire method `delCallHunting`).
10075#[derive(Debug, Clone, Default, serde::Deserialize)]
10076pub struct DelCallHuntingResponse {
10077    #[serde(
10078        default,
10079        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10080    )]
10081    pub status: Option<String>,
10082}
10083
10084/// Response body for [`Client::del_call_parking`] (wire method `delCallParking`).
10085#[derive(Debug, Clone, Default, serde::Deserialize)]
10086pub struct DelCallParkingResponse {
10087    #[serde(
10088        default,
10089        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10090    )]
10091    pub status: Option<String>,
10092}
10093
10094/// Response body for [`Client::del_call_recording`] (wire method `delCallRecording`).
10095#[derive(Debug, Clone, Default, serde::Deserialize)]
10096pub struct DelCallRecordingResponse {
10097    #[serde(
10098        default,
10099        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10100    )]
10101    pub status: Option<String>,
10102}
10103
10104/// Response body for [`Client::del_callback`] (wire method `delCallback`).
10105#[derive(Debug, Clone, Default, serde::Deserialize)]
10106pub struct DelCallbackResponse {
10107    #[serde(
10108        default,
10109        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10110    )]
10111    pub status: Option<String>,
10112}
10113
10114/// Response body for [`Client::del_caller_id_filtering`] (wire method `delCallerIDFiltering`).
10115#[derive(Debug, Clone, Default, serde::Deserialize)]
10116pub struct DelCallerIDFilteringResponse {
10117    #[serde(
10118        default,
10119        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10120    )]
10121    pub status: Option<String>,
10122}
10123
10124/// Response body for [`Client::del_client`] (wire method `delClient`).
10125#[derive(Debug, Clone, Default, serde::Deserialize)]
10126pub struct DelClientResponse {
10127    #[serde(
10128        default,
10129        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10130    )]
10131    pub status: Option<String>,
10132}
10133
10134/// Response body for [`Client::del_conference`] (wire method `delConference`).
10135#[derive(Debug, Clone, Default, serde::Deserialize)]
10136pub struct DelConferenceResponse {
10137    #[serde(
10138        default,
10139        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10140    )]
10141    pub status: Option<String>,
10142}
10143
10144/// Response body for [`Client::del_conference_member`] (wire method `delConferenceMember`).
10145#[derive(Debug, Clone, Default, serde::Deserialize)]
10146pub struct DelConferenceMemberResponse {
10147    #[serde(
10148        default,
10149        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10150    )]
10151    pub status: Option<String>,
10152}
10153
10154/// Response body for [`Client::del_disa`] (wire method `delDISA`).
10155#[derive(Debug, Clone, Default, serde::Deserialize)]
10156pub struct DelDISAResponse {
10157    #[serde(
10158        default,
10159        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10160    )]
10161    pub status: Option<String>,
10162}
10163
10164/// Response body for [`Client::del_email_to_fax`] (wire method `delEmailToFax`).
10165#[derive(Debug, Clone, Default, serde::Deserialize)]
10166pub struct DelEmailToFAXResponse {
10167    #[serde(
10168        default,
10169        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10170    )]
10171    pub status: Option<String>,
10172}
10173
10174/// Response body for [`Client::del_fax_folder`] (wire method `delFaxFolder`).
10175#[derive(Debug, Clone, Default, serde::Deserialize)]
10176pub struct DelFAXFolderResponse {
10177    #[serde(
10178        default,
10179        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10180    )]
10181    pub status: Option<String>,
10182}
10183
10184/// Response body for [`Client::del_forwarding`] (wire method `delForwarding`).
10185#[derive(Debug, Clone, Default, serde::Deserialize)]
10186pub struct DelForwardingResponse {
10187    #[serde(
10188        default,
10189        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10190    )]
10191    pub status: Option<String>,
10192}
10193
10194/// Response body for [`Client::del_ivr`] (wire method `delIVR`).
10195#[derive(Debug, Clone, Default, serde::Deserialize)]
10196pub struct DelIVRResponse {
10197    #[serde(
10198        default,
10199        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10200    )]
10201    pub status: Option<String>,
10202}
10203
10204/// Response body for [`Client::del_location`] (wire method `delLocation`).
10205#[derive(Debug, Clone, Default, serde::Deserialize)]
10206pub struct DelLocationResponse {
10207    #[serde(
10208        default,
10209        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10210    )]
10211    pub status: Option<String>,
10212}
10213
10214/// Response body for [`Client::del_member_from_conference`] (wire method `delMemberFromConference`).
10215#[derive(Debug, Clone, Default, serde::Deserialize)]
10216pub struct DelMemberFromConferenceResponse {
10217    #[serde(
10218        default,
10219        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10220    )]
10221    pub status: Option<String>,
10222}
10223
10224/// Response body for [`Client::del_messages`] (wire method `delMessages`).
10225#[derive(Debug, Clone, Default, serde::Deserialize)]
10226pub struct DelMessagesResponse {
10227    #[serde(
10228        default,
10229        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10230    )]
10231    pub status: Option<String>,
10232}
10233
10234/// Response body for [`Client::del_music_on_hold`] (wire method `delMusicOnHold`).
10235#[derive(Debug, Clone, Default, serde::Deserialize)]
10236pub struct DelMusicOnHoldResponse {
10237    #[serde(
10238        default,
10239        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10240    )]
10241    pub status: Option<String>,
10242}
10243
10244/// Response body for [`Client::del_phonebook`] (wire method `delPhonebook`).
10245#[derive(Debug, Clone, Default, serde::Deserialize)]
10246pub struct DelPhonebookResponse {
10247    #[serde(
10248        default,
10249        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10250    )]
10251    pub status: Option<String>,
10252}
10253
10254/// Response body for [`Client::del_phonebook_group`] (wire method `delPhonebookGroup`).
10255#[derive(Debug, Clone, Default, serde::Deserialize)]
10256pub struct DelPhonebookGroupResponse {
10257    #[serde(
10258        default,
10259        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10260    )]
10261    pub status: Option<String>,
10262}
10263
10264/// Response body for [`Client::del_queue`] (wire method `delQueue`).
10265#[derive(Debug, Clone, Default, serde::Deserialize)]
10266pub struct DelQueueResponse {
10267    #[serde(
10268        default,
10269        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10270    )]
10271    pub status: Option<String>,
10272}
10273
10274/// Response body for [`Client::del_recording`] (wire method `delRecording`).
10275#[derive(Debug, Clone, Default, serde::Deserialize)]
10276pub struct DelRecordingResponse {
10277    #[serde(
10278        default,
10279        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10280    )]
10281    pub status: Option<String>,
10282}
10283
10284/// Response body for [`Client::del_ring_group`] (wire method `delRingGroup`).
10285#[derive(Debug, Clone, Default, serde::Deserialize)]
10286pub struct DelRingGroupResponse {
10287    #[serde(
10288        default,
10289        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10290    )]
10291    pub status: Option<String>,
10292}
10293
10294/// Response body for [`Client::del_sip_uri`] (wire method `delSIPURI`).
10295#[derive(Debug, Clone, Default, serde::Deserialize)]
10296pub struct DelSIPURIResponse {
10297    #[serde(
10298        default,
10299        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10300    )]
10301    pub status: Option<String>,
10302}
10303
10304/// Response body for [`Client::del_static_member`] (wire method `delStaticMember`).
10305#[derive(Debug, Clone, Default, serde::Deserialize)]
10306pub struct DelStaticMemberResponse {
10307    #[serde(
10308        default,
10309        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10310    )]
10311    pub status: Option<String>,
10312}
10313
10314/// Response body for [`Client::del_sub_account`] (wire method `delSubAccount`).
10315#[derive(Debug, Clone, Default, serde::Deserialize)]
10316pub struct DelSubAccountResponse {
10317    #[serde(
10318        default,
10319        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10320    )]
10321    pub status: Option<String>,
10322}
10323
10324/// Response body for [`Client::del_time_condition`] (wire method `delTimeCondition`).
10325#[derive(Debug, Clone, Default, serde::Deserialize)]
10326pub struct DelTimeConditionResponse {
10327    #[serde(
10328        default,
10329        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10330    )]
10331    pub status: Option<String>,
10332}
10333
10334/// Response body for [`Client::del_voicemail`] (wire method `delVoicemail`).
10335#[derive(Debug, Clone, Default, serde::Deserialize)]
10336pub struct DelVoicemailResponse {
10337    #[serde(
10338        default,
10339        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10340    )]
10341    pub status: Option<String>,
10342}
10343
10344/// Response body for [`Client::delete_fax_message`] (wire method `deleteFaxMessage`).
10345#[derive(Debug, Clone, Default, serde::Deserialize)]
10346pub struct DeleteFAXMessageResponse {
10347    #[serde(
10348        default,
10349        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10350    )]
10351    pub status: Option<String>,
10352}
10353
10354/// Response body for [`Client::delete_mms`] (wire method `deleteMMS`).
10355#[derive(Debug, Clone, Default, serde::Deserialize)]
10356pub struct DeleteMMSResponse {
10357    #[serde(
10358        default,
10359        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10360    )]
10361    pub status: Option<String>,
10362}
10363
10364/// Response body for [`Client::delete_sms`] (wire method `deleteSMS`).
10365#[derive(Debug, Clone, Default, serde::Deserialize)]
10366pub struct DeleteSMSResponse {
10367    #[serde(
10368        default,
10369        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10370    )]
10371    pub status: Option<String>,
10372}
10373
10374/// Response body for [`Client::e911_address_types`] (wire method `e911AddressTypes`).
10375#[derive(Debug, Clone, Default, serde::Deserialize)]
10376pub struct E911AddressTypesResponseType {
10377    #[serde(
10378        default,
10379        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10380    )]
10381    pub value: Option<String>,
10382    #[serde(
10383        default,
10384        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10385    )]
10386    pub description: Option<String>,
10387}
10388
10389#[derive(Debug, Clone, Default, serde::Deserialize)]
10390pub struct E911AddressTypesResponse {
10391    #[serde(
10392        default,
10393        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10394    )]
10395    pub status: Option<String>,
10396    #[serde(
10397        default,
10398        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
10399    )]
10400    pub types: Vec<E911AddressTypesResponseType>,
10401}
10402
10403/// Response body for [`Client::e911_cancel`] (wire method `e911Cancel`).
10404#[derive(Debug, Clone, Default, serde::Deserialize)]
10405pub struct E911CancelResponse {
10406    #[serde(
10407        default,
10408        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10409    )]
10410    pub status: Option<String>,
10411}
10412
10413/// Response body for [`Client::e911_info`] (wire method `e911Info`).
10414#[derive(Debug, Clone, Default, serde::Deserialize)]
10415pub struct E911InfoResponseInfo {
10416    #[serde(
10417        default,
10418        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10419    )]
10420    pub did: Option<String>,
10421    #[serde(
10422        default,
10423        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10424    )]
10425    pub status: Option<String>,
10426    #[serde(
10427        default,
10428        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10429    )]
10430    pub full_name: Option<String>,
10431    #[serde(
10432        default,
10433        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10434    )]
10435    pub street_number: Option<String>,
10436    #[serde(
10437        default,
10438        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10439    )]
10440    pub street_name: Option<String>,
10441    #[serde(
10442        default,
10443        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10444    )]
10445    pub address_type: Option<String>,
10446    #[serde(
10447        default,
10448        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10449    )]
10450    pub address_number: Option<String>,
10451    #[serde(
10452        default,
10453        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10454    )]
10455    pub city: Option<String>,
10456    #[serde(
10457        default,
10458        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10459    )]
10460    pub state: Option<String>,
10461    #[serde(
10462        default,
10463        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10464    )]
10465    pub zip_code: Option<String>,
10466    #[serde(
10467        default,
10468        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10469    )]
10470    pub country: Option<String>,
10471    #[serde(
10472        default,
10473        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10474    )]
10475    pub language: Option<String>,
10476    #[serde(
10477        default,
10478        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10479    )]
10480    pub email: Option<String>,
10481    #[serde(
10482        default,
10483        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10484    )]
10485    pub other_info: Option<String>,
10486}
10487
10488#[derive(Debug, Clone, Default, serde::Deserialize)]
10489pub struct E911InfoResponse {
10490    #[serde(
10491        default,
10492        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10493    )]
10494    pub status: Option<String>,
10495    #[serde(default)]
10496    pub info: Option<E911InfoResponseInfo>,
10497}
10498
10499/// Response body for [`Client::e911_provision`] (wire method `e911Provision`).
10500#[derive(Debug, Clone, Default, serde::Deserialize)]
10501pub struct E911ProvisionResponse {
10502    #[serde(
10503        default,
10504        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10505    )]
10506    pub status: Option<String>,
10507}
10508
10509/// Response body for [`Client::e911_provision_manually`] (wire method `e911ProvisionManually`).
10510#[derive(Debug, Clone, Default, serde::Deserialize)]
10511pub struct E911ProvisionManuallyResponse {
10512    #[serde(
10513        default,
10514        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10515    )]
10516    pub status: Option<String>,
10517}
10518
10519/// Response body for [`Client::e911_update`] (wire method `e911Update`).
10520#[derive(Debug, Clone, Default, serde::Deserialize)]
10521pub struct E911UpdateResponse {
10522    #[serde(
10523        default,
10524        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10525    )]
10526    pub status: Option<String>,
10527}
10528
10529/// Response body for [`Client::e911_validate`] (wire method `e911Validate`).
10530#[derive(Debug, Clone, Default, serde::Deserialize)]
10531pub struct E911ValidateResponse {
10532    #[serde(
10533        default,
10534        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10535    )]
10536    pub status: Option<String>,
10537}
10538
10539/// Response body for [`Client::get_allowed_codecs`] (wire method `getAllowedCodecs`).
10540#[derive(Debug, Clone, Default, serde::Deserialize)]
10541pub struct GetAllowedCodecsResponseAllowedCodec {
10542    #[serde(
10543        default,
10544        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10545    )]
10546    pub value: Option<String>,
10547    #[serde(
10548        default,
10549        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10550    )]
10551    pub description: Option<String>,
10552}
10553
10554#[derive(Debug, Clone, Default, serde::Deserialize)]
10555pub struct GetAllowedCodecsResponse {
10556    #[serde(
10557        default,
10558        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10559    )]
10560    pub status: Option<String>,
10561    #[serde(
10562        default,
10563        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
10564    )]
10565    pub allowed_codecs: Vec<GetAllowedCodecsResponseAllowedCodec>,
10566}
10567
10568/// Response body for [`Client::get_auth_types`] (wire method `getAuthTypes`).
10569#[derive(Debug, Clone, Default, serde::Deserialize)]
10570pub struct GetAuthTypesResponseAuthType {
10571    #[serde(
10572        default,
10573        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
10574    )]
10575    pub value: Option<u64>,
10576    #[serde(
10577        default,
10578        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10579    )]
10580    pub description: Option<String>,
10581}
10582
10583#[derive(Debug, Clone, Default, serde::Deserialize)]
10584pub struct GetAuthTypesResponse {
10585    #[serde(
10586        default,
10587        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10588    )]
10589    pub status: Option<String>,
10590    #[serde(
10591        default,
10592        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
10593    )]
10594    pub auth_types: Vec<GetAuthTypesResponseAuthType>,
10595}
10596
10597/// Response body for [`Client::get_back_orders`] (wire method `getBackOrders`).
10598#[derive(Debug, Clone, Default, serde::Deserialize)]
10599pub struct GetBackOrdersResponseBackOrder {
10600    #[serde(
10601        default,
10602        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
10603    )]
10604    pub id: Option<u64>,
10605    #[serde(
10606        default,
10607        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10608    )]
10609    pub description: Option<String>,
10610    #[serde(
10611        default,
10612        deserialize_with = "crate::responses::deserialize_opt_routing"
10613    )]
10614    pub routing: Option<crate::Routing>,
10615    #[serde(
10616        default,
10617        deserialize_with = "crate::responses::deserialize_opt_routing"
10618    )]
10619    pub failover_busy: Option<crate::Routing>,
10620    #[serde(
10621        default,
10622        deserialize_with = "crate::responses::deserialize_opt_routing"
10623    )]
10624    pub failover_unreachable: Option<crate::Routing>,
10625    #[serde(
10626        default,
10627        deserialize_with = "crate::responses::deserialize_opt_routing"
10628    )]
10629    pub failover_noanswer: Option<crate::Routing>,
10630    #[serde(
10631        default,
10632        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
10633    )]
10634    pub voicemail: Option<u64>,
10635    #[serde(
10636        default,
10637        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
10638    )]
10639    pub pop: Option<u64>,
10640    #[serde(
10641        default,
10642        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
10643    )]
10644    pub dialtime: Option<u64>,
10645    #[serde(
10646        default,
10647        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
10648    )]
10649    pub cnam: Option<u64>,
10650    #[serde(default, deserialize_with = "deserialize_opt_did_billing_type")]
10651    pub billing_type: Option<DidBillingType>,
10652    #[serde(
10653        default,
10654        deserialize_with = "crate::responses::deserialize_opt_datetime"
10655    )]
10656    pub order_date: Option<chrono::NaiveDateTime>,
10657}
10658
10659#[derive(Debug, Clone, Default, serde::Deserialize)]
10660pub struct GetBackOrdersResponse {
10661    #[serde(
10662        default,
10663        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10664    )]
10665    pub status: Option<String>,
10666    #[serde(
10667        default,
10668        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
10669    )]
10670    pub quantity: Option<u64>,
10671    #[serde(
10672        default,
10673        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
10674    )]
10675    pub back_orders: Vec<GetBackOrdersResponseBackOrder>,
10676}
10677
10678/// Response body for [`Client::get_balance`] (wire method `getBalance`).
10679#[derive(Debug, Clone, Default, serde::Deserialize)]
10680pub struct GetBalanceResponseBalance {
10681    #[serde(
10682        default,
10683        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
10684    )]
10685    pub current_balance: Option<rust_decimal::Decimal>,
10686    #[serde(
10687        default,
10688        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
10689    )]
10690    pub spent_total: Option<rust_decimal::Decimal>,
10691    #[serde(
10692        default,
10693        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
10694    )]
10695    pub calls_total: Option<u64>,
10696    #[serde(
10697        default,
10698        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10699    )]
10700    pub time_total: Option<String>,
10701    #[serde(
10702        default,
10703        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
10704    )]
10705    pub spent_today: Option<rust_decimal::Decimal>,
10706    #[serde(
10707        default,
10708        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
10709    )]
10710    pub calls_today: Option<u64>,
10711    #[serde(
10712        default,
10713        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10714    )]
10715    pub time_today: Option<String>,
10716}
10717
10718#[derive(Debug, Clone, Default, serde::Deserialize)]
10719pub struct GetBalanceResponse {
10720    #[serde(
10721        default,
10722        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10723    )]
10724    pub status: Option<String>,
10725    #[serde(default)]
10726    pub balance: Option<GetBalanceResponseBalance>,
10727}
10728
10729/// Response body for [`Client::get_balance_management`] (wire method `getBalanceManagement`).
10730#[derive(Debug, Clone, Default, serde::Deserialize)]
10731pub struct GetBalanceManagementResponseBalanceManagement {
10732    #[serde(
10733        default,
10734        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
10735    )]
10736    pub value: Option<u64>,
10737    #[serde(
10738        default,
10739        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10740    )]
10741    pub description: Option<String>,
10742}
10743
10744#[derive(Debug, Clone, Default, serde::Deserialize)]
10745pub struct GetBalanceManagementResponse {
10746    #[serde(
10747        default,
10748        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10749    )]
10750    pub status: Option<String>,
10751    #[serde(
10752        default,
10753        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
10754    )]
10755    pub balance_management: Vec<GetBalanceManagementResponseBalanceManagement>,
10756}
10757
10758/// Response body for [`Client::get_cdr`] (wire method `getCDR`).
10759#[derive(Debug, Clone, Default, serde::Deserialize)]
10760pub struct GetCDRResponseCDR {
10761    #[serde(
10762        default,
10763        deserialize_with = "crate::responses::deserialize_opt_datetime"
10764    )]
10765    pub date: Option<chrono::NaiveDateTime>,
10766    #[serde(
10767        default,
10768        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10769    )]
10770    pub callerid: Option<String>,
10771    #[serde(
10772        default,
10773        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10774    )]
10775    pub destination: Option<String>,
10776    #[serde(
10777        default,
10778        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10779    )]
10780    pub description: Option<String>,
10781    #[serde(
10782        default,
10783        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10784    )]
10785    pub account: Option<String>,
10786    #[serde(
10787        default,
10788        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10789    )]
10790    pub disposition: Option<String>,
10791    #[serde(
10792        default,
10793        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10794    )]
10795    pub duration: Option<String>,
10796    #[serde(
10797        default,
10798        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
10799    )]
10800    pub seconds: Option<u64>,
10801    #[serde(
10802        default,
10803        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
10804    )]
10805    pub rate: Option<rust_decimal::Decimal>,
10806    #[serde(
10807        default,
10808        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
10809    )]
10810    pub total: Option<rust_decimal::Decimal>,
10811    #[serde(
10812        default,
10813        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10814    )]
10815    pub uniqueid: Option<String>,
10816    #[serde(
10817        default,
10818        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10819    )]
10820    pub destination_type: Option<String>,
10821    #[serde(
10822        default,
10823        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10824    )]
10825    pub call_logs: Option<String>,
10826}
10827
10828#[derive(Debug, Clone, Default, serde::Deserialize)]
10829pub struct GetCDRResponse {
10830    #[serde(
10831        default,
10832        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10833    )]
10834    pub status: Option<String>,
10835    #[serde(
10836        default,
10837        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
10838    )]
10839    pub cdr: Vec<GetCDRResponseCDR>,
10840}
10841
10842/// Response body for [`Client::get_call_accounts`] (wire method `getCallAccounts`).
10843#[derive(Debug, Clone, Default, serde::Deserialize)]
10844pub struct GetCallAccountsResponseAccount {
10845    #[serde(
10846        default,
10847        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10848    )]
10849    pub value: Option<String>,
10850    #[serde(
10851        default,
10852        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10853    )]
10854    pub description: Option<String>,
10855}
10856
10857#[derive(Debug, Clone, Default, serde::Deserialize)]
10858pub struct GetCallAccountsResponse {
10859    #[serde(
10860        default,
10861        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10862    )]
10863    pub status: Option<String>,
10864    #[serde(
10865        default,
10866        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
10867    )]
10868    pub accounts: Vec<GetCallAccountsResponseAccount>,
10869}
10870
10871/// Response body for [`Client::get_call_billing`] (wire method `getCallBilling`).
10872#[derive(Debug, Clone, Default, serde::Deserialize)]
10873pub struct GetCallBillingResponseCallBilling {
10874    #[serde(
10875        default,
10876        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10877    )]
10878    pub value: Option<String>,
10879    #[serde(
10880        default,
10881        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10882    )]
10883    pub description: Option<String>,
10884}
10885
10886#[derive(Debug, Clone, Default, serde::Deserialize)]
10887pub struct GetCallBillingResponse {
10888    #[serde(
10889        default,
10890        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10891    )]
10892    pub status: Option<String>,
10893    #[serde(
10894        default,
10895        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
10896    )]
10897    pub call_billing: Vec<GetCallBillingResponseCallBilling>,
10898}
10899
10900/// Response body for [`Client::get_call_huntings`] (wire method `getCallHuntings`).
10901#[derive(Debug, Clone, Default, serde::Deserialize)]
10902pub struct GetCallHuntingsResponseCallHunting {
10903    #[serde(
10904        default,
10905        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
10906    )]
10907    pub callhunting: Option<u64>,
10908    #[serde(
10909        default,
10910        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10911    )]
10912    pub description: Option<String>,
10913    #[serde(
10914        default,
10915        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10916    )]
10917    pub members: Option<String>,
10918    #[serde(
10919        default,
10920        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10921    )]
10922    pub ring_time: Option<String>,
10923    #[serde(default, deserialize_with = "deserialize_opt_ring_group_order")]
10924    pub order: Option<RingGroupOrder>,
10925    #[serde(
10926        default,
10927        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10928    )]
10929    pub press: Option<String>,
10930    #[serde(
10931        default,
10932        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10933    )]
10934    pub music: Option<String>,
10935    #[serde(
10936        default,
10937        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10938    )]
10939    pub recording: Option<String>,
10940    #[serde(
10941        default,
10942        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10943    )]
10944    pub language: Option<String>,
10945}
10946
10947#[derive(Debug, Clone, Default, serde::Deserialize)]
10948pub struct GetCallHuntingsResponse {
10949    #[serde(
10950        default,
10951        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10952    )]
10953    pub status: Option<String>,
10954    #[serde(
10955        default,
10956        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
10957    )]
10958    pub call_hunting: Vec<GetCallHuntingsResponseCallHunting>,
10959}
10960
10961/// Response body for [`Client::get_call_parking`] (wire method `getCallParking`).
10962#[derive(Debug, Clone, Default, serde::Deserialize)]
10963pub struct GetCallParkingResponseCallHunting {
10964    #[serde(
10965        default,
10966        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
10967    )]
10968    pub callparking: Option<u64>,
10969    #[serde(
10970        default,
10971        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10972    )]
10973    pub name: Option<String>,
10974    #[serde(
10975        default,
10976        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
10977    )]
10978    pub timeout: Option<u64>,
10979    #[serde(
10980        default,
10981        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10982    )]
10983    pub musiconhold: Option<String>,
10984    #[serde(
10985        default,
10986        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10987    )]
10988    pub failover: Option<String>,
10989    #[serde(
10990        default,
10991        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10992    )]
10993    pub language: Option<String>,
10994    #[serde(
10995        default,
10996        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
10997    )]
10998    pub destination: Option<String>,
10999    #[serde(
11000        default,
11001        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11002    )]
11003    pub delay: Option<u64>,
11004    #[serde(
11005        default,
11006        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11007    )]
11008    pub blf_lamps: Option<u64>,
11009}
11010
11011#[derive(Debug, Clone, Default, serde::Deserialize)]
11012pub struct GetCallParkingResponse {
11013    #[serde(
11014        default,
11015        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11016    )]
11017    pub status: Option<String>,
11018    #[serde(
11019        default,
11020        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11021    )]
11022    pub call_hunting: Vec<GetCallParkingResponseCallHunting>,
11023}
11024
11025/// Response body for [`Client::get_call_recording`] (wire method `getCallRecording`).
11026#[derive(Debug, Clone, Default, serde::Deserialize)]
11027pub struct GetCallRecordingResponse {
11028    #[serde(
11029        default,
11030        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11031    )]
11032    pub status: Option<String>,
11033    #[serde(
11034        default,
11035        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11036    )]
11037    pub callrecording: Option<String>,
11038    #[serde(
11039        default,
11040        deserialize_with = "crate::responses::deserialize_opt_datetime"
11041    )]
11042    pub datetime: Option<chrono::NaiveDateTime>,
11043    #[serde(
11044        default,
11045        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11046    )]
11047    pub destination: Option<String>,
11048    #[serde(
11049        default,
11050        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11051    )]
11052    pub r#type: Option<String>,
11053    #[serde(
11054        default,
11055        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11056    )]
11057    pub subaccount: Option<u64>,
11058    #[serde(
11059        default,
11060        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11061    )]
11062    pub duration: Option<String>,
11063    #[serde(
11064        default,
11065        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11066    )]
11067    pub base64file: Option<String>,
11068}
11069
11070/// Response body for [`Client::get_call_recordings`] (wire method `getCallRecordings`).
11071#[derive(Debug, Clone, Default, serde::Deserialize)]
11072pub struct GetCallRecordingsResponseRecording {
11073    #[serde(
11074        default,
11075        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11076    )]
11077    pub callrecording: Option<String>,
11078    #[serde(
11079        default,
11080        deserialize_with = "crate::responses::deserialize_opt_datetime"
11081    )]
11082    pub datetime: Option<chrono::NaiveDateTime>,
11083    #[serde(
11084        default,
11085        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11086    )]
11087    pub destination: Option<String>,
11088    #[serde(
11089        default,
11090        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11091    )]
11092    pub r#type: Option<String>,
11093    #[serde(
11094        default,
11095        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11096    )]
11097    pub subaccount: Option<u64>,
11098    #[serde(
11099        default,
11100        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11101    )]
11102    pub duration: Option<String>,
11103}
11104
11105#[derive(Debug, Clone, Default, serde::Deserialize)]
11106pub struct GetCallRecordingsResponse {
11107    #[serde(
11108        default,
11109        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11110    )]
11111    pub status: Option<String>,
11112    #[serde(
11113        default,
11114        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11115    )]
11116    pub recordings: Vec<GetCallRecordingsResponseRecording>,
11117}
11118
11119/// Response body for [`Client::get_call_transcriptions`] (wire method `getCallTranscriptions`).
11120#[derive(Debug, Clone, Default, serde::Deserialize)]
11121pub struct GetCallTranscriptionsResponseTranscriptionRecognizedPhrase {
11122    #[serde(
11123        default,
11124        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11125    )]
11126    pub time: Option<String>,
11127    #[serde(
11128        default,
11129        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
11130    )]
11131    pub duration: Option<rust_decimal::Decimal>,
11132    #[serde(
11133        default,
11134        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11135    )]
11136    pub speaker: Option<u64>,
11137    #[serde(
11138        default,
11139        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11140    )]
11141    pub phrase: Option<String>,
11142}
11143
11144#[derive(Debug, Clone, Default, serde::Deserialize)]
11145pub struct GetCallTranscriptionsResponseTranscription {
11146    #[serde(
11147        default,
11148        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11149    )]
11150    pub date: Option<String>,
11151    #[serde(
11152        default,
11153        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11154    )]
11155    pub duration: Option<String>,
11156    #[serde(
11157        default,
11158        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11159    )]
11160    pub speakers: Vec<String>,
11161    #[serde(
11162        default,
11163        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11164    )]
11165    pub locale: Option<String>,
11166    #[serde(
11167        default,
11168        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11169    )]
11170    pub confidence: Option<String>,
11171    #[serde(
11172        default,
11173        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11174    )]
11175    pub recognized_phrases: Vec<GetCallTranscriptionsResponseTranscriptionRecognizedPhrase>,
11176}
11177
11178#[derive(Debug, Clone, Default, serde::Deserialize)]
11179pub struct GetCallTranscriptionsResponse {
11180    #[serde(
11181        default,
11182        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11183    )]
11184    pub status: Option<String>,
11185    #[serde(
11186        default,
11187        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11188    )]
11189    pub transcriptions: Vec<GetCallTranscriptionsResponseTranscription>,
11190}
11191
11192/// Response body for [`Client::get_call_types`] (wire method `getCallTypes`).
11193#[derive(Debug, Clone, Default, serde::Deserialize)]
11194pub struct GetCallTypesResponseCallType {
11195    #[serde(
11196        default,
11197        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11198    )]
11199    pub value: Option<String>,
11200    #[serde(
11201        default,
11202        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11203    )]
11204    pub description: Option<String>,
11205}
11206
11207#[derive(Debug, Clone, Default, serde::Deserialize)]
11208pub struct GetCallTypesResponse {
11209    #[serde(
11210        default,
11211        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11212    )]
11213    pub status: Option<String>,
11214    #[serde(
11215        default,
11216        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11217    )]
11218    pub call_types: Vec<GetCallTypesResponseCallType>,
11219}
11220
11221/// Response body for [`Client::get_callbacks`] (wire method `getCallbacks`).
11222#[derive(Debug, Clone, Default, serde::Deserialize)]
11223pub struct GetCallbacksResponseCallback {
11224    #[serde(
11225        default,
11226        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11227    )]
11228    pub callback: Option<u64>,
11229    #[serde(
11230        default,
11231        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11232    )]
11233    pub description: Option<String>,
11234    #[serde(
11235        default,
11236        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11237    )]
11238    pub number: Option<String>,
11239    #[serde(
11240        default,
11241        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11242    )]
11243    pub delay_before: Option<u64>,
11244    #[serde(
11245        default,
11246        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11247    )]
11248    pub response_timeout: Option<u64>,
11249    #[serde(
11250        default,
11251        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11252    )]
11253    pub digit_timeout: Option<u64>,
11254    #[serde(
11255        default,
11256        deserialize_with = "crate::responses::deserialize_opt_string_sentinel_none"
11257    )]
11258    pub callerid_number: Option<String>,
11259}
11260
11261#[derive(Debug, Clone, Default, serde::Deserialize)]
11262pub struct GetCallbacksResponse {
11263    #[serde(
11264        default,
11265        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11266    )]
11267    pub status: Option<String>,
11268    #[serde(
11269        default,
11270        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11271    )]
11272    pub callbacks: Vec<GetCallbacksResponseCallback>,
11273}
11274
11275/// Response body for [`Client::get_caller_id_filtering`] (wire method `getCallerIDFiltering`).
11276#[derive(Debug, Clone, Default, serde::Deserialize)]
11277pub struct GetCallerIDFilteringResponseFiltering {
11278    #[serde(
11279        default,
11280        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11281    )]
11282    pub filtering: Option<u64>,
11283    #[serde(
11284        default,
11285        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11286    )]
11287    pub callerid: Option<String>,
11288    #[serde(
11289        default,
11290        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11291    )]
11292    pub did: Option<String>,
11293    #[serde(
11294        default,
11295        deserialize_with = "crate::responses::deserialize_opt_routing"
11296    )]
11297    pub routing: Option<crate::Routing>,
11298    #[serde(
11299        default,
11300        deserialize_with = "crate::responses::deserialize_opt_routing"
11301    )]
11302    pub failover_unreachable: Option<crate::Routing>,
11303    #[serde(
11304        default,
11305        deserialize_with = "crate::responses::deserialize_opt_routing"
11306    )]
11307    pub failover_busy: Option<crate::Routing>,
11308    #[serde(
11309        default,
11310        deserialize_with = "crate::responses::deserialize_opt_routing"
11311    )]
11312    pub failover_noanswer: Option<crate::Routing>,
11313    #[serde(
11314        default,
11315        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11316    )]
11317    pub note: Option<String>,
11318}
11319
11320#[derive(Debug, Clone, Default, serde::Deserialize)]
11321pub struct GetCallerIDFilteringResponse {
11322    #[serde(
11323        default,
11324        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11325    )]
11326    pub status: Option<String>,
11327    #[serde(
11328        default,
11329        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11330    )]
11331    pub filtering: Vec<GetCallerIDFilteringResponseFiltering>,
11332}
11333
11334/// Response body for [`Client::get_carriers`] (wire method `getCarriers`).
11335#[derive(Debug, Clone, Default, serde::Deserialize)]
11336pub struct GetCarriersResponseCarrier {
11337    #[serde(
11338        default,
11339        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11340    )]
11341    pub value: Option<u64>,
11342    #[serde(
11343        default,
11344        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11345    )]
11346    pub description: Option<String>,
11347}
11348
11349#[derive(Debug, Clone, Default, serde::Deserialize)]
11350pub struct GetCarriersResponse {
11351    #[serde(
11352        default,
11353        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11354    )]
11355    pub status: Option<String>,
11356    #[serde(
11357        default,
11358        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11359    )]
11360    pub carriers: Vec<GetCarriersResponseCarrier>,
11361}
11362
11363/// Response body for [`Client::get_charges`] (wire method `getCharges`).
11364#[derive(Debug, Clone, Default, serde::Deserialize)]
11365pub struct GetChargesResponseCharge {
11366    #[serde(
11367        default,
11368        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11369    )]
11370    pub id: Option<u64>,
11371    #[serde(default, deserialize_with = "crate::responses::deserialize_opt_date")]
11372    pub date: Option<chrono::NaiveDate>,
11373    #[serde(
11374        default,
11375        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
11376    )]
11377    pub amount: Option<rust_decimal::Decimal>,
11378    #[serde(
11379        default,
11380        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11381    )]
11382    pub description: Option<String>,
11383}
11384
11385#[derive(Debug, Clone, Default, serde::Deserialize)]
11386pub struct GetChargesResponse {
11387    #[serde(
11388        default,
11389        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11390    )]
11391    pub status: Option<String>,
11392    #[serde(
11393        default,
11394        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11395    )]
11396    pub charges: Vec<GetChargesResponseCharge>,
11397}
11398
11399/// Response body for [`Client::get_client_packages`] (wire method `getClientPackages`).
11400#[derive(Debug, Clone, Default, serde::Deserialize)]
11401pub struct GetClientPackagesResponsePackage {
11402    #[serde(
11403        default,
11404        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11405    )]
11406    pub value: Option<u64>,
11407    #[serde(
11408        default,
11409        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11410    )]
11411    pub description: Option<String>,
11412}
11413
11414#[derive(Debug, Clone, Default, serde::Deserialize)]
11415pub struct GetClientPackagesResponse {
11416    #[serde(
11417        default,
11418        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11419    )]
11420    pub status: Option<String>,
11421    #[serde(
11422        default,
11423        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11424    )]
11425    pub packages: Vec<GetClientPackagesResponsePackage>,
11426}
11427
11428/// Response body for [`Client::get_client_threshold`] (wire method `getClientThreshold`).
11429#[derive(Debug, Clone, Default, serde::Deserialize)]
11430pub struct GetClientThresholdResponseThresholdInformation {
11431    #[serde(
11432        default,
11433        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11434    )]
11435    pub threshold: Option<u64>,
11436    #[serde(
11437        default,
11438        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11439    )]
11440    pub email: Option<String>,
11441}
11442
11443#[derive(Debug, Clone, Default, serde::Deserialize)]
11444pub struct GetClientThresholdResponse {
11445    #[serde(
11446        default,
11447        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11448    )]
11449    pub status: Option<String>,
11450    #[serde(default)]
11451    pub threshold_information: Option<GetClientThresholdResponseThresholdInformation>,
11452}
11453
11454/// Response body for [`Client::get_clients`] (wire method `getClients`).
11455#[derive(Debug, Clone, Default, serde::Deserialize)]
11456pub struct GetClientsResponseClient {
11457    #[serde(
11458        default,
11459        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11460    )]
11461    pub client: Option<u64>,
11462    #[serde(
11463        default,
11464        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11465    )]
11466    pub email: Option<String>,
11467    #[serde(
11468        default,
11469        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11470    )]
11471    pub password: Option<String>,
11472    #[serde(
11473        default,
11474        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11475    )]
11476    pub company: Option<String>,
11477    #[serde(
11478        default,
11479        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11480    )]
11481    pub firstname: Option<String>,
11482    #[serde(
11483        default,
11484        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11485    )]
11486    pub lastname: Option<String>,
11487    #[serde(
11488        default,
11489        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11490    )]
11491    pub address: Option<String>,
11492    #[serde(
11493        default,
11494        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11495    )]
11496    pub city: Option<String>,
11497    #[serde(
11498        default,
11499        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11500    )]
11501    pub state: Option<String>,
11502    #[serde(
11503        default,
11504        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11505    )]
11506    pub country: Option<String>,
11507    #[serde(
11508        default,
11509        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11510    )]
11511    pub zip: Option<u64>,
11512    #[serde(
11513        default,
11514        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11515    )]
11516    pub phone_number: Option<String>,
11517    #[serde(
11518        default,
11519        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11520    )]
11521    pub balance_management: Option<u64>,
11522}
11523
11524#[derive(Debug, Clone, Default, serde::Deserialize)]
11525pub struct GetClientsResponse {
11526    #[serde(
11527        default,
11528        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11529    )]
11530    pub status: Option<String>,
11531    #[serde(
11532        default,
11533        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11534    )]
11535    pub clients: Vec<GetClientsResponseClient>,
11536}
11537
11538/// Response body for [`Client::get_conference`] (wire method `getConference`).
11539#[derive(Debug, Clone, Default, serde::Deserialize)]
11540pub struct GetConferenceResponseConference {
11541    #[serde(
11542        default,
11543        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11544    )]
11545    pub conference: Option<u64>,
11546    #[serde(
11547        default,
11548        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11549    )]
11550    pub name: Option<String>,
11551    #[serde(
11552        default,
11553        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11554    )]
11555    pub description: Option<String>,
11556    #[serde(
11557        default,
11558        deserialize_with = "crate::responses::deserialize_opt_max_members"
11559    )]
11560    pub max_members: Option<crate::MaxMembers>,
11561    #[serde(
11562        default,
11563        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11564    )]
11565    pub sound_join: Option<u64>,
11566    #[serde(
11567        default,
11568        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11569    )]
11570    pub sound_leave: Option<u64>,
11571    #[serde(
11572        default,
11573        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11574    )]
11575    pub sound_has_joined: Option<u64>,
11576    #[serde(
11577        default,
11578        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11579    )]
11580    pub sound_has_left: Option<u64>,
11581    #[serde(
11582        default,
11583        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11584    )]
11585    pub sound_kicked: Option<u64>,
11586    #[serde(
11587        default,
11588        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11589    )]
11590    pub sound_muted: Option<u64>,
11591    #[serde(
11592        default,
11593        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11594    )]
11595    pub sound_unmuted: Option<u64>,
11596    #[serde(
11597        default,
11598        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11599    )]
11600    pub sound_only_person: Option<u64>,
11601    #[serde(
11602        default,
11603        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11604    )]
11605    pub sound_only_one: Option<u64>,
11606    #[serde(
11607        default,
11608        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11609    )]
11610    pub sound_there_are: Option<u64>,
11611    #[serde(
11612        default,
11613        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11614    )]
11615    pub sound_other_in_party: Option<u64>,
11616    #[serde(
11617        default,
11618        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11619    )]
11620    pub sound_place_into_conference: Option<u64>,
11621    #[serde(
11622        default,
11623        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11624    )]
11625    pub sound_get_pin: Option<u64>,
11626    #[serde(
11627        default,
11628        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11629    )]
11630    pub sound_invalid_pin: Option<u64>,
11631    #[serde(
11632        default,
11633        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11634    )]
11635    pub sound_locked: Option<u64>,
11636    #[serde(
11637        default,
11638        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11639    )]
11640    pub sound_locked_now: Option<u64>,
11641    #[serde(
11642        default,
11643        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11644    )]
11645    pub sound_unlocked_now: Option<u64>,
11646    #[serde(
11647        default,
11648        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11649    )]
11650    pub sound_error_menu: Option<u64>,
11651    #[serde(
11652        default,
11653        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11654    )]
11655    pub sound_participants_muted: Option<u64>,
11656    #[serde(
11657        default,
11658        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11659    )]
11660    pub sound_participants_unmuted: Option<u64>,
11661    #[serde(
11662        default,
11663        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11664    )]
11665    pub language: Option<String>,
11666    #[serde(
11667        default,
11668        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11669    )]
11670    pub members: Option<String>,
11671}
11672
11673#[derive(Debug, Clone, Default, serde::Deserialize)]
11674pub struct GetConferenceResponse {
11675    #[serde(
11676        default,
11677        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11678    )]
11679    pub status: Option<String>,
11680    #[serde(
11681        default,
11682        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11683    )]
11684    pub conference: Vec<GetConferenceResponseConference>,
11685}
11686
11687/// Response body for [`Client::get_conference_members`] (wire method `getConferenceMembers`).
11688#[derive(Debug, Clone, Default, serde::Deserialize)]
11689pub struct GetConferenceMembersResponseMember {
11690    #[serde(
11691        default,
11692        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11693    )]
11694    pub member: Option<u64>,
11695    #[serde(
11696        default,
11697        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11698    )]
11699    pub name: Option<String>,
11700    #[serde(
11701        default,
11702        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11703    )]
11704    pub description: Option<String>,
11705    #[serde(
11706        default,
11707        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11708    )]
11709    pub pin: Option<u64>,
11710    #[serde(
11711        default,
11712        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
11713    )]
11714    pub announce_join_leave: Option<bool>,
11715    #[serde(
11716        default,
11717        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
11718    )]
11719    pub admin: Option<bool>,
11720    #[serde(
11721        default,
11722        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
11723    )]
11724    pub start_muted: Option<bool>,
11725    #[serde(
11726        default,
11727        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
11728    )]
11729    pub announce_user_count: Option<bool>,
11730    #[serde(
11731        default,
11732        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
11733    )]
11734    pub announce_only_user: Option<bool>,
11735    #[serde(
11736        default,
11737        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11738    )]
11739    pub moh_when_empty: Option<String>,
11740    #[serde(
11741        default,
11742        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
11743    )]
11744    pub quiet: Option<bool>,
11745    #[serde(
11746        default,
11747        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11748    )]
11749    pub announcement: Option<u64>,
11750    #[serde(
11751        default,
11752        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
11753    )]
11754    pub drop_silence: Option<bool>,
11755    #[serde(
11756        default,
11757        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11758    )]
11759    pub talking_threshold: Option<u64>,
11760    #[serde(
11761        default,
11762        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11763    )]
11764    pub silence_threshold: Option<u64>,
11765    #[serde(
11766        default,
11767        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
11768    )]
11769    pub talk_detection: Option<bool>,
11770    #[serde(
11771        default,
11772        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
11773    )]
11774    pub jitter_buffer: Option<bool>,
11775}
11776
11777#[derive(Debug, Clone, Default, serde::Deserialize)]
11778pub struct GetConferenceMembersResponse {
11779    #[serde(
11780        default,
11781        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11782    )]
11783    pub status: Option<String>,
11784    #[serde(
11785        default,
11786        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11787    )]
11788    pub members: Vec<GetConferenceMembersResponseMember>,
11789}
11790
11791/// Response body for [`Client::get_conference_recording_file`] (wire method `getConferenceRecordingFile`).
11792#[derive(Debug, Clone, Default, serde::Deserialize)]
11793pub struct GetConferenceRecordingFileResponseRecording {
11794    #[serde(
11795        default,
11796        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11797    )]
11798    pub recording: Option<u64>,
11799    #[serde(
11800        default,
11801        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11802    )]
11803    pub data: Option<String>,
11804}
11805
11806#[derive(Debug, Clone, Default, serde::Deserialize)]
11807pub struct GetConferenceRecordingFileResponse {
11808    #[serde(
11809        default,
11810        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11811    )]
11812    pub status: Option<String>,
11813    #[serde(
11814        default,
11815        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11816    )]
11817    pub recording: Vec<GetConferenceRecordingFileResponseRecording>,
11818}
11819
11820/// Response body for [`Client::get_conference_recordings`] (wire method `getConferenceRecordings`).
11821#[derive(Debug, Clone, Default, serde::Deserialize)]
11822pub struct GetConferenceRecordingsResponseRecording {
11823    #[serde(
11824        default,
11825        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11826    )]
11827    pub did: Option<String>,
11828    #[serde(
11829        default,
11830        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11831    )]
11832    pub recording: Option<u64>,
11833    #[serde(
11834        default,
11835        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11836    )]
11837    pub conference: Option<u64>,
11838    #[serde(
11839        default,
11840        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11841    )]
11842    pub duration: Option<u64>,
11843    #[serde(
11844        default,
11845        deserialize_with = "crate::responses::deserialize_opt_datetime"
11846    )]
11847    pub date: Option<chrono::NaiveDateTime>,
11848}
11849
11850#[derive(Debug, Clone, Default, serde::Deserialize)]
11851pub struct GetConferenceRecordingsResponse {
11852    #[serde(
11853        default,
11854        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11855    )]
11856    pub status: Option<String>,
11857    #[serde(
11858        default,
11859        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11860    )]
11861    pub recordings: Vec<GetConferenceRecordingsResponseRecording>,
11862}
11863
11864/// Response body for [`Client::get_countries`] (wire method `getCountries`).
11865#[derive(Debug, Clone, Default, serde::Deserialize)]
11866pub struct GetCountriesResponseCountry {
11867    #[serde(
11868        default,
11869        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11870    )]
11871    pub value: Option<String>,
11872    #[serde(
11873        default,
11874        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11875    )]
11876    pub description: Option<String>,
11877}
11878
11879#[derive(Debug, Clone, Default, serde::Deserialize)]
11880pub struct GetCountriesResponse {
11881    #[serde(
11882        default,
11883        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11884    )]
11885    pub status: Option<String>,
11886    #[serde(
11887        default,
11888        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11889    )]
11890    pub countries: Vec<GetCountriesResponseCountry>,
11891}
11892
11893/// Response body for [`Client::get_did_countries`] (wire method `getDIDCountries`).
11894#[derive(Debug, Clone, Default, serde::Deserialize)]
11895pub struct GetDIDCountriesResponseCountry {
11896    #[serde(
11897        default,
11898        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11899    )]
11900    pub value: Option<u64>,
11901    #[serde(
11902        default,
11903        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11904    )]
11905    pub description: Option<String>,
11906}
11907
11908#[derive(Debug, Clone, Default, serde::Deserialize)]
11909pub struct GetDIDCountriesResponse {
11910    #[serde(
11911        default,
11912        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11913    )]
11914    pub status: Option<String>,
11915    #[serde(
11916        default,
11917        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11918    )]
11919    pub countries: Vec<GetDIDCountriesResponseCountry>,
11920}
11921
11922/// Response body for [`Client::get_dids_can`] (wire method `getDIDsCAN`).
11923#[derive(Debug, Clone, Default, serde::Deserialize)]
11924pub struct GetDIDsCANResponseDID {
11925    #[serde(
11926        default,
11927        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11928    )]
11929    pub did: Option<String>,
11930    #[serde(
11931        default,
11932        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11933    )]
11934    pub ratecenter: Option<String>,
11935    #[serde(
11936        default,
11937        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11938    )]
11939    pub province: Option<String>,
11940    #[serde(
11941        default,
11942        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11943    )]
11944    pub province_description: Option<String>,
11945    #[serde(
11946        default,
11947        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
11948    )]
11949    pub perminute_monthly: Option<rust_decimal::Decimal>,
11950    #[serde(
11951        default,
11952        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
11953    )]
11954    pub perminute_minute: Option<rust_decimal::Decimal>,
11955    #[serde(
11956        default,
11957        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
11958    )]
11959    pub perminute_setup: Option<rust_decimal::Decimal>,
11960    #[serde(
11961        default,
11962        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
11963    )]
11964    pub flat_monthly: Option<rust_decimal::Decimal>,
11965    #[serde(
11966        default,
11967        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
11968    )]
11969    pub flat_minute: Option<rust_decimal::Decimal>,
11970    #[serde(
11971        default,
11972        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
11973    )]
11974    pub flat_setup: Option<rust_decimal::Decimal>,
11975    #[serde(
11976        default,
11977        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
11978    )]
11979    pub sms: Option<u64>,
11980}
11981
11982#[derive(Debug, Clone, Default, serde::Deserialize)]
11983pub struct GetDIDsCANResponse {
11984    #[serde(
11985        default,
11986        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
11987    )]
11988    pub status: Option<String>,
11989    #[serde(
11990        default,
11991        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
11992    )]
11993    pub dids: Vec<GetDIDsCANResponseDID>,
11994}
11995
11996/// Response body for [`Client::get_dids_info`] (wire method `getDIDsInfo`).
11997#[derive(Debug, Clone, Default, serde::Deserialize)]
11998pub struct GetDIDsInfoResponseDID {
11999    #[serde(
12000        default,
12001        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12002    )]
12003    pub did: Option<String>,
12004    #[serde(
12005        default,
12006        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12007    )]
12008    pub description: Option<String>,
12009    #[serde(
12010        default,
12011        deserialize_with = "crate::responses::deserialize_opt_routing"
12012    )]
12013    pub routing: Option<crate::Routing>,
12014    #[serde(
12015        default,
12016        deserialize_with = "crate::responses::deserialize_opt_routing"
12017    )]
12018    pub failover_busy: Option<crate::Routing>,
12019    #[serde(
12020        default,
12021        deserialize_with = "crate::responses::deserialize_opt_routing"
12022    )]
12023    pub failover_unreachable: Option<crate::Routing>,
12024    #[serde(
12025        default,
12026        deserialize_with = "crate::responses::deserialize_opt_routing"
12027    )]
12028    pub failover_noanswer: Option<crate::Routing>,
12029    #[serde(
12030        default,
12031        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12032    )]
12033    pub voicemail: Option<u64>,
12034    #[serde(
12035        default,
12036        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12037    )]
12038    pub pop: Option<u64>,
12039    #[serde(
12040        default,
12041        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12042    )]
12043    pub dialtime: Option<u64>,
12044    #[serde(
12045        default,
12046        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
12047    )]
12048    pub cnam: Option<bool>,
12049    #[serde(
12050        default,
12051        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12052    )]
12053    pub e911: Option<u64>,
12054    #[serde(
12055        default,
12056        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12057    )]
12058    pub callerid_prefix: Option<String>,
12059    #[serde(
12060        default,
12061        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12062    )]
12063    pub note: Option<String>,
12064    #[serde(
12065        default,
12066        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12067    )]
12068    pub port_out_pin: Option<u64>,
12069    #[serde(default, deserialize_with = "deserialize_opt_did_billing_type")]
12070    pub billing_type: Option<DidBillingType>,
12071    #[serde(default, deserialize_with = "crate::responses::deserialize_opt_date")]
12072    pub next_billing: Option<chrono::NaiveDate>,
12073    #[serde(
12074        default,
12075        deserialize_with = "crate::responses::deserialize_opt_datetime"
12076    )]
12077    pub order_date: Option<chrono::NaiveDateTime>,
12078    #[serde(
12079        default,
12080        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12081    )]
12082    pub reseller_account: Option<String>,
12083    #[serde(default, deserialize_with = "crate::responses::deserialize_opt_date")]
12084    pub reseller_next_billing: Option<chrono::NaiveDate>,
12085    #[serde(
12086        default,
12087        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12088    )]
12089    pub reseller_monthly: Option<rust_decimal::Decimal>,
12090    #[serde(
12091        default,
12092        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12093    )]
12094    pub reseller_minute: Option<rust_decimal::Decimal>,
12095    #[serde(
12096        default,
12097        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12098    )]
12099    pub reseller_setup: Option<rust_decimal::Decimal>,
12100    #[serde(
12101        default,
12102        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
12103    )]
12104    pub sms_available: Option<bool>,
12105    #[serde(
12106        default,
12107        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
12108    )]
12109    pub sms_enabled: Option<bool>,
12110    #[serde(
12111        default,
12112        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12113    )]
12114    pub sms_email: Option<String>,
12115    #[serde(
12116        default,
12117        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
12118    )]
12119    pub sms_email_enabled: Option<bool>,
12120    #[serde(
12121        default,
12122        deserialize_with = "crate::responses::deserialize_opt_string_sentinel_none"
12123    )]
12124    pub sms_forward: Option<String>,
12125    #[serde(
12126        default,
12127        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
12128    )]
12129    pub sms_forward_enabled: Option<bool>,
12130    #[serde(
12131        default,
12132        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12133    )]
12134    pub sms_url_callback: Option<String>,
12135    #[serde(
12136        default,
12137        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
12138    )]
12139    pub sms_url_callback_enabled: Option<bool>,
12140    #[serde(
12141        default,
12142        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
12143    )]
12144    pub sms_url_callback_retry: Option<bool>,
12145    #[serde(
12146        default,
12147        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
12148    )]
12149    pub smpp_enabled: Option<bool>,
12150    #[serde(
12151        default,
12152        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12153    )]
12154    pub smpp_url: Option<String>,
12155    #[serde(
12156        default,
12157        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12158    )]
12159    pub smpp_user: Option<String>,
12160    #[serde(
12161        default,
12162        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12163    )]
12164    pub smpp_pass: Option<String>,
12165    #[serde(
12166        default,
12167        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
12168    )]
12169    pub transcribe: Option<bool>,
12170    #[serde(
12171        default,
12172        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12173    )]
12174    pub transcription_locale: Option<String>,
12175    #[serde(
12176        default,
12177        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
12178    )]
12179    pub transcription_redaction: Option<bool>,
12180    #[serde(
12181        default,
12182        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
12183    )]
12184    pub transcription_summary: Option<bool>,
12185    #[serde(
12186        default,
12187        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
12188    )]
12189    pub transcription_sentiment: Option<bool>,
12190    #[serde(
12191        default,
12192        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12193    )]
12194    pub transcription_email: Option<String>,
12195}
12196
12197#[derive(Debug, Clone, Default, serde::Deserialize)]
12198pub struct GetDIDsInfoResponse {
12199    #[serde(
12200        default,
12201        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12202    )]
12203    pub status: Option<String>,
12204    #[serde(
12205        default,
12206        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
12207    )]
12208    pub dids: Vec<GetDIDsInfoResponseDID>,
12209}
12210
12211/// Response body for [`Client::get_dids_international_geographic`] (wire method `getDIDsInternationalGeographic`).
12212#[derive(Debug, Clone, Default, serde::Deserialize)]
12213pub struct GetDIDsInternationalGeographicResponseLocation {
12214    #[serde(
12215        default,
12216        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12217    )]
12218    pub location_id: Option<String>,
12219    #[serde(
12220        default,
12221        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12222    )]
12223    pub location_name: Option<String>,
12224    #[serde(
12225        default,
12226        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12227    )]
12228    pub country: Option<String>,
12229    #[serde(
12230        default,
12231        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12232    )]
12233    pub area_code: Option<u64>,
12234    #[serde(
12235        default,
12236        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12237    )]
12238    pub stock: Option<u64>,
12239    #[serde(
12240        default,
12241        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12242    )]
12243    pub monthly: Option<rust_decimal::Decimal>,
12244    #[serde(
12245        default,
12246        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12247    )]
12248    pub setup: Option<rust_decimal::Decimal>,
12249    #[serde(
12250        default,
12251        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12252    )]
12253    pub minute: Option<rust_decimal::Decimal>,
12254    #[serde(
12255        default,
12256        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12257    )]
12258    pub monthly_per_minute: Option<String>,
12259    #[serde(
12260        default,
12261        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12262    )]
12263    pub setup_per_minute: Option<String>,
12264    #[serde(
12265        default,
12266        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12267    )]
12268    pub channels: Option<u64>,
12269}
12270
12271#[derive(Debug, Clone, Default, serde::Deserialize)]
12272pub struct GetDIDsInternationalGeographicResponse {
12273    #[serde(
12274        default,
12275        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12276    )]
12277    pub status: Option<String>,
12278    #[serde(
12279        default,
12280        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
12281    )]
12282    pub locations: Vec<GetDIDsInternationalGeographicResponseLocation>,
12283}
12284
12285/// Response body for [`Client::get_dids_international_national`] (wire method `getDIDsInternationalNational`).
12286#[derive(Debug, Clone, Default, serde::Deserialize)]
12287pub struct GetDIDsInternationalNationalResponseLocation {
12288    #[serde(
12289        default,
12290        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12291    )]
12292    pub location_id: Option<String>,
12293    #[serde(
12294        default,
12295        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12296    )]
12297    pub location_name: Option<String>,
12298    #[serde(
12299        default,
12300        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12301    )]
12302    pub country: Option<String>,
12303    #[serde(
12304        default,
12305        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12306    )]
12307    pub area_code: Option<u64>,
12308    #[serde(
12309        default,
12310        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12311    )]
12312    pub stock: Option<u64>,
12313    #[serde(
12314        default,
12315        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12316    )]
12317    pub monthly: Option<rust_decimal::Decimal>,
12318    #[serde(
12319        default,
12320        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12321    )]
12322    pub setup: Option<u64>,
12323    #[serde(
12324        default,
12325        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12326    )]
12327    pub minute: Option<u64>,
12328    #[serde(
12329        default,
12330        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12331    )]
12332    pub monthly_per_minute: Option<String>,
12333    #[serde(
12334        default,
12335        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12336    )]
12337    pub setup_per_minute: Option<String>,
12338}
12339
12340#[derive(Debug, Clone, Default, serde::Deserialize)]
12341pub struct GetDIDsInternationalNationalResponse {
12342    #[serde(
12343        default,
12344        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12345    )]
12346    pub status: Option<String>,
12347    #[serde(
12348        default,
12349        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
12350    )]
12351    pub locations: Vec<GetDIDsInternationalNationalResponseLocation>,
12352}
12353
12354/// Response body for [`Client::get_dids_international_toll_free`] (wire method `getDIDsInternationalTollFree`).
12355#[derive(Debug, Clone, Default, serde::Deserialize)]
12356pub struct GetDIDsInternationalTollFreeResponseLocation {
12357    #[serde(
12358        default,
12359        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12360    )]
12361    pub location_id: Option<String>,
12362    #[serde(
12363        default,
12364        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12365    )]
12366    pub location_name: Option<String>,
12367    #[serde(
12368        default,
12369        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12370    )]
12371    pub country: Option<String>,
12372    #[serde(
12373        default,
12374        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12375    )]
12376    pub area_code: Option<u64>,
12377    #[serde(
12378        default,
12379        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12380    )]
12381    pub stock: Option<u64>,
12382    #[serde(
12383        default,
12384        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12385    )]
12386    pub monthly: Option<rust_decimal::Decimal>,
12387    #[serde(
12388        default,
12389        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12390    )]
12391    pub setup: Option<rust_decimal::Decimal>,
12392    #[serde(
12393        default,
12394        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12395    )]
12396    pub minute: Option<rust_decimal::Decimal>,
12397}
12398
12399#[derive(Debug, Clone, Default, serde::Deserialize)]
12400pub struct GetDIDsInternationalTollFreeResponse {
12401    #[serde(
12402        default,
12403        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12404    )]
12405    pub status: Option<String>,
12406    #[serde(
12407        default,
12408        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
12409    )]
12410    pub locations: Vec<GetDIDsInternationalTollFreeResponseLocation>,
12411}
12412
12413/// Response body for [`Client::get_dids_usa`] (wire method `getDIDsUSA`).
12414#[derive(Debug, Clone, Default, serde::Deserialize)]
12415pub struct GetDIDsUSAResponseDID {
12416    #[serde(
12417        default,
12418        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12419    )]
12420    pub did: Option<String>,
12421    #[serde(
12422        default,
12423        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12424    )]
12425    pub ratecenter: Option<String>,
12426    #[serde(
12427        default,
12428        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12429    )]
12430    pub state: Option<String>,
12431    #[serde(
12432        default,
12433        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12434    )]
12435    pub state_description: Option<String>,
12436    #[serde(
12437        default,
12438        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12439    )]
12440    pub perminute_monthly: Option<rust_decimal::Decimal>,
12441    #[serde(
12442        default,
12443        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12444    )]
12445    pub perminute_minute: Option<rust_decimal::Decimal>,
12446    #[serde(
12447        default,
12448        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12449    )]
12450    pub perminute_setup: Option<rust_decimal::Decimal>,
12451    #[serde(
12452        default,
12453        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12454    )]
12455    pub flat_monthly: Option<rust_decimal::Decimal>,
12456    #[serde(
12457        default,
12458        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12459    )]
12460    pub flat_minute: Option<rust_decimal::Decimal>,
12461    #[serde(
12462        default,
12463        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12464    )]
12465    pub flat_setup: Option<rust_decimal::Decimal>,
12466    #[serde(
12467        default,
12468        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12469    )]
12470    pub has_port_out_pin: Option<u64>,
12471    #[serde(
12472        default,
12473        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12474    )]
12475    pub sms: Option<u64>,
12476}
12477
12478#[derive(Debug, Clone, Default, serde::Deserialize)]
12479pub struct GetDIDsUSAResponse {
12480    #[serde(
12481        default,
12482        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12483    )]
12484    pub status: Option<String>,
12485    #[serde(
12486        default,
12487        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
12488    )]
12489    pub dids: Vec<GetDIDsUSAResponseDID>,
12490}
12491
12492/// Response body for [`Client::get_did_vpri`] (wire method `getDIDvPRI`).
12493#[derive(Debug, Clone, Default, serde::Deserialize)]
12494pub struct GetDIDvPRIResponse {
12495    #[serde(
12496        default,
12497        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12498    )]
12499    pub status: Option<String>,
12500    #[serde(
12501        default,
12502        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
12503    )]
12504    pub dids: Vec<String>,
12505}
12506
12507/// Response body for [`Client::get_disas`] (wire method `getDISAs`).
12508#[derive(Debug, Clone, Default, serde::Deserialize)]
12509pub struct GetDISAsResponseDISA {
12510    #[serde(
12511        default,
12512        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12513    )]
12514    pub disa: Option<u64>,
12515    #[serde(
12516        default,
12517        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12518    )]
12519    pub name: Option<String>,
12520    #[serde(
12521        default,
12522        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12523    )]
12524    pub pin: Option<u64>,
12525    #[serde(
12526        default,
12527        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12528    )]
12529    pub digit_timeout: Option<u64>,
12530    #[serde(
12531        default,
12532        deserialize_with = "crate::responses::deserialize_opt_string_sentinel_none"
12533    )]
12534    pub callerid_override: Option<String>,
12535    #[serde(
12536        default,
12537        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12538    )]
12539    pub language: Option<String>,
12540}
12541
12542#[derive(Debug, Clone, Default, serde::Deserialize)]
12543pub struct GetDISAsResponse {
12544    #[serde(
12545        default,
12546        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12547    )]
12548    pub status: Option<String>,
12549    #[serde(
12550        default,
12551        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
12552    )]
12553    pub disa: Vec<GetDISAsResponseDISA>,
12554}
12555
12556/// Response body for [`Client::get_dtmf_modes`] (wire method `getDTMFModes`).
12557#[derive(Debug, Clone, Default, serde::Deserialize)]
12558pub struct GetDTMFModesResponseDTMFMode {
12559    #[serde(
12560        default,
12561        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12562    )]
12563    pub value: Option<String>,
12564    #[serde(
12565        default,
12566        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12567    )]
12568    pub description: Option<String>,
12569}
12570
12571#[derive(Debug, Clone, Default, serde::Deserialize)]
12572pub struct GetDTMFModesResponse {
12573    #[serde(
12574        default,
12575        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12576    )]
12577    pub status: Option<String>,
12578    #[serde(
12579        default,
12580        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
12581    )]
12582    pub dtmf_modes: Vec<GetDTMFModesResponseDTMFMode>,
12583}
12584
12585/// Response body for [`Client::get_deposits`] (wire method `getDeposits`).
12586#[derive(Debug, Clone, Default, serde::Deserialize)]
12587pub struct GetDepositsResponseDeposit {
12588    #[serde(
12589        default,
12590        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12591    )]
12592    pub id: Option<u64>,
12593    #[serde(default, deserialize_with = "crate::responses::deserialize_opt_date")]
12594    pub date: Option<chrono::NaiveDate>,
12595    #[serde(
12596        default,
12597        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12598    )]
12599    pub amount: Option<rust_decimal::Decimal>,
12600    #[serde(
12601        default,
12602        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12603    )]
12604    pub description: Option<String>,
12605}
12606
12607#[derive(Debug, Clone, Default, serde::Deserialize)]
12608pub struct GetDepositsResponse {
12609    #[serde(
12610        default,
12611        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12612    )]
12613    pub status: Option<String>,
12614    #[serde(
12615        default,
12616        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
12617    )]
12618    pub deposits: Vec<GetDepositsResponseDeposit>,
12619}
12620
12621/// Response body for [`Client::get_device_types`] (wire method `getDeviceTypes`).
12622#[derive(Debug, Clone, Default, serde::Deserialize)]
12623pub struct GetDeviceTypesResponseDeviceType {
12624    #[serde(
12625        default,
12626        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12627    )]
12628    pub value: Option<u64>,
12629    #[serde(
12630        default,
12631        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12632    )]
12633    pub description: Option<String>,
12634}
12635
12636#[derive(Debug, Clone, Default, serde::Deserialize)]
12637pub struct GetDeviceTypesResponse {
12638    #[serde(
12639        default,
12640        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12641    )]
12642    pub status: Option<String>,
12643    #[serde(
12644        default,
12645        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
12646    )]
12647    pub device_types: Vec<GetDeviceTypesResponseDeviceType>,
12648}
12649
12650/// Response body for [`Client::get_email_to_fax`] (wire method `getEmailToFax`).
12651#[derive(Debug, Clone, Default, serde::Deserialize)]
12652pub struct GetEmailToFAXResponseEmailToFAX {
12653    #[serde(
12654        default,
12655        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12656    )]
12657    pub id: Option<String>,
12658    #[serde(
12659        default,
12660        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
12661    )]
12662    pub enabled: Option<bool>,
12663    #[serde(
12664        default,
12665        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12666    )]
12667    pub email: Option<String>,
12668    #[serde(
12669        default,
12670        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12671    )]
12672    pub security_code: Option<u64>,
12673    #[serde(
12674        default,
12675        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
12676    )]
12677    pub security_code_enabled: Option<bool>,
12678    #[serde(
12679        default,
12680        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12681    )]
12682    pub from: Option<String>,
12683}
12684
12685#[derive(Debug, Clone, Default, serde::Deserialize)]
12686pub struct GetEmailToFAXResponse {
12687    #[serde(
12688        default,
12689        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12690    )]
12691    pub status: Option<String>,
12692    #[serde(
12693        default,
12694        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq",
12695        rename = "emailToFax"
12696    )]
12697    pub email_to_fax: Vec<GetEmailToFAXResponseEmailToFAX>,
12698}
12699
12700/// Response body for [`Client::get_fax_folders`] (wire method `getFaxFolders`).
12701#[derive(Debug, Clone, Default, serde::Deserialize)]
12702pub struct GetFAXFoldersResponseFolder {
12703    #[serde(
12704        default,
12705        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12706    )]
12707    pub id: Option<String>,
12708    #[serde(
12709        default,
12710        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12711    )]
12712    pub name: Option<String>,
12713}
12714
12715#[derive(Debug, Clone, Default, serde::Deserialize)]
12716pub struct GetFAXFoldersResponse {
12717    #[serde(
12718        default,
12719        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12720    )]
12721    pub status: Option<String>,
12722    #[serde(
12723        default,
12724        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
12725    )]
12726    pub folders: Vec<GetFAXFoldersResponseFolder>,
12727}
12728
12729/// Response body for [`Client::get_fax_message_pdf`] (wire method `getFaxMessagePDF`).
12730#[derive(Debug, Clone, Default, serde::Deserialize)]
12731pub struct GetFAXMessagePDFResponse {
12732    #[serde(
12733        default,
12734        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12735    )]
12736    pub status: Option<String>,
12737    #[serde(
12738        default,
12739        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12740    )]
12741    pub message_base64: Option<String>,
12742}
12743
12744/// Response body for [`Client::get_fax_messages`] (wire method `getFaxMessages`).
12745#[derive(Debug, Clone, Default, serde::Deserialize)]
12746pub struct GetFAXMessagesResponseFAX {
12747    #[serde(
12748        default,
12749        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12750    )]
12751    pub id: Option<String>,
12752    #[serde(
12753        default,
12754        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12755    )]
12756    pub folder: Option<String>,
12757    #[serde(
12758        default,
12759        deserialize_with = "crate::responses::deserialize_opt_datetime"
12760    )]
12761    pub date: Option<chrono::NaiveDateTime>,
12762    #[serde(
12763        default,
12764        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12765    )]
12766    pub callerid: Option<String>,
12767    #[serde(
12768        default,
12769        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12770    )]
12771    pub stationid: Option<String>,
12772    #[serde(
12773        default,
12774        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12775    )]
12776    pub destination: Option<String>,
12777    #[serde(
12778        default,
12779        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12780    )]
12781    pub description: Option<String>,
12782    #[serde(
12783        default,
12784        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12785    )]
12786    pub pages: Option<u64>,
12787    #[serde(
12788        default,
12789        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12790    )]
12791    pub duration: Option<String>,
12792    #[serde(
12793        default,
12794        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12795    )]
12796    pub status: Option<String>,
12797    #[serde(
12798        default,
12799        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12800    )]
12801    pub rate: Option<rust_decimal::Decimal>,
12802    #[serde(
12803        default,
12804        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12805    )]
12806    pub total: Option<rust_decimal::Decimal>,
12807    #[serde(
12808        default,
12809        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12810    )]
12811    pub msg: Option<String>,
12812}
12813
12814#[derive(Debug, Clone, Default, serde::Deserialize)]
12815pub struct GetFAXMessagesResponse {
12816    #[serde(
12817        default,
12818        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12819    )]
12820    pub status: Option<String>,
12821    #[serde(
12822        default,
12823        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
12824    )]
12825    pub faxes: Vec<GetFAXMessagesResponseFAX>,
12826}
12827
12828/// Response body for [`Client::get_fax_numbers_info`] (wire method `getFaxNumbersInfo`).
12829#[derive(Debug, Clone, Default, serde::Deserialize)]
12830pub struct GetFAXNumbersInfoResponseNumber {
12831    #[serde(
12832        default,
12833        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12834    )]
12835    pub id: Option<String>,
12836    #[serde(
12837        default,
12838        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12839    )]
12840    pub did: Option<String>,
12841    #[serde(
12842        default,
12843        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12844    )]
12845    pub description: Option<String>,
12846    #[serde(
12847        default,
12848        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12849    )]
12850    pub state: Option<String>,
12851    #[serde(
12852        default,
12853        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12854    )]
12855    pub city: Option<String>,
12856    #[serde(
12857        default,
12858        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12859    )]
12860    pub country: Option<String>,
12861    #[serde(
12862        default,
12863        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
12864    )]
12865    pub email_enabled: Option<bool>,
12866    #[serde(
12867        default,
12868        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12869    )]
12870    pub email: Option<String>,
12871    #[serde(
12872        default,
12873        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
12874    )]
12875    pub url_enabled: Option<bool>,
12876    #[serde(
12877        default,
12878        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12879    )]
12880    pub url: Option<String>,
12881    #[serde(
12882        default,
12883        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12884    )]
12885    pub retry: Option<u64>,
12886    #[serde(
12887        default,
12888        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12889    )]
12890    pub attach_file: Option<u64>,
12891    #[serde(
12892        default,
12893        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12894    )]
12895    pub note: Option<String>,
12896    #[serde(
12897        default,
12898        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12899    )]
12900    pub reseller_account: Option<String>,
12901    #[serde(default, deserialize_with = "crate::responses::deserialize_opt_date")]
12902    pub reseller_next_billing: Option<chrono::NaiveDate>,
12903    #[serde(
12904        default,
12905        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12906    )]
12907    pub reseller_monthly: Option<rust_decimal::Decimal>,
12908    #[serde(
12909        default,
12910        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12911    )]
12912    pub reseller_minute: Option<rust_decimal::Decimal>,
12913    #[serde(
12914        default,
12915        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
12916    )]
12917    pub reseller_setup: Option<rust_decimal::Decimal>,
12918    #[serde(
12919        default,
12920        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
12921    )]
12922    pub fax_to_sip_enabled: Option<bool>,
12923    #[serde(
12924        default,
12925        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12926    )]
12927    pub fax_to_sip_enabled_account: Option<String>,
12928}
12929
12930#[derive(Debug, Clone, Default, serde::Deserialize)]
12931pub struct GetFAXNumbersInfoResponse {
12932    #[serde(
12933        default,
12934        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12935    )]
12936    pub status: Option<String>,
12937    #[serde(
12938        default,
12939        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
12940    )]
12941    pub numbers: Vec<GetFAXNumbersInfoResponseNumber>,
12942}
12943
12944/// Response body for [`Client::get_fax_numbers_portability`] (wire method `getFaxNumbersPortability`).
12945#[derive(Debug, Clone, Default, serde::Deserialize)]
12946pub struct GetFAXNumbersPortabilityResponse {
12947    #[serde(
12948        default,
12949        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12950    )]
12951    pub status: Option<String>,
12952    #[serde(
12953        default,
12954        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn",
12955        rename = "getFaxNumbersPortability"
12956    )]
12957    pub get_fax_numbers_portability: Option<bool>,
12958}
12959
12960/// Response body for [`Client::get_fax_provinces`] (wire method `getFaxProvinces`).
12961#[derive(Debug, Clone, Default, serde::Deserialize)]
12962pub struct GetFAXProvincesResponseProvince {
12963    #[serde(
12964        default,
12965        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12966    )]
12967    pub province: Option<String>,
12968    #[serde(
12969        default,
12970        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
12971    )]
12972    pub province_id: Option<u64>,
12973    #[serde(
12974        default,
12975        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12976    )]
12977    pub province_name: Option<String>,
12978    #[serde(
12979        default,
12980        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12981    )]
12982    pub country_code: Option<String>,
12983}
12984
12985#[derive(Debug, Clone, Default, serde::Deserialize)]
12986pub struct GetFAXProvincesResponse {
12987    #[serde(
12988        default,
12989        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
12990    )]
12991    pub status: Option<String>,
12992    #[serde(
12993        default,
12994        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
12995    )]
12996    pub provinces: Vec<GetFAXProvincesResponseProvince>,
12997}
12998
12999/// Response body for [`Client::get_fax_rate_centers_can`] (wire method `getFaxRateCentersCAN`).
13000#[derive(Debug, Clone, Default, serde::Deserialize)]
13001pub struct GetFAXRateCentersCANResponseRatecenter {
13002    #[serde(
13003        default,
13004        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13005    )]
13006    pub location: Option<u64>,
13007    #[serde(
13008        default,
13009        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13010    )]
13011    pub area_code: Option<u64>,
13012    #[serde(
13013        default,
13014        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13015    )]
13016    pub ratecenter: Option<String>,
13017    #[serde(
13018        default,
13019        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
13020    )]
13021    pub available: Option<bool>,
13022}
13023
13024#[derive(Debug, Clone, Default, serde::Deserialize)]
13025pub struct GetFAXRateCentersCANResponse {
13026    #[serde(
13027        default,
13028        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13029    )]
13030    pub status: Option<String>,
13031    #[serde(
13032        default,
13033        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13034    )]
13035    pub ratecenters: Vec<GetFAXRateCentersCANResponseRatecenter>,
13036}
13037
13038/// Response body for [`Client::get_fax_rate_centers_usa`] (wire method `getFaxRateCentersUSA`).
13039#[derive(Debug, Clone, Default, serde::Deserialize)]
13040pub struct GetFAXRateCentersUSAResponseRatecenter {
13041    #[serde(
13042        default,
13043        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13044    )]
13045    pub location: Option<u64>,
13046    #[serde(
13047        default,
13048        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13049    )]
13050    pub area_code: Option<u64>,
13051    #[serde(
13052        default,
13053        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13054    )]
13055    pub ratecenter: Option<String>,
13056    #[serde(
13057        default,
13058        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
13059    )]
13060    pub available: Option<bool>,
13061}
13062
13063#[derive(Debug, Clone, Default, serde::Deserialize)]
13064pub struct GetFAXRateCentersUSAResponse {
13065    #[serde(
13066        default,
13067        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13068    )]
13069    pub status: Option<String>,
13070    #[serde(
13071        default,
13072        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13073    )]
13074    pub ratecenters: Vec<GetFAXRateCentersUSAResponseRatecenter>,
13075}
13076
13077/// Response body for [`Client::get_fax_states`] (wire method `getFaxStates`).
13078#[derive(Debug, Clone, Default, serde::Deserialize)]
13079pub struct GetFAXStatesResponseState {
13080    #[serde(
13081        default,
13082        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13083    )]
13084    pub state: Option<String>,
13085    #[serde(
13086        default,
13087        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13088    )]
13089    pub state_id: Option<u64>,
13090    #[serde(
13091        default,
13092        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13093    )]
13094    pub state_name: Option<String>,
13095    #[serde(
13096        default,
13097        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13098    )]
13099    pub country_code: Option<String>,
13100}
13101
13102#[derive(Debug, Clone, Default, serde::Deserialize)]
13103pub struct GetFAXStatesResponse {
13104    #[serde(
13105        default,
13106        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13107    )]
13108    pub status: Option<String>,
13109    #[serde(
13110        default,
13111        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13112    )]
13113    pub states: Vec<GetFAXStatesResponseState>,
13114}
13115
13116/// Response body for [`Client::get_forwardings`] (wire method `getForwardings`).
13117#[derive(Debug, Clone, Default, serde::Deserialize)]
13118pub struct GetForwardingsResponseForwarding {
13119    #[serde(
13120        default,
13121        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13122    )]
13123    pub forwarding: Option<u64>,
13124    #[serde(
13125        default,
13126        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13127    )]
13128    pub phone_number: Option<String>,
13129    #[serde(
13130        default,
13131        deserialize_with = "crate::responses::deserialize_opt_string_sentinel_none"
13132    )]
13133    pub callerid_override: Option<String>,
13134    #[serde(
13135        default,
13136        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13137    )]
13138    pub description: Option<String>,
13139    #[serde(
13140        default,
13141        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13142    )]
13143    pub dtmf_digits: Option<u64>,
13144    #[serde(
13145        default,
13146        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
13147    )]
13148    pub pause: Option<rust_decimal::Decimal>,
13149    #[serde(
13150        default,
13151        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
13152    )]
13153    pub diversion_header: Option<bool>,
13154}
13155
13156#[derive(Debug, Clone, Default, serde::Deserialize)]
13157pub struct GetForwardingsResponse {
13158    #[serde(
13159        default,
13160        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13161    )]
13162    pub status: Option<String>,
13163    #[serde(
13164        default,
13165        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13166    )]
13167    pub forwardings: Vec<GetForwardingsResponseForwarding>,
13168}
13169
13170/// Response body for [`Client::get_ip`] (wire method `getIP`).
13171#[derive(Debug, Clone, Default, serde::Deserialize)]
13172pub struct GetIPResponse {
13173    #[serde(
13174        default,
13175        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13176    )]
13177    pub status: Option<String>,
13178    #[serde(
13179        default,
13180        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13181    )]
13182    pub ip: Option<String>,
13183}
13184
13185/// Response body for [`Client::get_ivrs`] (wire method `getIVRs`).
13186#[derive(Debug, Clone, Default, serde::Deserialize)]
13187pub struct GetIVRsResponseIVR {
13188    #[serde(
13189        default,
13190        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13191    )]
13192    pub ivr: Option<u64>,
13193    #[serde(
13194        default,
13195        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13196    )]
13197    pub name: Option<String>,
13198    #[serde(
13199        default,
13200        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13201    )]
13202    pub recording: Option<u64>,
13203    #[serde(
13204        default,
13205        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13206    )]
13207    pub timeout: Option<u64>,
13208    #[serde(
13209        default,
13210        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13211    )]
13212    pub language: Option<String>,
13213    #[serde(
13214        default,
13215        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13216    )]
13217    pub voicemailsetup: Option<u64>,
13218    #[serde(
13219        default,
13220        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13221    )]
13222    pub choices: Option<String>,
13223}
13224
13225#[derive(Debug, Clone, Default, serde::Deserialize)]
13226pub struct GetIVRsResponse {
13227    #[serde(
13228        default,
13229        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13230    )]
13231    pub status: Option<String>,
13232    #[serde(
13233        default,
13234        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13235    )]
13236    pub ivrs: Vec<GetIVRsResponseIVR>,
13237}
13238
13239/// Response body for [`Client::get_international_types`] (wire method `getInternationalTypes`).
13240#[derive(Debug, Clone, Default, serde::Deserialize)]
13241pub struct GetInternationalTypesResponseType {
13242    #[serde(
13243        default,
13244        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13245    )]
13246    pub value: Option<String>,
13247    #[serde(
13248        default,
13249        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13250    )]
13251    pub description: Option<String>,
13252}
13253
13254#[derive(Debug, Clone, Default, serde::Deserialize)]
13255pub struct GetInternationalTypesResponse {
13256    #[serde(
13257        default,
13258        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13259    )]
13260    pub status: Option<String>,
13261    #[serde(
13262        default,
13263        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13264    )]
13265    pub types: Vec<GetInternationalTypesResponseType>,
13266}
13267
13268/// Response body for [`Client::get_join_when_empty_types`] (wire method `getJoinWhenEmptyTypes`).
13269#[derive(Debug, Clone, Default, serde::Deserialize)]
13270pub struct GetJoinWhenEmptyTypesResponseType {
13271    #[serde(
13272        default,
13273        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13274    )]
13275    pub value: Option<String>,
13276    #[serde(
13277        default,
13278        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13279    )]
13280    pub description: Option<String>,
13281}
13282
13283#[derive(Debug, Clone, Default, serde::Deserialize)]
13284pub struct GetJoinWhenEmptyTypesResponse {
13285    #[serde(
13286        default,
13287        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13288    )]
13289    pub status: Option<String>,
13290    #[serde(
13291        default,
13292        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13293    )]
13294    pub types: Vec<GetJoinWhenEmptyTypesResponseType>,
13295}
13296
13297/// Response body for [`Client::get_lnp_attach`] (wire method `getLNPAttach`).
13298#[derive(Debug, Clone, Default, serde::Deserialize)]
13299pub struct GetLNPAttachResponse {
13300    #[serde(
13301        default,
13302        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13303    )]
13304    pub status: Option<String>,
13305    #[serde(
13306        default,
13307        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13308    )]
13309    pub r#type: Option<String>,
13310    #[serde(
13311        default,
13312        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13313    )]
13314    pub size: Option<String>,
13315    #[serde(
13316        default,
13317        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13318    )]
13319    pub base64: Option<String>,
13320}
13321
13322/// Response body for [`Client::get_lnp_attach_list`] (wire method `getLNPAttachList`).
13323#[derive(Debug, Clone, Default, serde::Deserialize)]
13324pub struct GetLNPAttachListResponseList {
13325    #[serde(
13326        default,
13327        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13328    )]
13329    pub attachid: Option<String>,
13330    #[serde(
13331        default,
13332        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13333    )]
13334    pub r#type: Option<String>,
13335    #[serde(
13336        default,
13337        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13338    )]
13339    pub size: Option<String>,
13340}
13341
13342#[derive(Debug, Clone, Default, serde::Deserialize)]
13343pub struct GetLNPAttachListResponse {
13344    #[serde(
13345        default,
13346        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13347    )]
13348    pub status: Option<String>,
13349    #[serde(
13350        default,
13351        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13352    )]
13353    pub list: Vec<GetLNPAttachListResponseList>,
13354}
13355
13356/// Response body for [`Client::get_lnp_details`] (wire method `getLNPDetails`).
13357#[derive(Debug, Clone, Default, serde::Deserialize)]
13358pub struct GetLNPDetailsResponseNumber {
13359    #[serde(
13360        default,
13361        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13362    )]
13363    pub did: Option<String>,
13364    #[serde(
13365        default,
13366        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool",
13367        rename = "rateCenter"
13368    )]
13369    pub rate_center: Option<String>,
13370    #[serde(
13371        default,
13372        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13373    )]
13374    pub state: Option<String>,
13375}
13376
13377#[derive(Debug, Clone, Default, serde::Deserialize)]
13378pub struct GetLNPDetailsResponseNote {
13379    #[serde(
13380        default,
13381        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13382    )]
13383    pub note: Option<String>,
13384    #[serde(default, deserialize_with = "crate::responses::deserialize_opt_date")]
13385    pub date: Option<chrono::NaiveDate>,
13386    #[serde(
13387        default,
13388        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13389    )]
13390    pub time: Option<String>,
13391}
13392
13393#[derive(Debug, Clone, Default, serde::Deserialize)]
13394pub struct GetLNPDetailsResponseAttachment {
13395    #[serde(
13396        default,
13397        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13398    )]
13399    pub id: Option<String>,
13400    #[serde(
13401        default,
13402        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13403    )]
13404    pub description: Option<String>,
13405    #[serde(
13406        default,
13407        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13408    )]
13409    pub r#type: Option<String>,
13410    #[serde(
13411        default,
13412        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13413    )]
13414    pub bytes: Option<u64>,
13415}
13416
13417#[derive(Debug, Clone, Default, serde::Deserialize)]
13418pub struct GetLNPDetailsResponse {
13419    #[serde(
13420        default,
13421        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13422    )]
13423    pub status: Option<String>,
13424    #[serde(
13425        default,
13426        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13427    )]
13428    pub id: Option<u64>,
13429    #[serde(
13430        default,
13431        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13432    )]
13433    pub numbers: Vec<GetLNPDetailsResponseNumber>,
13434    #[serde(
13435        default,
13436        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn",
13437        rename = "isPartial"
13438    )]
13439    pub is_partial: Option<bool>,
13440    #[serde(
13441        default,
13442        deserialize_with = "deserialize_opt_location_type",
13443        rename = "locationType"
13444    )]
13445    pub location_type: Option<LocationType>,
13446    #[serde(
13447        default,
13448        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn",
13449        rename = "isMobile"
13450    )]
13451    pub is_mobile: Option<bool>,
13452    #[serde(
13453        default,
13454        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool",
13455        rename = "mobileInfo"
13456    )]
13457    pub mobile_info: Option<String>,
13458    #[serde(
13459        default,
13460        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number",
13461        rename = "tfType"
13462    )]
13463    pub tf_type: Option<u64>,
13464    #[serde(
13465        default,
13466        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number",
13467        rename = "portType"
13468    )]
13469    pub port_type: Option<u64>,
13470    #[serde(
13471        default,
13472        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13473    )]
13474    pub btn: Option<String>,
13475    #[serde(
13476        default,
13477        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13478    )]
13479    pub services: Option<String>,
13480    #[serde(
13481        default,
13482        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool",
13483        rename = "statementName"
13484    )]
13485    pub statement_name: Option<String>,
13486    #[serde(
13487        default,
13488        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool",
13489        rename = "firstName"
13490    )]
13491    pub first_name: Option<String>,
13492    #[serde(
13493        default,
13494        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool",
13495        rename = "lastName"
13496    )]
13497    pub last_name: Option<String>,
13498    #[serde(
13499        default,
13500        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13501    )]
13502    pub address1: Option<String>,
13503    #[serde(
13504        default,
13505        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13506    )]
13507    pub address2: Option<String>,
13508    #[serde(
13509        default,
13510        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13511    )]
13512    pub city: Option<String>,
13513    #[serde(
13514        default,
13515        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13516    )]
13517    pub zip: Option<String>,
13518    #[serde(
13519        default,
13520        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13521    )]
13522    pub state: Option<String>,
13523    #[serde(
13524        default,
13525        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13526    )]
13527    pub country: Option<String>,
13528    #[serde(
13529        default,
13530        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool",
13531        rename = "providerName"
13532    )]
13533    pub provider_name: Option<String>,
13534    #[serde(
13535        default,
13536        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool",
13537        rename = "providerAccount"
13538    )]
13539    pub provider_account: Option<String>,
13540    #[serde(
13541        default,
13542        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13543    )]
13544    pub customer_notes: Option<String>,
13545    #[serde(
13546        default,
13547        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13548    )]
13549    pub notes: Vec<GetLNPDetailsResponseNote>,
13550    #[serde(
13551        default,
13552        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13553    )]
13554    pub post_status: Option<String>,
13555    #[serde(
13556        default,
13557        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13558    )]
13559    pub post_status_description: Option<String>,
13560    #[serde(
13561        default,
13562        deserialize_with = "crate::responses::deserialize_opt_datetime"
13563    )]
13564    pub date: Option<chrono::NaiveDateTime>,
13565    #[serde(
13566        default,
13567        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool",
13568        rename = "focDate"
13569    )]
13570    pub foc_date: Option<String>,
13571    #[serde(
13572        default,
13573        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13574    )]
13575    pub attachments: Vec<GetLNPDetailsResponseAttachment>,
13576}
13577
13578/// Response body for [`Client::get_lnp_list`] (wire method `getLNPList`).
13579#[derive(Debug, Clone, Default, serde::Deserialize)]
13580pub struct GetLNPListResponseList {
13581    #[serde(
13582        default,
13583        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13584    )]
13585    pub portid: Option<String>,
13586    #[serde(
13587        default,
13588        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13589    )]
13590    pub numbers: Option<String>,
13591    #[serde(
13592        default,
13593        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13594    )]
13595    pub foc_date: Option<String>,
13596    #[serde(
13597        default,
13598        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13599    )]
13600    pub status: Option<String>,
13601}
13602
13603#[derive(Debug, Clone, Default, serde::Deserialize)]
13604pub struct GetLNPListResponse {
13605    #[serde(
13606        default,
13607        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13608    )]
13609    pub status: Option<String>,
13610    #[serde(
13611        default,
13612        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13613    )]
13614    pub list: Vec<GetLNPListResponseList>,
13615}
13616
13617/// Response body for [`Client::get_lnp_list_status`] (wire method `getLNPListStatus`).
13618#[derive(Debug, Clone, Default, serde::Deserialize)]
13619pub struct GetLNPListStatusResponse {
13620    #[serde(
13621        default,
13622        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13623    )]
13624    pub status: Option<String>,
13625    #[serde(
13626        default,
13627        deserialize_with = "crate::responses::deserialize_map_from_object"
13628    )]
13629    pub list_status: std::collections::HashMap<String, String>,
13630}
13631
13632/// Response body for [`Client::get_lnp_notes`] (wire method `getLNPNotes`).
13633#[derive(Debug, Clone, Default, serde::Deserialize)]
13634pub struct GetLNPNotesResponseList {
13635    #[serde(
13636        default,
13637        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13638    )]
13639    pub note: Option<String>,
13640    #[serde(default, deserialize_with = "crate::responses::deserialize_opt_date")]
13641    pub date: Option<chrono::NaiveDate>,
13642    #[serde(
13643        default,
13644        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13645    )]
13646    pub time: Option<String>,
13647}
13648
13649#[derive(Debug, Clone, Default, serde::Deserialize)]
13650pub struct GetLNPNotesResponse {
13651    #[serde(
13652        default,
13653        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13654    )]
13655    pub status: Option<String>,
13656    #[serde(
13657        default,
13658        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13659    )]
13660    pub list: Vec<GetLNPNotesResponseList>,
13661}
13662
13663/// Response body for [`Client::get_lnp_status`] (wire method `getLNPStatus`).
13664#[derive(Debug, Clone, Default, serde::Deserialize)]
13665pub struct GetLNPStatusResponse {
13666    #[serde(
13667        default,
13668        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13669    )]
13670    pub status: Option<String>,
13671    #[serde(
13672        default,
13673        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13674    )]
13675    pub post_status: Option<String>,
13676    #[serde(
13677        default,
13678        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13679    )]
13680    pub post_status_description: Option<String>,
13681}
13682
13683/// Response body for [`Client::get_languages`] (wire method `getLanguages`).
13684#[derive(Debug, Clone, Default, serde::Deserialize)]
13685pub struct GetLanguagesResponseLanguage {
13686    #[serde(
13687        default,
13688        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13689    )]
13690    pub value: Option<String>,
13691    #[serde(
13692        default,
13693        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13694    )]
13695    pub description: Option<String>,
13696}
13697
13698#[derive(Debug, Clone, Default, serde::Deserialize)]
13699pub struct GetLanguagesResponse {
13700    #[serde(
13701        default,
13702        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13703    )]
13704    pub status: Option<String>,
13705    #[serde(
13706        default,
13707        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13708    )]
13709    pub languages: Vec<GetLanguagesResponseLanguage>,
13710}
13711
13712/// Response body for [`Client::get_locales`] (wire method `getLocales`).
13713#[derive(Debug, Clone, Default, serde::Deserialize)]
13714pub struct GetLocalesResponseLocale {
13715    #[serde(
13716        default,
13717        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13718    )]
13719    pub value: Option<String>,
13720    #[serde(
13721        default,
13722        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13723    )]
13724    pub description: Option<String>,
13725}
13726
13727#[derive(Debug, Clone, Default, serde::Deserialize)]
13728pub struct GetLocalesResponse {
13729    #[serde(
13730        default,
13731        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13732    )]
13733    pub status: Option<String>,
13734    #[serde(
13735        default,
13736        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13737    )]
13738    pub locales: Vec<GetLocalesResponseLocale>,
13739}
13740
13741/// Response body for [`Client::get_locations`] (wire method `getLocations`).
13742#[derive(Debug, Clone, Default, serde::Deserialize)]
13743pub struct GetLocationsResponse {
13744    #[serde(
13745        default,
13746        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13747    )]
13748    pub status: Option<String>,
13749    #[serde(
13750        default,
13751        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13752    )]
13753    pub locations: Vec<String>,
13754}
13755
13756/// Response body for [`Client::get_lock_international`] (wire method `getLockInternational`).
13757#[derive(Debug, Clone, Default, serde::Deserialize)]
13758pub struct GetLockInternationalResponseLockInternational {
13759    #[serde(
13760        default,
13761        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13762    )]
13763    pub value: Option<u64>,
13764    #[serde(
13765        default,
13766        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13767    )]
13768    pub description: Option<String>,
13769}
13770
13771#[derive(Debug, Clone, Default, serde::Deserialize)]
13772pub struct GetLockInternationalResponse {
13773    #[serde(
13774        default,
13775        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13776    )]
13777    pub status: Option<String>,
13778    #[serde(
13779        default,
13780        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13781    )]
13782    pub lock_international: Vec<GetLockInternationalResponseLockInternational>,
13783}
13784
13785/// Response body for [`Client::get_mms`] (wire method `getMMS`).
13786#[derive(Debug, Clone, Default, serde::Deserialize)]
13787pub struct GetMMSResponseSMS {
13788    #[serde(
13789        default,
13790        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13791    )]
13792    pub id: Option<u64>,
13793    #[serde(
13794        default,
13795        deserialize_with = "crate::responses::deserialize_opt_datetime"
13796    )]
13797    pub date: Option<chrono::NaiveDateTime>,
13798    #[serde(default, deserialize_with = "deserialize_opt_message_type")]
13799    pub r#type: Option<MessageType>,
13800    #[serde(
13801        default,
13802        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13803    )]
13804    pub did: Option<String>,
13805    #[serde(
13806        default,
13807        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13808    )]
13809    pub contact: Option<String>,
13810    #[serde(
13811        default,
13812        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13813    )]
13814    pub message: Option<String>,
13815    #[serde(
13816        default,
13817        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13818    )]
13819    pub carrier_status: Option<String>,
13820    #[serde(
13821        default,
13822        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13823    )]
13824    pub col_media1: Option<String>,
13825    #[serde(
13826        default,
13827        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13828    )]
13829    pub col_media2: Option<String>,
13830    #[serde(
13831        default,
13832        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13833    )]
13834    pub col_media3: Option<String>,
13835    #[serde(
13836        default,
13837        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13838    )]
13839    pub media: Vec<String>,
13840}
13841
13842#[derive(Debug, Clone, Default, serde::Deserialize)]
13843pub struct GetMMSResponse {
13844    #[serde(
13845        default,
13846        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13847    )]
13848    pub status: Option<String>,
13849    #[serde(
13850        default,
13851        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13852    )]
13853    pub sms: Vec<GetMMSResponseSMS>,
13854}
13855
13856/// Response body for [`Client::get_media_mms`] (wire method `getMediaMMS`).
13857#[derive(Debug, Clone, Default, serde::Deserialize)]
13858pub struct GetMediaMMSResponse {
13859    #[serde(
13860        default,
13861        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13862    )]
13863    pub status: Option<String>,
13864    #[serde(
13865        default,
13866        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13867    )]
13868    pub id: Option<u64>,
13869    #[serde(
13870        default,
13871        deserialize_with = "crate::responses::deserialize_opt_datetime"
13872    )]
13873    pub date: Option<chrono::NaiveDateTime>,
13874    #[serde(
13875        default,
13876        deserialize_with = "crate::responses::deserialize_map_from_object"
13877    )]
13878    pub media: std::collections::HashMap<String, String>,
13879}
13880
13881/// Response body for [`Client::get_music_on_hold`] (wire method `getMusicOnHold`).
13882#[derive(Debug, Clone, Default, serde::Deserialize)]
13883pub struct GetMusicOnHoldResponseMusicOnHold {
13884    #[serde(
13885        default,
13886        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13887    )]
13888    pub value: Option<String>,
13889    #[serde(
13890        default,
13891        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13892    )]
13893    pub description: Option<String>,
13894    #[serde(
13895        default,
13896        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13897    )]
13898    pub recordings: Option<String>,
13899    #[serde(
13900        default,
13901        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13902    )]
13903    pub total: Option<u64>,
13904    #[serde(
13905        default,
13906        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13907    )]
13908    pub volume: Option<String>,
13909    #[serde(default, deserialize_with = "deserialize_opt_recording_sort")]
13910    pub sort: Option<RecordingSort>,
13911    #[serde(
13912        default,
13913        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13914    )]
13915    pub custom: Option<u64>,
13916}
13917
13918#[derive(Debug, Clone, Default, serde::Deserialize)]
13919pub struct GetMusicOnHoldResponse {
13920    #[serde(
13921        default,
13922        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13923    )]
13924    pub status: Option<String>,
13925    #[serde(
13926        default,
13927        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13928    )]
13929    pub music_on_hold: Vec<GetMusicOnHoldResponseMusicOnHold>,
13930}
13931
13932/// Response body for [`Client::get_nat`] (wire method `getNAT`).
13933#[derive(Debug, Clone, Default, serde::Deserialize)]
13934pub struct GetNATResponseNAT {
13935    #[serde(
13936        default,
13937        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13938    )]
13939    pub value: Option<String>,
13940    #[serde(
13941        default,
13942        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13943    )]
13944    pub description: Option<String>,
13945}
13946
13947#[derive(Debug, Clone, Default, serde::Deserialize)]
13948pub struct GetNATResponse {
13949    #[serde(
13950        default,
13951        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13952    )]
13953    pub status: Option<String>,
13954    #[serde(
13955        default,
13956        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
13957    )]
13958    pub nat: Vec<GetNATResponseNAT>,
13959}
13960
13961/// Response body for [`Client::get_packages`] (wire method `getPackages`).
13962#[derive(Debug, Clone, Default, serde::Deserialize)]
13963pub struct GetPackagesResponsePackage {
13964    #[serde(
13965        default,
13966        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13967    )]
13968    pub package: Option<u64>,
13969    #[serde(
13970        default,
13971        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
13972    )]
13973    pub name: Option<String>,
13974    #[serde(
13975        default,
13976        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
13977    )]
13978    pub markup_fixed: Option<rust_decimal::Decimal>,
13979    #[serde(
13980        default,
13981        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13982    )]
13983    pub markup_percentage: Option<u64>,
13984    #[serde(
13985        default,
13986        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13987    )]
13988    pub pulse: Option<u64>,
13989    #[serde(
13990        default,
13991        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13992    )]
13993    pub international_route: Option<u64>,
13994    #[serde(
13995        default,
13996        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
13997    )]
13998    pub canada_route: Option<u64>,
13999    #[serde(
14000        default,
14001        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
14002    )]
14003    pub monthly_fee: Option<rust_decimal::Decimal>,
14004    #[serde(
14005        default,
14006        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
14007    )]
14008    pub setup_fee: Option<rust_decimal::Decimal>,
14009    #[serde(
14010        default,
14011        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14012    )]
14013    pub free_minutes: Option<u64>,
14014}
14015
14016#[derive(Debug, Clone, Default, serde::Deserialize)]
14017pub struct GetPackagesResponse {
14018    #[serde(
14019        default,
14020        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14021    )]
14022    pub status: Option<String>,
14023    #[serde(
14024        default,
14025        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14026    )]
14027    pub packages: Vec<GetPackagesResponsePackage>,
14028}
14029
14030/// Response body for [`Client::get_phonebook`] (wire method `getPhonebook`).
14031#[derive(Debug, Clone, Default, serde::Deserialize)]
14032pub struct GetPhonebookResponsePhonebook {
14033    #[serde(
14034        default,
14035        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14036    )]
14037    pub phonebook: Option<u64>,
14038    #[serde(
14039        default,
14040        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14041    )]
14042    pub speed_dial: Option<String>,
14043    #[serde(
14044        default,
14045        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14046    )]
14047    pub name: Option<String>,
14048    #[serde(
14049        default,
14050        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14051    )]
14052    pub number: Option<String>,
14053    #[serde(
14054        default,
14055        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14056    )]
14057    pub callerid: Option<String>,
14058    #[serde(
14059        default,
14060        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14061    )]
14062    pub note: Option<String>,
14063    #[serde(
14064        default,
14065        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14066    )]
14067    pub group: Option<u64>,
14068    #[serde(
14069        default,
14070        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14071    )]
14072    pub group_name: Option<String>,
14073}
14074
14075#[derive(Debug, Clone, Default, serde::Deserialize)]
14076pub struct GetPhonebookResponse {
14077    #[serde(
14078        default,
14079        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14080    )]
14081    pub status: Option<String>,
14082    #[serde(
14083        default,
14084        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14085    )]
14086    pub phonebooks: Vec<GetPhonebookResponsePhonebook>,
14087}
14088
14089/// Response body for [`Client::get_phonebook_groups`] (wire method `getPhonebookGroups`).
14090#[derive(Debug, Clone, Default, serde::Deserialize)]
14091pub struct GetPhonebookGroupsResponsePhonebook {
14092    #[serde(
14093        default,
14094        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14095    )]
14096    pub phonebook_group: Option<u64>,
14097    #[serde(
14098        default,
14099        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14100    )]
14101    pub name: Option<String>,
14102    #[serde(
14103        default,
14104        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14105    )]
14106    pub members: Option<String>,
14107}
14108
14109#[derive(Debug, Clone, Default, serde::Deserialize)]
14110pub struct GetPhonebookGroupsResponse {
14111    #[serde(
14112        default,
14113        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14114    )]
14115    pub status: Option<String>,
14116    #[serde(
14117        default,
14118        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14119    )]
14120    pub phonebooks: Vec<GetPhonebookGroupsResponsePhonebook>,
14121}
14122
14123/// Response body for [`Client::get_play_instructions`] (wire method `getPlayInstructions`).
14124#[derive(Debug, Clone, Default, serde::Deserialize)]
14125pub struct GetPlayInstructionsResponsePlayInstruction {
14126    #[serde(
14127        default,
14128        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14129    )]
14130    pub value: Option<String>,
14131    #[serde(
14132        default,
14133        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14134    )]
14135    pub description: Option<String>,
14136}
14137
14138#[derive(Debug, Clone, Default, serde::Deserialize)]
14139pub struct GetPlayInstructionsResponse {
14140    #[serde(
14141        default,
14142        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14143    )]
14144    pub status: Option<String>,
14145    #[serde(
14146        default,
14147        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14148    )]
14149    pub play_instructions: Vec<GetPlayInstructionsResponsePlayInstruction>,
14150}
14151
14152/// Response body for [`Client::get_portability`] (wire method `getPortability`).
14153#[derive(Debug, Clone, Default, serde::Deserialize)]
14154pub struct GetPortabilityResponsePlan {
14155    #[serde(
14156        default,
14157        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14158    )]
14159    pub title: Option<String>,
14160    #[serde(
14161        default,
14162        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number",
14163        rename = "pricePerMonth"
14164    )]
14165    pub price_per_month: Option<rust_decimal::Decimal>,
14166    #[serde(
14167        default,
14168        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number",
14169        rename = "pricePerMin"
14170    )]
14171    pub price_per_min: Option<rust_decimal::Decimal>,
14172}
14173
14174#[derive(Debug, Clone, Default, serde::Deserialize)]
14175pub struct GetPortabilityResponse {
14176    #[serde(
14177        default,
14178        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14179    )]
14180    pub status: Option<String>,
14181    #[serde(
14182        default,
14183        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
14184    )]
14185    pub portable: Option<bool>,
14186    #[serde(
14187        default,
14188        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
14189    )]
14190    pub sms: Option<bool>,
14191    #[serde(
14192        default,
14193        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14194    )]
14195    pub plans: Vec<GetPortabilityResponsePlan>,
14196}
14197
14198/// Response body for [`Client::get_protocols`] (wire method `getProtocols`).
14199#[derive(Debug, Clone, Default, serde::Deserialize)]
14200pub struct GetProtocolsResponseProtocol {
14201    #[serde(
14202        default,
14203        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14204    )]
14205    pub value: Option<u64>,
14206    #[serde(
14207        default,
14208        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14209    )]
14210    pub description: Option<String>,
14211}
14212
14213#[derive(Debug, Clone, Default, serde::Deserialize)]
14214pub struct GetProtocolsResponse {
14215    #[serde(
14216        default,
14217        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14218    )]
14219    pub status: Option<String>,
14220    #[serde(
14221        default,
14222        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14223    )]
14224    pub protocols: Vec<GetProtocolsResponseProtocol>,
14225}
14226
14227/// Response body for [`Client::get_provinces`] (wire method `getProvinces`).
14228#[derive(Debug, Clone, Default, serde::Deserialize)]
14229pub struct GetProvincesResponseProvince {
14230    #[serde(
14231        default,
14232        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14233    )]
14234    pub province: Option<String>,
14235    #[serde(
14236        default,
14237        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14238    )]
14239    pub description: Option<String>,
14240}
14241
14242#[derive(Debug, Clone, Default, serde::Deserialize)]
14243pub struct GetProvincesResponse {
14244    #[serde(
14245        default,
14246        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14247    )]
14248    pub status: Option<String>,
14249    #[serde(
14250        default,
14251        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14252    )]
14253    pub provinces: Vec<GetProvincesResponseProvince>,
14254}
14255
14256/// Response body for [`Client::get_queues`] (wire method `getQueues`).
14257#[derive(Debug, Clone, Default, serde::Deserialize)]
14258pub struct GetQueuesResponseQueue {
14259    #[serde(
14260        default,
14261        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14262    )]
14263    pub queue: Option<u64>,
14264    #[serde(
14265        default,
14266        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14267    )]
14268    pub queue_name: Option<String>,
14269    #[serde(
14270        default,
14271        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14272    )]
14273    pub queue_number: Option<u64>,
14274    #[serde(
14275        default,
14276        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14277    )]
14278    pub queue_language: Option<String>,
14279    #[serde(
14280        default,
14281        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14282    )]
14283    pub queue_password: Option<String>,
14284    #[serde(
14285        default,
14286        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14287    )]
14288    pub callerid_prefix: Option<String>,
14289    #[serde(
14290        default,
14291        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14292    )]
14293    pub join_announcement: Option<String>,
14294    #[serde(
14295        default,
14296        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14297    )]
14298    pub priority_weight: Option<u64>,
14299    #[serde(
14300        default,
14301        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14302    )]
14303    pub agent_announcement: Option<u64>,
14304    #[serde(
14305        default,
14306        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
14307    )]
14308    pub report_hold_time_agent: Option<bool>,
14309    #[serde(
14310        default,
14311        deserialize_with = "crate::responses::deserialize_opt_seconds"
14312    )]
14313    pub member_delay: Option<crate::Seconds>,
14314    #[serde(
14315        default,
14316        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14317    )]
14318    pub music_on_hold: Option<String>,
14319    #[serde(
14320        default,
14321        deserialize_with = "crate::responses::deserialize_opt_wait_time"
14322    )]
14323    pub maximum_wait_time: Option<crate::WaitTime>,
14324    #[serde(
14325        default,
14326        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14327    )]
14328    pub maximum_callers: Option<u64>,
14329    #[serde(default, deserialize_with = "deserialize_opt_queue_empty_behavior")]
14330    pub join_when_empty: Option<QueueEmptyBehavior>,
14331    #[serde(default, deserialize_with = "deserialize_opt_queue_empty_behavior")]
14332    pub leave_when_empty: Option<QueueEmptyBehavior>,
14333    #[serde(default, deserialize_with = "deserialize_opt_ring_strategy")]
14334    pub ring_strategy: Option<RingStrategy>,
14335    #[serde(
14336        default,
14337        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
14338    )]
14339    pub ring_inuse: Option<bool>,
14340    #[serde(
14341        default,
14342        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14343    )]
14344    pub agent_ring_timeout: Option<u64>,
14345    #[serde(
14346        default,
14347        deserialize_with = "crate::responses::deserialize_opt_seconds"
14348    )]
14349    pub retry_timer: Option<crate::Seconds>,
14350    #[serde(
14351        default,
14352        deserialize_with = "crate::responses::deserialize_opt_seconds"
14353    )]
14354    pub wrapup_time: Option<crate::Seconds>,
14355    #[serde(
14356        default,
14357        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14358    )]
14359    pub voice_announcement: Option<u64>,
14360    #[serde(
14361        default,
14362        deserialize_with = "crate::responses::deserialize_opt_seconds"
14363    )]
14364    pub frequency_announcement: Option<crate::Seconds>,
14365    #[serde(
14366        default,
14367        deserialize_with = "crate::responses::deserialize_opt_seconds"
14368    )]
14369    pub announce_position_frecuency: Option<crate::Seconds>,
14370    #[serde(
14371        default,
14372        deserialize_with = "crate::responses::deserialize_opt_seconds"
14373    )]
14374    pub announce_round_seconds: Option<crate::Seconds>,
14375    #[serde(
14376        default,
14377        deserialize_with = "deserialize_opt_estimated_hold_time_announce"
14378    )]
14379    pub if_announce_position_enabled_report_estimated_hold_time: Option<EstimatedHoldTimeAnnounce>,
14380    #[serde(
14381        default,
14382        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
14383    )]
14384    pub thankyou_for_your_patience: Option<bool>,
14385    #[serde(
14386        default,
14387        deserialize_with = "crate::responses::deserialize_opt_routing"
14388    )]
14389    pub fail_over_routing_timeout: Option<crate::Routing>,
14390    #[serde(
14391        default,
14392        deserialize_with = "crate::responses::deserialize_opt_routing"
14393    )]
14394    pub fail_over_routing_full: Option<crate::Routing>,
14395    #[serde(
14396        default,
14397        deserialize_with = "crate::responses::deserialize_opt_routing"
14398    )]
14399    pub fail_over_routing_join_empty: Option<crate::Routing>,
14400    #[serde(
14401        default,
14402        deserialize_with = "crate::responses::deserialize_opt_routing"
14403    )]
14404    pub fail_over_routing_leave_empty: Option<crate::Routing>,
14405    #[serde(
14406        default,
14407        deserialize_with = "crate::responses::deserialize_opt_routing"
14408    )]
14409    pub fail_over_routing_join_unavail: Option<crate::Routing>,
14410    #[serde(
14411        default,
14412        deserialize_with = "crate::responses::deserialize_opt_routing"
14413    )]
14414    pub fail_over_routing_leave_unavail: Option<crate::Routing>,
14415}
14416
14417#[derive(Debug, Clone, Default, serde::Deserialize)]
14418pub struct GetQueuesResponse {
14419    #[serde(
14420        default,
14421        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14422    )]
14423    pub status: Option<String>,
14424    #[serde(
14425        default,
14426        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14427    )]
14428    pub queues: Vec<GetQueuesResponseQueue>,
14429}
14430
14431/// Response body for [`Client::get_rate_centers_can`] (wire method `getRateCentersCAN`).
14432#[derive(Debug, Clone, Default, serde::Deserialize)]
14433pub struct GetRateCentersCANResponseRatecenter {
14434    #[serde(
14435        default,
14436        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14437    )]
14438    pub ratecenter: Option<String>,
14439    #[serde(
14440        default,
14441        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
14442    )]
14443    pub available: Option<bool>,
14444}
14445
14446#[derive(Debug, Clone, Default, serde::Deserialize)]
14447pub struct GetRateCentersCANResponse {
14448    #[serde(
14449        default,
14450        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14451    )]
14452    pub status: Option<String>,
14453    #[serde(
14454        default,
14455        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14456    )]
14457    pub ratecenters: Vec<GetRateCentersCANResponseRatecenter>,
14458}
14459
14460/// Response body for [`Client::get_rate_centers_usa`] (wire method `getRateCentersUSA`).
14461#[derive(Debug, Clone, Default, serde::Deserialize)]
14462pub struct GetRateCentersUSAResponseRatecenter {
14463    #[serde(
14464        default,
14465        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14466    )]
14467    pub ratecenter: Option<String>,
14468    #[serde(
14469        default,
14470        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
14471    )]
14472    pub available: Option<bool>,
14473}
14474
14475#[derive(Debug, Clone, Default, serde::Deserialize)]
14476pub struct GetRateCentersUSAResponse {
14477    #[serde(
14478        default,
14479        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14480    )]
14481    pub status: Option<String>,
14482    #[serde(
14483        default,
14484        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14485    )]
14486    pub ratecenters: Vec<GetRateCentersUSAResponseRatecenter>,
14487}
14488
14489/// Response body for [`Client::get_rates`] (wire method `getRates`).
14490#[derive(Debug, Clone, Default, serde::Deserialize)]
14491pub struct GetRatesResponseRate {
14492    #[serde(
14493        default,
14494        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14495    )]
14496    pub destination: Option<String>,
14497    #[serde(
14498        default,
14499        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14500    )]
14501    pub prefix: Option<u64>,
14502    #[serde(
14503        default,
14504        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14505    )]
14506    pub client_increment: Option<u64>,
14507    #[serde(
14508        default,
14509        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
14510    )]
14511    pub client_rate: Option<rust_decimal::Decimal>,
14512    #[serde(
14513        default,
14514        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14515    )]
14516    pub real_increment: Option<u64>,
14517    #[serde(
14518        default,
14519        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
14520    )]
14521    pub real_rate: Option<rust_decimal::Decimal>,
14522}
14523
14524#[derive(Debug, Clone, Default, serde::Deserialize)]
14525pub struct GetRatesResponse {
14526    #[serde(
14527        default,
14528        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14529    )]
14530    pub status: Option<String>,
14531    #[serde(
14532        default,
14533        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14534    )]
14535    pub rates: Vec<GetRatesResponseRate>,
14536}
14537
14538/// Response body for [`Client::get_recording_file`] (wire method `getRecordingFile`).
14539#[derive(Debug, Clone, Default, serde::Deserialize)]
14540pub struct GetRecordingFileResponseRecording {
14541    #[serde(
14542        default,
14543        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14544    )]
14545    pub value: Option<u64>,
14546    #[serde(
14547        default,
14548        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14549    )]
14550    pub data: Option<String>,
14551}
14552
14553#[derive(Debug, Clone, Default, serde::Deserialize)]
14554pub struct GetRecordingFileResponse {
14555    #[serde(
14556        default,
14557        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14558    )]
14559    pub status: Option<String>,
14560    #[serde(
14561        default,
14562        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14563    )]
14564    pub recordings: Vec<GetRecordingFileResponseRecording>,
14565}
14566
14567/// Response body for [`Client::get_recordings`] (wire method `getRecordings`).
14568#[derive(Debug, Clone, Default, serde::Deserialize)]
14569pub struct GetRecordingsResponseRecording {
14570    #[serde(
14571        default,
14572        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14573    )]
14574    pub value: Option<u64>,
14575    #[serde(
14576        default,
14577        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14578    )]
14579    pub description: Option<String>,
14580}
14581
14582#[derive(Debug, Clone, Default, serde::Deserialize)]
14583pub struct GetRecordingsResponse {
14584    #[serde(
14585        default,
14586        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14587    )]
14588    pub status: Option<String>,
14589    #[serde(
14590        default,
14591        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14592    )]
14593    pub recordings: Vec<GetRecordingsResponseRecording>,
14594}
14595
14596/// Response body for [`Client::get_registration_status`] (wire method `getRegistrationStatus`).
14597#[derive(Debug, Clone, Default, serde::Deserialize)]
14598pub struct GetRegistrationStatusResponseRegistration {
14599    #[serde(
14600        default,
14601        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14602    )]
14603    pub server_name: Option<String>,
14604    #[serde(
14605        default,
14606        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14607    )]
14608    pub server_shortname: Option<String>,
14609    #[serde(
14610        default,
14611        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14612    )]
14613    pub server_hostname: Option<String>,
14614    #[serde(
14615        default,
14616        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14617    )]
14618    pub server_ip: Option<String>,
14619    #[serde(
14620        default,
14621        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14622    )]
14623    pub server_country: Option<String>,
14624    #[serde(
14625        default,
14626        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14627    )]
14628    pub server_pop: Option<u64>,
14629    #[serde(
14630        default,
14631        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14632    )]
14633    pub register_ip: Option<String>,
14634    #[serde(
14635        default,
14636        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14637    )]
14638    pub register_port: Option<u64>,
14639    #[serde(
14640        default,
14641        deserialize_with = "crate::responses::deserialize_opt_datetime"
14642    )]
14643    pub register_next: Option<chrono::NaiveDateTime>,
14644    #[serde(
14645        default,
14646        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14647    )]
14648    pub register_protocol: Option<String>,
14649    #[serde(
14650        default,
14651        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14652    )]
14653    pub register_transport: Option<String>,
14654}
14655
14656#[derive(Debug, Clone, Default, serde::Deserialize)]
14657pub struct GetRegistrationStatusResponse {
14658    #[serde(
14659        default,
14660        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14661    )]
14662    pub status: Option<String>,
14663    #[serde(
14664        default,
14665        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
14666    )]
14667    pub registered: Option<bool>,
14668    #[serde(
14669        default,
14670        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14671    )]
14672    pub rerouted: Option<u64>,
14673    #[serde(
14674        default,
14675        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14676    )]
14677    pub from_server_pop: Option<u64>,
14678    #[serde(
14679        default,
14680        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14681    )]
14682    pub registrations: Vec<GetRegistrationStatusResponseRegistration>,
14683}
14684
14685/// Response body for [`Client::get_report_estimated_hold_time`] (wire method `getReportEstimatedHoldTime`).
14686#[derive(Debug, Clone, Default, serde::Deserialize)]
14687pub struct GetReportEstimatedHoldTimeResponseType {
14688    #[serde(
14689        default,
14690        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14691    )]
14692    pub value: Option<String>,
14693    #[serde(
14694        default,
14695        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14696    )]
14697    pub description: Option<String>,
14698}
14699
14700#[derive(Debug, Clone, Default, serde::Deserialize)]
14701pub struct GetReportEstimatedHoldTimeResponse {
14702    #[serde(
14703        default,
14704        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14705    )]
14706    pub status: Option<String>,
14707    #[serde(
14708        default,
14709        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14710    )]
14711    pub types: Vec<GetReportEstimatedHoldTimeResponseType>,
14712}
14713
14714/// Response body for [`Client::get_reseller_balance`] (wire method `getResellerBalance`).
14715#[derive(Debug, Clone, Default, serde::Deserialize)]
14716pub struct GetResellerBalanceResponseBalance {
14717    #[serde(
14718        default,
14719        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
14720    )]
14721    pub current_balance: Option<rust_decimal::Decimal>,
14722    #[serde(
14723        default,
14724        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
14725    )]
14726    pub spent_total: Option<rust_decimal::Decimal>,
14727    #[serde(
14728        default,
14729        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14730    )]
14731    pub calls_total: Option<u64>,
14732    #[serde(
14733        default,
14734        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14735    )]
14736    pub time_total: Option<String>,
14737    #[serde(
14738        default,
14739        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
14740    )]
14741    pub spent_today: Option<rust_decimal::Decimal>,
14742    #[serde(
14743        default,
14744        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14745    )]
14746    pub calls_today: Option<u64>,
14747    #[serde(
14748        default,
14749        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14750    )]
14751    pub time_today: Option<String>,
14752}
14753
14754#[derive(Debug, Clone, Default, serde::Deserialize)]
14755pub struct GetResellerBalanceResponse {
14756    #[serde(
14757        default,
14758        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14759    )]
14760    pub status: Option<String>,
14761    #[serde(default)]
14762    pub balance: Option<GetResellerBalanceResponseBalance>,
14763}
14764
14765/// Response body for [`Client::get_reseller_cdr`] (wire method `getResellerCDR`).
14766#[derive(Debug, Clone, Default, serde::Deserialize)]
14767pub struct GetResellerCDRResponseCDR {
14768    #[serde(
14769        default,
14770        deserialize_with = "crate::responses::deserialize_opt_datetime"
14771    )]
14772    pub date: Option<chrono::NaiveDateTime>,
14773    #[serde(
14774        default,
14775        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14776    )]
14777    pub callerid: Option<String>,
14778    #[serde(
14779        default,
14780        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14781    )]
14782    pub destination: Option<String>,
14783    #[serde(
14784        default,
14785        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14786    )]
14787    pub description: Option<String>,
14788    #[serde(
14789        default,
14790        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14791    )]
14792    pub account: Option<String>,
14793    #[serde(
14794        default,
14795        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14796    )]
14797    pub disposition: Option<String>,
14798    #[serde(
14799        default,
14800        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14801    )]
14802    pub duration: Option<String>,
14803    #[serde(
14804        default,
14805        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14806    )]
14807    pub seconds: Option<u64>,
14808    #[serde(
14809        default,
14810        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
14811    )]
14812    pub total: Option<rust_decimal::Decimal>,
14813    #[serde(
14814        default,
14815        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14816    )]
14817    pub uniqueid: Option<String>,
14818    #[serde(
14819        default,
14820        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14821    )]
14822    pub destination_type: Option<String>,
14823    #[serde(
14824        default,
14825        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14826    )]
14827    pub call_logs: Option<String>,
14828}
14829
14830#[derive(Debug, Clone, Default, serde::Deserialize)]
14831pub struct GetResellerCDRResponse {
14832    #[serde(
14833        default,
14834        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14835    )]
14836    pub status: Option<String>,
14837    #[serde(
14838        default,
14839        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14840    )]
14841    pub cdr: Vec<GetResellerCDRResponseCDR>,
14842}
14843
14844/// Response body for [`Client::get_reseller_mms`] (wire method `getResellerMMS`).
14845#[derive(Debug, Clone, Default, serde::Deserialize)]
14846pub struct GetResellerMMSResponseSMS {
14847    #[serde(
14848        default,
14849        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14850    )]
14851    pub id: Option<u64>,
14852    #[serde(
14853        default,
14854        deserialize_with = "crate::responses::deserialize_opt_datetime"
14855    )]
14856    pub date: Option<chrono::NaiveDateTime>,
14857    #[serde(default, deserialize_with = "deserialize_opt_message_type")]
14858    pub r#type: Option<MessageType>,
14859    #[serde(
14860        default,
14861        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14862    )]
14863    pub did: Option<String>,
14864    #[serde(
14865        default,
14866        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14867    )]
14868    pub contact: Option<String>,
14869    #[serde(
14870        default,
14871        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14872    )]
14873    pub message: Option<String>,
14874}
14875
14876#[derive(Debug, Clone, Default, serde::Deserialize)]
14877pub struct GetResellerMMSResponse {
14878    #[serde(
14879        default,
14880        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14881    )]
14882    pub status: Option<String>,
14883    #[serde(
14884        default,
14885        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14886    )]
14887    pub sms: Vec<GetResellerMMSResponseSMS>,
14888}
14889
14890/// Response body for [`Client::get_reseller_sms`] (wire method `getResellerSMS`).
14891#[derive(Debug, Clone, Default, serde::Deserialize)]
14892pub struct GetResellerSMSResponseSMS {
14893    #[serde(
14894        default,
14895        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14896    )]
14897    pub id: Option<u64>,
14898    #[serde(
14899        default,
14900        deserialize_with = "crate::responses::deserialize_opt_datetime"
14901    )]
14902    pub date: Option<chrono::NaiveDateTime>,
14903    #[serde(default, deserialize_with = "deserialize_opt_message_type")]
14904    pub r#type: Option<MessageType>,
14905    #[serde(
14906        default,
14907        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14908    )]
14909    pub did: Option<String>,
14910    #[serde(
14911        default,
14912        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14913    )]
14914    pub contact: Option<String>,
14915    #[serde(
14916        default,
14917        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14918    )]
14919    pub message: Option<String>,
14920}
14921
14922#[derive(Debug, Clone, Default, serde::Deserialize)]
14923pub struct GetResellerSMSResponse {
14924    #[serde(
14925        default,
14926        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14927    )]
14928    pub status: Option<String>,
14929    #[serde(
14930        default,
14931        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14932    )]
14933    pub sms: Vec<GetResellerSMSResponseSMS>,
14934}
14935
14936/// Response body for [`Client::get_ring_groups`] (wire method `getRingGroups`).
14937#[derive(Debug, Clone, Default, serde::Deserialize)]
14938pub struct GetRingGroupsResponseRingGroup {
14939    #[serde(
14940        default,
14941        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14942    )]
14943    pub ring_group: Option<u64>,
14944    #[serde(
14945        default,
14946        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14947    )]
14948    pub name: Option<String>,
14949    #[serde(
14950        default,
14951        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14952    )]
14953    pub caller_announcement: Option<u64>,
14954    #[serde(
14955        default,
14956        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14957    )]
14958    pub music_on_hold: Option<String>,
14959    #[serde(
14960        default,
14961        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14962    )]
14963    pub language: Option<String>,
14964    #[serde(
14965        default,
14966        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14967    )]
14968    pub members: Option<String>,
14969    #[serde(
14970        default,
14971        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
14972    )]
14973    pub voicemail: Option<u64>,
14974}
14975
14976#[derive(Debug, Clone, Default, serde::Deserialize)]
14977pub struct GetRingGroupsResponse {
14978    #[serde(
14979        default,
14980        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14981    )]
14982    pub status: Option<String>,
14983    #[serde(
14984        default,
14985        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
14986    )]
14987    pub ring_groups: Vec<GetRingGroupsResponseRingGroup>,
14988}
14989
14990/// Response body for [`Client::get_ring_strategies`] (wire method `getRingStrategies`).
14991#[derive(Debug, Clone, Default, serde::Deserialize)]
14992pub struct GetRingStrategiesResponseStrategy {
14993    #[serde(
14994        default,
14995        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
14996    )]
14997    pub value: Option<String>,
14998    #[serde(
14999        default,
15000        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15001    )]
15002    pub description: Option<String>,
15003}
15004
15005#[derive(Debug, Clone, Default, serde::Deserialize)]
15006pub struct GetRingStrategiesResponse {
15007    #[serde(
15008        default,
15009        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15010    )]
15011    pub status: Option<String>,
15012    #[serde(
15013        default,
15014        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15015    )]
15016    pub strategies: Vec<GetRingStrategiesResponseStrategy>,
15017}
15018
15019/// Response body for [`Client::get_routes`] (wire method `getRoutes`).
15020#[derive(Debug, Clone, Default, serde::Deserialize)]
15021pub struct GetRoutesResponseRoute {
15022    #[serde(
15023        default,
15024        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15025    )]
15026    pub value: Option<u64>,
15027    #[serde(
15028        default,
15029        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15030    )]
15031    pub description: Option<String>,
15032}
15033
15034#[derive(Debug, Clone, Default, serde::Deserialize)]
15035pub struct GetRoutesResponse {
15036    #[serde(
15037        default,
15038        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15039    )]
15040    pub status: Option<String>,
15041    #[serde(
15042        default,
15043        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15044    )]
15045    pub routes: Vec<GetRoutesResponseRoute>,
15046}
15047
15048/// Response body for [`Client::get_sip_uris`] (wire method `getSIPURIs`).
15049#[derive(Debug, Clone, Default, serde::Deserialize)]
15050pub struct GetSIPURIsResponseSIPURI {
15051    #[serde(
15052        default,
15053        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number",
15054        rename = "sipuri"
15055    )]
15056    pub sip_uri: Option<u64>,
15057    #[serde(
15058        default,
15059        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15060    )]
15061    pub uri: Option<String>,
15062    #[serde(
15063        default,
15064        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15065    )]
15066    pub description: Option<String>,
15067    #[serde(
15068        default,
15069        deserialize_with = "crate::responses::deserialize_opt_string_sentinel_none"
15070    )]
15071    pub callerid_override: Option<String>,
15072    #[serde(
15073        default,
15074        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15075    )]
15076    pub callerid_e164: Option<u64>,
15077}
15078
15079#[derive(Debug, Clone, Default, serde::Deserialize)]
15080pub struct GetSIPURIsResponse {
15081    #[serde(
15082        default,
15083        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15084    )]
15085    pub status: Option<String>,
15086    #[serde(
15087        default,
15088        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq",
15089        rename = "sipuris"
15090    )]
15091    pub sip_uris: Vec<GetSIPURIsResponseSIPURI>,
15092}
15093
15094/// Response body for [`Client::get_sms`] (wire method `getSMS`).
15095#[derive(Debug, Clone, Default, serde::Deserialize)]
15096pub struct GetSMSResponseSMS {
15097    #[serde(
15098        default,
15099        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15100    )]
15101    pub id: Option<u64>,
15102    #[serde(
15103        default,
15104        deserialize_with = "crate::responses::deserialize_opt_datetime"
15105    )]
15106    pub date: Option<chrono::NaiveDateTime>,
15107    #[serde(default, deserialize_with = "deserialize_opt_message_type")]
15108    pub r#type: Option<MessageType>,
15109    #[serde(
15110        default,
15111        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15112    )]
15113    pub did: Option<String>,
15114    #[serde(
15115        default,
15116        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15117    )]
15118    pub contact: Option<String>,
15119    #[serde(
15120        default,
15121        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15122    )]
15123    pub message: Option<String>,
15124    #[serde(
15125        default,
15126        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15127    )]
15128    pub carrier_status: Option<String>,
15129}
15130
15131#[derive(Debug, Clone, Default, serde::Deserialize)]
15132pub struct GetSMSResponse {
15133    #[serde(
15134        default,
15135        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15136    )]
15137    pub status: Option<String>,
15138    #[serde(
15139        default,
15140        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15141    )]
15142    pub sms: Vec<GetSMSResponseSMS>,
15143}
15144
15145/// Response body for [`Client::get_servers_info`] (wire method `getServersInfo`).
15146#[derive(Debug, Clone, Default, serde::Deserialize)]
15147pub struct GetServersInfoResponseServer {
15148    #[serde(
15149        default,
15150        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15151    )]
15152    pub server_name: Option<String>,
15153    #[serde(
15154        default,
15155        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15156    )]
15157    pub server_shortname: Option<String>,
15158    #[serde(
15159        default,
15160        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15161    )]
15162    pub server_hostname: Option<String>,
15163    #[serde(
15164        default,
15165        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15166    )]
15167    pub server_ip: Option<String>,
15168    #[serde(
15169        default,
15170        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15171    )]
15172    pub server_country: Option<String>,
15173    #[serde(
15174        default,
15175        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15176    )]
15177    pub server_pop: Option<u64>,
15178    #[serde(
15179        default,
15180        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
15181    )]
15182    pub server_recommended: Option<bool>,
15183}
15184
15185#[derive(Debug, Clone, Default, serde::Deserialize)]
15186pub struct GetServersInfoResponse {
15187    #[serde(
15188        default,
15189        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15190    )]
15191    pub status: Option<String>,
15192    #[serde(
15193        default,
15194        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15195    )]
15196    pub servers: Vec<GetServersInfoResponseServer>,
15197}
15198
15199/// Response body for [`Client::get_states`] (wire method `getStates`).
15200#[derive(Debug, Clone, Default, serde::Deserialize)]
15201pub struct GetStatesResponseState {
15202    #[serde(
15203        default,
15204        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15205    )]
15206    pub state: Option<String>,
15207    #[serde(
15208        default,
15209        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15210    )]
15211    pub description: Option<String>,
15212}
15213
15214#[derive(Debug, Clone, Default, serde::Deserialize)]
15215pub struct GetStatesResponse {
15216    #[serde(
15217        default,
15218        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15219    )]
15220    pub status: Option<String>,
15221    #[serde(
15222        default,
15223        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15224    )]
15225    pub states: Vec<GetStatesResponseState>,
15226}
15227
15228/// Response body for [`Client::get_static_members`] (wire method `getStaticMembers`).
15229#[derive(Debug, Clone, Default, serde::Deserialize)]
15230pub struct GetStaticMembersResponseMember {
15231    #[serde(
15232        default,
15233        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15234    )]
15235    pub member: Option<u64>,
15236    #[serde(
15237        default,
15238        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15239    )]
15240    pub queue_number: Option<u64>,
15241    #[serde(
15242        default,
15243        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15244    )]
15245    pub name: Option<String>,
15246    #[serde(
15247        default,
15248        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15249    )]
15250    pub account: Option<String>,
15251    #[serde(
15252        default,
15253        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15254    )]
15255    pub priority: Option<u64>,
15256}
15257
15258#[derive(Debug, Clone, Default, serde::Deserialize)]
15259pub struct GetStaticMembersResponse {
15260    #[serde(
15261        default,
15262        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15263    )]
15264    pub status: Option<String>,
15265    #[serde(
15266        default,
15267        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15268    )]
15269    pub members: Vec<GetStaticMembersResponseMember>,
15270}
15271
15272/// Response body for [`Client::get_sub_accounts`] (wire method `getSubAccounts`).
15273#[derive(Debug, Clone, Default, serde::Deserialize)]
15274pub struct GetSubAccountsResponseAccount {
15275    #[serde(
15276        default,
15277        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15278    )]
15279    pub id: Option<u64>,
15280    #[serde(
15281        default,
15282        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15283    )]
15284    pub account: Option<String>,
15285    #[serde(
15286        default,
15287        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15288    )]
15289    pub username: Option<String>,
15290    #[serde(
15291        default,
15292        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15293    )]
15294    pub description: Option<String>,
15295    #[serde(
15296        default,
15297        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15298    )]
15299    pub protocol: Option<u64>,
15300    #[serde(
15301        default,
15302        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15303    )]
15304    pub auth_type: Option<u64>,
15305    #[serde(
15306        default,
15307        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15308    )]
15309    pub password: Option<String>,
15310    #[serde(
15311        default,
15312        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15313    )]
15314    pub ip: Option<String>,
15315    #[serde(
15316        default,
15317        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15318    )]
15319    pub device_type: Option<u64>,
15320    #[serde(
15321        default,
15322        deserialize_with = "crate::responses::deserialize_opt_string_sentinel_none"
15323    )]
15324    pub callerid_number: Option<String>,
15325    #[serde(
15326        default,
15327        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15328    )]
15329    pub canada_routing: Option<u64>,
15330    #[serde(
15331        default,
15332        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15333    )]
15334    pub lock_international: Option<u64>,
15335    #[serde(
15336        default,
15337        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15338    )]
15339    pub international_route: Option<u64>,
15340    #[serde(
15341        default,
15342        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15343    )]
15344    pub music_on_hold: Option<String>,
15345    #[serde(
15346        default,
15347        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15348    )]
15349    pub language: Option<String>,
15350    #[serde(
15351        default,
15352        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15353    )]
15354    pub allowed_codecs: Option<String>,
15355    #[serde(default, deserialize_with = "deserialize_opt_dtmf_mode")]
15356    pub dtmf_mode: Option<DtmfMode>,
15357    #[serde(default, deserialize_with = "deserialize_opt_nat")]
15358    pub nat: Option<Nat>,
15359    #[serde(
15360        default,
15361        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15362    )]
15363    pub sip_traffic: Option<u64>,
15364    #[serde(
15365        default,
15366        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15367    )]
15368    pub max_expiry: Option<u64>,
15369    #[serde(
15370        default,
15371        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15372    )]
15373    pub rtp_timeout: Option<u64>,
15374    #[serde(
15375        default,
15376        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15377    )]
15378    pub rtp_hold_timeout: Option<u64>,
15379    #[serde(
15380        default,
15381        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15382    )]
15383    pub ip_restriction: Option<String>,
15384    #[serde(
15385        default,
15386        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
15387    )]
15388    pub enable_ip_restriction: Option<bool>,
15389    #[serde(
15390        default,
15391        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15392    )]
15393    pub pop_restriction: Option<String>,
15394    #[serde(
15395        default,
15396        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
15397    )]
15398    pub enable_pop_restriction: Option<bool>,
15399    #[serde(
15400        default,
15401        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
15402    )]
15403    pub send_bye: Option<bool>,
15404    #[serde(
15405        default,
15406        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
15407    )]
15408    pub record_calls: Option<bool>,
15409    #[serde(
15410        default,
15411        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15412    )]
15413    pub internal_extension: Option<u64>,
15414    #[serde(
15415        default,
15416        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15417    )]
15418    pub internal_voicemail: Option<u64>,
15419    #[serde(
15420        default,
15421        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15422    )]
15423    pub internal_dialtime: Option<u64>,
15424    #[serde(
15425        default,
15426        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15427    )]
15428    pub reseller_client: Option<u64>,
15429    #[serde(
15430        default,
15431        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15432    )]
15433    pub reseller_package: Option<u64>,
15434    #[serde(default, deserialize_with = "crate::responses::deserialize_opt_date")]
15435    pub reseller_nextbilling: Option<chrono::NaiveDate>,
15436    #[serde(
15437        default,
15438        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
15439    )]
15440    pub transcribe: Option<bool>,
15441    #[serde(
15442        default,
15443        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15444    )]
15445    pub transcription_locale: Option<String>,
15446    #[serde(
15447        default,
15448        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
15449    )]
15450    pub transcription_redaction: Option<bool>,
15451    #[serde(
15452        default,
15453        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
15454    )]
15455    pub transcription_summary: Option<bool>,
15456    #[serde(
15457        default,
15458        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
15459    )]
15460    pub transcription_sentiment: Option<bool>,
15461    #[serde(
15462        default,
15463        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15464    )]
15465    pub transcription_email: Option<String>,
15466    #[serde(
15467        default,
15468        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15469    )]
15470    pub parking_lot: Option<u64>,
15471    #[serde(
15472        default,
15473        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
15474    )]
15475    pub enable_internal_cnam: Option<bool>,
15476    #[serde(
15477        default,
15478        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15479    )]
15480    pub internal_cnam: Option<String>,
15481    #[serde(default, deserialize_with = "deserialize_opt_toll_free_carrier")]
15482    pub tfcarrier: Option<TollFreeCarrier>,
15483    #[serde(
15484        default,
15485        deserialize_with = "crate::responses::deserialize_opt_string_sentinel_none"
15486    )]
15487    pub default_e911: Option<String>,
15488    #[serde(default, deserialize_with = "deserialize_opt_call_pickup_behavior")]
15489    pub call_pickup_behavior: Option<CallPickupBehavior>,
15490}
15491
15492#[derive(Debug, Clone, Default, serde::Deserialize)]
15493pub struct GetSubAccountsResponse {
15494    #[serde(
15495        default,
15496        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15497    )]
15498    pub status: Option<String>,
15499    #[serde(
15500        default,
15501        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15502    )]
15503    pub accounts: Vec<GetSubAccountsResponseAccount>,
15504}
15505
15506/// Response body for [`Client::get_termination_rates`] (wire method `getTerminationRates`).
15507#[derive(Debug, Clone, Default, serde::Deserialize)]
15508pub struct GetTerminationRatesResponseRoute {
15509    #[serde(
15510        default,
15511        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15512    )]
15513    pub value: Option<u64>,
15514    #[serde(
15515        default,
15516        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15517    )]
15518    pub description: Option<String>,
15519}
15520
15521#[derive(Debug, Clone, Default, serde::Deserialize)]
15522pub struct GetTerminationRatesResponseRate {
15523    #[serde(
15524        default,
15525        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15526    )]
15527    pub destination: Option<String>,
15528    #[serde(
15529        default,
15530        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15531    )]
15532    pub prefix: Option<u64>,
15533    #[serde(
15534        default,
15535        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15536    )]
15537    pub increment: Option<u64>,
15538    #[serde(
15539        default,
15540        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
15541    )]
15542    pub rate: Option<rust_decimal::Decimal>,
15543}
15544
15545#[derive(Debug, Clone, Default, serde::Deserialize)]
15546pub struct GetTerminationRatesResponse {
15547    #[serde(
15548        default,
15549        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15550    )]
15551    pub status: Option<String>,
15552    #[serde(
15553        default,
15554        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15555    )]
15556    pub route: Vec<GetTerminationRatesResponseRoute>,
15557    #[serde(
15558        default,
15559        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15560    )]
15561    pub rates: Vec<GetTerminationRatesResponseRate>,
15562}
15563
15564/// Response body for [`Client::get_time_conditions`] (wire method `getTimeConditions`).
15565#[derive(Debug, Clone, Default, serde::Deserialize)]
15566pub struct GetTimeConditionsResponseTimecondition {
15567    #[serde(
15568        default,
15569        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15570    )]
15571    pub timecondition: Option<u64>,
15572    #[serde(
15573        default,
15574        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15575    )]
15576    pub name: Option<String>,
15577    #[serde(
15578        default,
15579        deserialize_with = "crate::responses::deserialize_opt_routing"
15580    )]
15581    pub routing_match: Option<crate::Routing>,
15582    #[serde(
15583        default,
15584        deserialize_with = "crate::responses::deserialize_opt_routing"
15585    )]
15586    pub routing_nomatch: Option<crate::Routing>,
15587    #[serde(
15588        default,
15589        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15590    )]
15591    pub starthour: Option<String>,
15592    #[serde(
15593        default,
15594        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15595    )]
15596    pub startminute: Option<String>,
15597    #[serde(
15598        default,
15599        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15600    )]
15601    pub endhour: Option<String>,
15602    #[serde(
15603        default,
15604        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15605    )]
15606    pub endminute: Option<String>,
15607    #[serde(
15608        default,
15609        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15610    )]
15611    pub weekdaystart: Option<String>,
15612    #[serde(
15613        default,
15614        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15615    )]
15616    pub weekdayend: Option<String>,
15617}
15618
15619#[derive(Debug, Clone, Default, serde::Deserialize)]
15620pub struct GetTimeConditionsResponse {
15621    #[serde(
15622        default,
15623        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15624    )]
15625    pub status: Option<String>,
15626    #[serde(
15627        default,
15628        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15629    )]
15630    pub timecondition: Vec<GetTimeConditionsResponseTimecondition>,
15631}
15632
15633/// Response body for [`Client::get_timezones`] (wire method `getTimezones`).
15634#[derive(Debug, Clone, Default, serde::Deserialize)]
15635pub struct GetTimezonesResponseTimezone {
15636    #[serde(
15637        default,
15638        deserialize_with = "crate::responses::deserialize_opt_timezone_name"
15639    )]
15640    pub value: Option<crate::TimezoneName>,
15641    #[serde(
15642        default,
15643        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15644    )]
15645    pub description: Option<String>,
15646}
15647
15648#[derive(Debug, Clone, Default, serde::Deserialize)]
15649pub struct GetTimezonesResponse {
15650    #[serde(
15651        default,
15652        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15653    )]
15654    pub status: Option<String>,
15655    #[serde(
15656        default,
15657        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15658    )]
15659    pub timezones: Vec<GetTimezonesResponseTimezone>,
15660}
15661
15662/// Response body for [`Client::get_transaction_history`] (wire method `getTransactionHistory`).
15663#[derive(Debug, Clone, Default, serde::Deserialize)]
15664pub struct GetTransactionHistoryResponseTransaction {
15665    #[serde(
15666        default,
15667        deserialize_with = "crate::responses::deserialize_opt_datetime"
15668    )]
15669    pub date: Option<chrono::NaiveDateTime>,
15670    #[serde(
15671        default,
15672        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15673    )]
15674    pub uniqueid: Option<String>,
15675    #[serde(
15676        default,
15677        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15678    )]
15679    pub r#type: Option<String>,
15680    #[serde(
15681        default,
15682        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15683    )]
15684    pub description: Option<String>,
15685    #[serde(
15686        default,
15687        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
15688    )]
15689    pub ammount: Option<rust_decimal::Decimal>,
15690}
15691
15692#[derive(Debug, Clone, Default, serde::Deserialize)]
15693pub struct GetTransactionHistoryResponse {
15694    #[serde(
15695        default,
15696        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15697    )]
15698    pub status: Option<String>,
15699    #[serde(
15700        default,
15701        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15702    )]
15703    pub transactions: Vec<GetTransactionHistoryResponseTransaction>,
15704}
15705
15706/// Response body for [`Client::get_vpris`] (wire method `getVPRIs`).
15707#[derive(Debug, Clone, Default, serde::Deserialize)]
15708pub struct GetVPRIsResponseVPRI {
15709    #[serde(
15710        default,
15711        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15712    )]
15713    pub vpri: Option<u64>,
15714    #[serde(
15715        default,
15716        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15717    )]
15718    pub name: Option<String>,
15719    #[serde(
15720        default,
15721        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15722    )]
15723    pub note: Option<String>,
15724    #[serde(
15725        default,
15726        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15727    )]
15728    pub channels: Option<u64>,
15729    #[serde(
15730        default,
15731        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
15732    )]
15733    pub monthly_fee: Option<rust_decimal::Decimal>,
15734    #[serde(default, deserialize_with = "crate::responses::deserialize_opt_date")]
15735    pub next_billing: Option<chrono::NaiveDate>,
15736    #[serde(
15737        default,
15738        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
15739    )]
15740    pub burst_enabled: Option<bool>,
15741    #[serde(
15742        default,
15743        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15744    )]
15745    pub burst_max_channels: Option<u64>,
15746    #[serde(
15747        default,
15748        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15749    )]
15750    pub burst_percentage_charge: Option<u64>,
15751}
15752
15753#[derive(Debug, Clone, Default, serde::Deserialize)]
15754pub struct GetVPRIsResponse {
15755    #[serde(
15756        default,
15757        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15758    )]
15759    pub status: Option<String>,
15760    #[serde(
15761        default,
15762        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15763    )]
15764    pub vpri: Vec<GetVPRIsResponseVPRI>,
15765}
15766
15767/// Response body for [`Client::get_voicemail_attachment_formats`] (wire method `getVoicemailAttachmentFormats`).
15768#[derive(Debug, Clone, Default, serde::Deserialize)]
15769pub struct GetVoicemailAttachmentFormatsResponseEmailAttachmentFormat {
15770    #[serde(
15771        default,
15772        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15773    )]
15774    pub value: Option<String>,
15775    #[serde(
15776        default,
15777        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15778    )]
15779    pub description: Option<String>,
15780}
15781
15782#[derive(Debug, Clone, Default, serde::Deserialize)]
15783pub struct GetVoicemailAttachmentFormatsResponse {
15784    #[serde(
15785        default,
15786        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15787    )]
15788    pub status: Option<String>,
15789    #[serde(
15790        default,
15791        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15792    )]
15793    pub email_attachment_formats: Vec<GetVoicemailAttachmentFormatsResponseEmailAttachmentFormat>,
15794}
15795
15796/// Response body for [`Client::get_voicemail_folders`] (wire method `getVoicemailFolders`).
15797#[derive(Debug, Clone, Default, serde::Deserialize)]
15798pub struct GetVoicemailFoldersResponseFolder {
15799    #[serde(
15800        default,
15801        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15802    )]
15803    pub value: Option<String>,
15804    #[serde(
15805        default,
15806        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15807    )]
15808    pub description: Option<String>,
15809}
15810
15811#[derive(Debug, Clone, Default, serde::Deserialize)]
15812pub struct GetVoicemailFoldersResponse {
15813    #[serde(
15814        default,
15815        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15816    )]
15817    pub status: Option<String>,
15818    #[serde(
15819        default,
15820        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15821    )]
15822    pub folders: Vec<GetVoicemailFoldersResponseFolder>,
15823}
15824
15825/// Response body for [`Client::get_voicemail_message_file`] (wire method `getVoicemailMessageFile`).
15826#[derive(Debug, Clone, Default, serde::Deserialize)]
15827pub struct GetVoicemailMessageFileResponseMessage {
15828    #[serde(
15829        default,
15830        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15831    )]
15832    pub mailbox: Option<u64>,
15833    #[serde(default, deserialize_with = "deserialize_opt_voicemail_folder")]
15834    pub folder: Option<VoicemailFolder>,
15835    #[serde(
15836        default,
15837        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15838    )]
15839    pub message_num: Option<u64>,
15840    #[serde(
15841        default,
15842        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15843    )]
15844    pub data: Option<String>,
15845}
15846
15847#[derive(Debug, Clone, Default, serde::Deserialize)]
15848pub struct GetVoicemailMessageFileResponse {
15849    #[serde(
15850        default,
15851        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15852    )]
15853    pub status: Option<String>,
15854    #[serde(
15855        default,
15856        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15857    )]
15858    pub message: Vec<GetVoicemailMessageFileResponseMessage>,
15859}
15860
15861/// Response body for [`Client::get_voicemail_messages`] (wire method `getVoicemailMessages`).
15862#[derive(Debug, Clone, Default, serde::Deserialize)]
15863pub struct GetVoicemailMessagesResponseMessage {
15864    #[serde(
15865        default,
15866        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15867    )]
15868    pub mailbox: Option<u64>,
15869    #[serde(default, deserialize_with = "deserialize_opt_voicemail_folder")]
15870    pub folder: Option<VoicemailFolder>,
15871    #[serde(
15872        default,
15873        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15874    )]
15875    pub message_num: Option<u64>,
15876    #[serde(
15877        default,
15878        deserialize_with = "crate::responses::deserialize_opt_datetime"
15879    )]
15880    pub date: Option<chrono::NaiveDateTime>,
15881    #[serde(
15882        default,
15883        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15884    )]
15885    pub callerid: Option<String>,
15886    #[serde(
15887        default,
15888        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15889    )]
15890    pub duration: Option<String>,
15891    #[serde(
15892        default,
15893        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
15894    )]
15895    pub urgent: Option<bool>,
15896    #[serde(
15897        default,
15898        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
15899    )]
15900    pub listened: Option<bool>,
15901}
15902
15903#[derive(Debug, Clone, Default, serde::Deserialize)]
15904pub struct GetVoicemailMessagesResponse {
15905    #[serde(
15906        default,
15907        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15908    )]
15909    pub status: Option<String>,
15910    #[serde(
15911        default,
15912        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15913    )]
15914    pub messages: Vec<GetVoicemailMessagesResponseMessage>,
15915}
15916
15917/// Response body for [`Client::get_voicemail_setups`] (wire method `getVoicemailSetups`).
15918#[derive(Debug, Clone, Default, serde::Deserialize)]
15919pub struct GetVoicemailSetupsResponseVoicemailsetup {
15920    #[serde(
15921        default,
15922        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15923    )]
15924    pub value: Option<u64>,
15925    #[serde(
15926        default,
15927        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15928    )]
15929    pub description: Option<String>,
15930}
15931
15932#[derive(Debug, Clone, Default, serde::Deserialize)]
15933pub struct GetVoicemailSetupsResponse {
15934    #[serde(
15935        default,
15936        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15937    )]
15938    pub status: Option<String>,
15939    #[serde(
15940        default,
15941        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15942    )]
15943    pub voicemailsetups: Vec<GetVoicemailSetupsResponseVoicemailsetup>,
15944}
15945
15946/// Response body for [`Client::get_voicemail_transcriptions`] (wire method `getVoicemailTranscriptions`).
15947#[derive(Debug, Clone, Default, serde::Deserialize)]
15948pub struct GetVoicemailTranscriptionsResponseMessage {
15949    #[serde(
15950        default,
15951        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15952    )]
15953    pub date: Option<String>,
15954    #[serde(
15955        default,
15956        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15957    )]
15958    pub callerid: Option<String>,
15959    #[serde(
15960        default,
15961        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15962    )]
15963    pub duration: Option<String>,
15964    #[serde(default, deserialize_with = "deserialize_opt_voicemail_folder")]
15965    pub folder: Option<VoicemailFolder>,
15966    #[serde(
15967        default,
15968        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15969    )]
15970    pub result: Option<String>,
15971}
15972
15973#[derive(Debug, Clone, Default, serde::Deserialize)]
15974pub struct GetVoicemailTranscriptionsResponse {
15975    #[serde(
15976        default,
15977        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15978    )]
15979    pub status: Option<String>,
15980    #[serde(
15981        default,
15982        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
15983    )]
15984    pub messages: Vec<GetVoicemailTranscriptionsResponseMessage>,
15985}
15986
15987/// Response body for [`Client::get_voicemails`] (wire method `getVoicemails`).
15988#[derive(Debug, Clone, Default, serde::Deserialize)]
15989pub struct GetVoicemailsResponseVoicemail {
15990    #[serde(
15991        default,
15992        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
15993    )]
15994    pub mailbox: Option<u64>,
15995    #[serde(
15996        default,
15997        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
15998    )]
15999    pub name: Option<String>,
16000    #[serde(
16001        default,
16002        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16003    )]
16004    pub password: Option<u64>,
16005    #[serde(
16006        default,
16007        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
16008    )]
16009    pub skip_password: Option<bool>,
16010    #[serde(
16011        default,
16012        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16013    )]
16014    pub email: Option<String>,
16015    #[serde(
16016        default,
16017        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
16018    )]
16019    pub attach_message: Option<bool>,
16020    #[serde(
16021        default,
16022        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
16023    )]
16024    pub delete_message: Option<bool>,
16025    #[serde(
16026        default,
16027        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
16028    )]
16029    pub say_time: Option<bool>,
16030    #[serde(
16031        default,
16032        deserialize_with = "crate::responses::deserialize_opt_timezone_name"
16033    )]
16034    pub timezone: Option<crate::TimezoneName>,
16035    #[serde(
16036        default,
16037        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
16038    )]
16039    pub say_callerid: Option<bool>,
16040    #[serde(default, deserialize_with = "deserialize_opt_play_instructions")]
16041    pub play_instructions: Option<PlayInstructions>,
16042    #[serde(
16043        default,
16044        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16045    )]
16046    pub language: Option<String>,
16047    #[serde(default, deserialize_with = "deserialize_opt_email_attachment_format")]
16048    pub email_attachment_format: Option<EmailAttachmentFormat>,
16049    #[serde(
16050        default,
16051        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16052    )]
16053    pub unavailable_message_recording: Option<u64>,
16054    #[serde(
16055        default,
16056        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16057    )]
16058    pub new: Option<u64>,
16059    #[serde(
16060        default,
16061        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16062    )]
16063    pub urgent: Option<u64>,
16064    #[serde(
16065        default,
16066        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
16067    )]
16068    pub transcription: Option<bool>,
16069    #[serde(
16070        default,
16071        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16072    )]
16073    pub transcription_locale: Option<String>,
16074    #[serde(
16075        default,
16076        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
16077    )]
16078    pub transcription_redaction: Option<bool>,
16079    #[serde(
16080        default,
16081        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
16082    )]
16083    pub transcription_sentiment: Option<bool>,
16084    #[serde(
16085        default,
16086        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
16087    )]
16088    pub transcription_summary: Option<bool>,
16089    #[serde(default, deserialize_with = "deserialize_opt_transcription_format")]
16090    pub transcription_format: Option<TranscriptionFormat>,
16091    #[serde(
16092        default,
16093        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16094    )]
16095    pub transcription_delay: Option<u64>,
16096}
16097
16098#[derive(Debug, Clone, Default, serde::Deserialize)]
16099pub struct GetVoicemailsResponse {
16100    #[serde(
16101        default,
16102        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16103    )]
16104    pub status: Option<String>,
16105    #[serde(
16106        default,
16107        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
16108    )]
16109    pub voicemails: Vec<GetVoicemailsResponseVoicemail>,
16110}
16111
16112/// Response body for [`Client::mail_fax_message_pdf`] (wire method `mailFaxMessagePDF`).
16113#[derive(Debug, Clone, Default, serde::Deserialize)]
16114pub struct MailFAXMessagePDFResponse {
16115    #[serde(
16116        default,
16117        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16118    )]
16119    pub status: Option<String>,
16120    #[serde(
16121        default,
16122        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16123    )]
16124    pub message_status: Option<String>,
16125}
16126
16127/// Response body for [`Client::mark_listened_voicemail_message`] (wire method `markListenedVoicemailMessage`).
16128#[derive(Debug, Clone, Default, serde::Deserialize)]
16129pub struct MarkListenedVoicemailMessageResponse {
16130    #[serde(
16131        default,
16132        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16133    )]
16134    pub status: Option<String>,
16135}
16136
16137/// Response body for [`Client::mark_urgent_voicemail_message`] (wire method `markUrgentVoicemailMessage`).
16138#[derive(Debug, Clone, Default, serde::Deserialize)]
16139pub struct MarkUrgentVoicemailMessageResponse {
16140    #[serde(
16141        default,
16142        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16143    )]
16144    pub status: Option<String>,
16145}
16146
16147/// Response body for [`Client::move_fax_message`] (wire method `moveFaxMessage`).
16148#[derive(Debug, Clone, Default, serde::Deserialize)]
16149pub struct MoveFAXMessageResponse {
16150    #[serde(
16151        default,
16152        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16153    )]
16154    pub status: Option<String>,
16155}
16156
16157/// Response body for [`Client::move_folder_voicemail_message`] (wire method `moveFolderVoicemailMessage`).
16158#[derive(Debug, Clone, Default, serde::Deserialize)]
16159pub struct MoveFolderVoicemailMessageResponse {
16160    #[serde(
16161        default,
16162        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16163    )]
16164    pub status: Option<String>,
16165}
16166
16167/// Response body for [`Client::order_did`] (wire method `orderDID`).
16168#[derive(Debug, Clone, Default, serde::Deserialize)]
16169pub struct OrderDIDResponse {
16170    #[serde(
16171        default,
16172        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16173    )]
16174    pub status: Option<String>,
16175}
16176
16177/// Response body for [`Client::order_did_international_geographic`] (wire method `orderDIDInternationalGeographic`).
16178#[derive(Debug, Clone, Default, serde::Deserialize)]
16179pub struct OrderDIDInternationalGeographicResponse {
16180    #[serde(
16181        default,
16182        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16183    )]
16184    pub status: Option<String>,
16185}
16186
16187/// Response body for [`Client::order_did_international_national`] (wire method `orderDIDInternationalNational`).
16188#[derive(Debug, Clone, Default, serde::Deserialize)]
16189pub struct OrderDIDInternationalNationalResponse {
16190    #[serde(
16191        default,
16192        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16193    )]
16194    pub status: Option<String>,
16195}
16196
16197/// Response body for [`Client::order_did_international_toll_free`] (wire method `orderDIDInternationalTollFree`).
16198#[derive(Debug, Clone, Default, serde::Deserialize)]
16199pub struct OrderDIDInternationalTollFreeResponse {
16200    #[serde(
16201        default,
16202        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16203    )]
16204    pub status: Option<String>,
16205}
16206
16207/// Response body for [`Client::order_did_virtual`] (wire method `orderDIDVirtual`).
16208#[derive(Debug, Clone, Default, serde::Deserialize)]
16209pub struct OrderDIDVirtualResponse {
16210    #[serde(
16211        default,
16212        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16213    )]
16214    pub status: Option<String>,
16215}
16216
16217/// Response body for [`Client::order_fax_number`] (wire method `orderFaxNumber`).
16218#[derive(Debug, Clone, Default, serde::Deserialize)]
16219pub struct OrderFAXNumberResponse {
16220    #[serde(
16221        default,
16222        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16223    )]
16224    pub status: Option<String>,
16225    #[serde(
16226        default,
16227        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
16228    )]
16229    pub dids: Vec<String>,
16230}
16231
16232/// Response body for [`Client::order_toll_free`] (wire method `orderTollFree`).
16233#[derive(Debug, Clone, Default, serde::Deserialize)]
16234pub struct OrderTollFreeResponse {
16235    #[serde(
16236        default,
16237        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16238    )]
16239    pub status: Option<String>,
16240}
16241
16242/// Response body for [`Client::order_vanity`] (wire method `orderVanity`).
16243#[derive(Debug, Clone, Default, serde::Deserialize)]
16244pub struct OrderVanityResponse {
16245    #[serde(
16246        default,
16247        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16248    )]
16249    pub status: Option<String>,
16250}
16251
16252/// Response body for [`Client::remove_did_vpri`] (wire method `removeDIDvPRI`).
16253#[derive(Debug, Clone, Default, serde::Deserialize)]
16254pub struct RemoveDIDvPRIResponse {
16255    #[serde(
16256        default,
16257        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16258    )]
16259    pub status: Option<String>,
16260    #[serde(
16261        default,
16262        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16263    )]
16264    pub vpri: Option<u64>,
16265    #[serde(
16266        default,
16267        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool",
16268        rename = "DIDRemoved"
16269    )]
16270    pub did_removed: Option<String>,
16271}
16272
16273/// Response body for [`Client::search_dids_can`] (wire method `searchDIDsCAN`).
16274#[derive(Debug, Clone, Default, serde::Deserialize)]
16275pub struct SearchDIDsCANResponseDID {
16276    #[serde(
16277        default,
16278        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16279    )]
16280    pub did: Option<String>,
16281    #[serde(
16282        default,
16283        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16284    )]
16285    pub ratecenter: Option<String>,
16286    #[serde(
16287        default,
16288        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16289    )]
16290    pub province: Option<String>,
16291    #[serde(
16292        default,
16293        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16294    )]
16295    pub province_description: Option<String>,
16296    #[serde(
16297        default,
16298        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16299    )]
16300    pub perminute_monthly: Option<rust_decimal::Decimal>,
16301    #[serde(
16302        default,
16303        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16304    )]
16305    pub perminute_minute: Option<rust_decimal::Decimal>,
16306    #[serde(
16307        default,
16308        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16309    )]
16310    pub perminute_setup: Option<rust_decimal::Decimal>,
16311    #[serde(
16312        default,
16313        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16314    )]
16315    pub flat_monthly: Option<rust_decimal::Decimal>,
16316    #[serde(
16317        default,
16318        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16319    )]
16320    pub flat_minute: Option<rust_decimal::Decimal>,
16321    #[serde(
16322        default,
16323        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16324    )]
16325    pub flat_setup: Option<rust_decimal::Decimal>,
16326}
16327
16328#[derive(Debug, Clone, Default, serde::Deserialize)]
16329pub struct SearchDIDsCANResponse {
16330    #[serde(
16331        default,
16332        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16333    )]
16334    pub status: Option<String>,
16335    #[serde(
16336        default,
16337        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
16338    )]
16339    pub dids: Vec<SearchDIDsCANResponseDID>,
16340}
16341
16342/// Response body for [`Client::search_dids_usa`] (wire method `searchDIDsUSA`).
16343#[derive(Debug, Clone, Default, serde::Deserialize)]
16344pub struct SearchDIDsUSAResponseDID {
16345    #[serde(
16346        default,
16347        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16348    )]
16349    pub did: Option<String>,
16350    #[serde(
16351        default,
16352        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16353    )]
16354    pub ratecenter: Option<String>,
16355    #[serde(
16356        default,
16357        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16358    )]
16359    pub state: Option<String>,
16360    #[serde(
16361        default,
16362        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16363    )]
16364    pub state_description: Option<String>,
16365    #[serde(
16366        default,
16367        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16368    )]
16369    pub perminute_monthly: Option<rust_decimal::Decimal>,
16370    #[serde(
16371        default,
16372        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16373    )]
16374    pub perminute_minute: Option<rust_decimal::Decimal>,
16375    #[serde(
16376        default,
16377        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16378    )]
16379    pub perminute_setup: Option<rust_decimal::Decimal>,
16380    #[serde(
16381        default,
16382        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16383    )]
16384    pub flat_monthly: Option<rust_decimal::Decimal>,
16385    #[serde(
16386        default,
16387        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16388    )]
16389    pub flat_minute: Option<rust_decimal::Decimal>,
16390    #[serde(
16391        default,
16392        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16393    )]
16394    pub flat_setup: Option<rust_decimal::Decimal>,
16395}
16396
16397#[derive(Debug, Clone, Default, serde::Deserialize)]
16398pub struct SearchDIDsUSAResponse {
16399    #[serde(
16400        default,
16401        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16402    )]
16403    pub status: Option<String>,
16404    #[serde(
16405        default,
16406        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
16407    )]
16408    pub dids: Vec<SearchDIDsUSAResponseDID>,
16409}
16410
16411/// Response body for [`Client::search_fax_area_code_can`] (wire method `searchFaxAreaCodeCAN`).
16412#[derive(Debug, Clone, Default, serde::Deserialize)]
16413pub struct SearchFAXAreaCodeCANResponseRatecenter {
16414    #[serde(
16415        default,
16416        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16417    )]
16418    pub area_code: Option<u64>,
16419    #[serde(
16420        default,
16421        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
16422    )]
16423    pub available: Option<bool>,
16424    #[serde(
16425        default,
16426        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16427    )]
16428    pub ratecenter: Option<String>,
16429}
16430
16431#[derive(Debug, Clone, Default, serde::Deserialize)]
16432pub struct SearchFAXAreaCodeCANResponse {
16433    #[serde(
16434        default,
16435        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16436    )]
16437    pub status: Option<String>,
16438    #[serde(
16439        default,
16440        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
16441    )]
16442    pub ratecenters: Vec<SearchFAXAreaCodeCANResponseRatecenter>,
16443}
16444
16445/// Response body for [`Client::search_fax_area_code_usa`] (wire method `searchFaxAreaCodeUSA`).
16446#[derive(Debug, Clone, Default, serde::Deserialize)]
16447pub struct SearchFAXAreaCodeUSAResponseRatecenter {
16448    #[serde(
16449        default,
16450        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16451    )]
16452    pub area_code: Option<u64>,
16453    #[serde(
16454        default,
16455        deserialize_with = "crate::responses::deserialize_opt_bool_from_string_number_or_yn"
16456    )]
16457    pub available: Option<bool>,
16458    #[serde(
16459        default,
16460        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16461    )]
16462    pub ratecenter: Option<String>,
16463}
16464
16465#[derive(Debug, Clone, Default, serde::Deserialize)]
16466pub struct SearchFAXAreaCodeUSAResponse {
16467    #[serde(
16468        default,
16469        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16470    )]
16471    pub status: Option<String>,
16472    #[serde(
16473        default,
16474        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
16475    )]
16476    pub ratecenters: Vec<SearchFAXAreaCodeUSAResponseRatecenter>,
16477}
16478
16479/// Response body for [`Client::search_toll_free_can_us`] (wire method `searchTollFreeCanUS`).
16480#[derive(Debug, Clone, Default, serde::Deserialize)]
16481pub struct SearchTollFreeCANUSResponseDID {
16482    #[serde(
16483        default,
16484        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16485    )]
16486    pub did: Option<String>,
16487    #[serde(
16488        default,
16489        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16490    )]
16491    pub monthly: Option<rust_decimal::Decimal>,
16492    #[serde(
16493        default,
16494        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16495    )]
16496    pub minute: Option<rust_decimal::Decimal>,
16497    #[serde(
16498        default,
16499        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16500    )]
16501    pub setup: Option<rust_decimal::Decimal>,
16502}
16503
16504#[derive(Debug, Clone, Default, serde::Deserialize)]
16505pub struct SearchTollFreeCANUSResponse {
16506    #[serde(
16507        default,
16508        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16509    )]
16510    pub status: Option<String>,
16511    #[serde(
16512        default,
16513        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
16514    )]
16515    pub dids: Vec<SearchTollFreeCANUSResponseDID>,
16516}
16517
16518/// Response body for [`Client::search_toll_free_usa`] (wire method `searchTollFreeUSA`).
16519#[derive(Debug, Clone, Default, serde::Deserialize)]
16520pub struct SearchTollFreeUSAResponseDID {
16521    #[serde(
16522        default,
16523        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16524    )]
16525    pub did: Option<String>,
16526    #[serde(
16527        default,
16528        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16529    )]
16530    pub monthly: Option<rust_decimal::Decimal>,
16531    #[serde(
16532        default,
16533        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16534    )]
16535    pub minute_usa: Option<rust_decimal::Decimal>,
16536    #[serde(
16537        default,
16538        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16539    )]
16540    pub minute_canada: Option<rust_decimal::Decimal>,
16541    #[serde(
16542        default,
16543        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16544    )]
16545    pub minute_puertorico: Option<rust_decimal::Decimal>,
16546    #[serde(
16547        default,
16548        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16549    )]
16550    pub minute_alaska: Option<rust_decimal::Decimal>,
16551    #[serde(
16552        default,
16553        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16554    )]
16555    pub setup: Option<u64>,
16556}
16557
16558#[derive(Debug, Clone, Default, serde::Deserialize)]
16559pub struct SearchTollFreeUSAResponse {
16560    #[serde(
16561        default,
16562        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16563    )]
16564    pub status: Option<String>,
16565    #[serde(
16566        default,
16567        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
16568    )]
16569    pub dids: Vec<SearchTollFreeUSAResponseDID>,
16570}
16571
16572/// Response body for [`Client::search_vanity`] (wire method `searchVanity`).
16573#[derive(Debug, Clone, Default, serde::Deserialize)]
16574pub struct SearchVanityResponseDID {
16575    #[serde(
16576        default,
16577        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16578    )]
16579    pub did: Option<String>,
16580    #[serde(
16581        default,
16582        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16583    )]
16584    pub monthly_american: Option<rust_decimal::Decimal>,
16585    #[serde(
16586        default,
16587        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16588    )]
16589    pub monthly_canadian: Option<rust_decimal::Decimal>,
16590    #[serde(
16591        default,
16592        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16593    )]
16594    pub minute_american_usa: Option<rust_decimal::Decimal>,
16595    #[serde(
16596        default,
16597        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16598    )]
16599    pub minute_american_canada: Option<rust_decimal::Decimal>,
16600    #[serde(
16601        default,
16602        deserialize_with = "crate::responses::deserialize_opt_decimal_from_string_or_number"
16603    )]
16604    pub minute_canadian: Option<rust_decimal::Decimal>,
16605    #[serde(
16606        default,
16607        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16608    )]
16609    pub setup_american: Option<u64>,
16610    #[serde(
16611        default,
16612        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16613    )]
16614    pub setup_canadian: Option<u64>,
16615}
16616
16617#[derive(Debug, Clone, Default, serde::Deserialize)]
16618pub struct SearchVanityResponse {
16619    #[serde(
16620        default,
16621        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16622    )]
16623    pub status: Option<String>,
16624    #[serde(
16625        default,
16626        deserialize_with = "crate::responses::deserialize_vec_from_single_or_seq"
16627    )]
16628    pub dids: Vec<SearchVanityResponseDID>,
16629}
16630
16631/// Response body for [`Client::send_call_recording_email`] (wire method `sendCallRecordingEmail`).
16632#[derive(Debug, Clone, Default, serde::Deserialize)]
16633pub struct SendCallRecordingEmailResponse {
16634    #[serde(
16635        default,
16636        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16637    )]
16638    pub status: Option<String>,
16639    #[serde(
16640        default,
16641        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16642    )]
16643    pub msg: Option<String>,
16644}
16645
16646/// Response body for [`Client::send_fax_message`] (wire method `sendFaxMessage`).
16647#[derive(Debug, Clone, Default, serde::Deserialize)]
16648pub struct SendFAXMessageResponse {
16649    #[serde(
16650        default,
16651        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16652    )]
16653    pub status: Option<String>,
16654}
16655
16656/// Response body for [`Client::send_mms`] (wire method `sendMMS`).
16657#[derive(Debug, Clone, Default, serde::Deserialize)]
16658pub struct SendMMSResponse {
16659    #[serde(
16660        default,
16661        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16662    )]
16663    pub status: Option<String>,
16664    #[serde(
16665        default,
16666        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16667    )]
16668    pub mms: Option<u64>,
16669}
16670
16671/// Response body for [`Client::send_sms`] (wire method `sendSMS`).
16672#[derive(Debug, Clone, Default, serde::Deserialize)]
16673pub struct SendSMSResponse {
16674    #[serde(
16675        default,
16676        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16677    )]
16678    pub status: Option<String>,
16679    #[serde(
16680        default,
16681        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16682    )]
16683    pub sms: Option<u64>,
16684}
16685
16686/// Response body for [`Client::send_voicemail_email`] (wire method `sendVoicemailEmail`).
16687#[derive(Debug, Clone, Default, serde::Deserialize)]
16688pub struct SendVoicemailEmailResponse {
16689    #[serde(
16690        default,
16691        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16692    )]
16693    pub status: Option<String>,
16694}
16695
16696/// Response body for [`Client::set_call_hunting`] (wire method `setCallHunting`).
16697#[derive(Debug, Clone, Default, serde::Deserialize)]
16698pub struct SetCallHuntingResponse {
16699    #[serde(
16700        default,
16701        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16702    )]
16703    pub status: Option<String>,
16704    #[serde(
16705        default,
16706        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16707    )]
16708    pub call_hunting: Option<u64>,
16709}
16710
16711/// Response body for [`Client::set_call_parking`] (wire method `setCallParking`).
16712#[derive(Debug, Clone, Default, serde::Deserialize)]
16713pub struct SetCallParkingResponse {
16714    #[serde(
16715        default,
16716        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16717    )]
16718    pub status: Option<String>,
16719    #[serde(
16720        default,
16721        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16722    )]
16723    pub callparking: Option<u64>,
16724}
16725
16726/// Response body for [`Client::set_callback`] (wire method `setCallback`).
16727#[derive(Debug, Clone, Default, serde::Deserialize)]
16728pub struct SetCallbackResponse {
16729    #[serde(
16730        default,
16731        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16732    )]
16733    pub status: Option<String>,
16734    #[serde(
16735        default,
16736        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16737    )]
16738    pub callback: Option<u64>,
16739}
16740
16741/// Response body for [`Client::set_caller_id_filtering`] (wire method `setCallerIDFiltering`).
16742#[derive(Debug, Clone, Default, serde::Deserialize)]
16743pub struct SetCallerIDFilteringResponse {
16744    #[serde(
16745        default,
16746        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16747    )]
16748    pub status: Option<String>,
16749    #[serde(
16750        default,
16751        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16752    )]
16753    pub filtering: Option<u64>,
16754}
16755
16756/// Response body for [`Client::set_client`] (wire method `setClient`).
16757#[derive(Debug, Clone, Default, serde::Deserialize)]
16758pub struct SetClientResponse {
16759    #[serde(
16760        default,
16761        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16762    )]
16763    pub status: Option<String>,
16764}
16765
16766/// Response body for [`Client::set_client_threshold`] (wire method `setClientThreshold`).
16767#[derive(Debug, Clone, Default, serde::Deserialize)]
16768pub struct SetClientThresholdResponse {
16769    #[serde(
16770        default,
16771        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16772    )]
16773    pub status: Option<String>,
16774}
16775
16776/// Response body for [`Client::set_conference`] (wire method `setConference`).
16777#[derive(Debug, Clone, Default, serde::Deserialize)]
16778pub struct SetConferenceResponse {
16779    #[serde(
16780        default,
16781        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16782    )]
16783    pub status: Option<String>,
16784    #[serde(
16785        default,
16786        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16787    )]
16788    pub conference: Option<u64>,
16789}
16790
16791/// Response body for [`Client::set_conference_member`] (wire method `setConferenceMember`).
16792#[derive(Debug, Clone, Default, serde::Deserialize)]
16793pub struct SetConferenceMemberResponse {
16794    #[serde(
16795        default,
16796        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16797    )]
16798    pub status: Option<String>,
16799    #[serde(
16800        default,
16801        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16802    )]
16803    pub member: Option<u64>,
16804}
16805
16806/// Response body for [`Client::set_did_billing_type`] (wire method `setDIDBillingType`).
16807#[derive(Debug, Clone, Default, serde::Deserialize)]
16808pub struct SetDIDBillingTypeResponse {
16809    #[serde(
16810        default,
16811        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16812    )]
16813    pub status: Option<String>,
16814}
16815
16816/// Response body for [`Client::set_did_info`] (wire method `setDIDInfo`).
16817#[derive(Debug, Clone, Default, serde::Deserialize)]
16818pub struct SetDIDInfoResponse {
16819    #[serde(
16820        default,
16821        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16822    )]
16823    pub status: Option<String>,
16824}
16825
16826/// Response body for [`Client::set_did_pop`] (wire method `setDIDPOP`).
16827#[derive(Debug, Clone, Default, serde::Deserialize)]
16828pub struct SetDIDPOPResponse {
16829    #[serde(
16830        default,
16831        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16832    )]
16833    pub status: Option<String>,
16834}
16835
16836/// Response body for [`Client::set_did_routing`] (wire method `setDIDRouting`).
16837#[derive(Debug, Clone, Default, serde::Deserialize)]
16838pub struct SetDIDRoutingResponse {
16839    #[serde(
16840        default,
16841        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16842    )]
16843    pub status: Option<String>,
16844}
16845
16846/// Response body for [`Client::set_did_voicemail`] (wire method `setDIDVoicemail`).
16847#[derive(Debug, Clone, Default, serde::Deserialize)]
16848pub struct SetDIDVoicemailResponse {
16849    #[serde(
16850        default,
16851        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16852    )]
16853    pub status: Option<String>,
16854}
16855
16856/// Response body for [`Client::set_disa`] (wire method `setDISA`).
16857#[derive(Debug, Clone, Default, serde::Deserialize)]
16858pub struct SetDISAResponse {
16859    #[serde(
16860        default,
16861        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16862    )]
16863    pub status: Option<String>,
16864    #[serde(
16865        default,
16866        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16867    )]
16868    pub disa: Option<u64>,
16869}
16870
16871/// Response body for [`Client::set_email_to_fax`] (wire method `setEmailToFax`).
16872#[derive(Debug, Clone, Default, serde::Deserialize)]
16873pub struct SetEmailToFAXResponse {
16874    #[serde(
16875        default,
16876        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16877    )]
16878    pub status: Option<String>,
16879}
16880
16881/// Response body for [`Client::set_fax_folder`] (wire method `setFaxFolder`).
16882#[derive(Debug, Clone, Default, serde::Deserialize)]
16883pub struct SetFAXFolderResponse {
16884    #[serde(
16885        default,
16886        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16887    )]
16888    pub status: Option<String>,
16889}
16890
16891/// Response body for [`Client::set_fax_number_email`] (wire method `setFaxNumberEmail`).
16892#[derive(Debug, Clone, Default, serde::Deserialize)]
16893pub struct SetFAXNumberEmailResponse {
16894    #[serde(
16895        default,
16896        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16897    )]
16898    pub status: Option<String>,
16899}
16900
16901/// Response body for [`Client::set_fax_number_info`] (wire method `setFaxNumberInfo`).
16902#[derive(Debug, Clone, Default, serde::Deserialize)]
16903pub struct SetFAXNumberInfoResponse {
16904    #[serde(
16905        default,
16906        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16907    )]
16908    pub status: Option<String>,
16909}
16910
16911/// Response body for [`Client::set_fax_number_url_callback`] (wire method `setFaxNumberURLCallback`).
16912#[derive(Debug, Clone, Default, serde::Deserialize)]
16913pub struct SetFAXNumberURLCallbackResponse {
16914    #[serde(
16915        default,
16916        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16917    )]
16918    pub status: Option<String>,
16919}
16920
16921/// Response body for [`Client::set_forwarding`] (wire method `setForwarding`).
16922#[derive(Debug, Clone, Default, serde::Deserialize)]
16923pub struct SetForwardingResponse {
16924    #[serde(
16925        default,
16926        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16927    )]
16928    pub status: Option<String>,
16929    #[serde(
16930        default,
16931        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16932    )]
16933    pub forwarding: Option<u64>,
16934}
16935
16936/// Response body for [`Client::set_ivr`] (wire method `setIVR`).
16937#[derive(Debug, Clone, Default, serde::Deserialize)]
16938pub struct SetIVRResponse {
16939    #[serde(
16940        default,
16941        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16942    )]
16943    pub status: Option<String>,
16944    #[serde(
16945        default,
16946        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16947    )]
16948    pub ivr: Option<u64>,
16949}
16950
16951/// Response body for [`Client::set_location`] (wire method `setLocation`).
16952#[derive(Debug, Clone, Default, serde::Deserialize)]
16953pub struct SetLocationResponse {
16954    #[serde(
16955        default,
16956        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16957    )]
16958    pub status: Option<String>,
16959}
16960
16961/// Response body for [`Client::set_music_on_hold`] (wire method `setMusicOnHold`).
16962#[derive(Debug, Clone, Default, serde::Deserialize)]
16963pub struct SetMusicOnHoldResponse {
16964    #[serde(
16965        default,
16966        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16967    )]
16968    pub status: Option<String>,
16969}
16970
16971/// Response body for [`Client::set_phonebook`] (wire method `setPhonebook`).
16972#[derive(Debug, Clone, Default, serde::Deserialize)]
16973pub struct SetPhonebookResponse {
16974    #[serde(
16975        default,
16976        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16977    )]
16978    pub status: Option<String>,
16979    #[serde(
16980        default,
16981        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16982    )]
16983    pub phonebook: Option<u64>,
16984}
16985
16986/// Response body for [`Client::set_phonebook_group`] (wire method `setPhonebookGroup`).
16987#[derive(Debug, Clone, Default, serde::Deserialize)]
16988pub struct SetPhonebookGroupResponse {
16989    #[serde(
16990        default,
16991        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
16992    )]
16993    pub status: Option<String>,
16994    #[serde(
16995        default,
16996        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
16997    )]
16998    pub group: Option<u64>,
16999}
17000
17001/// Response body for [`Client::set_queue`] (wire method `setQueue`).
17002#[derive(Debug, Clone, Default, serde::Deserialize)]
17003pub struct SetQueueResponse {
17004    #[serde(
17005        default,
17006        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
17007    )]
17008    pub status: Option<String>,
17009    #[serde(
17010        default,
17011        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
17012    )]
17013    pub queue: Option<u64>,
17014}
17015
17016/// Response body for [`Client::set_recording`] (wire method `setRecording`).
17017#[derive(Debug, Clone, Default, serde::Deserialize)]
17018pub struct SetRecordingResponse {
17019    #[serde(
17020        default,
17021        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
17022    )]
17023    pub status: Option<String>,
17024    #[serde(
17025        default,
17026        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
17027    )]
17028    pub recording: Option<u64>,
17029}
17030
17031/// Response body for [`Client::set_ring_group`] (wire method `setRingGroup`).
17032#[derive(Debug, Clone, Default, serde::Deserialize)]
17033pub struct SetRingGroupResponse {
17034    #[serde(
17035        default,
17036        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
17037    )]
17038    pub status: Option<String>,
17039    #[serde(
17040        default,
17041        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
17042    )]
17043    pub ring_group: Option<u64>,
17044}
17045
17046/// Response body for [`Client::set_sip_uri`] (wire method `setSIPURI`).
17047#[derive(Debug, Clone, Default, serde::Deserialize)]
17048pub struct SetSIPURIResponse {
17049    #[serde(
17050        default,
17051        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
17052    )]
17053    pub status: Option<String>,
17054}
17055
17056/// Response body for [`Client::set_sms`] (wire method `setSMS`).
17057#[derive(Debug, Clone, Default, serde::Deserialize)]
17058pub struct SetSMSResponse {
17059    #[serde(
17060        default,
17061        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
17062    )]
17063    pub status: Option<String>,
17064    #[serde(
17065        default,
17066        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number",
17067        rename = "sipuri"
17068    )]
17069    pub sip_uri: Option<u64>,
17070}
17071
17072/// Response body for [`Client::set_static_member`] (wire method `setStaticMember`).
17073#[derive(Debug, Clone, Default, serde::Deserialize)]
17074pub struct SetStaticMemberResponse {
17075    #[serde(
17076        default,
17077        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
17078    )]
17079    pub status: Option<String>,
17080    #[serde(
17081        default,
17082        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
17083    )]
17084    pub member: Option<u64>,
17085}
17086
17087/// Response body for [`Client::set_sub_account`] (wire method `setSubAccount`).
17088#[derive(Debug, Clone, Default, serde::Deserialize)]
17089pub struct SetSubAccountResponse {
17090    #[serde(
17091        default,
17092        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
17093    )]
17094    pub status: Option<String>,
17095}
17096
17097/// Response body for [`Client::set_time_condition`] (wire method `setTimeCondition`).
17098#[derive(Debug, Clone, Default, serde::Deserialize)]
17099pub struct SetTimeConditionResponse {
17100    #[serde(
17101        default,
17102        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
17103    )]
17104    pub status: Option<String>,
17105    #[serde(
17106        default,
17107        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
17108    )]
17109    pub timecondition: Option<u64>,
17110}
17111
17112/// Response body for [`Client::set_voicemail`] (wire method `setVoicemail`).
17113#[derive(Debug, Clone, Default, serde::Deserialize)]
17114pub struct SetVoicemailResponse {
17115    #[serde(
17116        default,
17117        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
17118    )]
17119    pub status: Option<String>,
17120}
17121
17122/// Response body for [`Client::signup_client`] (wire method `signupClient`).
17123#[derive(Debug, Clone, Default, serde::Deserialize)]
17124pub struct SignupClientResponse {
17125    #[serde(
17126        default,
17127        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
17128    )]
17129    pub status: Option<String>,
17130    #[serde(
17131        default,
17132        deserialize_with = "crate::responses::deserialize_opt_u64_from_string_or_number"
17133    )]
17134    pub client: Option<u64>,
17135}
17136
17137/// Response body for [`Client::unconnect_did`] (wire method `unconnectDID`).
17138#[derive(Debug, Clone, Default, serde::Deserialize)]
17139pub struct UnconnectDIDResponse {
17140    #[serde(
17141        default,
17142        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
17143    )]
17144    pub status: Option<String>,
17145}
17146
17147/// Response body for [`Client::unconnect_fax`] (wire method `unconnectFAX`).
17148#[derive(Debug, Clone, Default, serde::Deserialize)]
17149pub struct UnconnectFAXResponse {
17150    #[serde(
17151        default,
17152        deserialize_with = "crate::responses::deserialize_opt_string_from_string_number_or_bool"
17153    )]
17154    pub status: Option<String>,
17155}
17156
17157impl Client {
17158    /// \- Adds a Charge to a specific Reseller Client
17159    ///
17160    /// Call the `addCharge` API method and deserialize into [`AddChargeResponse`].
17161    pub async fn add_charge(&self, params: &AddChargeParams) -> Result<AddChargeResponse> {
17162        self.call("addCharge", params).await
17163    }
17164
17165    /// Call the `addCharge` API method and return the raw JSON envelope.
17166    pub async fn add_charge_raw(&self, params: &AddChargeParams) -> Result<Value> {
17167        self.call_raw("addCharge", params).await
17168    }
17169
17170    /// \- Add an invoice file to a portability process.
17171    ///
17172    /// Call the `addLNPFile` API method and deserialize into [`AddLNPFileResponse`].
17173    pub async fn add_lnp_file(&self, params: &AddLNPFileParams) -> Result<AddLNPFileResponse> {
17174        self.call("addLNPFile", params).await
17175    }
17176
17177    /// Call the `addLNPFile` API method and return the raw JSON envelope.
17178    pub async fn add_lnp_file_raw(&self, params: &AddLNPFileParams) -> Result<Value> {
17179        self.call_raw("addLNPFile", params).await
17180    }
17181
17182    /// \- Add one or more numbers to start a portability process.
17183    ///
17184    /// Call the `addLNPPort` API method and deserialize into [`AddLNPPortResponse`].
17185    pub async fn add_lnp_port(&self, params: &AddLNPPortParams) -> Result<AddLNPPortResponse> {
17186        self.call("addLNPPort", params).await
17187    }
17188
17189    /// Call the `addLNPPort` API method and return the raw JSON envelope.
17190    pub async fn add_lnp_port_raw(&self, params: &AddLNPPortParams) -> Result<Value> {
17191        self.call_raw("addLNPPort", params).await
17192    }
17193
17194    /// \- Add Member to a Conference
17195    ///
17196    /// Call the `addMemberToConference` API method and deserialize into [`AddMemberToConferenceResponse`].
17197    pub async fn add_member_to_conference(
17198        &self,
17199        params: &AddMemberToConferenceParams,
17200    ) -> Result<AddMemberToConferenceResponse> {
17201        self.call("addMemberToConference", params).await
17202    }
17203
17204    /// Call the `addMemberToConference` API method and return the raw JSON envelope.
17205    pub async fn add_member_to_conference_raw(
17206        &self,
17207        params: &AddMemberToConferenceParams,
17208    ) -> Result<Value> {
17209        self.call_raw("addMemberToConference", params).await
17210    }
17211
17212    /// \- Adds a Payment to a specific Reseller Client
17213    ///
17214    /// Call the `addPayment` API method and deserialize into [`AddPaymentResponse`].
17215    pub async fn add_payment(&self, params: &AddPaymentParams) -> Result<AddPaymentResponse> {
17216        self.call("addPayment", params).await
17217    }
17218
17219    /// Call the `addPayment` API method and return the raw JSON envelope.
17220    pub async fn add_payment_raw(&self, params: &AddPaymentParams) -> Result<Value> {
17221        self.call_raw("addPayment", params).await
17222    }
17223
17224    /// \- Assigns a Per Minute DID to a VPRI (Flat Rate DIDs can&rsquo;t be
17225    /// assigned)
17226    ///
17227    /// Call the `assignDIDvPRI` API method and deserialize into [`AssignDIDvPRIResponse`].
17228    pub async fn assign_did_vpri(
17229        &self,
17230        params: &AssignDIDvPRIParams,
17231    ) -> Result<AssignDIDvPRIResponse> {
17232        self.call("assignDIDvPRI", params).await
17233    }
17234
17235    /// Call the `assignDIDvPRI` API method and return the raw JSON envelope.
17236    pub async fn assign_did_vpri_raw(&self, params: &AssignDIDvPRIParams) -> Result<Value> {
17237        self.call_raw("assignDIDvPRI", params).await
17238    }
17239
17240    /// \- Backorder DID (CANADA) from a specific ratecenter and province.
17241    ///
17242    /// Call the `backOrderDIDCAN` API method and deserialize into [`BackOrderDIDCANResponse`].
17243    pub async fn back_order_did_can(
17244        &self,
17245        params: &BackOrderDIDCANParams,
17246    ) -> Result<BackOrderDIDCANResponse> {
17247        self.call("backOrderDIDCAN", params).await
17248    }
17249
17250    /// Call the `backOrderDIDCAN` API method and return the raw JSON envelope.
17251    pub async fn back_order_did_can_raw(&self, params: &BackOrderDIDCANParams) -> Result<Value> {
17252        self.call_raw("backOrderDIDCAN", params).await
17253    }
17254
17255    /// \- Backorder DID (USA) from a specific ratecenter and state.
17256    ///
17257    /// Call the `backOrderDIDUSA` API method and deserialize into [`BackOrderDIDUSAResponse`].
17258    pub async fn back_order_did_usa(
17259        &self,
17260        params: &BackOrderDIDUSAParams,
17261    ) -> Result<BackOrderDIDUSAResponse> {
17262        self.call("backOrderDIDUSA", params).await
17263    }
17264
17265    /// Call the `backOrderDIDUSA` API method and return the raw JSON envelope.
17266    pub async fn back_order_did_usa_raw(&self, params: &BackOrderDIDUSAParams) -> Result<Value> {
17267        self.call_raw("backOrderDIDUSA", params).await
17268    }
17269
17270    /// \- Deletes a specific DID from your Account.
17271    ///
17272    /// Call the `cancelDID` API method and deserialize into [`CancelDIDResponse`].
17273    pub async fn cancel_did(&self, params: &CancelDIDParams) -> Result<CancelDIDResponse> {
17274        self.call("cancelDID", params).await
17275    }
17276
17277    /// Call the `cancelDID` API method and return the raw JSON envelope.
17278    pub async fn cancel_did_raw(&self, params: &CancelDIDParams) -> Result<Value> {
17279        self.call_raw("cancelDID", params).await
17280    }
17281
17282    /// \- Deletes a specific Fax Number from your Account.
17283    ///
17284    /// Call the `cancelFaxNumber` API method and deserialize into [`CancelFAXNumberResponse`].
17285    pub async fn cancel_fax_number(
17286        &self,
17287        params: &CancelFAXNumberParams,
17288    ) -> Result<CancelFAXNumberResponse> {
17289        self.call("cancelFaxNumber", params).await
17290    }
17291
17292    /// Call the `cancelFaxNumber` API method and return the raw JSON envelope.
17293    pub async fn cancel_fax_number_raw(&self, params: &CancelFAXNumberParams) -> Result<Value> {
17294        self.call_raw("cancelFaxNumber", params).await
17295    }
17296
17297    /// \- Connects a specific DID to a specific Reseller Client Sub Account
17298    ///
17299    /// Call the `connectDID` API method and deserialize into [`ConnectDIDResponse`].
17300    pub async fn connect_did(&self, params: &ConnectDIDParams) -> Result<ConnectDIDResponse> {
17301        self.call("connectDID", params).await
17302    }
17303
17304    /// Call the `connectDID` API method and return the raw JSON envelope.
17305    pub async fn connect_did_raw(&self, params: &ConnectDIDParams) -> Result<Value> {
17306        self.call_raw("connectDID", params).await
17307    }
17308
17309    /// \- Connects a specific FAX DID to a specific Reseller Client Sub Account
17310    ///
17311    /// Call the `connectFAX` API method and deserialize into [`ConnectFAXResponse`].
17312    pub async fn connect_fax(&self, params: &ConnectFAXParams) -> Result<ConnectFAXResponse> {
17313        self.call("connectFAX", params).await
17314    }
17315
17316    /// Call the `connectFAX` API method and return the raw JSON envelope.
17317    pub async fn connect_fax_raw(&self, params: &ConnectFAXParams) -> Result<Value> {
17318        self.call_raw("connectFAX", params).await
17319    }
17320
17321    /// \- Adds a new Sub Account entry to your Account
17322    ///
17323    /// Call the `createSubAccount` API method and deserialize into [`CreateSubAccountResponse`].
17324    pub async fn create_sub_account(
17325        &self,
17326        params: &CreateSubAccountParams,
17327    ) -> Result<CreateSubAccountResponse> {
17328        self.call("createSubAccount", params).await
17329    }
17330
17331    /// Call the `createSubAccount` API method and return the raw JSON envelope.
17332    pub async fn create_sub_account_raw(&self, params: &CreateSubAccountParams) -> Result<Value> {
17333        self.call_raw("createSubAccount", params).await
17334    }
17335
17336    /// \- Adds a new Voicemail entry to your Account
17337    ///
17338    /// Call the `createVoicemail` API method and deserialize into [`CreateVoicemailResponse`].
17339    pub async fn create_voicemail(
17340        &self,
17341        params: &CreateVoicemailParams,
17342    ) -> Result<CreateVoicemailResponse> {
17343        self.call("createVoicemail", params).await
17344    }
17345
17346    /// Call the `createVoicemail` API method and return the raw JSON envelope.
17347    pub async fn create_voicemail_raw(&self, params: &CreateVoicemailParams) -> Result<Value> {
17348        self.call_raw("createVoicemail", params).await
17349    }
17350
17351    /// \- Deletes a specific Call Hunting from your Account.
17352    ///
17353    /// Call the `delCallHunting` API method and deserialize into [`DelCallHuntingResponse`].
17354    pub async fn del_call_hunting(
17355        &self,
17356        params: &DelCallHuntingParams,
17357    ) -> Result<DelCallHuntingResponse> {
17358        self.call("delCallHunting", params).await
17359    }
17360
17361    /// Call the `delCallHunting` API method and return the raw JSON envelope.
17362    pub async fn del_call_hunting_raw(&self, params: &DelCallHuntingParams) -> Result<Value> {
17363        self.call_raw("delCallHunting", params).await
17364    }
17365
17366    /// \- Deletes a specific Call Parking entry from your Account.
17367    ///
17368    /// Call the `delCallParking` API method and deserialize into [`DelCallParkingResponse`].
17369    pub async fn del_call_parking(
17370        &self,
17371        params: &DelCallParkingParams,
17372    ) -> Result<DelCallParkingResponse> {
17373        self.call("delCallParking", params).await
17374    }
17375
17376    /// Call the `delCallParking` API method and return the raw JSON envelope.
17377    pub async fn del_call_parking_raw(&self, params: &DelCallParkingParams) -> Result<Value> {
17378        self.call_raw("delCallParking", params).await
17379    }
17380
17381    /// \- Delete specific call recording, audio file and information related.
17382    ///
17383    /// Call the `delCallRecording` API method and deserialize into [`DelCallRecordingResponse`].
17384    pub async fn del_call_recording(
17385        &self,
17386        params: &DelCallRecordingParams,
17387    ) -> Result<DelCallRecordingResponse> {
17388        self.call("delCallRecording", params).await
17389    }
17390
17391    /// Call the `delCallRecording` API method and return the raw JSON envelope.
17392    pub async fn del_call_recording_raw(&self, params: &DelCallRecordingParams) -> Result<Value> {
17393        self.call_raw("delCallRecording", params).await
17394    }
17395
17396    /// \- Deletes a specific Callback from your Account.
17397    ///
17398    /// Call the `delCallback` API method and deserialize into [`DelCallbackResponse`].
17399    pub async fn del_callback(&self, params: &DelCallbackParams) -> Result<DelCallbackResponse> {
17400        self.call("delCallback", params).await
17401    }
17402
17403    /// Call the `delCallback` API method and return the raw JSON envelope.
17404    pub async fn del_callback_raw(&self, params: &DelCallbackParams) -> Result<Value> {
17405        self.call_raw("delCallback", params).await
17406    }
17407
17408    /// \- Deletes a specific CallerID Filtering from your Account.
17409    ///
17410    /// Call the `delCallerIDFiltering` API method and deserialize into [`DelCallerIDFilteringResponse`].
17411    pub async fn del_caller_id_filtering(
17412        &self,
17413        params: &DelCallerIDFilteringParams,
17414    ) -> Result<DelCallerIDFilteringResponse> {
17415        self.call("delCallerIDFiltering", params).await
17416    }
17417
17418    /// Call the `delCallerIDFiltering` API method and return the raw JSON envelope.
17419    pub async fn del_caller_id_filtering_raw(
17420        &self,
17421        params: &DelCallerIDFilteringParams,
17422    ) -> Result<Value> {
17423        self.call_raw("delCallerIDFiltering", params).await
17424    }
17425
17426    /// \- Deletes a specific reseller client from your Account.
17427    ///
17428    /// Call the `delClient` API method and deserialize into [`DelClientResponse`].
17429    pub async fn del_client(&self, params: &DelClientParams) -> Result<DelClientResponse> {
17430        self.call("delClient", params).await
17431    }
17432
17433    /// Call the `delClient` API method and return the raw JSON envelope.
17434    pub async fn del_client_raw(&self, params: &DelClientParams) -> Result<Value> {
17435        self.call_raw("delClient", params).await
17436    }
17437
17438    /// \- Deletes a specific Conference from your Account.
17439    ///
17440    /// Call the `delConference` API method and deserialize into [`DelConferenceResponse`].
17441    pub async fn del_conference(
17442        &self,
17443        params: &DelConferenceParams,
17444    ) -> Result<DelConferenceResponse> {
17445        self.call("delConference", params).await
17446    }
17447
17448    /// Call the `delConference` API method and return the raw JSON envelope.
17449    pub async fn del_conference_raw(&self, params: &DelConferenceParams) -> Result<Value> {
17450        self.call_raw("delConference", params).await
17451    }
17452
17453    /// \- Deletes a specific Member profile from your Account.
17454    ///
17455    /// Call the `delConferenceMember` API method and deserialize into [`DelConferenceMemberResponse`].
17456    pub async fn del_conference_member(
17457        &self,
17458        params: &DelConferenceMemberParams,
17459    ) -> Result<DelConferenceMemberResponse> {
17460        self.call("delConferenceMember", params).await
17461    }
17462
17463    /// Call the `delConferenceMember` API method and return the raw JSON envelope.
17464    pub async fn del_conference_member_raw(
17465        &self,
17466        params: &DelConferenceMemberParams,
17467    ) -> Result<Value> {
17468        self.call_raw("delConferenceMember", params).await
17469    }
17470
17471    /// \- Deletes a specific DISA from your Account.
17472    ///
17473    /// Call the `delDISA` API method and deserialize into [`DelDISAResponse`].
17474    pub async fn del_disa(&self, params: &DelDISAParams) -> Result<DelDISAResponse> {
17475        self.call("delDISA", params).await
17476    }
17477
17478    /// Call the `delDISA` API method and return the raw JSON envelope.
17479    pub async fn del_disa_raw(&self, params: &DelDISAParams) -> Result<Value> {
17480        self.call_raw("delDISA", params).await
17481    }
17482
17483    /// \- Deletes a specific "Email to Fax configuration" from your Account.
17484    ///
17485    /// Call the `delEmailToFax` API method and deserialize into [`DelEmailToFAXResponse`].
17486    pub async fn del_email_to_fax(
17487        &self,
17488        params: &DelEmailToFAXParams,
17489    ) -> Result<DelEmailToFAXResponse> {
17490        self.call("delEmailToFax", params).await
17491    }
17492
17493    /// Call the `delEmailToFax` API method and return the raw JSON envelope.
17494    pub async fn del_email_to_fax_raw(&self, params: &DelEmailToFAXParams) -> Result<Value> {
17495        self.call_raw("delEmailToFax", params).await
17496    }
17497
17498    /// \- Deletes a specific Fax Folder from your Account.
17499    ///
17500    /// Call the `delFaxFolder` API method and deserialize into [`DelFAXFolderResponse`].
17501    pub async fn del_fax_folder(
17502        &self,
17503        params: &DelFAXFolderParams,
17504    ) -> Result<DelFAXFolderResponse> {
17505        self.call("delFaxFolder", params).await
17506    }
17507
17508    /// Call the `delFaxFolder` API method and return the raw JSON envelope.
17509    pub async fn del_fax_folder_raw(&self, params: &DelFAXFolderParams) -> Result<Value> {
17510        self.call_raw("delFaxFolder", params).await
17511    }
17512
17513    /// \- Deletes a specific Forwarding from your Account.
17514    ///
17515    /// Call the `delForwarding` API method and deserialize into [`DelForwardingResponse`].
17516    pub async fn del_forwarding(
17517        &self,
17518        params: &DelForwardingParams,
17519    ) -> Result<DelForwardingResponse> {
17520        self.call("delForwarding", params).await
17521    }
17522
17523    /// Call the `delForwarding` API method and return the raw JSON envelope.
17524    pub async fn del_forwarding_raw(&self, params: &DelForwardingParams) -> Result<Value> {
17525        self.call_raw("delForwarding", params).await
17526    }
17527
17528    /// \- Deletes a specific IVR from your Account.
17529    ///
17530    /// Call the `delIVR` API method and deserialize into [`DelIVRResponse`].
17531    pub async fn del_ivr(&self, params: &DelIVRParams) -> Result<DelIVRResponse> {
17532        self.call("delIVR", params).await
17533    }
17534
17535    /// Call the `delIVR` API method and return the raw JSON envelope.
17536    pub async fn del_ivr_raw(&self, params: &DelIVRParams) -> Result<Value> {
17537        self.call_raw("delIVR", params).await
17538    }
17539
17540    /// Call the `delLocation` API method and deserialize into [`DelLocationResponse`].
17541    pub async fn del_location(&self, params: &DelLocationParams) -> Result<DelLocationResponse> {
17542        self.call("delLocation", params).await
17543    }
17544
17545    /// Call the `delLocation` API method and return the raw JSON envelope.
17546    pub async fn del_location_raw(&self, params: &DelLocationParams) -> Result<Value> {
17547        self.call_raw("delLocation", params).await
17548    }
17549
17550    /// \- Removes a member profile from a specific Conference from your Account
17551    ///
17552    /// Call the `delMemberFromConference` API method and deserialize into [`DelMemberFromConferenceResponse`].
17553    pub async fn del_member_from_conference(
17554        &self,
17555        params: &DelMemberFromConferenceParams,
17556    ) -> Result<DelMemberFromConferenceResponse> {
17557        self.call("delMemberFromConference", params).await
17558    }
17559
17560    /// Call the `delMemberFromConference` API method and return the raw JSON envelope.
17561    pub async fn del_member_from_conference_raw(
17562        &self,
17563        params: &DelMemberFromConferenceParams,
17564    ) -> Result<Value> {
17565        self.call_raw("delMemberFromConference", params).await
17566    }
17567
17568    /// \- Deletes all messages in all servers from a specific Voicemail from
17569    /// your Account
17570    ///
17571    /// Call the `delMessages` API method and deserialize into [`DelMessagesResponse`].
17572    pub async fn del_messages(&self, params: &DelMessagesParams) -> Result<DelMessagesResponse> {
17573        self.call("delMessages", params).await
17574    }
17575
17576    /// Call the `delMessages` API method and return the raw JSON envelope.
17577    pub async fn del_messages_raw(&self, params: &DelMessagesParams) -> Result<Value> {
17578        self.call_raw("delMessages", params).await
17579    }
17580
17581    /// \- Deletes a specific custom Music on Hold.
17582    ///
17583    /// Call the `delMusicOnHold` API method and deserialize into [`DelMusicOnHoldResponse`].
17584    pub async fn del_music_on_hold(
17585        &self,
17586        params: &DelMusicOnHoldParams,
17587    ) -> Result<DelMusicOnHoldResponse> {
17588        self.call("delMusicOnHold", params).await
17589    }
17590
17591    /// Call the `delMusicOnHold` API method and return the raw JSON envelope.
17592    pub async fn del_music_on_hold_raw(&self, params: &DelMusicOnHoldParams) -> Result<Value> {
17593        self.call_raw("delMusicOnHold", params).await
17594    }
17595
17596    /// \- Deletes a specific Phonebook from your Account.
17597    ///
17598    /// Call the `delPhonebook` API method and deserialize into [`DelPhonebookResponse`].
17599    pub async fn del_phonebook(&self, params: &DelPhonebookParams) -> Result<DelPhonebookResponse> {
17600        self.call("delPhonebook", params).await
17601    }
17602
17603    /// Call the `delPhonebook` API method and return the raw JSON envelope.
17604    pub async fn del_phonebook_raw(&self, params: &DelPhonebookParams) -> Result<Value> {
17605        self.call_raw("delPhonebook", params).await
17606    }
17607
17608    /// \- Deletes a specific Phonebook group from your Account.
17609    ///
17610    /// Call the `delPhonebookGroup` API method and deserialize into [`DelPhonebookGroupResponse`].
17611    pub async fn del_phonebook_group(
17612        &self,
17613        params: &DelPhonebookGroupParams,
17614    ) -> Result<DelPhonebookGroupResponse> {
17615        self.call("delPhonebookGroup", params).await
17616    }
17617
17618    /// Call the `delPhonebookGroup` API method and return the raw JSON envelope.
17619    pub async fn del_phonebook_group_raw(&self, params: &DelPhonebookGroupParams) -> Result<Value> {
17620        self.call_raw("delPhonebookGroup", params).await
17621    }
17622
17623    /// \- Deletes a specific Queue from your Account.
17624    ///
17625    /// Call the `delQueue` API method and deserialize into [`DelQueueResponse`].
17626    pub async fn del_queue(&self, params: &DelQueueParams) -> Result<DelQueueResponse> {
17627        self.call("delQueue", params).await
17628    }
17629
17630    /// Call the `delQueue` API method and return the raw JSON envelope.
17631    pub async fn del_queue_raw(&self, params: &DelQueueParams) -> Result<Value> {
17632        self.call_raw("delQueue", params).await
17633    }
17634
17635    /// \- Deletes a specific Recording from your Account.
17636    ///
17637    /// Call the `delRecording` API method and deserialize into [`DelRecordingResponse`].
17638    pub async fn del_recording(&self, params: &DelRecordingParams) -> Result<DelRecordingResponse> {
17639        self.call("delRecording", params).await
17640    }
17641
17642    /// Call the `delRecording` API method and return the raw JSON envelope.
17643    pub async fn del_recording_raw(&self, params: &DelRecordingParams) -> Result<Value> {
17644        self.call_raw("delRecording", params).await
17645    }
17646
17647    /// \- Deletes a specific Ring Group from your Account.
17648    ///
17649    /// Call the `delRingGroup` API method and deserialize into [`DelRingGroupResponse`].
17650    pub async fn del_ring_group(
17651        &self,
17652        params: &DelRingGroupParams,
17653    ) -> Result<DelRingGroupResponse> {
17654        self.call("delRingGroup", params).await
17655    }
17656
17657    /// Call the `delRingGroup` API method and return the raw JSON envelope.
17658    pub async fn del_ring_group_raw(&self, params: &DelRingGroupParams) -> Result<Value> {
17659        self.call_raw("delRingGroup", params).await
17660    }
17661
17662    /// \- Deletes a specific SIP URI from your Account.
17663    ///
17664    /// Call the `delSIPURI` API method and deserialize into [`DelSIPURIResponse`].
17665    pub async fn del_sip_uri(&self, params: &DelSIPURIParams) -> Result<DelSIPURIResponse> {
17666        self.call("delSIPURI", params).await
17667    }
17668
17669    /// Call the `delSIPURI` API method and return the raw JSON envelope.
17670    pub async fn del_sip_uri_raw(&self, params: &DelSIPURIParams) -> Result<Value> {
17671        self.call_raw("delSIPURI", params).await
17672    }
17673
17674    /// \- Deletes a specific Static Member from Queue.
17675    ///
17676    /// Call the `delStaticMember` API method and deserialize into [`DelStaticMemberResponse`].
17677    pub async fn del_static_member(
17678        &self,
17679        params: &DelStaticMemberParams,
17680    ) -> Result<DelStaticMemberResponse> {
17681        self.call("delStaticMember", params).await
17682    }
17683
17684    /// Call the `delStaticMember` API method and return the raw JSON envelope.
17685    pub async fn del_static_member_raw(&self, params: &DelStaticMemberParams) -> Result<Value> {
17686        self.call_raw("delStaticMember", params).await
17687    }
17688
17689    /// \- Deletes a specific Sub Account from your Account
17690    ///
17691    /// Call the `delSubAccount` API method and deserialize into [`DelSubAccountResponse`].
17692    pub async fn del_sub_account(
17693        &self,
17694        params: &DelSubAccountParams,
17695    ) -> Result<DelSubAccountResponse> {
17696        self.call("delSubAccount", params).await
17697    }
17698
17699    /// Call the `delSubAccount` API method and return the raw JSON envelope.
17700    pub async fn del_sub_account_raw(&self, params: &DelSubAccountParams) -> Result<Value> {
17701        self.call_raw("delSubAccount", params).await
17702    }
17703
17704    /// \- Deletes a specific Time Condition from your Account.
17705    ///
17706    /// Call the `delTimeCondition` API method and deserialize into [`DelTimeConditionResponse`].
17707    pub async fn del_time_condition(
17708        &self,
17709        params: &DelTimeConditionParams,
17710    ) -> Result<DelTimeConditionResponse> {
17711        self.call("delTimeCondition", params).await
17712    }
17713
17714    /// Call the `delTimeCondition` API method and return the raw JSON envelope.
17715    pub async fn del_time_condition_raw(&self, params: &DelTimeConditionParams) -> Result<Value> {
17716        self.call_raw("delTimeCondition", params).await
17717    }
17718
17719    /// \- Deletes a specific Voicemail from your Account
17720    ///
17721    /// Call the `delVoicemail` API method and deserialize into [`DelVoicemailResponse`].
17722    pub async fn del_voicemail(&self, params: &DelVoicemailParams) -> Result<DelVoicemailResponse> {
17723        self.call("delVoicemail", params).await
17724    }
17725
17726    /// Call the `delVoicemail` API method and return the raw JSON envelope.
17727    pub async fn del_voicemail_raw(&self, params: &DelVoicemailParams) -> Result<Value> {
17728        self.call_raw("delVoicemail", params).await
17729    }
17730
17731    /// \- Deletes a specific Fax Message from your Account.
17732    ///
17733    /// Call the `deleteFaxMessage` API method and deserialize into [`DeleteFAXMessageResponse`].
17734    pub async fn delete_fax_message(
17735        &self,
17736        params: &DeleteFAXMessageParams,
17737    ) -> Result<DeleteFAXMessageResponse> {
17738        self.call("deleteFaxMessage", params).await
17739    }
17740
17741    /// Call the `deleteFaxMessage` API method and return the raw JSON envelope.
17742    pub async fn delete_fax_message_raw(&self, params: &DeleteFAXMessageParams) -> Result<Value> {
17743        self.call_raw("deleteFaxMessage", params).await
17744    }
17745
17746    /// \- Deletes a specific MMS from your Account.
17747    ///
17748    /// Call the `deleteMMS` API method and deserialize into [`DeleteMMSResponse`].
17749    pub async fn delete_mms(&self, params: &DeleteMMSParams) -> Result<DeleteMMSResponse> {
17750        self.call("deleteMMS", params).await
17751    }
17752
17753    /// Call the `deleteMMS` API method and return the raw JSON envelope.
17754    pub async fn delete_mms_raw(&self, params: &DeleteMMSParams) -> Result<Value> {
17755        self.call_raw("deleteMMS", params).await
17756    }
17757
17758    /// \- Deletes a specific SMS from your Account.
17759    ///
17760    /// Call the `deleteSMS` API method and deserialize into [`DeleteSMSResponse`].
17761    pub async fn delete_sms(&self, params: &DeleteSMSParams) -> Result<DeleteSMSResponse> {
17762        self.call("deleteSMS", params).await
17763    }
17764
17765    /// Call the `deleteSMS` API method and return the raw JSON envelope.
17766    pub async fn delete_sms_raw(&self, params: &DeleteSMSParams) -> Result<Value> {
17767        self.call_raw("deleteSMS", params).await
17768    }
17769
17770    /// \- Retrieves a list of e911 Address Types if no additional parameter is
17771    /// provided.
17772    /// \- Retrieves a specific e911 Address Type if an Address code is provided.
17773    ///
17774    /// Call the `e911AddressTypes` API method and deserialize into [`E911AddressTypesResponse`].
17775    pub async fn e911_address_types(
17776        &self,
17777        params: &E911AddressTypesParams,
17778    ) -> Result<E911AddressTypesResponse> {
17779        self.call("e911AddressTypes", params).await
17780    }
17781
17782    /// Call the `e911AddressTypes` API method and return the raw JSON envelope.
17783    pub async fn e911_address_types_raw(&self, params: &E911AddressTypesParams) -> Result<Value> {
17784        self.call_raw("e911AddressTypes", params).await
17785    }
17786
17787    /// \- Cancel the e911 Service from a specific DID.
17788    ///
17789    /// Call the `e911Cancel` API method and deserialize into [`E911CancelResponse`].
17790    pub async fn e911_cancel(&self, params: &E911CancelParams) -> Result<E911CancelResponse> {
17791        self.call("e911Cancel", params).await
17792    }
17793
17794    /// Call the `e911Cancel` API method and return the raw JSON envelope.
17795    pub async fn e911_cancel_raw(&self, params: &E911CancelParams) -> Result<Value> {
17796        self.call_raw("e911Cancel", params).await
17797    }
17798
17799    /// \- Retrieves the e911 information from a specific DID.
17800    ///
17801    /// Call the `e911Info` API method and deserialize into [`E911InfoResponse`].
17802    pub async fn e911_info(&self, params: &E911InfoParams) -> Result<E911InfoResponse> {
17803        self.call("e911Info", params).await
17804    }
17805
17806    /// Call the `e911Info` API method and return the raw JSON envelope.
17807    pub async fn e911_info_raw(&self, params: &E911InfoParams) -> Result<Value> {
17808        self.call_raw("e911Info", params).await
17809    }
17810
17811    /// \- Subscribes your DID to the e911 Emergency Services.
17812    ///
17813    /// Call the `e911Provision` API method and deserialize into [`E911ProvisionResponse`].
17814    pub async fn e911_provision(
17815        &self,
17816        params: &E911ProvisionParams,
17817    ) -> Result<E911ProvisionResponse> {
17818        self.call("e911Provision", params).await
17819    }
17820
17821    /// Call the `e911Provision` API method and return the raw JSON envelope.
17822    pub async fn e911_provision_raw(&self, params: &E911ProvisionParams) -> Result<Value> {
17823        self.call_raw("e911Provision", params).await
17824    }
17825
17826    /// \- Subscribes your DID to the e911 Emergency Services.
17827    /// \- All e911 information will be validated by the VoIP.ms staff.
17828    ///
17829    /// Call the `e911ProvisionManually` API method and deserialize into [`E911ProvisionManuallyResponse`].
17830    pub async fn e911_provision_manually(
17831        &self,
17832        params: &E911ProvisionManuallyParams,
17833    ) -> Result<E911ProvisionManuallyResponse> {
17834        self.call("e911ProvisionManually", params).await
17835    }
17836
17837    /// Call the `e911ProvisionManually` API method and return the raw JSON envelope.
17838    pub async fn e911_provision_manually_raw(
17839        &self,
17840        params: &E911ProvisionManuallyParams,
17841    ) -> Result<Value> {
17842        self.call_raw("e911ProvisionManually", params).await
17843    }
17844
17845    /// \- Updates the Information from your e911 Emergency Services
17846    /// Subscription.
17847    ///
17848    /// Call the `e911Update` API method and deserialize into [`E911UpdateResponse`].
17849    pub async fn e911_update(&self, params: &E911UpdateParams) -> Result<E911UpdateResponse> {
17850        self.call("e911Update", params).await
17851    }
17852
17853    /// Call the `e911Update` API method and return the raw JSON envelope.
17854    pub async fn e911_update_raw(&self, params: &E911UpdateParams) -> Result<Value> {
17855        self.call_raw("e911Update", params).await
17856    }
17857
17858    /// \- Validates your e911 information in order to start your e911 Emergency
17859    /// Services Subscription.
17860    ///
17861    /// Call the `e911Validate` API method and deserialize into [`E911ValidateResponse`].
17862    pub async fn e911_validate(&self, params: &E911ValidateParams) -> Result<E911ValidateResponse> {
17863        self.call("e911Validate", params).await
17864    }
17865
17866    /// Call the `e911Validate` API method and return the raw JSON envelope.
17867    pub async fn e911_validate_raw(&self, params: &E911ValidateParams) -> Result<Value> {
17868        self.call_raw("e911Validate", params).await
17869    }
17870
17871    /// \- Retrieves a list of Allowed Codecs if no additional parameter is
17872    /// provided.
17873    /// \- Retrieves a specific Allowed Codec if a codec code is provided.
17874    ///
17875    /// Call the `getAllowedCodecs` API method and deserialize into [`GetAllowedCodecsResponse`].
17876    pub async fn get_allowed_codecs(
17877        &self,
17878        params: &GetAllowedCodecsParams,
17879    ) -> Result<GetAllowedCodecsResponse> {
17880        self.call("getAllowedCodecs", params).await
17881    }
17882
17883    /// Call the `getAllowedCodecs` API method and return the raw JSON envelope.
17884    pub async fn get_allowed_codecs_raw(&self, params: &GetAllowedCodecsParams) -> Result<Value> {
17885        self.call_raw("getAllowedCodecs", params).await
17886    }
17887
17888    /// \- Retrieves a list of Authentication Types if no additional parameter is
17889    /// provided.
17890    /// \- Retrieves a specific Authentication Type if an auth type code is
17891    /// provided.
17892    ///
17893    /// Call the `getAuthTypes` API method and deserialize into [`GetAuthTypesResponse`].
17894    pub async fn get_auth_types(
17895        &self,
17896        params: &GetAuthTypesParams,
17897    ) -> Result<GetAuthTypesResponse> {
17898        self.call("getAuthTypes", params).await
17899    }
17900
17901    /// Call the `getAuthTypes` API method and return the raw JSON envelope.
17902    pub async fn get_auth_types_raw(&self, params: &GetAuthTypesParams) -> Result<Value> {
17903        self.call_raw("getAuthTypes", params).await
17904    }
17905
17906    /// \- Retrieves a list of backorder DIDs if no additional parameter is
17907    /// provided.
17908    /// \- Retrieves a specific backorder DID if a backorder DID code is
17909    /// provided.
17910    ///
17911    /// Call the `getBackOrders` API method and deserialize into [`GetBackOrdersResponse`].
17912    pub async fn get_back_orders(
17913        &self,
17914        params: &GetBackOrdersParams,
17915    ) -> Result<GetBackOrdersResponse> {
17916        self.call("getBackOrders", params).await
17917    }
17918
17919    /// Call the `getBackOrders` API method and return the raw JSON envelope.
17920    pub async fn get_back_orders_raw(&self, params: &GetBackOrdersParams) -> Result<Value> {
17921        self.call_raw("getBackOrders", params).await
17922    }
17923
17924    /// \- Retrieves Balance for your Account if no additional parameter is
17925    /// provided.
17926    /// \- Retrieves Balance and Calls Statistics for your Account if "advanced"
17927    /// parameter is true.
17928    ///
17929    /// Call the `getBalance` API method and deserialize into [`GetBalanceResponse`].
17930    pub async fn get_balance(&self, params: &GetBalanceParams) -> Result<GetBalanceResponse> {
17931        self.call("getBalance", params).await
17932    }
17933
17934    /// Call the `getBalance` API method and return the raw JSON envelope.
17935    pub async fn get_balance_raw(&self, params: &GetBalanceParams) -> Result<Value> {
17936        self.call_raw("getBalance", params).await
17937    }
17938
17939    /// \- Retrieves a list of Balance Management Options if no additional
17940    /// parameter is provided.
17941    /// \- Retrieves a specific Balance Management Option if a code is provided.
17942    ///
17943    /// Call the `getBalanceManagement` API method and deserialize into [`GetBalanceManagementResponse`].
17944    pub async fn get_balance_management(
17945        &self,
17946        params: &GetBalanceManagementParams,
17947    ) -> Result<GetBalanceManagementResponse> {
17948        self.call("getBalanceManagement", params).await
17949    }
17950
17951    /// Call the `getBalanceManagement` API method and return the raw JSON envelope.
17952    pub async fn get_balance_management_raw(
17953        &self,
17954        params: &GetBalanceManagementParams,
17955    ) -> Result<Value> {
17956        self.call_raw("getBalanceManagement", params).await
17957    }
17958
17959    /// \- Retrieves the Call Detail Records of all your calls.
17960    ///
17961    /// Call the `getCDR` API method and deserialize into [`GetCDRResponse`].
17962    ///
17963    /// A `timezone` zone is resolved to the numeric UTC offset the wire
17964    /// expects, at the query start date; a zone that cannot be resolved
17965    /// is [`Error::InvalidParams`](crate::Error::InvalidParams).
17966    pub async fn get_cdr(&self, params: &GetCDRParams) -> Result<GetCDRResponse> {
17967        self.call("getCDR", &GetCDRParamsWire::try_from(params)?)
17968            .await
17969    }
17970
17971    /// Call the `getCDR` API method and return the raw JSON envelope.
17972    ///
17973    /// A `timezone` zone is resolved to the numeric UTC offset the wire
17974    /// expects, at the query start date; a zone that cannot be resolved
17975    /// is [`Error::InvalidParams`](crate::Error::InvalidParams).
17976    pub async fn get_cdr_raw(&self, params: &GetCDRParams) -> Result<Value> {
17977        self.call_raw("getCDR", &GetCDRParamsWire::try_from(params)?)
17978            .await
17979    }
17980
17981    /// \- Retrieves all Sub Accounts if no additional parameter is provided.
17982    /// \- Retrieves Reseller Client Accounts if Reseller Client ID is provided.
17983    ///
17984    /// Call the `getCallAccounts` API method and deserialize into [`GetCallAccountsResponse`].
17985    pub async fn get_call_accounts(
17986        &self,
17987        params: &GetCallAccountsParams,
17988    ) -> Result<GetCallAccountsResponse> {
17989        self.call("getCallAccounts", params).await
17990    }
17991
17992    /// Call the `getCallAccounts` API method and return the raw JSON envelope.
17993    pub async fn get_call_accounts_raw(&self, params: &GetCallAccountsParams) -> Result<Value> {
17994        self.call_raw("getCallAccounts", params).await
17995    }
17996
17997    /// \- Retrieves a list of Call Billing Options.
17998    ///
17999    /// Call the `getCallBilling` API method and deserialize into [`GetCallBillingResponse`].
18000    pub async fn get_call_billing(
18001        &self,
18002        params: &GetCallBillingParams,
18003    ) -> Result<GetCallBillingResponse> {
18004        self.call("getCallBilling", params).await
18005    }
18006
18007    /// Call the `getCallBilling` API method and return the raw JSON envelope.
18008    pub async fn get_call_billing_raw(&self, params: &GetCallBillingParams) -> Result<Value> {
18009        self.call_raw("getCallBilling", params).await
18010    }
18011
18012    /// \- Retrieves a list of Call Huntings if no additional parameter is
18013    /// provided.
18014    /// \- Retrieves a specific Call Huntings if a Call Hunting code is provided.
18015    ///
18016    /// Call the `getCallHuntings` API method and deserialize into [`GetCallHuntingsResponse`].
18017    pub async fn get_call_huntings(
18018        &self,
18019        params: &GetCallHuntingsParams,
18020    ) -> Result<GetCallHuntingsResponse> {
18021        self.call("getCallHuntings", params).await
18022    }
18023
18024    /// Call the `getCallHuntings` API method and return the raw JSON envelope.
18025    pub async fn get_call_huntings_raw(&self, params: &GetCallHuntingsParams) -> Result<Value> {
18026        self.call_raw("getCallHuntings", params).await
18027    }
18028
18029    /// \- Retrieves all Call Parking entries if no additional parameter is
18030    /// provided.
18031    /// \- Retrieves a specific Parking entry if a Call Parking ID is provided.
18032    ///
18033    /// Call the `getCallParking` API method and deserialize into [`GetCallParkingResponse`].
18034    pub async fn get_call_parking(
18035        &self,
18036        params: &GetCallParkingParams,
18037    ) -> Result<GetCallParkingResponse> {
18038        self.call("getCallParking", params).await
18039    }
18040
18041    /// Call the `getCallParking` API method and return the raw JSON envelope.
18042    pub async fn get_call_parking_raw(&self, params: &GetCallParkingParams) -> Result<Value> {
18043        self.call_raw("getCallParking", params).await
18044    }
18045
18046    /// \- Retrieves one especific call recording information, including the
18047    /// recording file on mp3 format.
18048    ///
18049    /// Call the `getCallRecording` API method and deserialize into [`GetCallRecordingResponse`].
18050    pub async fn get_call_recording(
18051        &self,
18052        params: &GetCallRecordingParams,
18053    ) -> Result<GetCallRecordingResponse> {
18054        self.call("getCallRecording", params).await
18055    }
18056
18057    /// Call the `getCallRecording` API method and return the raw JSON envelope.
18058    pub async fn get_call_recording_raw(&self, params: &GetCallRecordingParams) -> Result<Value> {
18059        self.call_raw("getCallRecording", params).await
18060    }
18061
18062    /// \- Retrieves all call recordings related to account.
18063    ///
18064    /// Call the `getCallRecordings` API method and deserialize into [`GetCallRecordingsResponse`].
18065    pub async fn get_call_recordings(
18066        &self,
18067        params: &GetCallRecordingsParams,
18068    ) -> Result<GetCallRecordingsResponse> {
18069        self.call("getCallRecordings", params).await
18070    }
18071
18072    /// Call the `getCallRecordings` API method and return the raw JSON envelope.
18073    pub async fn get_call_recordings_raw(&self, params: &GetCallRecordingsParams) -> Result<Value> {
18074        self.call_raw("getCallRecordings", params).await
18075    }
18076
18077    /// \- Retrieves all Call Transcriptions if no additional parameter is
18078    /// provided.
18079    ///
18080    /// Call the `getCallTranscriptions` API method and deserialize into [`GetCallTranscriptionsResponse`].
18081    pub async fn get_call_transcriptions(
18082        &self,
18083        params: &GetCallTranscriptionsParams,
18084    ) -> Result<GetCallTranscriptionsResponse> {
18085        self.call("getCallTranscriptions", params).await
18086    }
18087
18088    /// Call the `getCallTranscriptions` API method and return the raw JSON envelope.
18089    pub async fn get_call_transcriptions_raw(
18090        &self,
18091        params: &GetCallTranscriptionsParams,
18092    ) -> Result<Value> {
18093        self.call_raw("getCallTranscriptions", params).await
18094    }
18095
18096    /// \- Retrieves a list of Call Types and All DIDs if no additional parameter
18097    /// is provided.
18098    /// \- Retrieves a list of Call Types and Reseller Client DIDs if a Reseller
18099    /// Client ID is provided.
18100    ///
18101    /// Call the `getCallTypes` API method and deserialize into [`GetCallTypesResponse`].
18102    pub async fn get_call_types(
18103        &self,
18104        params: &GetCallTypesParams,
18105    ) -> Result<GetCallTypesResponse> {
18106        self.call("getCallTypes", params).await
18107    }
18108
18109    /// Call the `getCallTypes` API method and return the raw JSON envelope.
18110    pub async fn get_call_types_raw(&self, params: &GetCallTypesParams) -> Result<Value> {
18111        self.call_raw("getCallTypes", params).await
18112    }
18113
18114    /// \- Retrieves a list of Callbacks if no additional parameter is provided.
18115    /// \- Retrieves a specific Callback if a Callback code is provided.
18116    ///
18117    /// Call the `getCallbacks` API method and deserialize into [`GetCallbacksResponse`].
18118    pub async fn get_callbacks(&self, params: &GetCallbacksParams) -> Result<GetCallbacksResponse> {
18119        self.call("getCallbacks", params).await
18120    }
18121
18122    /// Call the `getCallbacks` API method and return the raw JSON envelope.
18123    pub async fn get_callbacks_raw(&self, params: &GetCallbacksParams) -> Result<Value> {
18124        self.call_raw("getCallbacks", params).await
18125    }
18126
18127    /// \- Retrieves a list of CallerID Filterings if no additional parameter is
18128    /// provided.
18129    /// \- Retrieves a specific CallerID Filtering if a CallerID Filtering code
18130    /// is provided.
18131    ///
18132    /// Call the `getCallerIDFiltering` API method and deserialize into [`GetCallerIDFilteringResponse`].
18133    pub async fn get_caller_id_filtering(
18134        &self,
18135        params: &GetCallerIDFilteringParams,
18136    ) -> Result<GetCallerIDFilteringResponse> {
18137        self.call("getCallerIDFiltering", params).await
18138    }
18139
18140    /// Call the `getCallerIDFiltering` API method and return the raw JSON envelope.
18141    pub async fn get_caller_id_filtering_raw(
18142        &self,
18143        params: &GetCallerIDFilteringParams,
18144    ) -> Result<Value> {
18145        self.call_raw("getCallerIDFiltering", params).await
18146    }
18147
18148    /// \- Retrieves a list of Carriers for Vanity Numbers if no additional
18149    /// parameter is provided.
18150    /// \- Retrieves a specific Carrier for Vanity Numbers if a carrier code is
18151    /// provided.
18152    ///
18153    /// Call the `getCarriers` API method and deserialize into [`GetCarriersResponse`].
18154    pub async fn get_carriers(&self, params: &GetCarriersParams) -> Result<GetCarriersResponse> {
18155        self.call("getCarriers", params).await
18156    }
18157
18158    /// Call the `getCarriers` API method and return the raw JSON envelope.
18159    pub async fn get_carriers_raw(&self, params: &GetCarriersParams) -> Result<Value> {
18160        self.call_raw("getCarriers", params).await
18161    }
18162
18163    /// \- Retrieves Charges made to a specific Reseller Client.
18164    ///
18165    /// Call the `getCharges` API method and deserialize into [`GetChargesResponse`].
18166    pub async fn get_charges(&self, params: &GetChargesParams) -> Result<GetChargesResponse> {
18167        self.call("getCharges", params).await
18168    }
18169
18170    /// Call the `getCharges` API method and return the raw JSON envelope.
18171    pub async fn get_charges_raw(&self, params: &GetChargesParams) -> Result<Value> {
18172        self.call_raw("getCharges", params).await
18173    }
18174
18175    /// \- Retrieves a list of Packages for a specific Reseller Client.
18176    ///
18177    /// Call the `getClientPackages` API method and deserialize into [`GetClientPackagesResponse`].
18178    pub async fn get_client_packages(
18179        &self,
18180        params: &GetClientPackagesParams,
18181    ) -> Result<GetClientPackagesResponse> {
18182        self.call("getClientPackages", params).await
18183    }
18184
18185    /// Call the `getClientPackages` API method and return the raw JSON envelope.
18186    pub async fn get_client_packages_raw(&self, params: &GetClientPackagesParams) -> Result<Value> {
18187        self.call_raw("getClientPackages", params).await
18188    }
18189
18190    /// \- Retrieves the Threshold Information for a specific Reseller Client.
18191    ///
18192    /// Call the `getClientThreshold` API method and deserialize into [`GetClientThresholdResponse`].
18193    pub async fn get_client_threshold(
18194        &self,
18195        params: &GetClientThresholdParams,
18196    ) -> Result<GetClientThresholdResponse> {
18197        self.call("getClientThreshold", params).await
18198    }
18199
18200    /// Call the `getClientThreshold` API method and return the raw JSON envelope.
18201    pub async fn get_client_threshold_raw(
18202        &self,
18203        params: &GetClientThresholdParams,
18204    ) -> Result<Value> {
18205        self.call_raw("getClientThreshold", params).await
18206    }
18207
18208    /// \- Retrieves a list of all Clients if no additional parameter is
18209    /// provided.- Retrieves a specific Reseller Client if a Reseller Client ID
18210    /// is provided.
18211    /// \- Retrieves a specific Reseller Client if a Reseller Client e-mail is
18212    /// provided.
18213    ///
18214    /// Call the `getClients` API method and deserialize into [`GetClientsResponse`].
18215    pub async fn get_clients(&self, params: &GetClientsParams) -> Result<GetClientsResponse> {
18216        self.call("getClients", params).await
18217    }
18218
18219    /// Call the `getClients` API method and return the raw JSON envelope.
18220    pub async fn get_clients_raw(&self, params: &GetClientsParams) -> Result<Value> {
18221        self.call_raw("getClients", params).await
18222    }
18223
18224    /// \- Retrieves a list of Conferences if no additional parameter is
18225    /// provided.
18226    /// \- Retrieves a specific Conference if a conference code is provided.
18227    ///
18228    /// Call the `getConference` API method and deserialize into [`GetConferenceResponse`].
18229    pub async fn get_conference(
18230        &self,
18231        params: &GetConferenceParams,
18232    ) -> Result<GetConferenceResponse> {
18233        self.call("getConference", params).await
18234    }
18235
18236    /// Call the `getConference` API method and return the raw JSON envelope.
18237    pub async fn get_conference_raw(&self, params: &GetConferenceParams) -> Result<Value> {
18238        self.call_raw("getConference", params).await
18239    }
18240
18241    /// \- Retrieves a list of Member profiles if no additional parameter is
18242    /// provided.
18243    /// \- Retrieves a specific member if a member code is provided.
18244    ///
18245    /// Call the `getConferenceMembers` API method and deserialize into [`GetConferenceMembersResponse`].
18246    pub async fn get_conference_members(
18247        &self,
18248        params: &GetConferenceMembersParams,
18249    ) -> Result<GetConferenceMembersResponse> {
18250        self.call("getConferenceMembers", params).await
18251    }
18252
18253    /// Call the `getConferenceMembers` API method and return the raw JSON envelope.
18254    pub async fn get_conference_members_raw(
18255        &self,
18256        params: &GetConferenceMembersParams,
18257    ) -> Result<Value> {
18258        self.call_raw("getConferenceMembers", params).await
18259    }
18260
18261    /// \- Retrieves a specific Recording File data in Base64 format.
18262    ///
18263    /// Call the `getConferenceRecordingFile` API method and deserialize into [`GetConferenceRecordingFileResponse`].
18264    pub async fn get_conference_recording_file(
18265        &self,
18266        params: &GetConferenceRecordingFileParams,
18267    ) -> Result<GetConferenceRecordingFileResponse> {
18268        self.call("getConferenceRecordingFile", params).await
18269    }
18270
18271    /// Call the `getConferenceRecordingFile` API method and return the raw JSON envelope.
18272    pub async fn get_conference_recording_file_raw(
18273        &self,
18274        params: &GetConferenceRecordingFileParams,
18275    ) -> Result<Value> {
18276        self.call_raw("getConferenceRecordingFile", params).await
18277    }
18278
18279    /// \- Retrieves a list of recordings of a specific conference.
18280    ///
18281    /// Call the `getConferenceRecordings` API method and deserialize into [`GetConferenceRecordingsResponse`].
18282    pub async fn get_conference_recordings(
18283        &self,
18284        params: &GetConferenceRecordingsParams,
18285    ) -> Result<GetConferenceRecordingsResponse> {
18286        self.call("getConferenceRecordings", params).await
18287    }
18288
18289    /// Call the `getConferenceRecordings` API method and return the raw JSON envelope.
18290    pub async fn get_conference_recordings_raw(
18291        &self,
18292        params: &GetConferenceRecordingsParams,
18293    ) -> Result<Value> {
18294        self.call_raw("getConferenceRecordings", params).await
18295    }
18296
18297    /// \- Retrieves a list of Countries if no additional parameter is provided.
18298    /// \- Retrieves a specific Country if a country code is provided.
18299    ///
18300    /// Call the `getCountries` API method and deserialize into [`GetCountriesResponse`].
18301    pub async fn get_countries(&self, params: &GetCountriesParams) -> Result<GetCountriesResponse> {
18302        self.call("getCountries", params).await
18303    }
18304
18305    /// Call the `getCountries` API method and return the raw JSON envelope.
18306    pub async fn get_countries_raw(&self, params: &GetCountriesParams) -> Result<Value> {
18307        self.call_raw("getCountries", params).await
18308    }
18309
18310    /// \- Retrieves a list of Countries for International DIDs if no country
18311    /// code is provided.
18312    /// \- Retrieves a specific Country for International DIDs if a country code
18313    /// is provided.
18314    ///
18315    /// Call the `getDIDCountries` API method and deserialize into [`GetDIDCountriesResponse`].
18316    pub async fn get_did_countries(
18317        &self,
18318        params: &GetDIDCountriesParams,
18319    ) -> Result<GetDIDCountriesResponse> {
18320        self.call("getDIDCountries", params).await
18321    }
18322
18323    /// Call the `getDIDCountries` API method and return the raw JSON envelope.
18324    pub async fn get_did_countries_raw(&self, params: &GetDIDCountriesParams) -> Result<Value> {
18325        self.call_raw("getDIDCountries", params).await
18326    }
18327
18328    /// \- Retrives a list of Canadian DIDs by Province and Ratecenter.
18329    ///
18330    /// Call the `getDIDsCAN` API method and deserialize into [`GetDIDsCANResponse`].
18331    pub async fn get_dids_can(&self, params: &GetDIDsCANParams) -> Result<GetDIDsCANResponse> {
18332        self.call("getDIDsCAN", params).await
18333    }
18334
18335    /// Call the `getDIDsCAN` API method and return the raw JSON envelope.
18336    pub async fn get_dids_can_raw(&self, params: &GetDIDsCANParams) -> Result<Value> {
18337        self.call_raw("getDIDsCAN", params).await
18338    }
18339
18340    /// \- Retrieves information from all your DIDs if no additional parameter is
18341    /// provided.
18342    /// \- Retrieves information from Reseller Client's DIDs if a Reseller Client
18343    /// ID is provided.
18344    /// \- Retrieves information from Sub Account's DIDs if a Sub Accunt is
18345    /// provided.
18346    /// \- Retrieves information from a specific DID if a DID Number is provided.
18347    /// \- Retrieves SMS information from a specific DID if the SMS is available.
18348    ///
18349    /// Call the `getDIDsInfo` API method and deserialize into [`GetDIDsInfoResponse`].
18350    pub async fn get_dids_info(&self, params: &GetDIDsInfoParams) -> Result<GetDIDsInfoResponse> {
18351        self.call("getDIDsInfo", params).await
18352    }
18353
18354    /// Call the `getDIDsInfo` API method and return the raw JSON envelope.
18355    pub async fn get_dids_info_raw(&self, params: &GetDIDsInfoParams) -> Result<Value> {
18356        self.call_raw("getDIDsInfo", params).await
18357    }
18358
18359    /// \- Retrieves a list of International Geographic DIDs by Country.
18360    ///
18361    /// Call the `getDIDsInternationalGeographic` API method and deserialize into [`GetDIDsInternationalGeographicResponse`].
18362    pub async fn get_dids_international_geographic(
18363        &self,
18364        params: &GetDIDsInternationalGeographicParams,
18365    ) -> Result<GetDIDsInternationalGeographicResponse> {
18366        self.call("getDIDsInternationalGeographic", params).await
18367    }
18368
18369    /// Call the `getDIDsInternationalGeographic` API method and return the raw JSON envelope.
18370    pub async fn get_dids_international_geographic_raw(
18371        &self,
18372        params: &GetDIDsInternationalGeographicParams,
18373    ) -> Result<Value> {
18374        self.call_raw("getDIDsInternationalGeographic", params)
18375            .await
18376    }
18377
18378    /// \- Retrieves a list of International National DIDs by Country.
18379    ///
18380    /// Call the `getDIDsInternationalNational` API method and deserialize into [`GetDIDsInternationalNationalResponse`].
18381    pub async fn get_dids_international_national(
18382        &self,
18383        params: &GetDIDsInternationalNationalParams,
18384    ) -> Result<GetDIDsInternationalNationalResponse> {
18385        self.call("getDIDsInternationalNational", params).await
18386    }
18387
18388    /// Call the `getDIDsInternationalNational` API method and return the raw JSON envelope.
18389    pub async fn get_dids_international_national_raw(
18390        &self,
18391        params: &GetDIDsInternationalNationalParams,
18392    ) -> Result<Value> {
18393        self.call_raw("getDIDsInternationalNational", params).await
18394    }
18395
18396    /// \- Retrieves a list of International TollFree DIDs by Country.
18397    ///
18398    /// Call the `getDIDsInternationalTollFree` API method and deserialize into [`GetDIDsInternationalTollFreeResponse`].
18399    pub async fn get_dids_international_toll_free(
18400        &self,
18401        params: &GetDIDsInternationalTollFreeParams,
18402    ) -> Result<GetDIDsInternationalTollFreeResponse> {
18403        self.call("getDIDsInternationalTollFree", params).await
18404    }
18405
18406    /// Call the `getDIDsInternationalTollFree` API method and return the raw JSON envelope.
18407    pub async fn get_dids_international_toll_free_raw(
18408        &self,
18409        params: &GetDIDsInternationalTollFreeParams,
18410    ) -> Result<Value> {
18411        self.call_raw("getDIDsInternationalTollFree", params).await
18412    }
18413
18414    /// \- Retrives a list of USA DIDs by State and Ratecenter.
18415    ///
18416    /// Call the `getDIDsUSA` API method and deserialize into [`GetDIDsUSAResponse`].
18417    pub async fn get_dids_usa(&self, params: &GetDIDsUSAParams) -> Result<GetDIDsUSAResponse> {
18418        self.call("getDIDsUSA", params).await
18419    }
18420
18421    /// Call the `getDIDsUSA` API method and return the raw JSON envelope.
18422    pub async fn get_dids_usa_raw(&self, params: &GetDIDsUSAParams) -> Result<Value> {
18423        self.call_raw("getDIDsUSA", params).await
18424    }
18425
18426    /// \- Retrives the list of DIDs assigned to the VPRI.
18427    ///
18428    /// Call the `getDIDvPRI` API method and deserialize into [`GetDIDvPRIResponse`].
18429    pub async fn get_did_vpri(&self, params: &GetDIDvPRIParams) -> Result<GetDIDvPRIResponse> {
18430        self.call("getDIDvPRI", params).await
18431    }
18432
18433    /// Call the `getDIDvPRI` API method and return the raw JSON envelope.
18434    pub async fn get_did_vpri_raw(&self, params: &GetDIDvPRIParams) -> Result<Value> {
18435        self.call_raw("getDIDvPRI", params).await
18436    }
18437
18438    /// \- Retrieves a list of DISAs if no additional parameter is provided.
18439    /// \- Retrieves a specific DISA if a DISA code is provided.
18440    ///
18441    /// Call the `getDISAs` API method and deserialize into [`GetDISAsResponse`].
18442    pub async fn get_disas(&self, params: &GetDISAsParams) -> Result<GetDISAsResponse> {
18443        self.call("getDISAs", params).await
18444    }
18445
18446    /// Call the `getDISAs` API method and return the raw JSON envelope.
18447    pub async fn get_disas_raw(&self, params: &GetDISAsParams) -> Result<Value> {
18448        self.call_raw("getDISAs", params).await
18449    }
18450
18451    /// \- Retrieves a list of DTMF Modes if no additional parameter is provided.
18452    /// \- Retrieves a specific DTMF Mode if a DTMF mode code is provided.
18453    ///
18454    /// Call the `getDTMFModes` API method and deserialize into [`GetDTMFModesResponse`].
18455    pub async fn get_dtmf_modes(
18456        &self,
18457        params: &GetDTMFModesParams,
18458    ) -> Result<GetDTMFModesResponse> {
18459        self.call("getDTMFModes", params).await
18460    }
18461
18462    /// Call the `getDTMFModes` API method and return the raw JSON envelope.
18463    pub async fn get_dtmf_modes_raw(&self, params: &GetDTMFModesParams) -> Result<Value> {
18464        self.call_raw("getDTMFModes", params).await
18465    }
18466
18467    /// \- Retrieves Deposits made for a specific Reseller Client.
18468    ///
18469    /// Call the `getDeposits` API method and deserialize into [`GetDepositsResponse`].
18470    pub async fn get_deposits(&self, params: &GetDepositsParams) -> Result<GetDepositsResponse> {
18471        self.call("getDeposits", params).await
18472    }
18473
18474    /// Call the `getDeposits` API method and return the raw JSON envelope.
18475    pub async fn get_deposits_raw(&self, params: &GetDepositsParams) -> Result<Value> {
18476        self.call_raw("getDeposits", params).await
18477    }
18478
18479    /// \- Retrieves a list of Device Types if no additional parameter is
18480    /// provided.
18481    /// \- Retrieves a specific Device Type if a device type code is provided.
18482    ///
18483    /// Call the `getDeviceTypes` API method and deserialize into [`GetDeviceTypesResponse`].
18484    pub async fn get_device_types(
18485        &self,
18486        params: &GetDeviceTypesParams,
18487    ) -> Result<GetDeviceTypesResponse> {
18488        self.call("getDeviceTypes", params).await
18489    }
18490
18491    /// Call the `getDeviceTypes` API method and return the raw JSON envelope.
18492    pub async fn get_device_types_raw(&self, params: &GetDeviceTypesParams) -> Result<Value> {
18493        self.call_raw("getDeviceTypes", params).await
18494    }
18495
18496    /// \- Retrieves a list of "Email to Fax configurations" from your account if
18497    /// no additional parameter is provided.
18498    /// \- Retrieves a specific "Email to Fax configuration" from your account if
18499    /// a ID is provided.
18500    ///
18501    /// Call the `getEmailToFax` API method and deserialize into [`GetEmailToFAXResponse`].
18502    pub async fn get_email_to_fax(
18503        &self,
18504        params: &GetEmailToFAXParams,
18505    ) -> Result<GetEmailToFAXResponse> {
18506        self.call("getEmailToFax", params).await
18507    }
18508
18509    /// Call the `getEmailToFax` API method and return the raw JSON envelope.
18510    pub async fn get_email_to_fax_raw(&self, params: &GetEmailToFAXParams) -> Result<Value> {
18511        self.call_raw("getEmailToFax", params).await
18512    }
18513
18514    /// \- Retrieves a list of Fax Folders from your account.
18515    ///
18516    /// Call the `getFaxFolders` API method and deserialize into [`GetFAXFoldersResponse`].
18517    pub async fn get_fax_folders(
18518        &self,
18519        params: &GetFAXFoldersParams,
18520    ) -> Result<GetFAXFoldersResponse> {
18521        self.call("getFaxFolders", params).await
18522    }
18523
18524    /// Call the `getFaxFolders` API method and return the raw JSON envelope.
18525    pub async fn get_fax_folders_raw(&self, params: &GetFAXFoldersParams) -> Result<Value> {
18526        self.call_raw("getFaxFolders", params).await
18527    }
18528
18529    /// \- Retrieves a Base64 code of the Fax Message to create a PDF file.
18530    ///
18531    /// Call the `getFaxMessagePDF` API method and deserialize into [`GetFAXMessagePDFResponse`].
18532    pub async fn get_fax_message_pdf(
18533        &self,
18534        params: &GetFAXMessagePDFParams,
18535    ) -> Result<GetFAXMessagePDFResponse> {
18536        self.call("getFaxMessagePDF", params).await
18537    }
18538
18539    /// Call the `getFaxMessagePDF` API method and return the raw JSON envelope.
18540    pub async fn get_fax_message_pdf_raw(&self, params: &GetFAXMessagePDFParams) -> Result<Value> {
18541        self.call_raw("getFaxMessagePDF", params).await
18542    }
18543
18544    /// \- Retrieves a list of Fax Messages.
18545    /// \- Retrieves a specific Fax Message if a Fax Message ID is provided.
18546    ///
18547    /// Call the `getFaxMessages` API method and deserialize into [`GetFAXMessagesResponse`].
18548    pub async fn get_fax_messages(
18549        &self,
18550        params: &GetFAXMessagesParams,
18551    ) -> Result<GetFAXMessagesResponse> {
18552        self.call("getFaxMessages", params).await
18553    }
18554
18555    /// Call the `getFaxMessages` API method and return the raw JSON envelope.
18556    pub async fn get_fax_messages_raw(&self, params: &GetFAXMessagesParams) -> Result<Value> {
18557        self.call_raw("getFaxMessages", params).await
18558    }
18559
18560    /// \- Retrieves a list of Fax Numbers.
18561    ///
18562    /// Call the `getFaxNumbersInfo` API method and deserialize into [`GetFAXNumbersInfoResponse`].
18563    pub async fn get_fax_numbers_info(
18564        &self,
18565        params: &GetFAXNumbersInfoParams,
18566    ) -> Result<GetFAXNumbersInfoResponse> {
18567        self.call("getFaxNumbersInfo", params).await
18568    }
18569
18570    /// Call the `getFaxNumbersInfo` API method and return the raw JSON envelope.
18571    pub async fn get_fax_numbers_info_raw(
18572        &self,
18573        params: &GetFAXNumbersInfoParams,
18574    ) -> Result<Value> {
18575        self.call_raw("getFaxNumbersInfo", params).await
18576    }
18577
18578    /// \- Shows if a Fax Number can be ported into our network
18579    ///
18580    /// Call the `getFaxNumbersPortability` API method and deserialize into [`GetFAXNumbersPortabilityResponse`].
18581    pub async fn get_fax_numbers_portability(
18582        &self,
18583        params: &GetFAXNumbersPortabilityParams,
18584    ) -> Result<GetFAXNumbersPortabilityResponse> {
18585        self.call("getFaxNumbersPortability", params).await
18586    }
18587
18588    /// Call the `getFaxNumbersPortability` API method and return the raw JSON envelope.
18589    pub async fn get_fax_numbers_portability_raw(
18590        &self,
18591        params: &GetFAXNumbersPortabilityParams,
18592    ) -> Result<Value> {
18593        self.call_raw("getFaxNumbersPortability", params).await
18594    }
18595
18596    /// \- Retrieves a list of Canadian Fax Provinces if no additional parameter
18597    /// is provided.
18598    /// \- Retrieves a specific Canadian Fax Province if a province code is
18599    /// provided.
18600    ///
18601    /// Call the `getFaxProvinces` API method and deserialize into [`GetFAXProvincesResponse`].
18602    pub async fn get_fax_provinces(
18603        &self,
18604        params: &GetFAXProvincesParams,
18605    ) -> Result<GetFAXProvincesResponse> {
18606        self.call("getFaxProvinces", params).await
18607    }
18608
18609    /// Call the `getFaxProvinces` API method and return the raw JSON envelope.
18610    pub async fn get_fax_provinces_raw(&self, params: &GetFAXProvincesParams) -> Result<Value> {
18611        self.call_raw("getFaxProvinces", params).await
18612    }
18613
18614    /// \- Retrieves a list of Canadian Ratecenters by Province.
18615    ///
18616    /// Call the `getFaxRateCentersCAN` API method and deserialize into [`GetFAXRateCentersCANResponse`].
18617    pub async fn get_fax_rate_centers_can(
18618        &self,
18619        params: &GetFAXRateCentersCANParams,
18620    ) -> Result<GetFAXRateCentersCANResponse> {
18621        self.call("getFaxRateCentersCAN", params).await
18622    }
18623
18624    /// Call the `getFaxRateCentersCAN` API method and return the raw JSON envelope.
18625    pub async fn get_fax_rate_centers_can_raw(
18626        &self,
18627        params: &GetFAXRateCentersCANParams,
18628    ) -> Result<Value> {
18629        self.call_raw("getFaxRateCentersCAN", params).await
18630    }
18631
18632    /// \- Retrieves a list of USA Ratecenters by State.
18633    ///
18634    /// Call the `getFaxRateCentersUSA` API method and deserialize into [`GetFAXRateCentersUSAResponse`].
18635    pub async fn get_fax_rate_centers_usa(
18636        &self,
18637        params: &GetFAXRateCentersUSAParams,
18638    ) -> Result<GetFAXRateCentersUSAResponse> {
18639        self.call("getFaxRateCentersUSA", params).await
18640    }
18641
18642    /// Call the `getFaxRateCentersUSA` API method and return the raw JSON envelope.
18643    pub async fn get_fax_rate_centers_usa_raw(
18644        &self,
18645        params: &GetFAXRateCentersUSAParams,
18646    ) -> Result<Value> {
18647        self.call_raw("getFaxRateCentersUSA", params).await
18648    }
18649
18650    /// \- Retrieves a list of American Fax States if no additional parameter is
18651    /// provided.
18652    /// \- Retrieves a specific American Fax State if a state code is provided.
18653    ///
18654    /// Call the `getFaxStates` API method and deserialize into [`GetFAXStatesResponse`].
18655    pub async fn get_fax_states(
18656        &self,
18657        params: &GetFAXStatesParams,
18658    ) -> Result<GetFAXStatesResponse> {
18659        self.call("getFaxStates", params).await
18660    }
18661
18662    /// Call the `getFaxStates` API method and return the raw JSON envelope.
18663    pub async fn get_fax_states_raw(&self, params: &GetFAXStatesParams) -> Result<Value> {
18664        self.call_raw("getFaxStates", params).await
18665    }
18666
18667    /// \- Retrieves a list of Forwardings if no additional parameter is
18668    /// provided.
18669    /// \- Retrieves a specific Forwarding if a fwd code is provided.
18670    ///
18671    /// Call the `getForwardings` API method and deserialize into [`GetForwardingsResponse`].
18672    pub async fn get_forwardings(
18673        &self,
18674        params: &GetForwardingsParams,
18675    ) -> Result<GetForwardingsResponse> {
18676        self.call("getForwardings", params).await
18677    }
18678
18679    /// Call the `getForwardings` API method and return the raw JSON envelope.
18680    pub async fn get_forwardings_raw(&self, params: &GetForwardingsParams) -> Result<Value> {
18681        self.call_raw("getForwardings", params).await
18682    }
18683
18684    /// \- Shows the IP used by the client application requesting information
18685    /// from the API
18686    /// \* this is the only function not using the IP for authentication.
18687    /// \* the IP returned should be the one used in the API Configuration.
18688    ///
18689    /// Call the `getIP` API method and deserialize into [`GetIPResponse`].
18690    pub async fn get_ip(&self, params: &GetIPParams) -> Result<GetIPResponse> {
18691        self.call("getIP", params).await
18692    }
18693
18694    /// Call the `getIP` API method and return the raw JSON envelope.
18695    pub async fn get_ip_raw(&self, params: &GetIPParams) -> Result<Value> {
18696        self.call_raw("getIP", params).await
18697    }
18698
18699    /// \- Retrieves a list of IVRs if no additional parameter is provided.
18700    /// \- Retrieves a specific IVR if a IVR code is provided.
18701    ///
18702    /// Call the `getIVRs` API method and deserialize into [`GetIVRsResponse`].
18703    pub async fn get_ivrs(&self, params: &GetIVRsParams) -> Result<GetIVRsResponse> {
18704        self.call("getIVRs", params).await
18705    }
18706
18707    /// Call the `getIVRs` API method and return the raw JSON envelope.
18708    pub async fn get_ivrs_raw(&self, params: &GetIVRsParams) -> Result<Value> {
18709        self.call_raw("getIVRs", params).await
18710    }
18711
18712    /// \- Retrieves a list of Types for International DIDs if no additional
18713    /// parameter is provided.
18714    /// \- Retrieves a specific Types for International DIDs if a type code is
18715    /// provided.
18716    ///
18717    /// Call the `getInternationalTypes` API method and deserialize into [`GetInternationalTypesResponse`].
18718    pub async fn get_international_types(
18719        &self,
18720        params: &GetInternationalTypesParams,
18721    ) -> Result<GetInternationalTypesResponse> {
18722        self.call("getInternationalTypes", params).await
18723    }
18724
18725    /// Call the `getInternationalTypes` API method and return the raw JSON envelope.
18726    pub async fn get_international_types_raw(
18727        &self,
18728        params: &GetInternationalTypesParams,
18729    ) -> Result<Value> {
18730        self.call_raw("getInternationalTypes", params).await
18731    }
18732
18733    /// \- Retrieves a list of 'JoinWhenEmpty' Types if no additional parameter
18734    /// is provided.
18735    /// \- Retrieves a specific 'JoinWhenEmpty' Types if a type code is provided.
18736    ///
18737    /// Call the `getJoinWhenEmptyTypes` API method and deserialize into [`GetJoinWhenEmptyTypesResponse`].
18738    pub async fn get_join_when_empty_types(
18739        &self,
18740        params: &GetJoinWhenEmptyTypesParams,
18741    ) -> Result<GetJoinWhenEmptyTypesResponse> {
18742        self.call("getJoinWhenEmptyTypes", params).await
18743    }
18744
18745    /// Call the `getJoinWhenEmptyTypes` API method and return the raw JSON envelope.
18746    pub async fn get_join_when_empty_types_raw(
18747        &self,
18748        params: &GetJoinWhenEmptyTypesParams,
18749    ) -> Result<Value> {
18750        self.call_raw("getJoinWhenEmptyTypes", params).await
18751    }
18752
18753    /// \- Retrieve the details of an attached invoice.
18754    ///
18755    /// Call the `getLNPAttach` API method and deserialize into [`GetLNPAttachResponse`].
18756    pub async fn get_lnp_attach(
18757        &self,
18758        params: &GetLNPAttachParams,
18759    ) -> Result<GetLNPAttachResponse> {
18760        self.call("getLNPAttach", params).await
18761    }
18762
18763    /// Call the `getLNPAttach` API method and return the raw JSON envelope.
18764    pub async fn get_lnp_attach_raw(&self, params: &GetLNPAttachParams) -> Result<Value> {
18765        self.call_raw("getLNPAttach", params).await
18766    }
18767
18768    /// \- Retrieve the list of invoice (attached) files from a given portability
18769    /// process.
18770    ///
18771    /// Call the `getLNPAttachList` API method and deserialize into [`GetLNPAttachListResponse`].
18772    pub async fn get_lnp_attach_list(
18773        &self,
18774        params: &GetLNPAttachListParams,
18775    ) -> Result<GetLNPAttachListResponse> {
18776        self.call("getLNPAttachList", params).await
18777    }
18778
18779    /// Call the `getLNPAttachList` API method and return the raw JSON envelope.
18780    pub async fn get_lnp_attach_list_raw(&self, params: &GetLNPAttachListParams) -> Result<Value> {
18781        self.call_raw("getLNPAttachList", params).await
18782    }
18783
18784    /// \- Retrieve the details of a given portability process.
18785    ///
18786    /// Call the `getLNPDetails` API method and deserialize into [`GetLNPDetailsResponse`].
18787    pub async fn get_lnp_details(
18788        &self,
18789        params: &GetLNPDetailsParams,
18790    ) -> Result<GetLNPDetailsResponse> {
18791        self.call("getLNPDetails", params).await
18792    }
18793
18794    /// Call the `getLNPDetails` API method and return the raw JSON envelope.
18795    pub async fn get_lnp_details_raw(&self, params: &GetLNPDetailsParams) -> Result<Value> {
18796        self.call_raw("getLNPDetails", params).await
18797    }
18798
18799    /// \- Retrieve the full list of all your portability processes.
18800    ///
18801    /// Call the `getLNPList` API method and deserialize into [`GetLNPListResponse`].
18802    pub async fn get_lnp_list(&self, params: &GetLNPListParams) -> Result<GetLNPListResponse> {
18803        self.call("getLNPList", params).await
18804    }
18805
18806    /// Call the `getLNPList` API method and return the raw JSON envelope.
18807    pub async fn get_lnp_list_raw(&self, params: &GetLNPListParams) -> Result<Value> {
18808        self.call_raw("getLNPList", params).await
18809    }
18810
18811    /// \- Retrieve the list of possible status of a portability process.
18812    ///
18813    /// Call the `getLNPListStatus` API method and deserialize into [`GetLNPListStatusResponse`].
18814    pub async fn get_lnp_list_status(
18815        &self,
18816        params: &GetLNPListStatusParams,
18817    ) -> Result<GetLNPListStatusResponse> {
18818        self.call("getLNPListStatus", params).await
18819    }
18820
18821    /// Call the `getLNPListStatus` API method and return the raw JSON envelope.
18822    pub async fn get_lnp_list_status_raw(&self, params: &GetLNPListStatusParams) -> Result<Value> {
18823        self.call_raw("getLNPListStatus", params).await
18824    }
18825
18826    /// \- Retrieve the list of notes from the given portability process.
18827    ///
18828    /// Call the `getLNPNotes` API method and deserialize into [`GetLNPNotesResponse`].
18829    pub async fn get_lnp_notes(&self, params: &GetLNPNotesParams) -> Result<GetLNPNotesResponse> {
18830        self.call("getLNPNotes", params).await
18831    }
18832
18833    /// Call the `getLNPNotes` API method and return the raw JSON envelope.
18834    pub async fn get_lnp_notes_raw(&self, params: &GetLNPNotesParams) -> Result<Value> {
18835        self.call_raw("getLNPNotes", params).await
18836    }
18837
18838    /// \- Retrieve the current status of a given portability process.
18839    ///
18840    /// Call the `getLNPStatus` API method and deserialize into [`GetLNPStatusResponse`].
18841    pub async fn get_lnp_status(
18842        &self,
18843        params: &GetLNPStatusParams,
18844    ) -> Result<GetLNPStatusResponse> {
18845        self.call("getLNPStatus", params).await
18846    }
18847
18848    /// Call the `getLNPStatus` API method and return the raw JSON envelope.
18849    pub async fn get_lnp_status_raw(&self, params: &GetLNPStatusParams) -> Result<Value> {
18850        self.call_raw("getLNPStatus", params).await
18851    }
18852
18853    /// \- Retrieves a list of Languages if no additional parameter is provided.
18854    /// \- Retrieves a specific Language if a language code is provided.
18855    ///
18856    /// Call the `getLanguages` API method and deserialize into [`GetLanguagesResponse`].
18857    pub async fn get_languages(&self, params: &GetLanguagesParams) -> Result<GetLanguagesResponse> {
18858        self.call("getLanguages", params).await
18859    }
18860
18861    /// Call the `getLanguages` API method and return the raw JSON envelope.
18862    pub async fn get_languages_raw(&self, params: &GetLanguagesParams) -> Result<Value> {
18863        self.call_raw("getLanguages", params).await
18864    }
18865
18866    /// \- Retrieves a list of locale codes if no additional parameter is
18867    /// provided.
18868    /// \- Retrieves a specific locale code if a language code is provided.
18869    ///
18870    /// Call the `getLocales` API method and deserialize into [`GetLocalesResponse`].
18871    pub async fn get_locales(&self, params: &GetLocalesParams) -> Result<GetLocalesResponse> {
18872        self.call("getLocales", params).await
18873    }
18874
18875    /// Call the `getLocales` API method and return the raw JSON envelope.
18876    pub async fn get_locales_raw(&self, params: &GetLocalesParams) -> Result<Value> {
18877        self.call_raw("getLocales", params).await
18878    }
18879
18880    /// Call the `getLocations` API method and deserialize into [`GetLocationsResponse`].
18881    pub async fn get_locations(&self, params: &GetLocationsParams) -> Result<GetLocationsResponse> {
18882        self.call("getLocations", params).await
18883    }
18884
18885    /// Call the `getLocations` API method and return the raw JSON envelope.
18886    pub async fn get_locations_raw(&self, params: &GetLocationsParams) -> Result<Value> {
18887        self.call_raw("getLocations", params).await
18888    }
18889
18890    /// \- Retrieves a list of Lock Modes if no additional parameter is provided.
18891    /// \- Retrieves a specific Lock Mode if a lock code is provided.
18892    ///
18893    /// Call the `getLockInternational` API method and deserialize into [`GetLockInternationalResponse`].
18894    pub async fn get_lock_international(
18895        &self,
18896        params: &GetLockInternationalParams,
18897    ) -> Result<GetLockInternationalResponse> {
18898        self.call("getLockInternational", params).await
18899    }
18900
18901    /// Call the `getLockInternational` API method and return the raw JSON envelope.
18902    pub async fn get_lock_international_raw(
18903        &self,
18904        params: &GetLockInternationalParams,
18905    ) -> Result<Value> {
18906        self.call_raw("getLockInternational", params).await
18907    }
18908
18909    /// \- Retrieves a list of MMS messages by: date range, mms type, DID number,
18910    /// and contact.
18911    ///
18912    /// Call the `getMMS` API method and deserialize into [`GetMMSResponse`].
18913    ///
18914    /// A `timezone` zone is resolved to the numeric UTC offset the wire
18915    /// expects, at the query start date; a zone that cannot be resolved
18916    /// is [`Error::InvalidParams`](crate::Error::InvalidParams).
18917    pub async fn get_mms(&self, params: &GetMMSParams) -> Result<GetMMSResponse> {
18918        self.call("getMMS", &GetMMSParamsWire::try_from(params)?)
18919            .await
18920    }
18921
18922    /// Call the `getMMS` API method and return the raw JSON envelope.
18923    ///
18924    /// A `timezone` zone is resolved to the numeric UTC offset the wire
18925    /// expects, at the query start date; a zone that cannot be resolved
18926    /// is [`Error::InvalidParams`](crate::Error::InvalidParams).
18927    pub async fn get_mms_raw(&self, params: &GetMMSParams) -> Result<Value> {
18928        self.call_raw("getMMS", &GetMMSParamsWire::try_from(params)?)
18929            .await
18930    }
18931
18932    /// \- Retrieves media files from the message.
18933    ///
18934    /// Call the `getMediaMMS` API method and deserialize into [`GetMediaMMSResponse`].
18935    pub async fn get_media_mms(&self, params: &GetMediaMMSParams) -> Result<GetMediaMMSResponse> {
18936        self.call("getMediaMMS", params).await
18937    }
18938
18939    /// Call the `getMediaMMS` API method and return the raw JSON envelope.
18940    pub async fn get_media_mms_raw(&self, params: &GetMediaMMSParams) -> Result<Value> {
18941        self.call_raw("getMediaMMS", params).await
18942    }
18943
18944    /// \- Retrieves a list of Music on Hold Options if no additional parameter
18945    /// is provided.
18946    /// \- Retrieves a specific Music on Hold Option if a MOH code is provided.
18947    ///
18948    /// Call the `getMusicOnHold` API method and deserialize into [`GetMusicOnHoldResponse`].
18949    pub async fn get_music_on_hold(
18950        &self,
18951        params: &GetMusicOnHoldParams,
18952    ) -> Result<GetMusicOnHoldResponse> {
18953        self.call("getMusicOnHold", params).await
18954    }
18955
18956    /// Call the `getMusicOnHold` API method and return the raw JSON envelope.
18957    pub async fn get_music_on_hold_raw(&self, params: &GetMusicOnHoldParams) -> Result<Value> {
18958        self.call_raw("getMusicOnHold", params).await
18959    }
18960
18961    /// \- Retrieves a list of NAT Options if no additional parameter is
18962    /// provided.
18963    /// \- Retrieves a specific NAT Option if a NAT code is provided.
18964    ///
18965    /// Call the `getNAT` API method and deserialize into [`GetNATResponse`].
18966    pub async fn get_nat(&self, params: &GetNATParams) -> Result<GetNATResponse> {
18967        self.call("getNAT", params).await
18968    }
18969
18970    /// Call the `getNAT` API method and return the raw JSON envelope.
18971    pub async fn get_nat_raw(&self, params: &GetNATParams) -> Result<Value> {
18972        self.call_raw("getNAT", params).await
18973    }
18974
18975    /// \- Retrieves a list of Packages if no additional parameter is provided.-
18976    /// Retrieves a specific Package if a package code is provided.
18977    ///
18978    /// Call the `getPackages` API method and deserialize into [`GetPackagesResponse`].
18979    pub async fn get_packages(&self, params: &GetPackagesParams) -> Result<GetPackagesResponse> {
18980        self.call("getPackages", params).await
18981    }
18982
18983    /// Call the `getPackages` API method and return the raw JSON envelope.
18984    pub async fn get_packages_raw(&self, params: &GetPackagesParams) -> Result<Value> {
18985        self.call_raw("getPackages", params).await
18986    }
18987
18988    /// \- Retrieves a list of Phonebook entries if no additional parameter is
18989    /// provided.
18990    /// \- Retrieves a list of Phonebook entries if a name is provided.
18991    /// \- Retrieves a specific Phonebook entry if a Phonebook code is provided.
18992    /// \- Retrieves a list of Phonebook entries if a phonebook group name is
18993    /// provided.
18994    /// \- Retrieves a list of Phonebook entries if a phonebook group code is
18995    /// provided.
18996    ///
18997    /// Call the `getPhonebook` API method and deserialize into [`GetPhonebookResponse`].
18998    pub async fn get_phonebook(&self, params: &GetPhonebookParams) -> Result<GetPhonebookResponse> {
18999        self.call("getPhonebook", params).await
19000    }
19001
19002    /// Call the `getPhonebook` API method and return the raw JSON envelope.
19003    pub async fn get_phonebook_raw(&self, params: &GetPhonebookParams) -> Result<Value> {
19004        self.call_raw("getPhonebook", params).await
19005    }
19006
19007    /// \- Retrieves a list of Phonebook groups if no additional parameter is
19008    /// provided.
19009    /// \- Retrieves a list of Phonebook groups if a name is provided.
19010    /// \- Retrieves a specific Phonebook group if a group ID is provided.
19011    ///
19012    /// Call the `getPhonebookGroups` API method and deserialize into [`GetPhonebookGroupsResponse`].
19013    pub async fn get_phonebook_groups(
19014        &self,
19015        params: &GetPhonebookGroupsParams,
19016    ) -> Result<GetPhonebookGroupsResponse> {
19017        self.call("getPhonebookGroups", params).await
19018    }
19019
19020    /// Call the `getPhonebookGroups` API method and return the raw JSON envelope.
19021    pub async fn get_phonebook_groups_raw(
19022        &self,
19023        params: &GetPhonebookGroupsParams,
19024    ) -> Result<Value> {
19025        self.call_raw("getPhonebookGroups", params).await
19026    }
19027
19028    /// \- Retrieves a list of Play Instructions modes if no additional parameter
19029    /// is provided.
19030    /// \- Retrieves a specific Play Instructions mode if a play code is
19031    /// provided.
19032    ///
19033    /// Call the `getPlayInstructions` API method and deserialize into [`GetPlayInstructionsResponse`].
19034    pub async fn get_play_instructions(
19035        &self,
19036        params: &GetPlayInstructionsParams,
19037    ) -> Result<GetPlayInstructionsResponse> {
19038        self.call("getPlayInstructions", params).await
19039    }
19040
19041    /// Call the `getPlayInstructions` API method and return the raw JSON envelope.
19042    pub async fn get_play_instructions_raw(
19043        &self,
19044        params: &GetPlayInstructionsParams,
19045    ) -> Result<Value> {
19046        self.call_raw("getPlayInstructions", params).await
19047    }
19048
19049    /// \- Shows if a DID Number can be ported into our network.
19050    /// \- Display plans and rates available if the DID Number can be ported into
19051    /// our network.
19052    ///
19053    /// Call the `getPortability` API method and deserialize into [`GetPortabilityResponse`].
19054    pub async fn get_portability(
19055        &self,
19056        params: &GetPortabilityParams,
19057    ) -> Result<GetPortabilityResponse> {
19058        self.call("getPortability", params).await
19059    }
19060
19061    /// Call the `getPortability` API method and return the raw JSON envelope.
19062    pub async fn get_portability_raw(&self, params: &GetPortabilityParams) -> Result<Value> {
19063        self.call_raw("getPortability", params).await
19064    }
19065
19066    /// \- Retrieves a list of Protocols if no additional parameter is provided.
19067    /// \- Retrieves a specific Protocol if a protocol code is provided.
19068    ///
19069    /// Call the `getProtocols` API method and deserialize into [`GetProtocolsResponse`].
19070    pub async fn get_protocols(&self, params: &GetProtocolsParams) -> Result<GetProtocolsResponse> {
19071        self.call("getProtocols", params).await
19072    }
19073
19074    /// Call the `getProtocols` API method and return the raw JSON envelope.
19075    pub async fn get_protocols_raw(&self, params: &GetProtocolsParams) -> Result<Value> {
19076        self.call_raw("getProtocols", params).await
19077    }
19078
19079    /// \- Retrieves a list of Canadian Provinces.
19080    ///
19081    /// Call the `getProvinces` API method and deserialize into [`GetProvincesResponse`].
19082    pub async fn get_provinces(&self, params: &GetProvincesParams) -> Result<GetProvincesResponse> {
19083        self.call("getProvinces", params).await
19084    }
19085
19086    /// Call the `getProvinces` API method and return the raw JSON envelope.
19087    pub async fn get_provinces_raw(&self, params: &GetProvincesParams) -> Result<Value> {
19088        self.call_raw("getProvinces", params).await
19089    }
19090
19091    /// \- Retrieves a list of Queue entries if no additional parameter is
19092    /// provided.
19093    /// \- Retrieves a specific Queue entry if a Queue code is provided.
19094    ///
19095    /// Call the `getQueues` API method and deserialize into [`GetQueuesResponse`].
19096    pub async fn get_queues(&self, params: &GetQueuesParams) -> Result<GetQueuesResponse> {
19097        self.call("getQueues", params).await
19098    }
19099
19100    /// Call the `getQueues` API method and return the raw JSON envelope.
19101    pub async fn get_queues_raw(&self, params: &GetQueuesParams) -> Result<Value> {
19102        self.call_raw("getQueues", params).await
19103    }
19104
19105    /// \- Retrieves a list of Canadian Ratecenters by Province.
19106    ///
19107    /// Call the `getRateCentersCAN` API method and deserialize into [`GetRateCentersCANResponse`].
19108    pub async fn get_rate_centers_can(
19109        &self,
19110        params: &GetRateCentersCANParams,
19111    ) -> Result<GetRateCentersCANResponse> {
19112        self.call("getRateCentersCAN", params).await
19113    }
19114
19115    /// Call the `getRateCentersCAN` API method and return the raw JSON envelope.
19116    pub async fn get_rate_centers_can_raw(
19117        &self,
19118        params: &GetRateCentersCANParams,
19119    ) -> Result<Value> {
19120        self.call_raw("getRateCentersCAN", params).await
19121    }
19122
19123    /// \- Retrieves a list of USA Ratecenters by State.
19124    ///
19125    /// Call the `getRateCentersUSA` API method and deserialize into [`GetRateCentersUSAResponse`].
19126    pub async fn get_rate_centers_usa(
19127        &self,
19128        params: &GetRateCentersUSAParams,
19129    ) -> Result<GetRateCentersUSAResponse> {
19130        self.call("getRateCentersUSA", params).await
19131    }
19132
19133    /// Call the `getRateCentersUSA` API method and return the raw JSON envelope.
19134    pub async fn get_rate_centers_usa_raw(
19135        &self,
19136        params: &GetRateCentersUSAParams,
19137    ) -> Result<Value> {
19138        self.call_raw("getRateCentersUSA", params).await
19139    }
19140
19141    /// \- Retrieves the Rates for a specific Package and a Search term.
19142    ///
19143    /// Call the `getRates` API method and deserialize into [`GetRatesResponse`].
19144    pub async fn get_rates(&self, params: &GetRatesParams) -> Result<GetRatesResponse> {
19145        self.call("getRates", params).await
19146    }
19147
19148    /// Call the `getRates` API method and return the raw JSON envelope.
19149    pub async fn get_rates_raw(&self, params: &GetRatesParams) -> Result<Value> {
19150        self.call_raw("getRates", params).await
19151    }
19152
19153    /// \- Retrieves a specific Recording File data in Base64 format.
19154    ///
19155    /// Call the `getRecordingFile` API method and deserialize into [`GetRecordingFileResponse`].
19156    pub async fn get_recording_file(
19157        &self,
19158        params: &GetRecordingFileParams,
19159    ) -> Result<GetRecordingFileResponse> {
19160        self.call("getRecordingFile", params).await
19161    }
19162
19163    /// Call the `getRecordingFile` API method and return the raw JSON envelope.
19164    pub async fn get_recording_file_raw(&self, params: &GetRecordingFileParams) -> Result<Value> {
19165        self.call_raw("getRecordingFile", params).await
19166    }
19167
19168    /// \- Retrieves a list of Recordings if no additional parameter is provided.
19169    /// \- Retrieves a specific Recording if a Recording code is provided.
19170    ///
19171    /// Call the `getRecordings` API method and deserialize into [`GetRecordingsResponse`].
19172    pub async fn get_recordings(
19173        &self,
19174        params: &GetRecordingsParams,
19175    ) -> Result<GetRecordingsResponse> {
19176        self.call("getRecordings", params).await
19177    }
19178
19179    /// Call the `getRecordings` API method and return the raw JSON envelope.
19180    pub async fn get_recordings_raw(&self, params: &GetRecordingsParams) -> Result<Value> {
19181        self.call_raw("getRecordings", params).await
19182    }
19183
19184    /// \- Retrieves the Registration Status of all accounts if no account is
19185    /// provided.
19186    ///
19187    /// Call the `getRegistrationStatus` API method and deserialize into [`GetRegistrationStatusResponse`].
19188    pub async fn get_registration_status(
19189        &self,
19190        params: &GetRegistrationStatusParams,
19191    ) -> Result<GetRegistrationStatusResponse> {
19192        self.call("getRegistrationStatus", params).await
19193    }
19194
19195    /// Call the `getRegistrationStatus` API method and return the raw JSON envelope.
19196    pub async fn get_registration_status_raw(
19197        &self,
19198        params: &GetRegistrationStatusParams,
19199    ) -> Result<Value> {
19200        self.call_raw("getRegistrationStatus", params).await
19201    }
19202
19203    /// \- Retrieves a list of 'ReportEstimateHoldTime' Types if no additional
19204    /// parameter is provided.
19205    /// \- Retrieves a specific 'ReportEstimateHoldTime' Type if a type code is
19206    /// provided.
19207    ///
19208    /// Call the `getReportEstimatedHoldTime` API method and deserialize into [`GetReportEstimatedHoldTimeResponse`].
19209    pub async fn get_report_estimated_hold_time(
19210        &self,
19211        params: &GetReportEstimatedHoldTimeParams,
19212    ) -> Result<GetReportEstimatedHoldTimeResponse> {
19213        self.call("getReportEstimatedHoldTime", params).await
19214    }
19215
19216    /// Call the `getReportEstimatedHoldTime` API method and return the raw JSON envelope.
19217    pub async fn get_report_estimated_hold_time_raw(
19218        &self,
19219        params: &GetReportEstimatedHoldTimeParams,
19220    ) -> Result<Value> {
19221        self.call_raw("getReportEstimatedHoldTime", params).await
19222    }
19223
19224    /// \- Retrieves Balance and Calls Statistics for a specific Reseller Client
19225    /// for the last 30 days and current day.
19226    ///
19227    /// Call the `getResellerBalance` API method and deserialize into [`GetResellerBalanceResponse`].
19228    pub async fn get_reseller_balance(
19229        &self,
19230        params: &GetResellerBalanceParams,
19231    ) -> Result<GetResellerBalanceResponse> {
19232        self.call("getResellerBalance", params).await
19233    }
19234
19235    /// Call the `getResellerBalance` API method and return the raw JSON envelope.
19236    pub async fn get_reseller_balance_raw(
19237        &self,
19238        params: &GetResellerBalanceParams,
19239    ) -> Result<Value> {
19240        self.call_raw("getResellerBalance", params).await
19241    }
19242
19243    /// \- Retrieves the Call Detail Records for a specific Reseller Client.
19244    ///
19245    /// Call the `getResellerCDR` API method and deserialize into [`GetResellerCDRResponse`].
19246    ///
19247    /// A `timezone` zone is resolved to the numeric UTC offset the wire
19248    /// expects, at the query start date; a zone that cannot be resolved
19249    /// is [`Error::InvalidParams`](crate::Error::InvalidParams).
19250    pub async fn get_reseller_cdr(
19251        &self,
19252        params: &GetResellerCDRParams,
19253    ) -> Result<GetResellerCDRResponse> {
19254        self.call(
19255            "getResellerCDR",
19256            &GetResellerCDRParamsWire::try_from(params)?,
19257        )
19258        .await
19259    }
19260
19261    /// Call the `getResellerCDR` API method and return the raw JSON envelope.
19262    ///
19263    /// A `timezone` zone is resolved to the numeric UTC offset the wire
19264    /// expects, at the query start date; a zone that cannot be resolved
19265    /// is [`Error::InvalidParams`](crate::Error::InvalidParams).
19266    pub async fn get_reseller_cdr_raw(&self, params: &GetResellerCDRParams) -> Result<Value> {
19267        self.call_raw(
19268            "getResellerCDR",
19269            &GetResellerCDRParamsWire::try_from(params)?,
19270        )
19271        .await
19272    }
19273
19274    /// \- Retrieves a list of MMS messages for a specific Reseller Client. by:
19275    /// date range, mms type, DID number, and contact
19276    ///
19277    /// Call the `getResellerMMS` API method and deserialize into [`GetResellerMMSResponse`].
19278    ///
19279    /// A `timezone` zone is resolved to the numeric UTC offset the wire
19280    /// expects, at the query start date; a zone that cannot be resolved
19281    /// is [`Error::InvalidParams`](crate::Error::InvalidParams).
19282    pub async fn get_reseller_mms(
19283        &self,
19284        params: &GetResellerMMSParams,
19285    ) -> Result<GetResellerMMSResponse> {
19286        self.call(
19287            "getResellerMMS",
19288            &GetResellerMMSParamsWire::try_from(params)?,
19289        )
19290        .await
19291    }
19292
19293    /// Call the `getResellerMMS` API method and return the raw JSON envelope.
19294    ///
19295    /// A `timezone` zone is resolved to the numeric UTC offset the wire
19296    /// expects, at the query start date; a zone that cannot be resolved
19297    /// is [`Error::InvalidParams`](crate::Error::InvalidParams).
19298    pub async fn get_reseller_mms_raw(&self, params: &GetResellerMMSParams) -> Result<Value> {
19299        self.call_raw(
19300            "getResellerMMS",
19301            &GetResellerMMSParamsWire::try_from(params)?,
19302        )
19303        .await
19304    }
19305
19306    /// \- Retrieves a list of SMS messages for a specific Reseller Client. by:
19307    /// date range, sms type, DID number, and contact
19308    ///
19309    /// Call the `getResellerSMS` API method and deserialize into [`GetResellerSMSResponse`].
19310    ///
19311    /// A `timezone` zone is resolved to the numeric UTC offset the wire
19312    /// expects, at the query start date; a zone that cannot be resolved
19313    /// is [`Error::InvalidParams`](crate::Error::InvalidParams).
19314    pub async fn get_reseller_sms(
19315        &self,
19316        params: &GetResellerSMSParams,
19317    ) -> Result<GetResellerSMSResponse> {
19318        self.call(
19319            "getResellerSMS",
19320            &GetResellerSMSParamsWire::try_from(params)?,
19321        )
19322        .await
19323    }
19324
19325    /// Call the `getResellerSMS` API method and return the raw JSON envelope.
19326    ///
19327    /// A `timezone` zone is resolved to the numeric UTC offset the wire
19328    /// expects, at the query start date; a zone that cannot be resolved
19329    /// is [`Error::InvalidParams`](crate::Error::InvalidParams).
19330    pub async fn get_reseller_sms_raw(&self, params: &GetResellerSMSParams) -> Result<Value> {
19331        self.call_raw(
19332            "getResellerSMS",
19333            &GetResellerSMSParamsWire::try_from(params)?,
19334        )
19335        .await
19336    }
19337
19338    /// \- Retrieves a list of Ring Groups if no additional parameter is
19339    /// provided.
19340    /// \- Retrieves a specific Ring Group if a ring group code is provided.
19341    ///
19342    /// Call the `getRingGroups` API method and deserialize into [`GetRingGroupsResponse`].
19343    pub async fn get_ring_groups(
19344        &self,
19345        params: &GetRingGroupsParams,
19346    ) -> Result<GetRingGroupsResponse> {
19347        self.call("getRingGroups", params).await
19348    }
19349
19350    /// Call the `getRingGroups` API method and return the raw JSON envelope.
19351    pub async fn get_ring_groups_raw(&self, params: &GetRingGroupsParams) -> Result<Value> {
19352        self.call_raw("getRingGroups", params).await
19353    }
19354
19355    /// \- Retrieves a list of Ring Strategies if no additional parameter is
19356    /// provided.
19357    /// \- Retrieves a specific Ring Strategy if a ring strategy code is
19358    /// provided.
19359    ///
19360    /// Call the `getRingStrategies` API method and deserialize into [`GetRingStrategiesResponse`].
19361    pub async fn get_ring_strategies(
19362        &self,
19363        params: &GetRingStrategiesParams,
19364    ) -> Result<GetRingStrategiesResponse> {
19365        self.call("getRingStrategies", params).await
19366    }
19367
19368    /// Call the `getRingStrategies` API method and return the raw JSON envelope.
19369    pub async fn get_ring_strategies_raw(&self, params: &GetRingStrategiesParams) -> Result<Value> {
19370        self.call_raw("getRingStrategies", params).await
19371    }
19372
19373    /// \- Retrieves a list of Route Options if no additional parameter is
19374    /// provided.
19375    /// \- Retrieves a specific Route Option if a route code is provided.
19376    ///
19377    /// Call the `getRoutes` API method and deserialize into [`GetRoutesResponse`].
19378    pub async fn get_routes(&self, params: &GetRoutesParams) -> Result<GetRoutesResponse> {
19379        self.call("getRoutes", params).await
19380    }
19381
19382    /// Call the `getRoutes` API method and return the raw JSON envelope.
19383    pub async fn get_routes_raw(&self, params: &GetRoutesParams) -> Result<Value> {
19384        self.call_raw("getRoutes", params).await
19385    }
19386
19387    /// \- Retrieves a list of SIP URIs if no additional parameter is provided.
19388    /// \- Retrieves a specific SIP URI if a SIP URI code is provided.
19389    ///
19390    /// Call the `getSIPURIs` API method and deserialize into [`GetSIPURIsResponse`].
19391    pub async fn get_sip_uris(&self, params: &GetSIPURIsParams) -> Result<GetSIPURIsResponse> {
19392        self.call("getSIPURIs", params).await
19393    }
19394
19395    /// Call the `getSIPURIs` API method and return the raw JSON envelope.
19396    pub async fn get_sip_uris_raw(&self, params: &GetSIPURIsParams) -> Result<Value> {
19397        self.call_raw("getSIPURIs", params).await
19398    }
19399
19400    /// \- Retrieves a list of SMS messages by: date range, sms type, DID number,
19401    /// and contact.
19402    ///
19403    /// Call the `getSMS` API method and deserialize into [`GetSMSResponse`].
19404    ///
19405    /// A `timezone` zone is resolved to the numeric UTC offset the wire
19406    /// expects, at the query start date; a zone that cannot be resolved
19407    /// is [`Error::InvalidParams`](crate::Error::InvalidParams).
19408    pub async fn get_sms(&self, params: &GetSMSParams) -> Result<GetSMSResponse> {
19409        self.call("getSMS", &GetSMSParamsWire::try_from(params)?)
19410            .await
19411    }
19412
19413    /// Call the `getSMS` API method and return the raw JSON envelope.
19414    ///
19415    /// A `timezone` zone is resolved to the numeric UTC offset the wire
19416    /// expects, at the query start date; a zone that cannot be resolved
19417    /// is [`Error::InvalidParams`](crate::Error::InvalidParams).
19418    pub async fn get_sms_raw(&self, params: &GetSMSParams) -> Result<Value> {
19419        self.call_raw("getSMS", &GetSMSParamsWire::try_from(params)?)
19420            .await
19421    }
19422
19423    /// \- Retrieves a list of Servers with their info if no additional parameter
19424    /// is provided.
19425    /// \- Retrieves a specific Server with its info if a Server POP is provided.
19426    ///
19427    /// Call the `getServersInfo` API method and deserialize into [`GetServersInfoResponse`].
19428    pub async fn get_servers_info(
19429        &self,
19430        params: &GetServersInfoParams,
19431    ) -> Result<GetServersInfoResponse> {
19432        self.call("getServersInfo", params).await
19433    }
19434
19435    /// Call the `getServersInfo` API method and return the raw JSON envelope.
19436    pub async fn get_servers_info_raw(&self, params: &GetServersInfoParams) -> Result<Value> {
19437        self.call_raw("getServersInfo", params).await
19438    }
19439
19440    /// \- Retrieves a list of USA States.
19441    ///
19442    /// Call the `getStates` API method and deserialize into [`GetStatesResponse`].
19443    pub async fn get_states(&self, params: &GetStatesParams) -> Result<GetStatesResponse> {
19444        self.call("getStates", params).await
19445    }
19446
19447    /// Call the `getStates` API method and return the raw JSON envelope.
19448    pub async fn get_states_raw(&self, params: &GetStatesParams) -> Result<Value> {
19449        self.call_raw("getStates", params).await
19450    }
19451
19452    /// \- Retrieves a list of Static Members from a queue if no additional
19453    /// parameter is provided.
19454    /// \- Retrieves a specific Static Member from a queue if Queue ID and Member
19455    /// ID are provided
19456    ///
19457    /// Call the `getStaticMembers` API method and deserialize into [`GetStaticMembersResponse`].
19458    pub async fn get_static_members(
19459        &self,
19460        params: &GetStaticMembersParams,
19461    ) -> Result<GetStaticMembersResponse> {
19462        self.call("getStaticMembers", params).await
19463    }
19464
19465    /// Call the `getStaticMembers` API method and return the raw JSON envelope.
19466    pub async fn get_static_members_raw(&self, params: &GetStaticMembersParams) -> Result<Value> {
19467        self.call_raw("getStaticMembers", params).await
19468    }
19469
19470    /// \- Retrieves all Sub Accounts if no additional parameter is provided.
19471    /// \- Retrieves Reseller Client Accounts if Reseller Client ID is provided.
19472    /// \- Retrieves a specific Sub Account if a Sub Account is provided.
19473    ///
19474    /// Call the `getSubAccounts` API method and deserialize into [`GetSubAccountsResponse`].
19475    pub async fn get_sub_accounts(
19476        &self,
19477        params: &GetSubAccountsParams,
19478    ) -> Result<GetSubAccountsResponse> {
19479        self.call("getSubAccounts", params).await
19480    }
19481
19482    /// Call the `getSubAccounts` API method and return the raw JSON envelope.
19483    pub async fn get_sub_accounts_raw(&self, params: &GetSubAccountsParams) -> Result<Value> {
19484        self.call_raw("getSubAccounts", params).await
19485    }
19486
19487    /// \- Retrieves the Rates for a specific Route (Premium, Value) and a Search
19488    /// term.
19489    ///
19490    /// Call the `getTerminationRates` API method and deserialize into [`GetTerminationRatesResponse`].
19491    pub async fn get_termination_rates(
19492        &self,
19493        params: &GetTerminationRatesParams,
19494    ) -> Result<GetTerminationRatesResponse> {
19495        self.call("getTerminationRates", params).await
19496    }
19497
19498    /// Call the `getTerminationRates` API method and return the raw JSON envelope.
19499    pub async fn get_termination_rates_raw(
19500        &self,
19501        params: &GetTerminationRatesParams,
19502    ) -> Result<Value> {
19503        self.call_raw("getTerminationRates", params).await
19504    }
19505
19506    /// \- Retrieves a list of Time Conditions if no additional parameter is
19507    /// provided.
19508    /// \- Retrieves a specific Time Condition if a time condition code is
19509    /// provided.
19510    ///
19511    /// Call the `getTimeConditions` API method and deserialize into [`GetTimeConditionsResponse`].
19512    pub async fn get_time_conditions(
19513        &self,
19514        params: &GetTimeConditionsParams,
19515    ) -> Result<GetTimeConditionsResponse> {
19516        self.call("getTimeConditions", params).await
19517    }
19518
19519    /// Call the `getTimeConditions` API method and return the raw JSON envelope.
19520    pub async fn get_time_conditions_raw(&self, params: &GetTimeConditionsParams) -> Result<Value> {
19521        self.call_raw("getTimeConditions", params).await
19522    }
19523
19524    /// \- Retrieves a list of Timezones if no additional parameter is provided.
19525    /// \- Retrieves a specific Timezone if a timezone code is provided.
19526    ///
19527    /// Call the `getTimezones` API method and deserialize into [`GetTimezonesResponse`].
19528    pub async fn get_timezones(&self, params: &GetTimezonesParams) -> Result<GetTimezonesResponse> {
19529        self.call("getTimezones", params).await
19530    }
19531
19532    /// Call the `getTimezones` API method and return the raw JSON envelope.
19533    pub async fn get_timezones_raw(&self, params: &GetTimezonesParams) -> Result<Value> {
19534        self.call_raw("getTimezones", params).await
19535    }
19536
19537    /// \- Retrieves the Transaction History records between two dates.
19538    ///
19539    /// Call the `getTransactionHistory` API method and deserialize into [`GetTransactionHistoryResponse`].
19540    pub async fn get_transaction_history(
19541        &self,
19542        params: &GetTransactionHistoryParams,
19543    ) -> Result<GetTransactionHistoryResponse> {
19544        self.call("getTransactionHistory", params).await
19545    }
19546
19547    /// Call the `getTransactionHistory` API method and return the raw JSON envelope.
19548    pub async fn get_transaction_history_raw(
19549        &self,
19550        params: &GetTransactionHistoryParams,
19551    ) -> Result<Value> {
19552        self.call_raw("getTransactionHistory", params).await
19553    }
19554
19555    /// \- Retrieves a list of vpri.
19556    ///
19557    /// Call the `getVPRIs` API method and deserialize into [`GetVPRIsResponse`].
19558    pub async fn get_vpris(&self, params: &GetVPRIsParams) -> Result<GetVPRIsResponse> {
19559        self.call("getVPRIs", params).await
19560    }
19561
19562    /// Call the `getVPRIs` API method and return the raw JSON envelope.
19563    pub async fn get_vpris_raw(&self, params: &GetVPRIsParams) -> Result<Value> {
19564        self.call_raw("getVPRIs", params).await
19565    }
19566
19567    /// \- Retrieves a list of Email Attachment Format Options if no additional
19568    /// parameter is provided.
19569    /// \- Retrieves a specific Email Attachment Format Option if a format value
19570    /// is provided.
19571    ///
19572    /// Call the `getVoicemailAttachmentFormats` API method and deserialize into [`GetVoicemailAttachmentFormatsResponse`].
19573    pub async fn get_voicemail_attachment_formats(
19574        &self,
19575        params: &GetVoicemailAttachmentFormatsParams,
19576    ) -> Result<GetVoicemailAttachmentFormatsResponse> {
19577        self.call("getVoicemailAttachmentFormats", params).await
19578    }
19579
19580    /// Call the `getVoicemailAttachmentFormats` API method and return the raw JSON envelope.
19581    pub async fn get_voicemail_attachment_formats_raw(
19582        &self,
19583        params: &GetVoicemailAttachmentFormatsParams,
19584    ) -> Result<Value> {
19585        self.call_raw("getVoicemailAttachmentFormats", params).await
19586    }
19587
19588    /// \- Retrieves a list of default Voicemail Folders if no additional
19589    /// parameter is provided.
19590    /// \- Retrieves a list of Voicemail Folders within a mailbox if mailbox
19591    /// parameter is provided.
19592    /// \- Retrieves a specific Folder if a folder name is provided.
19593    ///
19594    /// Call the `getVoicemailFolders` API method and deserialize into [`GetVoicemailFoldersResponse`].
19595    pub async fn get_voicemail_folders(
19596        &self,
19597        params: &GetVoicemailFoldersParams,
19598    ) -> Result<GetVoicemailFoldersResponse> {
19599        self.call("getVoicemailFolders", params).await
19600    }
19601
19602    /// Call the `getVoicemailFolders` API method and return the raw JSON envelope.
19603    pub async fn get_voicemail_folders_raw(
19604        &self,
19605        params: &GetVoicemailFoldersParams,
19606    ) -> Result<Value> {
19607        self.call_raw("getVoicemailFolders", params).await
19608    }
19609
19610    /// \- Retrieves a specific Voicemail Message File in Base64 format.
19611    ///
19612    /// Call the `getVoicemailMessageFile` API method and deserialize into [`GetVoicemailMessageFileResponse`].
19613    pub async fn get_voicemail_message_file(
19614        &self,
19615        params: &GetVoicemailMessageFileParams,
19616    ) -> Result<GetVoicemailMessageFileResponse> {
19617        self.call("getVoicemailMessageFile", params).await
19618    }
19619
19620    /// Call the `getVoicemailMessageFile` API method and return the raw JSON envelope.
19621    pub async fn get_voicemail_message_file_raw(
19622        &self,
19623        params: &GetVoicemailMessageFileParams,
19624    ) -> Result<Value> {
19625        self.call_raw("getVoicemailMessageFile", params).await
19626    }
19627
19628    /// \- Retrieves a list of Voicemail Messages if mailbox parameter is
19629    /// provided.
19630    /// \- Retrieves a list of Voicemail Messages in a Folder if a folder is
19631    /// provided.
19632    /// \- Retrieves a list of Voicemail Messages in a date range if a from and
19633    /// to are provided.
19634    ///
19635    /// Call the `getVoicemailMessages` API method and deserialize into [`GetVoicemailMessagesResponse`].
19636    pub async fn get_voicemail_messages(
19637        &self,
19638        params: &GetVoicemailMessagesParams,
19639    ) -> Result<GetVoicemailMessagesResponse> {
19640        self.call("getVoicemailMessages", params).await
19641    }
19642
19643    /// Call the `getVoicemailMessages` API method and return the raw JSON envelope.
19644    pub async fn get_voicemail_messages_raw(
19645        &self,
19646        params: &GetVoicemailMessagesParams,
19647    ) -> Result<Value> {
19648        self.call_raw("getVoicemailMessages", params).await
19649    }
19650
19651    /// \- Retrieves a list of Voicemail Setup Options if no additional parameter
19652    /// is provided.
19653    /// \- Retrieves a specific Voicemail Setup Option if a voicemail setup code
19654    /// is provided.
19655    ///
19656    /// Call the `getVoicemailSetups` API method and deserialize into [`GetVoicemailSetupsResponse`].
19657    pub async fn get_voicemail_setups(
19658        &self,
19659        params: &GetVoicemailSetupsParams,
19660    ) -> Result<GetVoicemailSetupsResponse> {
19661        self.call("getVoicemailSetups", params).await
19662    }
19663
19664    /// Call the `getVoicemailSetups` API method and return the raw JSON envelope.
19665    pub async fn get_voicemail_setups_raw(
19666        &self,
19667        params: &GetVoicemailSetupsParams,
19668    ) -> Result<Value> {
19669        self.call_raw("getVoicemailSetups", params).await
19670    }
19671
19672    /// \- Retrieves all Voicemail Transcriptions if no additional parameter is
19673    /// provided.
19674    ///
19675    /// Call the `getVoicemailTranscriptions` API method and deserialize into [`GetVoicemailTranscriptionsResponse`].
19676    pub async fn get_voicemail_transcriptions(
19677        &self,
19678        params: &GetVoicemailTranscriptionsParams,
19679    ) -> Result<GetVoicemailTranscriptionsResponse> {
19680        self.call("getVoicemailTranscriptions", params).await
19681    }
19682
19683    /// Call the `getVoicemailTranscriptions` API method and return the raw JSON envelope.
19684    pub async fn get_voicemail_transcriptions_raw(
19685        &self,
19686        params: &GetVoicemailTranscriptionsParams,
19687    ) -> Result<Value> {
19688        self.call_raw("getVoicemailTranscriptions", params).await
19689    }
19690
19691    /// \- Retrieves a list of Voicemails if no additional parameter is provided.
19692    /// \- Retrieves a specific Voicemail if a voicemail code is provided.
19693    ///
19694    /// Call the `getVoicemails` API method and deserialize into [`GetVoicemailsResponse`].
19695    pub async fn get_voicemails(
19696        &self,
19697        params: &GetVoicemailsParams,
19698    ) -> Result<GetVoicemailsResponse> {
19699        self.call("getVoicemails", params).await
19700    }
19701
19702    /// Call the `getVoicemails` API method and return the raw JSON envelope.
19703    pub async fn get_voicemails_raw(&self, params: &GetVoicemailsParams) -> Result<Value> {
19704        self.call_raw("getVoicemails", params).await
19705    }
19706
19707    /// \- Send a Fax Message attached as a PDF file to an email destination.
19708    ///
19709    /// Call the `mailFaxMessagePDF` API method and deserialize into [`MailFAXMessagePDFResponse`].
19710    pub async fn mail_fax_message_pdf(
19711        &self,
19712        params: &MailFAXMessagePDFParams,
19713    ) -> Result<MailFAXMessagePDFResponse> {
19714        self.call("mailFaxMessagePDF", params).await
19715    }
19716
19717    /// Call the `mailFaxMessagePDF` API method and return the raw JSON envelope.
19718    pub async fn mail_fax_message_pdf_raw(
19719        &self,
19720        params: &MailFAXMessagePDFParams,
19721    ) -> Result<Value> {
19722        self.call_raw("mailFaxMessagePDF", params).await
19723    }
19724
19725    /// \- Mark a Voicemail Message as Listened or Unlistened.
19726    /// \- If value is 'yes', the voicemail message will be marked as listened
19727    /// and will be moved to the Old Folder.
19728    /// \- If value is 'no', the voicemail message will be marked as not-listened
19729    /// and will be moved to the INBOX Folder.
19730    ///
19731    /// Call the `markListenedVoicemailMessage` API method and deserialize into [`MarkListenedVoicemailMessageResponse`].
19732    pub async fn mark_listened_voicemail_message(
19733        &self,
19734        params: &MarkListenedVoicemailMessageParams,
19735    ) -> Result<MarkListenedVoicemailMessageResponse> {
19736        self.call("markListenedVoicemailMessage", params).await
19737    }
19738
19739    /// Call the `markListenedVoicemailMessage` API method and return the raw JSON envelope.
19740    pub async fn mark_listened_voicemail_message_raw(
19741        &self,
19742        params: &MarkListenedVoicemailMessageParams,
19743    ) -> Result<Value> {
19744        self.call_raw("markListenedVoicemailMessage", params).await
19745    }
19746
19747    /// \- Mark Voicemail Message as Urgent or not Urgent.
19748    /// \- If value is 'yes', the voicemail message will be marked as urgent and
19749    /// will be moved to the Urgent Folder.
19750    /// \- If value is 'no', the voicemail message will be unmarked as urgent and
19751    /// will be moved to the INBOX Folder.
19752    ///
19753    /// Call the `markUrgentVoicemailMessage` API method and deserialize into [`MarkUrgentVoicemailMessageResponse`].
19754    pub async fn mark_urgent_voicemail_message(
19755        &self,
19756        params: &MarkUrgentVoicemailMessageParams,
19757    ) -> Result<MarkUrgentVoicemailMessageResponse> {
19758        self.call("markUrgentVoicemailMessage", params).await
19759    }
19760
19761    /// Call the `markUrgentVoicemailMessage` API method and return the raw JSON envelope.
19762    pub async fn mark_urgent_voicemail_message_raw(
19763        &self,
19764        params: &MarkUrgentVoicemailMessageParams,
19765    ) -> Result<Value> {
19766        self.call_raw("markUrgentVoicemailMessage", params).await
19767    }
19768
19769    /// \- Moves a Fax Message to a different folder.
19770    ///
19771    /// Call the `moveFaxMessage` API method and deserialize into [`MoveFAXMessageResponse`].
19772    pub async fn move_fax_message(
19773        &self,
19774        params: &MoveFAXMessageParams,
19775    ) -> Result<MoveFAXMessageResponse> {
19776        self.call("moveFaxMessage", params).await
19777    }
19778
19779    /// Call the `moveFaxMessage` API method and return the raw JSON envelope.
19780    pub async fn move_fax_message_raw(&self, params: &MoveFAXMessageParams) -> Result<Value> {
19781        self.call_raw("moveFaxMessage", params).await
19782    }
19783
19784    /// \- Move Voicemail Message to a Destination Folder.
19785    ///
19786    /// Call the `moveFolderVoicemailMessage` API method and deserialize into [`MoveFolderVoicemailMessageResponse`].
19787    pub async fn move_folder_voicemail_message(
19788        &self,
19789        params: &MoveFolderVoicemailMessageParams,
19790    ) -> Result<MoveFolderVoicemailMessageResponse> {
19791        self.call("moveFolderVoicemailMessage", params).await
19792    }
19793
19794    /// Call the `moveFolderVoicemailMessage` API method and return the raw JSON envelope.
19795    pub async fn move_folder_voicemail_message_raw(
19796        &self,
19797        params: &MoveFolderVoicemailMessageParams,
19798    ) -> Result<Value> {
19799        self.call_raw("moveFolderVoicemailMessage", params).await
19800    }
19801
19802    /// \- Orders and Adds a new DID Number to the Account.
19803    ///
19804    /// Call the `orderDID` API method and deserialize into [`OrderDIDResponse`].
19805    pub async fn order_did(&self, params: &OrderDIDParams) -> Result<OrderDIDResponse> {
19806        self.call("orderDID", params).await
19807    }
19808
19809    /// Call the `orderDID` API method and return the raw JSON envelope.
19810    pub async fn order_did_raw(&self, params: &OrderDIDParams) -> Result<Value> {
19811        self.call_raw("orderDID", params).await
19812    }
19813
19814    /// \- Orders and Adds new International Geographic DID Numbers to the
19815    /// Account.
19816    ///
19817    /// Call the `orderDIDInternationalGeographic` API method and deserialize into [`OrderDIDInternationalGeographicResponse`].
19818    pub async fn order_did_international_geographic(
19819        &self,
19820        params: &OrderDIDInternationalGeographicParams,
19821    ) -> Result<OrderDIDInternationalGeographicResponse> {
19822        self.call("orderDIDInternationalGeographic", params).await
19823    }
19824
19825    /// Call the `orderDIDInternationalGeographic` API method and return the raw JSON envelope.
19826    pub async fn order_did_international_geographic_raw(
19827        &self,
19828        params: &OrderDIDInternationalGeographicParams,
19829    ) -> Result<Value> {
19830        self.call_raw("orderDIDInternationalGeographic", params)
19831            .await
19832    }
19833
19834    /// \- Orders and Adds new International National DID Numbers to the Account.
19835    ///
19836    /// Call the `orderDIDInternationalNational` API method and deserialize into [`OrderDIDInternationalNationalResponse`].
19837    pub async fn order_did_international_national(
19838        &self,
19839        params: &OrderDIDInternationalNationalParams,
19840    ) -> Result<OrderDIDInternationalNationalResponse> {
19841        self.call("orderDIDInternationalNational", params).await
19842    }
19843
19844    /// Call the `orderDIDInternationalNational` API method and return the raw JSON envelope.
19845    pub async fn order_did_international_national_raw(
19846        &self,
19847        params: &OrderDIDInternationalNationalParams,
19848    ) -> Result<Value> {
19849        self.call_raw("orderDIDInternationalNational", params).await
19850    }
19851
19852    /// \- Orders and Adds new International TollFree DID Numbers to the Account.
19853    ///
19854    /// Call the `orderDIDInternationalTollFree` API method and deserialize into [`OrderDIDInternationalTollFreeResponse`].
19855    pub async fn order_did_international_toll_free(
19856        &self,
19857        params: &OrderDIDInternationalTollFreeParams,
19858    ) -> Result<OrderDIDInternationalTollFreeResponse> {
19859        self.call("orderDIDInternationalTollFree", params).await
19860    }
19861
19862    /// Call the `orderDIDInternationalTollFree` API method and return the raw JSON envelope.
19863    pub async fn order_did_international_toll_free_raw(
19864        &self,
19865        params: &OrderDIDInternationalTollFreeParams,
19866    ) -> Result<Value> {
19867        self.call_raw("orderDIDInternationalTollFree", params).await
19868    }
19869
19870    /// \- Orders and Adds a new Virtual DID Number to the Account.
19871    ///
19872    /// Call the `orderDIDVirtual` API method and deserialize into [`OrderDIDVirtualResponse`].
19873    pub async fn order_did_virtual(
19874        &self,
19875        params: &OrderDIDVirtualParams,
19876    ) -> Result<OrderDIDVirtualResponse> {
19877        self.call("orderDIDVirtual", params).await
19878    }
19879
19880    /// Call the `orderDIDVirtual` API method and return the raw JSON envelope.
19881    pub async fn order_did_virtual_raw(&self, params: &OrderDIDVirtualParams) -> Result<Value> {
19882        self.call_raw("orderDIDVirtual", params).await
19883    }
19884
19885    /// \- Orders and Adds a new Fax Number to the Account.
19886    ///
19887    /// Call the `orderFaxNumber` API method and deserialize into [`OrderFAXNumberResponse`].
19888    pub async fn order_fax_number(
19889        &self,
19890        params: &OrderFAXNumberParams,
19891    ) -> Result<OrderFAXNumberResponse> {
19892        self.call("orderFaxNumber", params).await
19893    }
19894
19895    /// Call the `orderFaxNumber` API method and return the raw JSON envelope.
19896    pub async fn order_fax_number_raw(&self, params: &OrderFAXNumberParams) -> Result<Value> {
19897        self.call_raw("orderFaxNumber", params).await
19898    }
19899
19900    /// \- Orders and Adds a new Toll Free Number to the Account.
19901    ///
19902    /// Call the `orderTollFree` API method and deserialize into [`OrderTollFreeResponse`].
19903    pub async fn order_toll_free(
19904        &self,
19905        params: &OrderTollFreeParams,
19906    ) -> Result<OrderTollFreeResponse> {
19907        self.call("orderTollFree", params).await
19908    }
19909
19910    /// Call the `orderTollFree` API method and return the raw JSON envelope.
19911    pub async fn order_toll_free_raw(&self, params: &OrderTollFreeParams) -> Result<Value> {
19912        self.call_raw("orderTollFree", params).await
19913    }
19914
19915    /// \- Orders and Adds a new Vanity Toll Free Number to the Account.
19916    ///
19917    /// Call the `orderVanity` API method and deserialize into [`OrderVanityResponse`].
19918    pub async fn order_vanity(&self, params: &OrderVanityParams) -> Result<OrderVanityResponse> {
19919        self.call("orderVanity", params).await
19920    }
19921
19922    /// Call the `orderVanity` API method and return the raw JSON envelope.
19923    pub async fn order_vanity_raw(&self, params: &OrderVanityParams) -> Result<Value> {
19924        self.call_raw("orderVanity", params).await
19925    }
19926
19927    /// \- Removes a DID from a VPRI
19928    ///
19929    /// Call the `removeDIDvPRI` API method and deserialize into [`RemoveDIDvPRIResponse`].
19930    pub async fn remove_did_vpri(
19931        &self,
19932        params: &RemoveDIDvPRIParams,
19933    ) -> Result<RemoveDIDvPRIResponse> {
19934        self.call("removeDIDvPRI", params).await
19935    }
19936
19937    /// Call the `removeDIDvPRI` API method and return the raw JSON envelope.
19938    pub async fn remove_did_vpri_raw(&self, params: &RemoveDIDvPRIParams) -> Result<Value> {
19939        self.call_raw("removeDIDvPRI", params).await
19940    }
19941
19942    /// \- Searches for Canadian DIDs by Province using a Search Criteria.
19943    ///
19944    /// Call the `searchDIDsCAN` API method and deserialize into [`SearchDIDsCANResponse`].
19945    pub async fn search_dids_can(
19946        &self,
19947        params: &SearchDIDsCANParams,
19948    ) -> Result<SearchDIDsCANResponse> {
19949        self.call("searchDIDsCAN", params).await
19950    }
19951
19952    /// Call the `searchDIDsCAN` API method and return the raw JSON envelope.
19953    pub async fn search_dids_can_raw(&self, params: &SearchDIDsCANParams) -> Result<Value> {
19954        self.call_raw("searchDIDsCAN", params).await
19955    }
19956
19957    /// \- Searches for USA DIDs by State using a Search Criteria.
19958    ///
19959    /// Call the `searchDIDsUSA` API method and deserialize into [`SearchDIDsUSAResponse`].
19960    pub async fn search_dids_usa(
19961        &self,
19962        params: &SearchDIDsUSAParams,
19963    ) -> Result<SearchDIDsUSAResponse> {
19964        self.call("searchDIDsUSA", params).await
19965    }
19966
19967    /// Call the `searchDIDsUSA` API method and return the raw JSON envelope.
19968    pub async fn search_dids_usa_raw(&self, params: &SearchDIDsUSAParams) -> Result<Value> {
19969        self.call_raw("searchDIDsUSA", params).await
19970    }
19971
19972    /// \- Retrieves a list of Canadian Ratecenters searched by Area Code.
19973    ///
19974    /// Call the `searchFaxAreaCodeCAN` API method and deserialize into [`SearchFAXAreaCodeCANResponse`].
19975    pub async fn search_fax_area_code_can(
19976        &self,
19977        params: &SearchFAXAreaCodeCANParams,
19978    ) -> Result<SearchFAXAreaCodeCANResponse> {
19979        self.call("searchFaxAreaCodeCAN", params).await
19980    }
19981
19982    /// Call the `searchFaxAreaCodeCAN` API method and return the raw JSON envelope.
19983    pub async fn search_fax_area_code_can_raw(
19984        &self,
19985        params: &SearchFAXAreaCodeCANParams,
19986    ) -> Result<Value> {
19987        self.call_raw("searchFaxAreaCodeCAN", params).await
19988    }
19989
19990    /// \- Retrieves a list of USA Ratecenters searched by Area Code.
19991    ///
19992    /// Call the `searchFaxAreaCodeUSA` API method and deserialize into [`SearchFAXAreaCodeUSAResponse`].
19993    pub async fn search_fax_area_code_usa(
19994        &self,
19995        params: &SearchFAXAreaCodeUSAParams,
19996    ) -> Result<SearchFAXAreaCodeUSAResponse> {
19997        self.call("searchFaxAreaCodeUSA", params).await
19998    }
19999
20000    /// Call the `searchFaxAreaCodeUSA` API method and return the raw JSON envelope.
20001    pub async fn search_fax_area_code_usa_raw(
20002        &self,
20003        params: &SearchFAXAreaCodeUSAParams,
20004    ) -> Result<Value> {
20005        self.call_raw("searchFaxAreaCodeUSA", params).await
20006    }
20007
20008    /// \- Searches for USA/Canada Toll Free Numbers using a Search Criteria.
20009    /// \- Shows all USA/Canada Toll Free Numbers available if no criteria is
20010    /// provided.
20011    ///
20012    /// Call the `searchTollFreeCanUS` API method and deserialize into [`SearchTollFreeCANUSResponse`].
20013    pub async fn search_toll_free_can_us(
20014        &self,
20015        params: &SearchTollFreeCANUSParams,
20016    ) -> Result<SearchTollFreeCANUSResponse> {
20017        self.call("searchTollFreeCanUS", params).await
20018    }
20019
20020    /// Call the `searchTollFreeCanUS` API method and return the raw JSON envelope.
20021    pub async fn search_toll_free_can_us_raw(
20022        &self,
20023        params: &SearchTollFreeCANUSParams,
20024    ) -> Result<Value> {
20025        self.call_raw("searchTollFreeCanUS", params).await
20026    }
20027
20028    /// \- Searches for USA Toll Free Numbers using a Search Criteria.
20029    /// \- Shows all USA Toll Free Numbers available if no criteria is provided.
20030    ///
20031    /// Call the `searchTollFreeUSA` API method and deserialize into [`SearchTollFreeUSAResponse`].
20032    pub async fn search_toll_free_usa(
20033        &self,
20034        params: &SearchTollFreeUSAParams,
20035    ) -> Result<SearchTollFreeUSAResponse> {
20036        self.call("searchTollFreeUSA", params).await
20037    }
20038
20039    /// Call the `searchTollFreeUSA` API method and return the raw JSON envelope.
20040    pub async fn search_toll_free_usa_raw(
20041        &self,
20042        params: &SearchTollFreeUSAParams,
20043    ) -> Result<Value> {
20044        self.call_raw("searchTollFreeUSA", params).await
20045    }
20046
20047    /// \- Searches for Vanity Toll Free Numbers using a Search Criteria.
20048    ///
20049    /// Call the `searchVanity` API method and deserialize into [`SearchVanityResponse`].
20050    pub async fn search_vanity(&self, params: &SearchVanityParams) -> Result<SearchVanityResponse> {
20051        self.call("searchVanity", params).await
20052    }
20053
20054    /// Call the `searchVanity` API method and return the raw JSON envelope.
20055    pub async fn search_vanity_raw(&self, params: &SearchVanityParams) -> Result<Value> {
20056        self.call_raw("searchVanity", params).await
20057    }
20058
20059    /// \- Send information and audio file to email account.
20060    ///
20061    /// Call the `sendCallRecordingEmail` API method and deserialize into [`SendCallRecordingEmailResponse`].
20062    pub async fn send_call_recording_email(
20063        &self,
20064        params: &SendCallRecordingEmailParams,
20065    ) -> Result<SendCallRecordingEmailResponse> {
20066        self.call("sendCallRecordingEmail", params).await
20067    }
20068
20069    /// Call the `sendCallRecordingEmail` API method and return the raw JSON envelope.
20070    pub async fn send_call_recording_email_raw(
20071        &self,
20072        params: &SendCallRecordingEmailParams,
20073    ) -> Result<Value> {
20074        self.call_raw("sendCallRecordingEmail", params).await
20075    }
20076
20077    /// \- Send a Fax message to a Destination Number.
20078    ///
20079    /// Call the `sendFaxMessage` API method and deserialize into [`SendFAXMessageResponse`].
20080    pub async fn send_fax_message(
20081        &self,
20082        params: &SendFAXMessageParams,
20083    ) -> Result<SendFAXMessageResponse> {
20084        self.call("sendFaxMessage", params).await
20085    }
20086
20087    /// Call the `sendFaxMessage` API method and return the raw JSON envelope.
20088    pub async fn send_fax_message_raw(&self, params: &SendFAXMessageParams) -> Result<Value> {
20089        self.call_raw("sendFaxMessage", params).await
20090    }
20091
20092    /// \- Send a MMS message to a Destination Number.
20093    ///
20094    /// Call the `sendMMS` API method and deserialize into [`SendMMSResponse`].
20095    pub async fn send_mms(&self, params: &SendMMSParams) -> Result<SendMMSResponse> {
20096        self.call("sendMMS", params).await
20097    }
20098
20099    /// Call the `sendMMS` API method and return the raw JSON envelope.
20100    pub async fn send_mms_raw(&self, params: &SendMMSParams) -> Result<Value> {
20101        self.call_raw("sendMMS", params).await
20102    }
20103
20104    /// \- Send a SMS message to a Destination Number.
20105    ///
20106    /// Call the `sendSMS` API method and deserialize into [`SendSMSResponse`].
20107    pub async fn send_sms(&self, params: &SendSMSParams) -> Result<SendSMSResponse> {
20108        self.call("sendSMS", params).await
20109    }
20110
20111    /// Call the `sendSMS` API method and return the raw JSON envelope.
20112    pub async fn send_sms_raw(&self, params: &SendSMSParams) -> Result<Value> {
20113        self.call_raw("sendSMS", params).await
20114    }
20115
20116    /// \- Send a Voicemail Message File to an Email Address.
20117    ///
20118    /// Call the `sendVoicemailEmail` API method and deserialize into [`SendVoicemailEmailResponse`].
20119    pub async fn send_voicemail_email(
20120        &self,
20121        params: &SendVoicemailEmailParams,
20122    ) -> Result<SendVoicemailEmailResponse> {
20123        self.call("sendVoicemailEmail", params).await
20124    }
20125
20126    /// Call the `sendVoicemailEmail` API method and return the raw JSON envelope.
20127    pub async fn send_voicemail_email_raw(
20128        &self,
20129        params: &SendVoicemailEmailParams,
20130    ) -> Result<Value> {
20131        self.call_raw("sendVoicemailEmail", params).await
20132    }
20133
20134    /// \- Updates a specific Call Hunting if a Call Hunting code is provided.
20135    /// \- Adds a new Call Hunting if no Call Hunting code is provided.
20136    ///
20137    /// Call the `setCallHunting` API method and deserialize into [`SetCallHuntingResponse`].
20138    pub async fn set_call_hunting(
20139        &self,
20140        params: &SetCallHuntingParams,
20141    ) -> Result<SetCallHuntingResponse> {
20142        self.call("setCallHunting", params).await
20143    }
20144
20145    /// Call the `setCallHunting` API method and return the raw JSON envelope.
20146    pub async fn set_call_hunting_raw(&self, params: &SetCallHuntingParams) -> Result<Value> {
20147        self.call_raw("setCallHunting", params).await
20148    }
20149
20150    /// \- Updates a specific Call Parking entry if a Call Parking ID is
20151    /// provided.
20152    /// \- Adds a new Call Parking entry if no Call Parking ID is provided.
20153    ///
20154    /// Call the `setCallParking` API method and deserialize into [`SetCallParkingResponse`].
20155    pub async fn set_call_parking(
20156        &self,
20157        params: &SetCallParkingParams,
20158    ) -> Result<SetCallParkingResponse> {
20159        self.call("setCallParking", params).await
20160    }
20161
20162    /// Call the `setCallParking` API method and return the raw JSON envelope.
20163    pub async fn set_call_parking_raw(&self, params: &SetCallParkingParams) -> Result<Value> {
20164        self.call_raw("setCallParking", params).await
20165    }
20166
20167    /// \- Updates a specific Callback if a callback code is provided.
20168    /// \- Adds a new Callback entry if no callback code is provided.
20169    ///
20170    /// Call the `setCallback` API method and deserialize into [`SetCallbackResponse`].
20171    pub async fn set_callback(&self, params: &SetCallbackParams) -> Result<SetCallbackResponse> {
20172        self.call("setCallback", params).await
20173    }
20174
20175    /// Call the `setCallback` API method and return the raw JSON envelope.
20176    pub async fn set_callback_raw(&self, params: &SetCallbackParams) -> Result<Value> {
20177        self.call_raw("setCallback", params).await
20178    }
20179
20180    /// \- Updates a specific Caller ID Filtering if a filtering code is
20181    /// provided.
20182    /// \- Adds a new Caller ID Filtering if no filtering code is provided.
20183    ///
20184    /// Call the `setCallerIDFiltering` API method and deserialize into [`SetCallerIDFilteringResponse`].
20185    pub async fn set_caller_id_filtering(
20186        &self,
20187        params: &SetCallerIDFilteringParams,
20188    ) -> Result<SetCallerIDFilteringResponse> {
20189        self.call("setCallerIDFiltering", params).await
20190    }
20191
20192    /// Call the `setCallerIDFiltering` API method and return the raw JSON envelope.
20193    pub async fn set_caller_id_filtering_raw(
20194        &self,
20195        params: &SetCallerIDFilteringParams,
20196    ) -> Result<Value> {
20197        self.call_raw("setCallerIDFiltering", params).await
20198    }
20199
20200    /// \- Updates Reseller Client information.
20201    ///
20202    /// Call the `setClient` API method and deserialize into [`SetClientResponse`].
20203    pub async fn set_client(&self, params: &SetClientParams) -> Result<SetClientResponse> {
20204        self.call("setClient", params).await
20205    }
20206
20207    /// Call the `setClient` API method and return the raw JSON envelope.
20208    pub async fn set_client_raw(&self, params: &SetClientParams) -> Result<Value> {
20209        self.call_raw("setClient", params).await
20210    }
20211
20212    /// \- Update the Threshold Amount for a specific Reseller Client.- Update
20213    /// the Threshold notification e-mail for a specific Reseller Client if the
20214    /// e-mail address is provided.
20215    ///
20216    /// Call the `setClientThreshold` API method and deserialize into [`SetClientThresholdResponse`].
20217    pub async fn set_client_threshold(
20218        &self,
20219        params: &SetClientThresholdParams,
20220    ) -> Result<SetClientThresholdResponse> {
20221        self.call("setClientThreshold", params).await
20222    }
20223
20224    /// Call the `setClientThreshold` API method and return the raw JSON envelope.
20225    pub async fn set_client_threshold_raw(
20226        &self,
20227        params: &SetClientThresholdParams,
20228    ) -> Result<Value> {
20229        self.call_raw("setClientThreshold", params).await
20230    }
20231
20232    /// \- Updates a specific Conference if a conference code is provided.
20233    /// \- Adds a new Conference entry if no conference code is provided.
20234    ///
20235    /// Call the `setConference` API method and deserialize into [`SetConferenceResponse`].
20236    pub async fn set_conference(
20237        &self,
20238        params: &SetConferenceParams,
20239    ) -> Result<SetConferenceResponse> {
20240        self.call("setConference", params).await
20241    }
20242
20243    /// Call the `setConference` API method and return the raw JSON envelope.
20244    pub async fn set_conference_raw(&self, params: &SetConferenceParams) -> Result<Value> {
20245        self.call_raw("setConference", params).await
20246    }
20247
20248    /// \- Updates a specific Member profile if a member code is provided.
20249    /// \- Adds a new Member profile entry if no member code is provided.
20250    ///
20251    /// Call the `setConferenceMember` API method and deserialize into [`SetConferenceMemberResponse`].
20252    pub async fn set_conference_member(
20253        &self,
20254        params: &SetConferenceMemberParams,
20255    ) -> Result<SetConferenceMemberResponse> {
20256        self.call("setConferenceMember", params).await
20257    }
20258
20259    /// Call the `setConferenceMember` API method and return the raw JSON envelope.
20260    pub async fn set_conference_member_raw(
20261        &self,
20262        params: &SetConferenceMemberParams,
20263    ) -> Result<Value> {
20264        self.call_raw("setConferenceMember", params).await
20265    }
20266
20267    /// \- Updates the Billing Plan from a specific DID.
20268    ///
20269    /// Call the `setDIDBillingType` API method and deserialize into [`SetDIDBillingTypeResponse`].
20270    pub async fn set_did_billing_type(
20271        &self,
20272        params: &SetDIDBillingTypeParams,
20273    ) -> Result<SetDIDBillingTypeResponse> {
20274        self.call("setDIDBillingType", params).await
20275    }
20276
20277    /// Call the `setDIDBillingType` API method and return the raw JSON envelope.
20278    pub async fn set_did_billing_type_raw(
20279        &self,
20280        params: &SetDIDBillingTypeParams,
20281    ) -> Result<Value> {
20282        self.call_raw("setDIDBillingType", params).await
20283    }
20284
20285    /// \- Updates the information from a specific DID.
20286    ///
20287    /// Call the `setDIDInfo` API method and deserialize into [`SetDIDInfoResponse`].
20288    pub async fn set_did_info(&self, params: &SetDIDInfoParams) -> Result<SetDIDInfoResponse> {
20289        self.call("setDIDInfo", params).await
20290    }
20291
20292    /// Call the `setDIDInfo` API method and return the raw JSON envelope.
20293    pub async fn set_did_info_raw(&self, params: &SetDIDInfoParams) -> Result<Value> {
20294        self.call_raw("setDIDInfo", params).await
20295    }
20296
20297    /// \- Updates the POP from a specific DID.
20298    ///
20299    /// Call the `setDIDPOP` API method and deserialize into [`SetDIDPOPResponse`].
20300    pub async fn set_did_pop(&self, params: &SetDIDPOPParams) -> Result<SetDIDPOPResponse> {
20301        self.call("setDIDPOP", params).await
20302    }
20303
20304    /// Call the `setDIDPOP` API method and return the raw JSON envelope.
20305    pub async fn set_did_pop_raw(&self, params: &SetDIDPOPParams) -> Result<Value> {
20306        self.call_raw("setDIDPOP", params).await
20307    }
20308
20309    /// \- Updates the Routing from a specific DID.
20310    ///
20311    /// Call the `setDIDRouting` API method and deserialize into [`SetDIDRoutingResponse`].
20312    pub async fn set_did_routing(
20313        &self,
20314        params: &SetDIDRoutingParams,
20315    ) -> Result<SetDIDRoutingResponse> {
20316        self.call("setDIDRouting", params).await
20317    }
20318
20319    /// Call the `setDIDRouting` API method and return the raw JSON envelope.
20320    pub async fn set_did_routing_raw(&self, params: &SetDIDRoutingParams) -> Result<Value> {
20321        self.call_raw("setDIDRouting", params).await
20322    }
20323
20324    /// \- Updates the Voicemail from a specific DID.
20325    ///
20326    /// Call the `setDIDVoicemail` API method and deserialize into [`SetDIDVoicemailResponse`].
20327    pub async fn set_did_voicemail(
20328        &self,
20329        params: &SetDIDVoicemailParams,
20330    ) -> Result<SetDIDVoicemailResponse> {
20331        self.call("setDIDVoicemail", params).await
20332    }
20333
20334    /// Call the `setDIDVoicemail` API method and return the raw JSON envelope.
20335    pub async fn set_did_voicemail_raw(&self, params: &SetDIDVoicemailParams) -> Result<Value> {
20336        self.call_raw("setDIDVoicemail", params).await
20337    }
20338
20339    /// \- Updates a specific DISA if a disa code is provided.
20340    /// \- Adds a new DISA entry if no disa code is provided.
20341    ///
20342    /// Call the `setDISA` API method and deserialize into [`SetDISAResponse`].
20343    pub async fn set_disa(&self, params: &SetDISAParams) -> Result<SetDISAResponse> {
20344        self.call("setDISA", params).await
20345    }
20346
20347    /// Call the `setDISA` API method and return the raw JSON envelope.
20348    pub async fn set_disa_raw(&self, params: &SetDISAParams) -> Result<Value> {
20349        self.call_raw("setDISA", params).await
20350    }
20351
20352    /// \- Create or update the information of a specific "Email to Fax
20353    /// configuration".
20354    ///
20355    /// Call the `setEmailToFax` API method and deserialize into [`SetEmailToFAXResponse`].
20356    pub async fn set_email_to_fax(
20357        &self,
20358        params: &SetEmailToFAXParams,
20359    ) -> Result<SetEmailToFAXResponse> {
20360        self.call("setEmailToFax", params).await
20361    }
20362
20363    /// Call the `setEmailToFax` API method and return the raw JSON envelope.
20364    pub async fn set_email_to_fax_raw(&self, params: &SetEmailToFAXParams) -> Result<Value> {
20365        self.call_raw("setEmailToFax", params).await
20366    }
20367
20368    /// \- Create or update the information of a specific Fax Folder.
20369    ///
20370    /// Call the `setFaxFolder` API method and deserialize into [`SetFAXFolderResponse`].
20371    pub async fn set_fax_folder(
20372        &self,
20373        params: &SetFAXFolderParams,
20374    ) -> Result<SetFAXFolderResponse> {
20375        self.call("setFaxFolder", params).await
20376    }
20377
20378    /// Call the `setFaxFolder` API method and return the raw JSON envelope.
20379    pub async fn set_fax_folder_raw(&self, params: &SetFAXFolderParams) -> Result<Value> {
20380        self.call_raw("setFaxFolder", params).await
20381    }
20382
20383    /// \- Updates the email configuration from a specific Fax Number.
20384    ///
20385    /// Call the `setFaxNumberEmail` API method and deserialize into [`SetFAXNumberEmailResponse`].
20386    pub async fn set_fax_number_email(
20387        &self,
20388        params: &SetFAXNumberEmailParams,
20389    ) -> Result<SetFAXNumberEmailResponse> {
20390        self.call("setFaxNumberEmail", params).await
20391    }
20392
20393    /// Call the `setFaxNumberEmail` API method and return the raw JSON envelope.
20394    pub async fn set_fax_number_email_raw(
20395        &self,
20396        params: &SetFAXNumberEmailParams,
20397    ) -> Result<Value> {
20398        self.call_raw("setFaxNumberEmail", params).await
20399    }
20400
20401    /// \- Updates the information from a specific Fax Number.
20402    ///
20403    /// Call the `setFaxNumberInfo` API method and deserialize into [`SetFAXNumberInfoResponse`].
20404    pub async fn set_fax_number_info(
20405        &self,
20406        params: &SetFAXNumberInfoParams,
20407    ) -> Result<SetFAXNumberInfoResponse> {
20408        self.call("setFaxNumberInfo", params).await
20409    }
20410
20411    /// Call the `setFaxNumberInfo` API method and return the raw JSON envelope.
20412    pub async fn set_fax_number_info_raw(&self, params: &SetFAXNumberInfoParams) -> Result<Value> {
20413        self.call_raw("setFaxNumberInfo", params).await
20414    }
20415
20416    /// \- Updates the url callback configuration from a specific Fax Number.
20417    ///
20418    /// Call the `setFaxNumberURLCallback` API method and deserialize into [`SetFAXNumberURLCallbackResponse`].
20419    pub async fn set_fax_number_url_callback(
20420        &self,
20421        params: &SetFAXNumberURLCallbackParams,
20422    ) -> Result<SetFAXNumberURLCallbackResponse> {
20423        self.call("setFaxNumberURLCallback", params).await
20424    }
20425
20426    /// Call the `setFaxNumberURLCallback` API method and return the raw JSON envelope.
20427    pub async fn set_fax_number_url_callback_raw(
20428        &self,
20429        params: &SetFAXNumberURLCallbackParams,
20430    ) -> Result<Value> {
20431        self.call_raw("setFaxNumberURLCallback", params).await
20432    }
20433
20434    /// \- Updates a specific Forwarding if a fwd code is provided.
20435    /// \- Adds a new Forwarding entry if no fwd code is provided.
20436    ///
20437    /// Call the `setForwarding` API method and deserialize into [`SetForwardingResponse`].
20438    pub async fn set_forwarding(
20439        &self,
20440        params: &SetForwardingParams,
20441    ) -> Result<SetForwardingResponse> {
20442        self.call("setForwarding", params).await
20443    }
20444
20445    /// Call the `setForwarding` API method and return the raw JSON envelope.
20446    pub async fn set_forwarding_raw(&self, params: &SetForwardingParams) -> Result<Value> {
20447        self.call_raw("setForwarding", params).await
20448    }
20449
20450    /// \- Updates a specific IVR if an IVR code is provided.
20451    /// \- Adds a new IVR entry if no IVR code is provided.
20452    ///
20453    /// Call the `setIVR` API method and deserialize into [`SetIVRResponse`].
20454    pub async fn set_ivr(&self, params: &SetIVRParams) -> Result<SetIVRResponse> {
20455        self.call("setIVR", params).await
20456    }
20457
20458    /// Call the `setIVR` API method and return the raw JSON envelope.
20459    pub async fn set_ivr_raw(&self, params: &SetIVRParams) -> Result<Value> {
20460        self.call_raw("setIVR", params).await
20461    }
20462
20463    /// Call the `setLocation` API method and deserialize into [`SetLocationResponse`].
20464    pub async fn set_location(&self, params: &SetLocationParams) -> Result<SetLocationResponse> {
20465        self.call("setLocation", params).await
20466    }
20467
20468    /// Call the `setLocation` API method and return the raw JSON envelope.
20469    pub async fn set_location_raw(&self, params: &SetLocationParams) -> Result<Value> {
20470        self.call_raw("setLocation", params).await
20471    }
20472
20473    /// Call the `setMusicOnHold` API method and deserialize into [`SetMusicOnHoldResponse`].
20474    pub async fn set_music_on_hold(
20475        &self,
20476        params: &SetMusicOnHoldParams,
20477    ) -> Result<SetMusicOnHoldResponse> {
20478        self.call("setMusicOnHold", params).await
20479    }
20480
20481    /// Call the `setMusicOnHold` API method and return the raw JSON envelope.
20482    pub async fn set_music_on_hold_raw(&self, params: &SetMusicOnHoldParams) -> Result<Value> {
20483        self.call_raw("setMusicOnHold", params).await
20484    }
20485
20486    /// \- Updates a specific Phonebook entry if a phonebook code is provided.
20487    /// \- Adds a new Phonebook entry if no phonebook code is provided.
20488    ///
20489    /// Call the `setPhonebook` API method and deserialize into [`SetPhonebookResponse`].
20490    pub async fn set_phonebook(&self, params: &SetPhonebookParams) -> Result<SetPhonebookResponse> {
20491        self.call("setPhonebook", params).await
20492    }
20493
20494    /// Call the `setPhonebook` API method and return the raw JSON envelope.
20495    pub async fn set_phonebook_raw(&self, params: &SetPhonebookParams) -> Result<Value> {
20496        self.call_raw("setPhonebook", params).await
20497    }
20498
20499    /// \- Updates a specific Phonebook group if a phonebook code is provided.
20500    /// \- Adds a new Phonebook group if no phonebook group code is provided.
20501    /// \- Assigns or modifies group members if a member list is provided
20502    ///
20503    /// Call the `setPhonebookGroup` API method and deserialize into [`SetPhonebookGroupResponse`].
20504    pub async fn set_phonebook_group(
20505        &self,
20506        params: &SetPhonebookGroupParams,
20507    ) -> Result<SetPhonebookGroupResponse> {
20508        self.call("setPhonebookGroup", params).await
20509    }
20510
20511    /// Call the `setPhonebookGroup` API method and return the raw JSON envelope.
20512    pub async fn set_phonebook_group_raw(&self, params: &SetPhonebookGroupParams) -> Result<Value> {
20513        self.call_raw("setPhonebookGroup", params).await
20514    }
20515
20516    /// \- Updates a specific Queue entry if a queue code is provided.
20517    /// \- Adds a new Queue entry if no queue code is provided.
20518    ///
20519    /// Call the `setQueue` API method and deserialize into [`SetQueueResponse`].
20520    pub async fn set_queue(&self, params: &SetQueueParams) -> Result<SetQueueResponse> {
20521        self.call("setQueue", params).await
20522    }
20523
20524    /// Call the `setQueue` API method and return the raw JSON envelope.
20525    pub async fn set_queue_raw(&self, params: &SetQueueParams) -> Result<Value> {
20526        self.call_raw("setQueue", params).await
20527    }
20528
20529    /// \- Updates a specific Recording File if a Recording ID is provided.
20530    /// \- Adds a new Recording file entry if no Recording ID is provided.
20531    ///
20532    /// Call the `setRecording` API method and deserialize into [`SetRecordingResponse`].
20533    pub async fn set_recording(&self, params: &SetRecordingParams) -> Result<SetRecordingResponse> {
20534        self.call("setRecording", params).await
20535    }
20536
20537    /// Call the `setRecording` API method and return the raw JSON envelope.
20538    pub async fn set_recording_raw(&self, params: &SetRecordingParams) -> Result<Value> {
20539        self.call_raw("setRecording", params).await
20540    }
20541
20542    /// \- Updates a specific Ring Group if a ring group code is provided.
20543    /// \- Adds a new Ring Group entry if no ring group code is provided.
20544    ///
20545    /// Call the `setRingGroup` API method and deserialize into [`SetRingGroupResponse`].
20546    pub async fn set_ring_group(
20547        &self,
20548        params: &SetRingGroupParams,
20549    ) -> Result<SetRingGroupResponse> {
20550        self.call("setRingGroup", params).await
20551    }
20552
20553    /// Call the `setRingGroup` API method and return the raw JSON envelope.
20554    pub async fn set_ring_group_raw(&self, params: &SetRingGroupParams) -> Result<Value> {
20555        self.call_raw("setRingGroup", params).await
20556    }
20557
20558    /// \- Updates a specific SIP URI if a SIP URI code is provided.
20559    /// \- Adds a new SIP URI entry if no SIP URI code is provided.
20560    ///
20561    /// Call the `setSIPURI` API method and deserialize into [`SetSIPURIResponse`].
20562    pub async fn set_sip_uri(&self, params: &SetSIPURIParams) -> Result<SetSIPURIResponse> {
20563        self.call("setSIPURI", params).await
20564    }
20565
20566    /// Call the `setSIPURI` API method and return the raw JSON envelope.
20567    pub async fn set_sip_uri_raw(&self, params: &SetSIPURIParams) -> Result<Value> {
20568        self.call_raw("setSIPURI", params).await
20569    }
20570
20571    /// \- Enable/Disable the SMS Service for a DID
20572    /// \- Change the SMS settings for a DID
20573    ///
20574    /// Call the `setSMS` API method and deserialize into [`SetSMSResponse`].
20575    pub async fn set_sms(&self, params: &SetSMSParams) -> Result<SetSMSResponse> {
20576        self.call("setSMS", params).await
20577    }
20578
20579    /// Call the `setSMS` API method and return the raw JSON envelope.
20580    pub async fn set_sms_raw(&self, params: &SetSMSParams) -> Result<Value> {
20581        self.call_raw("setSMS", params).await
20582    }
20583
20584    /// \- Updates a specific Member from queue if a Member code is provided.
20585    /// \- Adds a new Member to Queue if no Member code is provided.
20586    ///
20587    /// Call the `setStaticMember` API method and deserialize into [`SetStaticMemberResponse`].
20588    pub async fn set_static_member(
20589        &self,
20590        params: &SetStaticMemberParams,
20591    ) -> Result<SetStaticMemberResponse> {
20592        self.call("setStaticMember", params).await
20593    }
20594
20595    /// Call the `setStaticMember` API method and return the raw JSON envelope.
20596    pub async fn set_static_member_raw(&self, params: &SetStaticMemberParams) -> Result<Value> {
20597        self.call_raw("setStaticMember", params).await
20598    }
20599
20600    /// \- Updates Sub Account information.
20601    ///
20602    /// Call the `setSubAccount` API method and deserialize into [`SetSubAccountResponse`].
20603    pub async fn set_sub_account(
20604        &self,
20605        params: &SetSubAccountParams,
20606    ) -> Result<SetSubAccountResponse> {
20607        self.call("setSubAccount", params).await
20608    }
20609
20610    /// Call the `setSubAccount` API method and return the raw JSON envelope.
20611    pub async fn set_sub_account_raw(&self, params: &SetSubAccountParams) -> Result<Value> {
20612        self.call_raw("setSubAccount", params).await
20613    }
20614
20615    /// \- Updates a specific Time Condition if a time condition code is
20616    /// provided.
20617    /// \- Adds a new Time Condition entry if no time condition code is provided.
20618    ///
20619    /// Call the `setTimeCondition` API method and deserialize into [`SetTimeConditionResponse`].
20620    pub async fn set_time_condition(
20621        &self,
20622        params: &SetTimeConditionParams,
20623    ) -> Result<SetTimeConditionResponse> {
20624        self.call("setTimeCondition", params).await
20625    }
20626
20627    /// Call the `setTimeCondition` API method and return the raw JSON envelope.
20628    pub async fn set_time_condition_raw(&self, params: &SetTimeConditionParams) -> Result<Value> {
20629        self.call_raw("setTimeCondition", params).await
20630    }
20631
20632    /// \- Updates the information from a specific Voicemail.
20633    ///
20634    /// Call the `setVoicemail` API method and deserialize into [`SetVoicemailResponse`].
20635    pub async fn set_voicemail(&self, params: &SetVoicemailParams) -> Result<SetVoicemailResponse> {
20636        self.call("setVoicemail", params).await
20637    }
20638
20639    /// Call the `setVoicemail` API method and return the raw JSON envelope.
20640    pub async fn set_voicemail_raw(&self, params: &SetVoicemailParams) -> Result<Value> {
20641        self.call_raw("setVoicemail", params).await
20642    }
20643
20644    /// \- Signs a new Reseller Client to your Reseller Account.
20645    ///
20646    /// Call the `signupClient` API method and deserialize into [`SignupClientResponse`].
20647    pub async fn signup_client(&self, params: &SignupClientParams) -> Result<SignupClientResponse> {
20648        self.call("signupClient", params).await
20649    }
20650
20651    /// Call the `signupClient` API method and return the raw JSON envelope.
20652    pub async fn signup_client_raw(&self, params: &SignupClientParams) -> Result<Value> {
20653        self.call_raw("signupClient", params).await
20654    }
20655
20656    /// \- Unconnects specific DID from Reseller Client Sub Account.
20657    ///
20658    /// Call the `unconnectDID` API method and deserialize into [`UnconnectDIDResponse`].
20659    pub async fn unconnect_did(&self, params: &UnconnectDIDParams) -> Result<UnconnectDIDResponse> {
20660        self.call("unconnectDID", params).await
20661    }
20662
20663    /// Call the `unconnectDID` API method and return the raw JSON envelope.
20664    pub async fn unconnect_did_raw(&self, params: &UnconnectDIDParams) -> Result<Value> {
20665        self.call_raw("unconnectDID", params).await
20666    }
20667
20668    /// \- Unconnects specific FAX DID from Reseller Client Sub Account.
20669    ///
20670    /// Call the `unconnectFAX` API method and deserialize into [`UnconnectFAXResponse`].
20671    pub async fn unconnect_fax(&self, params: &UnconnectFAXParams) -> Result<UnconnectFAXResponse> {
20672        self.call("unconnectFAX", params).await
20673    }
20674
20675    /// Call the `unconnectFAX` API method and return the raw JSON envelope.
20676    pub async fn unconnect_fax_raw(&self, params: &UnconnectFAXParams) -> Result<Value> {
20677        self.call_raw("unconnectFAX", params).await
20678    }
20679}