jira_v3_openapi 1.5.0

Jira Cloud platform REST API lib (OpenAPI document version: 1001.0.0-SNAPSHOT-37416ade0f89f7cb291510843b8a4bbd682b33a1)
Documentation
/*
 * The Jira Cloud platform REST API
 *
 * Jira Cloud platform REST API documentation
 *
 * The version of the OpenAPI document: 1001.0.0-SNAPSHOT-37416ade0f89f7cb291510843b8a4bbd682b33a1
 * Contact: ecosystem@atlassian.com
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

/// ProjectPayload : The payload for creating a project
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ProjectPayload {
    #[serde(rename = "fieldLayoutSchemeId", skip_serializing_if = "Option::is_none")]
    pub field_layout_scheme_id: Option<Box<models::ProjectCreateResourceIdentifier>>,
    #[serde(rename = "issueSecuritySchemeId", skip_serializing_if = "Option::is_none")]
    pub issue_security_scheme_id: Option<Box<models::ProjectCreateResourceIdentifier>>,
    #[serde(rename = "issueTypeSchemeId", skip_serializing_if = "Option::is_none")]
    pub issue_type_scheme_id: Option<Box<models::ProjectCreateResourceIdentifier>>,
    #[serde(rename = "issueTypeScreenSchemeId", skip_serializing_if = "Option::is_none")]
    pub issue_type_screen_scheme_id: Option<Box<models::ProjectCreateResourceIdentifier>>,
    #[serde(rename = "notificationSchemeId", skip_serializing_if = "Option::is_none")]
    pub notification_scheme_id: Option<Box<models::ProjectCreateResourceIdentifier>>,
    #[serde(rename = "pcri", skip_serializing_if = "Option::is_none")]
    pub pcri: Option<Box<models::ProjectCreateResourceIdentifier>>,
    #[serde(rename = "permissionSchemeId", skip_serializing_if = "Option::is_none")]
    pub permission_scheme_id: Option<Box<models::ProjectCreateResourceIdentifier>>,
    /// The [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesandprojecttypes), which defines the application-specific feature set. If you don't specify the project template you have to specify the project type.
    #[serde(rename = "projectTypeKey", skip_serializing_if = "Option::is_none")]
    pub project_type_key: Option<ProjectTypeKey>,
    #[serde(rename = "workflowSchemeId", skip_serializing_if = "Option::is_none")]
    pub workflow_scheme_id: Option<Box<models::ProjectCreateResourceIdentifier>>,
}

impl ProjectPayload {
    /// The payload for creating a project
    pub fn new() -> ProjectPayload {
        ProjectPayload {
            field_layout_scheme_id: None,
            issue_security_scheme_id: None,
            issue_type_scheme_id: None,
            issue_type_screen_scheme_id: None,
            notification_scheme_id: None,
            pcri: None,
            permission_scheme_id: None,
            project_type_key: None,
            workflow_scheme_id: None,
        }
    }
}
/// The [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesandprojecttypes), which defines the application-specific feature set. If you don't specify the project template you have to specify the project type.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ProjectTypeKey {
    #[serde(rename = "software")]
    Software,
    #[serde(rename = "business")]
    Business,
    #[serde(rename = "service_desk")]
    ServiceDesk,
    #[serde(rename = "product_discovery")]
    ProductDiscovery,
}

impl Default for ProjectTypeKey {
    fn default() -> ProjectTypeKey {
        Self::Software
    }
}