/*
* 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.212.1
* Contact: support@zernio.com
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum CreateAdAudienceRequest {
UploadedOrDerivedAudience(Box<models::UploadedOrDerivedAudience>),
SavedTargetingAudience(Box<models::SavedTargetingAudience>),
}
impl Default for CreateAdAudienceRequest {
fn default() -> Self {
Self::UploadedOrDerivedAudience(Default::default())
}
}
///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "customer_list")]
CustomerList,
#[serde(rename = "company_list")]
CompanyList,
#[serde(rename = "engagement")]
Engagement,
#[serde(rename = "meta_engagement")]
MetaEngagement,
#[serde(rename = "tiktok_engagement")]
TiktokEngagement,
#[serde(rename = "pinterest_engagement")]
PinterestEngagement,
#[serde(rename = "website")]
Website,
#[serde(rename = "website_retargeting")]
WebsiteRetargeting,
#[serde(rename = "lookalike")]
Lookalike,
#[serde(rename = "saved_targeting")]
SavedTargeting,
}
impl Default for Type {
fn default() -> Type {
Self::CustomerList
}
}
/// Required for engagement audiences (LinkedIn only): what members engaged with: a video/leadgen/single-image ad campaign, a Company Page or an Event page.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum SourceType {
#[serde(rename = "VIDEO_ADS")]
VideoAds,
#[serde(rename = "LEAD_GEN_FORMS")]
LeadGenForms,
#[serde(rename = "ORGANIZATION_PAGES")]
OrganizationPages,
#[serde(rename = "EVENT_PAGES")]
EventPages,
#[serde(rename = "SINGLE_IMAGE_ADS")]
SingleImageAds,
}
impl Default for SourceType {
fn default() -> SourceType {
Self::VideoAds
}
}
/// Required for engagement audiences. Rolling window.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum LookbackDays {
#[serde(rename = "30")]
Variant30,
#[serde(rename = "60")]
Variant60,
#[serde(rename = "90")]
Variant90,
#[serde(rename = "180")]
Variant180,
#[serde(rename = "365")]
Variant365,
}
impl Default for LookbackDays {
fn default() -> LookbackDays {
Self::Variant30
}
}
/// Required for meta_engagement audiences (Meta only): what people engaged with. `page` = a Facebook Page, `instagram` = an IG professional account, `video` = a video.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum EngagementSource {
#[serde(rename = "page")]
Page,
#[serde(rename = "instagram")]
Instagram,
#[serde(rename = "video")]
Video,
}
impl Default for EngagementSource {
fn default() -> EngagementSource {
Self::Page
}
}
/// lookalike on TikTok and Google: audience breadth. Rejected on Meta and Pinterest.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Size {
#[serde(rename = "narrow")]
Narrow,
#[serde(rename = "balanced")]
Balanced,
#[serde(rename = "broad")]
Broad,
}
impl Default for Size {
fn default() -> Size {
Self::Narrow
}
}
/// Required for tiktok_engagement: what people engaged with.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Source {
#[serde(rename = "ads")]
Ads,
#[serde(rename = "organic_video")]
OrganicVideo,
#[serde(rename = "live_video")]
LiveVideo,
#[serde(rename = "business_account")]
BusinessAccount,
}
impl Default for Source {
fn default() -> Source {
Self::Ads
}
}
/// tiktok_engagement: type of `identityId`.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum IdentityType {
#[serde(rename = "TT_USER")]
TtUser,
#[serde(rename = "BC_AUTH_TT")]
BcAuthTt,
}
impl Default for IdentityType {
fn default() -> IdentityType {
Self::TtUser
}
}
/// pinterest_engagement: Pinterest's `engager_type`, passed through when set.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum EngagerType {
#[serde(rename = "1")]
Variant1,
#[serde(rename = "2")]
Variant2,
}
impl Default for EngagerType {
fn default() -> EngagerType {
Self::Variant1
}
}
/// pinterest_engagement: limit to one engagement action.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum EngagementType {
#[serde(rename = "click")]
Click,
#[serde(rename = "save")]
Save,
#[serde(rename = "closeup")]
Closeup,
#[serde(rename = "comment")]
Comment,
#[serde(rename = "like")]
Like,
}
impl Default for EngagementType {
fn default() -> EngagementType {
Self::Click
}
}