linkbreakers 1.96.0

Official Rust SDK for the Linkbreakers API
Documentation
/*
 * Linkbreakers API
 *
 * This is a documentation of all the APIs of Linkbreakers
 *
 * The version of the OpenAPI document: 1.96.0
 * 
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

/// Webhook : Describes a webhook endpoint that receives event notifications when specified conditions are met, providing real-time integration capabilities for external systems.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Webhook {
    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
    pub created_at: Option<String>,
    #[serde(rename = "createdBy", skip_serializing_if = "Option::is_none")]
    pub created_by: Option<String>,
    #[serde(rename = "endpointUrl", skip_serializing_if = "Option::is_none")]
    pub endpoint_url: Option<String>,
    #[serde(rename = "failureCount", skip_serializing_if = "Option::is_none")]
    pub failure_count: Option<String>,
    #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
    pub id: Option<String>,
    /// The timestamp when the webhook was last successfully delivered to the endpoint. This field is only updated when the webhook endpoint responds with a 2xx status code. Use this to track actual successful event notifications to external systems.
    #[serde(rename = "lastDeliveredAt", skip_serializing_if = "Option::is_none")]
    pub last_delivered_at: Option<String>,
    /// The timestamp when the webhook was last triggered (attempted), regardless of success or failure. This field is updated on every webhook transmission attempt, including failed deliveries. Use this to track webhook activity and debugging transmission issues.
    #[serde(rename = "lastSentAt", skip_serializing_if = "Option::is_none")]
    pub last_sent_at: Option<String>,
    /// Filter webhook notifications by a specific link ID. Only events from this link will trigger webhook notifications. If empty, all links in the workspace will trigger notifications.
    #[serde(rename = "linkId", skip_serializing_if = "Option::is_none")]
    pub link_id: Option<String>,
    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
    pub source: Option<models::WebhookSource>,
    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
    pub status: Option<models::WebhookStatus>,
    #[serde(rename = "successCount", skip_serializing_if = "Option::is_none")]
    pub success_count: Option<String>,
    /// Filter webhook notifications by workflow step kinds. Only workflow steps matching these kinds will trigger webhook notifications. If empty, all workflow step kinds will trigger notifications.
    #[serde(rename = "triggers", skip_serializing_if = "Option::is_none")]
    pub triggers: Option<Vec<Triggers>>,
    #[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
    pub updated_at: Option<String>,
    #[serde(rename = "workspaceId", skip_serializing_if = "Option::is_none")]
    pub workspace_id: Option<String>,
}

impl Webhook {
    /// Describes a webhook endpoint that receives event notifications when specified conditions are met, providing real-time integration capabilities for external systems.
    pub fn new() -> Webhook {
        Webhook {
            created_at: None,
            created_by: None,
            endpoint_url: None,
            failure_count: None,
            id: None,
            last_delivered_at: None,
            last_sent_at: None,
            link_id: None,
            name: None,
            source: None,
            status: None,
            success_count: None,
            triggers: None,
            updated_at: None,
            workspace_id: None,
        }
    }
}
/// Filter webhook notifications by workflow step kinds. Only workflow steps matching these kinds will trigger webhook notifications. If empty, all workflow step kinds will trigger notifications.
#[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
    }
}