#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct DraftData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub device_id: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub device_name: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub langs: core::option::Option<Vec<crate::types::string::Language>>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub postgate_embedding_rules: core::option::Option<
Vec<crate::types::Union<DraftPostgateEmbeddingRulesItem>>,
>,
pub posts: Vec<DraftPost>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub threadgate_allow: core::option::Option<
Vec<crate::types::Union<DraftThreadgateAllowItem>>,
>,
}
pub type Draft = crate::types::Object<DraftData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct DraftEmbedCaptionData {
pub content: String,
pub lang: crate::types::string::Language,
}
pub type DraftEmbedCaption = crate::types::Object<DraftEmbedCaptionData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct DraftEmbedExternalData {
pub uri: String,
}
pub type DraftEmbedExternal = crate::types::Object<DraftEmbedExternalData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct DraftEmbedGalleryData {
pub items: DraftEmbedGalleryItems,
}
pub type DraftEmbedGallery = crate::types::Object<DraftEmbedGalleryData>;
pub type DraftEmbedGalleryItems = Vec<crate::types::Union<DraftEmbedGalleryItemsItem>>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct DraftEmbedImageData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub alt: core::option::Option<String>,
pub local_ref: DraftEmbedLocalRef,
}
pub type DraftEmbedImage = crate::types::Object<DraftEmbedImageData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct DraftEmbedLocalRefData {
pub path: String,
}
pub type DraftEmbedLocalRef = crate::types::Object<DraftEmbedLocalRefData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct DraftEmbedRecordData {
pub record: crate::com::atproto::repo::strong_ref::Main,
}
pub type DraftEmbedRecord = crate::types::Object<DraftEmbedRecordData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct DraftEmbedVideoData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub alt: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub captions: core::option::Option<Vec<DraftEmbedCaption>>,
pub local_ref: DraftEmbedLocalRef,
}
pub type DraftEmbedVideo = crate::types::Object<DraftEmbedVideoData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct DraftPostData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub embed_externals: core::option::Option<Vec<DraftEmbedExternal>>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub embed_gallery: core::option::Option<DraftEmbedGallery>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub embed_images: core::option::Option<Vec<DraftEmbedImage>>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub embed_records: core::option::Option<Vec<DraftEmbedRecord>>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub embed_videos: core::option::Option<Vec<DraftEmbedVideo>>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub labels: core::option::Option<crate::types::Union<DraftPostLabelsRefs>>,
pub text: String,
}
pub type DraftPost = crate::types::Object<DraftPostData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct DraftViewData {
pub created_at: crate::types::string::Datetime,
pub draft: Draft,
pub id: crate::types::string::Tid,
pub updated_at: crate::types::string::Datetime,
}
pub type DraftView = crate::types::Object<DraftViewData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct DraftWithIdData {
pub draft: Draft,
pub id: crate::types::string::Tid,
}
pub type DraftWithId = crate::types::Object<DraftWithIdData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum DraftEmbedGalleryItemsItem {
#[serde(rename = "app.bsky.draft.defs#draftEmbedImage")]
DraftEmbedImage(Box<DraftEmbedImage>),
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum DraftPostLabelsRefs {
#[serde(rename = "com.atproto.label.defs#selfLabels")]
ComAtprotoLabelDefsSelfLabels(Box<crate::com::atproto::label::defs::SelfLabels>),
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum DraftPostgateEmbeddingRulesItem {
#[serde(rename = "app.bsky.feed.postgate#disableRule")]
AppBskyFeedPostgateDisableRule(Box<crate::app::bsky::feed::postgate::DisableRule>),
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum DraftThreadgateAllowItem {
#[serde(rename = "app.bsky.feed.threadgate#mentionRule")]
AppBskyFeedThreadgateMentionRule(
Box<crate::app::bsky::feed::threadgate::MentionRule>,
),
#[serde(rename = "app.bsky.feed.threadgate#followerRule")]
AppBskyFeedThreadgateFollowerRule(
Box<crate::app::bsky::feed::threadgate::FollowerRule>,
),
#[serde(rename = "app.bsky.feed.threadgate#followingRule")]
AppBskyFeedThreadgateFollowingRule(
Box<crate::app::bsky::feed::threadgate::FollowingRule>,
),
#[serde(rename = "app.bsky.feed.threadgate#listRule")]
AppBskyFeedThreadgateListRule(Box<crate::app::bsky::feed::threadgate::ListRule>),
}