@@ -12,6 +12,7 @@ module Docker.Client.Types (
1212 , fromImageID
1313 , toImageID
1414 , Timeout(..)
15+ , StatusCode(..)
1516 , Signal(..)
1617 , ContainerDetails(..)
1718 , DockerClientOpts(..)
@@ -111,6 +112,7 @@ data Endpoint =
111112 | CreateContainerEndpoint CreateOpts (Maybe ContainerName)
112113 | StartContainerEndpoint StartOpts ContainerID
113114 | StopContainerEndpoint Timeout ContainerID
115+ | WaitContainerEndpoint ContainerID
114116 | KillContainerEndpoint Signal ContainerID
115117 | RestartContainerEndpoint Timeout ContainerID
116118 | PauseContainerEndpoint ContainerID
@@ -165,6 +167,20 @@ toImageID t =
165167-- | Timeout used for stopping a container. DefaultTimeout is 10 seconds.
166168data Timeout = Timeout Integer | DefaultTimeout deriving (Eq, Show)
167169
170+data StatusCode = StatusCode Int
171+
172+instance ToJSON StatusCode where
173+ toJSON (StatusCode c) = object ["StatusCode" .= c]
174+
175+instance FromJSON StatusCode where
176+ parseJSON (JSON.Object o) = do
177+ c <- o .: "StatusCode"
178+ if c >= 0 && c <= 255 then
179+ return (StatusCode c)
180+ else
181+ fail "Unknown exit code"
182+ parseJSON _ = fail "Unknown exit code"
183+
168184-- TODO: Add more Signals or use an existing lib
169185-- | Signal used for sending to the process running in the container.
170186-- The default signal is SIGTERM.