1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct OrganizationFull {
17 #[serde(rename = "login")]
18 pub login: String,
19 #[serde(rename = "id")]
20 pub id: i32,
21 #[serde(rename = "node_id")]
22 pub node_id: String,
23 #[serde(rename = "url")]
24 pub url: String,
25 #[serde(rename = "repos_url")]
26 pub repos_url: String,
27 #[serde(rename = "events_url")]
28 pub events_url: String,
29 #[serde(rename = "hooks_url")]
30 pub hooks_url: String,
31 #[serde(rename = "issues_url")]
32 pub issues_url: String,
33 #[serde(rename = "members_url")]
34 pub members_url: String,
35 #[serde(rename = "public_members_url")]
36 pub public_members_url: String,
37 #[serde(rename = "avatar_url")]
38 pub avatar_url: String,
39 #[serde(rename = "description", deserialize_with = "Option::deserialize")]
40 pub description: Option<String>,
41 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
42 pub name: Option<String>,
43 #[serde(rename = "company", skip_serializing_if = "Option::is_none")]
44 pub company: Option<String>,
45 #[serde(rename = "blog", skip_serializing_if = "Option::is_none")]
46 pub blog: Option<String>,
47 #[serde(rename = "location", skip_serializing_if = "Option::is_none")]
48 pub location: Option<String>,
49 #[serde(rename = "email", skip_serializing_if = "Option::is_none")]
50 pub email: Option<String>,
51 #[serde(rename = "twitter_username", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
52 pub twitter_username: Option<Option<String>>,
53 #[serde(rename = "is_verified", skip_serializing_if = "Option::is_none")]
54 pub is_verified: Option<bool>,
55 #[serde(rename = "has_organization_projects")]
56 pub has_organization_projects: bool,
57 #[serde(rename = "has_repository_projects")]
58 pub has_repository_projects: bool,
59 #[serde(rename = "public_repos")]
60 pub public_repos: i32,
61 #[serde(rename = "public_gists")]
62 pub public_gists: i32,
63 #[serde(rename = "followers")]
64 pub followers: i32,
65 #[serde(rename = "following")]
66 pub following: i32,
67 #[serde(rename = "html_url")]
68 pub html_url: String,
69 #[serde(rename = "type")]
70 pub r#type: String,
71 #[serde(rename = "total_private_repos", skip_serializing_if = "Option::is_none")]
72 pub total_private_repos: Option<i32>,
73 #[serde(rename = "owned_private_repos", skip_serializing_if = "Option::is_none")]
74 pub owned_private_repos: Option<i32>,
75 #[serde(rename = "private_gists", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
76 pub private_gists: Option<Option<i32>>,
77 #[serde(rename = "disk_usage", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
78 pub disk_usage: Option<Option<i32>>,
79 #[serde(rename = "collaborators", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
80 pub collaborators: Option<Option<i32>>,
81 #[serde(rename = "billing_email", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
82 pub billing_email: Option<Option<String>>,
83 #[serde(rename = "plan", skip_serializing_if = "Option::is_none")]
84 pub plan: Option<Box<models::OrganizationFullPlan>>,
85 #[serde(rename = "default_repository_permission", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
86 pub default_repository_permission: Option<Option<String>>,
87 #[serde(rename = "members_can_create_repositories", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
88 pub members_can_create_repositories: Option<Option<bool>>,
89 #[serde(rename = "two_factor_requirement_enabled", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
90 pub two_factor_requirement_enabled: Option<Option<bool>>,
91 #[serde(rename = "members_allowed_repository_creation_type", skip_serializing_if = "Option::is_none")]
92 pub members_allowed_repository_creation_type: Option<String>,
93 #[serde(rename = "members_can_create_public_repositories", skip_serializing_if = "Option::is_none")]
94 pub members_can_create_public_repositories: Option<bool>,
95 #[serde(rename = "members_can_create_private_repositories", skip_serializing_if = "Option::is_none")]
96 pub members_can_create_private_repositories: Option<bool>,
97 #[serde(rename = "members_can_create_internal_repositories", skip_serializing_if = "Option::is_none")]
98 pub members_can_create_internal_repositories: Option<bool>,
99 #[serde(rename = "members_can_create_pages", skip_serializing_if = "Option::is_none")]
100 pub members_can_create_pages: Option<bool>,
101 #[serde(rename = "members_can_create_public_pages", skip_serializing_if = "Option::is_none")]
102 pub members_can_create_public_pages: Option<bool>,
103 #[serde(rename = "members_can_create_private_pages", skip_serializing_if = "Option::is_none")]
104 pub members_can_create_private_pages: Option<bool>,
105 #[serde(rename = "members_can_fork_private_repositories", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
106 pub members_can_fork_private_repositories: Option<Option<bool>>,
107 #[serde(rename = "web_commit_signoff_required", skip_serializing_if = "Option::is_none")]
108 pub web_commit_signoff_required: Option<bool>,
109 #[serde(rename = "advanced_security_enabled_for_new_repositories", skip_serializing_if = "Option::is_none")]
111 pub advanced_security_enabled_for_new_repositories: Option<bool>,
112 #[serde(rename = "dependabot_alerts_enabled_for_new_repositories", skip_serializing_if = "Option::is_none")]
114 pub dependabot_alerts_enabled_for_new_repositories: Option<bool>,
115 #[serde(rename = "dependabot_security_updates_enabled_for_new_repositories", skip_serializing_if = "Option::is_none")]
117 pub dependabot_security_updates_enabled_for_new_repositories: Option<bool>,
118 #[serde(rename = "dependency_graph_enabled_for_new_repositories", skip_serializing_if = "Option::is_none")]
120 pub dependency_graph_enabled_for_new_repositories: Option<bool>,
121 #[serde(rename = "secret_scanning_enabled_for_new_repositories", skip_serializing_if = "Option::is_none")]
123 pub secret_scanning_enabled_for_new_repositories: Option<bool>,
124 #[serde(rename = "secret_scanning_push_protection_enabled_for_new_repositories", skip_serializing_if = "Option::is_none")]
126 pub secret_scanning_push_protection_enabled_for_new_repositories: Option<bool>,
127 #[serde(rename = "secret_scanning_push_protection_custom_link_enabled", skip_serializing_if = "Option::is_none")]
129 pub secret_scanning_push_protection_custom_link_enabled: Option<bool>,
130 #[serde(rename = "secret_scanning_push_protection_custom_link", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
132 pub secret_scanning_push_protection_custom_link: Option<Option<String>>,
133 #[serde(rename = "created_at")]
134 pub created_at: String,
135 #[serde(rename = "updated_at")]
136 pub updated_at: String,
137 #[serde(rename = "archived_at", deserialize_with = "Option::deserialize")]
138 pub archived_at: Option<String>,
139}
140
141impl OrganizationFull {
142 pub fn new(login: String, id: i32, node_id: String, url: String, repos_url: String, events_url: String, hooks_url: String, issues_url: String, members_url: String, public_members_url: String, avatar_url: String, description: Option<String>, has_organization_projects: bool, has_repository_projects: bool, public_repos: i32, public_gists: i32, followers: i32, following: i32, html_url: String, r#type: String, created_at: String, updated_at: String, archived_at: Option<String>) -> OrganizationFull {
144 OrganizationFull {
145 login,
146 id,
147 node_id,
148 url,
149 repos_url,
150 events_url,
151 hooks_url,
152 issues_url,
153 members_url,
154 public_members_url,
155 avatar_url,
156 description,
157 name: None,
158 company: None,
159 blog: None,
160 location: None,
161 email: None,
162 twitter_username: None,
163 is_verified: None,
164 has_organization_projects,
165 has_repository_projects,
166 public_repos,
167 public_gists,
168 followers,
169 following,
170 html_url,
171 r#type,
172 total_private_repos: None,
173 owned_private_repos: None,
174 private_gists: None,
175 disk_usage: None,
176 collaborators: None,
177 billing_email: None,
178 plan: None,
179 default_repository_permission: None,
180 members_can_create_repositories: None,
181 two_factor_requirement_enabled: None,
182 members_allowed_repository_creation_type: None,
183 members_can_create_public_repositories: None,
184 members_can_create_private_repositories: None,
185 members_can_create_internal_repositories: None,
186 members_can_create_pages: None,
187 members_can_create_public_pages: None,
188 members_can_create_private_pages: None,
189 members_can_fork_private_repositories: None,
190 web_commit_signoff_required: None,
191 advanced_security_enabled_for_new_repositories: None,
192 dependabot_alerts_enabled_for_new_repositories: None,
193 dependabot_security_updates_enabled_for_new_repositories: None,
194 dependency_graph_enabled_for_new_repositories: None,
195 secret_scanning_enabled_for_new_repositories: None,
196 secret_scanning_push_protection_enabled_for_new_repositories: None,
197 secret_scanning_push_protection_custom_link_enabled: None,
198 secret_scanning_push_protection_custom_link: None,
199 created_at,
200 updated_at,
201 archived_at,
202 }
203 }
204}
205