{-# 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.ApplicationAutoScaling.DeregisterScalableTarget -- 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 a scalable target that was previously registered. If you are -- no longer using a scalable target, you can delete it with this -- operation. When you deregister a scalable target, all of the scaling -- policies that are associated with that scalable target are deleted. -- -- To create a new scalable target or update an existing one, see -- < RegisterScalableTarget>. module Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget ( -- * Creating a Request deregisterScalableTarget , DeregisterScalableTarget -- * Request Lenses , derServiceNamespace , derResourceId , derScalableDimension -- * Destructuring the Response , deregisterScalableTargetResponse , DeregisterScalableTargetResponse -- * Response Lenses , dstrsResponseStatus ) where import Network.AWS.ApplicationAutoScaling.Types import Network.AWS.ApplicationAutoScaling.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'deregisterScalableTarget' smart constructor. data DeregisterScalableTarget = DeregisterScalableTarget' { _derServiceNamespace :: !ServiceNamespace , _derResourceId :: !Text , _derScalableDimension :: !ScalableDimension } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'DeregisterScalableTarget' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'derServiceNamespace' -- -- * 'derResourceId' -- -- * 'derScalableDimension' deregisterScalableTarget :: ServiceNamespace -- ^ 'derServiceNamespace' -> Text -- ^ 'derResourceId' -> ScalableDimension -- ^ 'derScalableDimension' -> DeregisterScalableTarget deregisterScalableTarget pServiceNamespace_ pResourceId_ pScalableDimension_ = DeregisterScalableTarget' { _derServiceNamespace = pServiceNamespace_ , _derResourceId = pResourceId_ , _derScalableDimension = pScalableDimension_ } -- | The namespace for the AWS service that the scalable target is associated -- with. For more information, see -- -- in the Amazon Web Services General Reference. derServiceNamespace :: Lens' DeregisterScalableTarget ServiceNamespace derServiceNamespace = lens _derServiceNamespace (\ s a -> s{_derServiceNamespace = a}); -- | The unique identifier string for the resource associated with the -- scalable target. For Amazon ECS services, this value is the resource -- type, followed by the cluster name and service name, such as -- 'service\/default\/sample-webapp'. derResourceId :: Lens' DeregisterScalableTarget Text derResourceId = lens _derResourceId (\ s a -> s{_derResourceId = a}); -- | The scalable dimension associated with the scalable target. The scalable -- dimension contains the service namespace, resource type, and scaling -- property, such as 'ecs:service:DesiredCount' for the desired task count -- of an Amazon ECS service. derScalableDimension :: Lens' DeregisterScalableTarget ScalableDimension derScalableDimension = lens _derScalableDimension (\ s a -> s{_derScalableDimension = a}); instance AWSRequest DeregisterScalableTarget where type Rs DeregisterScalableTarget = DeregisterScalableTargetResponse request = postJSON applicationAutoScaling response = receiveEmpty (\ s h x -> DeregisterScalableTargetResponse' <$> (pure (fromEnum s))) instance Hashable DeregisterScalableTarget instance NFData DeregisterScalableTarget instance ToHeaders DeregisterScalableTarget where toHeaders = const (mconcat ["X-Amz-Target" =# ("AnyScaleFrontendService.DeregisterScalableTarget" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON DeregisterScalableTarget where toJSON DeregisterScalableTarget'{..} = object (catMaybes [Just ("ServiceNamespace" .= _derServiceNamespace), Just ("ResourceId" .= _derResourceId), Just ("ScalableDimension" .= _derScalableDimension)]) instance ToPath DeregisterScalableTarget where toPath = const "/" instance ToQuery DeregisterScalableTarget where toQuery = const mempty -- | /See:/ 'deregisterScalableTargetResponse' smart constructor. newtype DeregisterScalableTargetResponse = DeregisterScalableTargetResponse' { _dstrsResponseStatus :: Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'DeregisterScalableTargetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dstrsResponseStatus' deregisterScalableTargetResponse :: Int -- ^ 'dstrsResponseStatus' -> DeregisterScalableTargetResponse deregisterScalableTargetResponse pResponseStatus_ = DeregisterScalableTargetResponse' { _dstrsResponseStatus = pResponseStatus_ } -- | The response status code. dstrsResponseStatus :: Lens' DeregisterScalableTargetResponse Int dstrsResponseStatus = lens _dstrsResponseStatus (\ s a -> s{_dstrsResponseStatus = a}); instance NFData DeregisterScalableTargetResponse