google_analytics_api_ga4/
check_compatibility.rs1use serde::{Deserialize, Serialize};
2use crate::types::{Dimension, DimensionMetadata, FilterExpression, Metric, MetricMetadata};
3
4
5#[derive(Default, Debug, Serialize, Deserialize)]
6pub struct CheckCompatibilityRequest {
7 dimensions: Option<Vec<Dimension>>,
8 metrics: Option<Vec<Metric>>,
9 #[serde(rename = "dimensionFilter")]
10 dimension_filter: Option<FilterExpression>,
11 #[serde(rename = "metricFilter")]
12 metric_filter: Option<FilterExpression>,
13 #[serde(rename = "compatibilityFilter")]
14 compatibility_filter: Option<Compatibility>,
15}
16#[derive(Default, Debug, Serialize, Deserialize)]
17pub struct CheckCompatibilityResponse {
18 #[serde(rename = "dimensionCompatibilities")]
19 dimension_compatibilities: Option<Vec<DimensionCompatibility>>,
20 #[serde(rename = "metricCompatibilities")]
21 metric_compatibilities: Option<Vec<MetricCompatibility>>,
22}
23
24#[derive(Default, Debug, Serialize, Deserialize)]
25pub struct ResponseCheckCompatibility {
26 #[serde(rename = "dimensionCompatibilities")]
27 dimension_compatibilities: Option<Vec<DimensionCompatibility>>,
28 #[serde(rename = "metricCompatibilities")]
29 metric_compatibilities: Option<Vec<MetricCompatibility>>,
30}
31
32#[derive(Default, Debug, Serialize, Deserialize)]
33pub struct DimensionCompatibility {
34 #[serde(rename = "dimensionMetadata")]
35 dimension_metadata: Option<DimensionMetadata>,
36 compatibility: Option<Compatibility>,
37}
38
39#[derive(Debug, Serialize, Deserialize)]
40enum Compatibility {
41 #[serde(rename = "COMPATIBILITY_UNSPECIFIED")]
42 CompatibilityUnspecified,
43 #[serde(rename = "COMPATIBLE")]
44 Compatible,
45 #[serde(rename = "INCOMPATIBLE")]
46 Incompatible,
47}
48
49#[derive(Default, Debug, Serialize, Deserialize)]
50pub struct MetricCompatibility {
51 #[serde(rename = "metric_metadata")]
52 metric_metadata: Option<MetricMetadata>,
53 compatibility: Option<String>,
54
55}
56