use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct AlertInstance {
#[serde(rename = "analysis_key")]
pub analysis_key: String,
#[serde(rename = "category", skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
#[serde(rename = "classifications", skip_serializing_if = "Option::is_none")]
pub classifications: Option<Vec<String>>,
#[serde(rename = "commit_sha", skip_serializing_if = "Option::is_none")]
pub commit_sha: Option<String>,
#[serde(rename = "environment")]
pub environment: String,
#[serde(rename = "location", skip_serializing_if = "Option::is_none")]
pub location: Option<Box<models::AlertInstanceLocation>>,
#[serde(rename = "message", skip_serializing_if = "Option::is_none")]
pub message: Option<Box<models::CodeScanningAlertInstanceMessage>>,
#[serde(rename = "ref")]
pub r#ref: String,
#[serde(rename = "state")]
pub state: State,
}
impl AlertInstance {
pub fn new(analysis_key: String, environment: String, r#ref: String, state: State) -> AlertInstance {
AlertInstance {
analysis_key,
category: None,
classifications: None,
commit_sha: None,
environment,
location: None,
message: None,
r#ref,
state,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum State {
#[serde(rename = "open")]
Open,
#[serde(rename = "dismissed")]
Dismissed,
#[serde(rename = "fixed")]
Fixed,
}
impl Default for State {
fn default() -> State {
Self::Open
}
}