#[derive(Debug, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum Location {
Single(SingleRegion),
Multi(MultiRegion),
Dual(DualRegion),
}
impl Default for Location {
fn default() -> Location {
Location::Single(SingleRegion::NorthAmerica(NALocation::SouthCarolina))
}
}
#[derive(Debug, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum SingleRegion {
NorthAmerica(NALocation),
SouthAmerica(SALocation),
Europe(EuropeLocation),
Asia(AsiaLocation),
Australia(AusLocation),
}
#[allow(clippy::upper_case_acronyms)]
#[derive(Debug, PartialEq, serde::Serialize, serde::Deserialize)]
pub enum NALocation {
#[serde(rename = "NORTHAMERICA-NORTHEAST1")]
Montreal,
#[serde(rename = "US-CENTRAL1")]
Iowa,
#[serde(rename = "US-EAST1")]
SouthCarolina,
#[serde(rename = "US-EAST4")]
NorthernVirginia,
#[serde(rename = "US-WEST1")]
Oregon,
#[serde(rename = "US-WEST2")]
LosAngeles,
}
#[allow(clippy::upper_case_acronyms)]
#[derive(Debug, PartialEq, serde::Serialize, serde::Deserialize)]
pub enum SALocation {
#[serde(rename = "SOUTHAMERICA-EAST1")]
SaoPaulo,
}
#[derive(Debug, PartialEq, serde::Serialize, serde::Deserialize)]
pub enum EuropeLocation {
#[serde(rename = "EUROPE-NORTH1")]
Finland,
#[serde(rename = "EUROPE-WEST1")]
Belgium,
#[serde(rename = "EUROPE-WEST2")]
London,
#[serde(rename = "EUROPE-WEST3")]
Frankfurt,
#[serde(rename = "EUROPE-WEST4")]
Netherlands,
#[serde(rename = "EUROPE-WEST6")]
Zurich,
}
#[derive(Debug, PartialEq, serde::Serialize, serde::Deserialize)]
pub enum AsiaLocation {
#[serde(rename = "ASIA-EAST1")]
Taiwan,
#[serde(rename = "ASIA-EAST2")]
HongKong,
#[serde(rename = "ASIA-NORTHEAST1")]
Tokyo,
#[serde(rename = "ASIA-NORTHEAST2")]
Osaka,
#[serde(rename = "ASIA-SOUTH1")]
Mumbai,
#[serde(rename = "ASIA-SOUTHEAST1")]
Singapore,
}
#[derive(Debug, PartialEq, serde::Serialize, serde::Deserialize)]
pub enum AusLocation {
#[serde(rename = "AUSTRALIA-SOUTHEAST1")]
Sydney,
}
#[derive(Debug, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "UPPERCASE")]
pub enum MultiRegion {
Asia,
Eu,
Us,
}
#[derive(Debug, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "UPPERCASE")]
pub enum DualRegion {
Eur4,
Nam4,
}