@@ -52,7 +52,7 @@ module Docker.Client.Types (
5252 , NetworkMode(..)
5353 , PortType(..)
5454-- , NetworkInterface(..)
55− , Networks(..)
55+ , Network(..)
5656 , NetworkSettings(..)
5757 , NetworkOptions(..)
5858 , Mount(..)
@@ -92,7 +92,6 @@ import qualified Data.Aeson as JSON
9292import Data.Aeson.Types (defaultOptions, fieldLabelModifier)
9393import Data.Char (isAlphaNum, toUpper)
9494import qualified Data.HashMap.Strict as HM
95−import qualified Data.Map as M
9695import Data.Monoid ((<>))
9796import Data.Text (Text)
9897import qualified Data.Text as T
@@ -420,20 +419,17 @@ instance FromJSON NetworkOptions where
420419 parseJSON _ = fail "NetworkOptions is not an object"
421420
422421-- TODO: Not sure what this is used for anymore.
423−newtype Networks = Networks (M.Map NetworkMode NetworkOptions) -- Note: Is it ever possible that there will be duplicates of network modes?
422+data Network = Network NetworkMode NetworkOptions
424423 deriving (Eq, Show)
425424
426−instance FromJSON Networks where
427− parseJSON (JSON.Object o) = do
428− Networks <$> HM.foldlWithKey' f (return M.empty) o
429−
425+instance FromJSON [Network] where
426+ parseJSON (JSON.Object o) = HM.foldlWithKey' f (return []) o
430427 where
431428 f accM k' v' = do
432429 acc <- accM
433430 k <- parseJSON $ JSON.String k'
434431 v <- parseJSON v'
435− return $ M.insert k v acc
436−
432+ return $ (Network k v):acc
437433 parseJSON _ = fail "Networks is not an object"
438434
439435-- | Data type reprsenting the various network settings a container can have.
@@ -455,7 +451,7 @@ data NetworkSettings = NetworkSettings {
455451 , networkSettingsIpPrefixLen :: Int
456452 , networkSettingsIpv6Gateway :: Text
457453 , networkSettingsMacAddress :: Text
458− , networkSettingsNetworks :: Networks
454+ , networkSettingsNetworks :: [Network]
459455 }
460456 deriving (Eq, Show)
461457
@@ -493,7 +489,7 @@ data Container = Container
493489 , containerStatus :: Status
494490 , containerPorts :: [ContainerPortInfo]
495491 , containerLabels :: [Label]
496− , containerNetworks :: Networks
492+ , containerNetworks :: [Network]
497493 , containerMounts :: [Mount]
498494 } deriving (Show, Eq)
499495