{-# 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.RDS.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.RDS.ModifyDBInstance
  ( -- * Creating a Request
    ModifyDBInstance (..),
    newModifyDBInstance,

    -- * Request Lenses
    modifyDBInstance_allocatedStorage,
    modifyDBInstance_allowMajorVersionUpgrade,
    modifyDBInstance_applyImmediately,
    modifyDBInstance_autoMinorVersionUpgrade,
    modifyDBInstance_automationMode,
    modifyDBInstance_awsBackupRecoveryPointArn,
    modifyDBInstance_backupRetentionPeriod,
    modifyDBInstance_cACertificateIdentifier,
    modifyDBInstance_certificateRotationRestart,
    modifyDBInstance_cloudwatchLogsExportConfiguration,
    modifyDBInstance_copyTagsToSnapshot,
    modifyDBInstance_dbInstanceClass,
    modifyDBInstance_dbParameterGroupName,
    modifyDBInstance_dbPortNumber,
    modifyDBInstance_dbSecurityGroups,
    modifyDBInstance_dbSubnetGroupName,
    modifyDBInstance_deletionProtection,
    modifyDBInstance_domain,
    modifyDBInstance_domainIAMRoleName,
    modifyDBInstance_enableCustomerOwnedIp,
    modifyDBInstance_enableIAMDatabaseAuthentication,
    modifyDBInstance_enablePerformanceInsights,
    modifyDBInstance_engineVersion,
    modifyDBInstance_iops,
    modifyDBInstance_licenseModel,
    modifyDBInstance_manageMasterUserPassword,
    modifyDBInstance_masterUserPassword,
    modifyDBInstance_masterUserSecretKmsKeyId,
    modifyDBInstance_maxAllocatedStorage,
    modifyDBInstance_monitoringInterval,
    modifyDBInstance_monitoringRoleArn,
    modifyDBInstance_multiAZ,
    modifyDBInstance_networkType,
    modifyDBInstance_newDBInstanceIdentifier,
    modifyDBInstance_optionGroupName,
    modifyDBInstance_performanceInsightsKMSKeyId,
    modifyDBInstance_performanceInsightsRetentionPeriod,
    modifyDBInstance_preferredBackupWindow,
    modifyDBInstance_preferredMaintenanceWindow,
    modifyDBInstance_processorFeatures,
    modifyDBInstance_promotionTier,
    modifyDBInstance_publiclyAccessible,
    modifyDBInstance_replicaMode,
    modifyDBInstance_resumeFullAutomationModeMinutes,
    modifyDBInstance_rotateMasterUserPassword,
    modifyDBInstance_storageThroughput,
    modifyDBInstance_storageType,
    modifyDBInstance_tdeCredentialArn,
    modifyDBInstance_tdeCredentialPassword,
    modifyDBInstance_useDefaultProcessorFeatures,
    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 qualified Amazonka.Prelude as Prelude
import Amazonka.RDS.Types
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- |
--
-- /See:/ 'newModifyDBInstance' smart constructor.
data ModifyDBInstance = ModifyDBInstance'
  { -- | The new amount of storage in gibibytes (GiB) to allocate for the DB
    -- instance.
    --
    -- For MariaDB, MySQL, Oracle, and PostgreSQL, the value supplied must be
    -- at least 10% greater than the current value. Values that are not at
    -- least 10% greater than the existing value are rounded up so that they
    -- are 10% greater than the current value.
    --
    -- For the valid values for allocated storage for each engine, see
    -- @CreateDBInstance@.
    ModifyDBInstance -> Maybe Int
allocatedStorage :: Prelude.Maybe Prelude.Int,
    -- | A value that indicates whether major version upgrades are allowed.
    -- Changing this parameter doesn\'t result in an outage and the change is
    -- asynchronously applied as soon as possible.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- Constraints: Major version upgrades must be allowed when specifying a
    -- value for the EngineVersion parameter that is a different major version
    -- than the DB instance\'s current version.
    ModifyDBInstance -> Maybe Bool
allowMajorVersionUpgrade :: Prelude.Maybe Prelude.Bool,
    -- | A value that indicates 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. By default, this parameter is disabled.
    --
    -- If this parameter is disabled, 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. Review the table of parameters in
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html Modifying a DB Instance>
    -- in the /Amazon RDS User Guide/ to see the impact of enabling or
    -- disabling @ApplyImmediately@ for each modified parameter and to
    -- determine when the changes are applied.
    ModifyDBInstance -> Maybe Bool
applyImmediately :: Prelude.Maybe Prelude.Bool,
    -- | A value that indicates whether minor version upgrades are applied
    -- automatically to the DB instance during the maintenance window. An
    -- outage occurs when all the following conditions are met:
    --
    -- -   The automatic upgrade is enabled for the maintenance window.
    --
    -- -   A newer minor version is available.
    --
    -- -   RDS has enabled automatic patching for the engine version.
    --
    -- If any of the preceding conditions isn\'t met, RDS applies the change as
    -- soon as possible and doesn\'t cause an outage.
    --
    -- For an RDS Custom DB instance, set @AutoMinorVersionUpgrade@ to @false@.
    -- Otherwise, the operation returns an error.
    ModifyDBInstance -> Maybe Bool
autoMinorVersionUpgrade :: Prelude.Maybe Prelude.Bool,
    -- | The automation mode of the RDS Custom DB instance: @full@ or
    -- @all paused@. If @full@, the DB instance automates monitoring and
    -- instance recovery. If @all paused@, the instance pauses automation for
    -- the duration set by @ResumeFullAutomationModeMinutes@.
    ModifyDBInstance -> Maybe AutomationMode
automationMode :: Prelude.Maybe AutomationMode,
    -- | The Amazon Resource Name (ARN) of the recovery point in Amazon Web
    -- Services Backup.
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe Text
awsBackupRecoveryPointArn :: Prelude.Maybe Prelude.Text,
    -- | The number of days to retain automated backups. Setting this parameter
    -- to a positive number enables backups. Setting this parameter to 0
    -- disables automated backups.
    --
    -- Enabling and disabling backups can result in a brief I\/O suspension
    -- that lasts from a few seconds to a few minutes, depending on the size
    -- and class of your DB instance.
    --
    -- These changes are applied during the next maintenance window unless the
    -- @ApplyImmediately@ parameter is enabled for this request. If you change
    -- the parameter from one non-zero value to another non-zero value, the
    -- change is asynchronously applied as soon as possible.
    --
    -- __Amazon Aurora__
    --
    -- Not applicable. The retention period for automated backups is managed by
    -- the DB cluster. For more information, see @ModifyDBCluster@.
    --
    -- Default: Uses existing setting
    --
    -- Constraints:
    --
    -- -   It must be a value from 0 to 35. It can\'t be set to 0 if the DB
    --     instance is a source to read replicas. It can\'t be set to 0 for an
    --     RDS Custom for Oracle DB instance.
    --
    -- -   It can be specified for a MySQL read replica only if the source is
    --     running MySQL 5.6 or later.
    --
    -- -   It can be specified for a PostgreSQL read replica only if the source
    --     is running PostgreSQL 9.3.5.
    ModifyDBInstance -> Maybe Int
backupRetentionPeriod :: Prelude.Maybe Prelude.Int,
    -- | Specifies the CA certificate identifier to use for the DB instance’s
    -- server certificate.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html Using SSL\/TLS to encrypt a connection to a DB instance>
    -- in the /Amazon RDS User Guide/ and
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html Using SSL\/TLS to encrypt a connection to a DB cluster>
    -- in the /Amazon Aurora User Guide/.
    ModifyDBInstance -> Maybe Text
cACertificateIdentifier :: Prelude.Maybe Prelude.Text,
    -- | A value that indicates whether the DB instance is restarted when you
    -- rotate your SSL\/TLS certificate.
    --
    -- By default, the DB instance is restarted when you rotate your SSL\/TLS
    -- certificate. The certificate is not updated until the DB instance is
    -- restarted.
    --
    -- Set this parameter only if you are /not/ using SSL\/TLS to connect to
    -- the DB instance.
    --
    -- If you are using SSL\/TLS to connect to the DB instance, follow the
    -- appropriate instructions for your DB engine to rotate your SSL\/TLS
    -- certificate:
    --
    -- -   For more information about rotating your SSL\/TLS certificate for
    --     RDS DB engines, see
    --     <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html Rotating Your SSL\/TLS Certificate.>
    --     in the /Amazon RDS User Guide./
    --
    -- -   For more information about rotating your SSL\/TLS certificate for
    --     Aurora DB engines, see
    --     <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html Rotating Your SSL\/TLS Certificate>
    --     in the /Amazon Aurora User Guide/.
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe Bool
certificateRotationRestart :: Prelude.Maybe Prelude.Bool,
    -- | The configuration setting for the log types to be enabled for export to
    -- CloudWatch Logs for a specific DB instance.
    --
    -- A change to the @CloudwatchLogsExportConfiguration@ parameter is always
    -- applied to the DB instance immediately. Therefore, the
    -- @ApplyImmediately@ parameter has no effect.
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe CloudwatchLogsExportConfiguration
cloudwatchLogsExportConfiguration :: Prelude.Maybe CloudwatchLogsExportConfiguration,
    -- | A value that indicates whether to copy all tags from the DB instance to
    -- snapshots of the DB instance. By default, tags are not copied.
    --
    -- __Amazon Aurora__
    --
    -- Not applicable. Copying tags to snapshots is managed by the DB cluster.
    -- Setting this value for an Aurora DB instance has no effect on the DB
    -- cluster setting. For more information, see @ModifyDBCluster@.
    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 Web
    -- Services Regions, or for all database engines. For the full list of DB
    -- instance classes, and availability for your engine, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html DB Instance Class>
    -- in the /Amazon RDS User Guide/ or
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.DBInstanceClass.html Aurora DB instance classes>
    -- in the /Amazon Aurora User Guide/. For RDS Custom, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits.html#custom-reqs-limits.instances DB instance class support for RDS Custom for Oracle>
    -- and
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits-MS.html#custom-reqs-limits.instancesMS DB instance class support for RDS Custom for SQL Server>.
    --
    -- If you modify the DB instance class, an outage occurs during the change.
    -- The change is applied during the next maintenance window, unless you
    -- specify @ApplyImmediately@ in your 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. In this
    -- case, the DB instance isn\'t rebooted automatically, and the parameter
    -- changes aren\'t applied during the next maintenance window. However, if
    -- you modify dynamic parameters in the newly associated DB parameter
    -- group, these changes are applied immediately without a reboot.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- Default: Uses existing setting
    --
    -- Constraints: The DB parameter group must be in the same DB parameter
    -- group family as the 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.
    --
    -- If you change the @DBPortNumber@ value, your database restarts
    -- regardless of the value of the @ApplyImmediately@ parameter.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- __MySQL__
    --
    -- Default: @3306@
    --
    -- Valid values: @1150-65535@
    --
    -- __MariaDB__
    --
    -- Default: @3306@
    --
    -- Valid values: @1150-65535@
    --
    -- __PostgreSQL__
    --
    -- Default: @5432@
    --
    -- Valid values: @1150-65535@
    --
    -- Type: Integer
    --
    -- __Oracle__
    --
    -- Default: @1521@
    --
    -- Valid values: @1150-65535@
    --
    -- __SQL Server__
    --
    -- Default: @1433@
    --
    -- Valid values: @1150-65535@ except @1234@, @1434@, @3260@, @3343@,
    -- @3389@, @47001@, and @49152-49156@.
    --
    -- __Amazon Aurora__
    --
    -- Default: @3306@
    --
    -- Valid values: @1150-65535@
    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.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- 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. If your DB instance isn\'t
    -- in a VPC, you can also use this parameter to move your DB instance into
    -- a VPC. For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Non-VPC2VPC Working with a DB instance in a VPC>
    -- in the /Amazon RDS User Guide/.
    --
    -- Changing the subnet group causes an outage during the change. The change
    -- is applied during the next maintenance window, unless you enable
    -- @ApplyImmediately@.
    --
    -- This parameter doesn\'t apply to RDS Custom.
    --
    -- Constraints: If supplied, must match the name of an existing
    -- DBSubnetGroup.
    --
    -- Example: @mydbsubnetgroup@
    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 isn\'t enabled. For more
    -- information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html Deleting a DB Instance>.
    ModifyDBInstance -> Maybe Bool
deletionProtection :: Prelude.Maybe Prelude.Bool,
    -- | The Active Directory directory ID to move the DB instance to. Specify
    -- @none@ to remove the instance from its current domain. You must create
    -- the domain before this operation. Currently, you can create only MySQL,
    -- Microsoft SQL Server, Oracle, and PostgreSQL DB instances in an Active
    -- Directory Domain.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html Kerberos Authentication>
    -- in the /Amazon RDS User Guide/.
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe Text
domain :: Prelude.Maybe Prelude.Text,
    -- | The name of the IAM role to use when making API calls to the Directory
    -- Service.
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe Text
domainIAMRoleName :: Prelude.Maybe Prelude.Text,
    -- | A value that indicates whether to enable a customer-owned IP address
    -- (CoIP) for an RDS on Outposts DB instance.
    --
    -- A /CoIP/ provides local or external connectivity to resources in your
    -- Outpost subnets through your on-premises network. For some use cases, a
    -- CoIP can provide lower latency for connections to the DB instance from
    -- outside of its virtual private cloud (VPC) on your local network.
    --
    -- For more information about RDS on Outposts, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html Working with Amazon RDS on Amazon Web Services Outposts>
    -- in the /Amazon RDS User Guide/.
    --
    -- For more information about CoIPs, see
    -- <https://docs.aws.amazon.com/outposts/latest/userguide/routing.html#ip-addressing Customer-owned IP addresses>
    -- in the /Amazon Web Services Outposts User Guide/.
    ModifyDBInstance -> Maybe Bool
enableCustomerOwnedIp :: Prelude.Maybe Prelude.Bool,
    -- | A value that indicates whether to enable mapping of Amazon Web Services
    -- Identity and Access Management (IAM) accounts to database accounts. By
    -- default, mapping isn\'t enabled.
    --
    -- This setting doesn\'t apply to Amazon Aurora. Mapping Amazon Web
    -- Services IAM accounts to database accounts is managed by the DB cluster.
    --
    -- For more information about IAM database authentication, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html IAM Database Authentication for MySQL and PostgreSQL>
    -- in the /Amazon RDS User Guide./
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe Bool
enableIAMDatabaseAuthentication :: Prelude.Maybe Prelude.Bool,
    -- | A value that indicates whether to enable Performance Insights for the DB
    -- instance.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html Using Amazon Performance Insights>
    -- in the /Amazon RDS User Guide/.
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe Bool
enablePerformanceInsights :: Prelude.Maybe Prelude.Bool,
    -- | The version number of the database engine to upgrade to. Changing this
    -- parameter results in an outage and the change is applied during the next
    -- maintenance window unless the @ApplyImmediately@ parameter is enabled
    -- for this request.
    --
    -- For major version upgrades, if a nondefault DB parameter group is
    -- currently in use, a new DB parameter group in the DB parameter group
    -- family for the new engine version must be specified. The new DB
    -- parameter group can be the default for that DB parameter group family.
    --
    -- If you specify only a major version, Amazon RDS will update the DB
    -- instance to the default minor version if the current minor version is
    -- lower. For information about valid engine versions, see
    -- @CreateDBInstance@, or call @DescribeDBEngineVersions@.
    --
    -- In RDS Custom for Oracle, this parameter is supported for read replicas
    -- only if they are in the @PATCH_DB_FAILURE@ lifecycle.
    ModifyDBInstance -> Maybe Text
engineVersion :: Prelude.Maybe Prelude.Text,
    -- | The new Provisioned IOPS (I\/O operations per second) value for the RDS
    -- 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 enabled for this request. If you are migrating from
    -- Provisioned IOPS to standard storage, set this value to 0. The DB
    -- instance will require a reboot for the change in storage type to take
    -- effect.
    --
    -- If you choose to migrate your DB instance from using standard storage to
    -- using Provisioned IOPS, or from using Provisioned IOPS to using standard
    -- storage, the process can take time. The duration of the migration
    -- depends on several factors such as database load, storage size, storage
    -- type (standard or Provisioned IOPS), amount of IOPS provisioned (if
    -- any), and the number of prior scale storage operations. Typical
    -- migration times are under 24 hours, but the process can take up to
    -- several days in some cases. During the migration, the DB instance is
    -- available for use, but might experience performance degradation. While
    -- the migration takes place, nightly backups for the instance are
    -- suspended. No other Amazon RDS operations can take place for the
    -- instance, including modifying the instance, rebooting the instance,
    -- deleting the instance, creating a read replica for the instance, and
    -- creating a DB snapshot of the instance.
    --
    -- Constraints: For MariaDB, MySQL, Oracle, and PostgreSQL, the value
    -- supplied must be at least 10% greater than the current value. Values
    -- that are not at least 10% greater than the existing value are rounded up
    -- so that they are 10% greater than the current value.
    --
    -- Default: Uses existing setting
    ModifyDBInstance -> Maybe Int
iops :: Prelude.Maybe Prelude.Int,
    -- | The license model for the DB instance.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- Valid values: @license-included@ | @bring-your-own-license@ |
    -- @general-public-license@
    ModifyDBInstance -> Maybe Text
licenseModel :: Prelude.Maybe Prelude.Text,
    -- | A value that indicates whether to manage the master user password with
    -- Amazon Web Services Secrets Manager.
    --
    -- If the DB cluster doesn\'t manage the master user password with Amazon
    -- Web Services Secrets Manager, you can turn on this management. In this
    -- case, you can\'t specify @MasterUserPassword@.
    --
    -- If the DB cluster already manages the master user password with Amazon
    -- Web Services Secrets Manager, and you specify that the master user
    -- password is not managed with Amazon Web Services Secrets Manager, then
    -- you must specify @MasterUserPassword@. In this case, RDS deletes the
    -- secret and uses the new password for the master user specified by
    -- @MasterUserPassword@.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html Password management with Amazon Web Services Secrets Manager>
    -- in the /Amazon RDS User Guide./
    --
    -- Constraints:
    --
    -- -   Can\'t manage the master user password with Amazon Web Services
    --     Secrets Manager if @MasterUserPassword@ is specified.
    ModifyDBInstance -> Maybe Bool
manageMasterUserPassword :: Prelude.Maybe Prelude.Bool,
    -- | The new password for the master user. The password can include any
    -- printable ASCII character except \"\/\", \"\"\", or \"\@\".
    --
    -- Changing this parameter doesn\'t result in an outage and the change is
    -- asynchronously applied as soon as possible. Between the time of the
    -- request and the completion of the request, the @MasterUserPassword@
    -- element exists in the @PendingModifiedValues@ element of the operation
    -- response.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- __Amazon Aurora__
    --
    -- Not applicable. The password for the master user is managed by the DB
    -- cluster. For more information, see @ModifyDBCluster@.
    --
    -- Default: Uses existing setting
    --
    -- Constraints: Can\'t be specified if @ManageMasterUserPassword@ is turned
    -- on.
    --
    -- __MariaDB__
    --
    -- Constraints: Must contain from 8 to 41 characters.
    --
    -- __Microsoft SQL Server__
    --
    -- Constraints: Must contain from 8 to 128 characters.
    --
    -- __MySQL__
    --
    -- Constraints: Must contain from 8 to 41 characters.
    --
    -- __Oracle__
    --
    -- Constraints: Must contain from 8 to 30 characters.
    --
    -- __PostgreSQL__
    --
    -- Constraints: Must contain from 8 to 128 characters.
    --
    -- Amazon RDS API operations never return the password, so this action
    -- provides a way to regain access to a primary instance user if the
    -- password is lost. This includes restoring privileges that might have
    -- been accidentally revoked.
    ModifyDBInstance -> Maybe Text
masterUserPassword :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Web Services KMS key identifier to encrypt a secret that is
    -- automatically generated and managed in Amazon Web Services Secrets
    -- Manager.
    --
    -- This setting is valid only if both of the following conditions are met:
    --
    -- -   The DB instance doesn\'t manage the master user password in Amazon
    --     Web Services Secrets Manager.
    --
    --     If the DB instance already manages the master user password in
    --     Amazon Web Services Secrets Manager, you can\'t change the KMS key
    --     used to encrypt the secret.
    --
    -- -   You are turning on @ManageMasterUserPassword@ to manage the master
    --     user password in Amazon Web Services Secrets Manager.
    --
    --     If you are turning on @ManageMasterUserPassword@ and don\'t specify
    --     @MasterUserSecretKmsKeyId@, then the @aws\/secretsmanager@ KMS key
    --     is used to encrypt the secret. If the secret is in a different
    --     Amazon Web Services account, then you can\'t use the
    --     @aws\/secretsmanager@ KMS key to encrypt the secret, and you must
    --     use a customer managed KMS key.
    --
    -- The Amazon Web Services KMS key identifier is the key ARN, key ID, alias
    -- ARN, or alias name for the KMS key. To use a KMS key in a different
    -- Amazon Web Services account, specify the key ARN or alias ARN.
    --
    -- There is a default KMS key for your Amazon Web Services account. Your
    -- Amazon Web Services account has a different default KMS key for each
    -- Amazon Web Services Region.
    ModifyDBInstance -> Maybe Text
masterUserSecretKmsKeyId :: Prelude.Maybe Prelude.Text,
    -- | The upper limit in gibibytes (GiB) to which Amazon RDS can automatically
    -- scale the storage of the DB instance.
    --
    -- For more information about this setting, including limitations that
    -- apply to it, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling Managing capacity automatically with Amazon RDS storage autoscaling>
    -- in the /Amazon RDS User Guide/.
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe Int
maxAllocatedStorage :: Prelude.Maybe Prelude.Int,
    -- | The interval, in seconds, between points when Enhanced Monitoring
    -- metrics are collected for the DB instance. To disable collecting
    -- Enhanced Monitoring metrics, specify 0, which is the default.
    --
    -- If @MonitoringRoleArn@ is specified, set @MonitoringInterval@ to a value
    -- other than 0.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- 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 RDS to send enhanced monitoring
    -- metrics to Amazon CloudWatch Logs. For example,
    -- @arn:aws:iam:123456789012:role\/emaccess@. For information on creating a
    -- monitoring role, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html#USER_Monitoring.OS.IAMRole To create an IAM role for Amazon RDS Enhanced Monitoring>
    -- in the /Amazon RDS User Guide./
    --
    -- If @MonitoringInterval@ is set to a value other than 0, supply a
    -- @MonitoringRoleArn@ value.
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe Text
monitoringRoleArn :: Prelude.Maybe Prelude.Text,
    -- | A value that indicates whether the DB instance is a Multi-AZ deployment.
    -- Changing this parameter doesn\'t result in an outage. The change is
    -- applied during the next maintenance window unless the @ApplyImmediately@
    -- parameter is enabled for this request.
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe Bool
multiAZ :: Prelude.Maybe Prelude.Bool,
    -- | The network type of the DB instance.
    --
    -- Valid values:
    --
    -- -   @IPV4@
    --
    -- -   @DUAL@
    --
    -- The network type is determined by the @DBSubnetGroup@ specified for the
    -- DB instance. A @DBSubnetGroup@ can support only the IPv4 protocol or the
    -- IPv4 and the IPv6 protocols (@DUAL@).
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html Working with a DB instance in a VPC>
    -- in the /Amazon RDS User Guide./
    ModifyDBInstance -> Maybe Text
networkType :: Prelude.Maybe Prelude.Text,
    -- | The new DB instance identifier for the DB instance when renaming a DB
    -- instance. When you change the DB instance identifier, an instance reboot
    -- occurs immediately if you enable @ApplyImmediately@, or will occur
    -- during the next maintenance window if you disable Apply Immediately.
    -- This value is stored as a lowercase string.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- Constraints:
    --
    -- -   Must contain from 1 to 63 letters, numbers, or hyphens.
    --
    -- -   The first character must be a letter.
    --
    -- -   Can\'t end with a hyphen or contain two consecutive hyphens.
    --
    -- Example: @mydbinstance@
    ModifyDBInstance -> Maybe Text
newDBInstanceIdentifier' :: Prelude.Maybe Prelude.Text,
    -- | A value that indicates the DB instance should be associated with the
    -- specified option group.
    --
    -- Changing this parameter doesn\'t result in an outage, with one
    -- exception. If the parameter change results in an option group that
    -- enables OEM, it can cause a brief period, lasting less than a second,
    -- during which new connections are rejected but existing connections
    -- aren\'t interrupted.
    --
    -- The change is applied during the next maintenance window unless the
    -- @ApplyImmediately@ parameter is enabled for this request.
    --
    -- Permanent options, such as the TDE option for Oracle Advanced Security
    -- TDE, can\'t be removed from an option group, and that option group
    -- can\'t be removed from a DB instance after it is associated with a DB
    -- instance.
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe Text
optionGroupName :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Web Services KMS key identifier for encryption of Performance
    -- Insights data.
    --
    -- The Amazon Web Services KMS key identifier is the key ARN, key ID, alias
    -- ARN, or alias name for the KMS key.
    --
    -- If you do not specify a value for @PerformanceInsightsKMSKeyId@, then
    -- Amazon RDS uses your default KMS key. There is a default KMS key for
    -- your Amazon Web Services account. Your Amazon Web Services account has a
    -- different default KMS key for each Amazon Web Services Region.
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe Text
performanceInsightsKMSKeyId :: Prelude.Maybe Prelude.Text,
    -- | The number of days to retain Performance Insights data. The default is 7
    -- days. The following values are valid:
    --
    -- -   7
    --
    -- -   /month/ * 31, where /month/ is a number of months from 1-23
    --
    -- -   731
    --
    -- For example, the following values are valid:
    --
    -- -   93 (3 months * 31)
    --
    -- -   341 (11 months * 31)
    --
    -- -   589 (19 months * 31)
    --
    -- -   731
    --
    -- If you specify a retention period such as 94, which isn\'t a valid
    -- value, RDS issues an error.
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe Int
performanceInsightsRetentionPeriod :: Prelude.Maybe Prelude.Int,
    -- | The daily time range during which automated backups are created if
    -- automated backups are enabled, as determined by the
    -- @BackupRetentionPeriod@ parameter. Changing this parameter doesn\'t
    -- result in an outage and the change is asynchronously applied as soon as
    -- possible. The default is a 30-minute window selected at random from an
    -- 8-hour block of time for each Amazon Web Services Region. For more
    -- information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow Backup window>
    -- in the /Amazon RDS User Guide./
    --
    -- __Amazon Aurora__
    --
    -- 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.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance Amazon RDS Maintenance Window>
    -- in the /Amazon RDS User Guide./
    --
    -- 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,
    -- | The number of CPU cores and the number of threads per core for the DB
    -- instance class of the DB instance.
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe [ProcessorFeature]
processorFeatures :: Prelude.Maybe [ProcessorFeature],
    -- | A value that specifies the order in which an Aurora Replica is promoted
    -- to the primary instance after a failure of the existing primary
    -- instance. For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance Fault Tolerance for an Aurora DB Cluster>
    -- in the /Amazon Aurora User Guide/.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- Default: 1
    --
    -- Valid Values: 0 - 15
    ModifyDBInstance -> Maybe Int
promotionTier :: Prelude.Maybe Prelude.Int,
    -- | A value that indicates whether the DB instance is publicly accessible.
    --
    -- When the DB cluster is publicly accessible, its Domain Name System (DNS)
    -- endpoint resolves to the private IP address from within the DB
    -- cluster\'s virtual private cloud (VPC). It resolves to the public IP
    -- address from outside of the DB cluster\'s VPC. Access to the DB cluster
    -- is ultimately controlled by the security group it uses. That public
    -- access isn\'t permitted if the security group assigned to the DB cluster
    -- doesn\'t permit it.
    --
    -- When the DB instance isn\'t publicly accessible, it is an internal DB
    -- instance with a DNS name that resolves to a private IP address.
    --
    -- @PubliclyAccessible@ only applies to DB instances in a VPC. The DB
    -- instance must be part of a public subnet and @PubliclyAccessible@ must
    -- be enabled for it to be publicly accessible.
    --
    -- Changes to the @PubliclyAccessible@ parameter are applied immediately
    -- regardless of the value of the @ApplyImmediately@ parameter.
    ModifyDBInstance -> Maybe Bool
publiclyAccessible :: Prelude.Maybe Prelude.Bool,
    -- | A value that sets the open mode of a replica database to either mounted
    -- or read-only.
    --
    -- Currently, this parameter is only supported for Oracle DB instances.
    --
    -- Mounted DB replicas are included in Oracle Enterprise Edition. The main
    -- use case for mounted replicas is cross-Region disaster recovery. The
    -- primary database doesn\'t use Active Data Guard to transmit information
    -- to the mounted replica. Because it doesn\'t accept user connections, a
    -- mounted replica can\'t serve a read-only workload. For more information,
    -- see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html Working with Oracle Read Replicas for Amazon RDS>
    -- in the /Amazon RDS User Guide/.
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe ReplicaMode
replicaMode :: Prelude.Maybe ReplicaMode,
    -- | The number of minutes to pause the automation. When the time period
    -- ends, RDS Custom resumes full automation. The minimum value is @60@
    -- (default). The maximum value is @1,440@.
    ModifyDBInstance -> Maybe Int
resumeFullAutomationModeMinutes :: Prelude.Maybe Prelude.Int,
    -- | A value that indicates whether to rotate the secret managed by Amazon
    -- Web Services Secrets Manager for the master user password.
    --
    -- This setting is valid only if the master user password is managed by RDS
    -- in Amazon Web Services Secrets Manager for the DB cluster. The secret
    -- value contains the updated password.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html Password management with Amazon Web Services Secrets Manager>
    -- in the /Amazon RDS User Guide./
    --
    -- Constraints:
    --
    -- -   You must apply the change immediately when rotating the master user
    --     password.
    ModifyDBInstance -> Maybe Bool
rotateMasterUserPassword :: Prelude.Maybe Prelude.Bool,
    -- | Specifies the storage throughput value for the DB instance.
    --
    -- This setting applies only to the @gp3@ storage type.
    --
    -- This setting doesn\'t apply to RDS Custom or Amazon Aurora.
    ModifyDBInstance -> Maybe Int
storageThroughput :: Prelude.Maybe Prelude.Int,
    -- | Specifies the storage type to be associated with the DB instance.
    --
    -- If you specify Provisioned IOPS (@io1@), you must also include a value
    -- for the @Iops@ parameter.
    --
    -- If you choose to migrate your DB instance from using standard storage to
    -- using Provisioned IOPS, or from using Provisioned IOPS to using standard
    -- storage, the process can take time. The duration of the migration
    -- depends on several factors such as database load, storage size, storage
    -- type (standard or Provisioned IOPS), amount of IOPS provisioned (if
    -- any), and the number of prior scale storage operations. Typical
    -- migration times are under 24 hours, but the process can take up to
    -- several days in some cases. During the migration, the DB instance is
    -- available for use, but might experience performance degradation. While
    -- the migration takes place, nightly backups for the instance are
    -- suspended. No other Amazon RDS operations can take place for the
    -- instance, including modifying the instance, rebooting the instance,
    -- deleting the instance, creating a read replica for the instance, and
    -- creating a DB snapshot of the instance.
    --
    -- Valid values: @gp2 | gp3 | io1 | standard@
    --
    -- Default: @io1@ if the @Iops@ parameter is specified, otherwise @gp2@
    ModifyDBInstance -> Maybe Text
storageType :: Prelude.Maybe Prelude.Text,
    -- | The ARN from the key store with which to associate the instance for TDE
    -- encryption.
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe Text
tdeCredentialArn :: Prelude.Maybe Prelude.Text,
    -- | The password for the given ARN from the key store in order to access the
    -- device.
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe Text
tdeCredentialPassword :: Prelude.Maybe Prelude.Text,
    -- | A value that indicates whether the DB instance class of the DB instance
    -- uses its default processor features.
    --
    -- This setting doesn\'t apply to RDS Custom.
    ModifyDBInstance -> Maybe Bool
useDefaultProcessorFeatures :: Prelude.Maybe Prelude.Bool,
    -- | A list of Amazon EC2 VPC security groups to authorize on this DB
    -- instance. This change is asynchronously applied as soon as possible.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- __Amazon Aurora__
    --
    -- 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' - The new amount of storage in gibibytes (GiB) to allocate for the DB
-- instance.
--
-- For MariaDB, MySQL, Oracle, and PostgreSQL, the value supplied must be
-- at least 10% greater than the current value. Values that are not at
-- least 10% greater than the existing value are rounded up so that they
-- are 10% greater than the current value.
--
-- For the valid values for allocated storage for each engine, see
-- @CreateDBInstance@.
--
-- 'allowMajorVersionUpgrade', 'modifyDBInstance_allowMajorVersionUpgrade' - A value that indicates whether major version upgrades are allowed.
-- Changing this parameter doesn\'t result in an outage and the change is
-- asynchronously applied as soon as possible.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Constraints: Major version upgrades must be allowed when specifying a
-- value for the EngineVersion parameter that is a different major version
-- than the DB instance\'s current version.
--
-- 'applyImmediately', 'modifyDBInstance_applyImmediately' - A value that indicates 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. By default, this parameter is disabled.
--
-- If this parameter is disabled, 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. Review the table of parameters in
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html Modifying a DB Instance>
-- in the /Amazon RDS User Guide/ to see the impact of enabling or
-- disabling @ApplyImmediately@ for each modified parameter and to
-- determine when the changes are applied.
--
-- 'autoMinorVersionUpgrade', 'modifyDBInstance_autoMinorVersionUpgrade' - A value that indicates whether minor version upgrades are applied
-- automatically to the DB instance during the maintenance window. An
-- outage occurs when all the following conditions are met:
--
-- -   The automatic upgrade is enabled for the maintenance window.
--
-- -   A newer minor version is available.
--
-- -   RDS has enabled automatic patching for the engine version.
--
-- If any of the preceding conditions isn\'t met, RDS applies the change as
-- soon as possible and doesn\'t cause an outage.
--
-- For an RDS Custom DB instance, set @AutoMinorVersionUpgrade@ to @false@.
-- Otherwise, the operation returns an error.
--
-- 'automationMode', 'modifyDBInstance_automationMode' - The automation mode of the RDS Custom DB instance: @full@ or
-- @all paused@. If @full@, the DB instance automates monitoring and
-- instance recovery. If @all paused@, the instance pauses automation for
-- the duration set by @ResumeFullAutomationModeMinutes@.
--
-- 'awsBackupRecoveryPointArn', 'modifyDBInstance_awsBackupRecoveryPointArn' - The Amazon Resource Name (ARN) of the recovery point in Amazon Web
-- Services Backup.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'backupRetentionPeriod', 'modifyDBInstance_backupRetentionPeriod' - The number of days to retain automated backups. Setting this parameter
-- to a positive number enables backups. Setting this parameter to 0
-- disables automated backups.
--
-- Enabling and disabling backups can result in a brief I\/O suspension
-- that lasts from a few seconds to a few minutes, depending on the size
-- and class of your DB instance.
--
-- These changes are applied during the next maintenance window unless the
-- @ApplyImmediately@ parameter is enabled for this request. If you change
-- the parameter from one non-zero value to another non-zero value, the
-- change is asynchronously applied as soon as possible.
--
-- __Amazon Aurora__
--
-- Not applicable. The retention period for automated backups is managed by
-- the DB cluster. For more information, see @ModifyDBCluster@.
--
-- Default: Uses existing setting
--
-- Constraints:
--
-- -   It must be a value from 0 to 35. It can\'t be set to 0 if the DB
--     instance is a source to read replicas. It can\'t be set to 0 for an
--     RDS Custom for Oracle DB instance.
--
-- -   It can be specified for a MySQL read replica only if the source is
--     running MySQL 5.6 or later.
--
-- -   It can be specified for a PostgreSQL read replica only if the source
--     is running PostgreSQL 9.3.5.
--
-- 'cACertificateIdentifier', 'modifyDBInstance_cACertificateIdentifier' - Specifies the CA certificate identifier to use for the DB instance’s
-- server certificate.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html Using SSL\/TLS to encrypt a connection to a DB instance>
-- in the /Amazon RDS User Guide/ and
-- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html Using SSL\/TLS to encrypt a connection to a DB cluster>
-- in the /Amazon Aurora User Guide/.
--
-- 'certificateRotationRestart', 'modifyDBInstance_certificateRotationRestart' - A value that indicates whether the DB instance is restarted when you
-- rotate your SSL\/TLS certificate.
--
-- By default, the DB instance is restarted when you rotate your SSL\/TLS
-- certificate. The certificate is not updated until the DB instance is
-- restarted.
--
-- Set this parameter only if you are /not/ using SSL\/TLS to connect to
-- the DB instance.
--
-- If you are using SSL\/TLS to connect to the DB instance, follow the
-- appropriate instructions for your DB engine to rotate your SSL\/TLS
-- certificate:
--
-- -   For more information about rotating your SSL\/TLS certificate for
--     RDS DB engines, see
--     <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html Rotating Your SSL\/TLS Certificate.>
--     in the /Amazon RDS User Guide./
--
-- -   For more information about rotating your SSL\/TLS certificate for
--     Aurora DB engines, see
--     <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html Rotating Your SSL\/TLS Certificate>
--     in the /Amazon Aurora User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'cloudwatchLogsExportConfiguration', 'modifyDBInstance_cloudwatchLogsExportConfiguration' - The configuration setting for the log types to be enabled for export to
-- CloudWatch Logs for a specific DB instance.
--
-- A change to the @CloudwatchLogsExportConfiguration@ parameter is always
-- applied to the DB instance immediately. Therefore, the
-- @ApplyImmediately@ parameter has no effect.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'copyTagsToSnapshot', 'modifyDBInstance_copyTagsToSnapshot' - A value that indicates whether to copy all tags from the DB instance to
-- snapshots of the DB instance. By default, tags are not copied.
--
-- __Amazon Aurora__
--
-- Not applicable. Copying tags to snapshots is managed by the DB cluster.
-- Setting this value for an Aurora DB instance has no effect on the DB
-- cluster setting. For more information, see @ModifyDBCluster@.
--
-- '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 Web
-- Services Regions, or for all database engines. For the full list of DB
-- instance classes, and availability for your engine, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html DB Instance Class>
-- in the /Amazon RDS User Guide/ or
-- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.DBInstanceClass.html Aurora DB instance classes>
-- in the /Amazon Aurora User Guide/. For RDS Custom, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits.html#custom-reqs-limits.instances DB instance class support for RDS Custom for Oracle>
-- and
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits-MS.html#custom-reqs-limits.instancesMS DB instance class support for RDS Custom for SQL Server>.
--
-- If you modify the DB instance class, an outage occurs during the change.
-- The change is applied during the next maintenance window, unless you
-- specify @ApplyImmediately@ in your 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. In this
-- case, the DB instance isn\'t rebooted automatically, and the parameter
-- changes aren\'t applied during the next maintenance window. However, if
-- you modify dynamic parameters in the newly associated DB parameter
-- group, these changes are applied immediately without a reboot.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Default: Uses existing setting
--
-- Constraints: The DB parameter group must be in the same DB parameter
-- group family as the 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.
--
-- If you change the @DBPortNumber@ value, your database restarts
-- regardless of the value of the @ApplyImmediately@ parameter.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- __MySQL__
--
-- Default: @3306@
--
-- Valid values: @1150-65535@
--
-- __MariaDB__
--
-- Default: @3306@
--
-- Valid values: @1150-65535@
--
-- __PostgreSQL__
--
-- Default: @5432@
--
-- Valid values: @1150-65535@
--
-- Type: Integer
--
-- __Oracle__
--
-- Default: @1521@
--
-- Valid values: @1150-65535@
--
-- __SQL Server__
--
-- Default: @1433@
--
-- Valid values: @1150-65535@ except @1234@, @1434@, @3260@, @3343@,
-- @3389@, @47001@, and @49152-49156@.
--
-- __Amazon Aurora__
--
-- Default: @3306@
--
-- Valid values: @1150-65535@
--
-- '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.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 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. If your DB instance isn\'t
-- in a VPC, you can also use this parameter to move your DB instance into
-- a VPC. For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Non-VPC2VPC Working with a DB instance in a VPC>
-- in the /Amazon RDS User Guide/.
--
-- Changing the subnet group causes an outage during the change. The change
-- is applied during the next maintenance window, unless you enable
-- @ApplyImmediately@.
--
-- This parameter doesn\'t apply to RDS Custom.
--
-- Constraints: If supplied, must match the name of an existing
-- DBSubnetGroup.
--
-- Example: @mydbsubnetgroup@
--
-- '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 isn\'t enabled. For more
-- information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html Deleting a DB Instance>.
--
-- 'domain', 'modifyDBInstance_domain' - The Active Directory directory ID to move the DB instance to. Specify
-- @none@ to remove the instance from its current domain. You must create
-- the domain before this operation. Currently, you can create only MySQL,
-- Microsoft SQL Server, Oracle, and PostgreSQL DB instances in an Active
-- Directory Domain.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html Kerberos Authentication>
-- in the /Amazon RDS User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'domainIAMRoleName', 'modifyDBInstance_domainIAMRoleName' - The name of the IAM role to use when making API calls to the Directory
-- Service.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'enableCustomerOwnedIp', 'modifyDBInstance_enableCustomerOwnedIp' - A value that indicates whether to enable a customer-owned IP address
-- (CoIP) for an RDS on Outposts DB instance.
--
-- A /CoIP/ provides local or external connectivity to resources in your
-- Outpost subnets through your on-premises network. For some use cases, a
-- CoIP can provide lower latency for connections to the DB instance from
-- outside of its virtual private cloud (VPC) on your local network.
--
-- For more information about RDS on Outposts, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html Working with Amazon RDS on Amazon Web Services Outposts>
-- in the /Amazon RDS User Guide/.
--
-- For more information about CoIPs, see
-- <https://docs.aws.amazon.com/outposts/latest/userguide/routing.html#ip-addressing Customer-owned IP addresses>
-- in the /Amazon Web Services Outposts User Guide/.
--
-- 'enableIAMDatabaseAuthentication', 'modifyDBInstance_enableIAMDatabaseAuthentication' - A value that indicates whether to enable mapping of Amazon Web Services
-- Identity and Access Management (IAM) accounts to database accounts. By
-- default, mapping isn\'t enabled.
--
-- This setting doesn\'t apply to Amazon Aurora. Mapping Amazon Web
-- Services IAM accounts to database accounts is managed by the DB cluster.
--
-- For more information about IAM database authentication, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html IAM Database Authentication for MySQL and PostgreSQL>
-- in the /Amazon RDS User Guide./
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'enablePerformanceInsights', 'modifyDBInstance_enablePerformanceInsights' - A value that indicates whether to enable Performance Insights for the DB
-- instance.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html Using Amazon Performance Insights>
-- in the /Amazon RDS User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'engineVersion', 'modifyDBInstance_engineVersion' - The version number of the database engine to upgrade to. Changing this
-- parameter results in an outage and the change is applied during the next
-- maintenance window unless the @ApplyImmediately@ parameter is enabled
-- for this request.
--
-- For major version upgrades, if a nondefault DB parameter group is
-- currently in use, a new DB parameter group in the DB parameter group
-- family for the new engine version must be specified. The new DB
-- parameter group can be the default for that DB parameter group family.
--
-- If you specify only a major version, Amazon RDS will update the DB
-- instance to the default minor version if the current minor version is
-- lower. For information about valid engine versions, see
-- @CreateDBInstance@, or call @DescribeDBEngineVersions@.
--
-- In RDS Custom for Oracle, this parameter is supported for read replicas
-- only if they are in the @PATCH_DB_FAILURE@ lifecycle.
--
-- 'iops', 'modifyDBInstance_iops' - The new Provisioned IOPS (I\/O operations per second) value for the RDS
-- 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 enabled for this request. If you are migrating from
-- Provisioned IOPS to standard storage, set this value to 0. The DB
-- instance will require a reboot for the change in storage type to take
-- effect.
--
-- If you choose to migrate your DB instance from using standard storage to
-- using Provisioned IOPS, or from using Provisioned IOPS to using standard
-- storage, the process can take time. The duration of the migration
-- depends on several factors such as database load, storage size, storage
-- type (standard or Provisioned IOPS), amount of IOPS provisioned (if
-- any), and the number of prior scale storage operations. Typical
-- migration times are under 24 hours, but the process can take up to
-- several days in some cases. During the migration, the DB instance is
-- available for use, but might experience performance degradation. While
-- the migration takes place, nightly backups for the instance are
-- suspended. No other Amazon RDS operations can take place for the
-- instance, including modifying the instance, rebooting the instance,
-- deleting the instance, creating a read replica for the instance, and
-- creating a DB snapshot of the instance.
--
-- Constraints: For MariaDB, MySQL, Oracle, and PostgreSQL, the value
-- supplied must be at least 10% greater than the current value. Values
-- that are not at least 10% greater than the existing value are rounded up
-- so that they are 10% greater than the current value.
--
-- Default: Uses existing setting
--
-- 'licenseModel', 'modifyDBInstance_licenseModel' - The license model for the DB instance.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Valid values: @license-included@ | @bring-your-own-license@ |
-- @general-public-license@
--
-- 'manageMasterUserPassword', 'modifyDBInstance_manageMasterUserPassword' - A value that indicates whether to manage the master user password with
-- Amazon Web Services Secrets Manager.
--
-- If the DB cluster doesn\'t manage the master user password with Amazon
-- Web Services Secrets Manager, you can turn on this management. In this
-- case, you can\'t specify @MasterUserPassword@.
--
-- If the DB cluster already manages the master user password with Amazon
-- Web Services Secrets Manager, and you specify that the master user
-- password is not managed with Amazon Web Services Secrets Manager, then
-- you must specify @MasterUserPassword@. In this case, RDS deletes the
-- secret and uses the new password for the master user specified by
-- @MasterUserPassword@.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html Password management with Amazon Web Services Secrets Manager>
-- in the /Amazon RDS User Guide./
--
-- Constraints:
--
-- -   Can\'t manage the master user password with Amazon Web Services
--     Secrets Manager if @MasterUserPassword@ is specified.
--
-- 'masterUserPassword', 'modifyDBInstance_masterUserPassword' - The new password for the master user. The password can include any
-- printable ASCII character except \"\/\", \"\"\", or \"\@\".
--
-- Changing this parameter doesn\'t result in an outage and the change is
-- asynchronously applied as soon as possible. Between the time of the
-- request and the completion of the request, the @MasterUserPassword@
-- element exists in the @PendingModifiedValues@ element of the operation
-- response.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- __Amazon Aurora__
--
-- Not applicable. The password for the master user is managed by the DB
-- cluster. For more information, see @ModifyDBCluster@.
--
-- Default: Uses existing setting
--
-- Constraints: Can\'t be specified if @ManageMasterUserPassword@ is turned
-- on.
--
-- __MariaDB__
--
-- Constraints: Must contain from 8 to 41 characters.
--
-- __Microsoft SQL Server__
--
-- Constraints: Must contain from 8 to 128 characters.
--
-- __MySQL__
--
-- Constraints: Must contain from 8 to 41 characters.
--
-- __Oracle__
--
-- Constraints: Must contain from 8 to 30 characters.
--
-- __PostgreSQL__
--
-- Constraints: Must contain from 8 to 128 characters.
--
-- Amazon RDS API operations never return the password, so this action
-- provides a way to regain access to a primary instance user if the
-- password is lost. This includes restoring privileges that might have
-- been accidentally revoked.
--
-- 'masterUserSecretKmsKeyId', 'modifyDBInstance_masterUserSecretKmsKeyId' - The Amazon Web Services KMS key identifier to encrypt a secret that is
-- automatically generated and managed in Amazon Web Services Secrets
-- Manager.
--
-- This setting is valid only if both of the following conditions are met:
--
-- -   The DB instance doesn\'t manage the master user password in Amazon
--     Web Services Secrets Manager.
--
--     If the DB instance already manages the master user password in
--     Amazon Web Services Secrets Manager, you can\'t change the KMS key
--     used to encrypt the secret.
--
-- -   You are turning on @ManageMasterUserPassword@ to manage the master
--     user password in Amazon Web Services Secrets Manager.
--
--     If you are turning on @ManageMasterUserPassword@ and don\'t specify
--     @MasterUserSecretKmsKeyId@, then the @aws\/secretsmanager@ KMS key
--     is used to encrypt the secret. If the secret is in a different
--     Amazon Web Services account, then you can\'t use the
--     @aws\/secretsmanager@ KMS key to encrypt the secret, and you must
--     use a customer managed KMS key.
--
-- The Amazon Web Services KMS key identifier is the key ARN, key ID, alias
-- ARN, or alias name for the KMS key. To use a KMS key in a different
-- Amazon Web Services account, specify the key ARN or alias ARN.
--
-- There is a default KMS key for your Amazon Web Services account. Your
-- Amazon Web Services account has a different default KMS key for each
-- Amazon Web Services Region.
--
-- 'maxAllocatedStorage', 'modifyDBInstance_maxAllocatedStorage' - The upper limit in gibibytes (GiB) to which Amazon RDS can automatically
-- scale the storage of the DB instance.
--
-- For more information about this setting, including limitations that
-- apply to it, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling Managing capacity automatically with Amazon RDS storage autoscaling>
-- in the /Amazon RDS User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- '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, which is the default.
--
-- If @MonitoringRoleArn@ is specified, set @MonitoringInterval@ to a value
-- other than 0.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Valid Values: @0, 1, 5, 10, 15, 30, 60@
--
-- 'monitoringRoleArn', 'modifyDBInstance_monitoringRoleArn' - The ARN for the IAM role that permits RDS to send enhanced monitoring
-- metrics to Amazon CloudWatch Logs. For example,
-- @arn:aws:iam:123456789012:role\/emaccess@. For information on creating a
-- monitoring role, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html#USER_Monitoring.OS.IAMRole To create an IAM role for Amazon RDS Enhanced Monitoring>
-- in the /Amazon RDS User Guide./
--
-- If @MonitoringInterval@ is set to a value other than 0, supply a
-- @MonitoringRoleArn@ value.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'multiAZ', 'modifyDBInstance_multiAZ' - A value that indicates whether the DB instance is a Multi-AZ deployment.
-- Changing this parameter doesn\'t result in an outage. The change is
-- applied during the next maintenance window unless the @ApplyImmediately@
-- parameter is enabled for this request.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'networkType', 'modifyDBInstance_networkType' - The network type of the DB instance.
--
-- Valid values:
--
-- -   @IPV4@
--
-- -   @DUAL@
--
-- The network type is determined by the @DBSubnetGroup@ specified for the
-- DB instance. A @DBSubnetGroup@ can support only the IPv4 protocol or the
-- IPv4 and the IPv6 protocols (@DUAL@).
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html Working with a DB instance in a VPC>
-- in the /Amazon RDS User Guide./
--
-- '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
-- occurs immediately if you enable @ApplyImmediately@, or will occur
-- during the next maintenance window if you disable Apply Immediately.
-- This value is stored as a lowercase string.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Constraints:
--
-- -   Must contain from 1 to 63 letters, numbers, or hyphens.
--
-- -   The first character must be a letter.
--
-- -   Can\'t end with a hyphen or contain two consecutive hyphens.
--
-- Example: @mydbinstance@
--
-- 'optionGroupName', 'modifyDBInstance_optionGroupName' - A value that indicates the DB instance should be associated with the
-- specified option group.
--
-- Changing this parameter doesn\'t result in an outage, with one
-- exception. If the parameter change results in an option group that
-- enables OEM, it can cause a brief period, lasting less than a second,
-- during which new connections are rejected but existing connections
-- aren\'t interrupted.
--
-- The change is applied during the next maintenance window unless the
-- @ApplyImmediately@ parameter is enabled for this request.
--
-- Permanent options, such as the TDE option for Oracle Advanced Security
-- TDE, can\'t be removed from an option group, and that option group
-- can\'t be removed from a DB instance after it is associated with a DB
-- instance.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'performanceInsightsKMSKeyId', 'modifyDBInstance_performanceInsightsKMSKeyId' - The Amazon Web Services KMS key identifier for encryption of Performance
-- Insights data.
--
-- The Amazon Web Services KMS key identifier is the key ARN, key ID, alias
-- ARN, or alias name for the KMS key.
--
-- If you do not specify a value for @PerformanceInsightsKMSKeyId@, then
-- Amazon RDS uses your default KMS key. There is a default KMS key for
-- your Amazon Web Services account. Your Amazon Web Services account has a
-- different default KMS key for each Amazon Web Services Region.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'performanceInsightsRetentionPeriod', 'modifyDBInstance_performanceInsightsRetentionPeriod' - The number of days to retain Performance Insights data. The default is 7
-- days. The following values are valid:
--
-- -   7
--
-- -   /month/ * 31, where /month/ is a number of months from 1-23
--
-- -   731
--
-- For example, the following values are valid:
--
-- -   93 (3 months * 31)
--
-- -   341 (11 months * 31)
--
-- -   589 (19 months * 31)
--
-- -   731
--
-- If you specify a retention period such as 94, which isn\'t a valid
-- value, RDS issues an error.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'preferredBackupWindow', 'modifyDBInstance_preferredBackupWindow' - The daily time range during which automated backups are created if
-- automated backups are enabled, as determined by the
-- @BackupRetentionPeriod@ parameter. Changing this parameter doesn\'t
-- result in an outage and the change is asynchronously applied as soon as
-- possible. The default is a 30-minute window selected at random from an
-- 8-hour block of time for each Amazon Web Services Region. For more
-- information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow Backup window>
-- in the /Amazon RDS User Guide./
--
-- __Amazon Aurora__
--
-- 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.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance Amazon RDS Maintenance Window>
-- in the /Amazon RDS User Guide./
--
-- 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
--
-- 'processorFeatures', 'modifyDBInstance_processorFeatures' - The number of CPU cores and the number of threads per core for the DB
-- instance class of the DB instance.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'promotionTier', 'modifyDBInstance_promotionTier' - A value that specifies the order in which an Aurora Replica is promoted
-- to the primary instance after a failure of the existing primary
-- instance. For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance Fault Tolerance for an Aurora DB Cluster>
-- in the /Amazon Aurora User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Default: 1
--
-- Valid Values: 0 - 15
--
-- 'publiclyAccessible', 'modifyDBInstance_publiclyAccessible' - A value that indicates whether the DB instance is publicly accessible.
--
-- When the DB cluster is publicly accessible, its Domain Name System (DNS)
-- endpoint resolves to the private IP address from within the DB
-- cluster\'s virtual private cloud (VPC). It resolves to the public IP
-- address from outside of the DB cluster\'s VPC. Access to the DB cluster
-- is ultimately controlled by the security group it uses. That public
-- access isn\'t permitted if the security group assigned to the DB cluster
-- doesn\'t permit it.
--
-- When the DB instance isn\'t publicly accessible, it is an internal DB
-- instance with a DNS name that resolves to a private IP address.
--
-- @PubliclyAccessible@ only applies to DB instances in a VPC. The DB
-- instance must be part of a public subnet and @PubliclyAccessible@ must
-- be enabled for it to be publicly accessible.
--
-- Changes to the @PubliclyAccessible@ parameter are applied immediately
-- regardless of the value of the @ApplyImmediately@ parameter.
--
-- 'replicaMode', 'modifyDBInstance_replicaMode' - A value that sets the open mode of a replica database to either mounted
-- or read-only.
--
-- Currently, this parameter is only supported for Oracle DB instances.
--
-- Mounted DB replicas are included in Oracle Enterprise Edition. The main
-- use case for mounted replicas is cross-Region disaster recovery. The
-- primary database doesn\'t use Active Data Guard to transmit information
-- to the mounted replica. Because it doesn\'t accept user connections, a
-- mounted replica can\'t serve a read-only workload. For more information,
-- see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html Working with Oracle Read Replicas for Amazon RDS>
-- in the /Amazon RDS User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'resumeFullAutomationModeMinutes', 'modifyDBInstance_resumeFullAutomationModeMinutes' - The number of minutes to pause the automation. When the time period
-- ends, RDS Custom resumes full automation. The minimum value is @60@
-- (default). The maximum value is @1,440@.
--
-- 'rotateMasterUserPassword', 'modifyDBInstance_rotateMasterUserPassword' - A value that indicates whether to rotate the secret managed by Amazon
-- Web Services Secrets Manager for the master user password.
--
-- This setting is valid only if the master user password is managed by RDS
-- in Amazon Web Services Secrets Manager for the DB cluster. The secret
-- value contains the updated password.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html Password management with Amazon Web Services Secrets Manager>
-- in the /Amazon RDS User Guide./
--
-- Constraints:
--
-- -   You must apply the change immediately when rotating the master user
--     password.
--
-- 'storageThroughput', 'modifyDBInstance_storageThroughput' - Specifies the storage throughput value for the DB instance.
--
-- This setting applies only to the @gp3@ storage type.
--
-- This setting doesn\'t apply to RDS Custom or Amazon Aurora.
--
-- 'storageType', 'modifyDBInstance_storageType' - Specifies the storage type to be associated with the DB instance.
--
-- If you specify Provisioned IOPS (@io1@), you must also include a value
-- for the @Iops@ parameter.
--
-- If you choose to migrate your DB instance from using standard storage to
-- using Provisioned IOPS, or from using Provisioned IOPS to using standard
-- storage, the process can take time. The duration of the migration
-- depends on several factors such as database load, storage size, storage
-- type (standard or Provisioned IOPS), amount of IOPS provisioned (if
-- any), and the number of prior scale storage operations. Typical
-- migration times are under 24 hours, but the process can take up to
-- several days in some cases. During the migration, the DB instance is
-- available for use, but might experience performance degradation. While
-- the migration takes place, nightly backups for the instance are
-- suspended. No other Amazon RDS operations can take place for the
-- instance, including modifying the instance, rebooting the instance,
-- deleting the instance, creating a read replica for the instance, and
-- creating a DB snapshot of the instance.
--
-- Valid values: @gp2 | gp3 | io1 | standard@
--
-- Default: @io1@ if the @Iops@ parameter is specified, otherwise @gp2@
--
-- 'tdeCredentialArn', 'modifyDBInstance_tdeCredentialArn' - The ARN from the key store with which to associate the instance for TDE
-- encryption.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'tdeCredentialPassword', 'modifyDBInstance_tdeCredentialPassword' - The password for the given ARN from the key store in order to access the
-- device.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'useDefaultProcessorFeatures', 'modifyDBInstance_useDefaultProcessorFeatures' - A value that indicates whether the DB instance class of the DB instance
-- uses its default processor features.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'vpcSecurityGroupIds', 'modifyDBInstance_vpcSecurityGroupIds' - A list of Amazon EC2 VPC security groups to authorize on this DB
-- instance. This change is asynchronously applied as soon as possible.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- __Amazon Aurora__
--
-- 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:automationMode:ModifyDBInstance' :: Maybe AutomationMode
automationMode = forall a. Maybe a
Prelude.Nothing,
      $sel:awsBackupRecoveryPointArn:ModifyDBInstance' :: Maybe Text
awsBackupRecoveryPointArn = 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:certificateRotationRestart:ModifyDBInstance' :: Maybe Bool
certificateRotationRestart = 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:enableCustomerOwnedIp:ModifyDBInstance' :: Maybe Bool
enableCustomerOwnedIp = 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:manageMasterUserPassword:ModifyDBInstance' :: Maybe Bool
manageMasterUserPassword = forall a. Maybe a
Prelude.Nothing,
      $sel:masterUserPassword:ModifyDBInstance' :: Maybe Text
masterUserPassword = forall a. Maybe a
Prelude.Nothing,
      $sel:masterUserSecretKmsKeyId:ModifyDBInstance' :: Maybe Text
masterUserSecretKmsKeyId = forall a. Maybe a
Prelude.Nothing,
      $sel:maxAllocatedStorage:ModifyDBInstance' :: Maybe Int
maxAllocatedStorage = 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:networkType:ModifyDBInstance' :: Maybe Text
networkType = 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:performanceInsightsRetentionPeriod:ModifyDBInstance' :: Maybe Int
performanceInsightsRetentionPeriod = 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:processorFeatures:ModifyDBInstance' :: Maybe [ProcessorFeature]
processorFeatures = 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:replicaMode:ModifyDBInstance' :: Maybe ReplicaMode
replicaMode = forall a. Maybe a
Prelude.Nothing,
      $sel:resumeFullAutomationModeMinutes:ModifyDBInstance' :: Maybe Int
resumeFullAutomationModeMinutes = forall a. Maybe a
Prelude.Nothing,
      $sel:rotateMasterUserPassword:ModifyDBInstance' :: Maybe Bool
rotateMasterUserPassword = forall a. Maybe a
Prelude.Nothing,
      $sel:storageThroughput:ModifyDBInstance' :: Maybe Int
storageThroughput = 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:useDefaultProcessorFeatures:ModifyDBInstance' :: Maybe Bool
useDefaultProcessorFeatures = 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_
    }

-- | The new amount of storage in gibibytes (GiB) to allocate for the DB
-- instance.
--
-- For MariaDB, MySQL, Oracle, and PostgreSQL, the value supplied must be
-- at least 10% greater than the current value. Values that are not at
-- least 10% greater than the existing value are rounded up so that they
-- are 10% greater than the current value.
--
-- For the valid values for allocated storage for each engine, see
-- @CreateDBInstance@.
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)

-- | A value that indicates whether major version upgrades are allowed.
-- Changing this parameter doesn\'t result in an outage and the change is
-- asynchronously applied as soon as possible.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Constraints: Major version upgrades must be allowed when specifying a
-- value for the EngineVersion parameter that is a different major version
-- than the DB instance\'s current version.
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)

