dynamo_async_openai/types/
projects.rs1use crate::types::OpenAIError;
12use derive_builder::Builder;
13use serde::{Deserialize, Serialize};
14
15#[derive(Debug, Serialize, Deserialize, Clone, Copy, PartialEq)]
17#[serde(rename_all = "lowercase")]
18pub enum ProjectStatus {
19 Active,
20 Archived,
21}
22
23#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
25pub struct Project {
26 pub id: String,
28 pub object: String,
30 pub name: String,
32 pub created_at: u32,
34 pub archived_at: Option<u32>,
36 pub status: ProjectStatus,
38}
39
40#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
42pub struct ProjectListResponse {
43 pub object: String,
44 pub data: Vec<Project>,
45 pub first_id: String,
46 pub last_id: String,
47 pub has_more: String,
48}
49
50#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Builder)]
52#[builder(name = "ProjectCreateRequestArgs")]
53#[builder(pattern = "mutable")]
54#[builder(setter(into, strip_option))]
55#[builder(derive(Debug))]
56#[builder(build_fn(error = "OpenAIError"))]
57pub struct ProjectCreateRequest {
58 pub name: String,
60}
61
62#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Builder)]
64#[builder(name = "ProjectUpdateRequestArgs")]
65#[builder(pattern = "mutable")]
66#[builder(setter(into, strip_option))]
67#[builder(derive(Debug))]
68#[builder(build_fn(error = "OpenAIError"))]
69pub struct ProjectUpdateRequest {
70 pub name: String,
72}