@@ -1,26 +1,25 @@
11{-# LANGUAGE DataKinds #-}
22{-# LANGUAGE DeriveFunctor #-}
3+{-# LANGUAGE DeriveGeneric #-}
34{-# LANGUAGE FlexibleContexts #-}
45{-# LANGUAGE GADTs #-}
56{-# LANGUAGE OverloadedStrings #-}
67{-# LANGUAGE RecordWildCards #-}
7−{-# LANGUAGE TemplateHaskell #-}
88{-# LANGUAGE TypeFamilies #-}
99
1010module Network.Docker.Types where
1111
1212import Control.Applicative
13−import Control.Lens.TH
1413import Control.Monad.Free
1514import Data.Aeson
16−import Data.Aeson.TH
15+import Data.Aeson.Types
1716import Data.Bool
1817import qualified Data.ByteString.Lazy as BS
1918import qualified Data.ByteString.Lazy as L
2019import Data.Default
2120import qualified Data.Map as Map
2221import qualified Data.Text as T
23−import GHC.Generics
22+import GHC.Generics (Generic)
2423import Network.Docker.Options
2524import Network.Wreq.Types (Postable)
2625import OpenSSL.Session (SSLContext)
@@ -107,7 +106,7 @@ data DockerVersion = DockerVersion
107106 , _GoVersion :: String
108107 , _Arch :: String
109108 , _KernelVersion :: String
110− } deriving (Show, Eq)
109+ } deriving (Show, Eq, Generic)
111110
112111
113112-- The JSON looks likes this:
@@ -258,16 +257,6 @@ instance ToJSON RestartPolicy where
258257 toJSON RestartAlways = object ["Name" .= ("always"::String), "MaximumRetryCount" .= (0::Int) ]
259258 toJSON (RestartOnFailure n) = object ["Name" .= ("on-failure"::String), "MaximumRetryCount" .= n ]
260259
261−makeClassy ''ResourceId
262−
263−-- makeLenses ''CreateContainerResponse
264−makeLenses ''DockerImage
265−makeLenses ''DockerContainer
266−makeLenses ''CreateContainerOpts
267−
268−instance HasResourceId DockerImage where
269− resourceId = imageId
270−
271260instance FromJSON DockerImage where
272261 parseJSON (Object v) =
273262 DockerImage <$> ResourceId <$> (v .: "Id")
@@ -284,9 +273,6 @@ instance FromJSON PortMap where
284273 <*> (v .: "PublicPort")
285274 <*> (v .: "Type")
286275
287−instance HasResourceId DockerContainer where
288− resourceId = containerId
289−
290276instance FromJSON DockerContainer where
291277 parseJSON (Object v) =
292278 DockerContainer <$> (ResourceId <$> (v .: "Id"))
@@ -302,5 +288,11 @@ instance FromJSON DockerContainer where
302288-- CreateContainerResponse <$> (v .: "Id")
303289-- <*> (v .:? "warnings")
304290
305−$(deriveJSON dopts ''DockerVersion)
291+instance ToJSON DockerVersion where
292+ toJSON = genericToJSON defaultOptions {
293+ fieldLabelModifier = drop 1 }
294+
295+instance FromJSON DockerVersion where
296+ parseJSON = genericParseJSON defaultOptions {
297+ fieldLabelModifier = drop 1 }
306298