{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.Neptune.ModifyDBInstance
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Modifies 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. To learn what modifications you can make to your
-- DB instance, call DescribeValidDBInstanceModifications before you call
-- ModifyDBInstance.
module Amazonka.Neptune.ModifyDBInstance
  ( -- * Creating a Request
    ModifyDBInstance (..),
    newModifyDBInstance,

    -- * Request Lenses
    modifyDBInstance_allocatedStorage,
    modifyDBInstance_allowMajorVersionUpgrade,
    modifyDBInstance_applyImmediately,
    modifyDBInstance_autoMinorVersionUpgrade,
    modifyDBInstance_backupRetentionPeriod,
    modifyDBInstance_cACertificateIdentifier,
    modifyDBInstance_cloudwatchLogsExportConfiguration,
    modifyDBInstance_copyTagsToSnapshot,
    modifyDBInstance_dbInstanceClass,
    modifyDBInstance_dbParameterGroupName,
    modifyDBInstance_dbPortNumber,
    modifyDBInstance_dbSecurityGroups,
    modifyDBInstance_dbSubnetGroupName,
    modifyDBInstance_deletionProtection,
    modifyDBInstance_domain,
    modifyDBInstance_domainIAMRoleName,
    modifyDBInstance_enableIAMDatabaseAuthentication,
    modifyDBInstance_enablePerformanceInsights,
    modifyDBInstance_engineVersion,
    modifyDBInstance_iops,
    modifyDBInstance_licenseModel,
    modifyDBInstance_masterUserPassword,
    modifyDBInstance_monitoringInterval,
    modifyDBInstance_monitoringRoleArn,
    modifyDBInstance_multiAZ,
    modifyDBInstance_newDBInstanceIdentifier,
    modifyDBInstance_optionGroupName,
    modifyDBInstance_performanceInsightsKMSKeyId,
    modifyDBInstance_preferredBackupWindow,
    modifyDBInstance_preferredMaintenanceWindow,
    modifyDBInstance_promotionTier,
    modifyDBInstance_publiclyAccessible,
    modifyDBInstance_storageType,
    modifyDBInstance_tdeCredentialArn,
    modifyDBInstance_tdeCredentialPassword,
    modifyDBInstance_vpcSecurityGroupIds,
    modifyDBInstance_dbInstanceIdentifier,

    -- * Destructuring the Response
    ModifyDBInstanceResponse (..),
    newModifyDBInstanceResponse,

    -- * Response Lenses
    modifyDBInstanceResponse_dbInstance,
    modifyDBInstanceResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Neptune.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newModifyDBInstance' smart constructor.
data ModifyDBInstance = ModifyDBInstance'
  { -- | Not supported by Neptune.
    ModifyDBInstance -> Maybe Int
allocatedStorage :: Prelude.Maybe Prelude.Int,
    -- | Indicates that major version upgrades are allowed. Changing this
    -- parameter doesn\'t result in an outage and the change is asynchronously
    -- applied as soon as possible.
    ModifyDBInstance -> Maybe Bool
allowMajorVersionUpgrade :: Prelude.Maybe Prelude.Bool,
    -- | 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 are applied on the next call to RebootDBInstance, or
    -- the next failure reboot.
    --
    -- Default: @false@
    ModifyDBInstance -> Maybe Bool
applyImmediately :: Prelude.Maybe Prelude.Bool,
    -- | Indicates that minor version upgrades are applied automatically to the
    -- DB instance during the maintenance window. Changing this parameter
    -- doesn\'t 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 Neptune has enabled auto patching
    -- for that engine version.
    ModifyDBInstance -> Maybe Bool
autoMinorVersionUpgrade :: Prelude.Maybe Prelude.Bool,
    -- | Not applicable. The retention period for automated backups is managed by
    -- the DB cluster. For more information, see ModifyDBCluster.
    --
    -- Default: Uses existing setting
    ModifyDBInstance -> Maybe Int
backupRetentionPeriod :: Prelude.Maybe Prelude.Int,
    -- | Indicates the certificate that needs to be associated with the instance.
    ModifyDBInstance -> Maybe Text
cACertificateIdentifier :: Prelude.Maybe Prelude.Text,
    -- | The configuration setting for the log types to be enabled for export to
    -- CloudWatch Logs for a specific DB instance or DB cluster.
    ModifyDBInstance -> Maybe CloudwatchLogsExportConfiguration
cloudwatchLogsExportConfiguration :: Prelude.Maybe CloudwatchLogsExportConfiguration,
    -- | True to copy all tags from the DB instance to snapshots of the DB
    -- instance, and otherwise false. The default is false.
    ModifyDBInstance -> Maybe Bool
copyTagsToSnapshot :: Prelude.Maybe Prelude.Bool,
    -- | The new compute and memory capacity of the DB instance, for example,
    -- @db.m4.large@. Not all DB instance classes are available in all Amazon
    -- Regions.
    --
    -- If you modify the DB instance class, an outage occurs during the change.
    -- The change is applied during the next maintenance window, unless
    -- @ApplyImmediately@ is specified as @true@ for this request.
    --
    -- Default: Uses existing setting
    ModifyDBInstance -> Maybe Text
dbInstanceClass :: Prelude.Maybe Prelude.Text,
    -- | The name of the DB parameter group to apply to the DB instance. Changing
    -- this setting doesn\'t 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.
    ModifyDBInstance -> Maybe Text
dbParameterGroupName :: Prelude.Maybe Prelude.Text,
    -- | The port number on which the database accepts connections.
    --
    -- The value of the @DBPortNumber@ parameter must not match any of the port
    -- values specified for options in the option group for the DB instance.
    --
    -- Your database will restart when you change the @DBPortNumber@ value
    -- regardless of the value of the @ApplyImmediately@ parameter.
    --
    -- Default: @8182@
    ModifyDBInstance -> Maybe Int
dbPortNumber :: Prelude.Maybe Prelude.Int,
    -- | A list of DB security groups to authorize on this DB instance. Changing
    -- this setting doesn\'t result in an outage and the change is
    -- asynchronously applied as soon as possible.
    --
    -- Constraints:
    --
    -- -   If supplied, must match existing DBSecurityGroups.
    ModifyDBInstance -> Maybe [Text]
dbSecurityGroups :: Prelude.Maybe [Prelude.Text],
    -- | The new DB subnet group for the DB instance. You can use this parameter
    -- to move your DB instance to a different VPC.
    --
    -- Changing the subnet group causes an outage during the change. The change
    -- is applied during the next maintenance window, unless you specify @true@
    -- for the @ApplyImmediately@ parameter.
    --
    -- Constraints: If supplied, must match the name of an existing
    -- DBSubnetGroup.
    --
    -- Example: @mySubnetGroup@
    ModifyDBInstance -> Maybe Text
dbSubnetGroupName :: Prelude.Maybe Prelude.Text,
    -- | A value that indicates whether the DB instance has deletion protection
    -- enabled. The database can\'t be deleted when deletion protection is
    -- enabled. By default, deletion protection is disabled. See
    -- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html Deleting a DB Instance>.
    ModifyDBInstance -> Maybe Bool
deletionProtection :: Prelude.Maybe Prelude.Bool,
    -- | Not supported.
    ModifyDBInstance -> Maybe Text
domain :: Prelude.Maybe Prelude.Text,
    -- | Not supported
    ModifyDBInstance -> Maybe Text
domainIAMRoleName :: Prelude.Maybe Prelude.Text,
    -- | True to enable mapping of Amazon Identity and Access Management (IAM)
    -- accounts to database accounts, and otherwise false.
    --
    -- You can enable IAM database authentication for the following database
    -- engines
    --
    -- Not applicable. Mapping Amazon IAM accounts to database accounts is
    -- managed by the DB cluster. For more information, see ModifyDBCluster.
    --
    -- Default: @false@
    ModifyDBInstance -> Maybe Bool
enableIAMDatabaseAuthentication :: Prelude.Maybe Prelude.Bool,
    -- | /(Not supported by Neptune)/
    ModifyDBInstance -> Maybe Bool
enablePerformanceInsights :: Prelude.Maybe Prelude.Bool,
    -- | The version number of the database engine to upgrade to. Currently,
    -- setting this parameter has no effect. To upgrade your database engine to
    -- the most recent release, use the ApplyPendingMaintenanceAction API.
    ModifyDBInstance -> Maybe Text
engineVersion :: Prelude.Maybe Prelude.Text,
    -- | The new Provisioned IOPS (I\/O operations per second) value for the
    -- instance.
    --
    -- Changing this setting doesn\'t 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
    ModifyDBInstance -> Maybe Int
iops :: Prelude.Maybe Prelude.Int,
    -- | Not supported by Neptune.
    ModifyDBInstance -> Maybe Text
licenseModel :: Prelude.Maybe Prelude.Text,
    -- | Not supported by Neptune.
    ModifyDBInstance -> Maybe Text
masterUserPassword :: Prelude.Maybe Prelude.Text,
    -- | The interval, in seconds, between points when Enhanced Monitoring
    -- metrics are collected for the DB instance. To disable collecting
    -- Enhanced Monitoring metrics, specify 0. The default is 0.
    --
    -- If @MonitoringRoleArn@ is specified, then you must also set
    -- @MonitoringInterval@ to a value other than 0.
    --
    -- Valid Values: @0, 1, 5, 10, 15, 30, 60@
    ModifyDBInstance -> Maybe Int
monitoringInterval :: Prelude.Maybe Prelude.Int,
    -- | The ARN for the IAM role that permits Neptune to send enhanced
    -- monitoring metrics to Amazon CloudWatch Logs. For example,
    -- @arn:aws:iam:123456789012:role\/emaccess@.
    --
    -- If @MonitoringInterval@ is set to a value other than 0, then you must
    -- supply a @MonitoringRoleArn@ value.
    ModifyDBInstance -> Maybe Text
monitoringRoleArn :: Prelude.Maybe Prelude.Text,
    -- | Specifies if the DB instance is a Multi-AZ deployment. Changing this
    -- parameter doesn\'t 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.
    ModifyDBInstance -> Maybe Bool
multiAZ :: Prelude.Maybe Prelude.Bool,
    -- | 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 letters, numbers, or hyphens.
    --
    -- -   The first character must be a letter.
    --
    -- -   Cannot end with a hyphen or contain two consecutive hyphens.
    --
    -- Example: @mydbinstance@
    ModifyDBInstance -> Maybe Text
newDBInstanceIdentifier' :: Prelude.Maybe Prelude.Text,
    -- | /(Not supported by Neptune)/
    ModifyDBInstance -> Maybe Text
optionGroupName :: Prelude.Maybe Prelude.Text,
    -- | /(Not supported by Neptune)/
    ModifyDBInstance -> Maybe Text
performanceInsightsKMSKeyId :: Prelude.Maybe Prelude.Text,
    -- | The daily time range during which automated backups are created if
    -- automated backups are enabled.
    --
    -- Not applicable. The daily time range for creating automated backups is
    -- managed by the DB cluster. For more information, see ModifyDBCluster.
    --
    -- Constraints:
    --
    -- -   Must be in the format hh24:mi-hh24:mi
    --
    -- -   Must be in Universal Time Coordinated (UTC)
    --
    -- -   Must not conflict with the preferred maintenance window
    --
    -- -   Must be at least 30 minutes
    ModifyDBInstance -> Maybe Text
preferredBackupWindow :: Prelude.Maybe Prelude.Text,
    -- | The weekly time range (in UTC) during which system maintenance can
    -- occur, which might result in an outage. Changing this parameter doesn\'t
    -- 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
    ModifyDBInstance -> Maybe Text
preferredMaintenanceWindow :: Prelude.Maybe Prelude.Text,
    -- | A value that specifies the order in which a Read Replica is promoted to
    -- the primary instance after a failure of the existing primary instance.
    --
    -- Default: 1
    --
    -- Valid Values: 0 - 15
    ModifyDBInstance -> Maybe Int
promotionTier :: Prelude.Maybe Prelude.Int,
    -- | This flag should no longer be used.
    ModifyDBInstance -> Maybe Bool
publiclyAccessible :: Prelude.Maybe Prelude.Bool,
    -- | Not supported.
    ModifyDBInstance -> Maybe Text
storageType :: Prelude.Maybe Prelude.Text,
    -- | The ARN from the key store with which to associate the instance for TDE
    -- encryption.
    ModifyDBInstance -> Maybe Text
tdeCredentialArn :: Prelude.Maybe Prelude.Text,
    -- | The password for the given ARN from the key store in order to access the
    -- device.
    ModifyDBInstance -> Maybe Text
tdeCredentialPassword :: Prelude.Maybe Prelude.Text,
    -- | A list of EC2 VPC security groups to authorize on this DB instance. This
    -- change is asynchronously applied as soon as possible.
    --
    -- Not applicable. The associated list of EC2 VPC security groups is
    -- managed by the DB cluster. For more information, see ModifyDBCluster.
    --
    -- Constraints:
    --
    -- -   If supplied, must match existing VpcSecurityGroupIds.
    ModifyDBInstance -> Maybe [Text]
vpcSecurityGroupIds :: Prelude.Maybe [Prelude.Text],
    -- | The DB instance identifier. This value is stored as a lowercase string.
    --
    -- Constraints:
    --
    -- -   Must match the identifier of an existing DBInstance.
    ModifyDBInstance -> Text
dbInstanceIdentifier :: Prelude.Text
  }
  deriving (ModifyDBInstance -> ModifyDBInstance -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ModifyDBInstance -> ModifyDBInstance -> Bool
$c/= :: ModifyDBInstance -> ModifyDBInstance -> Bool
== :: ModifyDBInstance -> ModifyDBInstance -> Bool
$c== :: ModifyDBInstance -> ModifyDBInstance -> Bool
Prelude.Eq, ReadPrec [ModifyDBInstance]
ReadPrec ModifyDBInstance
Int -> ReadS ModifyDBInstance
ReadS [ModifyDBInstance]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ModifyDBInstance]
$creadListPrec :: ReadPrec [ModifyDBInstance]
readPrec :: ReadPrec ModifyDBInstance
$creadPrec :: ReadPrec ModifyDBInstance
readList :: ReadS [ModifyDBInstance]
$creadList :: ReadS [ModifyDBInstance]
readsPrec :: Int -> ReadS ModifyDBInstance
$creadsPrec :: Int -> ReadS ModifyDBInstance
Prelude.Read, Int -> ModifyDBInstance -> ShowS
[ModifyDBInstance] -> ShowS
ModifyDBInstance -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ModifyDBInstance] -> ShowS
$cshowList :: [ModifyDBInstance] -> ShowS
show :: ModifyDBInstance -> String
$cshow :: ModifyDBInstance -> String
showsPrec :: Int -> ModifyDBInstance -> ShowS
$cshowsPrec :: Int -> ModifyDBInstance -> ShowS
Prelude.Show, forall x. Rep ModifyDBInstance x -> ModifyDBInstance
forall x. ModifyDBInstance -> Rep ModifyDBInstance x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ModifyDBInstance x -> ModifyDBInstance
$cfrom :: forall x. ModifyDBInstance -> Rep ModifyDBInstance x
Prelude.Generic)

