{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.ECS.DeregisterContainerInstance
(
deregisterContainerInstance
, DeregisterContainerInstance
, derCluster
, derForce
, derContainerInstance
, deregisterContainerInstanceResponse
, DeregisterContainerInstanceResponse
, dcirsContainerInstance
, dcirsResponseStatus
) where
import Network.AWS.ECS.Types
import Network.AWS.ECS.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DeregisterContainerInstance = DeregisterContainerInstance'
{ _derCluster :: !(Maybe Text)
, _derForce :: !(Maybe Bool)
, _derContainerInstance :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
deregisterContainerInstance
:: Text
-> DeregisterContainerInstance
deregisterContainerInstance pContainerInstance_ =
DeregisterContainerInstance'
{ _derCluster = Nothing
, _derForce = Nothing
, _derContainerInstance = pContainerInstance_
}
derCluster :: Lens' DeregisterContainerInstance (Maybe Text)
derCluster = lens _derCluster (\ s a -> s{_derCluster = a});
derForce :: Lens' DeregisterContainerInstance (Maybe Bool)
derForce = lens _derForce (\ s a -> s{_derForce = a});
derContainerInstance :: Lens' DeregisterContainerInstance Text
derContainerInstance = lens _derContainerInstance (\ s a -> s{_derContainerInstance = a});
instance AWSRequest DeregisterContainerInstance where
type Rs DeregisterContainerInstance =
DeregisterContainerInstanceResponse
request = postJSON ecs
response
= receiveJSON
(\ s h x ->
DeregisterContainerInstanceResponse' <$>
(x .?> "containerInstance") <*> (pure (fromEnum s)))
instance Hashable DeregisterContainerInstance
instance NFData DeregisterContainerInstance
instance ToHeaders DeregisterContainerInstance where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonEC2ContainerServiceV20141113.DeregisterContainerInstance"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DeregisterContainerInstance where
toJSON DeregisterContainerInstance'{..}
= object
(catMaybes
[("cluster" .=) <$> _derCluster,
("force" .=) <$> _derForce,
Just ("containerInstance" .= _derContainerInstance)])
instance ToPath DeregisterContainerInstance where
toPath = const "/"
instance ToQuery DeregisterContainerInstance where
toQuery = const mempty
data DeregisterContainerInstanceResponse = DeregisterContainerInstanceResponse'
{ _dcirsContainerInstance :: !(Maybe ContainerInstance)
, _dcirsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
deregisterContainerInstanceResponse
:: Int
-> DeregisterContainerInstanceResponse
deregisterContainerInstanceResponse pResponseStatus_ =
DeregisterContainerInstanceResponse'
{ _dcirsContainerInstance = Nothing
, _dcirsResponseStatus = pResponseStatus_
}
dcirsContainerInstance :: Lens' DeregisterContainerInstanceResponse (Maybe ContainerInstance)
dcirsContainerInstance = lens _dcirsContainerInstance (\ s a -> s{_dcirsContainerInstance = a});
dcirsResponseStatus :: Lens' DeregisterContainerInstanceResponse Int
dcirsResponseStatus = lens _dcirsResponseStatus (\ s a -> s{_dcirsResponseStatus = a});
instance NFData DeregisterContainerInstanceResponse