#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct Input {
pub repo: crate::types::string::AtIdentifier,
#[serde(skip_serializing_if = "Option::is_none")]
pub swap_commit: Option<crate::types::string::Cid>,
#[serde(skip_serializing_if = "Option::is_none")]
pub validate: Option<bool>,
pub writes: Vec<InputWritesItem>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "error", content = "message")]
pub enum Error {
InvalidSwap(Option<String>),
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct Create {
pub collection: crate::types::string::Nsid,
#[serde(skip_serializing_if = "Option::is_none")]
pub rkey: Option<String>,
pub value: crate::records::Record,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct Delete {
pub collection: crate::types::string::Nsid,
pub rkey: String,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct Update {
pub collection: crate::types::string::Nsid,
pub rkey: String,
pub value: crate::records::Record,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum InputWritesItem {
#[serde(rename = "com.atproto.repo.applyWrites#create")]
Create(Box<Create>),
#[serde(rename = "com.atproto.repo.applyWrites#update")]
Update(Box<Update>),
#[serde(rename = "com.atproto.repo.applyWrites#delete")]
Delete(Box<Delete>),
}