use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CreateWebhookRequest {
#[serde(rename = "endpointUrl")]
pub endpoint_url: String,
#[serde(rename = "linkId", skip_serializing_if = "Option::is_none")]
pub link_id: Option<String>,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "source", skip_serializing_if = "Option::is_none")]
pub source: Option<models::WebhookSource>,
#[serde(rename = "triggers", skip_serializing_if = "Option::is_none")]
pub triggers: Option<Vec<Triggers>>,
}
impl CreateWebhookRequest {
pub fn new(endpoint_url: String, name: String) -> CreateWebhookRequest {
CreateWebhookRequest {
endpoint_url,
link_id: None,
name,
source: None,
triggers: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Triggers {
#[serde(rename = "KIND_UNSPECIFIED")]
KindUnspecified,
#[serde(rename = "KIND_ENTRY")]
KindEntry,
#[serde(rename = "KIND_EXIT")]
KindExit,
#[serde(rename = "KIND_INTERACTION")]
KindInteraction,
#[serde(rename = "KIND_CONDITION")]
KindCondition,
}
impl Default for Triggers {
fn default() -> Triggers {
Self::KindUnspecified
}
}