/*
* 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};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct UpdateCampaignAdScheduleRequestScheduleInner {
#[serde(rename = "dayOfWeek")]
pub day_of_week: DayOfWeek,
#[serde(rename = "startHour")]
pub start_hour: i32,
/// Quarter-hours only.
#[serde(rename = "startMinute", skip_serializing_if = "Option::is_none")]
pub start_minute: Option<StartMinute>,
/// 24 means midnight at the end of the day.
#[serde(rename = "endHour")]
pub end_hour: i32,
/// Quarter-hours only. Must be 0 when endHour is 24.
#[serde(rename = "endMinute", skip_serializing_if = "Option::is_none")]
pub end_minute: Option<EndMinute>,
/// Bid adjustment for this window. Null runs it at the campaign bid.
#[serde(
rename = "bidModifier",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub bid_modifier: Option<Option<f64>>,
}
impl UpdateCampaignAdScheduleRequestScheduleInner {
pub fn new(
day_of_week: DayOfWeek,
start_hour: i32,
end_hour: i32,
) -> UpdateCampaignAdScheduleRequestScheduleInner {
UpdateCampaignAdScheduleRequestScheduleInner {
day_of_week,
start_hour,
start_minute: None,
end_hour,
end_minute: None,
bid_modifier: None,
}
}
}
///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum DayOfWeek {
#[serde(rename = "MONDAY")]
Monday,
#[serde(rename = "TUESDAY")]
Tuesday,
#[serde(rename = "WEDNESDAY")]
Wednesday,
#[serde(rename = "THURSDAY")]
Thursday,
#[serde(rename = "FRIDAY")]
Friday,
#[serde(rename = "SATURDAY")]
Saturday,
#[serde(rename = "SUNDAY")]
Sunday,
}
impl Default for DayOfWeek {
fn default() -> DayOfWeek {
Self::Monday
}
}
/// Quarter-hours only.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum StartMinute {
#[serde(rename = "0")]
Variant0,
#[serde(rename = "15")]
Variant15,
#[serde(rename = "30")]
Variant30,
#[serde(rename = "45")]
Variant45,
}
impl Default for StartMinute {
fn default() -> StartMinute {
Self::Variant0
}
}
/// Quarter-hours only. Must be 0 when endHour is 24.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum EndMinute {
#[serde(rename = "0")]
Variant0,
#[serde(rename = "15")]
Variant15,
#[serde(rename = "30")]
Variant30,
#[serde(rename = "45")]
Variant45,
}
impl Default for EndMinute {
fn default() -> EndMinute {
Self::Variant0
}
}