notion_sdk/common/
file.rs1use 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}