/*
* 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). Request ids: responses carry an X-Request-Id header with the id we log the request under. Quote it when reporting a problem. A valid x-request-id you send is reused as that id.
*
* The version of the OpenAPI document: 1.104.0
* Contact: support@zernio.com
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
/// RedditPlatformData : Posts are either link (with URL/media), native video (via nativeVideo), or self (text-only). Use forceSelf to override. Subreddit defaults to the account's configured one. Some subreddits require a flair.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct RedditPlatformData {
/// Target subreddit name (without \"r/\" prefix). Overrides the default. Use GET /v1/accounts/{id}/reddit-subreddits to list options.
#[serde(rename = "subreddit", skip_serializing_if = "Option::is_none")]
pub subreddit: Option<String>,
/// Post title. Defaults to the first line of content, truncated to 300 characters.
#[serde(rename = "title", skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
/// URL for link posts. If provided (and forceSelf is not true), creates a link post instead of a text post.
#[serde(rename = "url", skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
/// When true, creates a text-only self post and skips native media uploads, even when media is provided. For native video with body text, omit forceSelf and supply content plus a video mediaItem.
#[serde(rename = "forceSelf", skip_serializing_if = "Option::is_none")]
pub force_self: Option<bool>,
/// Flair ID for the post. Required by some subreddits. Use GET /v1/accounts/{id}/reddit-flairs?subreddit=name to list flairs.
#[serde(rename = "flairId", skip_serializing_if = "Option::is_none")]
pub flair_id: Option<String>,
/// Custom flair text, for subreddits that allow free-text flair. Ignored when flairId is provided (flairId wins).
#[serde(rename = "flairText", skip_serializing_if = "Option::is_none")]
pub flair_text: Option<String>,
/// Mark the post as NSFW (Not Safe For Work / over 18).
#[serde(rename = "nsfw", skip_serializing_if = "Option::is_none")]
pub nsfw: Option<bool>,
/// Mark the post as a spoiler. The subreddit must have spoiler tagging enabled for this to take effect.
#[serde(rename = "spoiler", skip_serializing_if = "Option::is_none")]
pub spoiler: Option<bool>,
/// Whether to receive inbox replies for comments on this post. Set to false to opt out.
#[serde(rename = "sendreplies", skip_serializing_if = "Option::is_none")]
pub sendreplies: Option<bool>,
/// Controls Reddit's native video upload flow. When true (default for video mediaItems), the video is uploaded to Reddit's CDN and submitted with kind=video so it renders as an embedded Reddit video player. Reddit transcodes server-side (1080p/30fps cap). Set to false to explicitly publish an external link instead. The post content (or Reddit customContent override) is included as Markdown body text on the native video. When body text is present, upload failures or subreddit video restrictions fail the post without falling back to a link. Automatic link fallback applies only without body text.
#[serde(rename = "nativeVideo", skip_serializing_if = "Option::is_none")]
pub native_video: Option<bool>,
/// When true (and nativeVideo is active), submits the video as a silent videogif (kind=videogif). Use for short looping clips without audio.
#[serde(rename = "videogif", skip_serializing_if = "Option::is_none")]
pub videogif: Option<bool>,
/// Optional poster/thumbnail image URL for native video posts. If omitted, the first frame of the video is extracted and used automatically.
#[serde(rename = "videoPosterUrl", skip_serializing_if = "Option::is_none")]
pub video_poster_url: Option<String>,
}
impl RedditPlatformData {
/// Posts are either link (with URL/media), native video (via nativeVideo), or self (text-only). Use forceSelf to override. Subreddit defaults to the account's configured one. Some subreddits require a flair.
pub fn new() -> RedditPlatformData {
RedditPlatformData {
subreddit: None,
title: None,
url: None,
force_self: None,
flair_id: None,
flair_text: None,
nsfw: None,
spoiler: None,
sendreplies: None,
native_video: None,
videogif: None,
video_poster_url: None,
}
}
}