late/models/
create_ad_insights_report_request.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct CreateAdInsightsReportRequest {
16 #[serde(rename = "accountId")]
18 pub account_id: String,
19 #[serde(rename = "objectId")]
21 pub object_id: String,
22 #[serde(rename = "level", skip_serializing_if = "Option::is_none")]
23 pub level: Option<Level>,
24 #[serde(rename = "fields", skip_serializing_if = "Option::is_none")]
26 pub fields: Option<String>,
27 #[serde(rename = "breakdowns", skip_serializing_if = "Option::is_none")]
29 pub breakdowns: Option<String>,
30 #[serde(rename = "actionBreakdowns", skip_serializing_if = "Option::is_none")]
32 pub action_breakdowns: Option<String>,
33 #[serde(
35 rename = "actionAttributionWindows",
36 skip_serializing_if = "Option::is_none"
37 )]
38 pub action_attribution_windows: Option<Vec<String>>,
39 #[serde(rename = "actionReportTime", skip_serializing_if = "Option::is_none")]
41 pub action_report_time: Option<String>,
42 #[serde(
44 rename = "useUnifiedAttributionSetting",
45 skip_serializing_if = "Option::is_none"
46 )]
47 pub use_unified_attribution_setting: Option<bool>,
48 #[serde(rename = "filtering", skip_serializing_if = "Option::is_none")]
50 pub filtering: Option<Vec<models::CreateAdInsightsReportRequestFilteringInner>>,
51 #[serde(rename = "datePreset", skip_serializing_if = "Option::is_none")]
53 pub date_preset: Option<String>,
54 #[serde(rename = "fromDate", skip_serializing_if = "Option::is_none")]
55 pub from_date: Option<String>,
56 #[serde(rename = "toDate", skip_serializing_if = "Option::is_none")]
57 pub to_date: Option<String>,
58 #[serde(rename = "timeIncrement", skip_serializing_if = "Option::is_none")]
59 pub time_increment: Option<Box<models::CreateAdInsightsReportRequestTimeIncrement>>,
60}
61
62impl CreateAdInsightsReportRequest {
63 pub fn new(account_id: String, object_id: String) -> CreateAdInsightsReportRequest {
64 CreateAdInsightsReportRequest {
65 account_id,
66 object_id,
67 level: None,
68 fields: None,
69 breakdowns: None,
70 action_breakdowns: None,
71 action_attribution_windows: None,
72 action_report_time: None,
73 use_unified_attribution_setting: None,
74 filtering: None,
75 date_preset: None,
76 from_date: None,
77 to_date: None,
78 time_increment: None,
79 }
80 }
81}
82#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
84pub enum Level {
85 #[serde(rename = "ad")]
86 Ad,
87 #[serde(rename = "adset")]
88 Adset,
89 #[serde(rename = "campaign")]
90 Campaign,
91 #[serde(rename = "account")]
92 Account,
93}
94
95impl Default for Level {
96 fn default() -> Level {
97 Self::Ad
98 }
99}