google_search_console_api/
types.rs

1use serde::{Deserialize, Serialize};
2
3/// https://developers.google.com/webmaster-tools/v1/searchanalytics/query#response
4#[derive(Default, Debug, Serialize, Deserialize, Clone)]
5pub struct DimensionFilterGroup {
6    #[serde(rename = "groupType")]
7    pub group_type: Option<String>,
8    pub filters: Vec<DimensionFilterGroupFilter>,
9}
10
11#[derive(Default, Debug, Serialize, Deserialize, Clone)]
12pub struct DimensionFilterGroupFilter {
13    pub dimension: Option<String>,
14    pub operator: Option<String>,
15    pub expression: Option<String>,
16}
17
18#[derive(Debug, Serialize, Deserialize, Clone)]
19pub enum DIMENSION {
20    // #[serde(rename = "MATCH_TYPE_UNSPECIFIED")]
21    Country(String),
22    #[serde(rename = "device")]
23    Device,
24    #[serde(rename = "page")]
25    Page,
26    #[serde(rename = "query")]
27    Query,
28    #[serde(rename = "searchAppearance")]
29    SearchAppearance,
30}
31
32/// https://developers.google.com/webmaster-tools/v1/sitemaps#resource
33#[derive(Default, Debug, Serialize, Deserialize)]
34pub struct Sitemap {
35    pub path: Option<String>,
36    #[serde(rename = "lastSubmitted")]
37    pub last_submitted: Option<String>,
38    #[serde(rename = "isPending")]
39    pub is_pending: Option<bool>,
40    #[serde(rename = "isSitemapsIndex")]
41    pub is_sitemaps_index: Option<bool>,
42    #[serde(rename = "type")]
43    pub sitemap_type: Option<String>,
44    #[serde(rename = "lastDownloaded")]
45    pub last_downloaded: Option<String>,
46    pub warnings: Option<String>,
47    pub errors: Option<String>,
48    pub contents: Option<Vec<SitemapContent>>,
49}
50
51#[derive(Default, Debug, Serialize, Deserialize)]
52pub struct SitemapContent {
53    #[serde(rename = "type")]
54    pub content_type: Option<String>,
55    pub submitted: Option<String>,
56    pub indexed: Option<String>,
57}