#![cfg(feature = "projects_api")]
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CreateProjectDetails {
#[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 = "categoryId", skip_serializing_if = "Option::is_none")]
pub category_id: Option<i64>,
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(
rename = "fieldConfigurationScheme",
skip_serializing_if = "Option::is_none"
)]
pub field_configuration_scheme: Option<i64>,
#[serde(
rename = "issueSecurityScheme",
skip_serializing_if = "Option::is_none"
)]
pub issue_security_scheme: Option<i64>,
#[serde(rename = "issueTypeScheme", skip_serializing_if = "Option::is_none")]
pub issue_type_scheme: Option<i64>,
#[serde(
rename = "issueTypeScreenScheme",
skip_serializing_if = "Option::is_none"
)]
pub issue_type_screen_scheme: Option<i64>,
#[serde(rename = "key")]
pub key: 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 = "name")]
pub name: String,
#[serde(rename = "notificationScheme", skip_serializing_if = "Option::is_none")]
pub notification_scheme: Option<i64>,
#[serde(rename = "permissionScheme", skip_serializing_if = "Option::is_none")]
pub permission_scheme: Option<i64>,
#[serde(rename = "projectTemplateKey", skip_serializing_if = "Option::is_none")]
pub project_template_key: Option<ProjectTemplateKey>,
#[serde(rename = "projectTypeKey", skip_serializing_if = "Option::is_none")]
pub project_type_key: Option<ProjectTypeKey>,
#[serde(rename = "url", skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(rename = "workflowScheme", skip_serializing_if = "Option::is_none")]
pub workflow_scheme: Option<i64>,
}
impl CreateProjectDetails {
pub fn new(key: String, name: String) -> CreateProjectDetails {
CreateProjectDetails {
assignee_type: None,
avatar_id: None,
category_id: None,
description: None,
field_configuration_scheme: None,
issue_security_scheme: None,
issue_type_scheme: None,
issue_type_screen_scheme: None,
key,
lead: None,
lead_account_id: None,
name,
notification_scheme: None,
permission_scheme: None,
project_template_key: None,
project_type_key: None,
url: None,
workflow_scheme: 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 ProjectTemplateKey {
#[serde(rename = "com.pyxis.greenhopper.jira:gh-simplified-agility-kanban")]
PyxisPeriodGreenhopperPeriodJiraColonGhSimplifiedAgilityKanban,
#[serde(rename = "com.pyxis.greenhopper.jira:gh-simplified-agility-scrum")]
PyxisPeriodGreenhopperPeriodJiraColonGhSimplifiedAgilityScrum,
#[serde(rename = "com.pyxis.greenhopper.jira:gh-simplified-basic")]
PyxisPeriodGreenhopperPeriodJiraColonGhSimplifiedBasic,
#[serde(rename = "com.pyxis.greenhopper.jira:gh-simplified-kanban-classic")]
PyxisPeriodGreenhopperPeriodJiraColonGhSimplifiedKanbanClassic,
#[serde(rename = "com.pyxis.greenhopper.jira:gh-simplified-scrum-classic")]
PyxisPeriodGreenhopperPeriodJiraColonGhSimplifiedScrumClassic,
#[serde(rename = "com.pyxis.greenhopper.jira:gh-cross-team-template")]
PyxisPeriodGreenhopperPeriodJiraColonGhCrossTeamTemplate,
#[serde(rename = "com.pyxis.greenhopper.jira:gh-cross-team-planning-template")]
PyxisPeriodGreenhopperPeriodJiraColonGhCrossTeamPlanningTemplate,
#[serde(rename = "com.atlassian.servicedesk:simplified-it-service-management")]
AtlassianPeriodServicedeskColonSimplifiedItServiceManagement,
#[serde(rename = "com.atlassian.servicedesk:simplified-it-service-management-basic")]
AtlassianPeriodServicedeskColonSimplifiedItServiceManagementBasic,
#[serde(rename = "com.atlassian.servicedesk:simplified-it-service-management-operations")]
AtlassianPeriodServicedeskColonSimplifiedItServiceManagementOperations,
#[serde(rename = "com.atlassian.servicedesk:simplified-general-service-desk")]
AtlassianPeriodServicedeskColonSimplifiedGeneralServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:simplified-internal-service-desk")]
AtlassianPeriodServicedeskColonSimplifiedInternalServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:simplified-external-service-desk")]
AtlassianPeriodServicedeskColonSimplifiedExternalServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:simplified-hr-service-desk")]
AtlassianPeriodServicedeskColonSimplifiedHrServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:simplified-facilities-service-desk")]
AtlassianPeriodServicedeskColonSimplifiedFacilitiesServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:simplified-legal-service-desk")]
AtlassianPeriodServicedeskColonSimplifiedLegalServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:simplified-marketing-service-desk")]
AtlassianPeriodServicedeskColonSimplifiedMarketingServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:simplified-finance-service-desk")]
AtlassianPeriodServicedeskColonSimplifiedFinanceServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:simplified-analytics-service-desk")]
AtlassianPeriodServicedeskColonSimplifiedAnalyticsServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:simplified-design-service-desk")]
AtlassianPeriodServicedeskColonSimplifiedDesignServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:simplified-sales-service-desk")]
AtlassianPeriodServicedeskColonSimplifiedSalesServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:simplified-halp-service-desk")]
AtlassianPeriodServicedeskColonSimplifiedHalpServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:next-gen-it-service-desk")]
AtlassianPeriodServicedeskColonNextGenItServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:next-gen-hr-service-desk")]
AtlassianPeriodServicedeskColonNextGenHrServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:next-gen-legal-service-desk")]
AtlassianPeriodServicedeskColonNextGenLegalServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:next-gen-marketing-service-desk")]
AtlassianPeriodServicedeskColonNextGenMarketingServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:next-gen-facilities-service-desk")]
AtlassianPeriodServicedeskColonNextGenFacilitiesServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:next-gen-general-service-desk")]
AtlassianPeriodServicedeskColonNextGenGeneralServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:next-gen-analytics-service-desk")]
AtlassianPeriodServicedeskColonNextGenAnalyticsServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:next-gen-finance-service-desk")]
AtlassianPeriodServicedeskColonNextGenFinanceServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:next-gen-design-service-desk")]
AtlassianPeriodServicedeskColonNextGenDesignServiceDesk,
#[serde(rename = "com.atlassian.servicedesk:next-gen-sales-service-desk")]
AtlassianPeriodServicedeskColonNextGenSalesServiceDesk,
#[serde(
rename = "com.atlassian.jira-core-project-templates:jira-core-simplified-content-management"
)]
AtlassianPeriodJiraCoreProjectTemplatesColonJiraCoreSimplifiedContentManagement,
#[serde(
rename = "com.atlassian.jira-core-project-templates:jira-core-simplified-document-approval"
)]
AtlassianPeriodJiraCoreProjectTemplatesColonJiraCoreSimplifiedDocumentApproval,
#[serde(
rename = "com.atlassian.jira-core-project-templates:jira-core-simplified-lead-tracking"
)]
AtlassianPeriodJiraCoreProjectTemplatesColonJiraCoreSimplifiedLeadTracking,
#[serde(
rename = "com.atlassian.jira-core-project-templates:jira-core-simplified-process-control"
)]
AtlassianPeriodJiraCoreProjectTemplatesColonJiraCoreSimplifiedProcessControl,
#[serde(rename = "com.atlassian.jira-core-project-templates:jira-core-simplified-procurement")]
AtlassianPeriodJiraCoreProjectTemplatesColonJiraCoreSimplifiedProcurement,
#[serde(
rename = "com.atlassian.jira-core-project-templates:jira-core-simplified-project-management"
)]
AtlassianPeriodJiraCoreProjectTemplatesColonJiraCoreSimplifiedProjectManagement,
#[serde(rename = "com.atlassian.jira-core-project-templates:jira-core-simplified-recruitment")]
AtlassianPeriodJiraCoreProjectTemplatesColonJiraCoreSimplifiedRecruitment,
#[serde(rename = "com.atlassian.jira-core-project-templates:jira-core-simplified-task-")]
AtlassianPeriodJiraCoreProjectTemplatesColonJiraCoreSimplifiedTask,
}
impl Default for ProjectTemplateKey {
fn default() -> ProjectTemplateKey {
Self::PyxisPeriodGreenhopperPeriodJiraColonGhSimplifiedAgilityKanban
}
}
#[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
}
}