use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct WebhookCodeScanningAlertCreatedAlert {
#[serde(rename = "created_at", deserialize_with = "Option::deserialize")]
pub created_at: Option<String>,
#[serde(rename = "dismissed_at", deserialize_with = "Option::deserialize")]
pub dismissed_at: Option<serde_json::Value>,
#[serde(rename = "dismissed_by", deserialize_with = "Option::deserialize")]
pub dismissed_by: Option<serde_json::Value>,
#[serde(rename = "dismissed_comment", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub dismissed_comment: Option<Option<String>>,
#[serde(rename = "dismissed_reason", deserialize_with = "Option::deserialize")]
pub dismissed_reason: Option<serde_json::Value>,
#[serde(rename = "fixed_at", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub fixed_at: Option<Option<serde_json::Value>>,
#[serde(rename = "html_url")]
pub html_url: String,
#[serde(rename = "instances_url", skip_serializing_if = "Option::is_none")]
pub instances_url: Option<String>,
#[serde(rename = "most_recent_instance", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub most_recent_instance: Option<Option<Box<models::AlertInstance>>>,
#[serde(rename = "number")]
pub number: i32,
#[serde(rename = "rule")]
pub rule: Box<models::WebhookCodeScanningAlertClosedByUserAlertRule>,
#[serde(rename = "state")]
pub state: State,
#[serde(rename = "tool", deserialize_with = "Option::deserialize")]
pub tool: Option<Box<models::WebhookCodeScanningAlertCreatedAlertTool>>,
#[serde(rename = "updated_at", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub updated_at: Option<Option<String>>,
#[serde(rename = "url")]
pub url: String,
}
impl WebhookCodeScanningAlertCreatedAlert {
pub fn new(created_at: Option<String>, dismissed_at: Option<serde_json::Value>, dismissed_by: Option<serde_json::Value>, dismissed_reason: Option<serde_json::Value>, html_url: String, number: i32, rule: models::WebhookCodeScanningAlertClosedByUserAlertRule, state: State, tool: Option<models::WebhookCodeScanningAlertCreatedAlertTool>, url: String) -> WebhookCodeScanningAlertCreatedAlert {
WebhookCodeScanningAlertCreatedAlert {
created_at,
dismissed_at,
dismissed_by,
dismissed_comment: None,
dismissed_reason,
fixed_at: None,
html_url,
instances_url: None,
most_recent_instance: None,
number,
rule: Box::new(rule),
state,
tool: tool.map(Box::new),
updated_at: None,
url,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum State {
#[serde(rename = "open")]
Open,
#[serde(rename = "dismissed")]
Dismissed,
}
impl Default for State {
fn default() -> State {
Self::Open
}
}