-- |
-- Create a value of 'ModifyDBInstance' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'allocatedStorage', 'modifyDBInstance_allocatedStorage' - Not supported by Neptune.
--
-- 'allowMajorVersionUpgrade', 'modifyDBInstance_allowMajorVersionUpgrade' - Indicates that major version upgrades are allowed. Changing this
-- parameter doesn\'t result in an outage and the change is asynchronously
-- applied as soon as possible.
--
-- 'applyImmediately', 'modifyDBInstance_applyImmediately' - 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 are applied on the next call to RebootDBInstance, or
-- the next failure reboot.
--
-- Default: @false@
--
-- 'autoMinorVersionUpgrade', 'modifyDBInstance_autoMinorVersionUpgrade' - Indicates that minor version upgrades are applied automatically to the
-- DB instance during the maintenance window. Changing this parameter
-- doesn\'t 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 Neptune has enabled auto patching
-- for that engine version.
--
-- 'backupRetentionPeriod', 'modifyDBInstance_backupRetentionPeriod' - Not applicable. The retention period for automated backups is managed by
-- the DB cluster. For more information, see ModifyDBCluster.
--
-- Default: Uses existing setting
--
-- 'cACertificateIdentifier', 'modifyDBInstance_cACertificateIdentifier' - Indicates the certificate that needs to be associated with the instance.
--
-- 'cloudwatchLogsExportConfiguration', 'modifyDBInstance_cloudwatchLogsExportConfiguration' - The configuration setting for the log types to be enabled for export to
-- CloudWatch Logs for a specific DB instance or DB cluster.
--
-- 'copyTagsToSnapshot', 'modifyDBInstance_copyTagsToSnapshot' - True to copy all tags from the DB instance to snapshots of the DB
-- instance, and otherwise false. The default is false.
--
-- 'dbInstanceClass', 'modifyDBInstance_dbInstanceClass' - The new compute and memory capacity of the DB instance, for example,
-- @db.m4.large@. Not all DB instance classes are available in all Amazon
-- Regions.
--
-- If you modify the DB instance class, an outage occurs during the change.
-- The change is applied during the next maintenance window, unless
-- @ApplyImmediately@ is specified as @true@ for this request.
--
-- Default: Uses existing setting
--
-- 'dbParameterGroupName', 'modifyDBInstance_dbParameterGroupName' - The name of the DB parameter group to apply to the DB instance. Changing
-- this setting doesn\'t 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.
--
-- 'dbPortNumber', 'modifyDBInstance_dbPortNumber' - The port number on which the database accepts connections.
--
-- The value of the @DBPortNumber@ parameter must not match any of the port
-- values specified for options in the option group for the DB instance.
--
-- Your database will restart when you change the @DBPortNumber@ value
-- regardless of the value of the @ApplyImmediately@ parameter.
--
-- Default: @8182@
--
-- 'dbSecurityGroups', 'modifyDBInstance_dbSecurityGroups' - A list of DB security groups to authorize on this DB instance. Changing
-- this setting doesn\'t result in an outage and the change is
-- asynchronously applied as soon as possible.
--
-- Constraints:
--
-- -   If supplied, must match existing DBSecurityGroups.
--
-- 'dbSubnetGroupName', 'modifyDBInstance_dbSubnetGroupName' - The new DB subnet group for the DB instance. You can use this parameter
-- to move your DB instance to a different VPC.
--
-- Changing the subnet group causes an outage during the change. The change
-- is applied during the next maintenance window, unless you specify @true@
-- for the @ApplyImmediately@ parameter.
--
-- Constraints: If supplied, must match the name of an existing
-- DBSubnetGroup.
--
-- Example: @mySubnetGroup@
--
-- 'deletionProtection', 'modifyDBInstance_deletionProtection' - A value that indicates whether the DB instance has deletion protection
-- enabled. The database can\'t be deleted when deletion protection is
-- enabled. By default, deletion protection is disabled. See
-- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html Deleting a DB Instance>.
--
-- 'domain', 'modifyDBInstance_domain' - Not supported.
--
-- 'domainIAMRoleName', 'modifyDBInstance_domainIAMRoleName' - Not supported
--
-- 'enableIAMDatabaseAuthentication', 'modifyDBInstance_enableIAMDatabaseAuthentication' - True to enable mapping of Amazon Identity and Access Management (IAM)
-- accounts to database accounts, and otherwise false.
--
-- You can enable IAM database authentication for the following database
-- engines
--
-- Not applicable. Mapping Amazon IAM accounts to database accounts is
-- managed by the DB cluster. For more information, see ModifyDBCluster.
--
-- Default: @false@
--
-- 'enablePerformanceInsights', 'modifyDBInstance_enablePerformanceInsights' - /(Not supported by Neptune)/
--
-- 'engineVersion', 'modifyDBInstance_engineVersion' - The version number of the database engine to upgrade to. Currently,
-- setting this parameter has no effect. To upgrade your database engine to
-- the most recent release, use the ApplyPendingMaintenanceAction API.
--
-- 'iops', 'modifyDBInstance_iops' - The new Provisioned IOPS (I\/O operations per second) value for the
-- instance.
--
-- Changing this setting doesn\'t 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
--
-- 'licenseModel', 'modifyDBInstance_licenseModel' - Not supported by Neptune.
--
-- 'masterUserPassword', 'modifyDBInstance_masterUserPassword' - Not supported by Neptune.
--
-- 'monitoringInterval', 'modifyDBInstance_monitoringInterval' - The interval, in seconds, between points when Enhanced Monitoring
-- metrics are collected for the DB instance. To disable collecting
-- Enhanced Monitoring metrics, specify 0. The default is 0.
--
-- If @MonitoringRoleArn@ is specified, then you must also set
-- @MonitoringInterval@ to a value other than 0.
--
-- Valid Values: @0, 1, 5, 10, 15, 30, 60@
--
-- 'monitoringRoleArn', 'modifyDBInstance_monitoringRoleArn' - The ARN for the IAM role that permits Neptune to send enhanced
-- monitoring metrics to Amazon CloudWatch Logs. For example,
-- @arn:aws:iam:123456789012:role\/emaccess@.
--
-- If @MonitoringInterval@ is set to a value other than 0, then you must
-- supply a @MonitoringRoleArn@ value.
--
-- 'multiAZ', 'modifyDBInstance_multiAZ' - Specifies if the DB instance is a Multi-AZ deployment. Changing this
-- parameter doesn\'t 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.
--
-- 'newDBInstanceIdentifier'', 'modifyDBInstance_newDBInstanceIdentifier' - 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 letters, numbers, or hyphens.
--
-- -   The first character must be a letter.
--
-- -   Cannot end with a hyphen or contain two consecutive hyphens.
--
-- Example: @mydbinstance@
--
-- 'optionGroupName', 'modifyDBInstance_optionGroupName' - /(Not supported by Neptune)/
--
-- 'performanceInsightsKMSKeyId', 'modifyDBInstance_performanceInsightsKMSKeyId' - /(Not supported by Neptune)/
--
-- 'preferredBackupWindow', 'modifyDBInstance_preferredBackupWindow' - The daily time range during which automated backups are created if
-- automated backups are enabled.
--
-- Not applicable. The daily time range for creating automated backups is
-- managed by the DB cluster. For more information, see ModifyDBCluster.
--
-- Constraints:
--
-- -   Must be in the format hh24:mi-hh24:mi
--
-- -   Must be in Universal Time Coordinated (UTC)
--
-- -   Must not conflict with the preferred maintenance window
--
-- -   Must be at least 30 minutes
--
-- 'preferredMaintenanceWindow', 'modifyDBInstance_preferredMaintenanceWindow' - The weekly time range (in UTC) during which system maintenance can
-- occur, which might result in an outage. Changing this parameter doesn\'t
-- 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
--
-- 'promotionTier', 'modifyDBInstance_promotionTier' - A value that specifies the order in which a Read Replica is promoted to
-- the primary instance after a failure of the existing primary instance.
--
-- Default: 1
--
-- Valid Values: 0 - 15
--
-- 'publiclyAccessible', 'modifyDBInstance_publiclyAccessible' - This flag should no longer be used.
--
-- 'storageType', 'modifyDBInstance_storageType' - Not supported.
--
-- 'tdeCredentialArn', 'modifyDBInstance_tdeCredentialArn' - The ARN from the key store with which to associate the instance for TDE
-- encryption.
--
-- 'tdeCredentialPassword', 'modifyDBInstance_tdeCredentialPassword' - The password for the given ARN from the key store in order to access the
-- device.
--
-- 'vpcSecurityGroupIds', 'modifyDBInstance_vpcSecurityGroupIds' - A list of EC2 VPC security groups to authorize on this DB instance. This
-- change is asynchronously applied as soon as possible.
--
-- Not applicable. The associated list of EC2 VPC security groups is
-- managed by the DB cluster. For more information, see ModifyDBCluster.
--
-- Constraints:
--
-- -   If supplied, must match existing VpcSecurityGroupIds.
--
-- 'dbInstanceIdentifier', 'modifyDBInstance_dbInstanceIdentifier' - The DB instance identifier. This value is stored as a lowercase string.
--
-- Constraints:
--
-- -   Must match the identifier of an existing DBInstance.
newModifyDBInstance ::
  -- | 'dbInstanceIdentifier'
  Prelude.Text ->
  ModifyDBInstance
