async_openai/types/admin/
groups.rs1use crate::types::admin::roles::Role;
2use crate::types::admin::users::User;
3use crate::types::OpenAIError;
4use derive_builder::Builder;
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
9#[serde(rename_all = "lowercase")]
10pub enum ListGroupsOrder {
11 Asc,
13 Desc,
15}
16
17#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
19#[builder(name = "ListGroupsQueryArgs")]
20#[builder(pattern = "mutable")]
21#[builder(setter(into, strip_option), default)]
22#[builder(derive(Debug))]
23#[builder(build_fn(error = "OpenAIError"))]
24pub struct ListGroupsQuery {
25 #[serde(skip_serializing_if = "Option::is_none")]
27 pub limit: Option<u32>,
28 #[serde(skip_serializing_if = "Option::is_none")]
30 pub after: Option<String>,
31 #[serde(skip_serializing_if = "Option::is_none")]
33 pub order: Option<ListGroupsOrder>,
34}
35
36#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
38pub struct Group {
39 pub object: String,
41 pub id: String,
43 pub name: String,
45 pub created_at: u64,
47 pub scim_managed: bool,
49}
50
51#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
53pub struct GroupResponse {
54 pub id: String,
56 pub name: String,
58 pub created_at: u64,
60 pub is_scim_managed: bool,
62}
63
64#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
66pub struct GroupListResource {
67 pub object: String,
69 pub data: Vec<GroupResponse>,
71 pub has_more: bool,
73 pub next: Option<String>,
75}
76
77#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
79pub struct GroupDeletedResource {
80 pub object: String,
82 pub id: String,
84 pub deleted: bool,
86}
87
88#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
90pub struct GroupResourceWithSuccess {
91 pub id: String,
93 pub name: String,
95 pub created_at: u64,
97 pub is_scim_managed: bool,
99}
100
101#[derive(Debug, Serialize, Deserialize, Builder, Clone, PartialEq)]
103#[builder(name = "CreateGroupRequestArgs")]
104#[builder(pattern = "mutable")]
105#[builder(setter(into, strip_option))]
106#[builder(derive(Debug))]
107#[builder(build_fn(error = "OpenAIError"))]
108pub struct CreateGroupBody {
109 pub name: String,
111}
112
113#[derive(Debug, Serialize, Deserialize, Builder, Clone, PartialEq)]
115#[builder(name = "UpdateGroupRequestArgs")]
116#[builder(pattern = "mutable")]
117#[builder(setter(into, strip_option))]
118#[builder(derive(Debug))]
119#[builder(build_fn(error = "OpenAIError"))]
120pub struct UpdateGroupBody {
121 pub name: String,
123}
124
125#[derive(Debug, Serialize, Deserialize, Builder, Clone, PartialEq)]
127#[builder(name = "CreateGroupUserRequestArgs")]
128#[builder(pattern = "mutable")]
129#[builder(setter(into, strip_option))]
130#[builder(derive(Debug))]
131#[builder(build_fn(error = "OpenAIError"))]
132pub struct CreateGroupUserBody {
133 pub user_id: String,
135}
136
137#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
139pub struct GroupUserAssignment {
140 pub object: String,
142 pub user_id: String,
144 pub group_id: String,
146}
147
148#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
150pub struct GroupUserDeletedResource {
151 pub object: String,
153 pub deleted: bool,
155}
156
157#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
159pub struct GroupRoleAssignment {
160 pub object: String,
162 pub group: Group,
164 pub role: Role,
166}
167
168#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
170pub struct GroupRoleAssignmentListResource {
171 pub object: String,
173 pub data: Vec<GroupRoleAssignment>,
175 pub has_more: bool,
177 pub next: Option<String>,
179}
180
181#[derive(Debug, Serialize, Deserialize, Builder, Clone, PartialEq)]
183#[builder(name = "AssignGroupRoleRequestArgs")]
184#[builder(pattern = "mutable")]
185#[builder(setter(into, strip_option))]
186#[builder(derive(Debug))]
187#[builder(build_fn(error = "OpenAIError"))]
188pub struct PublicAssignOrganizationGroupRoleBody {
189 pub role_id: String,
191}
192
193#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
195pub struct UserListResource {
196 pub object: String,
198 pub data: Vec<User>,
200 pub has_more: bool,
202 pub next: Option<String>,
204}