{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TypeOperators #-}
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 Data.Proxy (Proxy(..))
import GHC.Generics (Generic)
import Servant.API
import PowerDNS.API.Cryptokeys
import PowerDNS.API.Metadata
import PowerDNS.API.Servers
import PowerDNS.API.TSIGKeys
import PowerDNS.API.Version
import PowerDNS.API.Zones
api :: Proxy API
api :: Proxy API
api = Proxy
((("api" :> Verb 'GET 200 '[JSON] [Version])
:<|> (("api"
:> ("v1"
:> ((("servers" :> Get '[JSON] [Server])
:<|> ("servers"
:> (Capture "server_id" Text :> Get '[JSON] Server)))
:<|> (("servers"
:> (Capture "server_id" Text
:> ("search-data"
:> (QueryParamReq "q" Text
:> (QueryParamReq "max" Integer
:> (QueryParam "object_type" ObjectType
:> Get '[JSON] [SearchResult]))))))
:<|> (("servers"
:> (Capture "server_id" Text
:> (QueryParamReq "domain" Text
:> Put '[JSON] CacheFlushResult)))
:<|> ("servers"
:> (Capture "server_id" Text
:> ("statistics"
:> (QueryParam "statistic" Text
:> (QueryParam "includerings" Bool
:> Get '[JSON] [AnyStatisticItem]))))))))))
:<|> ("api"
:> ("v1"
:> (((("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (QueryParam "zone" Text
:> (QueryParam "dnssec" Bool :> Get '[JSON] [Zone])))))
:<|> ("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (QueryParam "rrset" Bool
:> (ReqBody '[JSON] Zone
:> PostCreated '[JSON] Zone))))))
:<|> (("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text
:> (QueryParam "rrsets" Bool :> Get '[JSON] Zone)))))
:<|> (("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text :> DeleteNoContent))))
:<|> ("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text
:> (ReqBody '[JSON] RRSets
:> PatchNoContent))))))))
:<|> ((("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text
:> (ReqBody '[JSON] Zone :> PutNoContent)))))
:<|> ("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text
:> ("axfr-retrieve" :> Put '[JSON] Result))))))
:<|> (("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text
:> ("notify" :> Put '[JSON] Result)))))
:<|> (("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text
:> ("export" :> Get '[JSON] Result)))))
:<|> ("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text
:> ("rectify"
:> Put '[JSON] Result)))))))))))))
:<|> (("api"
:> ("v1"
:> ((("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text
:> ("cryptokeys" :> Get '[JSON] [Cryptokey])))))
:<|> ("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text
:> ("cryptokeys"
:> (ReqBody '[JSON] Cryptokey
:> PostCreated '[JSON] Cryptokey)))))))
:<|> (("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text
:> ("cryptokeys"
:> (Capture "cryptokey_id" Text
:> Get '[JSON] Cryptokey))))))
:<|> (("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text
:> ("cryptokeys"
:> (Capture "cryptokey_id" Text
:> (ReqBody '[JSON] Cryptokey
:> PutNoContent)))))))
:<|> ("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text
:> ("cryptokeys"
:> (Capture "cryptokey_id" Text
:> DeleteNoContent)))))))))))
:<|> (("api"
:> ("v1"
:> ((("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text
:> ("metadata" :> Get '[JSON] [Metadata])))))
:<|> ("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text
:> ("metadata"
:> (ReqBody '[JSON] Metadata :> PostNoContent)))))))
:<|> (("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text
:> ("metadata"
:> (Capture "kind" Text :> Get '[JSON] Metadata))))))
:<|> (("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text
:> ("metadata"
:> (Capture "kind" Text
:> (ReqBody '[JSON] Metadata
:> Put '[JSON] Metadata)))))))
:<|> ("servers"
:> (Capture "server_id" Text
:> ("zones"
:> (Capture "zone_id" Text
:> ("metadata"
:> (Capture "kind" Text
:> DeleteNoContent)))))))))))
:<|> ("api"
:> ("v1"
:> ((("servers"
:> (Capture "server_id" Text
:> ("tsigkeys" :> Get '[JSON] [TSIGKey])))
:<|> ("servers"
:> (Capture "server_id" Text
:> ("tsigkeys"
:> (ReqBody '[JSON] TSIGKey
:> PostCreated '[JSON] TSIGKey)))))
:<|> (("servers"
:> (Capture "server_id" Text
:> ("tsigkeys"
:> (Capture "tsigkey_id" Text :> Get '[JSON] TSIGKey))))
:<|> (("servers"
:> (Capture "server_id" Text
:> ("tsigkeys"
:> (Capture "tsigkey_id" Text
:> (ReqBody '[JSON] TSIGKey
:> Put '[JSON] TSIGKey)))))
:<|> ("servers"
:> (Capture "server_id" Text
:> ("tsigkeys"
:> (Capture "tsigkey_id" Text
:> DeleteNoContent))))))))))))
Proxy API
forall {k} (t :: k). Proxy t
Proxy
type API = ToServantApi PowerDNS
data PowerDNS f = PowerDNS
{ forall f. PowerDNS f -> f :- ("api" :> ToServantApi VersionsAPI)
versions :: f :- "api" :> ToServantApi VersionsAPI
, forall f.
PowerDNS f -> f :- ("api" :> ("v1" :> ToServantApi ServersAPI))
servers :: f :- "api" :> "v1" :> ToServantApi ServersAPI
, forall f.
PowerDNS f -> f :- ("api" :> ("v1" :> ToServantApi ZonesAPI))
zones :: f :- "api" :> "v1" :> ToServantApi ZonesAPI
, forall f.
PowerDNS f -> f :- ("api" :> ("v1" :> ToServantApi CryptokeysAPI))
cryptokeys :: f :- "api" :> "v1" :> ToServantApi CryptokeysAPI
, forall f.
PowerDNS f -> f :- ("api" :> ("v1" :> ToServantApi MetadataAPI))
metadata :: f :- "api" :> "v1" :> ToServantApi MetadataAPI
, forall f.
PowerDNS f -> f :- ("api" :> ("v1" :> ToServantApi TSIGKeysAPI))
tsigkeys :: f :- "api" :> "v1" :> ToServantApi TSIGKeysAPI
} deriving (forall x. PowerDNS f -> Rep (PowerDNS f) x)
-> (forall x. Rep (PowerDNS f) x -> PowerDNS f)
-> Generic (PowerDNS f)
forall x. Rep (PowerDNS f) x -> PowerDNS f
forall x. PowerDNS f -> Rep (PowerDNS f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall f x. Rep (PowerDNS f) x -> PowerDNS f
forall f x. PowerDNS f -> Rep (PowerDNS f) x
$cfrom :: forall f x. PowerDNS f -> Rep (PowerDNS f) x
from :: forall x. PowerDNS f -> Rep (PowerDNS f) x
$cto :: forall f x. Rep (PowerDNS f) x -> PowerDNS f
to :: forall x. Rep (PowerDNS f) x -> PowerDNS f
Generic