newModifyDBInstance :: Text -> ModifyDBInstance
newModifyDBInstance Text
pDBInstanceIdentifier_ =
  ModifyDBInstance'
    { $sel:allocatedStorage:ModifyDBInstance' :: Maybe Int
allocatedStorage =
        forall a. Maybe a
Prelude.Nothing,
      $sel:allowMajorVersionUpgrade:ModifyDBInstance' :: Maybe Bool
allowMajorVersionUpgrade = forall a. Maybe a
Prelude.Nothing,
      $sel:applyImmediately:ModifyDBInstance' :: Maybe Bool
applyImmediately = forall a. Maybe a
Prelude.Nothing,
      $sel:autoMinorVersionUpgrade:ModifyDBInstance' :: Maybe Bool
autoMinorVersionUpgrade = forall a. Maybe a
Prelude.Nothing,
      $sel:backupRetentionPeriod:ModifyDBInstance' :: Maybe Int
backupRetentionPeriod = forall a. Maybe a
Prelude.Nothing,
      $sel:cACertificateIdentifier:ModifyDBInstance' :: Maybe Text
cACertificateIdentifier = forall a. Maybe a
Prelude.Nothing,
      $sel:cloudwatchLogsExportConfiguration:ModifyDBInstance' :: Maybe CloudwatchLogsExportConfiguration
cloudwatchLogsExportConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:copyTagsToSnapshot:ModifyDBInstance' :: Maybe Bool
copyTagsToSnapshot = forall a. Maybe a
Prelude.Nothing,
      $sel:dbInstanceClass:ModifyDBInstance' :: Maybe Text
dbInstanceClass = forall a. Maybe a
Prelude.Nothing,
      $sel:dbParameterGroupName:ModifyDBInstance' :: Maybe Text
dbParameterGroupName = forall a. Maybe a
Prelude.Nothing,
      $sel:dbPortNumber:ModifyDBInstance' :: Maybe Int
dbPortNumber = forall a. Maybe a
Prelude.Nothing,
      $sel:dbSecurityGroups:ModifyDBInstance' :: Maybe [Text]
dbSecurityGroups = forall a. Maybe a
Prelude.Nothing,
      $sel:dbSubnetGroupName:ModifyDBInstance' :: Maybe Text
dbSubnetGroupName = forall a. Maybe a
Prelude.Nothing,
      $sel:deletionProtection:ModifyDBInstance' :: Maybe Bool
deletionProtection = forall a. Maybe a
Prelude.Nothing,
      $sel:domain:ModifyDBInstance' :: Maybe Text
domain = forall a. Maybe a
Prelude.Nothing,
      $sel:domainIAMRoleName:ModifyDBInstance' :: Maybe Text
domainIAMRoleName = forall a. Maybe a
Prelude.Nothing,
      $sel:enableIAMDatabaseAuthentication:ModifyDBInstance' :: Maybe Bool
enableIAMDatabaseAuthentication = forall a. Maybe a
Prelude.Nothing,
      $sel:enablePerformanceInsights:ModifyDBInstance' :: Maybe Bool
enablePerformanceInsights = forall a. Maybe a
Prelude.Nothing,
      $sel:engineVersion:ModifyDBInstance' :: Maybe Text
engineVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:iops:ModifyDBInstance' :: Maybe Int
iops = forall a. Maybe a
Prelude.Nothing,
      $sel:licenseModel:ModifyDBInstance' :: Maybe Text
licenseModel = forall a. Maybe a
Prelude.Nothing,
      $sel:masterUserPassword:ModifyDBInstance' :: Maybe Text
masterUserPassword = forall a. Maybe a
Prelude.Nothing,
      $sel:monitoringInterval:ModifyDBInstance' :: Maybe Int
monitoringInterval = forall a. Maybe a
Prelude.Nothing,
      $sel:monitoringRoleArn:ModifyDBInstance' :: Maybe Text
monitoringRoleArn = forall a. Maybe a
Prelude.Nothing,
      $sel:multiAZ:ModifyDBInstance' :: Maybe Bool
multiAZ = forall a. Maybe a
Prelude.Nothing,
      $sel:newDBInstanceIdentifier':ModifyDBInstance' :: Maybe Text
newDBInstanceIdentifier' = forall a. Maybe a
Prelude.Nothing,
      $sel:optionGroupName:ModifyDBInstance' :: Maybe Text
optionGroupName = forall a. Maybe a
Prelude.Nothing,
      $sel:performanceInsightsKMSKeyId:ModifyDBInstance' :: Maybe Text
performanceInsightsKMSKeyId = forall a. Maybe a
Prelude.Nothing,
      $sel:preferredBackupWindow:ModifyDBInstance' :: Maybe Text
preferredBackupWindow = forall a. Maybe a
Prelude.Nothing,
      $sel:preferredMaintenanceWindow:ModifyDBInstance' :: Maybe Text
preferredMaintenanceWindow = forall a. Maybe a
Prelude.Nothing,
      $sel:promotionTier:ModifyDBInstance' :: Maybe Int
promotionTier = forall a. Maybe a
Prelude.Nothing,
      $sel:publiclyAccessible:ModifyDBInstance' :: Maybe Bool
publiclyAccessible = forall a. Maybe a
Prelude.Nothing,
      $sel:storageType:ModifyDBInstance' :: Maybe Text
storageType = forall a. Maybe a
Prelude.Nothing,
      $sel:tdeCredentialArn:ModifyDBInstance' :: Maybe Text
tdeCredentialArn = forall a. Maybe a
Prelude.Nothing,
      $sel:tdeCredentialPassword:ModifyDBInstance' :: Maybe Text
tdeCredentialPassword = forall a. Maybe a
Prelude.Nothing,
      $sel:vpcSecurityGroupIds:ModifyDBInstance' :: Maybe [Text]
vpcSecurityGroupIds = forall a. Maybe a
Prelude.Nothing,
      $sel:dbInstanceIdentifier:ModifyDBInstance' :: Text
dbInstanceIdentifier = Text
pDBInstanceIdentifier_
    }

