use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Page {
#[serde(rename = "url")]
pub url: String,
#[serde(rename = "status", deserialize_with = "Option::deserialize")]
pub status: Option<Status>,
#[serde(rename = "cname", deserialize_with = "Option::deserialize")]
pub cname: Option<String>,
#[serde(rename = "protected_domain_state", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub protected_domain_state: Option<Option<ProtectedDomainState>>,
#[serde(rename = "pending_domain_unverified_at", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub pending_domain_unverified_at: Option<Option<String>>,
#[serde(rename = "custom_404")]
pub custom_404: bool,
#[serde(rename = "html_url", skip_serializing_if = "Option::is_none")]
pub html_url: Option<String>,
#[serde(rename = "build_type", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub build_type: Option<Option<BuildType>>,
#[serde(rename = "source", skip_serializing_if = "Option::is_none")]
pub source: Option<Box<models::PagesSourceHash>>,
#[serde(rename = "public")]
pub public: bool,
#[serde(rename = "https_certificate", skip_serializing_if = "Option::is_none")]
pub https_certificate: Option<Box<models::PagesHttpsCertificate>>,
#[serde(rename = "https_enforced", skip_serializing_if = "Option::is_none")]
pub https_enforced: Option<bool>,
}
impl Page {
pub fn new(url: String, status: Option<Status>, cname: Option<String>, custom_404: bool, public: bool) -> Page {
Page {
url,
status,
cname,
protected_domain_state: None,
pending_domain_unverified_at: None,
custom_404,
html_url: None,
build_type: None,
source: None,
public,
https_certificate: None,
https_enforced: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "built")]
Built,
#[serde(rename = "building")]
Building,
#[serde(rename = "errored")]
Errored,
}
impl Default for Status {
fn default() -> Status {
Self::Built
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ProtectedDomainState {
#[serde(rename = "pending")]
Pending,
#[serde(rename = "verified")]
Verified,
#[serde(rename = "unverified")]
Unverified,
}
impl Default for ProtectedDomainState {
fn default() -> ProtectedDomainState {
Self::Pending
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum BuildType {
#[serde(rename = "legacy")]
Legacy,
#[serde(rename = "workflow")]
Workflow,
}
impl Default for BuildType {
fn default() -> BuildType {
Self::Legacy
}
}