module Network.AWS.ECS.RegisterTaskDefinition
(
RegisterTaskDefinition
, registerTaskDefinition
, rtdContainerDefinitions
, rtdFamily
, rtdVolumes
, RegisterTaskDefinitionResponse
, registerTaskDefinitionResponse
, rtdrTaskDefinition
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.ECS.Types
import qualified GHC.Exts
data RegisterTaskDefinition = RegisterTaskDefinition
{ _rtdContainerDefinitions :: List "containerDefinitions" ContainerDefinition
, _rtdFamily :: Text
, _rtdVolumes :: List "volumes" Volume
} deriving (Eq, Read, Show)
registerTaskDefinition :: Text
-> RegisterTaskDefinition
registerTaskDefinition p1 = RegisterTaskDefinition
{ _rtdFamily = p1
, _rtdContainerDefinitions = mempty
, _rtdVolumes = mempty
}
rtdContainerDefinitions :: Lens' RegisterTaskDefinition [ContainerDefinition]
rtdContainerDefinitions =
lens _rtdContainerDefinitions (\s a -> s { _rtdContainerDefinitions = a })
. _List
rtdFamily :: Lens' RegisterTaskDefinition Text
rtdFamily = lens _rtdFamily (\s a -> s { _rtdFamily = a })
rtdVolumes :: Lens' RegisterTaskDefinition [Volume]
rtdVolumes = lens _rtdVolumes (\s a -> s { _rtdVolumes = a }) . _List
newtype RegisterTaskDefinitionResponse = RegisterTaskDefinitionResponse
{ _rtdrTaskDefinition :: Maybe TaskDefinition
} deriving (Eq, Read, Show)
registerTaskDefinitionResponse :: RegisterTaskDefinitionResponse
registerTaskDefinitionResponse = RegisterTaskDefinitionResponse
{ _rtdrTaskDefinition = Nothing
}
rtdrTaskDefinition :: Lens' RegisterTaskDefinitionResponse (Maybe TaskDefinition)
rtdrTaskDefinition =
lens _rtdrTaskDefinition (\s a -> s { _rtdrTaskDefinition = a })
instance ToPath RegisterTaskDefinition where
toPath = const "/"
instance ToQuery RegisterTaskDefinition where
toQuery = const mempty
instance ToHeaders RegisterTaskDefinition
instance ToJSON RegisterTaskDefinition where
toJSON RegisterTaskDefinition{..} = object
[ "family" .= _rtdFamily
, "containerDefinitions" .= _rtdContainerDefinitions
, "volumes" .= _rtdVolumes
]
instance AWSRequest RegisterTaskDefinition where
type Sv RegisterTaskDefinition = ECS
type Rs RegisterTaskDefinition = RegisterTaskDefinitionResponse
request = post "RegisterTaskDefinition"
response = jsonResponse
instance FromJSON RegisterTaskDefinitionResponse where
parseJSON = withObject "RegisterTaskDefinitionResponse" $ \o -> RegisterTaskDefinitionResponse
<$> o .:? "taskDefinition"