Skip to main content

box_open_sdk/models/schemas/
webhooks.rs

1// Code generated by box-gantry 0.1.0 (spec 3fb3510fe12f2f80) for Box API 2024.0. DO NOT EDIT.
2
3use crate::serde_helpers::double_option;
4
5use super::*;
6
7#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8pub struct Webhook {
9    #[serde(default, skip_serializing_if = "Option::is_none")]
10    pub id: Option<String>,
11    #[serde(default, skip_serializing_if = "Option::is_none")]
12    pub r#type: Option<WebhookType>,
13    #[serde(default, skip_serializing_if = "Option::is_none")]
14    pub target: Option<WebhookTarget>,
15    #[serde(default, skip_serializing_if = "Option::is_none")]
16    pub created_by: Option<UserMini>,
17    #[serde(default, skip_serializing_if = "Option::is_none")]
18    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
19    #[serde(default, skip_serializing_if = "Option::is_none")]
20    pub address: Option<String>,
21    #[serde(default, skip_serializing_if = "Option::is_none")]
22    pub triggers: Option<Vec<WebhookTriggers>>,
23}
24
25#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
26pub struct WebhookMini {
27    #[serde(default, skip_serializing_if = "Option::is_none")]
28    pub id: Option<String>,
29    #[serde(default, skip_serializing_if = "Option::is_none")]
30    pub r#type: Option<WebhookType>,
31    #[serde(default, skip_serializing_if = "Option::is_none")]
32    pub target: Option<WebhookTarget>,
33}
34
35#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
36pub struct Webhooks {
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    #[serde(
46        default,
47        skip_serializing_if = "Option::is_none",
48        deserialize_with = "double_option"
49    )]
50    pub prev_marker: Option<Option<String>>,
51    #[serde(default, skip_serializing_if = "Option::is_none")]
52    pub entries: Option<Vec<WebhookMini>>,
53}
54
55#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
56#[serde(transparent)]
57pub struct WebhookType(pub String);
58
59impl WebhookType {
60    pub const WEBHOOK: &'static str = "webhook";
61}
62
63#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
64pub struct WebhookTarget {
65    #[serde(default, skip_serializing_if = "Option::is_none")]
66    pub id: Option<String>,
67    #[serde(default, skip_serializing_if = "Option::is_none")]
68    pub r#type: Option<EventSourceItemType>,
69}
70
71#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
72#[serde(transparent)]
73pub struct WebhookTriggers(pub String);
74
75impl WebhookTriggers {
76    pub const FILE_UPLOADED: &'static str = "FILE.UPLOADED";
77    pub const FILE_PREVIEWED: &'static str = "FILE.PREVIEWED";
78    pub const FILE_DOWNLOADED: &'static str = "FILE.DOWNLOADED";
79    pub const FILE_TRASHED: &'static str = "FILE.TRASHED";
80    pub const FILE_DELETED: &'static str = "FILE.DELETED";
81    pub const FILE_RESTORED: &'static str = "FILE.RESTORED";
82    pub const FILE_COPIED: &'static str = "FILE.COPIED";
83    pub const FILE_MOVED: &'static str = "FILE.MOVED";
84    pub const FILE_LOCKED: &'static str = "FILE.LOCKED";
85    pub const FILE_UNLOCKED: &'static str = "FILE.UNLOCKED";
86    pub const FILE_RENAMED: &'static str = "FILE.RENAMED";
87    pub const COMMENT_CREATED: &'static str = "COMMENT.CREATED";
88    pub const COMMENT_UPDATED: &'static str = "COMMENT.UPDATED";
89    pub const COMMENT_DELETED: &'static str = "COMMENT.DELETED";
90    pub const TASK_ASSIGNMENT_CREATED: &'static str = "TASK_ASSIGNMENT.CREATED";
91    pub const TASK_ASSIGNMENT_UPDATED: &'static str = "TASK_ASSIGNMENT.UPDATED";
92    pub const METADATA_INSTANCE_CREATED: &'static str = "METADATA_INSTANCE.CREATED";
93    pub const METADATA_INSTANCE_UPDATED: &'static str = "METADATA_INSTANCE.UPDATED";
94    pub const METADATA_INSTANCE_DELETED: &'static str = "METADATA_INSTANCE.DELETED";
95    pub const FOLDER_CREATED: &'static str = "FOLDER.CREATED";
96    pub const FOLDER_RENAMED: &'static str = "FOLDER.RENAMED";
97    pub const FOLDER_DOWNLOADED: &'static str = "FOLDER.DOWNLOADED";
98    pub const FOLDER_RESTORED: &'static str = "FOLDER.RESTORED";
99    pub const FOLDER_DELETED: &'static str = "FOLDER.DELETED";
100    pub const FOLDER_COPIED: &'static str = "FOLDER.COPIED";
101    pub const FOLDER_MOVED: &'static str = "FOLDER.MOVED";
102    pub const FOLDER_TRASHED: &'static str = "FOLDER.TRASHED";
103    pub const WEBHOOK_DELETED: &'static str = "WEBHOOK.DELETED";
104    pub const COLLABORATION_CREATED: &'static str = "COLLABORATION.CREATED";
105    pub const COLLABORATION_ACCEPTED: &'static str = "COLLABORATION.ACCEPTED";
106    pub const COLLABORATION_REJECTED: &'static str = "COLLABORATION.REJECTED";
107    pub const COLLABORATION_REMOVED: &'static str = "COLLABORATION.REMOVED";
108    pub const COLLABORATION_UPDATED: &'static str = "COLLABORATION.UPDATED";
109    pub const SHARED_LINK_DELETED: &'static str = "SHARED_LINK.DELETED";
110    pub const SHARED_LINK_CREATED: &'static str = "SHARED_LINK.CREATED";
111    pub const SHARED_LINK_UPDATED: &'static str = "SHARED_LINK.UPDATED";
112    pub const SIGN_REQUEST_COMPLETED: &'static str = "SIGN_REQUEST.COMPLETED";
113    pub const SIGN_REQUEST_DECLINED: &'static str = "SIGN_REQUEST.DECLINED";
114    pub const SIGN_REQUEST_EXPIRED: &'static str = "SIGN_REQUEST.EXPIRED";
115    pub const SIGN_REQUEST_SIGNER_EMAIL_BOUNCED: &'static str = "SIGN_REQUEST.SIGNER_EMAIL_BOUNCED";
116    pub const SIGN_REQUEST_SIGN_SIGNER_SIGNED: &'static str = "SIGN_REQUEST.SIGN_SIGNER_SIGNED";
117    pub const SIGN_REQUEST_SIGN_DOCUMENT_CREATED: &'static str =
118        "SIGN_REQUEST.SIGN_DOCUMENT_CREATED";
119    pub const SIGN_REQUEST_SIGN_ERROR_FINALIZING: &'static str =
120        "SIGN_REQUEST.SIGN_ERROR_FINALIZING";
121}
122
123#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
124pub struct CreateWebhookRequest {
125    pub target: WebhookTarget,
126    pub address: String,
127    pub triggers: Vec<WebhookTriggers>,
128}
129
130#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
131pub struct UpdateWebhookRequest {
132    #[serde(default, skip_serializing_if = "Option::is_none")]
133    pub target: Option<WebhookTarget>,
134    #[serde(default, skip_serializing_if = "Option::is_none")]
135    pub address: Option<String>,
136    #[serde(default, skip_serializing_if = "Option::is_none")]
137    pub triggers: Option<Vec<WebhookTriggers>>,
138}