async_openai/types/admin/
invites.rs1use crate::types::OpenAIError;
2use crate::types::OrganizationRole;
3use derive_builder::Builder;
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
8#[builder(name = "ListInvitesQueryArgs")]
9#[builder(pattern = "mutable")]
10#[builder(setter(into, strip_option), default)]
11#[builder(derive(Debug))]
12#[builder(build_fn(error = "OpenAIError"))]
13pub struct ListInvitesQuery {
14 #[serde(skip_serializing_if = "Option::is_none")]
16 pub limit: Option<u32>,
17 #[serde(skip_serializing_if = "Option::is_none")]
19 pub after: Option<String>,
20}
21
22#[derive(Debug, Serialize, Deserialize, Clone, Copy, PartialEq)]
23#[serde(rename_all = "lowercase")]
24pub enum InviteStatus {
25 Accepted,
26 Expired,
27 Pending,
28}
29
30#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Builder)]
31#[builder(name = "InviteRequestArgs")]
32#[builder(pattern = "mutable")]
33#[builder(setter(into, strip_option))]
34#[builder(derive(Debug))]
35#[builder(build_fn(error = "OpenAIError"))]
36pub struct InviteRequest {
37 pub email: String,
38 pub role: OrganizationRole,
39}
40
41#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
42pub struct InviteListResponse {
43 pub object: String,
44 pub data: Vec<Invite>,
45 pub first_id: Option<String>,
46 pub last_id: Option<String>,
47 pub has_more: Option<bool>,
48}
49
50#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
51pub struct InviteDeleteResponse {
52 pub object: String,
54 pub id: String,
55 pub deleted: bool,
56}
57
58#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
60pub struct Invite {
61 pub object: String,
63 pub id: String,
65 pub email: String,
67 pub role: OrganizationRole,
69 pub status: InviteStatus,
71 pub invited_at: u64,
73 pub expires_at: u64,
75 pub accepted_at: Option<u64>,
77}