{-# 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.ElastiCache.ModifyReplicationGroupShardConfiguration
(
modifyReplicationGroupShardConfiguration
, ModifyReplicationGroupShardConfiguration
, mrgscReshardingConfiguration
, mrgscNodeGroupsToRemove
, mrgscReplicationGroupId
, mrgscNodeGroupCount
, mrgscApplyImmediately
, modifyReplicationGroupShardConfigurationResponse
, ModifyReplicationGroupShardConfigurationResponse
, mrgscrsReplicationGroup
, mrgscrsResponseStatus
) where
import Network.AWS.ElastiCache.Types
import Network.AWS.ElastiCache.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ModifyReplicationGroupShardConfiguration = ModifyReplicationGroupShardConfiguration'
{ _mrgscReshardingConfiguration :: !(Maybe [ReshardingConfiguration])
, _mrgscNodeGroupsToRemove :: !(Maybe [Text])
, _mrgscReplicationGroupId :: !Text
, _mrgscNodeGroupCount :: !Int
, _mrgscApplyImmediately :: !Bool
} deriving (Eq, Read, Show, Data, Typeable, Generic)
modifyReplicationGroupShardConfiguration
:: Text
-> Int
-> Bool
-> ModifyReplicationGroupShardConfiguration
modifyReplicationGroupShardConfiguration pReplicationGroupId_ pNodeGroupCount_ pApplyImmediately_ =
ModifyReplicationGroupShardConfiguration'
{ _mrgscReshardingConfiguration = Nothing
, _mrgscNodeGroupsToRemove = Nothing
, _mrgscReplicationGroupId = pReplicationGroupId_
, _mrgscNodeGroupCount = pNodeGroupCount_
, _mrgscApplyImmediately = pApplyImmediately_
}
mrgscReshardingConfiguration :: Lens' ModifyReplicationGroupShardConfiguration [ReshardingConfiguration]
mrgscReshardingConfiguration = lens _mrgscReshardingConfiguration (\ s a -> s{_mrgscReshardingConfiguration = a}) . _Default . _Coerce
mrgscNodeGroupsToRemove :: Lens' ModifyReplicationGroupShardConfiguration [Text]
mrgscNodeGroupsToRemove = lens _mrgscNodeGroupsToRemove (\ s a -> s{_mrgscNodeGroupsToRemove = a}) . _Default . _Coerce
mrgscReplicationGroupId :: Lens' ModifyReplicationGroupShardConfiguration Text
mrgscReplicationGroupId = lens _mrgscReplicationGroupId (\ s a -> s{_mrgscReplicationGroupId = a})
mrgscNodeGroupCount :: Lens' ModifyReplicationGroupShardConfiguration Int
mrgscNodeGroupCount = lens _mrgscNodeGroupCount (\ s a -> s{_mrgscNodeGroupCount = a})
mrgscApplyImmediately :: Lens' ModifyReplicationGroupShardConfiguration Bool
mrgscApplyImmediately = lens _mrgscApplyImmediately (\ s a -> s{_mrgscApplyImmediately = a})
instance AWSRequest
ModifyReplicationGroupShardConfiguration
where
type Rs ModifyReplicationGroupShardConfiguration =
ModifyReplicationGroupShardConfigurationResponse
request = postQuery elastiCache
response
= receiveXMLWrapper
"ModifyReplicationGroupShardConfigurationResult"
(\ s h x ->
ModifyReplicationGroupShardConfigurationResponse' <$>
(x .@? "ReplicationGroup") <*> (pure (fromEnum s)))
instance Hashable
ModifyReplicationGroupShardConfiguration
where
instance NFData
ModifyReplicationGroupShardConfiguration
where
instance ToHeaders
ModifyReplicationGroupShardConfiguration
where
toHeaders = const mempty
instance ToPath
ModifyReplicationGroupShardConfiguration
where
toPath = const "/"
instance ToQuery
ModifyReplicationGroupShardConfiguration
where
toQuery ModifyReplicationGroupShardConfiguration'{..}
= mconcat
["Action" =:
("ModifyReplicationGroupShardConfiguration" ::
ByteString),
"Version" =: ("2015-02-02" :: ByteString),
"ReshardingConfiguration" =:
toQuery
(toQueryList "ReshardingConfiguration" <$>
_mrgscReshardingConfiguration),
"NodeGroupsToRemove" =:
toQuery
(toQueryList "NodeGroupToRemove" <$>
_mrgscNodeGroupsToRemove),
"ReplicationGroupId" =: _mrgscReplicationGroupId,
"NodeGroupCount" =: _mrgscNodeGroupCount,
"ApplyImmediately" =: _mrgscApplyImmediately]
data ModifyReplicationGroupShardConfigurationResponse = ModifyReplicationGroupShardConfigurationResponse'
{ _mrgscrsReplicationGroup :: !(Maybe ReplicationGroup)
, _mrgscrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
modifyReplicationGroupShardConfigurationResponse
:: Int
-> ModifyReplicationGroupShardConfigurationResponse
modifyReplicationGroupShardConfigurationResponse pResponseStatus_ =
ModifyReplicationGroupShardConfigurationResponse'
{ _mrgscrsReplicationGroup = Nothing
, _mrgscrsResponseStatus = pResponseStatus_
}
mrgscrsReplicationGroup :: Lens' ModifyReplicationGroupShardConfigurationResponse (Maybe ReplicationGroup)
mrgscrsReplicationGroup = lens _mrgscrsReplicationGroup (\ s a -> s{_mrgscrsReplicationGroup = a})
mrgscrsResponseStatus :: Lens' ModifyReplicationGroupShardConfigurationResponse Int
mrgscrsResponseStatus = lens _mrgscrsResponseStatus (\ s a -> s{_mrgscrsResponseStatus = a})
instance NFData
ModifyReplicationGroupShardConfigurationResponse
where