novel_openai/spec/admin/project_users/
project_users_.rs1use derive_builder::Builder;
2use serde::{Deserialize, Serialize};
3
4use crate::error::OpenAIError;
5
6#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
8pub struct ProjectUser {
9 pub object: String,
11 pub id: String,
13 pub name: String,
15 pub email: String,
17 pub role: ProjectUserRole,
19 pub added_at: u64,
21}
22
23#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
25#[serde(rename_all = "lowercase")]
26pub enum ProjectUserRole {
27 Owner,
28 Member,
29}
30
31#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
32pub struct ProjectUserListResponse {
33 pub object: String,
34 pub data: Vec<ProjectUser>,
35 pub first_id: Option<String>,
36 pub last_id: Option<String>,
37 pub has_more: String,
38}
39
40#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Builder)]
42#[builder(name = "ProjectUserCreateRequestArgs")]
43#[builder(pattern = "mutable")]
44#[builder(setter(into, strip_option))]
45#[builder(derive(Debug))]
46#[builder(build_fn(error = "OpenAIError"))]
47pub struct ProjectUserCreateRequest {
48 pub user_id: String,
50 pub role: ProjectUserRole,
52}
53
54#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Builder)]
55#[builder(name = "ProjectUserUpdateRequestArgs")]
56#[builder(pattern = "mutable")]
57#[builder(setter(into, strip_option))]
58#[builder(derive(Debug))]
59#[builder(build_fn(error = "OpenAIError"))]
60pub struct ProjectUserUpdateRequest {
61 pub role: ProjectUserRole,
63}
64
65#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
66pub struct ProjectUserDeleteResponse {
67 pub object: String,
68 pub id: String,
69 pub deleted: bool,
70}