box_open_sdk/models/schemas/
automate_workflows.rs1use crate::serde_helpers::double_option;
4
5use super::*;
6
7#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8pub struct AutomateWorkflowAction {
9 pub id: String,
10 pub r#type: AutomateWorkflowActionType,
11 pub action_type: AutomateWorkflowActionActionType,
12 #[serde(default, skip_serializing_if = "Option::is_none")]
13 pub description: Option<String>,
14 #[serde(default, skip_serializing_if = "Option::is_none")]
15 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
16 #[serde(default, skip_serializing_if = "Option::is_none")]
17 pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
18 #[serde(default, skip_serializing_if = "Option::is_none")]
19 pub created_by: Option<UserMini>,
20 #[serde(default, skip_serializing_if = "Option::is_none")]
21 pub updated_by: Option<UserMini>,
22 pub workflow: AutomateWorkflowReference,
23}
24
25#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
26pub struct AutomateWorkflowReference {
27 pub id: String,
28 pub r#type: AutomateWorkflowReferenceType,
29 #[serde(default, skip_serializing_if = "Option::is_none")]
30 pub name: Option<String>,
31}
32
33#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
34pub struct AutomateWorkflows {
35 #[serde(default, skip_serializing_if = "Option::is_none")]
36 pub entries: Option<Vec<AutomateWorkflowAction>>,
37 #[serde(default, skip_serializing_if = "Option::is_none")]
38 pub limit: Option<i64>,
39 #[serde(
40 default,
41 skip_serializing_if = "Option::is_none",
42 deserialize_with = "double_option"
43 )]
44 pub next_marker: Option<Option<String>>,
45}
46
47#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
48pub struct AutomateWorkflowStartRequest {
49 pub workflow_action_id: String,
50 pub file_ids: Vec<String>,
51}
52
53#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
54#[serde(transparent)]
55pub struct AutomateWorkflowActionType(pub String);
56
57impl AutomateWorkflowActionType {
58 pub const WORKFLOW_ACTION: &'static str = "workflow_action";
59}
60
61#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
62#[serde(transparent)]
63pub struct AutomateWorkflowActionActionType(pub String);
64
65impl AutomateWorkflowActionActionType {
66 pub const RUN_WORKFLOW: &'static str = "run_workflow";
67}
68
69#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
70#[serde(transparent)]
71pub struct AutomateWorkflowReferenceType(pub String);
72
73impl AutomateWorkflowReferenceType {
74 pub const WORKFLOW: &'static str = "workflow";
75}