1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
16pub struct Project {
17 #[serde(rename = "expand", skip_serializing_if = "Option::is_none")]
19 pub expand: Option<String>,
20 #[serde(rename = "self", skip_serializing_if = "Option::is_none")]
22 pub _self: Option<String>,
23 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
25 pub id: Option<String>,
26 #[serde(rename = "key", skip_serializing_if = "Option::is_none")]
28 pub key: Option<String>,
29 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
31 pub description: Option<String>,
32 #[serde(rename = "lead", skip_serializing_if = "Option::is_none")]
34 pub lead: Option<crate::models::User>,
35 #[serde(rename = "components", skip_serializing_if = "Option::is_none")]
37 pub components: Option<Vec<crate::models::ProjectComponent>>,
38 #[serde(rename = "issueTypes", skip_serializing_if = "Option::is_none")]
40 pub issue_types: Option<Vec<crate::models::IssueTypeDetails>>,
41 #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
43 pub url: Option<String>,
44 #[serde(rename = "email", skip_serializing_if = "Option::is_none")]
46 pub email: Option<String>,
47 #[serde(rename = "assigneeType", skip_serializing_if = "Option::is_none")]
49 pub assignee_type: Option<AssigneeType>,
50 #[serde(rename = "versions", skip_serializing_if = "Option::is_none")]
52 pub versions: Option<Vec<crate::models::Version>>,
53 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
55 pub name: Option<String>,
56 #[serde(rename = "roles", skip_serializing_if = "Option::is_none")]
58 pub roles: Option<::std::collections::HashMap<String, String>>,
59 #[serde(rename = "avatarUrls", skip_serializing_if = "Option::is_none")]
61 pub avatar_urls: Option<crate::models::AvatarUrlsBean>,
62 #[serde(rename = "projectCategory", skip_serializing_if = "Option::is_none")]
64 pub project_category: Option<crate::models::ProjectCategory>,
65 #[serde(rename = "projectTypeKey", skip_serializing_if = "Option::is_none")]
67 pub project_type_key: Option<ProjectTypeKey>,
68 #[serde(rename = "simplified", skip_serializing_if = "Option::is_none")]
70 pub simplified: Option<bool>,
71 #[serde(rename = "style", skip_serializing_if = "Option::is_none")]
73 pub style: Option<Style>,
74 #[serde(rename = "favourite", skip_serializing_if = "Option::is_none")]
76 pub favourite: Option<bool>,
77 #[serde(rename = "isPrivate", skip_serializing_if = "Option::is_none")]
79 pub is_private: Option<bool>,
80 #[serde(rename = "issueTypeHierarchy", skip_serializing_if = "Option::is_none")]
82 pub issue_type_hierarchy: Option<crate::models::Hierarchy>,
83 #[serde(rename = "permissions", skip_serializing_if = "Option::is_none")]
85 pub permissions: Option<crate::models::ProjectPermissions>,
86 #[serde(rename = "properties", skip_serializing_if = "Option::is_none")]
88 pub properties: Option<::std::collections::HashMap<String, serde_json::Value>>,
89 #[serde(rename = "uuid", skip_serializing_if = "Option::is_none")]
91 pub uuid: Option<String>,
92 #[serde(rename = "insight", skip_serializing_if = "Option::is_none")]
94 pub insight: Option<crate::models::ProjectInsight>,
95 #[serde(rename = "deleted", skip_serializing_if = "Option::is_none")]
97 pub deleted: Option<bool>,
98 #[serde(rename = "retentionTillDate", skip_serializing_if = "Option::is_none")]
100 pub retention_till_date: Option<String>,
101 #[serde(rename = "deletedDate", skip_serializing_if = "Option::is_none")]
103 pub deleted_date: Option<String>,
104 #[serde(rename = "deletedBy", skip_serializing_if = "Option::is_none")]
106 pub deleted_by: Option<crate::models::User>,
107 #[serde(rename = "archived", skip_serializing_if = "Option::is_none")]
109 pub archived: Option<bool>,
110 #[serde(rename = "archivedDate", skip_serializing_if = "Option::is_none")]
112 pub archived_date: Option<String>,
113 #[serde(rename = "archivedBy", skip_serializing_if = "Option::is_none")]
115 pub archived_by: Option<crate::models::User>,
116 #[serde(rename = "landingPageInfo", skip_serializing_if = "Option::is_none")]
118 pub landing_page_info: Option<crate::models::ProjectLandingPageInfo>,
119}
120
121impl Project {
122 pub fn new() -> Project {
124 Project {
125 expand: None,
126 _self: None,
127 id: None,
128 key: None,
129 description: None,
130 lead: None,
131 components: None,
132 issue_types: None,
133 url: None,
134 email: None,
135 assignee_type: None,
136 versions: None,
137 name: None,
138 roles: None,
139 avatar_urls: None,
140 project_category: None,
141 project_type_key: None,
142 simplified: None,
143 style: None,
144 favourite: None,
145 is_private: None,
146 issue_type_hierarchy: None,
147 permissions: None,
148 properties: None,
149 uuid: None,
150 insight: None,
151 deleted: None,
152 retention_till_date: None,
153 deleted_date: None,
154 deleted_by: None,
155 archived: None,
156 archived_date: None,
157 archived_by: None,
158 landing_page_info: None,
159 }
160 }
161}
162
163#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
165pub enum AssigneeType {
166 #[serde(rename = "PROJECT_LEAD")]
167 PROJECTLEAD,
168 #[serde(rename = "UNASSIGNED")]
169 UNASSIGNED,
170}
171
172impl Default for AssigneeType {
173 fn default() -> AssigneeType {
174 Self::PROJECTLEAD
175 }
176}
177#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
179pub enum ProjectTypeKey {
180 #[serde(rename = "software")]
181 Software,
182 #[serde(rename = "service_desk")]
183 ServiceDesk,
184 #[serde(rename = "business")]
185 Business,
186}
187
188impl Default for ProjectTypeKey {
189 fn default() -> ProjectTypeKey {
190 Self::Software
191 }
192}
193#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
195pub enum Style {
196 #[serde(rename = "classic")]
197 Classic,
198 #[serde(rename = "next-gen")]
199 NextGen,
200}
201
202impl Default for Style {
203 fn default() -> Style {
204 Self::Classic
205 }
206}
207