Skip to main content

google_analytics_api_ga4/
check_compatibility.rs

1use crate::types::{Dimension, DimensionMetadata, FilterExpression, Metric, MetricMetadata};
2use serde::{Deserialize, Serialize};
3
4/// <https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/checkCompatibility>
5#[derive(Default, Debug, Serialize, Deserialize, Clone)]
6#[serde(rename_all = "camelCase")]
7pub struct CheckCompatibilityRequest {
8    #[serde(skip_serializing_if = "Option::is_none")]
9    pub dimensions: Option<Vec<Dimension>>,
10    #[serde(skip_serializing_if = "Option::is_none")]
11    pub metrics: Option<Vec<Metric>>,
12    #[serde(skip_serializing_if = "Option::is_none")]
13    pub dimension_filter: Option<FilterExpression>,
14    #[serde(skip_serializing_if = "Option::is_none")]
15    pub metric_filter: Option<FilterExpression>,
16    #[serde(skip_serializing_if = "Option::is_none")]
17    pub compatibility_filter: Option<Compatibility>,
18}
19
20#[derive(Default, Debug, Serialize, Deserialize, Clone)]
21#[serde(rename_all = "camelCase")]
22pub struct CheckCompatibilityResponse {
23    #[serde(skip_serializing_if = "Option::is_none")]
24    pub dimension_compatibilities: Option<Vec<DimensionCompatibility>>,
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub metric_compatibilities: Option<Vec<MetricCompatibility>>,
27}
28
29#[derive(Default, Debug, Serialize, Deserialize, Clone)]
30#[serde(rename_all = "camelCase")]
31pub struct DimensionCompatibility {
32    #[serde(skip_serializing_if = "Option::is_none")]
33    pub dimension_metadata: Option<DimensionMetadata>,
34    #[serde(skip_serializing_if = "Option::is_none")]
35    pub compatibility: Option<Compatibility>,
36}
37
38#[derive(Default, Debug, Serialize, Deserialize, Clone)]
39#[serde(rename_all = "camelCase")]
40pub struct MetricCompatibility {
41    #[serde(skip_serializing_if = "Option::is_none")]
42    pub metric_metadata: Option<MetricMetadata>,
43    #[serde(skip_serializing_if = "Option::is_none")]
44    pub compatibility: Option<Compatibility>,
45}
46
47/// <https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/Compatibility>
48#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
49#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
50pub enum Compatibility {
51    CompatibilityUnspecified,
52    Compatible,
53    Incompatible,
54}