1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
12pub struct Pop {
13 #[serde(rename = "code")]
15 pub code: String,
16 #[serde(rename = "name")]
18 pub name: String,
19 #[serde(rename = "group")]
20 pub group: String,
21 #[serde(rename = "region")]
22 pub region: Region,
23 #[serde(rename = "stats_region")]
25 pub stats_region: StatsRegion,
26 #[serde(rename = "billing_region")]
28 pub billing_region: BillingRegion,
29 #[serde(rename = "coordinates", skip_serializing_if = "Option::is_none")]
30 pub coordinates: Option<Box<crate::models::PopCoordinates>>,
31 #[serde(rename = "shield", skip_serializing_if = "Option::is_none")]
33 pub shield: Option<String>,
34}
35
36impl Pop {
37 pub fn new(code: String, name: String, group: String, region: Region, stats_region: StatsRegion, billing_region: BillingRegion) -> Pop {
38 Pop {
39 code,
40 name,
41 group,
42 region,
43 stats_region,
44 billing_region,
45 coordinates: None,
46 shield: None,
47 }
48 }
49}
50
51#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
53pub enum Region {
54 #[serde(rename = "APAC")]
55 APAC,
56 #[serde(rename = "Asia")]
57 Asia,
58 #[serde(rename = "AF-West")]
59 AFWest,
60 #[serde(rename = "EU-Central")]
61 EUCentral,
62 #[serde(rename = "EU-East")]
63 EUEast,
64 #[serde(rename = "EU-West")]
65 EUWest,
66 #[serde(rename = "MX-North")]
67 MXNorth,
68 #[serde(rename = "MX-Central")]
69 MXCentral,
70 #[serde(rename = "MX-South")]
71 MXSouth,
72 #[serde(rename = "Middle-East")]
73 MiddleEast,
74 #[serde(rename = "North-America")]
75 NorthAmerica,
76 #[serde(rename = "SA-South")]
77 SASouth,
78 #[serde(rename = "SA-East")]
79 SAEast,
80 #[serde(rename = "SA-West")]
81 SAWest,
82 #[serde(rename = "SA-North")]
83 SANorth,
84 #[serde(rename = "South-Africa")]
85 SouthAfrica,
86 #[serde(rename = "South-America")]
87 SouthAmerica,
88 #[serde(rename = "US-Central")]
89 USCentral,
90 #[serde(rename = "US-East")]
91 USEast,
92 #[serde(rename = "US-West")]
93 USWest,
94 #[serde(rename = "Asia-South")]
95 AsiaSouth,
96}
97
98impl Default for Region {
99 fn default() -> Region {
100 Self::APAC
101 }
102}
103#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
105pub enum StatsRegion {
106 #[serde(rename = "southamerica_std")]
107 SouthamericaStd,
108 #[serde(rename = "africa_std")]
109 AfricaStd,
110 #[serde(rename = "anzac")]
111 Anzac,
112 #[serde(rename = "asia")]
113 Asia,
114 #[serde(rename = "europe")]
115 Europe,
116 #[serde(rename = "usa")]
117 Usa,
118 #[serde(rename = "asia_india")]
119 AsiaIndia,
120 #[serde(rename = "asia_southkorea")]
121 AsiaSouthkorea,
122 #[serde(rename = "mexico")]
123 Mexico,
124}
125
126impl Default for StatsRegion {
127 fn default() -> StatsRegion {
128 Self::SouthamericaStd
129 }
130}
131#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
133pub enum BillingRegion {
134 #[serde(rename = "Africa")]
135 Africa,
136 #[serde(rename = "Australia")]
137 Australia,
138 #[serde(rename = "Asia")]
139 Asia,
140 #[serde(rename = "Europe")]
141 Europe,
142 #[serde(rename = "India")]
143 India,
144 #[serde(rename = "Mexico")]
145 Mexico,
146 #[serde(rename = "North America")]
147 NorthAmerica,
148 #[serde(rename = "South Korea")]
149 SouthKorea,
150 #[serde(rename = "South America")]
151 SouthAmerica,
152}
153
154impl Default for BillingRegion {
155 fn default() -> BillingRegion {
156 Self::Africa
157 }
158}
159