{-# 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 -- 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