module Network.AWS.AutoScaling.UpdateAutoScalingGroup
(
updateAutoScalingGroup
, UpdateAutoScalingGroup
, uasgTerminationPolicies
, uasgHealthCheckGracePeriod
, uasgNewInstancesProtectedFromScaleIn
, uasgVPCZoneIdentifier
, uasgDefaultCooldown
, uasgMaxSize
, uasgAvailabilityZones
, uasgDesiredCapacity
, uasgMinSize
, uasgLaunchConfigurationName
, uasgHealthCheckType
, uasgPlacementGroup
, uasgAutoScalingGroupName
, updateAutoScalingGroupResponse
, UpdateAutoScalingGroupResponse
) where
import Network.AWS.AutoScaling.Types
import Network.AWS.AutoScaling.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data UpdateAutoScalingGroup = UpdateAutoScalingGroup'
{ _uasgTerminationPolicies :: !(Maybe [Text])
, _uasgHealthCheckGracePeriod :: !(Maybe Int)
, _uasgNewInstancesProtectedFromScaleIn :: !(Maybe Bool)
, _uasgVPCZoneIdentifier :: !(Maybe Text)
, _uasgDefaultCooldown :: !(Maybe Int)
, _uasgMaxSize :: !(Maybe Int)
, _uasgAvailabilityZones :: !(Maybe (List1 Text))
, _uasgDesiredCapacity :: !(Maybe Int)
, _uasgMinSize :: !(Maybe Int)
, _uasgLaunchConfigurationName :: !(Maybe Text)
, _uasgHealthCheckType :: !(Maybe Text)
, _uasgPlacementGroup :: !(Maybe Text)
, _uasgAutoScalingGroupName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
updateAutoScalingGroup
:: Text
-> UpdateAutoScalingGroup
updateAutoScalingGroup pAutoScalingGroupName_ =
UpdateAutoScalingGroup'
{ _uasgTerminationPolicies = Nothing
, _uasgHealthCheckGracePeriod = Nothing
, _uasgNewInstancesProtectedFromScaleIn = Nothing
, _uasgVPCZoneIdentifier = Nothing
, _uasgDefaultCooldown = Nothing
, _uasgMaxSize = Nothing
, _uasgAvailabilityZones = Nothing
, _uasgDesiredCapacity = Nothing
, _uasgMinSize = Nothing
, _uasgLaunchConfigurationName = Nothing
, _uasgHealthCheckType = Nothing
, _uasgPlacementGroup = Nothing
, _uasgAutoScalingGroupName = pAutoScalingGroupName_
}
uasgTerminationPolicies :: Lens' UpdateAutoScalingGroup [Text]
uasgTerminationPolicies = lens _uasgTerminationPolicies (\ s a -> s{_uasgTerminationPolicies = a}) . _Default . _Coerce;
uasgHealthCheckGracePeriod :: Lens' UpdateAutoScalingGroup (Maybe Int)
uasgHealthCheckGracePeriod = lens _uasgHealthCheckGracePeriod (\ s a -> s{_uasgHealthCheckGracePeriod = a});
uasgNewInstancesProtectedFromScaleIn :: Lens' UpdateAutoScalingGroup (Maybe Bool)
uasgNewInstancesProtectedFromScaleIn = lens _uasgNewInstancesProtectedFromScaleIn (\ s a -> s{_uasgNewInstancesProtectedFromScaleIn = a});
uasgVPCZoneIdentifier :: Lens' UpdateAutoScalingGroup (Maybe Text)
uasgVPCZoneIdentifier = lens _uasgVPCZoneIdentifier (\ s a -> s{_uasgVPCZoneIdentifier = a});
uasgDefaultCooldown :: Lens' UpdateAutoScalingGroup (Maybe Int)
uasgDefaultCooldown = lens _uasgDefaultCooldown (\ s a -> s{_uasgDefaultCooldown = a});
uasgMaxSize :: Lens' UpdateAutoScalingGroup (Maybe Int)
uasgMaxSize = lens _uasgMaxSize (\ s a -> s{_uasgMaxSize = a});
uasgAvailabilityZones :: Lens' UpdateAutoScalingGroup (Maybe (NonEmpty Text))
uasgAvailabilityZones = lens _uasgAvailabilityZones (\ s a -> s{_uasgAvailabilityZones = a}) . mapping _List1;
uasgDesiredCapacity :: Lens' UpdateAutoScalingGroup (Maybe Int)
uasgDesiredCapacity = lens _uasgDesiredCapacity (\ s a -> s{_uasgDesiredCapacity = a});
uasgMinSize :: Lens' UpdateAutoScalingGroup (Maybe Int)
uasgMinSize = lens _uasgMinSize (\ s a -> s{_uasgMinSize = a});
uasgLaunchConfigurationName :: Lens' UpdateAutoScalingGroup (Maybe Text)
uasgLaunchConfigurationName = lens _uasgLaunchConfigurationName (\ s a -> s{_uasgLaunchConfigurationName = a});
uasgHealthCheckType :: Lens' UpdateAutoScalingGroup (Maybe Text)
uasgHealthCheckType = lens _uasgHealthCheckType (\ s a -> s{_uasgHealthCheckType = a});
uasgPlacementGroup :: Lens' UpdateAutoScalingGroup (Maybe Text)
uasgPlacementGroup = lens _uasgPlacementGroup (\ s a -> s{_uasgPlacementGroup = a});
uasgAutoScalingGroupName :: Lens' UpdateAutoScalingGroup Text
uasgAutoScalingGroupName = lens _uasgAutoScalingGroupName (\ s a -> s{_uasgAutoScalingGroupName = a});
instance AWSRequest UpdateAutoScalingGroup where
type Rs UpdateAutoScalingGroup =
UpdateAutoScalingGroupResponse
request = postQuery autoScaling
response
= receiveNull UpdateAutoScalingGroupResponse'
instance Hashable UpdateAutoScalingGroup
instance NFData UpdateAutoScalingGroup
instance ToHeaders UpdateAutoScalingGroup where
toHeaders = const mempty
instance ToPath UpdateAutoScalingGroup where
toPath = const "/"
instance ToQuery UpdateAutoScalingGroup where
toQuery UpdateAutoScalingGroup'{..}
= mconcat
["Action" =:
("UpdateAutoScalingGroup" :: ByteString),
"Version" =: ("2011-01-01" :: ByteString),
"TerminationPolicies" =:
toQuery
(toQueryList "member" <$> _uasgTerminationPolicies),
"HealthCheckGracePeriod" =:
_uasgHealthCheckGracePeriod,
"NewInstancesProtectedFromScaleIn" =:
_uasgNewInstancesProtectedFromScaleIn,
"VPCZoneIdentifier" =: _uasgVPCZoneIdentifier,
"DefaultCooldown" =: _uasgDefaultCooldown,
"MaxSize" =: _uasgMaxSize,
"AvailabilityZones" =:
toQuery
(toQueryList "member" <$> _uasgAvailabilityZones),
"DesiredCapacity" =: _uasgDesiredCapacity,
"MinSize" =: _uasgMinSize,
"LaunchConfigurationName" =:
_uasgLaunchConfigurationName,
"HealthCheckType" =: _uasgHealthCheckType,
"PlacementGroup" =: _uasgPlacementGroup,
"AutoScalingGroupName" =: _uasgAutoScalingGroupName]
data UpdateAutoScalingGroupResponse =
UpdateAutoScalingGroupResponse'
deriving (Eq,Read,Show,Data,Typeable,Generic)
updateAutoScalingGroupResponse
:: UpdateAutoScalingGroupResponse
updateAutoScalingGroupResponse = UpdateAutoScalingGroupResponse'
instance NFData UpdateAutoScalingGroupResponse