use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ProjectInputBean {
#[serde(rename = "key", skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "projectTypeKey", skip_serializing_if = "Option::is_none")]
pub project_type_key: Option<ProjectTypeKey>,
#[serde(rename = "projectTemplateKey", skip_serializing_if = "Option::is_none")]
pub project_template_key: Option<ProjectTemplateKey>,
#[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<String>,
#[serde(rename = "leadAccountId", skip_serializing_if = "Option::is_none")]
pub lead_account_id: Option<String>,
#[serde(rename = "url", skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(rename = "assigneeType", skip_serializing_if = "Option::is_none")]
pub assignee_type: Option<AssigneeType>,
#[serde(rename = "avatarId", skip_serializing_if = "Option::is_none")]
pub avatar_id: Option<i64>,
#[serde(rename = "issueSecurityScheme", skip_serializing_if = "Option::is_none")]
pub issue_security_scheme: Option<i64>,
#[serde(rename = "permissionScheme", skip_serializing_if = "Option::is_none")]
pub permission_scheme: Option<i64>,
#[serde(rename = "notificationScheme", skip_serializing_if = "Option::is_none")]
pub notification_scheme: Option<i64>,
#[serde(rename = "categoryId", skip_serializing_if = "Option::is_none")]
pub category_id: Option<i64>,
}
impl ProjectInputBean {
pub fn new() -> ProjectInputBean {
ProjectInputBean {
key: None,
name: None,
project_type_key: None,
project_template_key: None,
description: None,
lead: None,
lead_account_id: None,
url: None,
assignee_type: None,
avatar_id: None,
issue_security_scheme: None,
permission_scheme: None,
notification_scheme: None,
category_id: None,
}
}
}
#[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 ProjectTemplateKey {
#[serde(rename = "com.pyxis.greenhopper.jira:gh-simplified-agility-kanban")]
ComPeriodPyxisPeriodGreenhopperPeriodJiraColonGhSimplifiedAgilityKanban,
#[serde(rename = "com.pyxis.greenhopper.jira:gh-simplified-agility-scrum")]
ComPeriodPyxisPeriodGreenhopperPeriodJiraColonGhSimplifiedAgilityScrum,
#[serde(rename = "com.pyxis.greenhopper.jira:gh-simplified-basic")]
ComPeriodPyxisPeriodGreenhopperPeriodJiraColonGhSimplifiedBasic,
#[serde(rename = "com.pyxis.greenhopper.jira:gh-simplified-kanban-classic")]
ComPeriodPyxisPeriodGreenhopperPeriodJiraColonGhSimplifiedKanbanClassic,
#[serde(rename = "com.pyxis.greenhopper.jira:gh-simplified-scrum-classic")]
ComPeriodPyxisPeriodGreenhopperPeriodJiraColonGhSimplifiedScrumClassic,
#[serde(rename = "com.atlassian.servicedesk:simplified-it-service-desk")]
ComPeriodAtlassianPeriodServicedeskColonSimplifiedItServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:simplified-internal-service-desk")]
ComPeriodAtlassianPeriodServicedeskColonSimplifiedInternalServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:simplified-external-service-desk")]
ComPeriodAtlassianPeriodServicedeskColonSimplifiedExternalServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:simplified-hr-service-desk")]
ComPeriodAtlassianPeriodServicedeskColonSimplifiedHrServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:simplified-facilities-service-desk")]
ComPeriodAtlassianPeriodServicedeskColonSimplifiedFacilitiesServiceDesk,
#[serde(rename = "com.atlassian.jira-core-project-templates:jira-core-simplified-content-management")]
ComPeriodAtlassianPeriodJiraCoreProjectTemplatesColonJiraCoreSimplifiedContentManagement,
#[serde(rename = "com.atlassian.jira-core-project-templates:jira-core-simplified-document-approval")]
ComPeriodAtlassianPeriodJiraCoreProjectTemplatesColonJiraCoreSimplifiedDocumentApproval,
#[serde(rename = "com.atlassian.jira-core-project-templates:jira-core-simplified-lead-tracking")]
ComPeriodAtlassianPeriodJiraCoreProjectTemplatesColonJiraCoreSimplifiedLeadTracking,
#[serde(rename = "com.atlassian.jira-core-project-templates:jira-core-simplified-process-control")]
ComPeriodAtlassianPeriodJiraCoreProjectTemplatesColonJiraCoreSimplifiedProcessControl,
#[serde(rename = "com.atlassian.jira-core-project-templates:jira-core-simplified-procurement")]
ComPeriodAtlassianPeriodJiraCoreProjectTemplatesColonJiraCoreSimplifiedProcurement,
#[serde(rename = "com.atlassian.jira-core-project-templates:jira-core-simplified-project-management")]
ComPeriodAtlassianPeriodJiraCoreProjectTemplatesColonJiraCoreSimplifiedProjectManagement,
#[serde(rename = "com.atlassian.jira-core-project-templates:jira-core-simplified-recruitment")]
ComPeriodAtlassianPeriodJiraCoreProjectTemplatesColonJiraCoreSimplifiedRecruitment,
#[serde(rename = "com.atlassian.jira-core-project-templates:jira-core-simplified-task-")]
ComPeriodAtlassianPeriodJiraCoreProjectTemplatesColonJiraCoreSimplifiedTask,
}
impl Default for ProjectTemplateKey {
fn default() -> ProjectTemplateKey {
Self::ComPeriodPyxisPeriodGreenhopperPeriodJiraColonGhSimplifiedAgilityKanban
}
}
#[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
}
}