/*
* 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};
#[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 = "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
}
}