1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct WebhooksRule {
17 #[serde(rename = "admin_enforced")]
18 pub admin_enforced: bool,
19 #[serde(rename = "allow_deletions_enforcement_level")]
20 pub allow_deletions_enforcement_level: AllowDeletionsEnforcementLevel,
21 #[serde(rename = "allow_force_pushes_enforcement_level")]
22 pub allow_force_pushes_enforcement_level: AllowForcePushesEnforcementLevel,
23 #[serde(rename = "authorized_actor_names")]
24 pub authorized_actor_names: Vec<String>,
25 #[serde(rename = "authorized_actors_only")]
26 pub authorized_actors_only: bool,
27 #[serde(rename = "authorized_dismissal_actors_only")]
28 pub authorized_dismissal_actors_only: bool,
29 #[serde(rename = "create_protected", skip_serializing_if = "Option::is_none")]
30 pub create_protected: Option<bool>,
31 #[serde(rename = "created_at")]
32 pub created_at: String,
33 #[serde(rename = "dismiss_stale_reviews_on_push")]
34 pub dismiss_stale_reviews_on_push: bool,
35 #[serde(rename = "id")]
36 pub id: i32,
37 #[serde(rename = "ignore_approvals_from_contributors")]
38 pub ignore_approvals_from_contributors: bool,
39 #[serde(rename = "linear_history_requirement_enforcement_level")]
40 pub linear_history_requirement_enforcement_level: LinearHistoryRequirementEnforcementLevel,
41 #[serde(rename = "merge_queue_enforcement_level")]
42 pub merge_queue_enforcement_level: MergeQueueEnforcementLevel,
43 #[serde(rename = "name")]
44 pub name: String,
45 #[serde(rename = "pull_request_reviews_enforcement_level")]
46 pub pull_request_reviews_enforcement_level: PullRequestReviewsEnforcementLevel,
47 #[serde(rename = "repository_id")]
48 pub repository_id: i32,
49 #[serde(rename = "require_code_owner_review")]
50 pub require_code_owner_review: bool,
51 #[serde(rename = "require_last_push_approval", skip_serializing_if = "Option::is_none")]
53 pub require_last_push_approval: Option<bool>,
54 #[serde(rename = "required_approving_review_count")]
55 pub required_approving_review_count: i32,
56 #[serde(rename = "required_conversation_resolution_level")]
57 pub required_conversation_resolution_level: RequiredConversationResolutionLevel,
58 #[serde(rename = "required_deployments_enforcement_level")]
59 pub required_deployments_enforcement_level: RequiredDeploymentsEnforcementLevel,
60 #[serde(rename = "required_status_checks")]
61 pub required_status_checks: Vec<String>,
62 #[serde(rename = "required_status_checks_enforcement_level")]
63 pub required_status_checks_enforcement_level: RequiredStatusChecksEnforcementLevel,
64 #[serde(rename = "signature_requirement_enforcement_level")]
65 pub signature_requirement_enforcement_level: SignatureRequirementEnforcementLevel,
66 #[serde(rename = "strict_required_status_checks_policy")]
67 pub strict_required_status_checks_policy: bool,
68 #[serde(rename = "updated_at")]
69 pub updated_at: String,
70}
71
72impl WebhooksRule {
73 pub fn new(admin_enforced: bool, allow_deletions_enforcement_level: AllowDeletionsEnforcementLevel, allow_force_pushes_enforcement_level: AllowForcePushesEnforcementLevel, authorized_actor_names: Vec<String>, authorized_actors_only: bool, authorized_dismissal_actors_only: bool, created_at: String, dismiss_stale_reviews_on_push: bool, id: i32, ignore_approvals_from_contributors: bool, linear_history_requirement_enforcement_level: LinearHistoryRequirementEnforcementLevel, merge_queue_enforcement_level: MergeQueueEnforcementLevel, name: String, pull_request_reviews_enforcement_level: PullRequestReviewsEnforcementLevel, repository_id: i32, require_code_owner_review: bool, required_approving_review_count: i32, required_conversation_resolution_level: RequiredConversationResolutionLevel, required_deployments_enforcement_level: RequiredDeploymentsEnforcementLevel, required_status_checks: Vec<String>, required_status_checks_enforcement_level: RequiredStatusChecksEnforcementLevel, signature_requirement_enforcement_level: SignatureRequirementEnforcementLevel, strict_required_status_checks_policy: bool, updated_at: String) -> WebhooksRule {
75 WebhooksRule {
76 admin_enforced,
77 allow_deletions_enforcement_level,
78 allow_force_pushes_enforcement_level,
79 authorized_actor_names,
80 authorized_actors_only,
81 authorized_dismissal_actors_only,
82 create_protected: None,
83 created_at,
84 dismiss_stale_reviews_on_push,
85 id,
86 ignore_approvals_from_contributors,
87 linear_history_requirement_enforcement_level,
88 merge_queue_enforcement_level,
89 name,
90 pull_request_reviews_enforcement_level,
91 repository_id,
92 require_code_owner_review,
93 require_last_push_approval: None,
94 required_approving_review_count,
95 required_conversation_resolution_level,
96 required_deployments_enforcement_level,
97 required_status_checks,
98 required_status_checks_enforcement_level,
99 signature_requirement_enforcement_level,
100 strict_required_status_checks_policy,
101 updated_at,
102 }
103 }
104}
105#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
107pub enum AllowDeletionsEnforcementLevel {
108 #[serde(rename = "off")]
109 Off,
110 #[serde(rename = "non_admins")]
111 NonAdmins,
112 #[serde(rename = "everyone")]
113 Everyone,
114}
115
116impl Default for AllowDeletionsEnforcementLevel {
117 fn default() -> AllowDeletionsEnforcementLevel {
118 Self::Off
119 }
120}
121#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
123pub enum AllowForcePushesEnforcementLevel {
124 #[serde(rename = "off")]
125 Off,
126 #[serde(rename = "non_admins")]
127 NonAdmins,
128 #[serde(rename = "everyone")]
129 Everyone,
130}
131
132impl Default for AllowForcePushesEnforcementLevel {
133 fn default() -> AllowForcePushesEnforcementLevel {
134 Self::Off
135 }
136}
137#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
139pub enum LinearHistoryRequirementEnforcementLevel {
140 #[serde(rename = "off")]
141 Off,
142 #[serde(rename = "non_admins")]
143 NonAdmins,
144 #[serde(rename = "everyone")]
145 Everyone,
146}
147
148impl Default for LinearHistoryRequirementEnforcementLevel {
149 fn default() -> LinearHistoryRequirementEnforcementLevel {
150 Self::Off
151 }
152}
153#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
155pub enum MergeQueueEnforcementLevel {
156 #[serde(rename = "off")]
157 Off,
158 #[serde(rename = "non_admins")]
159 NonAdmins,
160 #[serde(rename = "everyone")]
161 Everyone,
162}
163
164impl Default for MergeQueueEnforcementLevel {
165 fn default() -> MergeQueueEnforcementLevel {
166 Self::Off
167 }
168}
169#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
171pub enum PullRequestReviewsEnforcementLevel {
172 #[serde(rename = "off")]
173 Off,
174 #[serde(rename = "non_admins")]
175 NonAdmins,
176 #[serde(rename = "everyone")]
177 Everyone,
178}
179
180impl Default for PullRequestReviewsEnforcementLevel {
181 fn default() -> PullRequestReviewsEnforcementLevel {
182 Self::Off
183 }
184}
185#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
187pub enum RequiredConversationResolutionLevel {
188 #[serde(rename = "off")]
189 Off,
190 #[serde(rename = "non_admins")]
191 NonAdmins,
192 #[serde(rename = "everyone")]
193 Everyone,
194}
195
196impl Default for RequiredConversationResolutionLevel {
197 fn default() -> RequiredConversationResolutionLevel {
198 Self::Off
199 }
200}
201#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
203pub enum RequiredDeploymentsEnforcementLevel {
204 #[serde(rename = "off")]
205 Off,
206 #[serde(rename = "non_admins")]
207 NonAdmins,
208 #[serde(rename = "everyone")]
209 Everyone,
210}
211
212impl Default for RequiredDeploymentsEnforcementLevel {
213 fn default() -> RequiredDeploymentsEnforcementLevel {
214 Self::Off
215 }
216}
217#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
219pub enum RequiredStatusChecksEnforcementLevel {
220 #[serde(rename = "off")]
221 Off,
222 #[serde(rename = "non_admins")]
223 NonAdmins,
224 #[serde(rename = "everyone")]
225 Everyone,
226}
227
228impl Default for RequiredStatusChecksEnforcementLevel {
229 fn default() -> RequiredStatusChecksEnforcementLevel {
230 Self::Off
231 }
232}
233#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
235pub enum SignatureRequirementEnforcementLevel {
236 #[serde(rename = "off")]
237 Off,
238 #[serde(rename = "non_admins")]
239 NonAdmins,
240 #[serde(rename = "everyone")]
241 Everyone,
242}
243
244impl Default for SignatureRequirementEnforcementLevel {
245 fn default() -> SignatureRequirementEnforcementLevel {
246 Self::Off
247 }
248}
249