use crate::data::Message;
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[doc = include_str!("../../doc/send_basic_email.md")]
#[doc = include_str!("../../doc/send_with_attached_files.md")]
#[doc = include_str!("../../doc/send_in_bulk.md")]
#[doc = include_str!("../../doc/set_global_properties.md")]
#[doc = include_str!("../../doc/use_a_template.md")]
#[doc = include_str!("../../doc/add_email_headers.md")]
#[doc = include_str!("../../doc/tag_email_messages.md")]
#[doc = include_str!("../../doc/group_into_a_campaign.md")]
#[doc = include_str!("../../doc/add_url_tags.md")]
#[derive(Serialize, Deserialize, Default)]
pub struct SendRequest {
#[serde(rename = "Messages")]
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub messages: Vec<Message>,
#[serde(rename = "AdvanceErrorHandling")]
#[serde(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub advance_error_handling: Option<bool>,
#[serde(rename = "Globals")]
#[serde(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub globals: Option<Value>,
#[serde(rename = "SandboxMode")]
#[serde(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub sandbox_mode: Option<bool>,
}