use serde::Deserialize;
use time::OffsetDateTime;
#[derive(Deserialize, Debug)]
pub struct ScalewayDnsZone {
pub domain: String,
pub subdomain: String,
pub ns: Vec<String>,
pub ns_default: Vec<String>,
pub message: Option<String>,
#[serde(with = "time::serde::rfc3339::option")]
pub updated_at: Option<OffsetDateTime>,
pub project_id: String,
pub status: DnsZoneStatus,
pub linked_products: Vec<String>,
pub is_default: Option<bool>,
}
#[derive(Debug, Clone, Copy)]
pub enum DnsZoneOrderBy {
DomainAsc,
DomainDesc,
}
impl std::fmt::Display for DnsZoneOrderBy {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
DnsZoneOrderBy::DomainAsc => write!(f, "domain_asc"),
DnsZoneOrderBy::DomainDesc => write!(f, "domain_desc"),
}
}
}
#[derive(Deserialize, Debug)]
#[serde(rename_all = "snake_case")]
pub enum DnsZoneStatus {
Unknown,
Active,
Pending,
Error,
Locked,
}
#[derive(Deserialize, Debug)]
pub(crate) struct ScalewayDnsZonesRoot {
pub dns_zones: Vec<ScalewayDnsZone>,
}