Skip to main content

late/models/
verification.rs

1/*
2 * Zernio API
3 *
4 * API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
5 *
6 * The version of the OpenAPI document: 1.0.4
7 * Contact: support@zernio.com
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// Verification : A managed OTP verification. The code itself is never returned or stored (hash only).
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct Verification {
17    #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
18    pub id: Option<String>,
19    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
20    pub status: Option<Status>,
21    #[serde(rename = "channel", skip_serializing_if = "Option::is_none")]
22    pub channel: Option<Channel>,
23    #[serde(rename = "to", skip_serializing_if = "Option::is_none")]
24    pub to: Option<String>,
25    #[serde(rename = "expiresAt", skip_serializing_if = "Option::is_none")]
26    pub expires_at: Option<String>,
27    #[serde(rename = "attempts", skip_serializing_if = "Option::is_none")]
28    pub attempts: Option<i32>,
29    #[serde(rename = "maxAttempts", skip_serializing_if = "Option::is_none")]
30    pub max_attempts: Option<i32>,
31    /// Accepted deliveries (initial send + resends); each bills one verification fee.
32    #[serde(rename = "sendCount", skip_serializing_if = "Option::is_none")]
33    pub send_count: Option<i32>,
34    #[serde(
35        rename = "lastSentAt",
36        default,
37        with = "::serde_with::rust::double_option",
38        skip_serializing_if = "Option::is_none"
39    )]
40    pub last_sent_at: Option<Option<String>>,
41    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
42    pub created_at: Option<String>,
43    /// Present on create responses: true when an active verification was resent instead of created.
44    #[serde(rename = "resend", skip_serializing_if = "Option::is_none")]
45    pub resend: Option<bool>,
46}
47
48impl Verification {
49    /// A managed OTP verification. The code itself is never returned or stored (hash only).
50    pub fn new() -> Verification {
51        Verification {
52            id: None,
53            status: None,
54            channel: None,
55            to: None,
56            expires_at: None,
57            attempts: None,
58            max_attempts: None,
59            send_count: None,
60            last_sent_at: None,
61            created_at: None,
62            resend: None,
63        }
64    }
65}
66///
67#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
68pub enum Status {
69    #[serde(rename = "pending")]
70    Pending,
71    #[serde(rename = "approved")]
72    Approved,
73    #[serde(rename = "expired")]
74    Expired,
75    #[serde(rename = "max_attempts_reached")]
76    MaxAttemptsReached,
77    #[serde(rename = "canceled")]
78    Canceled,
79    #[serde(rename = "delivery_failed")]
80    DeliveryFailed,
81}
82
83impl Default for Status {
84    fn default() -> Status {
85        Self::Pending
86    }
87}
88///
89#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
90pub enum Channel {
91    #[serde(rename = "sms")]
92    Sms,
93}
94
95impl Default for Channel {
96    fn default() -> Channel {
97        Self::Sms
98    }
99}