//! There is a single endpoint that handles all file uploads for an
//! account, regardless of what they are to be used for. The Session
//! object (see Section 2) has an "uploadUrl" property in URI Template
//! (level 1) format [RFC6570], which MUST contain a variable called
//! "accountId". The client may use this template in combination with an
//! "accountId" to get the URL of the file upload resource.
use std::borrow::Cow;
use serde::{Deserialize, Serialize};
use crate::common::{Id, UnsignedInt};
#[derive(Deserialize, Serialize, Clone, Debug)]
#[serde(rename_all = "camelCase")]
pub struct UploadResponse<'a> {
/// The id of the account used for the call.
account_id: Id<'a>,
/// The id representing the binary data uploaded. The data for this
/// id is immutable. The id *only* refers to the binary data, not any
/// metadata.
blob_id: Id<'a>,
/// The media type of the file (as specified in [RFC6838],
/// Section 4.2) as set in the Content-Type header of the upload HTTP
/// request.
#[serde(rename = "type", borrow)]
type_: Cow<'a, str>,
/// The size of the file in octets.
size: UnsignedInt,
}