dynamo_async_openai/types/
invites.rs1use crate::types::OpenAIError;
12use derive_builder::Builder;
13use serde::{Deserialize, Serialize};
14
15use super::OrganizationRole;
16
17#[derive(Debug, Serialize, Deserialize, Clone, Copy, PartialEq)]
18#[serde(rename_all = "lowercase")]
19pub enum InviteStatus {
20 Accepted,
21 Expired,
22 Pending,
23}
24
25#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Builder)]
26#[builder(name = "InviteRequestArgs")]
27#[builder(pattern = "mutable")]
28#[builder(setter(into, strip_option))]
29#[builder(derive(Debug))]
30#[builder(build_fn(error = "OpenAIError"))]
31pub struct InviteRequest {
32 pub email: String,
33 pub role: OrganizationRole,
34}
35
36#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
37pub struct InviteListResponse {
38 pub object: String,
39 pub data: Vec<Invite>,
40 pub first_id: Option<String>,
41 pub last_id: Option<String>,
42 pub has_more: Option<bool>,
43}
44
45#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
46pub struct InviteDeleteResponse {
47 pub object: String,
49 pub id: String,
50 pub deleted: bool,
51}
52
53#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
55pub struct Invite {
56 pub object: String,
58 pub id: String,
60 pub email: String,
62 pub role: OrganizationRole,
64 pub status: InviteStatus,
66 pub invited_at: u32,
68 pub expires_at: u32,
70 pub accepted_at: Option<u32>,
72}