use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct DependabotAlertSecurityVulnerability {
#[serde(rename = "package")]
pub package: Box<models::DependabotAlertPackage>,
#[serde(rename = "severity")]
pub severity: Severity,
#[serde(rename = "vulnerable_version_range")]
pub vulnerable_version_range: String,
#[serde(rename = "first_patched_version", deserialize_with = "Option::deserialize")]
pub first_patched_version: Option<Box<models::DependabotAlertSecurityVulnerabilityFirstPatchedVersion>>,
}
impl DependabotAlertSecurityVulnerability {
pub fn new(package: models::DependabotAlertPackage, severity: Severity, vulnerable_version_range: String, first_patched_version: Option<models::DependabotAlertSecurityVulnerabilityFirstPatchedVersion>) -> DependabotAlertSecurityVulnerability {
DependabotAlertSecurityVulnerability {
package: Box::new(package),
severity,
vulnerable_version_range,
first_patched_version: first_patched_version.map(Box::new),
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Severity {
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
#[serde(rename = "critical")]
Critical,
}
impl Default for Severity {
fn default() -> Severity {
Self::Low
}
}