mismi-kernel-0.0.1: src/Mismi/Kernel/Data.hs
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
module Mismi.Kernel.Data (
MismiRegion (..)
, renderMismiRegion
, parseMismiRegion
) where
import P
-- | Mismi's view of available AWS regions.
data MismiRegion =
IrelandRegion -- ^ Europe / eu-west-1
| FrankfurtRegion -- ^ Europe / eu-central-1
| TokyoRegion -- ^ Asia Pacific / ap-northeast-1
| SeoulRegion -- ^ Asia Pacific / ap-northeast-2
| SingaporeRegion -- ^ Asia Pacific / ap-southeast-1
| SydneyRegion -- ^ Asia Pacific / ap-southeast-2
| MumbaiRegion -- ^ Asia Pacific / ap-south-1
| MontrealRegion
| LondonRegion
| BeijingRegion -- ^ China / cn-north-1
| NorthVirginiaRegion -- ^ US / us-east-1
| OhioRegion -- ^ US / us-east-2
| NorthCaliforniaRegion -- ^ US / us-west-1
| OregonRegion -- ^ US / us-west-2
| GovCloudRegion -- ^ AWS GovCloud / us-gov-west-1
| GovCloudFIPSRegion -- ^ AWS GovCloud (FIPS 140-2) S3 Only / fips-us-gov-west-1
| SaoPauloRegion -- ^ South America / sa-east-1
deriving (Eq, Ord, Read, Show, Enum, Bounded)
renderMismiRegion :: MismiRegion -> Text
renderMismiRegion r =
case r of
IrelandRegion ->
"eu-west-1"
FrankfurtRegion ->
"eu-central-1"
TokyoRegion ->
"ap-northeast-1"
SeoulRegion ->
"ap-northeast-2"
SingaporeRegion ->
"ap-southeast-1"
SydneyRegion ->
"ap-southeast-2"
MumbaiRegion ->
"ap-south-1"
BeijingRegion ->
"cn-north-1"
NorthVirginiaRegion ->
"us-east-1"
OhioRegion ->
"us-east-2"
NorthCaliforniaRegion ->
"us-west-1"
OregonRegion ->
"us-west-2"
GovCloudRegion ->
"us-gov-west-1"
GovCloudFIPSRegion ->
"fips-us-gov-west-1"
SaoPauloRegion ->
"sa-east-1"
MontrealRegion ->
"ca-central-1"
LondonRegion ->
"eu-west-2"
parseMismiRegion :: Text -> Maybe MismiRegion
parseMismiRegion t =
case t of
"eu-west-1" ->
Just IrelandRegion
"eu-central-1" ->
Just FrankfurtRegion
"ap-northeast-1" ->
Just TokyoRegion
"ap-northeast-2" ->
Just SeoulRegion
"ap-southeast-1" ->
Just SingaporeRegion
"ap-southeast-2" ->
Just SydneyRegion
"ap-south-1" ->
Just MumbaiRegion
"cn-north-1" ->
Just BeijingRegion
"us-east-1" ->
Just NorthVirginiaRegion
"us-east-2" ->
Just OhioRegion
"us-west-2" ->
Just OregonRegion
"us-west-1" ->
Just NorthCaliforniaRegion
"us-gov-west-1" ->
Just GovCloudRegion
"fips-us-gov-west-1" ->
Just GovCloudFIPSRegion
"sa-east-1" ->
Just SaoPauloRegion
"eu-west-2" ->
Just LondonRegion
"ca-central-1" ->
Just MontrealRegion
_ ->
Nothing