-- | Not supported by Neptune.
modifyDBInstance_allocatedStorage :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Int)
modifyDBInstance_allocatedStorage :: Lens' ModifyDBInstance (Maybe Int)
modifyDBInstance_allocatedStorage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Int
allocatedStorage :: Maybe Int
$sel:allocatedStorage:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
allocatedStorage} -> Maybe Int
allocatedStorage) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Int
a -> ModifyDBInstance
s {$sel:allocatedStorage:ModifyDBInstance' :: Maybe Int
allocatedStorage = Maybe Int
a} :: ModifyDBInstance)

-- | Indicates that major version upgrades are allowed. Changing this
-- parameter doesn\'t result in an outage and the change is asynchronously
-- applied as soon as possible.
modifyDBInstance_allowMajorVersionUpgrade :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
modifyDBInstance_allowMajorVersionUpgrade :: Lens' ModifyDBInstance (Maybe Bool)
modifyDBInstance_allowMajorVersionUpgrade = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Bool
allowMajorVersionUpgrade :: Maybe Bool
$sel:allowMajorVersionUpgrade:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
allowMajorVersionUpgrade} -> Maybe Bool
allowMajorVersionUpgrade) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Bool
a -> ModifyDBInstance
s {$sel:allowMajorVersionUpgrade:ModifyDBInstance' :: Maybe Bool
allowMajorVersionUpgrade = Maybe Bool
a} :: ModifyDBInstance)

-- | 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 are applied on the next call to RebootDBInstance, or
-- the next failure reboot.
--
-- Default: @false@
modifyDBInstance_applyImmediately :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
modifyDBInstance_applyImmediately :: Lens' ModifyDBInstance (Maybe Bool)
modifyDBInstance_applyImmediately = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Bool
applyImmediately :: Maybe Bool
$sel:applyImmediately:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
applyImmediately} -> Maybe Bool
applyImmediately) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Bool
a -> ModifyDBInstance
s {$sel:applyImmediately:ModifyDBInstance' :: Maybe Bool
applyImmediately = Maybe Bool
a} :: ModifyDBInstance)

-- | Indicates that minor version upgrades are applied automatically to the
-- DB instance during the maintenance window. Changing this parameter
-- doesn\'t 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 Neptune has enabled auto patching
-- for that engine version.
modifyDBInstance_autoMinorVersionUpgrade :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
modifyDBInstance_autoMinorVersionUpgrade :: Lens' ModifyDBInstance (Maybe Bool)
modifyDBInstance_autoMinorVersionUpgrade = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Bool
autoMinorVersionUpgrade :: Maybe Bool
$sel:autoMinorVersionUpgrade:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
autoMinorVersionUpgrade} -> Maybe Bool
autoMinorVersionUpgrade) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Bool
a -> ModifyDBInstance
s {$sel:autoMinorVersionUpgrade:ModifyDBInstance' :: Maybe Bool
autoMinorVersionUpgrade = Maybe Bool
a} :: ModifyDBInstance)

-- | Not applicable. The retention period for automated backups is managed by
-- the DB cluster. For more information, see ModifyDBCluster.
--
-- Default: Uses existing setting
modifyDBInstance_backupRetentionPeriod :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Int)
modifyDBInstance_backupRetentionPeriod :: Lens' ModifyDBInstance (Maybe Int)
modifyDBInstance_backupRetentionPeriod = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Int
backupRetentionPeriod :: Maybe Int
$sel:backupRetentionPeriod:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
backupRetentionPeriod} -> Maybe Int
backupRetentionPeriod) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Int
a -> ModifyDBInstance
s {$sel:backupRetentionPeriod:ModifyDBInstance' :: Maybe Int
backupRetentionPeriod = Maybe Int
a} :: ModifyDBInstance)

-- | Indicates the certificate that needs to be associated with the instance.
modifyDBInstance_cACertificateIdentifier :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_cACertificateIdentifier :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_cACertificateIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
cACertificateIdentifier :: Maybe Text
$sel:cACertificateIdentifier:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
cACertificateIdentifier} -> Maybe Text
cACertificateIdentifier) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:cACertificateIdentifier:ModifyDBInstance' :: Maybe Text
cACertificateIdentifier = Maybe Text
a} :: ModifyDBInstance)

-- | The configuration setting for the log types to be enabled for export to
-- CloudWatch Logs for a specific DB instance or DB cluster.
modifyDBInstance_cloudwatchLogsExportConfiguration :: Lens.Lens' ModifyDBInstance (Prelude.Maybe CloudwatchLogsExportConfiguration)
modifyDBInstance_cloudwatchLogsExportConfiguration :: Lens' ModifyDBInstance (Maybe CloudwatchLogsExportConfiguration)
modifyDBInstance_cloudwatchLogsExportConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe CloudwatchLogsExportConfiguration
cloudwatchLogsExportConfiguration :: Maybe CloudwatchLogsExportConfiguration
$sel:cloudwatchLogsExportConfiguration:ModifyDBInstance' :: ModifyDBInstance -> Maybe CloudwatchLogsExportConfiguration
cloudwatchLogsExportConfiguration} -> Maybe CloudwatchLogsExportConfiguration
cloudwatchLogsExportConfiguration) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe CloudwatchLogsExportConfiguration
a -> ModifyDBInstance
s {$sel:cloudwatchLogsExportConfiguration:ModifyDBInstance' :: Maybe CloudwatchLogsExportConfiguration
cloudwatchLogsExportConfiguration = Maybe CloudwatchLogsExportConfiguration
a} :: ModifyDBInstance)

-- | True to copy all tags from the DB instance to snapshots of the DB
-- instance, and otherwise false. The default is false.
modifyDBInstance_copyTagsToSnapshot :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
modifyDBInstance_copyTagsToSnapshot :: Lens' ModifyDBInstance (Maybe Bool)
modifyDBInstance_copyTagsToSnapshot = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Bool
copyTagsToSnapshot :: Maybe Bool
$sel:copyTagsToSnapshot:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
copyTagsToSnapshot} -> Maybe Bool
copyTagsToSnapshot) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Bool
a -> ModifyDBInstance
s {$sel:copyTagsToSnapshot:ModifyDBInstance' :: Maybe Bool
copyTagsToSnapshot = Maybe Bool
a} :: ModifyDBInstance)

-- | The new compute and memory capacity of the DB instance, for example,
-- @db.m4.large@. Not all DB instance classes are available in all Amazon
-- Regions.
--
-- If you modify the DB instance class, an outage occurs during the change.
-- The change is applied during the next maintenance window, unless
-- @ApplyImmediately@ is specified as @true@ for this request.
--
-- Default: Uses existing setting
modifyDBInstance_dbInstanceClass :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_dbInstanceClass :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_dbInstanceClass = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
dbInstanceClass :: Maybe Text
$sel:dbInstanceClass:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
dbInstanceClass} -> Maybe Text
dbInstanceClass) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:dbInstanceClass:ModifyDBInstance' :: Maybe Text
dbInstanceClass = Maybe Text
a} :: ModifyDBInstance)

-- | The name of the DB parameter group to apply to the DB instance. Changing
-- this setting doesn\'t 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.
modifyDBInstance_dbParameterGroupName :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_dbParameterGroupName :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_dbParameterGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
dbParameterGroupName :: Maybe Text
$sel:dbParameterGroupName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
dbParameterGroupName} -> Maybe Text
dbParameterGroupName) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:dbParameterGroupName:ModifyDBInstance' :: Maybe Text
dbParameterGroupName = Maybe Text
a} :: ModifyDBInstance)

-- | The port number on which the database accepts connections.
--
-- The value of the @DBPortNumber@ parameter must not match any of the port
-- values specified for options in the option group for the DB instance.
--
-- Your database will restart when you change the @DBPortNumber@ value
-- regardless of the value of the @ApplyImmediately@ parameter.
--
-- Default: @8182@
modifyDBInstance_dbPortNumber :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Int)
modifyDBInstance_dbPortNumber :: Lens' ModifyDBInstance (Maybe Int)
modifyDBInstance_dbPortNumber = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Int
dbPortNumber :: Maybe Int
$sel:dbPortNumber:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
dbPortNumber} -> Maybe Int
dbPortNumber) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Int
a -> ModifyDBInstance
s {$sel:dbPortNumber:ModifyDBInstance' :: Maybe Int
dbPortNumber = Maybe Int
a} :: ModifyDBInstance)

