{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} module Network.DigitalOcean.Services.Certificate where ----------------------------------------------------------------- import Data.Aeson import Data.Aeson.Casing import Data.Time.Clock import GHC.Generics ----------------------------------------------------------------- import Network.DigitalOcean.Types import Network.DigitalOcean.Utils.Pagination import Network.DigitalOcean.Services.Action ----------------------------------------------------------------- data Certificate = Certificate { certificateId :: CertificateId , certificateName :: String , certificateNotAfter :: String , certificateSha1Fingerprint :: String , certificateCreatedAt :: UTCTime } deriving (Show, Generic) instance FromJSON (Response Certificate) where parseJSON (Object v) = fmap Response $ parseJSON =<< (v .: "certificate") instance FromJSON (Response [Certificate]) where parseJSON (Object v) = fmap Response $ parseJSON =<< (v .: "certificates") instance FromJSON Certificate where parseJSON = genericParseJSON $ aesonPrefix snakeCase instance FromJSON (PaginationState Certificate) where parseJSON (Object v) = parsePaginationState v "certificates" instance Paginatable Certificate where data Certificatepayload = Certificatepayload { certificatepayloadName :: String , certificatepayloadPrivateKey :: String , certificatepayloadLeafCertificate :: String , certificatepayloadCertificateChain :: Maybe String } deriving (Show, Generic) instance ToJSON Certificatepayload where toJSON = genericToJSON $ aesonPrefix snakeCase instance Payload Certificatepayload