use serde::{self, Deserialize, Serialize};
use crate::helpers::Class;
pub trait Cause {}
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct CommonCause {
#[serde(rename = "_class")]
pub class: Option<String>,
pub short_description: String,
#[cfg(not(feature = "extra-fields-visibility"))]
#[serde(flatten)]
extra_fields: serde_json::Value,
#[cfg(feature = "extra-fields-visibility")]
#[serde(flatten)]
pub extra_fields: serde_json::Value,
}
specialize!(CommonCause => Cause);
impl Cause for CommonCause {}
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
pub struct UserIdCause {
pub short_description: String,
pub user_id: String,
pub user_name: String,
}
register_class!("hudson.model.Cause$UserIdCause" => UserIdCause);
impl Cause for UserIdCause {}
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
pub struct RemoteCause {
pub short_description: String,
pub addr: String,
pub note: Option<String>,
}
register_class!("hudson.model.Cause$RemoteCause" => RemoteCause);
impl Cause for RemoteCause {}
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
pub struct UpstreamCause {
pub short_description: String,
pub upstream_build: u32,
pub upstream_project: String,
pub upstream_url: String,
}
register_class!("hudson.model.Cause$RemoteCause" => UpstreamCause);
impl Cause for UpstreamCause {}
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
pub struct TimerTriggerCause {
pub short_description: String,
}
register_class!("hudson.triggers.TimerTrigger$TimerTriggerCause" => TimerTriggerCause);
impl Cause for TimerTriggerCause {}
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
pub struct SCMTriggerCause {
pub short_description: String,
}
register_class!("hudson.triggers.SCMTrigger$SCMTriggerCause" => SCMTriggerCause);
impl Cause for SCMTriggerCause {}