-- | A list of DB security groups to authorize on this DB instance. Changing
-- this setting doesn\'t result in an outage and the change is
-- asynchronously applied as soon as possible.
--
-- Constraints:
--
-- -   If supplied, must match existing DBSecurityGroups.
modifyDBInstance_dbSecurityGroups :: Lens.Lens' ModifyDBInstance (Prelude.Maybe [Prelude.Text])
modifyDBInstance_dbSecurityGroups :: Lens' ModifyDBInstance (Maybe [Text])
modifyDBInstance_dbSecurityGroups = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe [Text]
dbSecurityGroups :: Maybe [Text]
$sel:dbSecurityGroups:ModifyDBInstance' :: ModifyDBInstance -> Maybe [Text]
dbSecurityGroups} -> Maybe [Text]
dbSecurityGroups) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe [Text]
a -> ModifyDBInstance
s {$sel:dbSecurityGroups:ModifyDBInstance' :: Maybe [Text]
dbSecurityGroups = Maybe [Text]
a} :: ModifyDBInstance) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The new DB subnet group for the DB instance. You can use this parameter
-- to move your DB instance to a different VPC.
--
-- Changing the subnet group causes an outage during the change. The change
-- is applied during the next maintenance window, unless you specify @true@
-- for the @ApplyImmediately@ parameter.
--
-- Constraints: If supplied, must match the name of an existing
-- DBSubnetGroup.
--
-- Example: @mySubnetGroup@
modifyDBInstance_dbSubnetGroupName :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_dbSubnetGroupName :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_dbSubnetGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
dbSubnetGroupName :: Maybe Text
$sel:dbSubnetGroupName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
dbSubnetGroupName} -> Maybe Text
dbSubnetGroupName) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:dbSubnetGroupName:ModifyDBInstance' :: Maybe Text
dbSubnetGroupName = Maybe Text
a} :: ModifyDBInstance)

-- | A value that indicates whether the DB instance has deletion protection
-- enabled. The database can\'t be deleted when deletion protection is
-- enabled. By default, deletion protection is disabled. See
-- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html Deleting a DB Instance>.
modifyDBInstance_deletionProtection :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
modifyDBInstance_deletionProtection :: Lens' ModifyDBInstance (Maybe Bool)
modifyDBInstance_deletionProtection = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Bool
deletionProtection :: Maybe Bool
$sel:deletionProtection:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
deletionProtection} -> Maybe Bool
deletionProtection) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Bool
a -> ModifyDBInstance
s {$sel:deletionProtection:ModifyDBInstance' :: Maybe Bool
deletionProtection = Maybe Bool
a} :: ModifyDBInstance)

-- | Not supported.
modifyDBInstance_domain :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_domain :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_domain = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
domain :: Maybe Text
$sel:domain:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
domain} -> Maybe Text
domain) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:domain:ModifyDBInstance' :: Maybe Text
domain = Maybe Text
a} :: ModifyDBInstance)

-- | Not supported
modifyDBInstance_domainIAMRoleName :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_domainIAMRoleName :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_domainIAMRoleName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
domainIAMRoleName :: Maybe Text
$sel:domainIAMRoleName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
domainIAMRoleName} -> Maybe Text
domainIAMRoleName) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:domainIAMRoleName:ModifyDBInstance' :: Maybe Text
domainIAMRoleName = Maybe Text
a} :: ModifyDBInstance)

-- | True to enable mapping of Amazon Identity and Access Management (IAM)
-- accounts to database accounts, and otherwise false.
--
-- You can enable IAM database authentication for the following database
-- engines
--
-- Not applicable. Mapping Amazon IAM accounts to database accounts is
-- managed by the DB cluster. For more information, see ModifyDBCluster.
--
-- Default: @false@
modifyDBInstance_enableIAMDatabaseAuthentication :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
modifyDBInstance_enableIAMDatabaseAuthentication :: Lens' ModifyDBInstance (Maybe Bool)
modifyDBInstance_enableIAMDatabaseAuthentication = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Bool
enableIAMDatabaseAuthentication :: Maybe Bool
$sel:enableIAMDatabaseAuthentication:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
enableIAMDatabaseAuthentication} -> Maybe Bool
enableIAMDatabaseAuthentication) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Bool
a -> ModifyDBInstance
s {$sel:enableIAMDatabaseAuthentication:ModifyDBInstance' :: Maybe Bool
enableIAMDatabaseAuthentication = Maybe Bool
a} :: ModifyDBInstance)

-- | /(Not supported by Neptune)/
modifyDBInstance_enablePerformanceInsights :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
modifyDBInstance_enablePerformanceInsights :: Lens' ModifyDBInstance (Maybe Bool)
modifyDBInstance_enablePerformanceInsights = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Bool
enablePerformanceInsights :: Maybe Bool
$sel:enablePerformanceInsights:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
enablePerformanceInsights} -> Maybe Bool
enablePerformanceInsights) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Bool
a -> ModifyDBInstance
s {$sel:enablePerformanceInsights:ModifyDBInstance' :: Maybe Bool
enablePerformanceInsights = Maybe Bool
a} :: ModifyDBInstance)

-- | The version number of the database engine to upgrade to. Currently,
-- setting this parameter has no effect. To upgrade your database engine to
-- the most recent release, use the ApplyPendingMaintenanceAction API.
modifyDBInstance_engineVersion :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_engineVersion :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_engineVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
engineVersion :: Maybe Text
$sel:engineVersion:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
engineVersion} -> Maybe Text
engineVersion) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:engineVersion:ModifyDBInstance' :: Maybe Text
engineVersion = Maybe Text
a} :: ModifyDBInstance)

-- | The new Provisioned IOPS (I\/O operations per second) value for the
-- instance.
--
-- Changing this setting doesn\'t 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
modifyDBInstance_iops :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Int)
modifyDBInstance_iops :: Lens' ModifyDBInstance (Maybe Int)
modifyDBInstance_iops = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Int
iops :: Maybe Int
$sel:iops:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
iops} -> Maybe Int
iops) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Int
a -> ModifyDBInstance
s {$sel:iops:ModifyDBInstance' :: Maybe Int
iops = Maybe Int
a} :: ModifyDBInstance)

-- | Not supported by Neptune.
modifyDBInstance_licenseModel :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_licenseModel :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_licenseModel = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
licenseModel :: Maybe Text
$sel:licenseModel:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
licenseModel} -> Maybe Text
licenseModel) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:licenseModel:ModifyDBInstance' :: Maybe Text
licenseModel = Maybe Text
a} :: ModifyDBInstance)

-- | Not supported by Neptune.
modifyDBInstance_masterUserPassword :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_masterUserPassword :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_masterUserPassword = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
masterUserPassword :: Maybe Text
$sel:masterUserPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
masterUserPassword} -> Maybe Text
masterUserPassword) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:masterUserPassword:ModifyDBInstance' :: Maybe Text
masterUserPassword = Maybe Text
a} :: ModifyDBInstance)

-- | The interval, in seconds, between points when Enhanced Monitoring
-- metrics are collected for the DB instance. To disable collecting
-- Enhanced Monitoring metrics, specify 0. The default is 0.
--
-- If @MonitoringRoleArn@ is specified, then you must also set
-- @MonitoringInterval@ to a value other than 0.
--
-- Valid Values: @0, 1, 5, 10, 15, 30, 60@
modifyDBInstance_monitoringInterval :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Int)
modifyDBInstance_monitoringInterval :: Lens' ModifyDBInstance (Maybe Int)
modifyDBInstance_monitoringInterval = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Int
monitoringInterval :: Maybe Int
$sel:monitoringInterval:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
monitoringInterval} -> Maybe Int
monitoringInterval) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Int
a -> ModifyDBInstance
s {$sel:monitoringInterval:ModifyDBInstance' :: Maybe Int
monitoringInterval = Maybe Int
a} :: ModifyDBInstance)

-- | The ARN for the IAM role that permits Neptune to send enhanced
-- monitoring metrics to Amazon CloudWatch Logs. For example,
-- @arn:aws:iam:123456789012:role\/emaccess@.
--
-- If @MonitoringInterval@ is set to a value other than 0, then you must
-- supply a @MonitoringRoleArn@ value.
modifyDBInstance_monitoringRoleArn :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_monitoringRoleArn :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_monitoringRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
monitoringRoleArn :: Maybe Text
$sel:monitoringRoleArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
monitoringRoleArn} -> Maybe Text
monitoringRoleArn) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:monitoringRoleArn:ModifyDBInstance' :: Maybe Text
monitoringRoleArn = Maybe Text
a} :: ModifyDBInstance)

-- | Specifies if the DB instance is a Multi-AZ deployment. Changing this
-- parameter doesn\'t 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.
modifyDBInstance_multiAZ :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
modifyDBInstance_multiAZ :: Lens' ModifyDBInstance (Maybe Bool)
modifyDBInstance_multiAZ = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Bool
multiAZ :: Maybe Bool
$sel:multiAZ:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
multiAZ} -> Maybe Bool
multiAZ) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Bool
a -> ModifyDBInstance
s {$sel:multiAZ:ModifyDBInstance' :: Maybe Bool
multiAZ = Maybe Bool
a} :: ModifyDBInstance)

