#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct Project {
#[serde(rename = "expand", skip_serializing_if = "Option::is_none")]
pub expand: Option<String>,
#[serde(rename = "self", skip_serializing_if = "Option::is_none")]
pub _self: Option<String>,
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "key", skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "lead", skip_serializing_if = "Option::is_none")]
pub lead: Option<crate::models::User>,
#[serde(rename = "components", skip_serializing_if = "Option::is_none")]
pub components: Option<Vec<crate::models::ProjectComponent>>,
#[serde(rename = "issueTypes", skip_serializing_if = "Option::is_none")]
pub issue_types: Option<Vec<crate::models::IssueTypeDetails>>,
#[serde(rename = "url", skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(rename = "email", skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(rename = "assigneeType", skip_serializing_if = "Option::is_none")]
pub assignee_type: Option<AssigneeType>,
#[serde(rename = "versions", skip_serializing_if = "Option::is_none")]
pub versions: Option<Vec<crate::models::Version>>,
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "roles", skip_serializing_if = "Option::is_none")]
pub roles: Option<::std::collections::HashMap<String, String>>,
#[serde(rename = "avatarUrls", skip_serializing_if = "Option::is_none")]
pub avatar_urls: Option<crate::models::AvatarUrlsBean>,
#[serde(rename = "projectCategory", skip_serializing_if = "Option::is_none")]
pub project_category: Option<crate::models::ProjectCategory>,
#[serde(rename = "projectTypeKey", skip_serializing_if = "Option::is_none")]
pub project_type_key: Option<ProjectTypeKey>,
#[serde(rename = "simplified", skip_serializing_if = "Option::is_none")]
pub simplified: Option<bool>,
#[serde(rename = "style", skip_serializing_if = "Option::is_none")]
pub style: Option<Style>,
#[serde(rename = "favourite", skip_serializing_if = "Option::is_none")]
pub favourite: Option<bool>,
#[serde(rename = "isPrivate", skip_serializing_if = "Option::is_none")]
pub is_private: Option<bool>,
#[serde(rename = "issueTypeHierarchy", skip_serializing_if = "Option::is_none")]
pub issue_type_hierarchy: Option<crate::models::Hierarchy>,
#[serde(rename = "permissions", skip_serializing_if = "Option::is_none")]
pub permissions: Option<crate::models::ProjectPermissions>,
#[serde(rename = "properties", skip_serializing_if = "Option::is_none")]
pub properties: Option<::std::collections::HashMap<String, serde_json::Value>>,
#[serde(rename = "uuid", skip_serializing_if = "Option::is_none")]
pub uuid: Option<String>,
#[serde(rename = "insight", skip_serializing_if = "Option::is_none")]
pub insight: Option<crate::models::ProjectInsight>,
#[serde(rename = "deleted", skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
#[serde(rename = "retentionTillDate", skip_serializing_if = "Option::is_none")]
pub retention_till_date: Option<String>,
#[serde(rename = "deletedDate", skip_serializing_if = "Option::is_none")]
pub deleted_date: Option<String>,
#[serde(rename = "deletedBy", skip_serializing_if = "Option::is_none")]
pub deleted_by: Option<crate::models::User>,
#[serde(rename = "archived", skip_serializing_if = "Option::is_none")]
pub archived: Option<bool>,
#[serde(rename = "archivedDate", skip_serializing_if = "Option::is_none")]
pub archived_date: Option<String>,
#[serde(rename = "archivedBy", skip_serializing_if = "Option::is_none")]
pub archived_by: Option<crate::models::User>,
#[serde(rename = "landingPageInfo", skip_serializing_if = "Option::is_none")]
pub landing_page_info: Option<crate::models::ProjectLandingPageInfo>,
}
impl Project {
pub fn new() -> Project {
Project {
expand: None,
_self: None,
id: None,
key: None,
description: None,
lead: None,
components: None,
issue_types: None,
url: None,
email: None,
assignee_type: None,
versions: None,
name: None,
roles: None,
avatar_urls: None,
project_category: None,
project_type_key: None,
simplified: None,
style: None,
favourite: None,
is_private: None,
issue_type_hierarchy: None,
permissions: None,
properties: None,
uuid: None,
insight: None,
deleted: None,
retention_till_date: None,
deleted_date: None,
deleted_by: None,
archived: None,
archived_date: None,
archived_by: None,
landing_page_info: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum AssigneeType {
#[serde(rename = "PROJECT_LEAD")]
PROJECTLEAD,
#[serde(rename = "UNASSIGNED")]
UNASSIGNED,
}
impl Default for AssigneeType {
fn default() -> AssigneeType {
Self::PROJECTLEAD
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ProjectTypeKey {
#[serde(rename = "software")]
Software,
#[serde(rename = "service_desk")]
ServiceDesk,
#[serde(rename = "business")]
Business,
}
impl Default for ProjectTypeKey {
fn default() -> ProjectTypeKey {
Self::Software
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Style {
#[serde(rename = "classic")]
Classic,
#[serde(rename = "next-gen")]
NextGen,
}
impl Default for Style {
fn default() -> Style {
Self::Classic
}
}