late 0.0.856

API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
Documentation
/*
 * Zernio API
 *
 * API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api  Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal.  Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
 *
 * The version of the OpenAPI document: 1.0.4
 * Contact: support@zernio.com
 * Generated by: https://openapi-generator.tech
 */

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

/// SlackPlatformData : Slack message settings. Posts mrkdwn text (up to 40,000 chars; Slack truncates beyond that) to the channel fixed by the connected account, with up to 10 media files per post uploaded via Slack's file API (the text becomes the caption). The target channel is chosen at connect time — one connected account per channel — so channelId is NOT accepted here (a 400 is returned); connect the desired channel via /v1/connect/slack and target its accountId. Messages over 4,000 characters cannot be edited later (Slack's edit limit is stricter than its post limit).
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct SlackPlatformData {
    /// Parent message ts to post this message as a thread reply (e.g. \"1503435956.000247\").
    #[serde(rename = "threadTs", skip_serializing_if = "Option::is_none")]
    pub thread_ts: Option<String>,
    /// Expand links in the message into preview cards. Default true.
    #[serde(rename = "unfurlLinks", skip_serializing_if = "Option::is_none")]
    pub unfurl_links: Option<bool>,
    /// Expand media links into inline previews. Default true.
    #[serde(rename = "unfurlMedia", skip_serializing_if = "Option::is_none")]
    pub unfurl_media: Option<bool>,
    /// Override the bot display name for this message only (requires no setup; shown with an APP badge). Does not change the app identity in the sidebar.
    #[serde(rename = "username", skip_serializing_if = "Option::is_none")]
    pub username: Option<String>,
    /// Override the bot avatar image URL for this message only.
    #[serde(rename = "iconUrl", skip_serializing_if = "Option::is_none")]
    pub icon_url: Option<String>,
}

impl SlackPlatformData {
    /// Slack message settings. Posts mrkdwn text (up to 40,000 chars; Slack truncates beyond that) to the channel fixed by the connected account, with up to 10 media files per post uploaded via Slack's file API (the text becomes the caption). The target channel is chosen at connect time — one connected account per channel — so channelId is NOT accepted here (a 400 is returned); connect the desired channel via /v1/connect/slack and target its accountId. Messages over 4,000 characters cannot be edited later (Slack's edit limit is stricter than its post limit).
    pub fn new() -> SlackPlatformData {
        SlackPlatformData {
            thread_ts: None,
            unfurl_links: None,
            unfurl_media: None,
            username: None,
            icon_url: None,
        }
    }
}