abstractapi/api/
geolocation.rs1#![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}