-- | A value that indicates 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. By default, this parameter is disabled.
--
-- If this parameter is disabled, 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. Review the table of parameters in
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html Modifying a DB Instance>
-- in the /Amazon RDS User Guide/ to see the impact of enabling or
-- disabling @ApplyImmediately@ for each modified parameter and to
-- determine when the changes are applied.
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)

-- | A value that indicates whether minor version upgrades are applied
-- automatically to the DB instance during the maintenance window. An
-- outage occurs when all the following conditions are met:
--
-- -   The automatic upgrade is enabled for the maintenance window.
--
-- -   A newer minor version is available.
--
-- -   RDS has enabled automatic patching for the engine version.
--
-- If any of the preceding conditions isn\'t met, RDS applies the change as
-- soon as possible and doesn\'t cause an outage.
--
-- For an RDS Custom DB instance, set @AutoMinorVersionUpgrade@ to @false@.
-- Otherwise, the operation returns an error.
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)

-- | The automation mode of the RDS Custom DB instance: @full@ or
-- @all paused@. If @full@, the DB instance automates monitoring and
-- instance recovery. If @all paused@, the instance pauses automation for
-- the duration set by @ResumeFullAutomationModeMinutes@.
modifyDBInstance_automationMode :: Lens.Lens' ModifyDBInstance (Prelude.Maybe AutomationMode)
modifyDBInstance_automationMode :: Lens' ModifyDBInstance (Maybe AutomationMode)
modifyDBInstance_automationMode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe AutomationMode
automationMode :: Maybe AutomationMode
$sel:automationMode:ModifyDBInstance' :: ModifyDBInstance -> Maybe AutomationMode
automationMode} -> Maybe AutomationMode
automationMode) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe AutomationMode
a -> ModifyDBInstance
s {$sel:automationMode:ModifyDBInstance' :: Maybe AutomationMode
automationMode = Maybe AutomationMode
a} :: ModifyDBInstance)