-- | 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 letters, numbers, or hyphens.
--
-- -   The first character must be a letter.
--
-- -   Cannot end with a hyphen or contain two consecutive hyphens.
--
-- Example: @mydbinstance@
modifyDBInstance_newDBInstanceIdentifier :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_newDBInstanceIdentifier :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_newDBInstanceIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
newDBInstanceIdentifier' :: Maybe Text
$sel:newDBInstanceIdentifier':ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
newDBInstanceIdentifier'} -> Maybe Text
newDBInstanceIdentifier') (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:newDBInstanceIdentifier':ModifyDBInstance' :: Maybe Text
newDBInstanceIdentifier' = Maybe Text
a} :: ModifyDBInstance)

-- | /(Not supported by Neptune)/
modifyDBInstance_optionGroupName :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_optionGroupName :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_optionGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
optionGroupName :: Maybe Text
$sel:optionGroupName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
optionGroupName} -> Maybe Text
optionGroupName) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:optionGroupName:ModifyDBInstance' :: Maybe Text
optionGroupName = Maybe Text
a} :: ModifyDBInstance)

-- | /(Not supported by Neptune)/
modifyDBInstance_performanceInsightsKMSKeyId :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_performanceInsightsKMSKeyId :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_performanceInsightsKMSKeyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
performanceInsightsKMSKeyId :: Maybe Text
$sel:performanceInsightsKMSKeyId:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
performanceInsightsKMSKeyId} -> Maybe Text
performanceInsightsKMSKeyId) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:performanceInsightsKMSKeyId:ModifyDBInstance' :: Maybe Text
performanceInsightsKMSKeyId = Maybe Text
a} :: ModifyDBInstance)

-- | The daily time range during which automated backups are created if
-- automated backups are enabled.
--
-- Not applicable. The daily time range for creating automated backups is
-- managed by the DB cluster. For more information, see ModifyDBCluster.
--
-- Constraints:
--
-- -   Must be in the format hh24:mi-hh24:mi
--
-- -   Must be in Universal Time Coordinated (UTC)
--
-- -   Must not conflict with the preferred maintenance window
--
-- -   Must be at least 30 minutes
modifyDBInstance_preferredBackupWindow :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_preferredBackupWindow :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_preferredBackupWindow = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
preferredBackupWindow :: Maybe Text
$sel:preferredBackupWindow:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
preferredBackupWindow} -> Maybe Text
preferredBackupWindow) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:preferredBackupWindow:ModifyDBInstance' :: Maybe Text
preferredBackupWindow = Maybe Text
a} :: ModifyDBInstance)

-- | The weekly time range (in UTC) during which system maintenance can
-- occur, which might result in an outage. Changing this parameter doesn\'t
-- 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
modifyDBInstance_preferredMaintenanceWindow :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_preferredMaintenanceWindow :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_preferredMaintenanceWindow = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
preferredMaintenanceWindow :: Maybe Text
$sel:preferredMaintenanceWindow:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
preferredMaintenanceWindow} -> Maybe Text
preferredMaintenanceWindow) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:preferredMaintenanceWindow:ModifyDBInstance' :: Maybe Text
preferredMaintenanceWindow = Maybe Text
a} :: ModifyDBInstance)

-- | A value that specifies the order in which a Read Replica is promoted to
-- the primary instance after a failure of the existing primary instance.
--
-- Default: 1
--
-- Valid Values: 0 - 15
modifyDBInstance_promotionTier :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Int)
modifyDBInstance_promotionTier :: Lens' ModifyDBInstance (Maybe Int)
modifyDBInstance_promotionTier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Int
promotionTier :: Maybe Int
$sel:promotionTier:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
promotionTier} -> Maybe Int
promotionTier) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Int
a -> ModifyDBInstance
s {$sel:promotionTier:ModifyDBInstance' :: Maybe Int
promotionTier = Maybe Int
a} :: ModifyDBInstance)

-- | This flag should no longer be used.
modifyDBInstance_publiclyAccessible :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
modifyDBInstance_publiclyAccessible :: Lens' ModifyDBInstance (Maybe Bool)
modifyDBInstance_publiclyAccessible = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Bool
publiclyAccessible :: Maybe Bool
$sel:publiclyAccessible:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
publiclyAccessible} -> Maybe Bool
publiclyAccessible) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Bool
a -> ModifyDBInstance
s {$sel:publiclyAccessible:ModifyDBInstance' :: Maybe Bool
publiclyAccessible = Maybe Bool
a} :: ModifyDBInstance)

-- | Not supported.
modifyDBInstance_storageType :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_storageType :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_storageType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
storageType :: Maybe Text
$sel:storageType:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
storageType} -> Maybe Text
storageType) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:storageType:ModifyDBInstance' :: Maybe Text
storageType = Maybe Text
a} :: ModifyDBInstance)

-- | The ARN from the key store with which to associate the instance for TDE
-- encryption.
modifyDBInstance_tdeCredentialArn :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_tdeCredentialArn :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_tdeCredentialArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
tdeCredentialArn :: Maybe Text
$sel:tdeCredentialArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
tdeCredentialArn} -> Maybe Text
tdeCredentialArn) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:tdeCredentialArn:ModifyDBInstance' :: Maybe Text
tdeCredentialArn = Maybe Text
a} :: ModifyDBInstance)

-- | The password for the given ARN from the key store in order to access the
-- device.
modifyDBInstance_tdeCredentialPassword :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_tdeCredentialPassword :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_tdeCredentialPassword = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
tdeCredentialPassword :: Maybe Text
$sel:tdeCredentialPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
tdeCredentialPassword} -> Maybe Text
tdeCredentialPassword) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:tdeCredentialPassword:ModifyDBInstance' :: Maybe Text
tdeCredentialPassword = Maybe Text
a} :: ModifyDBInstance)

-- | A list of EC2 VPC security groups to authorize on this DB instance. This
-- change is asynchronously applied as soon as possible.
--
-- Not applicable. The associated list of EC2 VPC security groups is
-- managed by the DB cluster. For more information, see ModifyDBCluster.
--
-- Constraints:
--
-- -   If supplied, must match existing VpcSecurityGroupIds.
modifyDBInstance_vpcSecurityGroupIds :: Lens.Lens' ModifyDBInstance (Prelude.Maybe [Prelude.Text])
modifyDBInstance_vpcSecurityGroupIds :: Lens' ModifyDBInstance (Maybe [Text])
modifyDBInstance_vpcSecurityGroupIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe [Text]
vpcSecurityGroupIds :: Maybe [Text]
$sel:vpcSecurityGroupIds:ModifyDBInstance' :: ModifyDBInstance -> Maybe [Text]
vpcSecurityGroupIds} -> Maybe [Text]
vpcSecurityGroupIds) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe [Text]
a -> ModifyDBInstance
s {$sel:vpcSecurityGroupIds:ModifyDBInstance' :: Maybe [Text]
vpcSecurityGroupIds = Maybe [Text]
a} :: ModifyDBInstance) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The DB instance identifier. This value is stored as a lowercase string.
--
-- Constraints:
--
-- -   Must match the identifier of an existing DBInstance.
modifyDBInstance_dbInstanceIdentifier :: Lens.Lens' ModifyDBInstance Prelude.Text
modifyDBInstance_dbInstanceIdentifier :: Lens' ModifyDBInstance Text
modifyDBInstance_dbInstanceIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Text
dbInstanceIdentifier :: Text
$sel:dbInstanceIdentifier:ModifyDBInstance' :: ModifyDBInstance -> Text
dbInstanceIdentifier} -> Text
dbInstanceIdentifier) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Text
a -> ModifyDBInstance
s {$sel:dbInstanceIdentifier:ModifyDBInstance' :: Text
dbInstanceIdentifier = Text
a} :: ModifyDBInstance)

instance Core.AWSRequest ModifyDBInstance where
  type
    AWSResponse ModifyDBInstance =
      ModifyDBInstanceResponse
  request :: (Service -> Service)
-> ModifyDBInstance -> Request ModifyDBInstance
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy ModifyDBInstance
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse ModifyDBInstance)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
    -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
      Text
"ModifyDBInstanceResult"
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe DBInstance -> Int -> ModifyDBInstanceResponse
ModifyDBInstanceResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"DBInstance")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable ModifyDBInstance where
  hashWithSalt :: Int -> ModifyDBInstance -> Int
