use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct LinkedInAdsPlatformData {
#[serde(rename = "costType", skip_serializing_if = "Option::is_none")]
pub cost_type: Option<CostType>,
#[serde(rename = "unitCost", skip_serializing_if = "Option::is_none")]
pub unit_cost: Option<f64>,
#[serde(
rename = "optimizationTargetType",
skip_serializing_if = "Option::is_none"
)]
pub optimization_target_type: Option<String>,
#[serde(rename = "creativeSelection", skip_serializing_if = "Option::is_none")]
pub creative_selection: Option<CreativeSelection>,
#[serde(
rename = "audienceExpansionEnabled",
skip_serializing_if = "Option::is_none"
)]
pub audience_expansion_enabled: Option<bool>,
#[serde(
rename = "offsiteDeliveryEnabled",
skip_serializing_if = "Option::is_none"
)]
pub offsite_delivery_enabled: Option<bool>,
#[serde(
rename = "connectedTelevisionOnly",
skip_serializing_if = "Option::is_none"
)]
pub connected_television_only: Option<bool>,
#[serde(rename = "carousel", skip_serializing_if = "Option::is_none")]
pub carousel: Option<Box<models::LinkedInAdsPlatformDataCarousel>>,
#[serde(rename = "document", skip_serializing_if = "Option::is_none")]
pub document: Option<Box<models::LinkedInAdsPlatformDataDocument>>,
#[serde(rename = "spotlight", skip_serializing_if = "Option::is_none")]
pub spotlight: Option<Box<models::LinkedInAdsPlatformDataSpotlight>>,
#[serde(rename = "follower", skip_serializing_if = "Option::is_none")]
pub follower: Option<Box<models::LinkedInAdsPlatformDataFollower>>,
#[serde(rename = "jobs", skip_serializing_if = "Option::is_none")]
pub jobs: Option<Box<models::LinkedInAdsPlatformDataJobs>>,
#[serde(rename = "textAd", skip_serializing_if = "Option::is_none")]
pub text_ad: Option<Box<models::LinkedInAdsPlatformDataTextAd>>,
#[serde(rename = "conversation", skip_serializing_if = "Option::is_none")]
pub conversation: Option<Box<models::LinkedInAdsPlatformDataConversation>>,
#[serde(rename = "event", skip_serializing_if = "Option::is_none")]
pub event: Option<Box<models::LinkedInAdsPlatformDataEvent>>,
}
impl LinkedInAdsPlatformData {
pub fn new() -> LinkedInAdsPlatformData {
LinkedInAdsPlatformData {
cost_type: None,
unit_cost: None,
optimization_target_type: None,
creative_selection: None,
audience_expansion_enabled: None,
offsite_delivery_enabled: None,
connected_television_only: None,
carousel: None,
document: None,
spotlight: None,
follower: None,
jobs: None,
text_ad: None,
conversation: None,
event: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum CostType {
#[serde(rename = "CPM")]
Cpm,
#[serde(rename = "CPC")]
Cpc,
#[serde(rename = "CPV")]
Cpv,
}
impl Default for CostType {
fn default() -> CostType {
Self::Cpm
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum CreativeSelection {
#[serde(rename = "OPTIMIZED")]
Optimized,
#[serde(rename = "ROUND_ROBIN")]
RoundRobin,
}
impl Default for CreativeSelection {
fn default() -> CreativeSelection {
Self::Optimized
}
}