use crate::serde_helpers::double_option;
use super::*;
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CreateWebLinkRequest {
pub url: String,
pub parent: AttributesParent,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UpdateWebLinkRequestSharedLink {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub access: Option<SharedLinkAccess>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub password: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vanity_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unshared_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UpdateWebLinkRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent: Option<PutIdParent>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_link: Option<UpdateWebLinkRequestSharedLink>,
}