Skip to main content

box_open_sdk/models/schemas/
groups.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 GroupFull {
7    pub id: String,
8    pub r#type: GroupType,
9    #[serde(default, skip_serializing_if = "Option::is_none")]
10    pub name: Option<String>,
11    #[serde(default, skip_serializing_if = "Option::is_none")]
12    pub group_type: Option<GroupGroupType>,
13    #[serde(default, skip_serializing_if = "Option::is_none")]
14    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
15    #[serde(default, skip_serializing_if = "Option::is_none")]
16    pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
17    #[serde(default, skip_serializing_if = "Option::is_none")]
18    pub provenance: Option<String>,
19    #[serde(default, skip_serializing_if = "Option::is_none")]
20    pub external_sync_identifier: Option<String>,
21    #[serde(default, skip_serializing_if = "Option::is_none")]
22    pub description: Option<String>,
23    #[serde(default, skip_serializing_if = "Option::is_none")]
24    pub invitability_level: Option<GroupFullInvitabilityLevel>,
25    #[serde(default, skip_serializing_if = "Option::is_none")]
26    pub member_viewability_level: Option<GroupFullInvitabilityLevel>,
27    #[serde(default, skip_serializing_if = "Option::is_none")]
28    pub permissions: Option<GroupFullPermissions>,
29}
30
31#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
32pub struct Groups {
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 limit: Option<i64>,
37    #[serde(default, skip_serializing_if = "Option::is_none")]
38    pub offset: Option<i64>,
39    #[serde(default, skip_serializing_if = "Option::is_none")]
40    pub order: Option<Vec<CollectionsOrder>>,
41    #[serde(default, skip_serializing_if = "Option::is_none")]
42    pub entries: Option<Vec<GroupFull>>,
43}
44
45#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
46#[serde(transparent)]
47pub struct GroupFullInvitabilityLevel(pub String);
48
49impl GroupFullInvitabilityLevel {
50    pub const ADMINS_ONLY: &'static str = "admins_only";
51    pub const ADMINS_AND_MEMBERS: &'static str = "admins_and_members";
52    pub const ALL_MANAGED_USERS: &'static str = "all_managed_users";
53}
54
55#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
56pub struct GroupFullPermissions {
57    #[serde(default, skip_serializing_if = "Option::is_none")]
58    pub can_invite_as_collaborator: Option<bool>,
59}
60
61#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
62pub struct CreateGroupRequest {
63    pub name: String,
64    #[serde(default, skip_serializing_if = "Option::is_none")]
65    pub provenance: Option<String>,
66    #[serde(default, skip_serializing_if = "Option::is_none")]
67    pub external_sync_identifier: Option<String>,
68    #[serde(default, skip_serializing_if = "Option::is_none")]
69    pub description: Option<String>,
70    #[serde(default, skip_serializing_if = "Option::is_none")]
71    pub invitability_level: Option<GroupFullInvitabilityLevel>,
72    #[serde(default, skip_serializing_if = "Option::is_none")]
73    pub member_viewability_level: Option<GroupFullInvitabilityLevel>,
74}
75
76#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
77pub struct UpdateGroupRequest {
78    #[serde(default, skip_serializing_if = "Option::is_none")]
79    pub name: Option<String>,
80    #[serde(default, skip_serializing_if = "Option::is_none")]
81    pub provenance: Option<String>,
82    #[serde(default, skip_serializing_if = "Option::is_none")]
83    pub external_sync_identifier: Option<String>,
84    #[serde(default, skip_serializing_if = "Option::is_none")]
85    pub description: Option<String>,
86    #[serde(default, skip_serializing_if = "Option::is_none")]
87    pub invitability_level: Option<GroupFullInvitabilityLevel>,
88    #[serde(default, skip_serializing_if = "Option::is_none")]
89    pub member_viewability_level: Option<GroupFullInvitabilityLevel>,
90}