box_open_sdk/models/schemas/
invites.rs1use super::*;
4
5#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6pub struct Invite {
7 pub id: String,
8 pub r#type: InviteType,
9 #[serde(default, skip_serializing_if = "Option::is_none")]
10 pub invited_to: Option<CollaborationAllowlistEntryEnterprise>,
11 #[serde(default, skip_serializing_if = "Option::is_none")]
12 pub actionable_by: Option<UserMini>,
13 #[serde(default, skip_serializing_if = "Option::is_none")]
14 pub invited_by: Option<UserMini>,
15 #[serde(default, skip_serializing_if = "Option::is_none")]
16 pub status: Option<String>,
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 modified_at: Option<chrono::DateTime<chrono::Utc>>,
21}
22
23#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
24#[serde(transparent)]
25pub struct InviteType(pub String);
26
27impl InviteType {
28 pub const INVITE: &'static str = "invite";
29}
30
31#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
32pub struct PostActionableBy {
33 #[serde(default, skip_serializing_if = "Option::is_none")]
34 pub login: Option<String>,
35}
36
37#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
38pub struct CreateInviteRequest {
39 pub enterprise: AttributesParent,
40 pub actionable_by: PostActionableBy,
41}