DOH-0.1.0.0: src/Network/DigitalOcean/Services/Region.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE DeriveGeneric #-}
module Network.DigitalOcean.Services.Region where
-----------------------------------------------------------------
import Data.Aeson
import Data.Aeson.Casing
import GHC.Generics
-----------------------------------------------------------------
import Network.DigitalOcean.Types
-----------------------------------------------------------------
data Region = Region
{ regionSlug :: String
, regionName :: String
, regionSizes :: [String] -- TODO: Make a type
, regionAvailable :: Bool
, regionFeatures :: [String] -- TODO: Make a type
} deriving (Show, Generic)
instance FromJSON (Response [Region]) where
parseJSON (Object v) =
fmap Response $ parseJSON =<< (v .: "regions")
instance FromJSON Region where
parseJSON = genericParseJSON $ aesonPrefix snakeCase
instance ToJSON Region where
toJSON = genericToJSON $ aesonPrefix snakeCase