abstractapi/api/
geolocation.rs

1#![allow(missing_docs)]
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
6#[serde(rename_all = "camelCase")]
7pub struct Geolocation {
8    #[serde(rename = "ip_address")]
9    pub ip_address: String,
10    pub city: Option<String>,
11    #[serde(rename = "city_geoname_id")]
12    pub city_geoname_id: Option<i64>,
13    pub region: Option<String>,
14    #[serde(rename = "region_iso_code")]
15    pub region_iso_code: Option<String>,
16    #[serde(rename = "region_geoname_id")]
17    pub region_geoname_id: Option<i64>,
18    #[serde(rename = "postal_code")]
19    pub postal_code: Option<String>,
20    pub country: String,
21    #[serde(rename = "country_code")]
22    pub country_code: String,
23    #[serde(rename = "country_geoname_id")]
24    pub country_geoname_id: i64,
25    #[serde(rename = "country_is_eu")]
26    pub country_is_eu: bool,
27    pub continent: String,
28    #[serde(rename = "continent_code")]
29    pub continent_code: String,
30    #[serde(rename = "continent_geoname_id")]
31    pub continent_geoname_id: i64,
32    pub longitude: f64,
33    pub latitude: f64,
34    pub security: Security,
35    pub timezone: Timezone,
36    pub flag: Option<Flag>,
37    pub currency: Option<Currency>,
38    pub connection: Connection,
39}
40
41#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
42#[serde(rename_all = "camelCase")]
43pub struct Security {
44    #[serde(rename = "is_vpn")]
45    pub is_vpn: bool,
46}
47
48#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
49#[serde(rename_all = "camelCase")]
50pub struct Timezone {
51    pub name: String,
52    pub abbreviation: String,
53    #[serde(rename = "gmt_offset")]
54    pub gmt_offset: i64,
55    #[serde(rename = "current_time")]
56    pub current_time: String,
57    #[serde(rename = "is_dst")]
58    pub is_dst: bool,
59}
60
61#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
62#[serde(rename_all = "camelCase")]
63pub struct Flag {
64    pub emoji: String,
65    pub unicode: String,
66    pub png: String,
67    pub svg: String,
68}
69
70#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
71#[serde(rename_all = "camelCase")]
72pub struct Currency {
73    #[serde(rename = "currency_name")]
74    pub currency_name: String,
75    #[serde(rename = "currency_code")]
76    pub currency_code: String,
77}
78
79#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
80#[serde(rename_all = "camelCase")]
81pub struct Connection {
82    #[serde(rename = "autonomous_system_number")]
83    pub autonomous_system_number: i64,
84    #[serde(rename = "autonomous_system_organization")]
85    pub autonomous_system_organization: String,
86    #[serde(rename = "connection_type")]
87    pub connection_type: String,
88    #[serde(rename = "isp_name")]
89    pub isp_name: String,
90    #[serde(rename = "organization_name")]
91    pub organization_name: Option<String>,
92}