{-# 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