powerdns-0.2.0: PowerDNS/API.hs
-- |
-- Module: PowerDNS.API
-- Description: Servant based wrapper for PowerDNS.
--
-- This module exports a complete servant API description of the PowerDNS. May be useful to some.
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE DeriveGeneric #-}
module PowerDNS.API
( API
, api
, PowerDNS(..)
, module PowerDNS.API.Version
, module PowerDNS.API.Zones
, module PowerDNS.API.Servers
, module PowerDNS.API.Cryptokeys
, module PowerDNS.API.Metadata
, module PowerDNS.API.TSIGKeys
)
where
import GHC.Generics (Generic)
import Data.Proxy (Proxy(..))
import Servant.API
import Servant.API.Generic ((:-), ToServantApi)
import PowerDNS.API.Version
import PowerDNS.API.Zones
import PowerDNS.API.Servers
import PowerDNS.API.Cryptokeys
import PowerDNS.API.Metadata
import PowerDNS.API.TSIGKeys
api :: Proxy API
api = Proxy
type API = ToServantApi PowerDNS
data PowerDNS f = PowerDNS
{ versions :: f :- "api" :> ToServantApi VersionsAPI
, servers :: f :- "api" :> "v1" :> ToServantApi ServersAPI
, zones :: f :- "api" :> "v1" :> ToServantApi ZonesAPI
, cryptokeys :: f :- "api" :> "v1" :> ToServantApi CryptokeysAPI
, metadata :: f :- "api" :> "v1" :> ToServantApi MetadataAPI
, tsigkeys :: f :- "api" :> "v1" :> ToServantApi TSIGKeysAPI
} deriving Generic