-- | The Amazon Resource Name (ARN) of the recovery point in Amazon Web
-- Services Backup.
--
-- This setting doesn\'t apply to RDS Custom.
modifyDBInstance_awsBackupRecoveryPointArn :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_awsBackupRecoveryPointArn :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_awsBackupRecoveryPointArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
awsBackupRecoveryPointArn :: Maybe Text
$sel:awsBackupRecoveryPointArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
awsBackupRecoveryPointArn} -> Maybe Text
awsBackupRecoveryPointArn) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:awsBackupRecoveryPointArn:ModifyDBInstance' :: Maybe Text
awsBackupRecoveryPointArn = Maybe Text
a} :: ModifyDBInstance)

-- | The number of days to retain automated backups. Setting this parameter
-- to a positive number enables backups. Setting this parameter to 0
-- disables automated backups.
--
-- Enabling and disabling backups can result in a brief I\/O suspension
-- that lasts from a few seconds to a few minutes, depending on the size
-- and class of your DB instance.
--
-- These changes are applied during the next maintenance window unless the
-- @ApplyImmediately@ parameter is enabled for this request. If you change
-- the parameter from one non-zero value to another non-zero value, the
-- change is asynchronously applied as soon as possible.
--
-- __Amazon Aurora__
--
-- Not applicable. The retention period for automated backups is managed by
-- the DB cluster. For more information, see @ModifyDBCluster@.
--
-- Default: Uses existing setting
--
-- Constraints:
--
-- -   It must be a value from 0 to 35. It can\'t be set to 0 if the DB
--     instance is a source to read replicas. It can\'t be set to 0 for an
--     RDS Custom for Oracle DB instance.
--
-- -   It can be specified for a MySQL read replica only if the source is
--     running MySQL 5.6 or later.
--
-- -   It can be specified for a PostgreSQL read replica only if the source
--     is running PostgreSQL 9.3.5.
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)

