pub mod content;
pub mod create;
pub mod delete;
pub mod list;
pub mod retrieve;
use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq)]
pub struct FileObject {
pub id: String,
pub bytes: usize,
pub created_at: usize,
pub filename: String,
pub object: String,
pub purpose: FilePurpose,
pub status: Option<FileStatus>,
pub expires_at: Option<usize>,
pub status_details: Option<String>,
}
#[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum FileStatus {
Uploaded,
Processed,
Error,
}
#[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq)]
pub enum FilePurpose {
#[serde(rename = "assistants")]
Assistants,
#[serde(rename = "assistants_output")]
AssistantsOutput,
#[serde(rename = "batch")]
Batch,
#[serde(rename = "batch_output")]
BatchOutput,
#[serde(rename = "fine-tune")]
FineTune,
#[serde(rename = "fine-tune-results")]
FineTuneResults,
#[serde(rename = "vision")]
Vision,
#[serde(rename = "user_data")]
UserData,
#[serde(untagged)]
Other(String),
}
crate::impl_from_str!(FileObject);