highlevel-api 0.2.0

Unofficial Rust SDK for the GoHighLevel (HighLevel) API
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Webhook {
    pub id: String,
    pub location_id: String,
    pub name: String,
    pub url: String,
    pub status: String,
    #[serde(default)]
    pub events: Vec<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetWebhooksResponse {
    pub webhooks: Vec<Webhook>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetWebhookResponse {
    pub webhook: Webhook,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CreateWebhookParams {
    pub name: String,
    pub url: String,
    pub events: Vec<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct UpdateWebhookParams {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub url: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub events: Option<Vec<String>>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub status: Option<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DeleteWebhookResponse {
    pub succeded: bool,
}

/// Well-known GHL webhook event types.
pub mod events {
    pub const CONTACT_CREATE: &str = "ContactCreate";
    pub const CONTACT_UPDATE: &str = "ContactUpdate";
    pub const CONTACT_DELETE: &str = "ContactDelete";
    pub const OPPORTUNITY_CREATE: &str = "OpportunityCreate";
    pub const OPPORTUNITY_UPDATE: &str = "OpportunityUpdate";
    pub const OPPORTUNITY_DELETE: &str = "OpportunityDelete";
    pub const OPPORTUNITY_STAGE_UPDATE: &str = "OpportunityStageUpdate";
    pub const OPPORTUNITY_STATUS_UPDATE: &str = "OpportunityStatusUpdate";
    pub const OPPORTUNITY_MONETARY_VALUE_UPDATE: &str = "OpportunityMonetaryValueUpdate";
    pub const CONVERSATION_CREATE: &str = "ConversationCreate";
    pub const CONVERSATION_UPDATE: &str = "ConversationUpdate";
    pub const SMS_SENT: &str = "OutboundMessage";
    pub const SMS_RECEIVED: &str = "InboundMessage";
    pub const APPOINTMENT_CREATE: &str = "AppointmentCreate";
    pub const APPOINTMENT_UPDATE: &str = "AppointmentUpdate";
    pub const APPOINTMENT_DELETE: &str = "AppointmentDelete";
    pub const FORM_SUBMISSION: &str = "FormSubmissionCreate";
    pub const SURVEY_SUBMISSION: &str = "SurveySubmissionCreate";
    pub const NOTE_CREATE: &str = "NoteCreate";
    pub const NOTE_UPDATE: &str = "NoteUpdate";
    pub const NOTE_DELETE: &str = "NoteDelete";
    pub const TASK_CREATE: &str = "TaskCreate";
    pub const TASK_UPDATE: &str = "TaskUpdate";
    pub const TASK_DELETE: &str = "TaskDelete";
    pub const INSTALL: &str = "Install";
    pub const UNINSTALL: &str = "Uninstall";
}