Skip to main content

box_open_sdk/models/schemas/
tasks.rs

1// Code generated by box-gantry 0.1.0 (spec 3fb3510fe12f2f80) for Box API 2024.0. DO NOT EDIT.
2
3use super::*;
4
5#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6pub struct Task {
7    #[serde(default, skip_serializing_if = "Option::is_none")]
8    pub id: Option<String>,
9    #[serde(default, skip_serializing_if = "Option::is_none")]
10    pub r#type: Option<TaskType>,
11    #[serde(default, skip_serializing_if = "Option::is_none")]
12    pub item: Option<FileMini>,
13    #[serde(default, skip_serializing_if = "Option::is_none")]
14    pub due_at: Option<chrono::DateTime<chrono::Utc>>,
15    #[serde(default, skip_serializing_if = "Option::is_none")]
16    pub action: Option<TaskAction>,
17    #[serde(default, skip_serializing_if = "Option::is_none")]
18    pub message: Option<String>,
19    #[serde(default, skip_serializing_if = "Option::is_none")]
20    pub task_assignment_collection: Option<TaskAssignments>,
21    #[serde(default, skip_serializing_if = "Option::is_none")]
22    pub is_completed: Option<bool>,
23    #[serde(default, skip_serializing_if = "Option::is_none")]
24    pub created_by: Option<UserMini>,
25    #[serde(default, skip_serializing_if = "Option::is_none")]
26    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
27    #[serde(default, skip_serializing_if = "Option::is_none")]
28    pub completion_rule: Option<TaskCompletionRule>,
29}
30
31#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
32pub struct Tasks {
33    #[serde(default, skip_serializing_if = "Option::is_none")]
34    pub total_count: Option<i64>,
35    #[serde(default, skip_serializing_if = "Option::is_none")]
36    pub entries: Option<Vec<Task>>,
37}
38
39#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
40#[serde(transparent)]
41pub struct TaskAction(pub String);
42
43impl TaskAction {
44    pub const REVIEW: &'static str = "review";
45    pub const COMPLETE: &'static str = "complete";
46}
47
48#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
49#[serde(transparent)]
50pub struct TaskCompletionRule(pub String);
51
52impl TaskCompletionRule {
53    pub const ALL_ASSIGNEES: &'static str = "all_assignees";
54    pub const ANY_ASSIGNEE: &'static str = "any_assignee";
55}
56
57#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
58pub struct CreateTaskRequestItem {
59    #[serde(default, skip_serializing_if = "Option::is_none")]
60    pub id: Option<String>,
61    #[serde(default, skip_serializing_if = "Option::is_none")]
62    pub r#type: Option<AiCitationType>,
63}
64
65#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
66pub struct CreateTaskRequest {
67    pub item: CreateTaskRequestItem,
68    #[serde(default, skip_serializing_if = "Option::is_none")]
69    pub action: Option<TaskAction>,
70    #[serde(default, skip_serializing_if = "Option::is_none")]
71    pub message: Option<String>,
72    #[serde(default, skip_serializing_if = "Option::is_none")]
73    pub due_at: Option<chrono::DateTime<chrono::Utc>>,
74    #[serde(default, skip_serializing_if = "Option::is_none")]
75    pub completion_rule: Option<TaskCompletionRule>,
76}
77
78#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
79pub struct UpdateTaskRequest {
80    #[serde(default, skip_serializing_if = "Option::is_none")]
81    pub action: Option<TaskAction>,
82    #[serde(default, skip_serializing_if = "Option::is_none")]
83    pub message: Option<String>,
84    #[serde(default, skip_serializing_if = "Option::is_none")]
85    pub due_at: Option<chrono::DateTime<chrono::Utc>>,
86    #[serde(default, skip_serializing_if = "Option::is_none")]
87    pub completion_rule: Option<TaskCompletionRule>,
88}