1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use serde::{Deserialize, Serialize};
use crate::types::{CohortSpec, DateRange, Dimension, DimensionOrderBy, FilterExpression, Metric, MetricAggregation};


#[derive(Default, Debug, Serialize, Deserialize)]
pub struct RunReportRequest {
    pub property: String,
    pub dimensions: Vec<Dimension>,
    pub metrics: Vec<Metric>,
    #[serde(rename = "dateRanges")]
    pub date_ranges: Vec<DateRange>,
    #[serde(rename = "dimensionFilter")]
    pub dimension_filter: Option<FilterExpression>,
    #[serde(rename = "metricFilter")]
    pub metric_filter: Option<FilterExpression>,
    pub offset: Option<String>,
    pub limit: Option<String>,
    #[serde(rename = "metricAggregations")]
    pub metric_aggregations: Option<Vec<MetricAggregation>>,
    #[serde(rename = "orderBys")]
    pub order_bys: Option<Vec<DimensionOrderBy>>,
    #[serde(rename = "currencyCode")]
    pub currency_code: Option<String>,
    #[serde(rename = "cohortSpec")]
    pub cohort_spec: Option<CohortSpec>,
    #[serde(rename = "keepEmptyRows")]
    pub keep_empty_rows: Option<bool>,
    #[serde(rename = "returnPropertyQuota")]
    pub return_property_quota: Option<bool>,
}