{-# 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. -- -- -- Deregistering a scalable target deletes the scaling policies that are associated with it. -- -- To create a 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' - The namespace of the AWS service. For more information, see in the /Amazon Web Services General Reference/ . -- -- * 'derResourceId' - The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. * ECS service - The resource type is @service@ and the unique identifier is the cluster name and service name. Example: @service/default/sample-webapp@ . * Spot fleet request - The resource type is @spot-fleet-request@ and the unique identifier is the Spot fleet request ID. Example: @spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE@ . * EMR cluster - The resource type is @instancegroup@ and the unique identifier is the cluster ID and instance group ID. Example: @instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0@ . -- -- * 'derScalableDimension' - The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. * @ecs:service:DesiredCount@ - The desired task count of an ECS service. * @ec2:spot-fleet-request:TargetCapacity@ - The target capacity of a Spot fleet request. * @elasticmapreduce:instancegroup:InstanceCount@ - The instance count of an EMR Instance Group. deregisterScalableTarget :: ServiceNamespace -- ^ 'derServiceNamespace' -> Text -- ^ 'derResourceId' -> ScalableDimension -- ^ 'derScalableDimension' -> DeregisterScalableTarget deregisterScalableTarget pServiceNamespace_ pResourceId_ pScalableDimension_ = DeregisterScalableTarget' { _derServiceNamespace = pServiceNamespace_ , _derResourceId = pResourceId_ , _derScalableDimension = pScalableDimension_ } -- | The namespace of the AWS service. For more information, see in the /Amazon Web Services General Reference/ . derServiceNamespace :: Lens' DeregisterScalableTarget ServiceNamespace derServiceNamespace = lens _derServiceNamespace (\ s a -> s{_derServiceNamespace = a}); -- | The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. * ECS service - The resource type is @service@ and the unique identifier is the cluster name and service name. Example: @service/default/sample-webapp@ . * Spot fleet request - The resource type is @spot-fleet-request@ and the unique identifier is the Spot fleet request ID. Example: @spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE@ . * EMR cluster - The resource type is @instancegroup@ and the unique identifier is the cluster ID and instance group ID. Example: @instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0@ . derResourceId :: Lens' DeregisterScalableTarget Text derResourceId = lens _derResourceId (\ s a -> s{_derResourceId = a}); -- | The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. * @ecs:service:DesiredCount@ - The desired task count of an ECS service. * @ec2:spot-fleet-request:TargetCapacity@ - The target capacity of a Spot fleet request. * @elasticmapreduce:instancegroup:InstanceCount@ - The instance count of an EMR Instance Group. 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' - -- | The response status code. 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