amazonka-dms-1.4.1: gen/Network/AWS/DMS/ModifyReplicationInstance.hs
{-# 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 #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.DMS.ModifyReplicationInstance
-- Copyright : (c) 2013-2016 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Modifies the replication instance to apply new settings. You can change
-- one or more parameters by specifying these parameters and the new values
-- in the request.
--
-- Some settings are applied during the maintenance window.
--
module Network.AWS.DMS.ModifyReplicationInstance
(
-- * Creating a Request
modifyReplicationInstance
, ModifyReplicationInstance
-- * Request Lenses
, mriEngineVersion
, mriAutoMinorVersionUpgrade
, mriAllowMajorVersionUpgrade
, mriPreferredMaintenanceWindow
, mriAllocatedStorage
, mriApplyImmediately
, mriReplicationInstanceClass
, mriReplicationInstanceIdentifier
, mriReplicationInstanceARN
-- * Destructuring the Response
, modifyReplicationInstanceResponse
, ModifyReplicationInstanceResponse
-- * Response Lenses
, mrirsReplicationInstance
, mrirsResponseStatus
) where
import Network.AWS.DMS.Types
import Network.AWS.DMS.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | /See:/ 'modifyReplicationInstance' smart constructor.
data ModifyReplicationInstance = ModifyReplicationInstance'
{ _mriEngineVersion :: !(Maybe Text)
, _mriAutoMinorVersionUpgrade :: !(Maybe Bool)
, _mriAllowMajorVersionUpgrade :: !(Maybe Bool)
, _mriPreferredMaintenanceWindow :: !(Maybe Text)
, _mriAllocatedStorage :: !(Maybe Int)
, _mriApplyImmediately :: !(Maybe Bool)
, _mriReplicationInstanceClass :: !(Maybe Text)
, _mriReplicationInstanceIdentifier :: !(Maybe Text)
, _mriReplicationInstanceARN :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'ModifyReplicationInstance' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'mriEngineVersion'
--
-- * 'mriAutoMinorVersionUpgrade'
--
-- * 'mriAllowMajorVersionUpgrade'
--
-- * 'mriPreferredMaintenanceWindow'
--
-- * 'mriAllocatedStorage'
--
-- * 'mriApplyImmediately'
--
-- * 'mriReplicationInstanceClass'
--
-- * 'mriReplicationInstanceIdentifier'
--
-- * 'mriReplicationInstanceARN'
modifyReplicationInstance
:: Text -- ^ 'mriReplicationInstanceARN'
-> ModifyReplicationInstance
modifyReplicationInstance pReplicationInstanceARN_ =
ModifyReplicationInstance'
{ _mriEngineVersion = Nothing
, _mriAutoMinorVersionUpgrade = Nothing
, _mriAllowMajorVersionUpgrade = Nothing
, _mriPreferredMaintenanceWindow = Nothing
, _mriAllocatedStorage = Nothing
, _mriApplyImmediately = Nothing
, _mriReplicationInstanceClass = Nothing
, _mriReplicationInstanceIdentifier = Nothing
, _mriReplicationInstanceARN = pReplicationInstanceARN_
}
-- | The engine version number of the replication instance.
mriEngineVersion :: Lens' ModifyReplicationInstance (Maybe Text)
mriEngineVersion = lens _mriEngineVersion (\ s a -> s{_mriEngineVersion = a});
-- | Indicates that minor version upgrades will be applied automatically to
-- the replication instance during the maintenance window. Changing this
-- parameter does not result in an outage except in the following case and
-- the change is asynchronously applied as soon as possible. An outage will
-- result if this parameter is set to 'true' during the maintenance window,
-- and a newer minor version is available, and AWS DMS has enabled auto
-- patching for that engine version.
mriAutoMinorVersionUpgrade :: Lens' ModifyReplicationInstance (Maybe Bool)
mriAutoMinorVersionUpgrade = lens _mriAutoMinorVersionUpgrade (\ s a -> s{_mriAutoMinorVersionUpgrade = a});
-- | Indicates that major version upgrades are allowed. Changing this
-- parameter does not result in an outage and the change is asynchronously
-- applied as soon as possible.
--
-- Constraints: This parameter must be set to true when specifying a value
-- for the 'EngineVersion' parameter that is a different major version than
-- the replication instance\'s current version.
mriAllowMajorVersionUpgrade :: Lens' ModifyReplicationInstance (Maybe Bool)
mriAllowMajorVersionUpgrade = lens _mriAllowMajorVersionUpgrade (\ s a -> s{_mriAllowMajorVersionUpgrade = a});
-- | The weekly time range (in UTC) during which system maintenance can
-- occur, which might result in an outage. Changing this parameter does not
-- result in an outage, except in the following situation, and the change
-- is asynchronously applied as soon as possible. If moving this window to
-- the current time, there must be at least 30 minutes between the current
-- time and end of the window to ensure pending changes are applied.
--
-- Default: Uses existing setting
--
-- Format: ddd:hh24:mi-ddd:hh24:mi
--
-- Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
--
-- Constraints: Must be at least 30 minutes
mriPreferredMaintenanceWindow :: Lens' ModifyReplicationInstance (Maybe Text)
mriPreferredMaintenanceWindow = lens _mriPreferredMaintenanceWindow (\ s a -> s{_mriPreferredMaintenanceWindow = a});
-- | The amount of storage (in gigabytes) to be allocated for the replication
-- instance.
mriAllocatedStorage :: Lens' ModifyReplicationInstance (Maybe Int)
mriAllocatedStorage = lens _mriAllocatedStorage (\ s a -> s{_mriAllocatedStorage = a});
-- | Indicates whether the changes should be applied immediately or during
-- the next maintenance window.
mriApplyImmediately :: Lens' ModifyReplicationInstance (Maybe Bool)
mriApplyImmediately = lens _mriApplyImmediately (\ s a -> s{_mriApplyImmediately = a});
-- | The compute and memory capacity of the replication instance.
--
-- Valid Values:
-- 'dms.t2.micro | dms.t2.small | dms.t2.medium | dms.t2.large | dms.c4.large | dms.c4.xlarge | dms.c4.2xlarge | dms.c4.4xlarge '
mriReplicationInstanceClass :: Lens' ModifyReplicationInstance (Maybe Text)
mriReplicationInstanceClass = lens _mriReplicationInstanceClass (\ s a -> s{_mriReplicationInstanceClass = a});
-- | The replication instance identifier. This parameter is stored as a
-- lowercase string.
mriReplicationInstanceIdentifier :: Lens' ModifyReplicationInstance (Maybe Text)
mriReplicationInstanceIdentifier = lens _mriReplicationInstanceIdentifier (\ s a -> s{_mriReplicationInstanceIdentifier = a});
-- | The Amazon Resource Name (ARN) of the replication instance.
mriReplicationInstanceARN :: Lens' ModifyReplicationInstance Text
mriReplicationInstanceARN = lens _mriReplicationInstanceARN (\ s a -> s{_mriReplicationInstanceARN = a});
instance AWSRequest ModifyReplicationInstance where
type Rs ModifyReplicationInstance =
ModifyReplicationInstanceResponse
request = postJSON dms
response
= receiveJSON
(\ s h x ->
ModifyReplicationInstanceResponse' <$>
(x .?> "ReplicationInstance") <*>
(pure (fromEnum s)))
instance Hashable ModifyReplicationInstance
instance NFData ModifyReplicationInstance
instance ToHeaders ModifyReplicationInstance where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonDMSv20160101.ModifyReplicationInstance" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ModifyReplicationInstance where
toJSON ModifyReplicationInstance'{..}
= object
(catMaybes
[("EngineVersion" .=) <$> _mriEngineVersion,
("AutoMinorVersionUpgrade" .=) <$>
_mriAutoMinorVersionUpgrade,
("AllowMajorVersionUpgrade" .=) <$>
_mriAllowMajorVersionUpgrade,
("PreferredMaintenanceWindow" .=) <$>
_mriPreferredMaintenanceWindow,
("AllocatedStorage" .=) <$> _mriAllocatedStorage,
("ApplyImmediately" .=) <$> _mriApplyImmediately,
("ReplicationInstanceClass" .=) <$>
_mriReplicationInstanceClass,
("ReplicationInstanceIdentifier" .=) <$>
_mriReplicationInstanceIdentifier,
Just
("ReplicationInstanceArn" .=
_mriReplicationInstanceARN)])
instance ToPath ModifyReplicationInstance where
toPath = const "/"
instance ToQuery ModifyReplicationInstance where
toQuery = const mempty
-- | /See:/ 'modifyReplicationInstanceResponse' smart constructor.
data ModifyReplicationInstanceResponse = ModifyReplicationInstanceResponse'
{ _mrirsReplicationInstance :: !(Maybe ReplicationInstance)
, _mrirsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'ModifyReplicationInstanceResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'mrirsReplicationInstance'
--
-- * 'mrirsResponseStatus'
modifyReplicationInstanceResponse
:: Int -- ^ 'mrirsResponseStatus'
-> ModifyReplicationInstanceResponse
modifyReplicationInstanceResponse pResponseStatus_ =
ModifyReplicationInstanceResponse'
{ _mrirsReplicationInstance = Nothing
, _mrirsResponseStatus = pResponseStatus_
}
-- | The modified replication instance.
mrirsReplicationInstance :: Lens' ModifyReplicationInstanceResponse (Maybe ReplicationInstance)
mrirsReplicationInstance = lens _mrirsReplicationInstance (\ s a -> s{_mrirsReplicationInstance = a});
-- | The response status code.
mrirsResponseStatus :: Lens' ModifyReplicationInstanceResponse Int
mrirsResponseStatus = lens _mrirsResponseStatus (\ s a -> s{_mrirsResponseStatus = a});
instance NFData ModifyReplicationInstanceResponse