packages feed

powerdns 0.4.3 → 0.4.4

raw patch · 8 files changed

+91/−60 lines, 8 filesdep ~basedep ~bytestringdep ~containers

Dependency ranges changed: base, bytestring, containers, deepseq, time

Files

CHANGELOG.md view
@@ -54,3 +54,4 @@  * Expose Result constructor * Relax various constraints+* Add Read instances to various data types
PowerDNS/API/Cryptokeys.hs view
@@ -33,21 +33,26 @@ import           PowerDNS.Internal.Utils (Empty(..), strip)  data CryptokeysAPI f = CryptokeysAPI-    { apiListCryptokeys :: f  :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "cryptokeys"+    { apiListCryptokeys :: f  :- Summary "List cryptokeys"+                              :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "cryptokeys"                               :> Get '[JSON] [Cryptokey] -    , apiCreateCryptokey :: f :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "cryptokeys"+    , apiCreateCryptokey :: f :- Summary "Create cryptokey"+                              :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "cryptokeys"                               :> ReqBody '[JSON] Cryptokey                               :> PostCreated '[JSON] Cryptokey -    , apiGetCryptokey :: f    :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "cryptokeys" :> Capture "cryptokey_id" T.Text+    , apiGetCryptokey :: f    :- Summary "Get cryptokey"+                              :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "cryptokeys" :> Capture "cryptokey_id" T.Text                               :> Get '[JSON] Cryptokey -    , apiUpdateCryptokey :: f :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "cryptokeys" :> Capture "cryptokey_id" T.Text+    , apiUpdateCryptokey :: f :- Summary "Update cryptokey"+                              :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "cryptokeys" :> Capture "cryptokey_id" T.Text                               :> ReqBody '[JSON] Cryptokey                               :> PutNoContent -    , apiDeleteCryptokey :: f :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "cryptokeys" :> Capture "cryptokey_id" T.Text+    , apiDeleteCryptokey :: f :- Summary "Delete cryptokey"+                              :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "cryptokeys" :> Capture "cryptokey_id" T.Text                               :> DeleteNoContent      } deriving Generic@@ -65,6 +70,6 @@     , ck_privatekey :: Maybe T.Text     , ck_algorithm :: Maybe T.Text     , ck_bits :: Maybe Integer-    } deriving (Eq, Ord, Show, Generic, NFData, Data, Empty)+    } deriving (Eq, Ord, Read, Show, Generic, NFData, Data, Empty)  $(deriveJSON defaultOptions { fieldLabelModifier = strip "ck_"} ''Cryptokey)
PowerDNS/API/Metadata.hs view
@@ -33,27 +33,32 @@ import           PowerDNS.Internal.Utils (strip)  data MetadataAPI f = MetadataAPI-  { apiListMetadata   :: f :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "metadata"+  { apiListMetadata   :: f :- Summary "List metadata"+                           :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "metadata"                            :> Get '[JSON] [Metadata] -  , apiCreateMetadata :: f :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "metadata"+  , apiCreateMetadata :: f :- Summary "Create metadata"+                           :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "metadata"                            :> ReqBody '[JSON] Metadata                            :> PostNoContent -  , apiGetMetadata    :: f :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "metadata" :> Capture "kind" T.Text+  , apiGetMetadata    :: f :- Summary "Get metadata"+                           :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "metadata" :> Capture "kind" T.Text                            :> Get '[JSON] Metadata -  , apiUpdateMetadata    :: f :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "metadata" :> Capture "kind" T.Text+  , apiUpdateMetadata    :: f :- Summary "Update metadata"+                           :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "metadata" :> Capture "kind" T.Text                            :> ReqBody '[JSON] Metadata                            :> Put '[JSON] Metadata -  , apiDeleteMetadata    :: f :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "metadata" :> Capture "kind" T.Text+  , apiDeleteMetadata    :: f :- Summary "Delete metadata"+                           :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "metadata" :> Capture "kind" T.Text                            :> DeleteNoContent   } deriving Generic  data Metadata = Metadata   { md_kind :: T.Text   , md_metadata :: [T.Text]-  } deriving (Eq, Ord, Show, Generic, NFData, Data)+  } deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  $(deriveJSON defaultOptions { fieldLabelModifier = strip "md_" } ''Metadata)
PowerDNS/API/Servers.hs view
@@ -60,7 +60,7 @@   , server_url :: Maybe T.Text   , server_config_url :: Maybe T.Text   , server_zones_url :: Maybe T.Text-  } deriving (Eq, Ord, Show, Generic, NFData, Data, Empty)+  } deriving (Eq, Ord, Read, Show, Generic, NFData, Data, Empty)  $(deriveJSON defaultOptions { fieldLabelModifier = strip "server_" } ''Server) @@ -70,7 +70,7 @@                 | TyZone                 | TyRecord                 | TyComment-                deriving (Eq, Ord, Show, Generic, NFData, Data)+                deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  $(deriveJSON defaultOptions { constructorTagModifier = map1 toLower . strip "Ty"                             , allNullaryToStringTag = True } ''ObjectType)@@ -99,7 +99,7 @@   , sr_zone :: T.Text   , sr_type :: T.Text   , sr_ttl :: Integer-  } deriving (Eq, Ord, Show, Generic, NFData, Data)+  } deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  $(deriveJSON defaultOptions { fieldLabelModifier = strip "sr_" } ''SearchResult) @@ -108,7 +108,7 @@ data CacheFlushResult = CacheFlushResult   { cfr_count :: Integer   , cfr_result :: T.Text-  } deriving (Eq, Ord, Show, Generic, NFData, Data)+  } deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  $(deriveJSON defaultOptions { fieldLabelModifier = strip "cfr_" } ''CacheFlushResult) @@ -117,7 +117,7 @@ data SimpleStatisticItem = SimpleStatisticItem   { ssi_name :: T.Text   , ssi_value :: T.Text-  } deriving (Eq, Ord, Show, Generic, NFData, Data)+  } deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  $(deriveJSON defaultOptions { fieldLabelModifier = strip "ssi_" } ''SimpleStatisticItem) @@ -126,7 +126,7 @@ data AnyStatisticItem = AnyStatisticItem StatisticItem                        | AnyMapStatisticItem MapStatisticItem                        | AnyRingStatisticItem RingStatisticItem-                       deriving (Eq, Ord, Show, Generic, NFData, Data)+                       deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  instance ToJSON AnyStatisticItem where   toJSON (AnyStatisticItem si) = object [ "type" .= String "StatisticItem"@@ -165,40 +165,45 @@ data StatisticItem = StatisticItem   { si_name :: T.Text   , si_value :: T.Text-  } deriving (Eq, Ord, Show, Generic, NFData, Data)+  } deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  data MapStatisticItem = MapStatisticItem   { msi_name :: T.Text   , msi_value :: [SimpleStatisticItem]-  } deriving (Eq, Ord, Show, Generic, NFData, Data)+  } deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  data RingStatisticItem = RingStatisticItem   { rsi_name :: T.Text   , rsi_size :: Integer   , rsi_value :: [SimpleStatisticItem]-  } deriving (Eq, Ord, Show, Generic, NFData, Data)+  } deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  ----------------------------------------------------------------------------------------  type QueryParamReq = QueryParam' [Required, Strict] data ServersAPI f = ServersAPI-  { apiListServers :: f :- "servers"+  { apiListServers :: f :- Summary "List servers"+                        :> "servers"                         :> Get '[JSON] [Server] -  , apiGetServer   :: f :- "servers" :> Capture "server_id" T.Text+  , apiGetServer   :: f :- Summary "Get server"+                        :> "servers" :> Capture "server_id" T.Text                         :> Get '[JSON] Server -  , apiSearch      :: f :- "servers" :> Capture "server_id" T.Text :> "search-data"+  , apiSearch      :: f :- Summary "Search"+                        :> "servers" :> Capture "server_id" T.Text :> "search-data"                         :> QueryParamReq "q" T.Text                         :> QueryParamReq "max" Integer                         :> QueryParam "object_type" ObjectType                         :> Get '[JSON] [SearchResult] -  , apiFlushCache  :: f :- "servers" :> Capture "server_id" T.Text+  , apiFlushCache  :: f :- Summary "Flush cache"+                        :> "servers" :> Capture "server_id" T.Text                         :> QueryParamReq "domain" T.Text                         :> Put '[JSON] CacheFlushResult -  , apiStatistics  :: f :- "servers" :> Capture "server_id" T.Text :> "statistics"+  , apiStatistics  :: f :- Summary "Statistics"+                        :> "servers" :> Capture "server_id" T.Text :> "statistics"                         :> QueryParam "statistic" T.Text                         :> QueryParam "includerings" Bool                         :> Get '[JSON] [AnyStatisticItem]
PowerDNS/API/TSIGKeys.hs view
@@ -45,21 +45,26 @@ ---------------------------------------------------------------------------------------  data TSIGKeysAPI f = TSIGKeysAPI-  { apiListTSIGKeys  :: f :- "servers" :> Capture "server_id" T.Text :> "tsigkeys"+  { apiListTSIGKeys  :: f :- Summary "List TSIG keys"+                          :> "servers" :> Capture "server_id" T.Text :> "tsigkeys"                           :> Get '[JSON] [TSIGKey] -  , apiCreateTSIGKey :: f :- "servers" :> Capture "server_id" T.Text :> "tsigkeys"+  , apiCreateTSIGKey :: f :- Summary "Create TSIG key"+                          :> "servers" :> Capture "server_id" T.Text :> "tsigkeys"                           :> ReqBody '[JSON] TSIGKey                           :> PostCreated '[JSON] TSIGKey -  , apiGetTSIGKey    :: f :- "servers" :> Capture "server_id" T.Text :> "tsigkeys" :> Capture "tsigkey_id" T.Text+  , apiGetTSIGKey    :: f :- Summary "Get TSIG key"+                          :> "servers" :> Capture "server_id" T.Text :> "tsigkeys" :> Capture "tsigkey_id" T.Text                           :> Get '[JSON] TSIGKey -  , apiUpdateTSIGKey :: f :- "servers" :> Capture "server_id" T.Text :> "tsigkeys" :> Capture "tsigkey_id" T.Text+  , apiUpdateTSIGKey :: f :- Summary "Update TSIG key"+                          :> "servers" :> Capture "server_id" T.Text :> "tsigkeys" :> Capture "tsigkey_id" T.Text                           :> ReqBody '[JSON] TSIGKey                           :> Put '[JSON] TSIGKey -  , apiDeleteTSIGKey :: f :- "servers" :> Capture "server_id" T.Text :> "tsigkeys" :> Capture "tsigkey_id" T.Text+  , apiDeleteTSIGKey :: f :- Summary "DElete TSIG key"+                          :> "servers" :> Capture "server_id" T.Text :> "tsigkeys" :> Capture "tsigkey_id" T.Text                           :> DeleteNoContent   } deriving Generic @@ -71,7 +76,7 @@   , tsk_algorithm :: Maybe TSIGAlgorithm   , tsk_key :: Maybe BS.ByteString   -- ^ Unlike the original PowerDNS API we do not require the key to be base64 encoded.-  } deriving (Eq, Ord, Show, Generic, NFData, Data)+  } deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  ---------------------------------------------------------------------------------------- @@ -82,7 +87,7 @@                    | HMAC_SHA256                    | HMAC_SHA384                    | HMAC_SHA512-                   deriving (Eq, Ord, Show, Generic, NFData, Data)+                   deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  $(deriveJSON defaultOptions { allNullaryToStringTag = True                             , constructorTagModifier = fmap $ \c ->
PowerDNS/API/Version.hs view
@@ -32,13 +32,14 @@ import           PowerDNS.Internal.Utils (strip)  data VersionsAPI f = VersionsAPI-  { apiListVersions :: f :- Get '[JSON] [Version]+  { apiListVersions :: f :- Summary "List versions"+                         :> Get '[JSON] [Version]   } deriving Generic  data Version = Version   { version_version :: Int   , version_url :: T.Text-  } deriving (Eq, Ord, Show, Generic, NFData, Data)+  } deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  $(deriveJSON defaultOptions { fieldLabelModifier = strip "version_" } ''Version)   
PowerDNS/API/Zones.hs view
@@ -63,7 +63,7 @@ data Record = Record   { record_content :: T.Text   , record_disabled :: Bool-  } deriving (Eq, Ord, Show, Generic, NFData, Data)+  } deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  $(deriveJSON defaultOptions { fieldLabelModifier = strip "record_"                             , omitNothingFields = True } ''Record)@@ -76,7 +76,7 @@   { comment_content :: Maybe T.Text   , comment_account :: Maybe T.Text   , comment_modified_at :: Maybe POSIXTime-  } deriving (Eq, Ord, Show, Generic, NFData, Data, Empty)+  } deriving (Eq, Ord, Read, Show, Generic, NFData, Data, Empty)  $(deriveJSON defaultOptions { fieldLabelModifier = strip "comment_" } ''Comment) @@ -86,13 +86,12 @@ -- If the 'ChangeType' is left at @Nothing@ it will create a new domain entry. data ChangeType = Replace                 | Delete-                deriving (Eq, Ord, Show, Generic, NFData, Data)+                deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  $(deriveJSON defaultOptions { constructorTagModifier = fmap toUpper                             , allNullaryToStringTag = True } ''ChangeType)  - ----------------------------------------------------------------------------------------  data RecordType = A@@ -145,7 +144,7 @@                 | RKEY                 | SIG                 | WKS-                deriving (Eq, Ord, Show, Generic, NFData, Data)+                deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  $(deriveJSON defaultOptions { allNullaryToStringTag = True                             } ''RecordType)@@ -227,7 +226,7 @@   , rrset_changetype :: Maybe ChangeType   , rrset_records :: Maybe [Record]   , rrset_comments :: Maybe [Comment]-  } deriving (Eq, Ord, Show, Generic, NFData, Data)+  } deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  $(deriveJSON defaultOptions { fieldLabelModifier = strip "rrset_"                             , omitNothingFields = True } ''RRSet)@@ -237,7 +236,7 @@ -- | A list of RRSets data RRSets = RRSets   { rrsets :: [RRSet]-  } deriving (Eq, Ord, Show, Generic, NFData, Data)+  } deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  instance ToJSON RRSets instance FromJSON RRSets@@ -245,7 +244,7 @@ ----------------------------------------------------------------------------------------  data Kind = Native | Master | Slave-  deriving (Eq, Ord, Show, Generic, NFData, Data)+  deriving (Eq, Ord, Read, Show, Generic, NFData, Data)  $(deriveJSON defaultOptions { allNullaryToStringTag = True } ''Kind) @@ -279,48 +278,58 @@   , zone_nameservers :: Maybe [T.Text]   , zone_master_tsig_key_ids :: Maybe [T.Text]   , zone_slave_tsig_key_ids :: Maybe [T.Text]-  } deriving (Eq, Ord, Show, Generic, NFData, Data, Empty)+  } deriving (Eq, Ord, Read, Show, Generic, NFData, Data, Empty)  $(deriveJSON defaultOptions { fieldLabelModifier = strip "zone_" } ''Zone)  ----------------------------------------------------------------------------------------  data ZonesAPI f = ZonesAPI-  { apiListZones     :: f :- "servers" :> Capture "server_id" T.Text :> "zones"+  { apiListZones     :: f :- Summary "List zones"+                          :> "servers" :> Capture "server_id" T.Text :> "zones"                           :> QueryParam "zone" T.Text                           :> QueryParam "dnssec" Bool                           :> Get '[JSON] [Zone] -  , apiCreateZone    :: f :- "servers" :> Capture "server_id" T.Text :> "zones"+  , apiCreateZone    :: f :- Summary "Create zone"+                          :> "servers" :> Capture "server_id" T.Text :> "zones"                           :> QueryParam "rrset" Bool                           :> ReqBody '[JSON] Zone                           :> PostCreated '[JSON] Zone -  , apiGetZone       :: f :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text+  , apiGetZone       :: f :- Summary "Get zone"+                          :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text                           :> QueryParam "rrsets" Bool                           :> Get '[JSON] Zone -  , apiDeleteZone    :: f :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text+  , apiDeleteZone    :: f :- Summary "Delete zone"+                          :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text                           :> DeleteNoContent -  , apiUpdateRecords :: f :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text+  , apiUpdateRecords :: f :- Summary "Update records"+                          :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text                           :> ReqBody '[JSON] RRSets                           :> PatchNoContent -  , apiUpdateZone    :: f :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text+  , apiUpdateZone    :: f :- Summary "Update zone"+                          :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text                           :> ReqBody '[JSON] Zone                           :> PutNoContent -  , apiTriggerAxfr   :: f :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "axfr-retrieve"+  , apiTriggerAxfr   :: f :- Summary "Trigger AXFR"+                          :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "axfr-retrieve"                           :> Put '[JSON] Result -  , apiNotifySlaves  :: f :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "notify"+  , apiNotifySlaves  :: f :- Summary "Notify slaves"+                          :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "notify"                           :> Put '[JSON] Result -  , apiGetZoneAxfr   :: f :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "export"+  , apiGetZoneAxfr   :: f :- Summary "Get zone AXFR"+                          :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "export"                           :> Get '[JSON] Result -  , apiRectifyZone   :: f :- "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "rectify"+  , apiRectifyZone   :: f :- Summary "Rectify zone"+                          :> "servers" :> Capture "server_id" T.Text :> "zones" :> Capture "zone_id" T.Text :> "rectify"                           :> Put '[JSON] Result    } deriving Generic
powerdns.cabal view
@@ -1,6 +1,6 @@ cabal-version:      3.0 name:               powerdns-version:            0.4.3+version:            0.4.4 license:            BSD-3-Clause license-file:       LICENSE copyright:          (c) 2021 Victor Nawothnig@@ -37,7 +37,7 @@  common all     build-depends:-        base ^>= { 4.12, 4.13, 4.14, 4.15, 4.16, 4.17 },+        base ^>= { 4.12, 4.13, 4.14, 4.15, 4.16, 4.17, 4.18, 4.19 },         servant ^>= { 0.18.2, 0.19, 0.20 },         servant-client ^>= { 0.18.2, 0.19, 0.20 },         servant-client-core ^>= { 0.18.2, 0.19, 0.20 }@@ -58,12 +58,12 @@     ghc-options:      -Wall -Wcompat     build-depends:         aeson ^>= { 1.5.6, 2.0.3.0, 2.1.0.0, 2.2.0.0 },-        bytestring ^>= { 0.10.10, 0.11.0 },-        deepseq ^>= { 1.4.4 },-        containers ^>= { 0.6.2 },+        bytestring ^>= { 0.10.10, 0.11.0, 0.12.0.0 },+        deepseq ^>= { 1.4.4, 1.5.0 },+        containers ^>= { 0.6.2, 0.7 },         hashable ^>= { 1.3.0.0, 1.4.0.0 },         text ^>= { 1.2.4, 2.0, 2.1 },-        time ^>= { 1.9.3, 1.10, 1.12  },+        time ^>= { 1.9.3, 1.10, 1.12, 1.14 },         base64-bytestring ^>= { 1.1.0, 1.2.1.0 },         case-insensitive ^>= { 1.2.1 }