{-# 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.DAX.IncreaseReplicationFactor
(
increaseReplicationFactor
, IncreaseReplicationFactor
, irfAvailabilityZones
, irfClusterName
, irfNewReplicationFactor
, increaseReplicationFactorResponse
, IncreaseReplicationFactorResponse
, irfrsCluster
, irfrsResponseStatus
) where
import Network.AWS.DAX.Types
import Network.AWS.DAX.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data IncreaseReplicationFactor = IncreaseReplicationFactor'
{ _irfAvailabilityZones :: !(Maybe [Text])
, _irfClusterName :: !Text
, _irfNewReplicationFactor :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
increaseReplicationFactor
:: Text
-> Int
-> IncreaseReplicationFactor
increaseReplicationFactor pClusterName_ pNewReplicationFactor_ =
IncreaseReplicationFactor'
{ _irfAvailabilityZones = Nothing
, _irfClusterName = pClusterName_
, _irfNewReplicationFactor = pNewReplicationFactor_
}
irfAvailabilityZones :: Lens' IncreaseReplicationFactor [Text]
irfAvailabilityZones = lens _irfAvailabilityZones (\ s a -> s{_irfAvailabilityZones = a}) . _Default . _Coerce
irfClusterName :: Lens' IncreaseReplicationFactor Text
irfClusterName = lens _irfClusterName (\ s a -> s{_irfClusterName = a})
irfNewReplicationFactor :: Lens' IncreaseReplicationFactor Int
irfNewReplicationFactor = lens _irfNewReplicationFactor (\ s a -> s{_irfNewReplicationFactor = a})
instance AWSRequest IncreaseReplicationFactor where
type Rs IncreaseReplicationFactor =
IncreaseReplicationFactorResponse
request = postJSON dax
response
= receiveJSON
(\ s h x ->
IncreaseReplicationFactorResponse' <$>
(x .?> "Cluster") <*> (pure (fromEnum s)))
instance Hashable IncreaseReplicationFactor where
instance NFData IncreaseReplicationFactor where
instance ToHeaders IncreaseReplicationFactor where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonDAXV3.IncreaseReplicationFactor" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON IncreaseReplicationFactor where
toJSON IncreaseReplicationFactor'{..}
= object
(catMaybes
[("AvailabilityZones" .=) <$> _irfAvailabilityZones,
Just ("ClusterName" .= _irfClusterName),
Just
("NewReplicationFactor" .=
_irfNewReplicationFactor)])
instance ToPath IncreaseReplicationFactor where
toPath = const "/"
instance ToQuery IncreaseReplicationFactor where
toQuery = const mempty
data IncreaseReplicationFactorResponse = IncreaseReplicationFactorResponse'
{ _irfrsCluster :: !(Maybe Cluster)
, _irfrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
increaseReplicationFactorResponse
:: Int
-> IncreaseReplicationFactorResponse
increaseReplicationFactorResponse pResponseStatus_ =
IncreaseReplicationFactorResponse'
{_irfrsCluster = Nothing, _irfrsResponseStatus = pResponseStatus_}
irfrsCluster :: Lens' IncreaseReplicationFactorResponse (Maybe Cluster)
irfrsCluster = lens _irfrsCluster (\ s a -> s{_irfrsCluster = a})
irfrsResponseStatus :: Lens' IncreaseReplicationFactorResponse Int
irfrsResponseStatus = lens _irfrsResponseStatus (\ s a -> s{_irfrsResponseStatus = a})
instance NFData IncreaseReplicationFactorResponse
where