amazonka-ecs-1.4.3: gen/Network/AWS/ECS/DeregisterTaskDefinition.hs
{-# 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 #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.ECS.DeregisterTaskDefinition
-- Copyright : (c) 2013-2016 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Deregisters the specified task definition by family and revision. Upon deregistration, the task definition is marked as 'INACTIVE'. Existing tasks and services that reference an 'INACTIVE' task definition continue to run without disruption. Existing services that reference an 'INACTIVE' task definition can still scale up or down by modifying the service\'s desired count.
--
-- You cannot use an 'INACTIVE' task definition to run new tasks or create new services, and you cannot update an existing service to reference an 'INACTIVE' task definition (although there may be up to a 10 minute window following deregistration where these restrictions have not yet taken effect).
module Network.AWS.ECS.DeregisterTaskDefinition
(
-- * Creating a Request
deregisterTaskDefinition
, DeregisterTaskDefinition
-- * Request Lenses
, derTaskDefinition
-- * Destructuring the Response
, deregisterTaskDefinitionResponse
, DeregisterTaskDefinitionResponse
-- * Response Lenses
, dtdrsTaskDefinition
, dtdrsResponseStatus
) 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
-- | /See:/ 'deregisterTaskDefinition' smart constructor.
newtype DeregisterTaskDefinition = DeregisterTaskDefinition'
{ _derTaskDefinition :: Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'DeregisterTaskDefinition' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'derTaskDefinition'
deregisterTaskDefinition
:: Text -- ^ 'derTaskDefinition'
-> DeregisterTaskDefinition
deregisterTaskDefinition pTaskDefinition_ =
DeregisterTaskDefinition'
{ _derTaskDefinition = pTaskDefinition_
}
-- | The 'family' and 'revision' ('family:revision') or full Amazon Resource Name (ARN) of the task definition to deregister. You must specify a 'revision'.
derTaskDefinition :: Lens' DeregisterTaskDefinition Text
derTaskDefinition = lens _derTaskDefinition (\ s a -> s{_derTaskDefinition = a});
instance AWSRequest DeregisterTaskDefinition where
type Rs DeregisterTaskDefinition =
DeregisterTaskDefinitionResponse
request = postJSON ecs
response
= receiveJSON
(\ s h x ->
DeregisterTaskDefinitionResponse' <$>
(x .?> "taskDefinition") <*> (pure (fromEnum s)))
instance Hashable DeregisterTaskDefinition
instance NFData DeregisterTaskDefinition
instance ToHeaders DeregisterTaskDefinition where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonEC2ContainerServiceV20141113.DeregisterTaskDefinition"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DeregisterTaskDefinition where
toJSON DeregisterTaskDefinition'{..}
= object
(catMaybes
[Just ("taskDefinition" .= _derTaskDefinition)])
instance ToPath DeregisterTaskDefinition where
toPath = const "/"
instance ToQuery DeregisterTaskDefinition where
toQuery = const mempty
-- | /See:/ 'deregisterTaskDefinitionResponse' smart constructor.
data DeregisterTaskDefinitionResponse = DeregisterTaskDefinitionResponse'
{ _dtdrsTaskDefinition :: !(Maybe TaskDefinition)
, _dtdrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'DeregisterTaskDefinitionResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'dtdrsTaskDefinition'
--
-- * 'dtdrsResponseStatus'
deregisterTaskDefinitionResponse
:: Int -- ^ 'dtdrsResponseStatus'
-> DeregisterTaskDefinitionResponse
deregisterTaskDefinitionResponse pResponseStatus_ =
DeregisterTaskDefinitionResponse'
{ _dtdrsTaskDefinition = Nothing
, _dtdrsResponseStatus = pResponseStatus_
}
-- | The full description of the deregistered task.
dtdrsTaskDefinition :: Lens' DeregisterTaskDefinitionResponse (Maybe TaskDefinition)
dtdrsTaskDefinition = lens _dtdrsTaskDefinition (\ s a -> s{_dtdrsTaskDefinition = a});
-- | The response status code.
dtdrsResponseStatus :: Lens' DeregisterTaskDefinitionResponse Int
dtdrsResponseStatus = lens _dtdrsResponseStatus (\ s a -> s{_dtdrsResponseStatus = a});
instance NFData DeregisterTaskDefinitionResponse