#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct AbstractWebhookPayload {
#[serde(rename = "eventName")]
pub event_name: EventName,
#[serde(rename = "messageId")]
pub message_id: String,
#[serde(rename = "webhookId")]
pub webhook_id: String,
#[serde(rename = "webhookName", skip_serializing_if = "Option::is_none")]
pub webhook_name: Option<String>,
}
impl AbstractWebhookPayload {
pub fn new(event_name: EventName, message_id: String, webhook_id: String) -> AbstractWebhookPayload {
AbstractWebhookPayload {
event_name,
message_id,
webhook_id,
webhook_name: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum EventName {
#[serde(rename = "EMAIL_RECEIVED")]
EMAILRECEIVED,
#[serde(rename = "NEW_EMAIL")]
NEWEMAIL,
#[serde(rename = "NEW_CONTACT")]
NEWCONTACT,
#[serde(rename = "NEW_ATTACHMENT")]
NEWATTACHMENT,
}