fastly_api/models/
pop.rs

1/*
2 * Fastly API
3 *
4 * Via the Fastly API you can perform any of the operations that are possible within the management console,  including creating services, domains, and backends, configuring rules or uploading your own application code, as well as account operations such as user administration and billing reports. The API is organized into collections of endpoints that allow manipulation of objects related to Fastly services and accounts. For the most accurate and up-to-date API reference content, visit our [Developer Hub](https://www.fastly.com/documentation/reference/api/) 
5 *
6 */
7
8
9
10
11#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
12pub struct Pop {
13    /// the three-letter code for the [POP](https://www.fastly.com/documentation/learning/concepts/pop/)
14    #[serde(rename = "code")]
15    pub code: String,
16    /// the name of the POP
17    #[serde(rename = "name")]
18    pub name: String,
19    #[serde(rename = "group")]
20    pub group: String,
21    #[serde(rename = "region")]
22    pub region: Region,
23    /// the region used for stats reporting
24    #[serde(rename = "stats_region")]
25    pub stats_region: StatsRegion,
26    /// the region used for billing
27    #[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    /// the name of the [shield code](https://www.fastly.com/documentation/learning/concepts/shielding/#choosing-a-shield-location) if this POP is suitable for shielding
32    #[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/// 
52#[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/// the region used for stats reporting
104#[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/// the region used for billing
132#[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