powerdns-0.4.2: PowerDNS/API/Version.hs
-- |
-- Module: PowerDNS.API.Zones
-- Description: API version endpoint for PowerDNS API
--
-- Datatype for version API endpoint
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE TemplateHaskell #-}
module PowerDNS.API.Version
(
-- * API
VersionsAPI(..)
-- * Data types
, Version(..)
)
where
import Data.Data (Data)
import Control.DeepSeq (NFData)
import Data.Aeson.TH (defaultOptions, fieldLabelModifier, deriveJSON)
import qualified Data.Text as T
import Servant.API
import Servant.API.Generic
import PowerDNS.Internal.Utils (strip)
data VersionsAPI f = VersionsAPI
{ apiListVersions :: f :- Get '[JSON] [Version]
} deriving Generic
data Version = Version
{ version_version :: Int
, version_url :: T.Text
} deriving (Eq, Ord, Show, Generic, NFData, Data)
$(deriveJSON defaultOptions { fieldLabelModifier = strip "version_" } ''Version)