{-# 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.ApplicationAutoScaling.RegisterScalableTarget
(
registerScalableTarget
, RegisterScalableTarget
, rstMaxCapacity
, rstMinCapacity
, rstRoleARN
, rstServiceNamespace
, rstResourceId
, rstScalableDimension
, registerScalableTargetResponse
, RegisterScalableTargetResponse
, rstrsResponseStatus
) 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
data RegisterScalableTarget = RegisterScalableTarget'
{ _rstMaxCapacity :: !(Maybe Int)
, _rstMinCapacity :: !(Maybe Int)
, _rstRoleARN :: !(Maybe Text)
, _rstServiceNamespace :: !ServiceNamespace
, _rstResourceId :: !Text
, _rstScalableDimension :: !ScalableDimension
} deriving (Eq,Read,Show,Data,Typeable,Generic)
registerScalableTarget
:: ServiceNamespace
-> Text
-> ScalableDimension
-> RegisterScalableTarget
registerScalableTarget pServiceNamespace_ pResourceId_ pScalableDimension_ =
RegisterScalableTarget'
{ _rstMaxCapacity = Nothing
, _rstMinCapacity = Nothing
, _rstRoleARN = Nothing
, _rstServiceNamespace = pServiceNamespace_
, _rstResourceId = pResourceId_
, _rstScalableDimension = pScalableDimension_
}
rstMaxCapacity :: Lens' RegisterScalableTarget (Maybe Int)
rstMaxCapacity = lens _rstMaxCapacity (\ s a -> s{_rstMaxCapacity = a});
rstMinCapacity :: Lens' RegisterScalableTarget (Maybe Int)
rstMinCapacity = lens _rstMinCapacity (\ s a -> s{_rstMinCapacity = a});
rstRoleARN :: Lens' RegisterScalableTarget (Maybe Text)
rstRoleARN = lens _rstRoleARN (\ s a -> s{_rstRoleARN = a});
rstServiceNamespace :: Lens' RegisterScalableTarget ServiceNamespace
rstServiceNamespace = lens _rstServiceNamespace (\ s a -> s{_rstServiceNamespace = a});
rstResourceId :: Lens' RegisterScalableTarget Text
rstResourceId = lens _rstResourceId (\ s a -> s{_rstResourceId = a});
rstScalableDimension :: Lens' RegisterScalableTarget ScalableDimension
rstScalableDimension = lens _rstScalableDimension (\ s a -> s{_rstScalableDimension = a});
instance AWSRequest RegisterScalableTarget where
type Rs RegisterScalableTarget =
RegisterScalableTargetResponse
request = postJSON applicationAutoScaling
response
= receiveEmpty
(\ s h x ->
RegisterScalableTargetResponse' <$>
(pure (fromEnum s)))
instance Hashable RegisterScalableTarget
instance NFData RegisterScalableTarget
instance ToHeaders RegisterScalableTarget where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AnyScaleFrontendService.RegisterScalableTarget" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON RegisterScalableTarget where
toJSON RegisterScalableTarget'{..}
= object
(catMaybes
[("MaxCapacity" .=) <$> _rstMaxCapacity,
("MinCapacity" .=) <$> _rstMinCapacity,
("RoleARN" .=) <$> _rstRoleARN,
Just ("ServiceNamespace" .= _rstServiceNamespace),
Just ("ResourceId" .= _rstResourceId),
Just ("ScalableDimension" .= _rstScalableDimension)])
instance ToPath RegisterScalableTarget where
toPath = const "/"
instance ToQuery RegisterScalableTarget where
toQuery = const mempty
newtype RegisterScalableTargetResponse = RegisterScalableTargetResponse'
{ _rstrsResponseStatus :: Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
registerScalableTargetResponse
:: Int
-> RegisterScalableTargetResponse
registerScalableTargetResponse pResponseStatus_ =
RegisterScalableTargetResponse'
{ _rstrsResponseStatus = pResponseStatus_
}
rstrsResponseStatus :: Lens' RegisterScalableTargetResponse Int
rstrsResponseStatus = lens _rstrsResponseStatus (\ s a -> s{_rstrsResponseStatus = a});
instance NFData RegisterScalableTargetResponse