octocrab/models/
teams.rs

1use super::*;
2
3use chrono;
4
5#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
6#[non_exhaustive]
7pub struct Team {
8    pub id: TeamId,
9    pub node_id: String,
10    pub url: Url,
11    pub html_url: Url,
12    pub name: String,
13    pub slug: String,
14    pub description: Option<String>,
15    pub privacy: TeamPrivacy,
16    pub permission: String,
17    pub members_url: Url,
18    pub repositories_url: Url,
19    #[serde(skip_serializing_if = "Option::is_none")]
20    pub members_count: Option<i64>,
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub repos_count: Option<i64>,
23    #[serde(skip_serializing_if = "Option::is_none")]
24    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub organization: Option<orgs::Organization>,
29}
30
31#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
32#[non_exhaustive]
33pub struct RequestedReviewers {
34    pub users: Vec<Author>,
35    pub teams: Vec<Team>,
36}
37#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
38#[non_exhaustive]
39pub struct RequestedTeam {
40    #[serde(skip_serializing_if = "Option::is_none")]
41    pub id: Option<TeamId>,
42    #[serde(skip_serializing_if = "Option::is_none")]
43    pub node_id: Option<String>,
44    #[serde(skip_serializing_if = "Option::is_none")]
45    pub url: Option<String>,
46    #[serde(skip_serializing_if = "Option::is_none")]
47    pub html_url: Option<String>,
48    pub name: String,
49    pub slug: String,
50    #[serde(skip_serializing_if = "Option::is_none")]
51    pub description: Option<String>,
52    pub privacy: TeamPrivacy,
53    pub permission: String,
54    pub members_url: Url,
55    pub repositories_url: Url,
56    #[serde(skip_serializing_if = "Option::is_none")]
57    pub parent: Option<Team>,
58}
59
60#[derive(PartialEq, Clone, Debug, Serialize, Deserialize)]
61#[non_exhaustive]
62pub struct TeamInvitation {
63    pub id: TeamInvitationId,
64    #[serde(skip_serializing_if = "Option::is_none")]
65    pub login: Option<String>,
66    #[serde(skip_serializing_if = "Option::is_none")]
67    pub email: Option<String>,
68    pub role: String,
69    pub created_at: chrono::DateTime<chrono::Utc>,
70    #[serde(skip_serializing_if = "Option::is_none")]
71    pub failed_at: Option<chrono::DateTime<chrono::Utc>>,
72    #[serde(skip_serializing_if = "Option::is_none")]
73    pub failed_reason: Option<String>,
74    pub inviter: Author,
75    pub team_count: u32,
76    pub node_id: String,
77    pub invitation_teams_url: String,
78}
79
80#[derive(PartialEq, Clone, Debug, Serialize, Deserialize)]
81#[serde(rename_all = "snake_case")]
82#[non_exhaustive]
83pub enum TeamPrivacy {
84    Open,
85    Closed,
86    Secret,
87}