outfox_openai/spec/admin/projects/
projects_.rs1use derive_builder::Builder;
2use serde::{Deserialize, Serialize};
3
4use crate::error::OpenAIError;
5
6#[derive(Debug, Serialize, Deserialize, Clone, Copy, PartialEq)]
8#[serde(rename_all = "lowercase")]
9pub enum ProjectStatus {
10 Active,
11 Archived,
12}
13
14#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
16pub struct Project {
17 pub id: String,
19 pub object: String,
21 pub name: String,
23 pub created_at: u64,
25 pub archived_at: Option<u64>,
27 pub status: ProjectStatus,
29}
30
31#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
33pub struct ProjectListResponse {
34 pub object: String,
35 pub data: Vec<Project>,
36 pub first_id: Option<String>,
37 pub last_id: Option<String>,
38 pub has_more: String,
39}
40
41#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Builder)]
43#[builder(name = "ProjectCreateRequestArgs")]
44#[builder(pattern = "mutable")]
45#[builder(setter(into, strip_option))]
46#[builder(derive(Debug))]
47#[builder(build_fn(error = "OpenAIError"))]
48pub struct ProjectCreateRequest {
49 pub name: String,
51}
52
53#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Builder)]
55#[builder(name = "ProjectUpdateRequestArgs")]
56#[builder(pattern = "mutable")]
57#[builder(setter(into, strip_option))]
58#[builder(derive(Debug))]
59#[builder(build_fn(error = "OpenAIError"))]
60pub struct ProjectUpdateRequest {
61 pub name: String,
63}
64
65#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
67pub struct ProjectGroup {
68 pub object: String,
70 pub project_id: String,
72 pub group_id: String,
74 pub group_name: String,
76 pub created_at: u64,
78}
79
80#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
82pub struct ProjectGroupListResource {
83 pub object: String,
85 pub data: Vec<ProjectGroup>,
87 pub has_more: bool,
89 pub next: Option<String>,
91}
92
93#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
95pub struct ProjectGroupDeletedResource {
96 pub object: String,
98 pub deleted: bool,
100}
101
102#[derive(Debug, Serialize, Deserialize, Builder, Clone, PartialEq)]
104#[builder(name = "InviteProjectGroupRequestArgs")]
105#[builder(pattern = "mutable")]
106#[builder(setter(into, strip_option))]
107#[builder(derive(Debug))]
108#[builder(build_fn(error = "OpenAIError"))]
109pub struct InviteProjectGroupBody {
110 pub group_id: String,
112 pub role: String,
114}