/*
 * Zernio API
 *
 * API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
 *
 * The version of the OpenAPI document: 1.0.4
 * Contact: support@zernio.com
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct GetGoogleBusinessVerifications200ResponseVerificationsInner {
    /// Resource name, e.g. \"locations/123/verifications/0T1776879124712\". The last segment is the verificationId.
    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    /// Method used (omitted on some entries).
    #[serde(rename = "method", skip_serializing_if = "Option::is_none")]
    pub method: Option<Method>,
    #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
    pub state: Option<State>,
    #[serde(rename = "createTime", skip_serializing_if = "Option::is_none")]
    pub create_time: Option<String>,
}

impl GetGoogleBusinessVerifications200ResponseVerificationsInner {
    pub fn new() -> GetGoogleBusinessVerifications200ResponseVerificationsInner {
        GetGoogleBusinessVerifications200ResponseVerificationsInner {
            name: None,
            method: None,
            state: None,
            create_time: None,
        }
    }
}
/// Method used (omitted on some entries).
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Method {
    #[serde(rename = "ADDRESS")]
    Address,
    #[serde(rename = "EMAIL")]
    Email,
    #[serde(rename = "PHONE_CALL")]
    PhoneCall,
    #[serde(rename = "SMS")]
    Sms,
    #[serde(rename = "AUTO")]
    Auto,
    #[serde(rename = "VETTED_PARTNER")]
    VettedPartner,
}

impl Default for Method {
    fn default() -> Method {
        Self::Address
    }
}
///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum State {
    #[serde(rename = "PENDING")]
    Pending,
    #[serde(rename = "COMPLETED")]
    Completed,
    #[serde(rename = "FAILED")]
    Failed,
}

impl Default for State {
    fn default() -> State {
        Self::Pending
    }
}