hashWithSalt Int
_salt ModifyDBInstance' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe Text
Maybe CloudwatchLogsExportConfiguration
Text
dbInstanceIdentifier :: Text
vpcSecurityGroupIds :: Maybe [Text]
tdeCredentialPassword :: Maybe Text
tdeCredentialArn :: Maybe Text
storageType :: Maybe Text
publiclyAccessible :: Maybe Bool
promotionTier :: Maybe Int
preferredMaintenanceWindow :: Maybe Text
preferredBackupWindow :: Maybe Text
performanceInsightsKMSKeyId :: Maybe Text
optionGroupName :: Maybe Text
newDBInstanceIdentifier' :: Maybe Text
multiAZ :: Maybe Bool
monitoringRoleArn :: Maybe Text
monitoringInterval :: Maybe Int
masterUserPassword :: Maybe Text
licenseModel :: Maybe Text
iops :: Maybe Int
engineVersion :: Maybe Text
enablePerformanceInsights :: Maybe Bool
enableIAMDatabaseAuthentication :: Maybe Bool
domainIAMRoleName :: Maybe Text
domain :: Maybe Text
deletionProtection :: Maybe Bool
dbSubnetGroupName :: Maybe Text
dbSecurityGroups :: Maybe [Text]
dbPortNumber :: Maybe Int
dbParameterGroupName :: Maybe Text
dbInstanceClass :: Maybe Text
copyTagsToSnapshot :: Maybe Bool
cloudwatchLogsExportConfiguration :: Maybe CloudwatchLogsExportConfiguration
cACertificateIdentifier :: Maybe Text
backupRetentionPeriod :: Maybe Int
autoMinorVersionUpgrade :: Maybe Bool
applyImmediately :: Maybe Bool
allowMajorVersionUpgrade :: Maybe Bool
allocatedStorage :: Maybe Int
$sel:dbInstanceIdentifier:ModifyDBInstance' :: ModifyDBInstance -> Text
$sel:vpcSecurityGroupIds:ModifyDBInstance' :: ModifyDBInstance -> Maybe [Text]
$sel:tdeCredentialPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:tdeCredentialArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:storageType:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:publiclyAccessible:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:promotionTier:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:preferredMaintenanceWindow:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:preferredBackupWindow:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:performanceInsightsKMSKeyId:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:optionGroupName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:newDBInstanceIdentifier':ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:multiAZ:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:monitoringRoleArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:monitoringInterval:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:masterUserPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:licenseModel:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:iops:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:engineVersion:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:enablePerformanceInsights:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:enableIAMDatabaseAuthentication:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:domainIAMRoleName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:domain:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:deletionProtection:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:dbSubnetGroupName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:dbSecurityGroups:ModifyDBInstance' :: ModifyDBInstance -> Maybe [Text]
$sel:dbPortNumber:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:dbParameterGroupName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:dbInstanceClass:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:copyTagsToSnapshot:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:cloudwatchLogsExportConfiguration:ModifyDBInstance' :: ModifyDBInstance -> Maybe CloudwatchLogsExportConfiguration
$sel:cACertificateIdentifier:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:backupRetentionPeriod:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:autoMinorVersionUpgrade:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:applyImmediately:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:allowMajorVersionUpgrade:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:allocatedStorage:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
allocatedStorage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
allowMajorVersionUpgrade
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
applyImmediately
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
autoMinorVersionUpgrade
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
backupRetentionPeriod
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
cACertificateIdentifier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CloudwatchLogsExportConfiguration
cloudwatchLogsExportConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
copyTagsToSnapshot
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dbInstanceClass
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dbParameterGroupName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
dbPortNumber
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
dbSecurityGroups
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dbSubnetGroupName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
deletionProtection
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
domain
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
domainIAMRoleName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
enableIAMDatabaseAuthentication
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
enablePerformanceInsights
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
engineVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
iops
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
licenseModel
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
masterUserPassword
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
monitoringInterval
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
monitoringRoleArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
multiAZ
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
newDBInstanceIdentifier'
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
optionGroupName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
performanceInsightsKMSKeyId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
preferredBackupWindow
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
preferredMaintenanceWindow
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
promotionTier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
publiclyAccessible
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
storageType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
tdeCredentialArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
tdeCredentialPassword
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
vpcSecurityGroupIds
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
dbInstanceIdentifier

instance Prelude.NFData ModifyDBInstance where
  rnf :: ModifyDBInstance -> ()
rnf ModifyDBInstance' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe Text
Maybe CloudwatchLogsExportConfiguration
Text
dbInstanceIdentifier :: Text
vpcSecurityGroupIds :: Maybe [Text]
tdeCredentialPassword :: Maybe Text
tdeCredentialArn :: Maybe Text
storageType :: Maybe Text
publiclyAccessible :: Maybe Bool
promotionTier :: Maybe Int
preferredMaintenanceWindow :: Maybe Text
preferredBackupWindow :: Maybe Text
performanceInsightsKMSKeyId :: Maybe Text
optionGroupName :: Maybe Text
newDBInstanceIdentifier' :: Maybe Text
multiAZ :: Maybe Bool
monitoringRoleArn :: Maybe Text
monitoringInterval :: Maybe Int
masterUserPassword :: Maybe Text
licenseModel :: Maybe Text
iops :: Maybe Int
engineVersion :: Maybe Text
enablePerformanceInsights :: Maybe Bool
enableIAMDatabaseAuthentication :: Maybe Bool
domainIAMRoleName :: Maybe Text
domain :: Maybe Text
deletionProtection :: Maybe Bool
dbSubnetGroupName :: Maybe Text
dbSecurityGroups :: Maybe [Text]
dbPortNumber :: Maybe Int
dbParameterGroupName :: Maybe Text
dbInstanceClass :: Maybe Text
copyTagsToSnapshot :: Maybe Bool
cloudwatchLogsExportConfiguration :: Maybe CloudwatchLogsExportConfiguration
cACertificateIdentifier :: Maybe Text
backupRetentionPeriod :: Maybe Int
autoMinorVersionUpgrade :: Maybe Bool
applyImmediately :: Maybe Bool
allowMajorVersionUpgrade :: Maybe Bool
allocatedStorage :: Maybe Int
$sel:dbInstanceIdentifier:ModifyDBInstance' :: ModifyDBInstance -> Text
$sel:vpcSecurityGroupIds:ModifyDBInstance' :: ModifyDBInstance -> Maybe [Text]
$sel:tdeCredentialPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:tdeCredentialArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:storageType:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:publiclyAccessible:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:promotionTier:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:preferredMaintenanceWindow:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:preferredBackupWindow:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:performanceInsightsKMSKeyId:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:optionGroupName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:newDBInstanceIdentifier':ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:multiAZ:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:monitoringRoleArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:monitoringInterval:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:masterUserPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:licenseModel:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:iops:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:engineVersion:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:enablePerformanceInsights:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:enableIAMDatabaseAuthentication:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:domainIAMRoleName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:domain:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:deletionProtection:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:dbSubnetGroupName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:dbSecurityGroups:ModifyDBInstance' :: ModifyDBInstance -> Maybe [Text]
$sel:dbPortNumber:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:dbParameterGroupName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:dbInstanceClass:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:copyTagsToSnapshot:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:cloudwatchLogsExportConfiguration:ModifyDBInstance' :: ModifyDBInstance -> Maybe CloudwatchLogsExportConfiguration
$sel:cACertificateIdentifier:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:backupRetentionPeriod:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:autoMinorVersionUpgrade:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:applyImmediately:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:allowMajorVersionUpgrade:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:allocatedStorage:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
allocatedStorage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
allowMajorVersionUpgrade
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
applyImmediately
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
autoMinorVersionUpgrade
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
backupRetentionPeriod
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
cACertificateIdentifier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CloudwatchLogsExportConfiguration
cloudwatchLogsExportConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
copyTagsToSnapshot
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dbInstanceClass
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dbParameterGroupName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
dbPortNumber
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
dbSecurityGroups
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dbSubnetGroupName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
deletionProtection
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
domain
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
domainIAMRoleName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Bool
enableIAMDatabaseAuthentication
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Bool
enablePerformanceInsights
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
engineVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
iops
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
licenseModel
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
masterUserPassword
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Int
monitoringInterval
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
monitoringRoleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
multiAZ
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
newDBInstanceIdentifier'
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
optionGroupName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
performanceInsightsKMSKeyId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
preferredBackupWindow
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
preferredMaintenanceWindow
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Int
promotionTier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Bool
publiclyAccessible
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
storageType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
tdeCredentialArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
tdeCredentialPassword
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe [Text]
vpcSecurityGroupIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Text
dbInstanceIdentifier

instance Data.ToHeaders ModifyDBInstance where
  toHeaders :: ModifyDBInstance -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToPath ModifyDBInstance where
  toPath :: ModifyDBInstance -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery ModifyDBInstance where
  toQuery :: ModifyDBInstance -> QueryString
toQuery ModifyDBInstance' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe Text
Maybe CloudwatchLogsExportConfiguration
Text
dbInstanceIdentifier :: Text
vpcSecurityGroupIds :: Maybe [Text]
tdeCredentialPassword :: Maybe Text
tdeCredentialArn :: Maybe Text
storageType :: Maybe Text
publiclyAccessible :: Maybe Bool
promotionTier :: Maybe Int
preferredMaintenanceWindow :: Maybe Text
preferredBackupWindow :: Maybe Text
performanceInsightsKMSKeyId :: Maybe Text
optionGroupName :: Maybe Text
newDBInstanceIdentifier' :: Maybe Text
multiAZ :: Maybe Bool
monitoringRoleArn :: Maybe Text
monitoringInterval :: Maybe Int
masterUserPassword :: Maybe Text
licenseModel :: Maybe Text
iops :: Maybe Int
engineVersion :: Maybe Text
enablePerformanceInsights :: Maybe Bool
enableIAMDatabaseAuthentication :: Maybe Bool
domainIAMRoleName :: Maybe Text
domain :: Maybe Text
deletionProtection :: Maybe Bool
dbSubnetGroupName :: Maybe Text
dbSecurityGroups :: Maybe [Text]
dbPortNumber :: Maybe Int
dbParameterGroupName :: Maybe Text
dbInstanceClass :: Maybe Text
copyTagsToSnapshot :: Maybe Bool
cloudwatchLogsExportConfiguration :: Maybe CloudwatchLogsExportConfiguration
cACertificateIdentifier :: Maybe Text
backupRetentionPeriod :: Maybe Int
autoMinorVersionUpgrade :: Maybe Bool
applyImmediately :: Maybe Bool
allowMajorVersionUpgrade :: Maybe Bool
allocatedStorage :: Maybe Int
$sel:dbInstanceIdentifier:ModifyDBInstance' :: ModifyDBInstance -> Text
$sel:vpcSecurityGroupIds:ModifyDBInstance' :: ModifyDBInstance -> Maybe [Text]
$sel:tdeCredentialPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:tdeCredentialArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:storageType:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:publiclyAccessible:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:promotionTier:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:preferredMaintenanceWindow:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:preferredBackupWindow:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:performanceInsightsKMSKeyId:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:optionGroupName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:newDBInstanceIdentifier':ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:multiAZ:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:monitoringRoleArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:monitoringInterval:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:masterUserPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:licenseModel:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:iops:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:engineVersion:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:enablePerformanceInsights:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:enableIAMDatabaseAuthentication:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:domainIAMRoleName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:domain:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:deletionProtection:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:dbSubnetGroupName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:dbSecurityGroups:ModifyDBInstance' :: ModifyDBInstance -> Maybe [Text]
$sel:dbPortNumber:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:dbParameterGroupName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:dbInstanceClass:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:copyTagsToSnapshot:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:cloudwatchLogsExportConfiguration:ModifyDBInstance' :: ModifyDBInstance -> Maybe CloudwatchLogsExportConfiguration
$sel:cACertificateIdentifier:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:backupRetentionPeriod:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:autoMinorVersionUpgrade:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:applyImmediately:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:allowMajorVersionUpgrade:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:allocatedStorage:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"ModifyDBInstance" :: Prelude.ByteString),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2014-10-31" :: Prelude.ByteString),
        ByteString
