amazonka-rds-1.0.0: gen/Network/AWS/RDS/ModifyDBInstance.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.RDS.ModifyDBInstance
-- Copyright : (c) 2013-2015 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)
--
-- Modify settings for a DB instance. You can change one or more database
-- configuration parameters by specifying these parameters and the new
-- values in the request.
--
-- /See:/ <http://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html AWS API Reference> for ModifyDBInstance.
module Network.AWS.RDS.ModifyDBInstance
(
-- * Creating a Request
modifyDBInstance
, ModifyDBInstance
-- * Request Lenses
, mdiDBSecurityGroups
, mdiEngineVersion
, mdiAutoMinorVersionUpgrade
, mdiMasterUserPassword
, mdiIOPS
, mdiAllowMajorVersionUpgrade
, mdiNewDBInstanceIdentifier
, mdiDomain
, mdiTDECredentialPassword
, mdiDBInstanceClass
, mdiPreferredMaintenanceWindow
, mdiCACertificateIdentifier
, mdiPreferredBackupWindow
, mdiBackupRetentionPeriod
, mdiDBParameterGroupName
, mdiVPCSecurityGroupIds
, mdiMultiAZ
, mdiAllocatedStorage
, mdiApplyImmediately
, mdiTDECredentialARN
, mdiOptionGroupName
, mdiCopyTagsToSnapshot
, mdiStorageType
, mdiDBInstanceIdentifier
-- * Destructuring the Response
, modifyDBInstanceResponse
, ModifyDBInstanceResponse
-- * Response Lenses
, mdirsDBInstance
, mdirsStatus
) where
import Network.AWS.Prelude
import Network.AWS.RDS.Types
import Network.AWS.RDS.Types.Product
import Network.AWS.Request
import Network.AWS.Response
-- |
--
-- /See:/ 'modifyDBInstance' smart constructor.
data ModifyDBInstance = ModifyDBInstance'
{ _mdiDBSecurityGroups :: !(Maybe [Text])
, _mdiEngineVersion :: !(Maybe Text)
, _mdiAutoMinorVersionUpgrade :: !(Maybe Bool)
, _mdiMasterUserPassword :: !(Maybe Text)
, _mdiIOPS :: !(Maybe Int)
, _mdiAllowMajorVersionUpgrade :: !(Maybe Bool)
, _mdiNewDBInstanceIdentifier :: !(Maybe Text)
, _mdiDomain :: !(Maybe Text)
, _mdiTDECredentialPassword :: !(Maybe Text)
, _mdiDBInstanceClass :: !(Maybe Text)
, _mdiPreferredMaintenanceWindow :: !(Maybe Text)
, _mdiCACertificateIdentifier :: !(Maybe Text)
, _mdiPreferredBackupWindow :: !(Maybe Text)
, _mdiBackupRetentionPeriod :: !(Maybe Int)
, _mdiDBParameterGroupName :: !(Maybe Text)
, _mdiVPCSecurityGroupIds :: !(Maybe [Text])
, _mdiMultiAZ :: !(Maybe Bool)
, _mdiAllocatedStorage :: !(Maybe Int)
, _mdiApplyImmediately :: !(Maybe Bool)
, _mdiTDECredentialARN :: !(Maybe Text)
, _mdiOptionGroupName :: !(Maybe Text)
, _mdiCopyTagsToSnapshot :: !(Maybe Bool)
, _mdiStorageType :: !(Maybe Text)
, _mdiDBInstanceIdentifier :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'ModifyDBInstance' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'mdiDBSecurityGroups'
--
-- * 'mdiEngineVersion'
--
-- * 'mdiAutoMinorVersionUpgrade'
--
-- * 'mdiMasterUserPassword'
--
-- * 'mdiIOPS'
--
-- * 'mdiAllowMajorVersionUpgrade'
--
-- * 'mdiNewDBInstanceIdentifier'
--
-- * 'mdiDomain'
--
-- * 'mdiTDECredentialPassword'
--
-- * 'mdiDBInstanceClass'
--
-- * 'mdiPreferredMaintenanceWindow'
--
-- * 'mdiCACertificateIdentifier'
--
-- * 'mdiPreferredBackupWindow'
--
-- * 'mdiBackupRetentionPeriod'
--
-- * 'mdiDBParameterGroupName'
--
-- * 'mdiVPCSecurityGroupIds'
--
-- * 'mdiMultiAZ'
--
-- * 'mdiAllocatedStorage'
--
-- * 'mdiApplyImmediately'
--
-- * 'mdiTDECredentialARN'
--
-- * 'mdiOptionGroupName'
--
-- * 'mdiCopyTagsToSnapshot'
--
-- * 'mdiStorageType'
--
-- * 'mdiDBInstanceIdentifier'
modifyDBInstance
:: Text -- ^ 'mdiDBInstanceIdentifier'
-> ModifyDBInstance
modifyDBInstance pDBInstanceIdentifier_ =
ModifyDBInstance'
{ _mdiDBSecurityGroups = Nothing
, _mdiEngineVersion = Nothing
, _mdiAutoMinorVersionUpgrade = Nothing
, _mdiMasterUserPassword = Nothing
, _mdiIOPS = Nothing
, _mdiAllowMajorVersionUpgrade = Nothing
, _mdiNewDBInstanceIdentifier = Nothing
, _mdiDomain = Nothing
, _mdiTDECredentialPassword = Nothing
, _mdiDBInstanceClass = Nothing
, _mdiPreferredMaintenanceWindow = Nothing
, _mdiCACertificateIdentifier = Nothing
, _mdiPreferredBackupWindow = Nothing
, _mdiBackupRetentionPeriod = Nothing
, _mdiDBParameterGroupName = Nothing
, _mdiVPCSecurityGroupIds = Nothing
, _mdiMultiAZ = Nothing
, _mdiAllocatedStorage = Nothing
, _mdiApplyImmediately = Nothing
, _mdiTDECredentialARN = Nothing
, _mdiOptionGroupName = Nothing
, _mdiCopyTagsToSnapshot = Nothing
, _mdiStorageType = Nothing
, _mdiDBInstanceIdentifier = pDBInstanceIdentifier_
}
-- | A list of DB security groups to authorize on this DB instance. Changing
-- this setting does not result in an outage and the change is
-- asynchronously applied as soon as possible.
--
-- Constraints:
--
-- - Must be 1 to 255 alphanumeric characters
-- - First character must be a letter
-- - Cannot end with a hyphen or contain two consecutive hyphens
mdiDBSecurityGroups :: Lens' ModifyDBInstance [Text]
mdiDBSecurityGroups = lens _mdiDBSecurityGroups (\ s a -> s{_mdiDBSecurityGroups = a}) . _Default . _Coerce;
-- | The version number of the database engine to upgrade to. Changing this
-- parameter results in an outage and the change is applied during the next
-- maintenance window unless the 'ApplyImmediately' parameter is set to
-- 'true' for this request.
--
-- For major version upgrades, if a non-default DB parameter group is
-- currently in use, a new DB parameter group in the DB parameter group
-- family for the new engine version must be specified. The new DB
-- parameter group can be the default for that DB parameter group family.
--
-- For a list of valid engine versions, see CreateDBInstance.
mdiEngineVersion :: Lens' ModifyDBInstance (Maybe Text)
mdiEngineVersion = lens _mdiEngineVersion (\ s a -> s{_mdiEngineVersion = a});
-- | Indicates that minor version upgrades will be applied automatically to
-- the DB 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 RDS has enabled auto patching for
-- that engine version.
mdiAutoMinorVersionUpgrade :: Lens' ModifyDBInstance (Maybe Bool)
mdiAutoMinorVersionUpgrade = lens _mdiAutoMinorVersionUpgrade (\ s a -> s{_mdiAutoMinorVersionUpgrade = a});
-- | The new password for the DB instance master user. Can be any printable
-- ASCII character except \"\/\", \"\"\", or \"\'\".
--
-- Changing this parameter does not result in an outage and the change is
-- asynchronously applied as soon as possible. Between the time of the
-- request and the completion of the request, the 'MasterUserPassword'
-- element exists in the 'PendingModifiedValues' element of the operation
-- response.
--
-- Default: Uses existing setting
--
-- Constraints: Must be 8 to 41 alphanumeric characters (MySQL), 8 to 30
-- alphanumeric characters (Oracle), or 8 to 128 alphanumeric characters
-- (SQL Server).
--
-- Amazon RDS API actions never return the password, so this action
-- provides a way to regain access to a primary instance user if the
-- password is lost. This includes restoring privileges that might have
-- been accidentally revoked.
mdiMasterUserPassword :: Lens' ModifyDBInstance (Maybe Text)
mdiMasterUserPassword = lens _mdiMasterUserPassword (\ s a -> s{_mdiMasterUserPassword = a});
-- | The new Provisioned IOPS (I\/O operations per second) value for the RDS
-- instance. Changing this setting does not result in an outage and the
-- change is applied during the next maintenance window unless the
-- 'ApplyImmediately' parameter is set to 'true' for this request.
--
-- Default: Uses existing setting
--
-- Constraints: Value supplied must be at least 10% greater than the
-- current value. Values that are not at least 10% greater than the
-- existing value are rounded up so that they are 10% greater than the
-- current value. If you are migrating from Provisioned IOPS to standard
-- storage, set this value to 0. The DB instance will require a reboot for
-- the change in storage type to take effect.
--
-- __SQL Server__
--
-- Setting the IOPS value for the SQL Server database engine is not
-- supported.
--
-- Type: Integer
--
-- If you choose to migrate your DB instance from using standard storage to
-- using Provisioned IOPS, or from using Provisioned IOPS to using standard
-- storage, the process can take time. The duration of the migration
-- depends on several factors such as database load, storage size, storage
-- type (standard or Provisioned IOPS), amount of IOPS provisioned (if
-- any), and the number of prior scale storage operations. Typical
-- migration times are under 24 hours, but the process can take up to
-- several days in some cases. During the migration, the DB instance will
-- be available for use, but might experience performance degradation.
-- While the migration takes place, nightly backups for the instance will
-- be suspended. No other Amazon RDS operations can take place for the
-- instance, including modifying the instance, rebooting the instance,
-- deleting the instance, creating a Read Replica for the instance, and
-- creating a DB snapshot of the instance.
mdiIOPS :: Lens' ModifyDBInstance (Maybe Int)
mdiIOPS = lens _mdiIOPS (\ s a -> s{_mdiIOPS = 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 DB instance\'s current version.
mdiAllowMajorVersionUpgrade :: Lens' ModifyDBInstance (Maybe Bool)
mdiAllowMajorVersionUpgrade = lens _mdiAllowMajorVersionUpgrade (\ s a -> s{_mdiAllowMajorVersionUpgrade = a});
-- | The new DB instance identifier for the DB instance when renaming a DB
-- instance. When you change the DB instance identifier, an instance reboot
-- will occur immediately if you set 'Apply Immediately' to true, or will
-- occur during the next maintenance window if 'Apply Immediately' to
-- false. This value is stored as a lowercase string.
--
-- Constraints:
--
-- - Must contain from 1 to 63 alphanumeric characters or hyphens
-- - First character must be a letter
-- - Cannot end with a hyphen or contain two consecutive hyphens
mdiNewDBInstanceIdentifier :: Lens' ModifyDBInstance (Maybe Text)
mdiNewDBInstanceIdentifier = lens _mdiNewDBInstanceIdentifier (\ s a -> s{_mdiNewDBInstanceIdentifier = a});
-- | Specify the Active Directory Domain to move the instance to.
--
-- The specified Active Directory Domain must be created prior to this
-- operation. Currently only SQL Server instance can be created in a Domain
mdiDomain :: Lens' ModifyDBInstance (Maybe Text)
mdiDomain = lens _mdiDomain (\ s a -> s{_mdiDomain = a});
-- | The password for the given ARN from the Key Store in order to access the
-- device.
mdiTDECredentialPassword :: Lens' ModifyDBInstance (Maybe Text)
mdiTDECredentialPassword = lens _mdiTDECredentialPassword (\ s a -> s{_mdiTDECredentialPassword = a});
-- | The new compute and memory capacity of the DB instance. To determine the
-- instance classes that are available for a particular DB engine, use the
-- DescribeOrderableDBInstanceOptions action.
--
-- Passing a value for this setting causes an outage during the change and
-- is applied during the next maintenance window, unless 'ApplyImmediately'
-- is specified as 'true' for this request.
--
-- Default: Uses existing setting
--
-- Valid Values:
-- 'db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium'
mdiDBInstanceClass :: Lens' ModifyDBInstance (Maybe Text)
mdiDBInstanceClass = lens _mdiDBInstanceClass (\ s a -> s{_mdiDBInstanceClass = 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 there are pending
-- actions that cause a reboot, and the maintenance window is changed to
-- include the current time, then changing this parameter will cause a
-- reboot of the DB instance. 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
mdiPreferredMaintenanceWindow :: Lens' ModifyDBInstance (Maybe Text)
mdiPreferredMaintenanceWindow = lens _mdiPreferredMaintenanceWindow (\ s a -> s{_mdiPreferredMaintenanceWindow = a});
-- | Indicates the certificate that needs to be associated with the instance.
mdiCACertificateIdentifier :: Lens' ModifyDBInstance (Maybe Text)
mdiCACertificateIdentifier = lens _mdiCACertificateIdentifier (\ s a -> s{_mdiCACertificateIdentifier = a});
-- | The daily time range during which automated backups are created if
-- automated backups are enabled, as determined by the
-- 'BackupRetentionPeriod' parameter. Changing this parameter does not
-- result in an outage and the change is asynchronously applied as soon as
-- possible.
--
-- Constraints:
--
-- - Must be in the format hh24:mi-hh24:mi
-- - Times should be in Universal Time Coordinated (UTC)
-- - Must not conflict with the preferred maintenance window
-- - Must be at least 30 minutes
mdiPreferredBackupWindow :: Lens' ModifyDBInstance (Maybe Text)
mdiPreferredBackupWindow = lens _mdiPreferredBackupWindow (\ s a -> s{_mdiPreferredBackupWindow = a});
-- | The number of days to retain automated backups. Setting this parameter
-- to a positive number enables backups. Setting this parameter to 0
-- disables automated backups.
--
-- Changing this parameter can result in an outage if you change from 0 to
-- a non-zero value or from a non-zero value to 0. These changes are
-- applied during the next maintenance window unless the 'ApplyImmediately'
-- parameter is set to 'true' for this request. If you change the parameter
-- from one non-zero value to another non-zero value, the change is
-- asynchronously applied as soon as possible.
--
-- Default: Uses existing setting
--
-- Constraints:
--
-- - Must be a value from 0 to 35
-- - Can be specified for a MySQL Read Replica only if the source is
-- running MySQL 5.6
-- - Can be specified for a PostgreSQL Read Replica only if the source is
-- running PostgreSQL 9.3.5
-- - Cannot be set to 0 if the DB instance is a source to Read Replicas
mdiBackupRetentionPeriod :: Lens' ModifyDBInstance (Maybe Int)
mdiBackupRetentionPeriod = lens _mdiBackupRetentionPeriod (\ s a -> s{_mdiBackupRetentionPeriod = a});
-- | The name of the DB parameter group to apply to the DB instance. Changing
-- this setting does not result in an outage. The parameter group name
-- itself is changed immediately, but the actual parameter changes are not
-- applied until you reboot the instance without failover. The db instance
-- will NOT be rebooted automatically and the parameter changes will NOT be
-- applied during the next maintenance window.
--
-- Default: Uses existing setting
--
-- Constraints: The DB parameter group must be in the same DB parameter
-- group family as this DB instance.
mdiDBParameterGroupName :: Lens' ModifyDBInstance (Maybe Text)
mdiDBParameterGroupName = lens _mdiDBParameterGroupName (\ s a -> s{_mdiDBParameterGroupName = a});
-- | A list of EC2 VPC security groups to authorize on this DB instance. This
-- change is asynchronously applied as soon as possible.
--
-- Constraints:
--
-- - Must be 1 to 255 alphanumeric characters
-- - First character must be a letter
-- - Cannot end with a hyphen or contain two consecutive hyphens
mdiVPCSecurityGroupIds :: Lens' ModifyDBInstance [Text]
mdiVPCSecurityGroupIds = lens _mdiVPCSecurityGroupIds (\ s a -> s{_mdiVPCSecurityGroupIds = a}) . _Default . _Coerce;
-- | Specifies if the DB instance is a Multi-AZ deployment. Changing this
-- parameter does not result in an outage and the change is applied during
-- the next maintenance window unless the 'ApplyImmediately' parameter is
-- set to 'true' for this request.
--
-- Constraints: Cannot be specified if the DB instance is a Read Replica.
-- This parameter cannot be used with SQL Server DB instances. Multi-AZ for
-- SQL Server DB instances is set using the Mirroring option in an option
-- group associated with the DB instance.
mdiMultiAZ :: Lens' ModifyDBInstance (Maybe Bool)
mdiMultiAZ = lens _mdiMultiAZ (\ s a -> s{_mdiMultiAZ = a});
-- | The new storage capacity of the RDS instance. Changing this setting does
-- not result in an outage and the change is applied during the next
-- maintenance window unless 'ApplyImmediately' is set to 'true' for this
-- request.
--
-- __MySQL__
--
-- Default: Uses existing setting
--
-- Valid Values: 5-6144
--
-- Constraints: Value supplied must be at least 10% greater than the
-- current value. Values that are not at least 10% greater than the
-- existing value are rounded up so that they are 10% greater than the
-- current value.
--
-- Type: Integer
--
-- __PostgreSQL__
--
-- Default: Uses existing setting
--
-- Valid Values: 5-6144
--
-- Constraints: Value supplied must be at least 10% greater than the
-- current value. Values that are not at least 10% greater than the
-- existing value are rounded up so that they are 10% greater than the
-- current value.
--
-- Type: Integer
--
-- __Oracle__
--
-- Default: Uses existing setting
--
-- Valid Values: 10-6144
--
-- Constraints: Value supplied must be at least 10% greater than the
-- current value. Values that are not at least 10% greater than the
-- existing value are rounded up so that they are 10% greater than the
-- current value.
--
-- __SQL Server__
--
-- Cannot be modified.
--
-- If you choose to migrate your DB instance from using standard storage to
-- using Provisioned IOPS, or from using Provisioned IOPS to using standard
-- storage, the process can take time. The duration of the migration
-- depends on several factors such as database load, storage size, storage
-- type (standard or Provisioned IOPS), amount of IOPS provisioned (if
-- any), and the number of prior scale storage operations. Typical
-- migration times are under 24 hours, but the process can take up to
-- several days in some cases. During the migration, the DB instance will
-- be available for use, but might experience performance degradation.
-- While the migration takes place, nightly backups for the instance will
-- be suspended. No other Amazon RDS operations can take place for the
-- instance, including modifying the instance, rebooting the instance,
-- deleting the instance, creating a Read Replica for the instance, and
-- creating a DB snapshot of the instance.
mdiAllocatedStorage :: Lens' ModifyDBInstance (Maybe Int)
mdiAllocatedStorage = lens _mdiAllocatedStorage (\ s a -> s{_mdiAllocatedStorage = a});
-- | Specifies whether the modifications in this request and any pending
-- modifications are asynchronously applied as soon as possible, regardless
-- of the 'PreferredMaintenanceWindow' setting for the DB instance.
--
-- If this parameter is set to 'false', changes to the DB instance are
-- applied during the next maintenance window. Some parameter changes can
-- cause an outage and will be applied on the next call to
-- RebootDBInstance, or the next failure reboot. Review the table of
-- parameters in
-- <http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.html#Overview.DBInstance.Modifying Modifying a DB Instance and Using the Apply Immediately Parameter>
-- to see the impact that setting 'ApplyImmediately' to 'true' or 'false'
-- has for each modified parameter and to determine when the changes will
-- be applied.
--
-- Default: 'false'
mdiApplyImmediately :: Lens' ModifyDBInstance (Maybe Bool)
mdiApplyImmediately = lens _mdiApplyImmediately (\ s a -> s{_mdiApplyImmediately = a});
-- | The ARN from the Key Store with which to associate the instance for TDE
-- encryption.
mdiTDECredentialARN :: Lens' ModifyDBInstance (Maybe Text)
mdiTDECredentialARN = lens _mdiTDECredentialARN (\ s a -> s{_mdiTDECredentialARN = a});
-- | Indicates that the DB instance should be associated with the specified
-- option group. Changing this parameter does not result in an outage
-- except in the following case and the change is applied during the next
-- maintenance window unless the 'ApplyImmediately' parameter is set to
-- 'true' for this request. If the parameter change results in an option
-- group that enables OEM, this change can cause a brief (sub-second)
-- period during which new connections are rejected but existing
-- connections are not interrupted.
--
-- Permanent options, such as the TDE option for Oracle Advanced Security
-- TDE, cannot be removed from an option group, and that option group
-- cannot be removed from a DB instance once it is associated with a DB
-- instance
mdiOptionGroupName :: Lens' ModifyDBInstance (Maybe Text)
mdiOptionGroupName = lens _mdiOptionGroupName (\ s a -> s{_mdiOptionGroupName = a});
-- | This property is not currently implemented.
mdiCopyTagsToSnapshot :: Lens' ModifyDBInstance (Maybe Bool)
mdiCopyTagsToSnapshot = lens _mdiCopyTagsToSnapshot (\ s a -> s{_mdiCopyTagsToSnapshot = a});
-- | Specifies the storage type to be associated with the DB instance.
--
-- Valid values: 'standard | gp2 | io1'
--
-- If you specify 'io1', you must also include a value for the 'Iops'
-- parameter.
--
-- Default: 'io1' if the 'Iops' parameter is specified; otherwise
-- 'standard'
mdiStorageType :: Lens' ModifyDBInstance (Maybe Text)
mdiStorageType = lens _mdiStorageType (\ s a -> s{_mdiStorageType = a});
-- | The DB instance identifier. This value is stored as a lowercase string.
--
-- Constraints:
--
-- - Must be the identifier for an existing DB instance
-- - Must contain from 1 to 63 alphanumeric characters or hyphens
-- - First character must be a letter
-- - Cannot end with a hyphen or contain two consecutive hyphens
mdiDBInstanceIdentifier :: Lens' ModifyDBInstance Text
mdiDBInstanceIdentifier = lens _mdiDBInstanceIdentifier (\ s a -> s{_mdiDBInstanceIdentifier = a});
instance AWSRequest ModifyDBInstance where
type Sv ModifyDBInstance = RDS
type Rs ModifyDBInstance = ModifyDBInstanceResponse
request = postQuery
response
= receiveXMLWrapper "ModifyDBInstanceResult"
(\ s h x ->
ModifyDBInstanceResponse' <$>
(x .@? "DBInstance") <*> (pure (fromEnum s)))
instance ToHeaders ModifyDBInstance where
toHeaders = const mempty
instance ToPath ModifyDBInstance where
toPath = const "/"
instance ToQuery ModifyDBInstance where
toQuery ModifyDBInstance'{..}
= mconcat
["Action" =: ("ModifyDBInstance" :: ByteString),
"Version" =: ("2014-10-31" :: ByteString),
"DBSecurityGroups" =:
toQuery
(toQueryList "DBSecurityGroupName" <$>
_mdiDBSecurityGroups),
"EngineVersion" =: _mdiEngineVersion,
"AutoMinorVersionUpgrade" =:
_mdiAutoMinorVersionUpgrade,
"MasterUserPassword" =: _mdiMasterUserPassword,
"Iops" =: _mdiIOPS,
"AllowMajorVersionUpgrade" =:
_mdiAllowMajorVersionUpgrade,
"NewDBInstanceIdentifier" =:
_mdiNewDBInstanceIdentifier,
"Domain" =: _mdiDomain,
"TdeCredentialPassword" =: _mdiTDECredentialPassword,
"DBInstanceClass" =: _mdiDBInstanceClass,
"PreferredMaintenanceWindow" =:
_mdiPreferredMaintenanceWindow,
"CACertificateIdentifier" =:
_mdiCACertificateIdentifier,
"PreferredBackupWindow" =: _mdiPreferredBackupWindow,
"BackupRetentionPeriod" =: _mdiBackupRetentionPeriod,
"DBParameterGroupName" =: _mdiDBParameterGroupName,
"VpcSecurityGroupIds" =:
toQuery
(toQueryList "VpcSecurityGroupId" <$>
_mdiVPCSecurityGroupIds),
"MultiAZ" =: _mdiMultiAZ,
"AllocatedStorage" =: _mdiAllocatedStorage,
"ApplyImmediately" =: _mdiApplyImmediately,
"TdeCredentialArn" =: _mdiTDECredentialARN,
"OptionGroupName" =: _mdiOptionGroupName,
"CopyTagsToSnapshot" =: _mdiCopyTagsToSnapshot,
"StorageType" =: _mdiStorageType,
"DBInstanceIdentifier" =: _mdiDBInstanceIdentifier]
-- | /See:/ 'modifyDBInstanceResponse' smart constructor.
data ModifyDBInstanceResponse = ModifyDBInstanceResponse'
{ _mdirsDBInstance :: !(Maybe DBInstance)
, _mdirsStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'ModifyDBInstanceResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'mdirsDBInstance'
--
-- * 'mdirsStatus'
modifyDBInstanceResponse
:: Int -- ^ 'mdirsStatus'
-> ModifyDBInstanceResponse
modifyDBInstanceResponse pStatus_ =
ModifyDBInstanceResponse'
{ _mdirsDBInstance = Nothing
, _mdirsStatus = pStatus_
}
-- | Undocumented member.
mdirsDBInstance :: Lens' ModifyDBInstanceResponse (Maybe DBInstance)
mdirsDBInstance = lens _mdirsDBInstance (\ s a -> s{_mdirsDBInstance = a});
-- | The response status code.
mdirsStatus :: Lens' ModifyDBInstanceResponse Int
mdirsStatus = lens _mdirsStatus (\ s a -> s{_mdirsStatus = a});