rusty_dropbox_sdk 0.8.2

Unofficial SDK for dropbox in Rust
Documentation
pub mod count;
pub mod create;
pub mod delete;
pub mod delete_all_closed;
pub mod get;
pub mod list;
pub mod list_continue;

use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug)]
pub struct CountFileRequestsResult {
    pub file_request_count: u32,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct CreateFileRequestArgs {
    pub title: String,
    pub destination: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub deadline: Option<FileRequestDeadline>,
    pub open: bool,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub video_project_id: Option<String>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct CreateFileRequestResult(FileRequest);

#[derive(Serialize, Deserialize, Debug)]
pub struct Deadline {
    pub deadline: DateTime<Utc>,
    pub allow_late_uploads: Option<bool>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct FileRequestDeadline {
    pub deadline: DateTime<Utc>,
    pub allow_late_uploads: Option<GracePeriod>,
}

#[derive(Serialize, Deserialize, Debug)]
#[serde(untagged)]
pub enum GracePeriod {
    GracePeriodTagged(GracePeriodTagged),
    GracePeriodUntagged(GracePeriodUntagged),
}

#[derive(Serialize, Deserialize, Debug)]
#[serde(rename_all = "snake_case")]
#[serde(tag = ".tag")]
pub enum GracePeriodTagged {
    OneDay,
    TwoDays,
    SevenDays,
    ThirtyDays,
    Always,
}

#[derive(Serialize, Deserialize, Debug)]
#[serde(rename_all = "snake_case")]
pub enum GracePeriodUntagged {
    OneDay,
    TwoDays,
    SevenDays,
    ThirtyDays,
    Always,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct DeleteFileRequestArgs {
    pub ids: Vec<String>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct DeleteFileRequestResult {
    pub file_requests: Vec<FileRequest>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct DeleteAllClosedFileRequestsResult {
    pub file_requests: Vec<FileRequest>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct DeletedFileRequest {
    pub id: String,
    pub title: String,
    pub destination: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub deadline: Option<FileRequestDeadline>,
    pub url: String,
    pub open: bool,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct GetFileRequestArgs {
    pub id: String,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct GetFileRequestResult(FileRequest);

#[derive(Serialize, Deserialize, Debug)]
pub struct ListFileRequestsArgs {
    pub limit: u64,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct ListFileRequestsResult {
    pub file_requests: Vec<FileRequest>,
    pub cursor: String,
    pub has_more: bool,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct FileRequest {
    pub id: String,
    pub url: String,
    pub title: String,
    pub created: DateTime<Utc>,
    pub is_open: bool,
    pub file_count: i64,
    pub destination: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub deadline: Option<FileRequestDeadline>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub video_project_id: Option<String>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct ListFileRequestsContinueArgs {
    pub cursor: String,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct ListFileRequestsContinueResult {
    pub file_requests: Vec<FileRequest>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct UpdateFileRequestArgs {
    pub id: String,
    pub title: Option<String>,
    pub destination: Option<String>,
    pub deadline: Option<Deadline>,
    pub open: Option<bool>,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct UpdateFileRequestResult {
    pub id: String,
    pub url: String,
    pub title: String,
    pub destination: String,
    pub deadline: Option<FileRequestDeadline>,
    pub open: bool,
}