@@ -161,6 +161,7 @@ data StartContainerOpts = StartContainerOpts
161161 , _Privileged :: Bool
162162 , _Dns :: [T.Text]
163163 , _VolumesFrom :: [T.Text]
164+ , _RestartPolicy :: RestartPolicy
164165 } deriving (Show)
165166
166167defaultStartOpts = StartContainerOpts
@@ -172,6 +173,7 @@ defaultStartOpts = StartContainerOpts
172173 , _Privileged = False
173174 , _Dns = []
174175 , _VolumesFrom = []
176+ , _RestartPolicy = RestartNever
175177 }
176178
177179instance ToJSON StartContainerOpts where
@@ -184,8 +186,19 @@ instance ToJSON StartContainerOpts where
184186 , "Privileged" .= _Privileged
185187 , "Dns" .= _Dns
186188 , "VolumesFrom" .= _VolumesFrom
189+ , "RestartPolicy" .= _RestartPolicy
187190 ]
188191
192+data RestartPolicy = RestartNever
193+ | RestartAlways
194+ | RestartOnFailure Int
195+ deriving (Show)
196+
197+instance ToJSON RestartPolicy where
198+ toJSON RestartNever = object ["Name" .= (""::String), "MaximumRetryCount" .= (0::Int) ]
199+ toJSON RestartAlways = object ["Name" .= ("always"::String), "MaximumRetryCount" .= (0::Int) ]
200+ toJSON (RestartOnFailure n) = object ["Name" .= ("on-failure"::String), "MaximumRetryCount" .= n ]
201+
189202makeClassy ''ResourceId
190203
191204-- makeLenses ''CreateContainerResponse