{-# 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 -- 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