-- | Specifies the CA certificate identifier to use for the DB instance’s
-- server certificate.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html Using SSL\/TLS to encrypt a connection to a DB instance>
-- in the /Amazon RDS User Guide/ and
-- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html Using SSL\/TLS to encrypt a connection to a DB cluster>
-- in the /Amazon Aurora User Guide/.
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)

-- | A value that indicates whether the DB instance is restarted when you
-- rotate your SSL\/TLS certificate.
--
-- By default, the DB instance is restarted when you rotate your SSL\/TLS
-- certificate. The certificate is not updated until the DB instance is
-- restarted.
--
-- Set this parameter only if you are /not/ using SSL\/TLS to connect to
-- the DB instance.
--
-- If you are using SSL\/TLS to connect to the DB instance, follow the
-- appropriate instructions for your DB engine to rotate your SSL\/TLS
-- certificate:
--
-- -   For more information about rotating your SSL\/TLS certificate for
--     RDS DB engines, see
--     <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html Rotating Your SSL\/TLS Certificate.>
--     in the /Amazon RDS User Guide./
--
-- -   For more information about rotating your SSL\/TLS certificate for
--     Aurora DB engines, see
--     <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html Rotating Your SSL\/TLS Certificate>
--     in the /Amazon Aurora User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
modifyDBInstance_certificateRotationRestart :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
modifyDBInstance_certificateRotationRestart :: Lens' ModifyDBInstance (Maybe Bool)
modifyDBInstance_certificateRotationRestart = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Bool
certificateRotationRestart :: Maybe Bool
$sel:certificateRotationRestart:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
certificateRotationRestart} -> Maybe Bool
certificateRotationRestart) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Bool
a -> ModifyDBInstance
s {$sel:certificateRotationRestart:ModifyDBInstance' :: Maybe Bool
certificateRotationRestart = Maybe Bool
a} :: ModifyDBInstance)

