outfox_openai/spec/admin/groups/
groups_.rs1use derive_builder::Builder;
2use serde::{Deserialize, Serialize};
3
4use crate::error::OpenAIError;
5use crate::spec::admin::roles::Role;
6use crate::spec::admin::users::User;
7
8#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
10pub struct Group {
11 pub object: String,
13 pub id: String,
15 pub name: String,
17 pub created_at: u64,
19 pub scim_managed: bool,
21}
22
23#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
25pub struct GroupResponse {
26 pub id: String,
28 pub name: String,
30 pub created_at: u64,
32 pub is_scim_managed: bool,
34}
35
36#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
38pub struct GroupListResource {
39 pub object: String,
41 pub data: Vec<GroupResponse>,
43 pub has_more: bool,
45 pub next: Option<String>,
47}
48
49#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
51pub struct GroupDeletedResource {
52 pub object: String,
54 pub id: String,
56 pub deleted: bool,
58}
59
60#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
62pub struct GroupResourceWithSuccess {
63 pub id: String,
65 pub name: String,
67 pub created_at: u64,
69 pub is_scim_managed: bool,
71}
72
73#[derive(Debug, Serialize, Deserialize, Builder, Clone, PartialEq)]
75#[builder(name = "CreateGroupRequestArgs")]
76#[builder(pattern = "mutable")]
77#[builder(setter(into, strip_option))]
78#[builder(derive(Debug))]
79#[builder(build_fn(error = "OpenAIError"))]
80pub struct CreateGroupBody {
81 pub name: String,
83}
84
85#[derive(Debug, Serialize, Deserialize, Builder, Clone, PartialEq)]
87#[builder(name = "UpdateGroupRequestArgs")]
88#[builder(pattern = "mutable")]
89#[builder(setter(into, strip_option))]
90#[builder(derive(Debug))]
91#[builder(build_fn(error = "OpenAIError"))]
92pub struct UpdateGroupBody {
93 pub name: String,
95}
96
97#[derive(Debug, Serialize, Deserialize, Builder, Clone, PartialEq)]
99#[builder(name = "CreateGroupUserRequestArgs")]
100#[builder(pattern = "mutable")]
101#[builder(setter(into, strip_option))]
102#[builder(derive(Debug))]
103#[builder(build_fn(error = "OpenAIError"))]
104pub struct CreateGroupUserBody {
105 pub user_id: String,
107}
108
109#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
111pub struct GroupUserAssignment {
112 pub object: String,
114 pub user_id: String,
116 pub group_id: String,
118}
119
120#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
122pub struct GroupUserDeletedResource {
123 pub object: String,
125 pub deleted: bool,
127}
128
129#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
131pub struct GroupRoleAssignment {
132 pub object: String,
134 pub group: Group,
136 pub role: Role,
138}
139
140#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
142pub struct GroupRoleAssignmentListResource {
143 pub object: String,
145 pub data: Vec<GroupRoleAssignment>,
147 pub has_more: bool,
149 pub next: Option<String>,
151}
152
153#[derive(Debug, Serialize, Deserialize, Builder, Clone, PartialEq)]
155#[builder(name = "AssignGroupRoleRequestArgs")]
156#[builder(pattern = "mutable")]
157#[builder(setter(into, strip_option))]
158#[builder(derive(Debug))]
159#[builder(build_fn(error = "OpenAIError"))]
160pub struct PublicAssignOrganizationGroupRoleBody {
161 pub role_id: String,
163}
164
165#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
167pub struct UserListResource {
168 pub object: String,
170 pub data: Vec<User>,
172 pub has_more: bool,
174 pub next: Option<String>,
176}