//! Binary data may be copied *between* two different accounts using the //! "Blob/copy" method rather than having to download and then reupload //! on the client. use std::collections::HashMap; use serde::{Deserialize, Serialize}; use crate::{common::Id, endpoints::object::set::SetError}; #[derive(Deserialize, Serialize, Clone, Debug)] #[serde(rename_all = "camelCase")] pub struct CopyRequest<'a> { /// The id of the account to copy blobs from. #[serde(borrow)] from_account_id: Id<'a>, /// The id of the account to copy blobs to. account_id: Id<'a>, /// A list of ids of blobs to copy to the other account. blob_ids: Vec>, } #[derive(Deserialize, Serialize, Clone, Debug)] #[serde(rename_all = "camelCase")] pub struct CopyResponse<'a> { /// The id of the account blobs were copied from. #[serde(borrow)] from_account_id: Id<'a>, /// The id of the account blobs were copied to. account_id: Id<'a>, /// A map of the blobId in the fromAccount to the id for the blob in /// the account it was copied to, or null if none were successfully /// copied. #[serde(default)] copied: HashMap, Id<'a>>, /// A map of blobId to a SetError object for each blob that failed to /// be copied, or null if none. #[serde(default)] not_copied: HashMap, SetError<'a>>, }