outfox_openai/spec/admin/users/
users_.rs1use derive_builder::Builder;
2use serde::{Deserialize, Serialize};
3
4use crate::error::OpenAIError;
5use crate::spec::admin::roles::{OrganizationRole, Role};
6
7#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
9pub struct User {
10 pub object: String,
12 pub id: String,
14 pub name: String,
16 pub email: String,
18 pub role: OrganizationRole,
20 pub added_at: u64,
22}
23
24#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
26pub struct UserListResponse {
27 pub object: String,
28 pub data: Vec<User>,
29 pub first_id: Option<String>,
30 pub last_id: Option<String>,
31 pub has_more: bool,
32}
33
34#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Builder)]
35#[builder(name = "UserRoleUpdateRequestArgs")]
36#[builder(pattern = "mutable")]
37#[builder(setter(into, strip_option))]
38#[builder(derive(Debug))]
39#[builder(build_fn(error = "OpenAIError"))]
40pub struct UserRoleUpdateRequest {
41 pub role: OrganizationRole,
43}
44
45#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
47pub struct UserDeleteResponse {
48 pub object: String,
49 pub id: String,
50 pub deleted: bool,
51}
52
53#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
55pub struct UserRoleAssignment {
56 pub object: String,
58 pub user: User,
60 pub role: Role,
62}
63
64#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
66pub struct UserRoleAssignmentListResource {
67 pub object: String,
69 pub data: Vec<UserRoleAssignment>,
71 pub has_more: bool,
73 pub next: Option<String>,
75}
76
77#[derive(Debug, Serialize, Deserialize, Builder, Clone, PartialEq)]
79#[builder(name = "AssignUserRoleRequestArgs")]
80#[builder(pattern = "mutable")]
81#[builder(setter(into, strip_option))]
82#[builder(derive(Debug))]
83#[builder(build_fn(error = "OpenAIError"))]
84pub struct PublicAssignOrganizationUserRoleBody {
85 pub role_id: String,
87}