box_open_sdk/models/schemas/
user_collaborations.rs1use super::*;
4
5#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6#[serde(transparent)]
7pub struct PutCollaborationIdStatus(pub String);
8
9impl PutCollaborationIdStatus {
10 pub const PENDING: &'static str = "pending";
11 pub const ACCEPTED: &'static str = "accepted";
12 pub const REJECTED: &'static str = "rejected";
13}
14
15#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
16pub struct UpdateCollaborationRequest {
17 #[serde(default, skip_serializing_if = "Option::is_none")]
18 pub role: Option<CollaborationRole>,
19 #[serde(default, skip_serializing_if = "Option::is_none")]
20 pub status: Option<PutCollaborationIdStatus>,
21 #[serde(default, skip_serializing_if = "Option::is_none")]
22 pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
23 #[serde(default, skip_serializing_if = "Option::is_none")]
24 pub can_view_path: Option<bool>,
25}
26
27#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
28pub struct PostCollaborationsItem {
29 #[serde(default, skip_serializing_if = "Option::is_none")]
30 pub r#type: Option<EventSourceItemType>,
31 #[serde(default, skip_serializing_if = "Option::is_none")]
32 pub id: Option<String>,
33}
34
35#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
36#[serde(transparent)]
37pub struct AccessibleByType(pub String);
38
39impl AccessibleByType {
40 pub const USER: &'static str = "user";
41 pub const GROUP: &'static str = "group";
42}
43
44#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
45pub struct PostCollaborationsAccessibleBy {
46 pub r#type: AccessibleByType,
47 #[serde(default, skip_serializing_if = "Option::is_none")]
48 pub id: Option<String>,
49 #[serde(default, skip_serializing_if = "Option::is_none")]
50 pub login: Option<String>,
51}
52
53#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
54pub struct CreateCollaborationsRequest {
55 pub item: PostCollaborationsItem,
56 pub accessible_by: PostCollaborationsAccessibleBy,
57 pub role: FileFullAllowedInviteeRoles,
58 #[serde(default, skip_serializing_if = "Option::is_none")]
59 pub is_access_only: Option<bool>,
60 #[serde(default, skip_serializing_if = "Option::is_none")]
61 pub can_view_path: Option<bool>,
62 #[serde(default, skip_serializing_if = "Option::is_none")]
63 pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
64}