"AllocatedStorage" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
allocatedStorage,
        ByteString
"AllowMajorVersionUpgrade"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
allowMajorVersionUpgrade,
        ByteString
"ApplyImmediately" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
applyImmediately,
        ByteString
"AutoMinorVersionUpgrade"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
autoMinorVersionUpgrade,
        ByteString
"BackupRetentionPeriod"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
backupRetentionPeriod,
        ByteString
"CACertificateIdentifier"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
cACertificateIdentifier,
        ByteString
"CloudwatchLogsExportConfiguration"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe CloudwatchLogsExportConfiguration
cloudwatchLogsExportConfiguration,
        ByteString
"CopyTagsToSnapshot" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
copyTagsToSnapshot,
        ByteString
"DBInstanceClass" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
dbInstanceClass,
        ByteString
"DBParameterGroupName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
dbParameterGroupName,
        ByteString
"DBPortNumber" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
dbPortNumber,
        ByteString
"DBSecurityGroups"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: forall a. ToQuery a => a -> QueryString
Data.toQuery
            ( forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"DBSecurityGroupName"
                forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
dbSecurityGroups
            ),
        ByteString
"DBSubnetGroupName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
dbSubnetGroupName,
        ByteString
"DeletionProtection" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
deletionProtection,
        ByteString
"Domain" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
domain,
        ByteString
"DomainIAMRoleName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
domainIAMRoleName,
        ByteString
"EnableIAMDatabaseAuthentication"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
enableIAMDatabaseAuthentication,
        ByteString
"EnablePerformanceInsights"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
enablePerformanceInsights,
        ByteString
"EngineVersion" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
engineVersion,
        ByteString
"Iops" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
iops,
        ByteString
"LicenseModel" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
licenseModel,
        ByteString
"MasterUserPassword" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
masterUserPassword,
        ByteString
"MonitoringInterval" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
monitoringInterval,
        ByteString
"MonitoringRoleArn" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
monitoringRoleArn,
        ByteString
"MultiAZ" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
multiAZ,
        ByteString
"NewDBInstanceIdentifier"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
newDBInstanceIdentifier',
        ByteString
"OptionGroupName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
optionGroupName,
        ByteString
"PerformanceInsightsKMSKeyId"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
performanceInsightsKMSKeyId,
        ByteString
"PreferredBackupWindow"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
preferredBackupWindow,
        ByteString
"PreferredMaintenanceWindow"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
preferredMaintenanceWindow,
        ByteString
"PromotionTier" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
promotionTier,
        ByteString
"PubliclyAccessible" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
publiclyAccessible,
        ByteString
"StorageType" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
storageType,
        ByteString
"TdeCredentialArn" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
tdeCredentialArn,
        ByteString
"TdeCredentialPassword"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
tdeCredentialPassword,
        ByteString
"VpcSecurityGroupIds"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: forall a. ToQuery a => a -> QueryString
Data.toQuery
            ( forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"VpcSecurityGroupId"
                forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
vpcSecurityGroupIds
            ),
        ByteString
"DBInstanceIdentifier" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
dbInstanceIdentifier
      ]

-- | /See:/ 'newModifyDBInstanceResponse' smart constructor.
data ModifyDBInstanceResponse = ModifyDBInstanceResponse'
  { ModifyDBInstanceResponse -> Maybe DBInstance
dbInstance :: Prelude.Maybe DBInstance,
    -- | The response's http status code.
    ModifyDBInstanceResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ModifyDBInstanceResponse -> ModifyDBInstanceResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ModifyDBInstanceResponse -> ModifyDBInstanceResponse -> Bool
$c/= :: ModifyDBInstanceResponse -> ModifyDBInstanceResponse -> Bool
== :: ModifyDBInstanceResponse -> ModifyDBInstanceResponse -> Bool
$c== :: ModifyDBInstanceResponse -> ModifyDBInstanceResponse -> Bool
Prelude.Eq, ReadPrec [ModifyDBInstanceResponse]
ReadPrec ModifyDBInstanceResponse
Int -> ReadS ModifyDBInstanceResponse
ReadS [ModifyDBInstanceResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ModifyDBInstanceResponse]
$creadListPrec :: ReadPrec [ModifyDBInstanceResponse]
readPrec :: ReadPrec ModifyDBInstanceResponse
$creadPrec :: ReadPrec ModifyDBInstanceResponse
readList :: ReadS [ModifyDBInstanceResponse]
$creadList :: ReadS [ModifyDBInstanceResponse]
readsPrec :: Int -> ReadS ModifyDBInstanceResponse
$creadsPrec :: Int -> ReadS ModifyDBInstanceResponse
Prelude.Read, Int -> ModifyDBInstanceResponse -> ShowS
[ModifyDBInstanceResponse] -> ShowS
ModifyDBInstanceResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ModifyDBInstanceResponse] -> ShowS
$cshowList :: [ModifyDBInstanceResponse] -> ShowS
show :: ModifyDBInstanceResponse -> String
$cshow :: ModifyDBInstanceResponse -> String
showsPrec :: Int -> ModifyDBInstanceResponse -> ShowS
$cshowsPrec :: Int -> ModifyDBInstanceResponse -> ShowS
Prelude.Show, forall x.
Rep ModifyDBInstanceResponse x -> ModifyDBInstanceResponse
forall x.
ModifyDBInstanceResponse -> Rep ModifyDBInstanceResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ModifyDBInstanceResponse x -> ModifyDBInstanceResponse
$cfrom :: forall x.
ModifyDBInstanceResponse -> Rep ModifyDBInstanceResponse x
Prelude.Generic)

-- |
-- Create a value of 'ModifyDBInstanceResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'dbInstance', 'modifyDBInstanceResponse_dbInstance' - Undocumented member.
--
-- 'httpStatus', 'modifyDBInstanceResponse_httpStatus' - The response's http status code.
newModifyDBInstanceResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ModifyDBInstanceResponse
newModifyDBInstanceResponse :: Int -> ModifyDBInstanceResponse
newModifyDBInstanceResponse Int
pHttpStatus_ =
  ModifyDBInstanceResponse'
    { $sel:dbInstance:ModifyDBInstanceResponse' :: Maybe DBInstance
dbInstance =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ModifyDBInstanceResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Undocumented member.
modifyDBInstanceResponse_dbInstance :: Lens.Lens' ModifyDBInstanceResponse (Prelude.Maybe DBInstance)
modifyDBInstanceResponse_dbInstance :: Lens' ModifyDBInstanceResponse (Maybe DBInstance)
modifyDBInstanceResponse_dbInstance = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstanceResponse' {Maybe DBInstance
dbInstance :: Maybe DBInstance
$sel:dbInstance:ModifyDBInstanceResponse' :: ModifyDBInstanceResponse -> Maybe DBInstance
dbInstance} -> Maybe DBInstance
dbInstance) (\s :: ModifyDBInstanceResponse
s@ModifyDBInstanceResponse' {} Maybe DBInstance
a -> ModifyDBInstanceResponse
s {$sel:dbInstance:ModifyDBInstanceResponse' :: Maybe DBInstance
dbInstance = Maybe DBInstance
a} :: ModifyDBInstanceResponse)

-- | The response's http status code.
modifyDBInstanceResponse_httpStatus :: Lens.Lens' ModifyDBInstanceResponse Prelude.Int
modifyDBInstanceResponse_httpStatus :: Lens' ModifyDBInstanceResponse Int
modifyDBInstanceResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstanceResponse' {Int
httpStatus :: Int
$sel:httpStatus:ModifyDBInstanceResponse' :: ModifyDBInstanceResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ModifyDBInstanceResponse
s@ModifyDBInstanceResponse' {} Int
a -> ModifyDBInstanceResponse
s {$sel:httpStatus:ModifyDBInstanceResponse' :: Int
httpStatus = Int
a} :: ModifyDBInstanceResponse)

instance Prelude.NFData ModifyDBInstanceResponse where
  rnf :: ModifyDBInstanceResponse -> ()
rnf ModifyDBInstanceResponse' {Int
Maybe DBInstance
httpStatus :: Int
dbInstance :: Maybe DBInstance
$sel:httpStatus:ModifyDBInstanceResponse' :: ModifyDBInstanceResponse -> Int
$sel:dbInstance:ModifyDBInstanceResponse' :: ModifyDBInstanceResponse -> Maybe DBInstance
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe DBInstance
dbInstance
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus