use derive_new::new;
use derive_setters::Setters;
use serde::Serialize;
#[derive(Clone, Debug, Serialize, new, Setters)]
#[setters(prefix = "with_")]
#[setters(into, strip_option)]
pub struct GenerateRequest {
#[serde(skip_serializing)]
#[setters(skip)]
#[new(into)]
pub(crate) event_name: String,
#[setters(skip)]
#[new(into)]
pub(crate) application: String,
#[serde(rename = "source", skip_serializing_if = "Option::is_none")]
#[new(default)]
source: Option<String>,
#[serde(skip_serializing)]
#[new(default)]
pub(crate) variables: Option<serde_json::Value>,
}