openapi_github/models/
pull_request_8.rs

1/*
2 * GitHub's official OpenAPI spec + Octokit extension
3 *
4 * OpenAPI specs from https://github.com/github/rest-api-description with the 'x-octokit' extension required by the Octokit SDKs
5 *
6 * The version of the OpenAPI document: 16.6.0
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct PullRequest8 {
16    #[serde(rename = "_links")]
17    pub _links: Box<models::WebhooksPullRequest5Links>,
18    #[serde(rename = "active_lock_reason", deserialize_with = "Option::deserialize")]
19    pub active_lock_reason: Option<ActiveLockReason>,
20    #[serde(rename = "additions", skip_serializing_if = "Option::is_none")]
21    pub additions: Option<i32>,
22    #[serde(rename = "assignee", deserialize_with = "Option::deserialize")]
23    pub assignee: Option<Box<models::User1>>,
24    #[serde(rename = "assignees")]
25    pub assignees: Vec<models::User1>,
26    /// How the author is associated with the repository.
27    #[serde(rename = "author_association")]
28    pub author_association: AuthorAssociation,
29    #[serde(rename = "auto_merge", deserialize_with = "Option::deserialize")]
30    pub auto_merge: Option<Box<models::PullRequestAutoMerge>>,
31    #[serde(rename = "base")]
32    pub base: Box<models::PullRequestBase>,
33    #[serde(rename = "body", deserialize_with = "Option::deserialize")]
34    pub body: Option<String>,
35    #[serde(rename = "changed_files", skip_serializing_if = "Option::is_none")]
36    pub changed_files: Option<i32>,
37    #[serde(rename = "closed_at", deserialize_with = "Option::deserialize")]
38    pub closed_at: Option<String>,
39    #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
40    pub comments: Option<i32>,
41    #[serde(rename = "comments_url")]
42    pub comments_url: String,
43    #[serde(rename = "commits", skip_serializing_if = "Option::is_none")]
44    pub commits: Option<i32>,
45    #[serde(rename = "commits_url")]
46    pub commits_url: String,
47    #[serde(rename = "created_at")]
48    pub created_at: String,
49    #[serde(rename = "deletions", skip_serializing_if = "Option::is_none")]
50    pub deletions: Option<i32>,
51    #[serde(rename = "diff_url")]
52    pub diff_url: String,
53    /// Indicates whether or not the pull request is a draft.
54    #[serde(rename = "draft")]
55    pub draft: bool,
56    #[serde(rename = "head")]
57    pub head: Box<models::PullRequestBase>,
58    #[serde(rename = "html_url")]
59    pub html_url: String,
60    #[serde(rename = "id")]
61    pub id: i32,
62    #[serde(rename = "issue_url")]
63    pub issue_url: String,
64    #[serde(rename = "labels")]
65    pub labels: Vec<models::Label>,
66    #[serde(rename = "locked")]
67    pub locked: bool,
68    /// Indicates whether maintainers can modify the pull request.
69    #[serde(rename = "maintainer_can_modify", skip_serializing_if = "Option::is_none")]
70    pub maintainer_can_modify: Option<bool>,
71    #[serde(rename = "merge_commit_sha", deserialize_with = "Option::deserialize")]
72    pub merge_commit_sha: Option<String>,
73    #[serde(rename = "mergeable", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
74    pub mergeable: Option<Option<bool>>,
75    #[serde(rename = "mergeable_state", skip_serializing_if = "Option::is_none")]
76    pub mergeable_state: Option<String>,
77    #[serde(rename = "merged", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
78    pub merged: Option<Option<bool>>,
79    #[serde(rename = "merged_at", deserialize_with = "Option::deserialize")]
80    pub merged_at: Option<String>,
81    #[serde(rename = "merged_by", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
82    pub merged_by: Option<Option<Box<models::User>>>,
83    #[serde(rename = "milestone", deserialize_with = "Option::deserialize")]
84    pub milestone: Option<Box<models::Milestone>>,
85    #[serde(rename = "node_id")]
86    pub node_id: String,
87    /// Number uniquely identifying the pull request within its repository.
88    #[serde(rename = "number")]
89    pub number: i32,
90    #[serde(rename = "patch_url")]
91    pub patch_url: String,
92    #[serde(rename = "rebaseable", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
93    pub rebaseable: Option<Option<bool>>,
94    #[serde(rename = "requested_reviewers")]
95    pub requested_reviewers: Vec<models::PullRequest6RequestedReviewersInner>,
96    #[serde(rename = "requested_teams")]
97    pub requested_teams: Vec<models::Team>,
98    #[serde(rename = "review_comment_url")]
99    pub review_comment_url: String,
100    #[serde(rename = "review_comments", skip_serializing_if = "Option::is_none")]
101    pub review_comments: Option<i32>,
102    #[serde(rename = "review_comments_url")]
103    pub review_comments_url: String,
104    /// State of this Pull Request. Either `open` or `closed`.
105    #[serde(rename = "state")]
106    pub state: State,
107    #[serde(rename = "statuses_url")]
108    pub statuses_url: String,
109    /// The title of the pull request.
110    #[serde(rename = "title")]
111    pub title: String,
112    #[serde(rename = "updated_at")]
113    pub updated_at: String,
114    #[serde(rename = "url")]
115    pub url: String,
116    #[serde(rename = "user", deserialize_with = "Option::deserialize")]
117    pub user: Option<Box<models::User1>>,
118}
119
120impl PullRequest8 {
121    pub fn new(_links: models::WebhooksPullRequest5Links, active_lock_reason: Option<ActiveLockReason>, assignee: Option<models::User1>, assignees: Vec<models::User1>, author_association: AuthorAssociation, auto_merge: Option<models::PullRequestAutoMerge>, base: models::PullRequestBase, body: Option<String>, closed_at: Option<String>, comments_url: String, commits_url: String, created_at: String, diff_url: String, draft: bool, head: models::PullRequestBase, html_url: String, id: i32, issue_url: String, labels: Vec<models::Label>, locked: bool, merge_commit_sha: Option<String>, merged_at: Option<String>, milestone: Option<models::Milestone>, node_id: String, number: i32, patch_url: String, requested_reviewers: Vec<models::PullRequest6RequestedReviewersInner>, requested_teams: Vec<models::Team>, review_comment_url: String, review_comments_url: String, state: State, statuses_url: String, title: String, updated_at: String, url: String, user: Option<models::User1>) -> PullRequest8 {
122        PullRequest8 {
123            _links: Box::new(_links),
124            active_lock_reason,
125            additions: None,
126            assignee: assignee.map(Box::new),
127            assignees,
128            author_association,
129            auto_merge: auto_merge.map(Box::new),
130            base: Box::new(base),
131            body,
132            changed_files: None,
133            closed_at,
134            comments: None,
135            comments_url,
136            commits: None,
137            commits_url,
138            created_at,
139            deletions: None,
140            diff_url,
141            draft,
142            head: Box::new(head),
143            html_url,
144            id,
145            issue_url,
146            labels,
147            locked,
148            maintainer_can_modify: None,
149            merge_commit_sha,
150            mergeable: None,
151            mergeable_state: None,
152            merged: None,
153            merged_at,
154            merged_by: None,
155            milestone: milestone.map(Box::new),
156            node_id,
157            number,
158            patch_url,
159            rebaseable: None,
160            requested_reviewers,
161            requested_teams,
162            review_comment_url,
163            review_comments: None,
164            review_comments_url,
165            state,
166            statuses_url,
167            title,
168            updated_at,
169            url,
170            user: user.map(Box::new),
171        }
172    }
173}
174/// 
175#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
176pub enum ActiveLockReason {
177    #[serde(rename = "resolved")]
178    Resolved,
179    #[serde(rename = "off-topic")]
180    OffTopic,
181    #[serde(rename = "too heated")]
182    TooHeated,
183    #[serde(rename = "spam")]
184    Spam,
185}
186
187impl Default for ActiveLockReason {
188    fn default() -> ActiveLockReason {
189        Self::Resolved
190    }
191}
192/// How the author is associated with the repository.
193#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
194pub enum AuthorAssociation {
195    #[serde(rename = "COLLABORATOR")]
196    Collaborator,
197    #[serde(rename = "CONTRIBUTOR")]
198    Contributor,
199    #[serde(rename = "FIRST_TIMER")]
200    FirstTimer,
201    #[serde(rename = "FIRST_TIME_CONTRIBUTOR")]
202    FirstTimeContributor,
203    #[serde(rename = "MANNEQUIN")]
204    Mannequin,
205    #[serde(rename = "MEMBER")]
206    Member,
207    #[serde(rename = "NONE")]
208    None,
209    #[serde(rename = "OWNER")]
210    Owner,
211}
212
213impl Default for AuthorAssociation {
214    fn default() -> AuthorAssociation {
215        Self::Collaborator
216    }
217}
218/// State of this Pull Request. Either `open` or `closed`.
219#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
220pub enum State {
221    #[serde(rename = "open")]
222    Open,
223    #[serde(rename = "closed")]
224    Closed,
225}
226
227impl Default for State {
228    fn default() -> State {
229        Self::Open
230    }
231}
232