-- | The configuration setting for the log types to be enabled for export to
-- CloudWatch Logs for a specific DB instance.
--
-- A change to the @CloudwatchLogsExportConfiguration@ parameter is always
-- applied to the DB instance immediately. Therefore, the
-- @ApplyImmediately@ parameter has no effect.
--
-- This setting doesn\'t apply to RDS Custom.
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)

-- | A value that indicates whether to copy all tags from the DB instance to
-- snapshots of the DB instance. By default, tags are not copied.
--
-- __Amazon Aurora__
--
-- Not applicable. Copying tags to snapshots is managed by the DB cluster.
-- Setting this value for an Aurora DB instance has no effect on the DB
-- cluster setting. For more information, see @ModifyDBCluster@.
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 Web
-- Services Regions, or for all database engines. For the full list of DB
-- instance classes, and availability for your engine, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html DB Instance Class>
-- in the /Amazon RDS User Guide/ or
-- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.DBInstanceClass.html Aurora DB instance classes>
-- in the /Amazon Aurora User Guide/. For RDS Custom, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits.html#custom-reqs-limits.instances DB instance class support for RDS Custom for Oracle>
-- and
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits-MS.html#custom-reqs-limits.instancesMS DB instance class support for RDS Custom for SQL Server>.
--
-- If you modify the DB instance class, an outage occurs during the change.
-- The change is applied during the next maintenance window, unless you
-- specify @ApplyImmediately@ in your 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. In this
-- case, the DB instance isn\'t rebooted automatically, and the parameter
-- changes aren\'t applied during the next maintenance window. However, if
-- you modify dynamic parameters in the newly associated DB parameter
-- group, these changes are applied immediately without a reboot.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Default: Uses existing setting
--
-- Constraints: The DB parameter group must be in the same DB parameter
-- group family as the 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.
--
-- If you change the @DBPortNumber@ value, your database restarts
-- regardless of the value of the @ApplyImmediately@ parameter.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- __MySQL__
--
-- Default: @3306@
--
-- Valid values: @1150-65535@
--
-- __MariaDB__
--
-- Default: @3306@
--
-- Valid values: @1150-65535@
--
-- __PostgreSQL__
--
-- Default: @5432@
--
-- Valid values: @1150-65535@
--
-- Type: Integer
--
-- __Oracle__
--
-- Default: @1521@
--
-- Valid values: @1150-65535@
--
-- __SQL Server__
--
-- Default: @1433@
--
-- Valid values: @1150-65535@ except @1234@, @1434@, @3260@, @3343@,
-- @3389@, @47001@, and @49152-49156@.
--
-- __Amazon Aurora__
--
-- Default: @3306@
--
-- Valid values: @1150-65535@
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.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 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. If your DB instance isn\'t
-- in a VPC, you can also use this parameter to move your DB instance into
-- a VPC. For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Non-VPC2VPC Working with a DB instance in a VPC>
-- in the /Amazon RDS User Guide/.
--
-- Changing the subnet group causes an outage during the change. The change
-- is applied during the next maintenance window, unless you enable
-- @ApplyImmediately@.
--
-- This parameter doesn\'t apply to RDS Custom.
--
-- Constraints: If supplied, must match the name of an existing
-- DBSubnetGroup.
--
-- Example: @mydbsubnetgroup@
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 isn\'t enabled. For more
-- information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.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)

-- | The Active Directory directory ID to move the DB instance to. Specify
-- @none@ to remove the instance from its current domain. You must create
-- the domain before this operation. Currently, you can create only MySQL,
-- Microsoft SQL Server, Oracle, and PostgreSQL DB instances in an Active
-- Directory Domain.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html Kerberos Authentication>
-- in the /Amazon RDS User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
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)

-- | The name of the IAM role to use when making API calls to the Directory
-- Service.
--
-- This setting doesn\'t apply to RDS Custom.
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)

-- | A value that indicates whether to enable a customer-owned IP address
-- (CoIP) for an RDS on Outposts DB instance.
--
-- A /CoIP/ provides local or external connectivity to resources in your
-- Outpost subnets through your on-premises network. For some use cases, a
-- CoIP can provide lower latency for connections to the DB instance from
-- outside of its virtual private cloud (VPC) on your local network.
--
-- For more information about RDS on Outposts, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html Working with Amazon RDS on Amazon Web Services Outposts>
-- in the /Amazon RDS User Guide/.
--
-- For more information about CoIPs, see
-- <https://docs.aws.amazon.com/outposts/latest/userguide/routing.html#ip-addressing Customer-owned IP addresses>
-- in the /Amazon Web Services Outposts User Guide/.
modifyDBInstance_enableCustomerOwnedIp :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
modifyDBInstance_enableCustomerOwnedIp :: Lens' ModifyDBInstance (Maybe Bool)
modifyDBInstance_enableCustomerOwnedIp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Bool
enableCustomerOwnedIp :: Maybe Bool
$sel:enableCustomerOwnedIp:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
enableCustomerOwnedIp} -> Maybe Bool
enableCustomerOwnedIp) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Bool
a -> ModifyDBInstance
s {$sel:enableCustomerOwnedIp:ModifyDBInstance' :: Maybe Bool
enableCustomerOwnedIp = Maybe Bool
a} :: ModifyDBInstance)

-- | A value that indicates whether to enable mapping of Amazon Web Services
-- Identity and Access Management (IAM) accounts to database accounts. By
-- default, mapping isn\'t enabled.
--
-- This setting doesn\'t apply to Amazon Aurora. Mapping Amazon Web
-- Services IAM accounts to database accounts is managed by the DB cluster.
--
-- For more information about IAM database authentication, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html IAM Database Authentication for MySQL and PostgreSQL>
-- in the /Amazon RDS User Guide./
--
-- This setting doesn\'t apply to RDS Custom.
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)

-- | A value that indicates whether to enable Performance Insights for the DB
-- instance.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html Using Amazon Performance Insights>
-- in the /Amazon RDS User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
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. Changing this
-- parameter results in an outage and the change is applied during the next
-- maintenance window unless the @ApplyImmediately@ parameter is enabled
-- for this request.
--
-- For major version upgrades, if a nondefault DB parameter group is
-- currently in use, a new DB parameter group in the DB parameter group
-- family for the new engine version must be specified. The new DB
-- parameter group can be the default for that DB parameter group family.
--
-- If you specify only a major version, Amazon RDS will update the DB
-- instance to the default minor version if the current minor version is
-- lower. For information about valid engine versions, see
-- @CreateDBInstance@, or call @DescribeDBEngineVersions@.
--
-- In RDS Custom for Oracle, this parameter is supported for read replicas
-- only if they are in the @PATCH_DB_FAILURE@ lifecycle.
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 RDS
-- 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 enabled for this request. If you are migrating from
-- Provisioned IOPS to standard storage, set this value to 0. The DB
-- instance will require a reboot for the change in storage type to take
-- effect.
--
-- If you choose to migrate your DB instance from using standard storage to
-- using Provisioned IOPS, or from using Provisioned IOPS to using standard
-- storage, the process can take time. The duration of the migration
-- depends on several factors such as database load, storage size, storage
-- type (standard or Provisioned IOPS), amount of IOPS provisioned (if
-- any), and the number of prior scale storage operations. Typical
-- migration times are under 24 hours, but the process can take up to
-- several days in some cases. During the migration, the DB instance is
-- available for use, but might experience performance degradation. While
-- the migration takes place, nightly backups for the instance are
-- suspended. No other Amazon RDS operations can take place for the
-- instance, including modifying the instance, rebooting the instance,
-- deleting the instance, creating a read replica for the instance, and
-- creating a DB snapshot of the instance.
--
-- Constraints: For MariaDB, MySQL, Oracle, and PostgreSQL, the value
-- supplied must be at least 10% greater than the current value. Values
-- that are not at least 10% greater than the existing value are rounded up
-- so that they are 10% greater than the current value.
--
-- 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)

-- | The license model for the DB instance.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Valid values: @license-included@ | @bring-your-own-license@ |
-- @general-public-license@
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)

-- | A value that indicates whether to manage the master user password with
-- Amazon Web Services Secrets Manager.
--
-- If the DB cluster doesn\'t manage the master user password with Amazon
-- Web Services Secrets Manager, you can turn on this management. In this
-- case, you can\'t specify @MasterUserPassword@.
--
-- If the DB cluster already manages the master user password with Amazon
-- Web Services Secrets Manager, and you specify that the master user
-- password is not managed with Amazon Web Services Secrets Manager, then
-- you must specify @MasterUserPassword@. In this case, RDS deletes the
-- secret and uses the new password for the master user specified by
-- @MasterUserPassword@.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html Password management with Amazon Web Services Secrets Manager>
-- in the /Amazon RDS User Guide./
--
-- Constraints:
--
-- -   Can\'t manage the master user password with Amazon Web Services
--     Secrets Manager if @MasterUserPassword@ is specified.
modifyDBInstance_manageMasterUserPassword :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
modifyDBInstance_manageMasterUserPassword :: Lens' ModifyDBInstance (Maybe Bool)
modifyDBInstance_manageMasterUserPassword = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Bool
manageMasterUserPassword :: Maybe Bool
$sel:manageMasterUserPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
manageMasterUserPassword} -> Maybe Bool
manageMasterUserPassword) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Bool
a -> ModifyDBInstance
s {$sel:manageMasterUserPassword:ModifyDBInstance' :: Maybe Bool
manageMasterUserPassword = Maybe Bool
a} :: ModifyDBInstance)

-- | The new password for the master user. The password can include any
-- printable ASCII character except \"\/\", \"\"\", or \"\@\".
--
-- Changing this parameter doesn\'t result in an outage and the change is
-- asynchronously applied as soon as possible. Between the time of the
-- request and the completion of the request, the @MasterUserPassword@
-- element exists in the @PendingModifiedValues@ element of the operation
-- response.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- __Amazon Aurora__
--
-- Not applicable. The password for the master user is managed by the DB
-- cluster. For more information, see @ModifyDBCluster@.
--
-- Default: Uses existing setting
--
-- Constraints: Can\'t be specified if @ManageMasterUserPassword@ is turned
-- on.
--
-- __MariaDB__
--
-- Constraints: Must contain from 8 to 41 characters.
--
-- __Microsoft SQL Server__
--
-- Constraints: Must contain from 8 to 128 characters.
--
-- __MySQL__
--
-- Constraints: Must contain from 8 to 41 characters.
--
-- __Oracle__
--
-- Constraints: Must contain from 8 to 30 characters.
--
-- __PostgreSQL__
--
-- Constraints: Must contain from 8 to 128 characters.
--
-- Amazon RDS API operations never return the password, so this action
-- provides a way to regain access to a primary instance user if the
-- password is lost. This includes restoring privileges that might have
-- been accidentally revoked.
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 Amazon Web Services KMS key identifier to encrypt a secret that is
-- automatically generated and managed in Amazon Web Services Secrets
-- Manager.
--
-- This setting is valid only if both of the following conditions are met:
--
-- -   The DB instance doesn\'t manage the master user password in Amazon
--     Web Services Secrets Manager.
--
--     If the DB instance already manages the master user password in
--     Amazon Web Services Secrets Manager, you can\'t change the KMS key
--     used to encrypt the secret.
--
-- -   You are turning on @ManageMasterUserPassword@ to manage the master
--     user password in Amazon Web Services Secrets Manager.
--
--     If you are turning on @ManageMasterUserPassword@ and don\'t specify
--     @MasterUserSecretKmsKeyId@, then the @aws\/secretsmanager@ KMS key
--     is used to encrypt the secret. If the secret is in a different
--     Amazon Web Services account, then you can\'t use the
--     @aws\/secretsmanager@ KMS key to encrypt the secret, and you must
--     use a customer managed KMS key.
--
-- The Amazon Web Services KMS key identifier is the key ARN, key ID, alias
-- ARN, or alias name for the KMS key. To use a KMS key in a different
-- Amazon Web Services account, specify the key ARN or alias ARN.
--
-- There is a default KMS key for your Amazon Web Services account. Your
-- Amazon Web Services account has a different default KMS key for each
-- Amazon Web Services Region.
modifyDBInstance_masterUserSecretKmsKeyId :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_masterUserSecretKmsKeyId :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_masterUserSecretKmsKeyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
masterUserSecretKmsKeyId :: Maybe Text
$sel:masterUserSecretKmsKeyId:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
masterUserSecretKmsKeyId} -> Maybe Text
masterUserSecretKmsKeyId) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:masterUserSecretKmsKeyId:ModifyDBInstance' :: Maybe Text
masterUserSecretKmsKeyId = Maybe Text
a} :: ModifyDBInstance)

-- | The upper limit in gibibytes (GiB) to which Amazon RDS can automatically
-- scale the storage of the DB instance.
--
-- For more information about this setting, including limitations that
-- apply to it, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling Managing capacity automatically with Amazon RDS storage autoscaling>
-- in the /Amazon RDS User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
modifyDBInstance_maxAllocatedStorage :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Int)
modifyDBInstance_maxAllocatedStorage :: Lens' ModifyDBInstance (Maybe Int)
modifyDBInstance_maxAllocatedStorage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Int
maxAllocatedStorage :: Maybe Int
$sel:maxAllocatedStorage:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
maxAllocatedStorage} -> Maybe Int
maxAllocatedStorage) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Int
a -> ModifyDBInstance
s {$sel:maxAllocatedStorage:ModifyDBInstance' :: Maybe Int
maxAllocatedStorage = Maybe Int
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, which is the default.
--
-- If @MonitoringRoleArn@ is specified, set @MonitoringInterval@ to a value
-- other than 0.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 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 RDS to send enhanced monitoring
-- metrics to Amazon CloudWatch Logs. For example,
-- @arn:aws:iam:123456789012:role\/emaccess@. For information on creating a
-- monitoring role, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html#USER_Monitoring.OS.IAMRole To create an IAM role for Amazon RDS Enhanced Monitoring>
-- in the /Amazon RDS User Guide./
--
-- If @MonitoringInterval@ is set to a value other than 0, supply a
-- @MonitoringRoleArn@ value.
--
-- This setting doesn\'t apply to RDS Custom.
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)

-- | A value that indicates whether the DB instance is a Multi-AZ deployment.
-- Changing this parameter doesn\'t result in an outage. The change is
-- applied during the next maintenance window unless the @ApplyImmediately@
-- parameter is enabled for this request.
--
-- This setting doesn\'t apply to RDS Custom.
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 network type of the DB instance.
--
-- Valid values:
--
-- -   @IPV4@
--
-- -   @DUAL@
--
-- The network type is determined by the @DBSubnetGroup@ specified for the
-- DB instance. A @DBSubnetGroup@ can support only the IPv4 protocol or the
-- IPv4 and the IPv6 protocols (@DUAL@).
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html Working with a DB instance in a VPC>
-- in the /Amazon RDS User Guide./
modifyDBInstance_networkType :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Text)
modifyDBInstance_networkType :: Lens' ModifyDBInstance (Maybe Text)
modifyDBInstance_networkType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Text
networkType :: Maybe Text
$sel:networkType:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
networkType} -> Maybe Text
networkType) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Text
a -> ModifyDBInstance
s {$sel:networkType:ModifyDBInstance' :: Maybe Text
networkType = Maybe Text
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
-- occurs immediately if you enable @ApplyImmediately@, or will occur
-- during the next maintenance window if you disable Apply Immediately.
-- This value is stored as a lowercase string.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Constraints:
--
-- -   Must contain from 1 to 63 letters, numbers, or hyphens.
--
-- -   The first character must be a letter.
--
-- -   Can\'t 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)

-- | A value that indicates the DB instance should be associated with the
-- specified option group.
--
-- Changing this parameter doesn\'t result in an outage, with one
-- exception. If the parameter change results in an option group that
-- enables OEM, it can cause a brief period, lasting less than a second,
-- during which new connections are rejected but existing connections
-- aren\'t interrupted.
--
-- The change is applied during the next maintenance window unless the
-- @ApplyImmediately@ parameter is enabled for this request.
--
-- Permanent options, such as the TDE option for Oracle Advanced Security
-- TDE, can\'t be removed from an option group, and that option group
-- can\'t be removed from a DB instance after it is associated with a DB
-- instance.
--
-- This setting doesn\'t apply to RDS Custom.
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)

-- | The Amazon Web Services KMS key identifier for encryption of Performance
-- Insights data.
--
-- The Amazon Web Services KMS key identifier is the key ARN, key ID, alias
-- ARN, or alias name for the KMS key.
--
-- If you do not specify a value for @PerformanceInsightsKMSKeyId@, then
-- Amazon RDS uses your default KMS key. There is a default KMS key for
-- your Amazon Web Services account. Your Amazon Web Services account has a
-- different default KMS key for each Amazon Web Services Region.
--
-- This setting doesn\'t apply to RDS Custom.
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 number of days to retain Performance Insights data. The default is 7
-- days. The following values are valid:
--
-- -   7
--
-- -   /month/ * 31, where /month/ is a number of months from 1-23
--
-- -   731
--
-- For example, the following values are valid:
--
-- -   93 (3 months * 31)
--
-- -   341 (11 months * 31)
--
-- -   589 (19 months * 31)
--
-- -   731
--
-- If you specify a retention period such as 94, which isn\'t a valid
-- value, RDS issues an error.
--
-- This setting doesn\'t apply to RDS Custom.
modifyDBInstance_performanceInsightsRetentionPeriod :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Int)
modifyDBInstance_performanceInsightsRetentionPeriod :: Lens' ModifyDBInstance (Maybe Int)
modifyDBInstance_performanceInsightsRetentionPeriod = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Int
performanceInsightsRetentionPeriod :: Maybe Int
$sel:performanceInsightsRetentionPeriod:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
performanceInsightsRetentionPeriod} -> Maybe Int
performanceInsightsRetentionPeriod) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Int
a -> ModifyDBInstance
s {$sel:performanceInsightsRetentionPeriod:ModifyDBInstance' :: Maybe Int
performanceInsightsRetentionPeriod = Maybe Int
a} :: ModifyDBInstance)

-- | The daily time range during which automated backups are created if
-- automated backups are enabled, as determined by the
-- @BackupRetentionPeriod@ parameter. Changing this parameter doesn\'t
-- result in an outage and the change is asynchronously applied as soon as
-- possible. The default is a 30-minute window selected at random from an
-- 8-hour block of time for each Amazon Web Services Region. For more
-- information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow Backup window>
-- in the /Amazon RDS User Guide./
--
-- __Amazon Aurora__
--
-- 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.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance Amazon RDS Maintenance Window>
-- in the /Amazon RDS User Guide./
--
-- 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)

-- | The number of CPU cores and the number of threads per core for the DB
-- instance class of the DB instance.
--
-- This setting doesn\'t apply to RDS Custom.
modifyDBInstance_processorFeatures :: Lens.Lens' ModifyDBInstance (Prelude.Maybe [ProcessorFeature])
modifyDBInstance_processorFeatures :: Lens' ModifyDBInstance (Maybe [ProcessorFeature])
modifyDBInstance_processorFeatures = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe [ProcessorFeature]
processorFeatures :: Maybe [ProcessorFeature]
$sel:processorFeatures:ModifyDBInstance' :: ModifyDBInstance -> Maybe [ProcessorFeature]
processorFeatures} -> Maybe [ProcessorFeature]
processorFeatures) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe [ProcessorFeature]
a -> ModifyDBInstance
s {$sel:processorFeatures:ModifyDBInstance' :: Maybe [ProcessorFeature]
processorFeatures = Maybe [ProcessorFeature]
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

-- | A value that specifies the order in which an Aurora Replica is promoted
-- to the primary instance after a failure of the existing primary
-- instance. For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance Fault Tolerance for an Aurora DB Cluster>
-- in the /Amazon Aurora User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 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)

-- | A value that indicates whether the DB instance is publicly accessible.
--
-- When the DB cluster is publicly accessible, its Domain Name System (DNS)
-- endpoint resolves to the private IP address from within the DB
-- cluster\'s virtual private cloud (VPC). It resolves to the public IP
-- address from outside of the DB cluster\'s VPC. Access to the DB cluster
-- is ultimately controlled by the security group it uses. That public
-- access isn\'t permitted if the security group assigned to the DB cluster
-- doesn\'t permit it.
--
-- When the DB instance isn\'t publicly accessible, it is an internal DB
-- instance with a DNS name that resolves to a private IP address.
--
-- @PubliclyAccessible@ only applies to DB instances in a VPC. The DB
-- instance must be part of a public subnet and @PubliclyAccessible@ must
-- be enabled for it to be publicly accessible.
--
-- Changes to the @PubliclyAccessible@ parameter are applied immediately
-- regardless of the value of the @ApplyImmediately@ parameter.
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)

-- | A value that sets the open mode of a replica database to either mounted
-- or read-only.
--
-- Currently, this parameter is only supported for Oracle DB instances.
--
-- Mounted DB replicas are included in Oracle Enterprise Edition. The main
-- use case for mounted replicas is cross-Region disaster recovery. The
-- primary database doesn\'t use Active Data Guard to transmit information
-- to the mounted replica. Because it doesn\'t accept user connections, a
-- mounted replica can\'t serve a read-only workload. For more information,
-- see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html Working with Oracle Read Replicas for Amazon RDS>
-- in the /Amazon RDS User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
modifyDBInstance_replicaMode :: Lens.Lens' ModifyDBInstance (Prelude.Maybe ReplicaMode)
modifyDBInstance_replicaMode :: Lens' ModifyDBInstance (Maybe ReplicaMode)
modifyDBInstance_replicaMode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe ReplicaMode
replicaMode :: Maybe ReplicaMode
$sel:replicaMode:ModifyDBInstance' :: ModifyDBInstance -> Maybe ReplicaMode
replicaMode} -> Maybe ReplicaMode
replicaMode) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe ReplicaMode
a -> ModifyDBInstance
s {$sel:replicaMode:ModifyDBInstance' :: Maybe ReplicaMode
replicaMode = Maybe ReplicaMode
a} :: ModifyDBInstance)

-- | The number of minutes to pause the automation. When the time period
-- ends, RDS Custom resumes full automation. The minimum value is @60@
-- (default). The maximum value is @1,440@.
modifyDBInstance_resumeFullAutomationModeMinutes :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Int)
modifyDBInstance_resumeFullAutomationModeMinutes :: Lens' ModifyDBInstance (Maybe Int)
modifyDBInstance_resumeFullAutomationModeMinutes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Int
resumeFullAutomationModeMinutes :: Maybe Int
$sel:resumeFullAutomationModeMinutes:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
resumeFullAutomationModeMinutes} -> Maybe Int
resumeFullAutomationModeMinutes) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Int
a -> ModifyDBInstance
s {$sel:resumeFullAutomationModeMinutes:ModifyDBInstance' :: Maybe Int
resumeFullAutomationModeMinutes = Maybe Int
a} :: ModifyDBInstance)

-- | A value that indicates whether to rotate the secret managed by Amazon
-- Web Services Secrets Manager for the master user password.
--
-- This setting is valid only if the master user password is managed by RDS
-- in Amazon Web Services Secrets Manager for the DB cluster. The secret
-- value contains the updated password.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html Password management with Amazon Web Services Secrets Manager>
-- in the /Amazon RDS User Guide./
--
-- Constraints:
--
-- -   You must apply the change immediately when rotating the master user
--     password.
modifyDBInstance_rotateMasterUserPassword :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
modifyDBInstance_rotateMasterUserPassword :: Lens' ModifyDBInstance (Maybe Bool)
modifyDBInstance_rotateMasterUserPassword = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Bool
rotateMasterUserPassword :: Maybe Bool
$sel:rotateMasterUserPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
rotateMasterUserPassword} -> Maybe Bool
rotateMasterUserPassword) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Bool
a -> ModifyDBInstance
s {$sel:rotateMasterUserPassword:ModifyDBInstance' :: Maybe Bool
rotateMasterUserPassword = Maybe Bool
a} :: ModifyDBInstance)

-- | Specifies the storage throughput value for the DB instance.
--
-- This setting applies only to the @gp3@ storage type.
--
-- This setting doesn\'t apply to RDS Custom or Amazon Aurora.
modifyDBInstance_storageThroughput :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Int)
modifyDBInstance_storageThroughput :: Lens' ModifyDBInstance (Maybe Int)
modifyDBInstance_storageThroughput = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Int
storageThroughput :: Maybe Int
$sel:storageThroughput:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
storageThroughput} -> Maybe Int
storageThroughput) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Int
a -> ModifyDBInstance
s {$sel:storageThroughput:ModifyDBInstance' :: Maybe Int
storageThroughput = Maybe Int
a} :: ModifyDBInstance)

-- | Specifies the storage type to be associated with the DB instance.
--
-- If you specify Provisioned IOPS (@io1@), you must also include a value
-- for the @Iops@ parameter.
--
-- If you choose to migrate your DB instance from using standard storage to
-- using Provisioned IOPS, or from using Provisioned IOPS to using standard
-- storage, the process can take time. The duration of the migration
-- depends on several factors such as database load, storage size, storage
-- type (standard or Provisioned IOPS), amount of IOPS provisioned (if
-- any), and the number of prior scale storage operations. Typical
-- migration times are under 24 hours, but the process can take up to
-- several days in some cases. During the migration, the DB instance is
-- available for use, but might experience performance degradation. While
-- the migration takes place, nightly backups for the instance are
-- suspended. No other Amazon RDS operations can take place for the
-- instance, including modifying the instance, rebooting the instance,
-- deleting the instance, creating a read replica for the instance, and
-- creating a DB snapshot of the instance.
--
-- Valid values: @gp2 | gp3 | io1 | standard@
--
-- Default: @io1@ if the @Iops@ parameter is specified, otherwise @gp2@
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.
--
-- This setting doesn\'t apply to RDS Custom.
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.
--
-- This setting doesn\'t apply to RDS Custom.
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 value that indicates whether the DB instance class of the DB instance
-- uses its default processor features.
--
-- This setting doesn\'t apply to RDS Custom.
modifyDBInstance_useDefaultProcessorFeatures :: Lens.Lens' ModifyDBInstance (Prelude.Maybe Prelude.Bool)
modifyDBInstance_useDefaultProcessorFeatures :: Lens' ModifyDBInstance (Maybe Bool)
modifyDBInstance_useDefaultProcessorFeatures = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyDBInstance' {Maybe Bool
useDefaultProcessorFeatures :: Maybe Bool
$sel:useDefaultProcessorFeatures:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
useDefaultProcessorFeatures} -> Maybe Bool
useDefaultProcessorFeatures) (\s :: ModifyDBInstance
s@ModifyDBInstance' {} Maybe Bool
a -> ModifyDBInstance
s {$sel:useDefaultProcessorFeatures:ModifyDBInstance' :: Maybe Bool
useDefaultProcessorFeatures = Maybe Bool
a} :: ModifyDBInstance)

