use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CreateWebhookSettingsRequest {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "url")]
pub url: String,
#[serde(rename = "secret", skip_serializing_if = "Option::is_none")]
pub secret: Option<String>,
#[serde(rename = "events")]
pub events: Vec<Events>,
#[serde(rename = "isActive", skip_serializing_if = "Option::is_none")]
pub is_active: Option<bool>,
#[serde(rename = "customHeaders", skip_serializing_if = "Option::is_none")]
pub custom_headers: Option<std::collections::HashMap<String, String>>,
}
impl CreateWebhookSettingsRequest {
pub fn new(name: String, url: String, events: Vec<Events>) -> CreateWebhookSettingsRequest {
CreateWebhookSettingsRequest {
name,
url,
secret: None,
events,
is_active: None,
custom_headers: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Events {
#[serde(rename = "post.scheduled")]
PostScheduled,
#[serde(rename = "post.published")]
PostPublished,
#[serde(rename = "post.failed")]
PostFailed,
#[serde(rename = "post.partial")]
PostPartial,
#[serde(rename = "post.cancelled")]
PostCancelled,
#[serde(rename = "post.recycled")]
PostRecycled,
#[serde(rename = "post.platform.published")]
PostPlatformPublished,
#[serde(rename = "post.platform.failed")]
PostPlatformFailed,
#[serde(rename = "account.connected")]
AccountConnected,
#[serde(rename = "account.disconnected")]
AccountDisconnected,
#[serde(rename = "account.ads.initial_sync_completed")]
AccountAdsInitialSyncCompleted,
#[serde(rename = "message.received")]
MessageReceived,
#[serde(rename = "message.sent")]
MessageSent,
#[serde(rename = "message.edited")]
MessageEdited,
#[serde(rename = "message.deleted")]
MessageDeleted,
#[serde(rename = "message.delivered")]
MessageDelivered,
#[serde(rename = "message.read")]
MessageRead,
#[serde(rename = "message.failed")]
MessageFailed,
#[serde(rename = "reaction.received")]
ReactionReceived,
#[serde(rename = "comment.received")]
CommentReceived,
#[serde(rename = "review.new")]
ReviewNew,
#[serde(rename = "review.updated")]
ReviewUpdated,
#[serde(rename = "ad.status_changed")]
AdStatusChanged,
#[serde(rename = "whatsapp.template.status_updated")]
WhatsappTemplateStatusUpdated,
}
impl Default for Events {
fn default() -> Events {
Self::PostScheduled
}
}