notion_sdk/common/
file.rs

1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4#[derive(Serialize, Deserialize, Debug, Eq, PartialEq, Clone)]
5#[serde(tag = "type")]
6#[serde(rename_all = "snake_case")]
7pub enum FileObject {
8    File { file: InternalFileObject },
9    External { external: ExternalFileObject },
10}
11
12#[derive(Serialize, Deserialize, Debug, Eq, PartialEq, Clone)]
13pub struct InternalFileObject {
14    pub url: String,
15    pub expiry_time: DateTime<Utc>,
16}
17
18#[derive(Serialize, Deserialize, Debug, Eq, PartialEq, Clone)]
19pub struct ExternalFileObject {
20    pub url: String,
21}
22
23#[derive(Serialize, Deserialize, Debug, Eq, PartialEq, Clone)]
24#[serde(tag = "type")]
25#[serde(rename_all = "snake_case")]
26pub enum FileOrEmojiObject {
27    Emoji { emoji: String },
28    File { file: InternalFileObject },
29    External { external: ExternalFileObject },
30}