use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CreatePlanRequest {
#[serde(rename = "crossProjectReleases", skip_serializing_if = "Option::is_none")]
pub cross_project_releases: Option<Vec<models::CreateCrossProjectReleaseRequest>>,
#[serde(rename = "customFields", skip_serializing_if = "Option::is_none")]
pub custom_fields: Option<Vec<models::CreateCustomFieldRequest>>,
#[serde(rename = "exclusionRules", skip_serializing_if = "Option::is_none")]
pub exclusion_rules: Option<Box<models::CreateExclusionRulesRequest>>,
#[serde(rename = "issueSources")]
pub issue_sources: Vec<models::CreateIssueSourceRequest>,
#[serde(rename = "leadAccountId", skip_serializing_if = "Option::is_none")]
pub lead_account_id: Option<String>,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "permissions", skip_serializing_if = "Option::is_none")]
pub permissions: Option<Vec<models::CreatePermissionRequest>>,
#[serde(rename = "scheduling")]
pub scheduling: Box<models::CreateSchedulingRequest>,
}
impl CreatePlanRequest {
pub fn new(issue_sources: Vec<models::CreateIssueSourceRequest>, name: String, scheduling: models::CreateSchedulingRequest) -> CreatePlanRequest {
CreatePlanRequest {
cross_project_releases: None,
custom_fields: None,
exclusion_rules: None,
issue_sources,
lead_account_id: None,
name,
permissions: None,
scheduling: Box::new(scheduling),
}
}
}