google_analytics_api_ga4/
check_compatibility.rs

1use 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