module Network.AWS.ElastiCache.ModifyReplicationGroup
(
ModifyReplicationGroup
, modifyReplicationGroup
, mrgApplyImmediately
, mrgAutoMinorVersionUpgrade
, mrgAutomaticFailoverEnabled
, mrgCacheParameterGroupName
, mrgCacheSecurityGroupNames
, mrgEngineVersion
, mrgNotificationTopicArn
, mrgNotificationTopicStatus
, mrgPreferredMaintenanceWindow
, mrgPrimaryClusterId
, mrgReplicationGroupDescription
, mrgReplicationGroupId
, mrgSecurityGroupIds
, mrgSnapshotRetentionLimit
, mrgSnapshotWindow
, mrgSnapshottingClusterId
, ModifyReplicationGroupResponse
, modifyReplicationGroupResponse
, mrgrReplicationGroup
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.ElastiCache.Types
import qualified GHC.Exts
data ModifyReplicationGroup = ModifyReplicationGroup
{ _mrgApplyImmediately :: Maybe Bool
, _mrgAutoMinorVersionUpgrade :: Maybe Bool
, _mrgAutomaticFailoverEnabled :: Maybe Bool
, _mrgCacheParameterGroupName :: Maybe Text
, _mrgCacheSecurityGroupNames :: List "member" Text
, _mrgEngineVersion :: Maybe Text
, _mrgNotificationTopicArn :: Maybe Text
, _mrgNotificationTopicStatus :: Maybe Text
, _mrgPreferredMaintenanceWindow :: Maybe Text
, _mrgPrimaryClusterId :: Maybe Text
, _mrgReplicationGroupDescription :: Maybe Text
, _mrgReplicationGroupId :: Text
, _mrgSecurityGroupIds :: List "member" Text
, _mrgSnapshotRetentionLimit :: Maybe Int
, _mrgSnapshotWindow :: Maybe Text
, _mrgSnapshottingClusterId :: Maybe Text
} deriving (Eq, Ord, Show)
modifyReplicationGroup :: Text
-> ModifyReplicationGroup
modifyReplicationGroup p1 = ModifyReplicationGroup
{ _mrgReplicationGroupId = p1
, _mrgReplicationGroupDescription = Nothing
, _mrgPrimaryClusterId = Nothing
, _mrgSnapshottingClusterId = Nothing
, _mrgAutomaticFailoverEnabled = Nothing
, _mrgCacheSecurityGroupNames = mempty
, _mrgSecurityGroupIds = mempty
, _mrgPreferredMaintenanceWindow = Nothing
, _mrgNotificationTopicArn = Nothing
, _mrgCacheParameterGroupName = Nothing
, _mrgNotificationTopicStatus = Nothing
, _mrgApplyImmediately = Nothing
, _mrgEngineVersion = Nothing
, _mrgAutoMinorVersionUpgrade = Nothing
, _mrgSnapshotRetentionLimit = Nothing
, _mrgSnapshotWindow = Nothing
}
mrgApplyImmediately :: Lens' ModifyReplicationGroup (Maybe Bool)
mrgApplyImmediately =
lens _mrgApplyImmediately (\s a -> s { _mrgApplyImmediately = a })
mrgAutoMinorVersionUpgrade :: Lens' ModifyReplicationGroup (Maybe Bool)
mrgAutoMinorVersionUpgrade =
lens _mrgAutoMinorVersionUpgrade
(\s a -> s { _mrgAutoMinorVersionUpgrade = a })
mrgAutomaticFailoverEnabled :: Lens' ModifyReplicationGroup (Maybe Bool)
mrgAutomaticFailoverEnabled =
lens _mrgAutomaticFailoverEnabled
(\s a -> s { _mrgAutomaticFailoverEnabled = a })
mrgCacheParameterGroupName :: Lens' ModifyReplicationGroup (Maybe Text)
mrgCacheParameterGroupName =
lens _mrgCacheParameterGroupName
(\s a -> s { _mrgCacheParameterGroupName = a })
mrgCacheSecurityGroupNames :: Lens' ModifyReplicationGroup [Text]
mrgCacheSecurityGroupNames =
lens _mrgCacheSecurityGroupNames
(\s a -> s { _mrgCacheSecurityGroupNames = a })
. _List
mrgEngineVersion :: Lens' ModifyReplicationGroup (Maybe Text)
mrgEngineVersion = lens _mrgEngineVersion (\s a -> s { _mrgEngineVersion = a })
mrgNotificationTopicArn :: Lens' ModifyReplicationGroup (Maybe Text)
mrgNotificationTopicArn =
lens _mrgNotificationTopicArn (\s a -> s { _mrgNotificationTopicArn = a })
mrgNotificationTopicStatus :: Lens' ModifyReplicationGroup (Maybe Text)
mrgNotificationTopicStatus =
lens _mrgNotificationTopicStatus
(\s a -> s { _mrgNotificationTopicStatus = a })
mrgPreferredMaintenanceWindow :: Lens' ModifyReplicationGroup (Maybe Text)
mrgPreferredMaintenanceWindow =
lens _mrgPreferredMaintenanceWindow
(\s a -> s { _mrgPreferredMaintenanceWindow = a })
mrgPrimaryClusterId :: Lens' ModifyReplicationGroup (Maybe Text)
mrgPrimaryClusterId =
lens _mrgPrimaryClusterId (\s a -> s { _mrgPrimaryClusterId = a })
mrgReplicationGroupDescription :: Lens' ModifyReplicationGroup (Maybe Text)
mrgReplicationGroupDescription =
lens _mrgReplicationGroupDescription
(\s a -> s { _mrgReplicationGroupDescription = a })
mrgReplicationGroupId :: Lens' ModifyReplicationGroup Text
mrgReplicationGroupId =
lens _mrgReplicationGroupId (\s a -> s { _mrgReplicationGroupId = a })
mrgSecurityGroupIds :: Lens' ModifyReplicationGroup [Text]
mrgSecurityGroupIds =
lens _mrgSecurityGroupIds (\s a -> s { _mrgSecurityGroupIds = a })
. _List
mrgSnapshotRetentionLimit :: Lens' ModifyReplicationGroup (Maybe Int)
mrgSnapshotRetentionLimit =
lens _mrgSnapshotRetentionLimit
(\s a -> s { _mrgSnapshotRetentionLimit = a })
mrgSnapshotWindow :: Lens' ModifyReplicationGroup (Maybe Text)
mrgSnapshotWindow =
lens _mrgSnapshotWindow (\s a -> s { _mrgSnapshotWindow = a })
mrgSnapshottingClusterId :: Lens' ModifyReplicationGroup (Maybe Text)
mrgSnapshottingClusterId =
lens _mrgSnapshottingClusterId
(\s a -> s { _mrgSnapshottingClusterId = a })
newtype ModifyReplicationGroupResponse = ModifyReplicationGroupResponse
{ _mrgrReplicationGroup :: Maybe ReplicationGroup
} deriving (Eq, Show)
modifyReplicationGroupResponse :: ModifyReplicationGroupResponse
modifyReplicationGroupResponse = ModifyReplicationGroupResponse
{ _mrgrReplicationGroup = Nothing
}
mrgrReplicationGroup :: Lens' ModifyReplicationGroupResponse (Maybe ReplicationGroup)
mrgrReplicationGroup =
lens _mrgrReplicationGroup (\s a -> s { _mrgrReplicationGroup = a })
instance ToPath ModifyReplicationGroup where
toPath = const "/"
instance ToQuery ModifyReplicationGroup where
toQuery ModifyReplicationGroup{..} = mconcat
[ "ApplyImmediately" =? _mrgApplyImmediately
, "AutoMinorVersionUpgrade" =? _mrgAutoMinorVersionUpgrade
, "AutomaticFailoverEnabled" =? _mrgAutomaticFailoverEnabled
, "CacheParameterGroupName" =? _mrgCacheParameterGroupName
, "CacheSecurityGroupNames" =? _mrgCacheSecurityGroupNames
, "EngineVersion" =? _mrgEngineVersion
, "NotificationTopicArn" =? _mrgNotificationTopicArn
, "NotificationTopicStatus" =? _mrgNotificationTopicStatus
, "PreferredMaintenanceWindow" =? _mrgPreferredMaintenanceWindow
, "PrimaryClusterId" =? _mrgPrimaryClusterId
, "ReplicationGroupDescription" =? _mrgReplicationGroupDescription
, "ReplicationGroupId" =? _mrgReplicationGroupId
, "SecurityGroupIds" =? _mrgSecurityGroupIds
, "SnapshotRetentionLimit" =? _mrgSnapshotRetentionLimit
, "SnapshotWindow" =? _mrgSnapshotWindow
, "SnapshottingClusterId" =? _mrgSnapshottingClusterId
]
instance ToHeaders ModifyReplicationGroup
instance AWSRequest ModifyReplicationGroup where
type Sv ModifyReplicationGroup = ElastiCache
type Rs ModifyReplicationGroup = ModifyReplicationGroupResponse
request = post "ModifyReplicationGroup"
response = xmlResponse
instance FromXML ModifyReplicationGroupResponse where
parseXML = withElement "ModifyReplicationGroupResult" $ \x -> ModifyReplicationGroupResponse
<$> x .@? "ReplicationGroup"