-- | A list of Amazon EC2 VPC security groups to authorize on this DB
-- instance. This change is asynchronously applied as soon as possible.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- __Amazon Aurora__
--
-- 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 [ProcessorFeature]
Maybe Text
Maybe AutomationMode
Maybe CloudwatchLogsExportConfiguration
Maybe ReplicaMode
Text
dbInstanceIdentifier :: Text
vpcSecurityGroupIds :: Maybe [Text]
useDefaultProcessorFeatures :: Maybe Bool
tdeCredentialPassword :: Maybe Text
tdeCredentialArn :: Maybe Text
storageType :: Maybe Text
storageThroughput :: Maybe Int
rotateMasterUserPassword :: Maybe Bool
resumeFullAutomationModeMinutes :: Maybe Int
replicaMode :: Maybe ReplicaMode
publiclyAccessible :: Maybe Bool
promotionTier :: Maybe Int
processorFeatures :: Maybe [ProcessorFeature]
preferredMaintenanceWindow :: Maybe Text
preferredBackupWindow :: Maybe Text
performanceInsightsRetentionPeriod :: Maybe Int
performanceInsightsKMSKeyId :: Maybe Text
optionGroupName :: Maybe Text
newDBInstanceIdentifier' :: Maybe Text
networkType :: Maybe Text
multiAZ :: Maybe Bool
monitoringRoleArn :: Maybe Text
monitoringInterval :: Maybe Int
maxAllocatedStorage :: Maybe Int
masterUserSecretKmsKeyId :: Maybe Text
masterUserPassword :: Maybe Text
manageMasterUserPassword :: Maybe Bool
licenseModel :: Maybe Text
iops :: Maybe Int
engineVersion :: Maybe Text
enablePerformanceInsights :: Maybe Bool
enableIAMDatabaseAuthentication :: Maybe Bool
enableCustomerOwnedIp :: 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
certificateRotationRestart :: Maybe Bool
cACertificateIdentifier :: Maybe Text
backupRetentionPeriod :: Maybe Int
awsBackupRecoveryPointArn :: Maybe Text
automationMode :: Maybe AutomationMode
autoMinorVersionUpgrade :: Maybe Bool
applyImmediately :: Maybe Bool
allowMajorVersionUpgrade :: Maybe Bool
allocatedStorage :: Maybe Int
$sel:dbInstanceIdentifier:ModifyDBInstance' :: ModifyDBInstance -> Text
$sel:vpcSecurityGroupIds:ModifyDBInstance' :: ModifyDBInstance -> Maybe [Text]
$sel:useDefaultProcessorFeatures:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:tdeCredentialPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:tdeCredentialArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:storageType:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:storageThroughput:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:rotateMasterUserPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:resumeFullAutomationModeMinutes:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:replicaMode:ModifyDBInstance' :: ModifyDBInstance -> Maybe ReplicaMode
$sel:publiclyAccessible:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:promotionTier:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:processorFeatures:ModifyDBInstance' :: ModifyDBInstance -> Maybe [ProcessorFeature]
$sel:preferredMaintenanceWindow:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:preferredBackupWindow:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:performanceInsightsRetentionPeriod:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:performanceInsightsKMSKeyId:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:optionGroupName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:newDBInstanceIdentifier':ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:networkType:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:multiAZ:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:monitoringRoleArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:monitoringInterval:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:maxAllocatedStorage:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:masterUserSecretKmsKeyId:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:masterUserPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:manageMasterUserPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$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:enableCustomerOwnedIp: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:certificateRotationRestart:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:cACertificateIdentifier:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:backupRetentionPeriod:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:awsBackupRecoveryPointArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:automationMode:ModifyDBInstance' :: ModifyDBInstance -> Maybe AutomationMode
$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 AutomationMode
automationMode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
awsBackupRecoveryPointArn
      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 Bool
certificateRotationRestart
      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
enableCustomerOwnedIp
      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 Bool
manageMasterUserPassword
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
masterUserPassword
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
masterUserSecretKmsKeyId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxAllocatedStorage
      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
networkType
      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 Int
performanceInsightsRetentionPeriod
      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 [ProcessorFeature]
processorFeatures
      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 ReplicaMode
replicaMode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
resumeFullAutomationModeMinutes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
rotateMasterUserPassword
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
storageThroughput
      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 Bool
useDefaultProcessorFeatures
      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 [ProcessorFeature]
Maybe Text
Maybe AutomationMode
Maybe CloudwatchLogsExportConfiguration
Maybe ReplicaMode
Text
dbInstanceIdentifier :: Text
vpcSecurityGroupIds :: Maybe [Text]
useDefaultProcessorFeatures :: Maybe Bool
tdeCredentialPassword :: Maybe Text
tdeCredentialArn :: Maybe Text
storageType :: Maybe Text
storageThroughput :: Maybe Int
rotateMasterUserPassword :: Maybe Bool
resumeFullAutomationModeMinutes :: Maybe Int
replicaMode :: Maybe ReplicaMode
publiclyAccessible :: Maybe Bool
promotionTier :: Maybe Int
processorFeatures :: Maybe [ProcessorFeature]
preferredMaintenanceWindow :: Maybe Text
preferredBackupWindow :: Maybe Text
performanceInsightsRetentionPeriod :: Maybe Int
performanceInsightsKMSKeyId :: Maybe Text
optionGroupName :: Maybe Text
newDBInstanceIdentifier' :: Maybe Text
networkType :: Maybe Text
multiAZ :: Maybe Bool
monitoringRoleArn :: Maybe Text
monitoringInterval :: Maybe Int
maxAllocatedStorage :: Maybe Int
masterUserSecretKmsKeyId :: Maybe Text
masterUserPassword :: Maybe Text
manageMasterUserPassword :: Maybe Bool
licenseModel :: Maybe Text
iops :: Maybe Int
engineVersion :: Maybe Text
enablePerformanceInsights :: Maybe Bool
enableIAMDatabaseAuthentication :: Maybe Bool
enableCustomerOwnedIp :: 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
certificateRotationRestart :: Maybe Bool
cACertificateIdentifier :: Maybe Text
backupRetentionPeriod :: Maybe Int
awsBackupRecoveryPointArn :: Maybe Text
automationMode :: Maybe AutomationMode
autoMinorVersionUpgrade :: Maybe Bool
applyImmediately :: Maybe Bool
allowMajorVersionUpgrade :: Maybe Bool
allocatedStorage :: Maybe Int
$sel:dbInstanceIdentifier:ModifyDBInstance' :: ModifyDBInstance -> Text
$sel:vpcSecurityGroupIds:ModifyDBInstance' :: ModifyDBInstance -> Maybe [Text]
$sel:useDefaultProcessorFeatures:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:tdeCredentialPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:tdeCredentialArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:storageType:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:storageThroughput:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:rotateMasterUserPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:resumeFullAutomationModeMinutes:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:replicaMode:ModifyDBInstance' :: ModifyDBInstance -> Maybe ReplicaMode
$sel:publiclyAccessible:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:promotionTier:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:processorFeatures:ModifyDBInstance' :: ModifyDBInstance -> Maybe [ProcessorFeature]
$sel:preferredMaintenanceWindow:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:preferredBackupWindow:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:performanceInsightsRetentionPeriod:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:performanceInsightsKMSKeyId:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:optionGroupName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:newDBInstanceIdentifier':ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:networkType:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:multiAZ:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:monitoringRoleArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:monitoringInterval:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:maxAllocatedStorage:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:masterUserSecretKmsKeyId:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:masterUserPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:manageMasterUserPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$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:enableCustomerOwnedIp: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:certificateRotationRestart:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:cACertificateIdentifier:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:backupRetentionPeriod:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:awsBackupRecoveryPointArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:automationMode:ModifyDBInstance' :: ModifyDBInstance -> Maybe AutomationMode
$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 AutomationMode
automationMode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
awsBackupRecoveryPointArn
      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 Bool
certificateRotationRestart
      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
enableCustomerOwnedIp
      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 Bool
manageMasterUserPassword
      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 Text
masterUserSecretKmsKeyId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Int
maxAllocatedStorage
      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
networkType
      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 Int
performanceInsightsRetentionPeriod
      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 [ProcessorFeature]
processorFeatures
      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 ReplicaMode
replicaMode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Int
resumeFullAutomationModeMinutes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Bool
rotateMasterUserPassword
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Int
storageThroughput
      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 Bool
useDefaultProcessorFeatures
      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 [ProcessorFeature]
Maybe Text
Maybe AutomationMode
Maybe CloudwatchLogsExportConfiguration
Maybe ReplicaMode
Text
dbInstanceIdentifier :: Text
vpcSecurityGroupIds :: Maybe [Text]
useDefaultProcessorFeatures :: Maybe Bool
tdeCredentialPassword :: Maybe Text
tdeCredentialArn :: Maybe Text
storageType :: Maybe Text
storageThroughput :: Maybe Int
rotateMasterUserPassword :: Maybe Bool
resumeFullAutomationModeMinutes :: Maybe Int
replicaMode :: Maybe ReplicaMode
publiclyAccessible :: Maybe Bool
promotionTier :: Maybe Int
processorFeatures :: Maybe [ProcessorFeature]
preferredMaintenanceWindow :: Maybe Text
preferredBackupWindow :: Maybe Text
performanceInsightsRetentionPeriod :: Maybe Int
performanceInsightsKMSKeyId :: Maybe Text
optionGroupName :: Maybe Text
newDBInstanceIdentifier' :: Maybe Text
networkType :: Maybe Text
multiAZ :: Maybe Bool
monitoringRoleArn :: Maybe Text
monitoringInterval :: Maybe Int
maxAllocatedStorage :: Maybe Int
masterUserSecretKmsKeyId :: Maybe Text
masterUserPassword :: Maybe Text
manageMasterUserPassword :: Maybe Bool
licenseModel :: Maybe Text
iops :: Maybe Int
engineVersion :: Maybe Text
enablePerformanceInsights :: Maybe Bool
enableIAMDatabaseAuthentication :: Maybe Bool
enableCustomerOwnedIp :: 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
certificateRotationRestart :: Maybe Bool
cACertificateIdentifier :: Maybe Text
backupRetentionPeriod :: Maybe Int
awsBackupRecoveryPointArn :: Maybe Text
automationMode :: Maybe AutomationMode
autoMinorVersionUpgrade :: Maybe Bool
applyImmediately :: Maybe Bool
allowMajorVersionUpgrade :: Maybe Bool
allocatedStorage :: Maybe Int
$sel:dbInstanceIdentifier:ModifyDBInstance' :: ModifyDBInstance -> Text
$sel:vpcSecurityGroupIds:ModifyDBInstance' :: ModifyDBInstance -> Maybe [Text]
$sel:useDefaultProcessorFeatures:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:tdeCredentialPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:tdeCredentialArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:storageType:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:storageThroughput:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:rotateMasterUserPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:resumeFullAutomationModeMinutes:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:replicaMode:ModifyDBInstance' :: ModifyDBInstance -> Maybe ReplicaMode
$sel:publiclyAccessible:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:promotionTier:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:processorFeatures:ModifyDBInstance' :: ModifyDBInstance -> Maybe [ProcessorFeature]
$sel:preferredMaintenanceWindow:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:preferredBackupWindow:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:performanceInsightsRetentionPeriod:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:performanceInsightsKMSKeyId:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:optionGroupName:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:newDBInstanceIdentifier':ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:networkType:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:multiAZ:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:monitoringRoleArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:monitoringInterval:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:maxAllocatedStorage:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:masterUserSecretKmsKeyId:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:masterUserPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:manageMasterUserPassword:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$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:enableCustomerOwnedIp: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:certificateRotationRestart:ModifyDBInstance' :: ModifyDBInstance -> Maybe Bool
$sel:cACertificateIdentifier:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:backupRetentionPeriod:ModifyDBInstance' :: ModifyDBInstance -> Maybe Int
$sel:awsBackupRecoveryPointArn:ModifyDBInstance' :: ModifyDBInstance -> Maybe Text
$sel:automationMode:ModifyDBInstance' :: ModifyDBInstance -> Maybe AutomationMode
$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
"AutomationMode" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe AutomationMode
automationMode,
        ByteString
"AwsBackupRecoveryPointArn"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
awsBackupRecoveryPointArn,
        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
"CertificateRotationRestart"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
certificateRotationRestart,
        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
"EnableCustomerOwnedIp"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
enableCustomerOwnedIp,
        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
"ManageMasterUserPassword"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
manageMasterUserPassword,
        ByteString
"MasterUserPassword" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
masterUserPassword,
        ByteString
"MasterUserSecretKmsKeyId"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
masterUserSecretKmsKeyId,
        ByteString
"MaxAllocatedStorage" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
maxAllocatedStorage,
        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
"NetworkType" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
networkType,
        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
"PerformanceInsightsRetentionPeriod"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
performanceInsightsRetentionPeriod,
        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
"ProcessorFeatures"
          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
"ProcessorFeature"
                forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ProcessorFeature]
processorFeatures
            ),
        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
"ReplicaMode" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe ReplicaMode
replicaMode,
        ByteString
"ResumeFullAutomationModeMinutes"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
resumeFullAutomationModeMinutes,
        ByteString
"RotateMasterUserPassword"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
rotateMasterUserPassword,
        ByteString
"StorageThroughput" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
storageThroughput,
        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
"UseDefaultProcessorFeatures"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
useDefaultProcessorFeatures,
        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