@@ -249,8 +249,8 @@ data Mount = Mount {
249249 mountName :: Maybe Text -- this is optional
250250 , mountSource :: FilePath
251251 , mountDestination :: FilePath
252− , mountDriver :: Text
253− , mountMode :: Maybe VolumePermission -- apparently this can be null
252+ , mountDriver :: Maybe Text
253+ -- , mountMode :: Maybe VolumePermission -- apparently this can be null
254254 , mountRW :: Bool
255255 , mountPropogation :: Text
256256 }
@@ -258,14 +258,14 @@ data Mount = Mount {
258258
259259instance FromJSON Mount where
260260 parseJSON (JSON.Object o) = do
261− name <- o .: "Name"
261+ name <- o .:? "Name"
262262 src <- o .: "Source"
263263 dest <- o .: "Destination"
264− driver <- o .: "Driver"
265− mode <- o .: "Mode"
264+ driver <- o .:? "Driver"
265+ -- mode <- o .: "Mode"
266266 rw <- o .: "RW"
267267 prop <- o .: "Propagation"
268− return $ Mount name src dest driver mode rw prop
268+ return $ Mount name src dest driver rw prop
269269 parseJSON _ = fail "Mount is not an object"
270270
271271-- | Data type used for parsing the container state from a list of
@@ -523,8 +523,8 @@ instance FromJSON Container where
523523 Container <$> parseJSON o
524524 <*> (v .: "Names")
525525 <*> (v .: "Image")
526− <*> (v .: "ImageID")
527− <*> (v .: "Command")
526+ <*> (v .: "ImageID") -- Doesn't exist anymore
527+ <*> (v .: "Command") -- Doesn't exist anymore
528528 <*> (v .: "Created")
529529 <*> (v .: "State")
530530 <*> (v .: "Ports")
@@ -535,11 +535,10 @@ instance FromJSON Container where
535535 parseNetworks (JSON.Object v) =
536536 (v .: "Networks") >>= parseJSON
537537 parseNetworks _ = fail "Container NetworkSettings: Not a JSON object."
538−
539538 parseJSON _ = fail "Container: Not a JSON object."
540539
541540-- | Represents the status of the container life cycle.
542−data Status = Created | Restarting | Running | Paused | Exited | Dead
541+data Status = ContainerStatus T.Text
543542 deriving (Eq, Show, Generic)
544543
545544instance FromJSON Status where
@@ -789,6 +788,8 @@ instance ToJSON VolumePermission where
789788instance FromJSON VolumePermission where
790789 parseJSON "rw" = return ReadWrite
791790 parseJSON "ro" = return ReadOnly
791+ parseJSON "RW" = return ReadWrite
792+ parseJSON "RO" = return ReadOnly
792793 parseJSON _ = fail "Failed to parse VolumePermission"
793794
794795-- | Used for marking a directory in the container as "exposed" hence