linkbreakers 1.77.6

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.77.6
 * 
 * Generated by: https://openapi-generator.tech
 */

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

/// Link : Core resource that ties a shortlink or QR entrypoint to its workflow, destination, and analytics metadata, letting Linkbreakers serve dynamic experiences while tracking scans for a workspace.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Link {
    /// When the link was created.
    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
    pub created_at: Option<String>,
    /// The custom domain that is used to access the link. Use the include parameter when available to include the custom domain in the response.
    #[serde(rename = "customDomain", skip_serializing_if = "Option::is_none")]
    pub custom_domain: Option<Box<models::CustomDomain>>,
    /// The ID of the custom domain (UUID). This is the custom domain that is used to access the link. If not defined, the link will be accessed using the default domain.
    #[serde(rename = "customDomainId", skip_serializing_if = "Option::is_none")]
    pub custom_domain_id: Option<String>,
    /// The ID of the directory this link belongs to (UUID). If not set, the link is at the root level (not in any directory).
    #[serde(rename = "directoryId", skip_serializing_if = "Option::is_none")]
    pub directory_id: Option<String>,
    /// The entrypoint URL This is the URL that is available to be redirected to the destination.
    #[serde(rename = "entrypoint", skip_serializing_if = "Option::is_none")]
    pub entrypoint: Option<String>,
    /// The number of time the link has been scanned. This number isn't refreshed instantly but will update itself within a few seconds.
    #[serde(rename = "eventCount", skip_serializing_if = "Option::is_none")]
    pub event_count: Option<String>,
    #[serde(rename = "fallbackDestination", skip_serializing_if = "Option::is_none")]
    pub fallback_destination: Option<String>,
    #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
    pub id: Option<String>,
    /// The lead goal definition for the link. This is a text field that can be used to describe the lead goal or purpose of the link.
    #[serde(rename = "leadGoalDefinition", skip_serializing_if = "Option::is_none")]
    pub lead_goal_definition: Option<String>,
    /// The lead target definition for the link. This is a text field that can be used to describe the target lead criteria for the link.
    #[serde(rename = "leadTargetDefinition", skip_serializing_if = "Option::is_none")]
    pub lead_target_definition: Option<String>,
    /// A map of string key-value pairs. All values must be strings. Nested objects or arrays are not supported. Maximum of 50 keys.
    #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
    pub metadata: Option<std::collections::HashMap<String, String>>,
    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    /// The page theme configuration for this link. Use the include parameter with \"pageTheme\" to include page theme data in the response.
    #[serde(rename = "pageTheme", skip_serializing_if = "Option::is_none")]
    pub page_theme: Option<Box<models::PageTheme>>,
    /// The ID of the page theme for this link (UUID).
    #[serde(rename = "pageThemeId", skip_serializing_if = "Option::is_none")]
    pub page_theme_id: Option<String>,
    /// The custom domain that is used to access the link. Use the include parameter when available to include the custom domain in the response.
    #[serde(rename = "qrcodeDesign", skip_serializing_if = "Option::is_none")]
    pub qrcode_design: Option<Box<models::QrcodeDesign>>,
    /// The ID of the link design (UUID). This is the ID of the design that is used to generate the QR Code. If not defined, the design from the QR Code template will be used.
    #[serde(rename = "qrcodeDesignId", skip_serializing_if = "Option::is_none")]
    pub qrcode_design_id: Option<String>,
    /// When the link is pending QR Code update. This happens when the QR Code Design is updated and the QR Code image is still being processed.
    #[serde(rename = "qrcodePendingUpdateSince", skip_serializing_if = "Option::is_none")]
    pub qrcode_pending_update_since: Option<String>,
    /// The signed URL for the QR Code image. This URL eventually expires.
    #[serde(rename = "qrcodeSignedUrl", skip_serializing_if = "Option::is_none")]
    pub qrcode_signed_url: Option<String>,
    /// The ID of the design template (UUID). This is the template that is used to generate the first QR Code Design assigned to the link. If not defined, a default QR Code Design will be generated.
    #[serde(rename = "qrcodeTemplateId", skip_serializing_if = "Option::is_none")]
    pub qrcode_template_id: Option<String>,
    /// The short link for the link. This is the path segment that is attached to the URL. It can be defined by the client or generated by the system but is never null. It is unique within a custom domain or Linkbreakers default domain.
    #[serde(rename = "shortlink", skip_serializing_if = "Option::is_none")]
    pub shortlink: Option<String>,
    /// The tags associated with the link.
    #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
    pub tags: Option<Vec<models::ApiTag>>,
    /// When the link was last updated.
    #[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 Link {
    /// Core resource that ties a shortlink or QR entrypoint to its workflow, destination, and analytics metadata, letting Linkbreakers serve dynamic experiences while tracking scans for a workspace.
    pub fn new() -> Link {
        Link {
            created_at: None,
            custom_domain: None,
            custom_domain_id: None,
            directory_id: None,
            entrypoint: None,
            event_count: None,
            fallback_destination: None,
            id: None,
            lead_goal_definition: None,
            lead_target_definition: None,
            metadata: None,
            name: None,
            page_theme: None,
            page_theme_id: None,
            qrcode_design: None,
            qrcode_design_id: None,
            qrcode_pending_update_since: None,
            qrcode_signed_url: None,
            qrcode_template_id: None,
            shortlink: None,
            tags: None,
            updated_at: None,
            workspace_id: None,
        }
    }
}