google_analytics_api_ga4/
run_report.rs1use crate::types::{
2 CohortSpec, DateRange, Dimension, FilterExpression, Metric, MetricAggregation, OrderBy,
3};
4use serde::{Deserialize, Serialize};
5
6#[derive(Default, Debug, Serialize, Deserialize, Clone)]
8#[serde(rename_all = "camelCase")]
9pub struct RunReportRequest {
10 pub property: String,
11 pub dimensions: Vec<Dimension>,
12 pub metrics: Vec<Metric>,
13 pub date_ranges: Vec<DateRange>,
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub dimension_filter: Option<FilterExpression>,
16 #[serde(skip_serializing_if = "Option::is_none")]
17 pub metric_filter: Option<FilterExpression>,
18 #[serde(skip_serializing_if = "Option::is_none")]
19 pub offset: Option<String>,
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub limit: Option<String>,
22 #[serde(skip_serializing_if = "Option::is_none")]
23 pub metric_aggregations: Option<Vec<MetricAggregation>>,
24 #[serde(skip_serializing_if = "Option::is_none")]
25 pub order_bys: Option<Vec<OrderBy>>,
26 #[serde(skip_serializing_if = "Option::is_none")]
27 pub currency_code: Option<String>,
28 #[serde(skip_serializing_if = "Option::is_none")]
29 pub cohort_spec: Option<CohortSpec>,
30 #[serde(skip_serializing_if = "Option::is_none")]
31 pub keep_empty_rows: Option<bool>,
32 #[serde(skip_serializing_if = "Option::is_none")]
33 pub return_property_quota: Option<bool>,
34}