{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# 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.Types.DBInstance
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.RDS.Types.DBInstance where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import Amazonka.RDS.Types.ActivityStreamMode
import Amazonka.RDS.Types.ActivityStreamStatus
import Amazonka.RDS.Types.DBInstanceAutomatedBackupsReplication
import Amazonka.RDS.Types.DBInstanceRole
import Amazonka.RDS.Types.DBInstanceStatusInfo
import Amazonka.RDS.Types.DBParameterGroupStatus
import Amazonka.RDS.Types.DBSecurityGroupMembership
import Amazonka.RDS.Types.DBSubnetGroup
import Amazonka.RDS.Types.DomainMembership
import Amazonka.RDS.Types.Endpoint
import Amazonka.RDS.Types.OptionGroupMembership
import Amazonka.RDS.Types.PendingModifiedValues
import Amazonka.RDS.Types.ProcessorFeature
import Amazonka.RDS.Types.ReplicaMode
import Amazonka.RDS.Types.Tag
import Amazonka.RDS.Types.VpcSecurityGroupMembership

-- | Contains the details of an Amazon RDS DB instance.
--
-- This data type is used as a response element in the
-- @DescribeDBInstances@ action.
--
-- /See:/ 'newDBInstance' smart constructor.
data DBInstance = DBInstance'
  { -- | Indicates the database engine version.
    DBInstance -> Maybe Text
engineVersion :: Prelude.Maybe Prelude.Text,
    -- | A list of DB security group elements containing @DBSecurityGroup.Name@
    -- and @DBSecurityGroup.Status@ subelements.
    DBInstance -> Maybe [DBSecurityGroupMembership]
dbSecurityGroups :: Prelude.Maybe [DBSecurityGroupMembership],
    -- | Indicates if the DB instance has deletion protection enabled. The
    -- database can\'t be deleted when deletion protection is enabled. For more
    -- information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html Deleting a DB Instance>.
    DBInstance -> Maybe Bool
deletionProtection :: Prelude.Maybe Prelude.Bool,
    -- | The time when a stopped DB instance is restarted automatically.
    DBInstance -> Maybe ISO8601
automaticRestartTime :: Prelude.Maybe Core.ISO8601,
    -- | Specifies whether the DB instance is encrypted.
    DBInstance -> Maybe Bool
storageEncrypted :: Prelude.Maybe Prelude.Bool,
    -- | If the DB instance is a member of a DB cluster, contains the name of the
    -- DB cluster that the DB instance is a member of.
    DBInstance -> Maybe Text
dbClusterIdentifier :: Prelude.Maybe Prelude.Text,
    -- | Specifies the accessibility options for the DB instance.
    --
    -- When the DB instance is publicly accessible, its DNS endpoint resolves
    -- to the private IP address from within the DB instance\'s VPC, and to the
    -- public IP address from outside of the DB instance\'s VPC. Access to the
    -- DB instance is ultimately controlled by the security group it uses, and
    -- that public access is not permitted if the security group assigned to
    -- the DB instance 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.
    --
    -- For more information, see CreateDBInstance.
    DBInstance -> Maybe Bool
publiclyAccessible :: Prelude.Maybe Prelude.Bool,
    -- | A value that indicates that minor version patches are applied
    -- automatically.
    DBInstance -> Maybe Bool
autoMinorVersionUpgrade :: Prelude.Maybe Prelude.Bool,
    -- | The Amazon Resource Name (ARN) for the DB instance.
    DBInstance -> Maybe Text
dbInstanceArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the Amazon Kinesis data stream used for the database
    -- activity stream.
    DBInstance -> Maybe Text
activityStreamKinesisStreamName :: Prelude.Maybe Prelude.Text,
    -- | Indicates whether engine-native audit fields are included in the
    -- database activity stream.
    DBInstance -> Maybe Bool
activityStreamEngineNativeAuditFieldsIncluded :: Prelude.Maybe Prelude.Bool,
    -- | Contains the master username for the DB instance.
    DBInstance -> Maybe Text
masterUsername :: Prelude.Maybe Prelude.Text,
    -- | Contains one or more identifiers of the read replicas associated with
    -- this DB instance.
    DBInstance -> Maybe [Text]
readReplicaDBInstanceIdentifiers :: Prelude.Maybe [Prelude.Text],
    -- | True if mapping of Amazon Web Services Identity and Access Management
    -- (IAM) accounts to database accounts is enabled, and otherwise false.
    --
    -- IAM database authentication can be enabled for the following database
    -- engines
    --
    -- -   For MySQL 5.6, minor version 5.6.34 or higher
    --
    -- -   For MySQL 5.7, minor version 5.7.16 or higher
    --
    -- -   Aurora 5.6 or higher. To enable IAM database authentication for
    --     Aurora, see DBCluster Type.
    DBInstance -> Maybe Bool
iAMDatabaseAuthenticationEnabled :: Prelude.Maybe Prelude.Bool,
    -- | The ARN for the IAM role that permits RDS to send Enhanced Monitoring
    -- metrics to Amazon CloudWatch Logs.
    DBInstance -> Maybe Text
monitoringRoleArn :: Prelude.Maybe Prelude.Text,
    -- | Specifies the Provisioned IOPS (I\/O operations per second) value.
    DBInstance -> Maybe Int
iops :: Prelude.Maybe Prelude.Int,
    -- | Provides the date and time the DB instance was created.
    DBInstance -> Maybe ISO8601
instanceCreateTime :: Prelude.Maybe Core.ISO8601,
    DBInstance -> Maybe [Tag]
tagList :: Prelude.Maybe [Tag],
    -- | Contains the identifier of the source DB instance if this DB instance is
    -- a read replica.
    DBInstance -> Maybe Text
readReplicaSourceDBInstanceIdentifier :: Prelude.Maybe Prelude.Text,
    -- | The open mode of an Oracle read replica. The default is
    -- @open-read-only@. 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 attribute is only supported in RDS for Oracle.
    DBInstance -> Maybe ReplicaMode
replicaMode :: Prelude.Maybe ReplicaMode,
    -- | The interval, in seconds, between points when Enhanced Monitoring
    -- metrics are collected for the DB instance.
    DBInstance -> Maybe Int
monitoringInterval :: Prelude.Maybe Prelude.Int,
    -- | The name of the database engine to be used for this DB instance.
    DBInstance -> Maybe Text
engine :: 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.
    DBInstance -> Maybe [ProcessorFeature]
processorFeatures :: Prelude.Maybe [ProcessorFeature],
    -- | Specifies the latest time to which a database can be restored with
    -- point-in-time restore.
    DBInstance -> Maybe ISO8601
latestRestorableTime :: Prelude.Maybe Core.ISO8601,
    -- | Contains the name of the compute and memory capacity class of the DB
    -- instance.
    DBInstance -> Maybe Text
dbInstanceClass :: Prelude.Maybe Prelude.Text,
    -- | 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/.
    DBInstance -> Maybe Int
promotionTier :: Prelude.Maybe Prelude.Int,
    -- | The Amazon Resource Name (ARN) of the recovery point in Amazon Web
    -- Services Backup.
    DBInstance -> Maybe Text
awsBackupRecoveryPointArn :: Prelude.Maybe Prelude.Text,
    -- | License model information for this DB instance.
    DBInstance -> Maybe Text
licenseModel :: Prelude.Maybe Prelude.Text,
    -- | Specifies the weekly time range during which system maintenance can
    -- occur, in Universal Coordinated Time (UTC).
    DBInstance -> Maybe Text
preferredMaintenanceWindow :: Prelude.Maybe Prelude.Text,
    -- | The amount of time, in days, to retain Performance Insights data. Valid
    -- values are 7 or 731 (2 years).
    DBInstance -> Maybe Int
performanceInsightsRetentionPeriod :: Prelude.Maybe Prelude.Int,
    -- | The identifier of the CA certificate for this DB instance.
    DBInstance -> Maybe Text
cACertificateIdentifier :: Prelude.Maybe Prelude.Text,
    -- | Contains a user-supplied database identifier. This identifier is the
    -- unique key that identifies a DB instance.
    DBInstance -> Maybe Text
dbInstanceIdentifier :: Prelude.Maybe Prelude.Text,
    -- | If present, specifies the name of the character set that this instance
    -- is associated with.
    DBInstance -> Maybe Text
characterSetName :: Prelude.Maybe Prelude.Text,
    -- | The upper limit in gibibytes (GiB) to which Amazon RDS can automatically
    -- scale the storage of the DB instance.
    DBInstance -> Maybe Int
maxAllocatedStorage :: Prelude.Maybe Prelude.Int,
    -- | Specifies whether a customer-owned IP address (CoIP) is enabled 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/outposts-networking-components.html#ip-addressing Customer-owned IP addresses>
    -- in the /Amazon Web Services Outposts User Guide/.
    DBInstance -> Maybe Bool
customerOwnedIpEnabled :: Prelude.Maybe Prelude.Bool,
    -- | If @StorageEncrypted@ is true, the Amazon Web Services KMS key
    -- identifier for the encrypted DB instance.
    --
    -- The Amazon Web Services KMS key identifier is the key ARN, key ID, alias
    -- ARN, or alias name for the Amazon Web Services KMS customer master key
    -- (CMK).
    DBInstance -> Maybe Text
kmsKeyId :: Prelude.Maybe Prelude.Text,
    -- | Specifies the daily time range during which automated backups are
    -- created if automated backups are enabled, as determined by the
    -- @BackupRetentionPeriod@.
    DBInstance -> Maybe Text
preferredBackupWindow :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Web Services Identity and Access Management (IAM) roles
    -- associated with the DB instance.
    DBInstance -> Maybe [DBInstanceRole]
associatedRoles :: Prelude.Maybe [DBInstanceRole],
    -- | Specifies the name of the Availability Zone the DB instance is located
    -- in.
    DBInstance -> Maybe Text
availabilityZone :: Prelude.Maybe Prelude.Text,
    -- | Provides a list of VPC security group elements that the DB instance
    -- belongs to.
    DBInstance -> Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups :: Prelude.Maybe [VpcSecurityGroupMembership],
    -- | Specifies the number of days for which automatic DB snapshots are
    -- retained.
    DBInstance -> Maybe Int
backupRetentionPeriod :: Prelude.Maybe Prelude.Int,
    -- | The name of the NCHAR character set for the Oracle DB instance. This
    -- character set specifies the Unicode encoding for data stored in table
    -- columns of type NCHAR, NCLOB, or NVARCHAR2.
    DBInstance -> Maybe Text
ncharCharacterSetName :: 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 Amazon Web Services KMS customer master key
    -- (CMK).
    DBInstance -> Maybe Text
performanceInsightsKMSKeyId :: Prelude.Maybe Prelude.Text,
    -- | Specifies information on the subnet group associated with the DB
    -- instance, including the name, description, and subnets in the subnet
    -- group.
    DBInstance -> Maybe DBSubnetGroup
dbSubnetGroup :: Prelude.Maybe DBSubnetGroup,
    -- | The mode of the database activity stream. Database events such as a
    -- change or access generate an activity stream event. RDS for Oracle
    -- always handles these events asynchronously.
    DBInstance -> Maybe ActivityStreamMode
activityStreamMode :: Prelude.Maybe ActivityStreamMode,
    -- | Specifies if the DB instance is a Multi-AZ deployment.
    DBInstance -> Maybe Bool
multiAZ :: Prelude.Maybe Prelude.Bool,
    -- | Specifies the listener connection endpoint for SQL Server Always On.
    DBInstance -> Maybe Endpoint
listenerEndpoint :: Prelude.Maybe Endpoint,
    -- | Provides the list of option group memberships for this DB instance.
    DBInstance -> Maybe [OptionGroupMembership]
optionGroupMemberships :: Prelude.Maybe [OptionGroupMembership],
    -- | A list of log types that this DB instance is configured to export to
    -- CloudWatch Logs.
    --
    -- Log types vary by DB engine. For information about the log types for
    -- each DB engine, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html Amazon RDS Database Log Files>
    -- in the /Amazon RDS User Guide./
    DBInstance -> Maybe [Text]
enabledCloudwatchLogsExports :: Prelude.Maybe [Prelude.Text],
    -- | The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream
    -- that receives the Enhanced Monitoring metrics data for the DB instance.
    DBInstance -> Maybe Text
enhancedMonitoringResourceArn :: Prelude.Maybe Prelude.Text,
    -- | If present, specifies the name of the secondary Availability Zone for a
    -- DB instance with multi-AZ support.
    DBInstance -> Maybe Text
secondaryAvailabilityZone :: Prelude.Maybe Prelude.Text,
    -- | The status of the database activity stream.
    DBInstance -> Maybe ActivityStreamStatus
activityStreamStatus :: Prelude.Maybe ActivityStreamStatus,
    -- | True if Performance Insights is enabled for the DB instance, and
    -- otherwise false.
    DBInstance -> Maybe Bool
performanceInsightsEnabled :: Prelude.Maybe Prelude.Bool,
    -- | Specifies the allocated storage size specified in gibibytes (GiB).
    DBInstance -> Maybe Int
allocatedStorage :: Prelude.Maybe Prelude.Int,
    -- | The Amazon Web Services Region-unique, immutable identifier for the DB
    -- instance. This identifier is found in Amazon Web Services CloudTrail log
    -- entries whenever the Amazon Web Services KMS customer master key (CMK)
    -- for the DB instance is accessed.
    DBInstance -> Maybe Text
dbiResourceId :: Prelude.Maybe Prelude.Text,
    -- | Provides the list of DB parameter groups applied to this DB instance.
    DBInstance -> Maybe [DBParameterGroupStatus]
dbParameterGroups :: Prelude.Maybe [DBParameterGroupStatus],
    -- | Specifies whether tags are copied from the DB instance to snapshots of
    -- the DB instance.
    --
    -- __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 @DBCluster@.
    DBInstance -> Maybe Bool
copyTagsToSnapshot :: Prelude.Maybe Prelude.Bool,
    -- | The time zone of the DB instance. In most cases, the @Timezone@ element
    -- is empty. @Timezone@ content appears only for Microsoft SQL Server DB
    -- instances that were created with a time zone specified.
    DBInstance -> Maybe Text
timezone :: Prelude.Maybe Prelude.Text,
    -- | The ARN from the key store with which the instance is associated for TDE
    -- encryption.
    DBInstance -> Maybe Text
tdeCredentialArn :: Prelude.Maybe Prelude.Text,
    -- | The list of replicated automated backups associated with the DB
    -- instance.
    DBInstance -> Maybe [DBInstanceAutomatedBackupsReplication]
dbInstanceAutomatedBackupsReplications :: Prelude.Maybe [DBInstanceAutomatedBackupsReplication],
    -- | Specifies the connection endpoint.
    --
    -- The endpoint might not be shown for instances whose status is
    -- @creating@.
    DBInstance -> Maybe Endpoint
endpoint :: Prelude.Maybe Endpoint,
    -- | Specifies the current state of this database.
    --
    -- For information about DB instance statuses, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status Viewing DB instance status>
    -- in the /Amazon RDS User Guide./
    DBInstance -> Maybe Text
dbInstanceStatus :: Prelude.Maybe Prelude.Text,
    -- | Specifies the port that the DB instance listens on. If the DB instance
    -- is part of a DB cluster, this can be a different port than the DB
    -- cluster port.
    DBInstance -> Maybe Int
dbInstancePort :: Prelude.Maybe Prelude.Int,
    -- | The Amazon Web Services KMS key identifier used for encrypting messages
    -- in the database activity stream. The Amazon Web Services KMS key
    -- identifier is the key ARN, key ID, alias ARN, or alias name for the
    -- Amazon Web Services KMS customer master key (CMK).
    DBInstance -> Maybe Text
activityStreamKmsKeyId :: Prelude.Maybe Prelude.Text,
    -- | A value that specifies that changes to the DB instance are pending. This
    -- element is only included when changes are pending. Specific changes are
    -- identified by subelements.
    DBInstance -> Maybe PendingModifiedValues
pendingModifiedValues :: Prelude.Maybe PendingModifiedValues,
    -- | Contains one or more identifiers of Aurora DB clusters to which the RDS
    -- DB instance is replicated as a read replica. For example, when you
    -- create an Aurora read replica of an RDS MySQL DB instance, the Aurora
    -- MySQL DB cluster for the Aurora read replica is shown. This output does
    -- not contain information about cross region Aurora read replicas.
    --
    -- Currently, each RDS DB instance can have only one Aurora read replica.
    DBInstance -> Maybe [Text]
readReplicaDBClusterIdentifiers :: Prelude.Maybe [Prelude.Text],
    -- | Specifies the storage type associated with DB instance.
    DBInstance -> Maybe Text
storageType :: Prelude.Maybe Prelude.Text,
    -- | The status of a read replica. If the instance isn\'t a read replica,
    -- this is blank.
    DBInstance -> Maybe [DBInstanceStatusInfo]
statusInfos :: Prelude.Maybe [DBInstanceStatusInfo],
    -- | The Active Directory Domain membership records associated with the DB
    -- instance.
    DBInstance -> Maybe [DomainMembership]
domainMemberships :: Prelude.Maybe [DomainMembership],
    -- | The meaning of this parameter differs according to the database engine
    -- you use.
    --
    -- __MySQL, MariaDB, SQL Server, PostgreSQL__
    --
    -- Contains the name of the initial database of this instance that was
    -- provided at create time, if one was specified when the DB instance was
    -- created. This same name is returned for the life of the DB instance.
    --
    -- Type: String
    --
    -- __Oracle__
    --
    -- Contains the Oracle System ID (SID) of the created DB instance. Not
    -- shown when the returned parameters do not apply to an Oracle DB
    -- instance.
    DBInstance -> Maybe Text
dbName :: Prelude.Maybe Prelude.Text
  }
  deriving (DBInstance -> DBInstance -> Bool
(DBInstance -> DBInstance -> Bool)
-> (DBInstance -> DBInstance -> Bool) -> Eq DBInstance
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DBInstance -> DBInstance -> Bool
$c/= :: DBInstance -> DBInstance -> Bool
== :: DBInstance -> DBInstance -> Bool
$c== :: DBInstance -> DBInstance -> Bool
Prelude.Eq, ReadPrec [DBInstance]
ReadPrec DBInstance
Int -> ReadS DBInstance
ReadS [DBInstance]
(Int -> ReadS DBInstance)
-> ReadS [DBInstance]
-> ReadPrec DBInstance
-> ReadPrec [DBInstance]
-> Read DBInstance
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DBInstance]
$creadListPrec :: ReadPrec [DBInstance]
readPrec :: ReadPrec DBInstance
$creadPrec :: ReadPrec DBInstance
readList :: ReadS [DBInstance]
$creadList :: ReadS [DBInstance]
readsPrec :: Int -> ReadS DBInstance
$creadsPrec :: Int -> ReadS DBInstance
Prelude.Read, Int -> DBInstance -> ShowS
[DBInstance] -> ShowS
DBInstance -> String
(Int -> DBInstance -> ShowS)
-> (DBInstance -> String)
-> ([DBInstance] -> ShowS)
-> Show DBInstance
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DBInstance] -> ShowS
$cshowList :: [DBInstance] -> ShowS
show :: DBInstance -> String
$cshow :: DBInstance -> String
showsPrec :: Int -> DBInstance -> ShowS
$cshowsPrec :: Int -> DBInstance -> ShowS
Prelude.Show, (forall x. DBInstance -> Rep DBInstance x)
-> (forall x. Rep DBInstance x -> DBInstance) -> Generic DBInstance
forall x. Rep DBInstance x -> DBInstance
forall x. DBInstance -> Rep DBInstance x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DBInstance x -> DBInstance
$cfrom :: forall x. DBInstance -> Rep DBInstance x
Prelude.Generic)

-- |
-- Create a value of 'DBInstance' 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:
--
-- 'engineVersion', 'dbInstance_engineVersion' - Indicates the database engine version.
--
-- 'dbSecurityGroups', 'dbInstance_dbSecurityGroups' - A list of DB security group elements containing @DBSecurityGroup.Name@
-- and @DBSecurityGroup.Status@ subelements.
--
-- 'deletionProtection', 'dbInstance_deletionProtection' - Indicates if the DB instance has deletion protection enabled. The
-- database can\'t be deleted when deletion protection is enabled. For more
-- information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html Deleting a DB Instance>.
--
-- 'automaticRestartTime', 'dbInstance_automaticRestartTime' - The time when a stopped DB instance is restarted automatically.
--
-- 'storageEncrypted', 'dbInstance_storageEncrypted' - Specifies whether the DB instance is encrypted.
--
-- 'dbClusterIdentifier', 'dbInstance_dbClusterIdentifier' - If the DB instance is a member of a DB cluster, contains the name of the
-- DB cluster that the DB instance is a member of.
--
-- 'publiclyAccessible', 'dbInstance_publiclyAccessible' - Specifies the accessibility options for the DB instance.
--
-- When the DB instance is publicly accessible, its DNS endpoint resolves
-- to the private IP address from within the DB instance\'s VPC, and to the
-- public IP address from outside of the DB instance\'s VPC. Access to the
-- DB instance is ultimately controlled by the security group it uses, and
-- that public access is not permitted if the security group assigned to
-- the DB instance 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.
--
-- For more information, see CreateDBInstance.
--
-- 'autoMinorVersionUpgrade', 'dbInstance_autoMinorVersionUpgrade' - A value that indicates that minor version patches are applied
-- automatically.
--
-- 'dbInstanceArn', 'dbInstance_dbInstanceArn' - The Amazon Resource Name (ARN) for the DB instance.
--
-- 'activityStreamKinesisStreamName', 'dbInstance_activityStreamKinesisStreamName' - The name of the Amazon Kinesis data stream used for the database
-- activity stream.
--
-- 'activityStreamEngineNativeAuditFieldsIncluded', 'dbInstance_activityStreamEngineNativeAuditFieldsIncluded' - Indicates whether engine-native audit fields are included in the
-- database activity stream.
--
-- 'masterUsername', 'dbInstance_masterUsername' - Contains the master username for the DB instance.
--
-- 'readReplicaDBInstanceIdentifiers', 'dbInstance_readReplicaDBInstanceIdentifiers' - Contains one or more identifiers of the read replicas associated with
-- this DB instance.
--
-- 'iAMDatabaseAuthenticationEnabled', 'dbInstance_iAMDatabaseAuthenticationEnabled' - True if mapping of Amazon Web Services Identity and Access Management
-- (IAM) accounts to database accounts is enabled, and otherwise false.
--
-- IAM database authentication can be enabled for the following database
-- engines
--
-- -   For MySQL 5.6, minor version 5.6.34 or higher
--
-- -   For MySQL 5.7, minor version 5.7.16 or higher
--
-- -   Aurora 5.6 or higher. To enable IAM database authentication for
--     Aurora, see DBCluster Type.
--
-- 'monitoringRoleArn', 'dbInstance_monitoringRoleArn' - The ARN for the IAM role that permits RDS to send Enhanced Monitoring
-- metrics to Amazon CloudWatch Logs.
--
-- 'iops', 'dbInstance_iops' - Specifies the Provisioned IOPS (I\/O operations per second) value.
--
-- 'instanceCreateTime', 'dbInstance_instanceCreateTime' - Provides the date and time the DB instance was created.
--
-- 'tagList', 'dbInstance_tagList' - Undocumented member.
--
-- 'readReplicaSourceDBInstanceIdentifier', 'dbInstance_readReplicaSourceDBInstanceIdentifier' - Contains the identifier of the source DB instance if this DB instance is
-- a read replica.
--
-- 'replicaMode', 'dbInstance_replicaMode' - The open mode of an Oracle read replica. The default is
-- @open-read-only@. 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 attribute is only supported in RDS for Oracle.
--
-- 'monitoringInterval', 'dbInstance_monitoringInterval' - The interval, in seconds, between points when Enhanced Monitoring
-- metrics are collected for the DB instance.
--
-- 'engine', 'dbInstance_engine' - The name of the database engine to be used for this DB instance.
--
-- 'processorFeatures', 'dbInstance_processorFeatures' - The number of CPU cores and the number of threads per core for the DB
-- instance class of the DB instance.
--
-- 'latestRestorableTime', 'dbInstance_latestRestorableTime' - Specifies the latest time to which a database can be restored with
-- point-in-time restore.
--
-- 'dbInstanceClass', 'dbInstance_dbInstanceClass' - Contains the name of the compute and memory capacity class of the DB
-- instance.
--
-- 'promotionTier', 'dbInstance_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/.
--
-- 'awsBackupRecoveryPointArn', 'dbInstance_awsBackupRecoveryPointArn' - The Amazon Resource Name (ARN) of the recovery point in Amazon Web
-- Services Backup.
--
-- 'licenseModel', 'dbInstance_licenseModel' - License model information for this DB instance.
--
-- 'preferredMaintenanceWindow', 'dbInstance_preferredMaintenanceWindow' - Specifies the weekly time range during which system maintenance can
-- occur, in Universal Coordinated Time (UTC).
--
-- 'performanceInsightsRetentionPeriod', 'dbInstance_performanceInsightsRetentionPeriod' - The amount of time, in days, to retain Performance Insights data. Valid
-- values are 7 or 731 (2 years).
--
-- 'cACertificateIdentifier', 'dbInstance_cACertificateIdentifier' - The identifier of the CA certificate for this DB instance.
--
-- 'dbInstanceIdentifier', 'dbInstance_dbInstanceIdentifier' - Contains a user-supplied database identifier. This identifier is the
-- unique key that identifies a DB instance.
--
-- 'characterSetName', 'dbInstance_characterSetName' - If present, specifies the name of the character set that this instance
-- is associated with.
--
-- 'maxAllocatedStorage', 'dbInstance_maxAllocatedStorage' - The upper limit in gibibytes (GiB) to which Amazon RDS can automatically
-- scale the storage of the DB instance.
--
-- 'customerOwnedIpEnabled', 'dbInstance_customerOwnedIpEnabled' - Specifies whether a customer-owned IP address (CoIP) is enabled 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/outposts-networking-components.html#ip-addressing Customer-owned IP addresses>
-- in the /Amazon Web Services Outposts User Guide/.
--
-- 'kmsKeyId', 'dbInstance_kmsKeyId' - If @StorageEncrypted@ is true, the Amazon Web Services KMS key
-- identifier for the encrypted DB instance.
--
-- The Amazon Web Services KMS key identifier is the key ARN, key ID, alias
-- ARN, or alias name for the Amazon Web Services KMS customer master key
-- (CMK).
--
-- 'preferredBackupWindow', 'dbInstance_preferredBackupWindow' - Specifies the daily time range during which automated backups are
-- created if automated backups are enabled, as determined by the
-- @BackupRetentionPeriod@.
--
-- 'associatedRoles', 'dbInstance_associatedRoles' - The Amazon Web Services Identity and Access Management (IAM) roles
-- associated with the DB instance.
--
-- 'availabilityZone', 'dbInstance_availabilityZone' - Specifies the name of the Availability Zone the DB instance is located
-- in.
--
-- 'vpcSecurityGroups', 'dbInstance_vpcSecurityGroups' - Provides a list of VPC security group elements that the DB instance
-- belongs to.
--
-- 'backupRetentionPeriod', 'dbInstance_backupRetentionPeriod' - Specifies the number of days for which automatic DB snapshots are
-- retained.
--
-- 'ncharCharacterSetName', 'dbInstance_ncharCharacterSetName' - The name of the NCHAR character set for the Oracle DB instance. This
-- character set specifies the Unicode encoding for data stored in table
-- columns of type NCHAR, NCLOB, or NVARCHAR2.
--
-- 'performanceInsightsKMSKeyId', 'dbInstance_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 Amazon Web Services KMS customer master key
-- (CMK).
--
-- 'dbSubnetGroup', 'dbInstance_dbSubnetGroup' - Specifies information on the subnet group associated with the DB
-- instance, including the name, description, and subnets in the subnet
-- group.
--
-- 'activityStreamMode', 'dbInstance_activityStreamMode' - The mode of the database activity stream. Database events such as a
-- change or access generate an activity stream event. RDS for Oracle
-- always handles these events asynchronously.
--
-- 'multiAZ', 'dbInstance_multiAZ' - Specifies if the DB instance is a Multi-AZ deployment.
--
-- 'listenerEndpoint', 'dbInstance_listenerEndpoint' - Specifies the listener connection endpoint for SQL Server Always On.
--
-- 'optionGroupMemberships', 'dbInstance_optionGroupMemberships' - Provides the list of option group memberships for this DB instance.
--
-- 'enabledCloudwatchLogsExports', 'dbInstance_enabledCloudwatchLogsExports' - A list of log types that this DB instance is configured to export to
-- CloudWatch Logs.
--
-- Log types vary by DB engine. For information about the log types for
-- each DB engine, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html Amazon RDS Database Log Files>
-- in the /Amazon RDS User Guide./
--
-- 'enhancedMonitoringResourceArn', 'dbInstance_enhancedMonitoringResourceArn' - The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream
-- that receives the Enhanced Monitoring metrics data for the DB instance.
--
-- 'secondaryAvailabilityZone', 'dbInstance_secondaryAvailabilityZone' - If present, specifies the name of the secondary Availability Zone for a
-- DB instance with multi-AZ support.
--
-- 'activityStreamStatus', 'dbInstance_activityStreamStatus' - The status of the database activity stream.
--
-- 'performanceInsightsEnabled', 'dbInstance_performanceInsightsEnabled' - True if Performance Insights is enabled for the DB instance, and
-- otherwise false.
--
-- 'allocatedStorage', 'dbInstance_allocatedStorage' - Specifies the allocated storage size specified in gibibytes (GiB).
--
-- 'dbiResourceId', 'dbInstance_dbiResourceId' - The Amazon Web Services Region-unique, immutable identifier for the DB
-- instance. This identifier is found in Amazon Web Services CloudTrail log
-- entries whenever the Amazon Web Services KMS customer master key (CMK)
-- for the DB instance is accessed.
--
-- 'dbParameterGroups', 'dbInstance_dbParameterGroups' - Provides the list of DB parameter groups applied to this DB instance.
--
-- 'copyTagsToSnapshot', 'dbInstance_copyTagsToSnapshot' - Specifies whether tags are copied from the DB instance to snapshots of
-- the DB instance.
--
-- __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 @DBCluster@.
--
-- 'timezone', 'dbInstance_timezone' - The time zone of the DB instance. In most cases, the @Timezone@ element
-- is empty. @Timezone@ content appears only for Microsoft SQL Server DB
-- instances that were created with a time zone specified.
--
-- 'tdeCredentialArn', 'dbInstance_tdeCredentialArn' - The ARN from the key store with which the instance is associated for TDE
-- encryption.
--
-- 'dbInstanceAutomatedBackupsReplications', 'dbInstance_dbInstanceAutomatedBackupsReplications' - The list of replicated automated backups associated with the DB
-- instance.
--
-- 'endpoint', 'dbInstance_endpoint' - Specifies the connection endpoint.
--
-- The endpoint might not be shown for instances whose status is
-- @creating@.
--
-- 'dbInstanceStatus', 'dbInstance_dbInstanceStatus' - Specifies the current state of this database.
--
-- For information about DB instance statuses, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status Viewing DB instance status>
-- in the /Amazon RDS User Guide./
--
-- 'dbInstancePort', 'dbInstance_dbInstancePort' - Specifies the port that the DB instance listens on. If the DB instance
-- is part of a DB cluster, this can be a different port than the DB
-- cluster port.
--
-- 'activityStreamKmsKeyId', 'dbInstance_activityStreamKmsKeyId' - The Amazon Web Services KMS key identifier used for encrypting messages
-- in the database activity stream. The Amazon Web Services KMS key
-- identifier is the key ARN, key ID, alias ARN, or alias name for the
-- Amazon Web Services KMS customer master key (CMK).
--
-- 'pendingModifiedValues', 'dbInstance_pendingModifiedValues' - A value that specifies that changes to the DB instance are pending. This
-- element is only included when changes are pending. Specific changes are
-- identified by subelements.
--
-- 'readReplicaDBClusterIdentifiers', 'dbInstance_readReplicaDBClusterIdentifiers' - Contains one or more identifiers of Aurora DB clusters to which the RDS
-- DB instance is replicated as a read replica. For example, when you
-- create an Aurora read replica of an RDS MySQL DB instance, the Aurora
-- MySQL DB cluster for the Aurora read replica is shown. This output does
-- not contain information about cross region Aurora read replicas.
--
-- Currently, each RDS DB instance can have only one Aurora read replica.
--
-- 'storageType', 'dbInstance_storageType' - Specifies the storage type associated with DB instance.
--
-- 'statusInfos', 'dbInstance_statusInfos' - The status of a read replica. If the instance isn\'t a read replica,
-- this is blank.
--
-- 'domainMemberships', 'dbInstance_domainMemberships' - The Active Directory Domain membership records associated with the DB
-- instance.
--
-- 'dbName', 'dbInstance_dbName' - The meaning of this parameter differs according to the database engine
-- you use.
--
-- __MySQL, MariaDB, SQL Server, PostgreSQL__
--
-- Contains the name of the initial database of this instance that was
-- provided at create time, if one was specified when the DB instance was
-- created. This same name is returned for the life of the DB instance.
--
-- Type: String
--
-- __Oracle__
--
-- Contains the Oracle System ID (SID) of the created DB instance. Not
-- shown when the returned parameters do not apply to an Oracle DB
-- instance.
newDBInstance ::
  DBInstance
newDBInstance :: DBInstance
newDBInstance =
  DBInstance' :: Maybe Text
-> Maybe [DBSecurityGroupMembership]
-> Maybe Bool
-> Maybe ISO8601
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe [Text]
-> Maybe Bool
-> Maybe Text
-> Maybe Int
-> Maybe ISO8601
-> Maybe [Tag]
-> Maybe Text
-> Maybe ReplicaMode
-> Maybe Int
-> Maybe Text
-> Maybe [ProcessorFeature]
-> Maybe ISO8601
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe [DBInstanceRole]
-> Maybe Text
-> Maybe [VpcSecurityGroupMembership]
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe DBSubnetGroup
-> Maybe ActivityStreamMode
-> Maybe Bool
-> Maybe Endpoint
-> Maybe [OptionGroupMembership]
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe ActivityStreamStatus
-> Maybe Bool
-> Maybe Int
-> Maybe Text
-> Maybe [DBParameterGroupStatus]
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe [DBInstanceAutomatedBackupsReplication]
-> Maybe Endpoint
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe PendingModifiedValues
-> Maybe [Text]
-> Maybe Text
-> Maybe [DBInstanceStatusInfo]
-> Maybe [DomainMembership]
-> Maybe Text
-> DBInstance
DBInstance'
    { $sel:engineVersion:DBInstance' :: Maybe Text
engineVersion = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:dbSecurityGroups:DBInstance' :: Maybe [DBSecurityGroupMembership]
dbSecurityGroups = Maybe [DBSecurityGroupMembership]
forall a. Maybe a
Prelude.Nothing,
      $sel:deletionProtection:DBInstance' :: Maybe Bool
deletionProtection = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:automaticRestartTime:DBInstance' :: Maybe ISO8601
automaticRestartTime = Maybe ISO8601
forall a. Maybe a
Prelude.Nothing,
      $sel:storageEncrypted:DBInstance' :: Maybe Bool
storageEncrypted = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:dbClusterIdentifier:DBInstance' :: Maybe Text
dbClusterIdentifier = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:publiclyAccessible:DBInstance' :: Maybe Bool
publiclyAccessible = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:autoMinorVersionUpgrade:DBInstance' :: Maybe Bool
autoMinorVersionUpgrade = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:dbInstanceArn:DBInstance' :: Maybe Text
dbInstanceArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:activityStreamKinesisStreamName:DBInstance' :: Maybe Text
activityStreamKinesisStreamName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:activityStreamEngineNativeAuditFieldsIncluded:DBInstance' :: Maybe Bool
activityStreamEngineNativeAuditFieldsIncluded =
        Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:masterUsername:DBInstance' :: Maybe Text
masterUsername = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:readReplicaDBInstanceIdentifiers:DBInstance' :: Maybe [Text]
readReplicaDBInstanceIdentifiers = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:iAMDatabaseAuthenticationEnabled:DBInstance' :: Maybe Bool
iAMDatabaseAuthenticationEnabled = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:monitoringRoleArn:DBInstance' :: Maybe Text
monitoringRoleArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:iops:DBInstance' :: Maybe Int
iops = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:instanceCreateTime:DBInstance' :: Maybe ISO8601
instanceCreateTime = Maybe ISO8601
forall a. Maybe a
Prelude.Nothing,
      $sel:tagList:DBInstance' :: Maybe [Tag]
tagList = Maybe [Tag]
forall a. Maybe a
Prelude.Nothing,
      $sel:readReplicaSourceDBInstanceIdentifier:DBInstance' :: Maybe Text
readReplicaSourceDBInstanceIdentifier =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:replicaMode:DBInstance' :: Maybe ReplicaMode
replicaMode = Maybe ReplicaMode
forall a. Maybe a
Prelude.Nothing,
      $sel:monitoringInterval:DBInstance' :: Maybe Int
monitoringInterval = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:engine:DBInstance' :: Maybe Text
engine = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:processorFeatures:DBInstance' :: Maybe [ProcessorFeature]
processorFeatures = Maybe [ProcessorFeature]
forall a. Maybe a
Prelude.Nothing,
      $sel:latestRestorableTime:DBInstance' :: Maybe ISO8601
latestRestorableTime = Maybe ISO8601
forall a. Maybe a
Prelude.Nothing,
      $sel:dbInstanceClass:DBInstance' :: Maybe Text
dbInstanceClass = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:promotionTier:DBInstance' :: Maybe Int
promotionTier = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:awsBackupRecoveryPointArn:DBInstance' :: Maybe Text
awsBackupRecoveryPointArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:licenseModel:DBInstance' :: Maybe Text
licenseModel = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:preferredMaintenanceWindow:DBInstance' :: Maybe Text
preferredMaintenanceWindow = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:performanceInsightsRetentionPeriod:DBInstance' :: Maybe Int
performanceInsightsRetentionPeriod = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:cACertificateIdentifier:DBInstance' :: Maybe Text
cACertificateIdentifier = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:dbInstanceIdentifier:DBInstance' :: Maybe Text
dbInstanceIdentifier = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:characterSetName:DBInstance' :: Maybe Text
characterSetName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:maxAllocatedStorage:DBInstance' :: Maybe Int
maxAllocatedStorage = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:customerOwnedIpEnabled:DBInstance' :: Maybe Bool
customerOwnedIpEnabled = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:kmsKeyId:DBInstance' :: Maybe Text
kmsKeyId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:preferredBackupWindow:DBInstance' :: Maybe Text
preferredBackupWindow = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:associatedRoles:DBInstance' :: Maybe [DBInstanceRole]
associatedRoles = Maybe [DBInstanceRole]
forall a. Maybe a
Prelude.Nothing,
      $sel:availabilityZone:DBInstance' :: Maybe Text
availabilityZone = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:vpcSecurityGroups:DBInstance' :: Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups = Maybe [VpcSecurityGroupMembership]
forall a. Maybe a
Prelude.Nothing,
      $sel:backupRetentionPeriod:DBInstance' :: Maybe Int
backupRetentionPeriod = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:ncharCharacterSetName:DBInstance' :: Maybe Text
ncharCharacterSetName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:performanceInsightsKMSKeyId:DBInstance' :: Maybe Text
performanceInsightsKMSKeyId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:dbSubnetGroup:DBInstance' :: Maybe DBSubnetGroup
dbSubnetGroup = Maybe DBSubnetGroup
forall a. Maybe a
Prelude.Nothing,
      $sel:activityStreamMode:DBInstance' :: Maybe ActivityStreamMode
activityStreamMode = Maybe ActivityStreamMode
forall a. Maybe a
Prelude.Nothing,
      $sel:multiAZ:DBInstance' :: Maybe Bool
multiAZ = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:listenerEndpoint:DBInstance' :: Maybe Endpoint
listenerEndpoint = Maybe Endpoint
forall a. Maybe a
Prelude.Nothing,
      $sel:optionGroupMemberships:DBInstance' :: Maybe [OptionGroupMembership]
optionGroupMemberships = Maybe [OptionGroupMembership]
forall a. Maybe a
Prelude.Nothing,
      $sel:enabledCloudwatchLogsExports:DBInstance' :: Maybe [Text]
enabledCloudwatchLogsExports = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:enhancedMonitoringResourceArn:DBInstance' :: Maybe Text
enhancedMonitoringResourceArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:secondaryAvailabilityZone:DBInstance' :: Maybe Text
secondaryAvailabilityZone = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:activityStreamStatus:DBInstance' :: Maybe ActivityStreamStatus
activityStreamStatus = Maybe ActivityStreamStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:performanceInsightsEnabled:DBInstance' :: Maybe Bool
performanceInsightsEnabled = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:allocatedStorage:DBInstance' :: Maybe Int
allocatedStorage = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:dbiResourceId:DBInstance' :: Maybe Text
dbiResourceId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:dbParameterGroups:DBInstance' :: Maybe [DBParameterGroupStatus]
dbParameterGroups = Maybe [DBParameterGroupStatus]
forall a. Maybe a
Prelude.Nothing,
      $sel:copyTagsToSnapshot:DBInstance' :: Maybe Bool
copyTagsToSnapshot = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:timezone:DBInstance' :: Maybe Text
timezone = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:tdeCredentialArn:DBInstance' :: Maybe Text
tdeCredentialArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:dbInstanceAutomatedBackupsReplications:DBInstance' :: Maybe [DBInstanceAutomatedBackupsReplication]
dbInstanceAutomatedBackupsReplications =
        Maybe [DBInstanceAutomatedBackupsReplication]
forall a. Maybe a
Prelude.Nothing,
      $sel:endpoint:DBInstance' :: Maybe Endpoint
endpoint = Maybe Endpoint
forall a. Maybe a
Prelude.Nothing,
      $sel:dbInstanceStatus:DBInstance' :: Maybe Text
dbInstanceStatus = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:dbInstancePort:DBInstance' :: Maybe Int
dbInstancePort = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:activityStreamKmsKeyId:DBInstance' :: Maybe Text
activityStreamKmsKeyId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:pendingModifiedValues:DBInstance' :: Maybe PendingModifiedValues
pendingModifiedValues = Maybe PendingModifiedValues
forall a. Maybe a
Prelude.Nothing,
      $sel:readReplicaDBClusterIdentifiers:DBInstance' :: Maybe [Text]
readReplicaDBClusterIdentifiers = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:storageType:DBInstance' :: Maybe Text
storageType = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:statusInfos:DBInstance' :: Maybe [DBInstanceStatusInfo]
statusInfos = Maybe [DBInstanceStatusInfo]
forall a. Maybe a
Prelude.Nothing,
      $sel:domainMemberships:DBInstance' :: Maybe [DomainMembership]
domainMemberships = Maybe [DomainMembership]
forall a. Maybe a
Prelude.Nothing,
      $sel:dbName:DBInstance' :: Maybe Text
dbName = Maybe Text
forall a. Maybe a
Prelude.Nothing
    }

-- | Indicates the database engine version.
dbInstance_engineVersion :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_engineVersion :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_engineVersion = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
engineVersion :: Maybe Text
$sel:engineVersion:DBInstance' :: DBInstance -> Maybe Text
engineVersion} -> Maybe Text
engineVersion) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:engineVersion:DBInstance' :: Maybe Text
engineVersion = Maybe Text
a} :: DBInstance)

-- | A list of DB security group elements containing @DBSecurityGroup.Name@
-- and @DBSecurityGroup.Status@ subelements.
dbInstance_dbSecurityGroups :: Lens.Lens' DBInstance (Prelude.Maybe [DBSecurityGroupMembership])
dbInstance_dbSecurityGroups :: (Maybe [DBSecurityGroupMembership]
 -> f (Maybe [DBSecurityGroupMembership]))
-> DBInstance -> f DBInstance
dbInstance_dbSecurityGroups = (DBInstance -> Maybe [DBSecurityGroupMembership])
-> (DBInstance -> Maybe [DBSecurityGroupMembership] -> DBInstance)
-> Lens
     DBInstance
     DBInstance
     (Maybe [DBSecurityGroupMembership])
     (Maybe [DBSecurityGroupMembership])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe [DBSecurityGroupMembership]
dbSecurityGroups :: Maybe [DBSecurityGroupMembership]
$sel:dbSecurityGroups:DBInstance' :: DBInstance -> Maybe [DBSecurityGroupMembership]
dbSecurityGroups} -> Maybe [DBSecurityGroupMembership]
dbSecurityGroups) (\s :: DBInstance
s@DBInstance' {} Maybe [DBSecurityGroupMembership]
a -> DBInstance
s {$sel:dbSecurityGroups:DBInstance' :: Maybe [DBSecurityGroupMembership]
dbSecurityGroups = Maybe [DBSecurityGroupMembership]
a} :: DBInstance) ((Maybe [DBSecurityGroupMembership]
  -> f (Maybe [DBSecurityGroupMembership]))
 -> DBInstance -> f DBInstance)
-> ((Maybe [DBSecurityGroupMembership]
     -> f (Maybe [DBSecurityGroupMembership]))
    -> Maybe [DBSecurityGroupMembership]
    -> f (Maybe [DBSecurityGroupMembership]))
-> (Maybe [DBSecurityGroupMembership]
    -> f (Maybe [DBSecurityGroupMembership]))
-> DBInstance
-> f DBInstance
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [DBSecurityGroupMembership]
  [DBSecurityGroupMembership]
  [DBSecurityGroupMembership]
  [DBSecurityGroupMembership]
-> Iso
     (Maybe [DBSecurityGroupMembership])
     (Maybe [DBSecurityGroupMembership])
     (Maybe [DBSecurityGroupMembership])
     (Maybe [DBSecurityGroupMembership])
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 AnIso
  [DBSecurityGroupMembership]
  [DBSecurityGroupMembership]
  [DBSecurityGroupMembership]
  [DBSecurityGroupMembership]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Indicates if the DB instance has deletion protection enabled. The
-- database can\'t be deleted when deletion protection is enabled. For more
-- information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html Deleting a DB Instance>.
dbInstance_deletionProtection :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)
dbInstance_deletionProtection :: (Maybe Bool -> f (Maybe Bool)) -> DBInstance -> f DBInstance
dbInstance_deletionProtection = (DBInstance -> Maybe Bool)
-> (DBInstance -> Maybe Bool -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Bool
deletionProtection :: Maybe Bool
$sel:deletionProtection:DBInstance' :: DBInstance -> Maybe Bool
deletionProtection} -> Maybe Bool
deletionProtection) (\s :: DBInstance
s@DBInstance' {} Maybe Bool
a -> DBInstance
s {$sel:deletionProtection:DBInstance' :: Maybe Bool
deletionProtection = Maybe Bool
a} :: DBInstance)

-- | The time when a stopped DB instance is restarted automatically.
dbInstance_automaticRestartTime :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.UTCTime)
dbInstance_automaticRestartTime :: (Maybe UTCTime -> f (Maybe UTCTime)) -> DBInstance -> f DBInstance
dbInstance_automaticRestartTime = (DBInstance -> Maybe ISO8601)
-> (DBInstance -> Maybe ISO8601 -> DBInstance)
-> Lens DBInstance DBInstance (Maybe ISO8601) (Maybe ISO8601)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe ISO8601
automaticRestartTime :: Maybe ISO8601
$sel:automaticRestartTime:DBInstance' :: DBInstance -> Maybe ISO8601
automaticRestartTime} -> Maybe ISO8601
automaticRestartTime) (\s :: DBInstance
s@DBInstance' {} Maybe ISO8601
a -> DBInstance
s {$sel:automaticRestartTime:DBInstance' :: Maybe ISO8601
automaticRestartTime = Maybe ISO8601
a} :: DBInstance) ((Maybe ISO8601 -> f (Maybe ISO8601))
 -> DBInstance -> f DBInstance)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe ISO8601 -> f (Maybe ISO8601))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DBInstance
-> f DBInstance
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso ISO8601 ISO8601 UTCTime UTCTime
-> Iso
     (Maybe ISO8601) (Maybe ISO8601) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso ISO8601 ISO8601 UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Specifies whether the DB instance is encrypted.
dbInstance_storageEncrypted :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)
dbInstance_storageEncrypted :: (Maybe Bool -> f (Maybe Bool)) -> DBInstance -> f DBInstance
dbInstance_storageEncrypted = (DBInstance -> Maybe Bool)
-> (DBInstance -> Maybe Bool -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Bool
storageEncrypted :: Maybe Bool
$sel:storageEncrypted:DBInstance' :: DBInstance -> Maybe Bool
storageEncrypted} -> Maybe Bool
storageEncrypted) (\s :: DBInstance
s@DBInstance' {} Maybe Bool
a -> DBInstance
s {$sel:storageEncrypted:DBInstance' :: Maybe Bool
storageEncrypted = Maybe Bool
a} :: DBInstance)

-- | If the DB instance is a member of a DB cluster, contains the name of the
-- DB cluster that the DB instance is a member of.
dbInstance_dbClusterIdentifier :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_dbClusterIdentifier :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_dbClusterIdentifier = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
dbClusterIdentifier :: Maybe Text
$sel:dbClusterIdentifier:DBInstance' :: DBInstance -> Maybe Text
dbClusterIdentifier} -> Maybe Text
dbClusterIdentifier) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:dbClusterIdentifier:DBInstance' :: Maybe Text
dbClusterIdentifier = Maybe Text
a} :: DBInstance)

-- | Specifies the accessibility options for the DB instance.
--
-- When the DB instance is publicly accessible, its DNS endpoint resolves
-- to the private IP address from within the DB instance\'s VPC, and to the
-- public IP address from outside of the DB instance\'s VPC. Access to the
-- DB instance is ultimately controlled by the security group it uses, and
-- that public access is not permitted if the security group assigned to
-- the DB instance 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.
--
-- For more information, see CreateDBInstance.
dbInstance_publiclyAccessible :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)
dbInstance_publiclyAccessible :: (Maybe Bool -> f (Maybe Bool)) -> DBInstance -> f DBInstance
dbInstance_publiclyAccessible = (DBInstance -> Maybe Bool)
-> (DBInstance -> Maybe Bool -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Bool
publiclyAccessible :: Maybe Bool
$sel:publiclyAccessible:DBInstance' :: DBInstance -> Maybe Bool
publiclyAccessible} -> Maybe Bool
publiclyAccessible) (\s :: DBInstance
s@DBInstance' {} Maybe Bool
a -> DBInstance
s {$sel:publiclyAccessible:DBInstance' :: Maybe Bool
publiclyAccessible = Maybe Bool
a} :: DBInstance)

-- | A value that indicates that minor version patches are applied
-- automatically.
dbInstance_autoMinorVersionUpgrade :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)
dbInstance_autoMinorVersionUpgrade :: (Maybe Bool -> f (Maybe Bool)) -> DBInstance -> f DBInstance
dbInstance_autoMinorVersionUpgrade = (DBInstance -> Maybe Bool)
-> (DBInstance -> Maybe Bool -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Bool
autoMinorVersionUpgrade :: Maybe Bool
$sel:autoMinorVersionUpgrade:DBInstance' :: DBInstance -> Maybe Bool
autoMinorVersionUpgrade} -> Maybe Bool
autoMinorVersionUpgrade) (\s :: DBInstance
s@DBInstance' {} Maybe Bool
a -> DBInstance
s {$sel:autoMinorVersionUpgrade:DBInstance' :: Maybe Bool
autoMinorVersionUpgrade = Maybe Bool
a} :: DBInstance)

-- | The Amazon Resource Name (ARN) for the DB instance.
dbInstance_dbInstanceArn :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_dbInstanceArn :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_dbInstanceArn = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
dbInstanceArn :: Maybe Text
$sel:dbInstanceArn:DBInstance' :: DBInstance -> Maybe Text
dbInstanceArn} -> Maybe Text
dbInstanceArn) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:dbInstanceArn:DBInstance' :: Maybe Text
dbInstanceArn = Maybe Text
a} :: DBInstance)

-- | The name of the Amazon Kinesis data stream used for the database
-- activity stream.
dbInstance_activityStreamKinesisStreamName :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_activityStreamKinesisStreamName :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_activityStreamKinesisStreamName = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
activityStreamKinesisStreamName :: Maybe Text
$sel:activityStreamKinesisStreamName:DBInstance' :: DBInstance -> Maybe Text
activityStreamKinesisStreamName} -> Maybe Text
activityStreamKinesisStreamName) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:activityStreamKinesisStreamName:DBInstance' :: Maybe Text
activityStreamKinesisStreamName = Maybe Text
a} :: DBInstance)

-- | Indicates whether engine-native audit fields are included in the
-- database activity stream.
dbInstance_activityStreamEngineNativeAuditFieldsIncluded :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)
dbInstance_activityStreamEngineNativeAuditFieldsIncluded :: (Maybe Bool -> f (Maybe Bool)) -> DBInstance -> f DBInstance
dbInstance_activityStreamEngineNativeAuditFieldsIncluded = (DBInstance -> Maybe Bool)
-> (DBInstance -> Maybe Bool -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Bool
activityStreamEngineNativeAuditFieldsIncluded :: Maybe Bool
$sel:activityStreamEngineNativeAuditFieldsIncluded:DBInstance' :: DBInstance -> Maybe Bool
activityStreamEngineNativeAuditFieldsIncluded} -> Maybe Bool
activityStreamEngineNativeAuditFieldsIncluded) (\s :: DBInstance
s@DBInstance' {} Maybe Bool
a -> DBInstance
s {$sel:activityStreamEngineNativeAuditFieldsIncluded:DBInstance' :: Maybe Bool
activityStreamEngineNativeAuditFieldsIncluded = Maybe Bool
a} :: DBInstance)

-- | Contains the master username for the DB instance.
dbInstance_masterUsername :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_masterUsername :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_masterUsername = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
masterUsername :: Maybe Text
$sel:masterUsername:DBInstance' :: DBInstance -> Maybe Text
masterUsername} -> Maybe Text
masterUsername) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:masterUsername:DBInstance' :: Maybe Text
masterUsername = Maybe Text
a} :: DBInstance)

-- | Contains one or more identifiers of the read replicas associated with
-- this DB instance.
dbInstance_readReplicaDBInstanceIdentifiers :: Lens.Lens' DBInstance (Prelude.Maybe [Prelude.Text])
dbInstance_readReplicaDBInstanceIdentifiers :: (Maybe [Text] -> f (Maybe [Text])) -> DBInstance -> f DBInstance
dbInstance_readReplicaDBInstanceIdentifiers = (DBInstance -> Maybe [Text])
-> (DBInstance -> Maybe [Text] -> DBInstance)
-> Lens DBInstance DBInstance (Maybe [Text]) (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe [Text]
readReplicaDBInstanceIdentifiers :: Maybe [Text]
$sel:readReplicaDBInstanceIdentifiers:DBInstance' :: DBInstance -> Maybe [Text]
readReplicaDBInstanceIdentifiers} -> Maybe [Text]
readReplicaDBInstanceIdentifiers) (\s :: DBInstance
s@DBInstance' {} Maybe [Text]
a -> DBInstance
s {$sel:readReplicaDBInstanceIdentifiers:DBInstance' :: Maybe [Text]
readReplicaDBInstanceIdentifiers = Maybe [Text]
a} :: DBInstance) ((Maybe [Text] -> f (Maybe [Text])) -> DBInstance -> f DBInstance)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> DBInstance
-> f DBInstance
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
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 AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | True if mapping of Amazon Web Services Identity and Access Management
-- (IAM) accounts to database accounts is enabled, and otherwise false.
--
-- IAM database authentication can be enabled for the following database
-- engines
--
-- -   For MySQL 5.6, minor version 5.6.34 or higher
--
-- -   For MySQL 5.7, minor version 5.7.16 or higher
--
-- -   Aurora 5.6 or higher. To enable IAM database authentication for
--     Aurora, see DBCluster Type.
dbInstance_iAMDatabaseAuthenticationEnabled :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)
dbInstance_iAMDatabaseAuthenticationEnabled :: (Maybe Bool -> f (Maybe Bool)) -> DBInstance -> f DBInstance
dbInstance_iAMDatabaseAuthenticationEnabled = (DBInstance -> Maybe Bool)
-> (DBInstance -> Maybe Bool -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Bool
iAMDatabaseAuthenticationEnabled :: Maybe Bool
$sel:iAMDatabaseAuthenticationEnabled:DBInstance' :: DBInstance -> Maybe Bool
iAMDatabaseAuthenticationEnabled} -> Maybe Bool
iAMDatabaseAuthenticationEnabled) (\s :: DBInstance
s@DBInstance' {} Maybe Bool
a -> DBInstance
s {$sel:iAMDatabaseAuthenticationEnabled:DBInstance' :: Maybe Bool
iAMDatabaseAuthenticationEnabled = Maybe Bool
a} :: DBInstance)

-- | The ARN for the IAM role that permits RDS to send Enhanced Monitoring
-- metrics to Amazon CloudWatch Logs.
dbInstance_monitoringRoleArn :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_monitoringRoleArn :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_monitoringRoleArn = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
monitoringRoleArn :: Maybe Text
$sel:monitoringRoleArn:DBInstance' :: DBInstance -> Maybe Text
monitoringRoleArn} -> Maybe Text
monitoringRoleArn) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:monitoringRoleArn:DBInstance' :: Maybe Text
monitoringRoleArn = Maybe Text
a} :: DBInstance)

-- | Specifies the Provisioned IOPS (I\/O operations per second) value.
dbInstance_iops :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Int)
dbInstance_iops :: (Maybe Int -> f (Maybe Int)) -> DBInstance -> f DBInstance
dbInstance_iops = (DBInstance -> Maybe Int)
-> (DBInstance -> Maybe Int -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Int
iops :: Maybe Int
$sel:iops:DBInstance' :: DBInstance -> Maybe Int
iops} -> Maybe Int
iops) (\s :: DBInstance
s@DBInstance' {} Maybe Int
a -> DBInstance
s {$sel:iops:DBInstance' :: Maybe Int
iops = Maybe Int
a} :: DBInstance)

-- | Provides the date and time the DB instance was created.
dbInstance_instanceCreateTime :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.UTCTime)
dbInstance_instanceCreateTime :: (Maybe UTCTime -> f (Maybe UTCTime)) -> DBInstance -> f DBInstance
dbInstance_instanceCreateTime = (DBInstance -> Maybe ISO8601)
-> (DBInstance -> Maybe ISO8601 -> DBInstance)
-> Lens DBInstance DBInstance (Maybe ISO8601) (Maybe ISO8601)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe ISO8601
instanceCreateTime :: Maybe ISO8601
$sel:instanceCreateTime:DBInstance' :: DBInstance -> Maybe ISO8601
instanceCreateTime} -> Maybe ISO8601
instanceCreateTime) (\s :: DBInstance
s@DBInstance' {} Maybe ISO8601
a -> DBInstance
s {$sel:instanceCreateTime:DBInstance' :: Maybe ISO8601
instanceCreateTime = Maybe ISO8601
a} :: DBInstance) ((Maybe ISO8601 -> f (Maybe ISO8601))
 -> DBInstance -> f DBInstance)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe ISO8601 -> f (Maybe ISO8601))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DBInstance
-> f DBInstance
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso ISO8601 ISO8601 UTCTime UTCTime
-> Iso
     (Maybe ISO8601) (Maybe ISO8601) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso ISO8601 ISO8601 UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Undocumented member.
dbInstance_tagList :: Lens.Lens' DBInstance (Prelude.Maybe [Tag])
dbInstance_tagList :: (Maybe [Tag] -> f (Maybe [Tag])) -> DBInstance -> f DBInstance
dbInstance_tagList = (DBInstance -> Maybe [Tag])
-> (DBInstance -> Maybe [Tag] -> DBInstance)
-> Lens DBInstance DBInstance (Maybe [Tag]) (Maybe [Tag])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe [Tag]
tagList :: Maybe [Tag]
$sel:tagList:DBInstance' :: DBInstance -> Maybe [Tag]
tagList} -> Maybe [Tag]
tagList) (\s :: DBInstance
s@DBInstance' {} Maybe [Tag]
a -> DBInstance
s {$sel:tagList:DBInstance' :: Maybe [Tag]
tagList = Maybe [Tag]
a} :: DBInstance) ((Maybe [Tag] -> f (Maybe [Tag])) -> DBInstance -> f DBInstance)
-> ((Maybe [Tag] -> f (Maybe [Tag]))
    -> Maybe [Tag] -> f (Maybe [Tag]))
-> (Maybe [Tag] -> f (Maybe [Tag]))
-> DBInstance
-> f DBInstance
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Tag] [Tag] [Tag] [Tag]
-> Iso (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag])
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 AnIso [Tag] [Tag] [Tag] [Tag]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Contains the identifier of the source DB instance if this DB instance is
-- a read replica.
dbInstance_readReplicaSourceDBInstanceIdentifier :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_readReplicaSourceDBInstanceIdentifier :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_readReplicaSourceDBInstanceIdentifier = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
readReplicaSourceDBInstanceIdentifier :: Maybe Text
$sel:readReplicaSourceDBInstanceIdentifier:DBInstance' :: DBInstance -> Maybe Text
readReplicaSourceDBInstanceIdentifier} -> Maybe Text
readReplicaSourceDBInstanceIdentifier) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:readReplicaSourceDBInstanceIdentifier:DBInstance' :: Maybe Text
readReplicaSourceDBInstanceIdentifier = Maybe Text
a} :: DBInstance)

-- | The open mode of an Oracle read replica. The default is
-- @open-read-only@. 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 attribute is only supported in RDS for Oracle.
dbInstance_replicaMode :: Lens.Lens' DBInstance (Prelude.Maybe ReplicaMode)
dbInstance_replicaMode :: (Maybe ReplicaMode -> f (Maybe ReplicaMode))
-> DBInstance -> f DBInstance
dbInstance_replicaMode = (DBInstance -> Maybe ReplicaMode)
-> (DBInstance -> Maybe ReplicaMode -> DBInstance)
-> Lens
     DBInstance DBInstance (Maybe ReplicaMode) (Maybe ReplicaMode)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe ReplicaMode
replicaMode :: Maybe ReplicaMode
$sel:replicaMode:DBInstance' :: DBInstance -> Maybe ReplicaMode
replicaMode} -> Maybe ReplicaMode
replicaMode) (\s :: DBInstance
s@DBInstance' {} Maybe ReplicaMode
a -> DBInstance
s {$sel:replicaMode:DBInstance' :: Maybe ReplicaMode
replicaMode = Maybe ReplicaMode
a} :: DBInstance)

-- | The interval, in seconds, between points when Enhanced Monitoring
-- metrics are collected for the DB instance.
dbInstance_monitoringInterval :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Int)
dbInstance_monitoringInterval :: (Maybe Int -> f (Maybe Int)) -> DBInstance -> f DBInstance
dbInstance_monitoringInterval = (DBInstance -> Maybe Int)
-> (DBInstance -> Maybe Int -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Int
monitoringInterval :: Maybe Int
$sel:monitoringInterval:DBInstance' :: DBInstance -> Maybe Int
monitoringInterval} -> Maybe Int
monitoringInterval) (\s :: DBInstance
s@DBInstance' {} Maybe Int
a -> DBInstance
s {$sel:monitoringInterval:DBInstance' :: Maybe Int
monitoringInterval = Maybe Int
a} :: DBInstance)

-- | The name of the database engine to be used for this DB instance.
dbInstance_engine :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_engine :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_engine = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
engine :: Maybe Text
$sel:engine:DBInstance' :: DBInstance -> Maybe Text
engine} -> Maybe Text
engine) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:engine:DBInstance' :: Maybe Text
engine = Maybe Text
a} :: DBInstance)

-- | The number of CPU cores and the number of threads per core for the DB
-- instance class of the DB instance.
dbInstance_processorFeatures :: Lens.Lens' DBInstance (Prelude.Maybe [ProcessorFeature])
dbInstance_processorFeatures :: (Maybe [ProcessorFeature] -> f (Maybe [ProcessorFeature]))
-> DBInstance -> f DBInstance
dbInstance_processorFeatures = (DBInstance -> Maybe [ProcessorFeature])
-> (DBInstance -> Maybe [ProcessorFeature] -> DBInstance)
-> Lens
     DBInstance
     DBInstance
     (Maybe [ProcessorFeature])
     (Maybe [ProcessorFeature])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe [ProcessorFeature]
processorFeatures :: Maybe [ProcessorFeature]
$sel:processorFeatures:DBInstance' :: DBInstance -> Maybe [ProcessorFeature]
processorFeatures} -> Maybe [ProcessorFeature]
processorFeatures) (\s :: DBInstance
s@DBInstance' {} Maybe [ProcessorFeature]
a -> DBInstance
s {$sel:processorFeatures:DBInstance' :: Maybe [ProcessorFeature]
processorFeatures = Maybe [ProcessorFeature]
a} :: DBInstance) ((Maybe [ProcessorFeature] -> f (Maybe [ProcessorFeature]))
 -> DBInstance -> f DBInstance)
-> ((Maybe [ProcessorFeature] -> f (Maybe [ProcessorFeature]))
    -> Maybe [ProcessorFeature] -> f (Maybe [ProcessorFeature]))
-> (Maybe [ProcessorFeature] -> f (Maybe [ProcessorFeature]))
-> DBInstance
-> f DBInstance
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [ProcessorFeature]
  [ProcessorFeature]
  [ProcessorFeature]
  [ProcessorFeature]
-> Iso
     (Maybe [ProcessorFeature])
     (Maybe [ProcessorFeature])
     (Maybe [ProcessorFeature])
     (Maybe [ProcessorFeature])
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 AnIso
  [ProcessorFeature]
  [ProcessorFeature]
  [ProcessorFeature]
  [ProcessorFeature]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Specifies the latest time to which a database can be restored with
-- point-in-time restore.
dbInstance_latestRestorableTime :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.UTCTime)
dbInstance_latestRestorableTime :: (Maybe UTCTime -> f (Maybe UTCTime)) -> DBInstance -> f DBInstance
dbInstance_latestRestorableTime = (DBInstance -> Maybe ISO8601)
-> (DBInstance -> Maybe ISO8601 -> DBInstance)
-> Lens DBInstance DBInstance (Maybe ISO8601) (Maybe ISO8601)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe ISO8601
latestRestorableTime :: Maybe ISO8601
$sel:latestRestorableTime:DBInstance' :: DBInstance -> Maybe ISO8601
latestRestorableTime} -> Maybe ISO8601
latestRestorableTime) (\s :: DBInstance
s@DBInstance' {} Maybe ISO8601
a -> DBInstance
s {$sel:latestRestorableTime:DBInstance' :: Maybe ISO8601
latestRestorableTime = Maybe ISO8601
a} :: DBInstance) ((Maybe ISO8601 -> f (Maybe ISO8601))
 -> DBInstance -> f DBInstance)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe ISO8601 -> f (Maybe ISO8601))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DBInstance
-> f DBInstance
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso ISO8601 ISO8601 UTCTime UTCTime
-> Iso
     (Maybe ISO8601) (Maybe ISO8601) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso ISO8601 ISO8601 UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Contains the name of the compute and memory capacity class of the DB
-- instance.
dbInstance_dbInstanceClass :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_dbInstanceClass :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_dbInstanceClass = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
dbInstanceClass :: Maybe Text
$sel:dbInstanceClass:DBInstance' :: DBInstance -> Maybe Text
dbInstanceClass} -> Maybe Text
dbInstanceClass) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:dbInstanceClass:DBInstance' :: Maybe Text
dbInstanceClass = Maybe Text
a} :: DBInstance)

-- | 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/.
dbInstance_promotionTier :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Int)
dbInstance_promotionTier :: (Maybe Int -> f (Maybe Int)) -> DBInstance -> f DBInstance
dbInstance_promotionTier = (DBInstance -> Maybe Int)
-> (DBInstance -> Maybe Int -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Int
promotionTier :: Maybe Int
$sel:promotionTier:DBInstance' :: DBInstance -> Maybe Int
promotionTier} -> Maybe Int
promotionTier) (\s :: DBInstance
s@DBInstance' {} Maybe Int
a -> DBInstance
s {$sel:promotionTier:DBInstance' :: Maybe Int
promotionTier = Maybe Int
a} :: DBInstance)

-- | The Amazon Resource Name (ARN) of the recovery point in Amazon Web
-- Services Backup.
dbInstance_awsBackupRecoveryPointArn :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_awsBackupRecoveryPointArn :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_awsBackupRecoveryPointArn = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
awsBackupRecoveryPointArn :: Maybe Text
$sel:awsBackupRecoveryPointArn:DBInstance' :: DBInstance -> Maybe Text
awsBackupRecoveryPointArn} -> Maybe Text
awsBackupRecoveryPointArn) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:awsBackupRecoveryPointArn:DBInstance' :: Maybe Text
awsBackupRecoveryPointArn = Maybe Text
a} :: DBInstance)

-- | License model information for this DB instance.
dbInstance_licenseModel :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_licenseModel :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_licenseModel = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
licenseModel :: Maybe Text
$sel:licenseModel:DBInstance' :: DBInstance -> Maybe Text
licenseModel} -> Maybe Text
licenseModel) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:licenseModel:DBInstance' :: Maybe Text
licenseModel = Maybe Text
a} :: DBInstance)

-- | Specifies the weekly time range during which system maintenance can
-- occur, in Universal Coordinated Time (UTC).
dbInstance_preferredMaintenanceWindow :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_preferredMaintenanceWindow :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_preferredMaintenanceWindow = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
preferredMaintenanceWindow :: Maybe Text
$sel:preferredMaintenanceWindow:DBInstance' :: DBInstance -> Maybe Text
preferredMaintenanceWindow} -> Maybe Text
preferredMaintenanceWindow) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:preferredMaintenanceWindow:DBInstance' :: Maybe Text
preferredMaintenanceWindow = Maybe Text
a} :: DBInstance)

-- | The amount of time, in days, to retain Performance Insights data. Valid
-- values are 7 or 731 (2 years).
dbInstance_performanceInsightsRetentionPeriod :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Int)
dbInstance_performanceInsightsRetentionPeriod :: (Maybe Int -> f (Maybe Int)) -> DBInstance -> f DBInstance
dbInstance_performanceInsightsRetentionPeriod = (DBInstance -> Maybe Int)
-> (DBInstance -> Maybe Int -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Int
performanceInsightsRetentionPeriod :: Maybe Int
$sel:performanceInsightsRetentionPeriod:DBInstance' :: DBInstance -> Maybe Int
performanceInsightsRetentionPeriod} -> Maybe Int
performanceInsightsRetentionPeriod) (\s :: DBInstance
s@DBInstance' {} Maybe Int
a -> DBInstance
s {$sel:performanceInsightsRetentionPeriod:DBInstance' :: Maybe Int
performanceInsightsRetentionPeriod = Maybe Int
a} :: DBInstance)

-- | The identifier of the CA certificate for this DB instance.
dbInstance_cACertificateIdentifier :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_cACertificateIdentifier :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_cACertificateIdentifier = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
cACertificateIdentifier :: Maybe Text
$sel:cACertificateIdentifier:DBInstance' :: DBInstance -> Maybe Text
cACertificateIdentifier} -> Maybe Text
cACertificateIdentifier) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:cACertificateIdentifier:DBInstance' :: Maybe Text
cACertificateIdentifier = Maybe Text
a} :: DBInstance)

-- | Contains a user-supplied database identifier. This identifier is the
-- unique key that identifies a DB instance.
dbInstance_dbInstanceIdentifier :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_dbInstanceIdentifier :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_dbInstanceIdentifier = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
dbInstanceIdentifier :: Maybe Text
$sel:dbInstanceIdentifier:DBInstance' :: DBInstance -> Maybe Text
dbInstanceIdentifier} -> Maybe Text
dbInstanceIdentifier) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:dbInstanceIdentifier:DBInstance' :: Maybe Text
dbInstanceIdentifier = Maybe Text
a} :: DBInstance)

-- | If present, specifies the name of the character set that this instance
-- is associated with.
dbInstance_characterSetName :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_characterSetName :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_characterSetName = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
characterSetName :: Maybe Text
$sel:characterSetName:DBInstance' :: DBInstance -> Maybe Text
characterSetName} -> Maybe Text
characterSetName) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:characterSetName:DBInstance' :: Maybe Text
characterSetName = Maybe Text
a} :: DBInstance)

-- | The upper limit in gibibytes (GiB) to which Amazon RDS can automatically
-- scale the storage of the DB instance.
dbInstance_maxAllocatedStorage :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Int)
dbInstance_maxAllocatedStorage :: (Maybe Int -> f (Maybe Int)) -> DBInstance -> f DBInstance
dbInstance_maxAllocatedStorage = (DBInstance -> Maybe Int)
-> (DBInstance -> Maybe Int -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Int
maxAllocatedStorage :: Maybe Int
$sel:maxAllocatedStorage:DBInstance' :: DBInstance -> Maybe Int
maxAllocatedStorage} -> Maybe Int
maxAllocatedStorage) (\s :: DBInstance
s@DBInstance' {} Maybe Int
a -> DBInstance
s {$sel:maxAllocatedStorage:DBInstance' :: Maybe Int
maxAllocatedStorage = Maybe Int
a} :: DBInstance)

-- | Specifies whether a customer-owned IP address (CoIP) is enabled 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/outposts-networking-components.html#ip-addressing Customer-owned IP addresses>
-- in the /Amazon Web Services Outposts User Guide/.
dbInstance_customerOwnedIpEnabled :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)
dbInstance_customerOwnedIpEnabled :: (Maybe Bool -> f (Maybe Bool)) -> DBInstance -> f DBInstance
dbInstance_customerOwnedIpEnabled = (DBInstance -> Maybe Bool)
-> (DBInstance -> Maybe Bool -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Bool
customerOwnedIpEnabled :: Maybe Bool
$sel:customerOwnedIpEnabled:DBInstance' :: DBInstance -> Maybe Bool
customerOwnedIpEnabled} -> Maybe Bool
customerOwnedIpEnabled) (\s :: DBInstance
s@DBInstance' {} Maybe Bool
a -> DBInstance
s {$sel:customerOwnedIpEnabled:DBInstance' :: Maybe Bool
customerOwnedIpEnabled = Maybe Bool
a} :: DBInstance)

-- | If @StorageEncrypted@ is true, the Amazon Web Services KMS key
-- identifier for the encrypted DB instance.
--
-- The Amazon Web Services KMS key identifier is the key ARN, key ID, alias
-- ARN, or alias name for the Amazon Web Services KMS customer master key
-- (CMK).
dbInstance_kmsKeyId :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_kmsKeyId :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_kmsKeyId = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
kmsKeyId :: Maybe Text
$sel:kmsKeyId:DBInstance' :: DBInstance -> Maybe Text
kmsKeyId} -> Maybe Text
kmsKeyId) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:kmsKeyId:DBInstance' :: Maybe Text
kmsKeyId = Maybe Text
a} :: DBInstance)

-- | Specifies the daily time range during which automated backups are
-- created if automated backups are enabled, as determined by the
-- @BackupRetentionPeriod@.
dbInstance_preferredBackupWindow :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_preferredBackupWindow :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_preferredBackupWindow = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
preferredBackupWindow :: Maybe Text
$sel:preferredBackupWindow:DBInstance' :: DBInstance -> Maybe Text
preferredBackupWindow} -> Maybe Text
preferredBackupWindow) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:preferredBackupWindow:DBInstance' :: Maybe Text
preferredBackupWindow = Maybe Text
a} :: DBInstance)

-- | The Amazon Web Services Identity and Access Management (IAM) roles
-- associated with the DB instance.
dbInstance_associatedRoles :: Lens.Lens' DBInstance (Prelude.Maybe [DBInstanceRole])
dbInstance_associatedRoles :: (Maybe [DBInstanceRole] -> f (Maybe [DBInstanceRole]))
-> DBInstance -> f DBInstance
dbInstance_associatedRoles = (DBInstance -> Maybe [DBInstanceRole])
-> (DBInstance -> Maybe [DBInstanceRole] -> DBInstance)
-> Lens
     DBInstance
     DBInstance
     (Maybe [DBInstanceRole])
     (Maybe [DBInstanceRole])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe [DBInstanceRole]
associatedRoles :: Maybe [DBInstanceRole]
$sel:associatedRoles:DBInstance' :: DBInstance -> Maybe [DBInstanceRole]
associatedRoles} -> Maybe [DBInstanceRole]
associatedRoles) (\s :: DBInstance
s@DBInstance' {} Maybe [DBInstanceRole]
a -> DBInstance
s {$sel:associatedRoles:DBInstance' :: Maybe [DBInstanceRole]
associatedRoles = Maybe [DBInstanceRole]
a} :: DBInstance) ((Maybe [DBInstanceRole] -> f (Maybe [DBInstanceRole]))
 -> DBInstance -> f DBInstance)
-> ((Maybe [DBInstanceRole] -> f (Maybe [DBInstanceRole]))
    -> Maybe [DBInstanceRole] -> f (Maybe [DBInstanceRole]))
-> (Maybe [DBInstanceRole] -> f (Maybe [DBInstanceRole]))
-> DBInstance
-> f DBInstance
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [DBInstanceRole] [DBInstanceRole] [DBInstanceRole] [DBInstanceRole]
-> Iso
     (Maybe [DBInstanceRole])
     (Maybe [DBInstanceRole])
     (Maybe [DBInstanceRole])
     (Maybe [DBInstanceRole])
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 AnIso
  [DBInstanceRole] [DBInstanceRole] [DBInstanceRole] [DBInstanceRole]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Specifies the name of the Availability Zone the DB instance is located
-- in.
dbInstance_availabilityZone :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_availabilityZone :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_availabilityZone = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
availabilityZone :: Maybe Text
$sel:availabilityZone:DBInstance' :: DBInstance -> Maybe Text
availabilityZone} -> Maybe Text
availabilityZone) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:availabilityZone:DBInstance' :: Maybe Text
availabilityZone = Maybe Text
a} :: DBInstance)

-- | Provides a list of VPC security group elements that the DB instance
-- belongs to.
dbInstance_vpcSecurityGroups :: Lens.Lens' DBInstance (Prelude.Maybe [VpcSecurityGroupMembership])
dbInstance_vpcSecurityGroups :: (Maybe [VpcSecurityGroupMembership]
 -> f (Maybe [VpcSecurityGroupMembership]))
-> DBInstance -> f DBInstance
dbInstance_vpcSecurityGroups = (DBInstance -> Maybe [VpcSecurityGroupMembership])
-> (DBInstance -> Maybe [VpcSecurityGroupMembership] -> DBInstance)
-> Lens
     DBInstance
     DBInstance
     (Maybe [VpcSecurityGroupMembership])
     (Maybe [VpcSecurityGroupMembership])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups :: Maybe [VpcSecurityGroupMembership]
$sel:vpcSecurityGroups:DBInstance' :: DBInstance -> Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups} -> Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups) (\s :: DBInstance
s@DBInstance' {} Maybe [VpcSecurityGroupMembership]
a -> DBInstance
s {$sel:vpcSecurityGroups:DBInstance' :: Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups = Maybe [VpcSecurityGroupMembership]
a} :: DBInstance) ((Maybe [VpcSecurityGroupMembership]
  -> f (Maybe [VpcSecurityGroupMembership]))
 -> DBInstance -> f DBInstance)
-> ((Maybe [VpcSecurityGroupMembership]
     -> f (Maybe [VpcSecurityGroupMembership]))
    -> Maybe [VpcSecurityGroupMembership]
    -> f (Maybe [VpcSecurityGroupMembership]))
-> (Maybe [VpcSecurityGroupMembership]
    -> f (Maybe [VpcSecurityGroupMembership]))
-> DBInstance
-> f DBInstance
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [VpcSecurityGroupMembership]
  [VpcSecurityGroupMembership]
  [VpcSecurityGroupMembership]
  [VpcSecurityGroupMembership]
-> Iso
     (Maybe [VpcSecurityGroupMembership])
     (Maybe [VpcSecurityGroupMembership])
     (Maybe [VpcSecurityGroupMembership])
     (Maybe [VpcSecurityGroupMembership])
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 AnIso
  [VpcSecurityGroupMembership]
  [VpcSecurityGroupMembership]
  [VpcSecurityGroupMembership]
  [VpcSecurityGroupMembership]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Specifies the number of days for which automatic DB snapshots are
-- retained.
dbInstance_backupRetentionPeriod :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Int)
dbInstance_backupRetentionPeriod :: (Maybe Int -> f (Maybe Int)) -> DBInstance -> f DBInstance
dbInstance_backupRetentionPeriod = (DBInstance -> Maybe Int)
-> (DBInstance -> Maybe Int -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Int
backupRetentionPeriod :: Maybe Int
$sel:backupRetentionPeriod:DBInstance' :: DBInstance -> Maybe Int
backupRetentionPeriod} -> Maybe Int
backupRetentionPeriod) (\s :: DBInstance
s@DBInstance' {} Maybe Int
a -> DBInstance
s {$sel:backupRetentionPeriod:DBInstance' :: Maybe Int
backupRetentionPeriod = Maybe Int
a} :: DBInstance)

-- | The name of the NCHAR character set for the Oracle DB instance. This
-- character set specifies the Unicode encoding for data stored in table
-- columns of type NCHAR, NCLOB, or NVARCHAR2.
dbInstance_ncharCharacterSetName :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_ncharCharacterSetName :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_ncharCharacterSetName = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
ncharCharacterSetName :: Maybe Text
$sel:ncharCharacterSetName:DBInstance' :: DBInstance -> Maybe Text
ncharCharacterSetName} -> Maybe Text
ncharCharacterSetName) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:ncharCharacterSetName:DBInstance' :: Maybe Text
ncharCharacterSetName = Maybe Text
a} :: DBInstance)

-- | 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 Amazon Web Services KMS customer master key
-- (CMK).
dbInstance_performanceInsightsKMSKeyId :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_performanceInsightsKMSKeyId :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_performanceInsightsKMSKeyId = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
performanceInsightsKMSKeyId :: Maybe Text
$sel:performanceInsightsKMSKeyId:DBInstance' :: DBInstance -> Maybe Text
performanceInsightsKMSKeyId} -> Maybe Text
performanceInsightsKMSKeyId) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:performanceInsightsKMSKeyId:DBInstance' :: Maybe Text
performanceInsightsKMSKeyId = Maybe Text
a} :: DBInstance)

-- | Specifies information on the subnet group associated with the DB
-- instance, including the name, description, and subnets in the subnet
-- group.
dbInstance_dbSubnetGroup :: Lens.Lens' DBInstance (Prelude.Maybe DBSubnetGroup)
dbInstance_dbSubnetGroup :: (Maybe DBSubnetGroup -> f (Maybe DBSubnetGroup))
-> DBInstance -> f DBInstance
dbInstance_dbSubnetGroup = (DBInstance -> Maybe DBSubnetGroup)
-> (DBInstance -> Maybe DBSubnetGroup -> DBInstance)
-> Lens
     DBInstance DBInstance (Maybe DBSubnetGroup) (Maybe DBSubnetGroup)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe DBSubnetGroup
dbSubnetGroup :: Maybe DBSubnetGroup
$sel:dbSubnetGroup:DBInstance' :: DBInstance -> Maybe DBSubnetGroup
dbSubnetGroup} -> Maybe DBSubnetGroup
dbSubnetGroup) (\s :: DBInstance
s@DBInstance' {} Maybe DBSubnetGroup
a -> DBInstance
s {$sel:dbSubnetGroup:DBInstance' :: Maybe DBSubnetGroup
dbSubnetGroup = Maybe DBSubnetGroup
a} :: DBInstance)

-- | The mode of the database activity stream. Database events such as a
-- change or access generate an activity stream event. RDS for Oracle
-- always handles these events asynchronously.
dbInstance_activityStreamMode :: Lens.Lens' DBInstance (Prelude.Maybe ActivityStreamMode)
dbInstance_activityStreamMode :: (Maybe ActivityStreamMode -> f (Maybe ActivityStreamMode))
-> DBInstance -> f DBInstance
dbInstance_activityStreamMode = (DBInstance -> Maybe ActivityStreamMode)
-> (DBInstance -> Maybe ActivityStreamMode -> DBInstance)
-> Lens
     DBInstance
     DBInstance
     (Maybe ActivityStreamMode)
     (Maybe ActivityStreamMode)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe ActivityStreamMode
activityStreamMode :: Maybe ActivityStreamMode
$sel:activityStreamMode:DBInstance' :: DBInstance -> Maybe ActivityStreamMode
activityStreamMode} -> Maybe ActivityStreamMode
activityStreamMode) (\s :: DBInstance
s@DBInstance' {} Maybe ActivityStreamMode
a -> DBInstance
s {$sel:activityStreamMode:DBInstance' :: Maybe ActivityStreamMode
activityStreamMode = Maybe ActivityStreamMode
a} :: DBInstance)

-- | Specifies if the DB instance is a Multi-AZ deployment.
dbInstance_multiAZ :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)
dbInstance_multiAZ :: (Maybe Bool -> f (Maybe Bool)) -> DBInstance -> f DBInstance
dbInstance_multiAZ = (DBInstance -> Maybe Bool)
-> (DBInstance -> Maybe Bool -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Bool
multiAZ :: Maybe Bool
$sel:multiAZ:DBInstance' :: DBInstance -> Maybe Bool
multiAZ} -> Maybe Bool
multiAZ) (\s :: DBInstance
s@DBInstance' {} Maybe Bool
a -> DBInstance
s {$sel:multiAZ:DBInstance' :: Maybe Bool
multiAZ = Maybe Bool
a} :: DBInstance)

-- | Specifies the listener connection endpoint for SQL Server Always On.
dbInstance_listenerEndpoint :: Lens.Lens' DBInstance (Prelude.Maybe Endpoint)
dbInstance_listenerEndpoint :: (Maybe Endpoint -> f (Maybe Endpoint))
-> DBInstance -> f DBInstance
dbInstance_listenerEndpoint = (DBInstance -> Maybe Endpoint)
-> (DBInstance -> Maybe Endpoint -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Endpoint) (Maybe Endpoint)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Endpoint
listenerEndpoint :: Maybe Endpoint
$sel:listenerEndpoint:DBInstance' :: DBInstance -> Maybe Endpoint
listenerEndpoint} -> Maybe Endpoint
listenerEndpoint) (\s :: DBInstance
s@DBInstance' {} Maybe Endpoint
a -> DBInstance
s {$sel:listenerEndpoint:DBInstance' :: Maybe Endpoint
listenerEndpoint = Maybe Endpoint
a} :: DBInstance)

-- | Provides the list of option group memberships for this DB instance.
dbInstance_optionGroupMemberships :: Lens.Lens' DBInstance (Prelude.Maybe [OptionGroupMembership])
dbInstance_optionGroupMemberships :: (Maybe [OptionGroupMembership]
 -> f (Maybe [OptionGroupMembership]))
-> DBInstance -> f DBInstance
dbInstance_optionGroupMemberships = (DBInstance -> Maybe [OptionGroupMembership])
-> (DBInstance -> Maybe [OptionGroupMembership] -> DBInstance)
-> Lens
     DBInstance
     DBInstance
     (Maybe [OptionGroupMembership])
     (Maybe [OptionGroupMembership])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe [OptionGroupMembership]
optionGroupMemberships :: Maybe [OptionGroupMembership]
$sel:optionGroupMemberships:DBInstance' :: DBInstance -> Maybe [OptionGroupMembership]
optionGroupMemberships} -> Maybe [OptionGroupMembership]
optionGroupMemberships) (\s :: DBInstance
s@DBInstance' {} Maybe [OptionGroupMembership]
a -> DBInstance
s {$sel:optionGroupMemberships:DBInstance' :: Maybe [OptionGroupMembership]
optionGroupMemberships = Maybe [OptionGroupMembership]
a} :: DBInstance) ((Maybe [OptionGroupMembership]
  -> f (Maybe [OptionGroupMembership]))
 -> DBInstance -> f DBInstance)
-> ((Maybe [OptionGroupMembership]
     -> f (Maybe [OptionGroupMembership]))
    -> Maybe [OptionGroupMembership]
    -> f (Maybe [OptionGroupMembership]))
-> (Maybe [OptionGroupMembership]
    -> f (Maybe [OptionGroupMembership]))
-> DBInstance
-> f DBInstance
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [OptionGroupMembership]
  [OptionGroupMembership]
  [OptionGroupMembership]
  [OptionGroupMembership]
-> Iso
     (Maybe [OptionGroupMembership])
     (Maybe [OptionGroupMembership])
     (Maybe [OptionGroupMembership])
     (Maybe [OptionGroupMembership])
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 AnIso
  [OptionGroupMembership]
  [OptionGroupMembership]
  [OptionGroupMembership]
  [OptionGroupMembership]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A list of log types that this DB instance is configured to export to
-- CloudWatch Logs.
--
-- Log types vary by DB engine. For information about the log types for
-- each DB engine, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html Amazon RDS Database Log Files>
-- in the /Amazon RDS User Guide./
dbInstance_enabledCloudwatchLogsExports :: Lens.Lens' DBInstance (Prelude.Maybe [Prelude.Text])
dbInstance_enabledCloudwatchLogsExports :: (Maybe [Text] -> f (Maybe [Text])) -> DBInstance -> f DBInstance
dbInstance_enabledCloudwatchLogsExports = (DBInstance -> Maybe [Text])
-> (DBInstance -> Maybe [Text] -> DBInstance)
-> Lens DBInstance DBInstance (Maybe [Text]) (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe [Text]
enabledCloudwatchLogsExports :: Maybe [Text]
$sel:enabledCloudwatchLogsExports:DBInstance' :: DBInstance -> Maybe [Text]
enabledCloudwatchLogsExports} -> Maybe [Text]
enabledCloudwatchLogsExports) (\s :: DBInstance
s@DBInstance' {} Maybe [Text]
a -> DBInstance
s {$sel:enabledCloudwatchLogsExports:DBInstance' :: Maybe [Text]
enabledCloudwatchLogsExports = Maybe [Text]
a} :: DBInstance) ((Maybe [Text] -> f (Maybe [Text])) -> DBInstance -> f DBInstance)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> DBInstance
-> f DBInstance
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
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 AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream
-- that receives the Enhanced Monitoring metrics data for the DB instance.
dbInstance_enhancedMonitoringResourceArn :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_enhancedMonitoringResourceArn :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_enhancedMonitoringResourceArn = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
enhancedMonitoringResourceArn :: Maybe Text
$sel:enhancedMonitoringResourceArn:DBInstance' :: DBInstance -> Maybe Text
enhancedMonitoringResourceArn} -> Maybe Text
enhancedMonitoringResourceArn) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:enhancedMonitoringResourceArn:DBInstance' :: Maybe Text
enhancedMonitoringResourceArn = Maybe Text
a} :: DBInstance)

-- | If present, specifies the name of the secondary Availability Zone for a
-- DB instance with multi-AZ support.
dbInstance_secondaryAvailabilityZone :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_secondaryAvailabilityZone :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_secondaryAvailabilityZone = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
secondaryAvailabilityZone :: Maybe Text
$sel:secondaryAvailabilityZone:DBInstance' :: DBInstance -> Maybe Text
secondaryAvailabilityZone} -> Maybe Text
secondaryAvailabilityZone) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:secondaryAvailabilityZone:DBInstance' :: Maybe Text
secondaryAvailabilityZone = Maybe Text
a} :: DBInstance)

-- | The status of the database activity stream.
dbInstance_activityStreamStatus :: Lens.Lens' DBInstance (Prelude.Maybe ActivityStreamStatus)
dbInstance_activityStreamStatus :: (Maybe ActivityStreamStatus -> f (Maybe ActivityStreamStatus))
-> DBInstance -> f DBInstance
dbInstance_activityStreamStatus = (DBInstance -> Maybe ActivityStreamStatus)
-> (DBInstance -> Maybe ActivityStreamStatus -> DBInstance)
-> Lens
     DBInstance
     DBInstance
     (Maybe ActivityStreamStatus)
     (Maybe ActivityStreamStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe ActivityStreamStatus
activityStreamStatus :: Maybe ActivityStreamStatus
$sel:activityStreamStatus:DBInstance' :: DBInstance -> Maybe ActivityStreamStatus
activityStreamStatus} -> Maybe ActivityStreamStatus
activityStreamStatus) (\s :: DBInstance
s@DBInstance' {} Maybe ActivityStreamStatus
a -> DBInstance
s {$sel:activityStreamStatus:DBInstance' :: Maybe ActivityStreamStatus
activityStreamStatus = Maybe ActivityStreamStatus
a} :: DBInstance)

-- | True if Performance Insights is enabled for the DB instance, and
-- otherwise false.
dbInstance_performanceInsightsEnabled :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)
dbInstance_performanceInsightsEnabled :: (Maybe Bool -> f (Maybe Bool)) -> DBInstance -> f DBInstance
dbInstance_performanceInsightsEnabled = (DBInstance -> Maybe Bool)
-> (DBInstance -> Maybe Bool -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Bool
performanceInsightsEnabled :: Maybe Bool
$sel:performanceInsightsEnabled:DBInstance' :: DBInstance -> Maybe Bool
performanceInsightsEnabled} -> Maybe Bool
performanceInsightsEnabled) (\s :: DBInstance
s@DBInstance' {} Maybe Bool
a -> DBInstance
s {$sel:performanceInsightsEnabled:DBInstance' :: Maybe Bool
performanceInsightsEnabled = Maybe Bool
a} :: DBInstance)

-- | Specifies the allocated storage size specified in gibibytes (GiB).
dbInstance_allocatedStorage :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Int)
dbInstance_allocatedStorage :: (Maybe Int -> f (Maybe Int)) -> DBInstance -> f DBInstance
dbInstance_allocatedStorage = (DBInstance -> Maybe Int)
-> (DBInstance -> Maybe Int -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Int
allocatedStorage :: Maybe Int
$sel:allocatedStorage:DBInstance' :: DBInstance -> Maybe Int
allocatedStorage} -> Maybe Int
allocatedStorage) (\s :: DBInstance
s@DBInstance' {} Maybe Int
a -> DBInstance
s {$sel:allocatedStorage:DBInstance' :: Maybe Int
allocatedStorage = Maybe Int
a} :: DBInstance)

-- | The Amazon Web Services Region-unique, immutable identifier for the DB
-- instance. This identifier is found in Amazon Web Services CloudTrail log
-- entries whenever the Amazon Web Services KMS customer master key (CMK)
-- for the DB instance is accessed.
dbInstance_dbiResourceId :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_dbiResourceId :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_dbiResourceId = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
dbiResourceId :: Maybe Text
$sel:dbiResourceId:DBInstance' :: DBInstance -> Maybe Text
dbiResourceId} -> Maybe Text
dbiResourceId) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:dbiResourceId:DBInstance' :: Maybe Text
dbiResourceId = Maybe Text
a} :: DBInstance)

-- | Provides the list of DB parameter groups applied to this DB instance.
dbInstance_dbParameterGroups :: Lens.Lens' DBInstance (Prelude.Maybe [DBParameterGroupStatus])
dbInstance_dbParameterGroups :: (Maybe [DBParameterGroupStatus]
 -> f (Maybe [DBParameterGroupStatus]))
-> DBInstance -> f DBInstance
dbInstance_dbParameterGroups = (DBInstance -> Maybe [DBParameterGroupStatus])
-> (DBInstance -> Maybe [DBParameterGroupStatus] -> DBInstance)
-> Lens
     DBInstance
     DBInstance
     (Maybe [DBParameterGroupStatus])
     (Maybe [DBParameterGroupStatus])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe [DBParameterGroupStatus]
dbParameterGroups :: Maybe [DBParameterGroupStatus]
$sel:dbParameterGroups:DBInstance' :: DBInstance -> Maybe [DBParameterGroupStatus]
dbParameterGroups} -> Maybe [DBParameterGroupStatus]
dbParameterGroups) (\s :: DBInstance
s@DBInstance' {} Maybe [DBParameterGroupStatus]
a -> DBInstance
s {$sel:dbParameterGroups:DBInstance' :: Maybe [DBParameterGroupStatus]
dbParameterGroups = Maybe [DBParameterGroupStatus]
a} :: DBInstance) ((Maybe [DBParameterGroupStatus]
  -> f (Maybe [DBParameterGroupStatus]))
 -> DBInstance -> f DBInstance)
-> ((Maybe [DBParameterGroupStatus]
     -> f (Maybe [DBParameterGroupStatus]))
    -> Maybe [DBParameterGroupStatus]
    -> f (Maybe [DBParameterGroupStatus]))
-> (Maybe [DBParameterGroupStatus]
    -> f (Maybe [DBParameterGroupStatus]))
-> DBInstance
-> f DBInstance
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [DBParameterGroupStatus]
  [DBParameterGroupStatus]
  [DBParameterGroupStatus]
  [DBParameterGroupStatus]
-> Iso
     (Maybe [DBParameterGroupStatus])
     (Maybe [DBParameterGroupStatus])
     (Maybe [DBParameterGroupStatus])
     (Maybe [DBParameterGroupStatus])
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 AnIso
  [DBParameterGroupStatus]
  [DBParameterGroupStatus]
  [DBParameterGroupStatus]
  [DBParameterGroupStatus]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Specifies whether tags are copied from the DB instance to snapshots of
-- the DB instance.
--
-- __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 @DBCluster@.
dbInstance_copyTagsToSnapshot :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Bool)
dbInstance_copyTagsToSnapshot :: (Maybe Bool -> f (Maybe Bool)) -> DBInstance -> f DBInstance
dbInstance_copyTagsToSnapshot = (DBInstance -> Maybe Bool)
-> (DBInstance -> Maybe Bool -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Bool
copyTagsToSnapshot :: Maybe Bool
$sel:copyTagsToSnapshot:DBInstance' :: DBInstance -> Maybe Bool
copyTagsToSnapshot} -> Maybe Bool
copyTagsToSnapshot) (\s :: DBInstance
s@DBInstance' {} Maybe Bool
a -> DBInstance
s {$sel:copyTagsToSnapshot:DBInstance' :: Maybe Bool
copyTagsToSnapshot = Maybe Bool
a} :: DBInstance)

-- | The time zone of the DB instance. In most cases, the @Timezone@ element
-- is empty. @Timezone@ content appears only for Microsoft SQL Server DB
-- instances that were created with a time zone specified.
dbInstance_timezone :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_timezone :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_timezone = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
timezone :: Maybe Text
$sel:timezone:DBInstance' :: DBInstance -> Maybe Text
timezone} -> Maybe Text
timezone) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:timezone:DBInstance' :: Maybe Text
timezone = Maybe Text
a} :: DBInstance)

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

-- | The list of replicated automated backups associated with the DB
-- instance.
dbInstance_dbInstanceAutomatedBackupsReplications :: Lens.Lens' DBInstance (Prelude.Maybe [DBInstanceAutomatedBackupsReplication])
dbInstance_dbInstanceAutomatedBackupsReplications :: (Maybe [DBInstanceAutomatedBackupsReplication]
 -> f (Maybe [DBInstanceAutomatedBackupsReplication]))
-> DBInstance -> f DBInstance
dbInstance_dbInstanceAutomatedBackupsReplications = (DBInstance -> Maybe [DBInstanceAutomatedBackupsReplication])
-> (DBInstance
    -> Maybe [DBInstanceAutomatedBackupsReplication] -> DBInstance)
-> Lens
     DBInstance
     DBInstance
     (Maybe [DBInstanceAutomatedBackupsReplication])
     (Maybe [DBInstanceAutomatedBackupsReplication])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe [DBInstanceAutomatedBackupsReplication]
dbInstanceAutomatedBackupsReplications :: Maybe [DBInstanceAutomatedBackupsReplication]
$sel:dbInstanceAutomatedBackupsReplications:DBInstance' :: DBInstance -> Maybe [DBInstanceAutomatedBackupsReplication]
dbInstanceAutomatedBackupsReplications} -> Maybe [DBInstanceAutomatedBackupsReplication]
dbInstanceAutomatedBackupsReplications) (\s :: DBInstance
s@DBInstance' {} Maybe [DBInstanceAutomatedBackupsReplication]
a -> DBInstance
s {$sel:dbInstanceAutomatedBackupsReplications:DBInstance' :: Maybe [DBInstanceAutomatedBackupsReplication]
dbInstanceAutomatedBackupsReplications = Maybe [DBInstanceAutomatedBackupsReplication]
a} :: DBInstance) ((Maybe [DBInstanceAutomatedBackupsReplication]
  -> f (Maybe [DBInstanceAutomatedBackupsReplication]))
 -> DBInstance -> f DBInstance)
-> ((Maybe [DBInstanceAutomatedBackupsReplication]
     -> f (Maybe [DBInstanceAutomatedBackupsReplication]))
    -> Maybe [DBInstanceAutomatedBackupsReplication]
    -> f (Maybe [DBInstanceAutomatedBackupsReplication]))
-> (Maybe [DBInstanceAutomatedBackupsReplication]
    -> f (Maybe [DBInstanceAutomatedBackupsReplication]))
-> DBInstance
-> f DBInstance
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [DBInstanceAutomatedBackupsReplication]
  [DBInstanceAutomatedBackupsReplication]
  [DBInstanceAutomatedBackupsReplication]
  [DBInstanceAutomatedBackupsReplication]
-> Iso
     (Maybe [DBInstanceAutomatedBackupsReplication])
     (Maybe [DBInstanceAutomatedBackupsReplication])
     (Maybe [DBInstanceAutomatedBackupsReplication])
     (Maybe [DBInstanceAutomatedBackupsReplication])
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 AnIso
  [DBInstanceAutomatedBackupsReplication]
  [DBInstanceAutomatedBackupsReplication]
  [DBInstanceAutomatedBackupsReplication]
  [DBInstanceAutomatedBackupsReplication]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Specifies the connection endpoint.
--
-- The endpoint might not be shown for instances whose status is
-- @creating@.
dbInstance_endpoint :: Lens.Lens' DBInstance (Prelude.Maybe Endpoint)
dbInstance_endpoint :: (Maybe Endpoint -> f (Maybe Endpoint))
-> DBInstance -> f DBInstance
dbInstance_endpoint = (DBInstance -> Maybe Endpoint)
-> (DBInstance -> Maybe Endpoint -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Endpoint) (Maybe Endpoint)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Endpoint
endpoint :: Maybe Endpoint
$sel:endpoint:DBInstance' :: DBInstance -> Maybe Endpoint
endpoint} -> Maybe Endpoint
endpoint) (\s :: DBInstance
s@DBInstance' {} Maybe Endpoint
a -> DBInstance
s {$sel:endpoint:DBInstance' :: Maybe Endpoint
endpoint = Maybe Endpoint
a} :: DBInstance)

-- | Specifies the current state of this database.
--
-- For information about DB instance statuses, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status Viewing DB instance status>
-- in the /Amazon RDS User Guide./
dbInstance_dbInstanceStatus :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_dbInstanceStatus :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_dbInstanceStatus = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
dbInstanceStatus :: Maybe Text
$sel:dbInstanceStatus:DBInstance' :: DBInstance -> Maybe Text
dbInstanceStatus} -> Maybe Text
dbInstanceStatus) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:dbInstanceStatus:DBInstance' :: Maybe Text
dbInstanceStatus = Maybe Text
a} :: DBInstance)

-- | Specifies the port that the DB instance listens on. If the DB instance
-- is part of a DB cluster, this can be a different port than the DB
-- cluster port.
dbInstance_dbInstancePort :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Int)
dbInstance_dbInstancePort :: (Maybe Int -> f (Maybe Int)) -> DBInstance -> f DBInstance
dbInstance_dbInstancePort = (DBInstance -> Maybe Int)
-> (DBInstance -> Maybe Int -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Int
dbInstancePort :: Maybe Int
$sel:dbInstancePort:DBInstance' :: DBInstance -> Maybe Int
dbInstancePort} -> Maybe Int
dbInstancePort) (\s :: DBInstance
s@DBInstance' {} Maybe Int
a -> DBInstance
s {$sel:dbInstancePort:DBInstance' :: Maybe Int
dbInstancePort = Maybe Int
a} :: DBInstance)

-- | The Amazon Web Services KMS key identifier used for encrypting messages
-- in the database activity stream. The Amazon Web Services KMS key
-- identifier is the key ARN, key ID, alias ARN, or alias name for the
-- Amazon Web Services KMS customer master key (CMK).
dbInstance_activityStreamKmsKeyId :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_activityStreamKmsKeyId :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_activityStreamKmsKeyId = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
activityStreamKmsKeyId :: Maybe Text
$sel:activityStreamKmsKeyId:DBInstance' :: DBInstance -> Maybe Text
activityStreamKmsKeyId} -> Maybe Text
activityStreamKmsKeyId) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:activityStreamKmsKeyId:DBInstance' :: Maybe Text
activityStreamKmsKeyId = Maybe Text
a} :: DBInstance)

-- | A value that specifies that changes to the DB instance are pending. This
-- element is only included when changes are pending. Specific changes are
-- identified by subelements.
dbInstance_pendingModifiedValues :: Lens.Lens' DBInstance (Prelude.Maybe PendingModifiedValues)
dbInstance_pendingModifiedValues :: (Maybe PendingModifiedValues -> f (Maybe PendingModifiedValues))
-> DBInstance -> f DBInstance
dbInstance_pendingModifiedValues = (DBInstance -> Maybe PendingModifiedValues)
-> (DBInstance -> Maybe PendingModifiedValues -> DBInstance)
-> Lens
     DBInstance
     DBInstance
     (Maybe PendingModifiedValues)
     (Maybe PendingModifiedValues)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe PendingModifiedValues
pendingModifiedValues :: Maybe PendingModifiedValues
$sel:pendingModifiedValues:DBInstance' :: DBInstance -> Maybe PendingModifiedValues
pendingModifiedValues} -> Maybe PendingModifiedValues
pendingModifiedValues) (\s :: DBInstance
s@DBInstance' {} Maybe PendingModifiedValues
a -> DBInstance
s {$sel:pendingModifiedValues:DBInstance' :: Maybe PendingModifiedValues
pendingModifiedValues = Maybe PendingModifiedValues
a} :: DBInstance)

-- | Contains one or more identifiers of Aurora DB clusters to which the RDS
-- DB instance is replicated as a read replica. For example, when you
-- create an Aurora read replica of an RDS MySQL DB instance, the Aurora
-- MySQL DB cluster for the Aurora read replica is shown. This output does
-- not contain information about cross region Aurora read replicas.
--
-- Currently, each RDS DB instance can have only one Aurora read replica.
dbInstance_readReplicaDBClusterIdentifiers :: Lens.Lens' DBInstance (Prelude.Maybe [Prelude.Text])
dbInstance_readReplicaDBClusterIdentifiers :: (Maybe [Text] -> f (Maybe [Text])) -> DBInstance -> f DBInstance
dbInstance_readReplicaDBClusterIdentifiers = (DBInstance -> Maybe [Text])
-> (DBInstance -> Maybe [Text] -> DBInstance)
-> Lens DBInstance DBInstance (Maybe [Text]) (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe [Text]
readReplicaDBClusterIdentifiers :: Maybe [Text]
$sel:readReplicaDBClusterIdentifiers:DBInstance' :: DBInstance -> Maybe [Text]
readReplicaDBClusterIdentifiers} -> Maybe [Text]
readReplicaDBClusterIdentifiers) (\s :: DBInstance
s@DBInstance' {} Maybe [Text]
a -> DBInstance
s {$sel:readReplicaDBClusterIdentifiers:DBInstance' :: Maybe [Text]
readReplicaDBClusterIdentifiers = Maybe [Text]
a} :: DBInstance) ((Maybe [Text] -> f (Maybe [Text])) -> DBInstance -> f DBInstance)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> DBInstance
-> f DBInstance
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
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 AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Specifies the storage type associated with DB instance.
dbInstance_storageType :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_storageType :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_storageType = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
storageType :: Maybe Text
$sel:storageType:DBInstance' :: DBInstance -> Maybe Text
storageType} -> Maybe Text
storageType) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:storageType:DBInstance' :: Maybe Text
storageType = Maybe Text
a} :: DBInstance)

-- | The status of a read replica. If the instance isn\'t a read replica,
-- this is blank.
dbInstance_statusInfos :: Lens.Lens' DBInstance (Prelude.Maybe [DBInstanceStatusInfo])
dbInstance_statusInfos :: (Maybe [DBInstanceStatusInfo] -> f (Maybe [DBInstanceStatusInfo]))
-> DBInstance -> f DBInstance
dbInstance_statusInfos = (DBInstance -> Maybe [DBInstanceStatusInfo])
-> (DBInstance -> Maybe [DBInstanceStatusInfo] -> DBInstance)
-> Lens
     DBInstance
     DBInstance
     (Maybe [DBInstanceStatusInfo])
     (Maybe [DBInstanceStatusInfo])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe [DBInstanceStatusInfo]
statusInfos :: Maybe [DBInstanceStatusInfo]
$sel:statusInfos:DBInstance' :: DBInstance -> Maybe [DBInstanceStatusInfo]
statusInfos} -> Maybe [DBInstanceStatusInfo]
statusInfos) (\s :: DBInstance
s@DBInstance' {} Maybe [DBInstanceStatusInfo]
a -> DBInstance
s {$sel:statusInfos:DBInstance' :: Maybe [DBInstanceStatusInfo]
statusInfos = Maybe [DBInstanceStatusInfo]
a} :: DBInstance) ((Maybe [DBInstanceStatusInfo] -> f (Maybe [DBInstanceStatusInfo]))
 -> DBInstance -> f DBInstance)
-> ((Maybe [DBInstanceStatusInfo]
     -> f (Maybe [DBInstanceStatusInfo]))
    -> Maybe [DBInstanceStatusInfo]
    -> f (Maybe [DBInstanceStatusInfo]))
-> (Maybe [DBInstanceStatusInfo]
    -> f (Maybe [DBInstanceStatusInfo]))
-> DBInstance
-> f DBInstance
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [DBInstanceStatusInfo]
  [DBInstanceStatusInfo]
  [DBInstanceStatusInfo]
  [DBInstanceStatusInfo]
-> Iso
     (Maybe [DBInstanceStatusInfo])
     (Maybe [DBInstanceStatusInfo])
     (Maybe [DBInstanceStatusInfo])
     (Maybe [DBInstanceStatusInfo])
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 AnIso
  [DBInstanceStatusInfo]
  [DBInstanceStatusInfo]
  [DBInstanceStatusInfo]
  [DBInstanceStatusInfo]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The Active Directory Domain membership records associated with the DB
-- instance.
dbInstance_domainMemberships :: Lens.Lens' DBInstance (Prelude.Maybe [DomainMembership])
dbInstance_domainMemberships :: (Maybe [DomainMembership] -> f (Maybe [DomainMembership]))
-> DBInstance -> f DBInstance
dbInstance_domainMemberships = (DBInstance -> Maybe [DomainMembership])
-> (DBInstance -> Maybe [DomainMembership] -> DBInstance)
-> Lens
     DBInstance
     DBInstance
     (Maybe [DomainMembership])
     (Maybe [DomainMembership])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe [DomainMembership]
domainMemberships :: Maybe [DomainMembership]
$sel:domainMemberships:DBInstance' :: DBInstance -> Maybe [DomainMembership]
domainMemberships} -> Maybe [DomainMembership]
domainMemberships) (\s :: DBInstance
s@DBInstance' {} Maybe [DomainMembership]
a -> DBInstance
s {$sel:domainMemberships:DBInstance' :: Maybe [DomainMembership]
domainMemberships = Maybe [DomainMembership]
a} :: DBInstance) ((Maybe [DomainMembership] -> f (Maybe [DomainMembership]))
 -> DBInstance -> f DBInstance)
-> ((Maybe [DomainMembership] -> f (Maybe [DomainMembership]))
    -> Maybe [DomainMembership] -> f (Maybe [DomainMembership]))
-> (Maybe [DomainMembership] -> f (Maybe [DomainMembership]))
-> DBInstance
-> f DBInstance
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [DomainMembership]
  [DomainMembership]
  [DomainMembership]
  [DomainMembership]
-> Iso
     (Maybe [DomainMembership])
     (Maybe [DomainMembership])
     (Maybe [DomainMembership])
     (Maybe [DomainMembership])
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 AnIso
  [DomainMembership]
  [DomainMembership]
  [DomainMembership]
  [DomainMembership]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The meaning of this parameter differs according to the database engine
-- you use.
--
-- __MySQL, MariaDB, SQL Server, PostgreSQL__
--
-- Contains the name of the initial database of this instance that was
-- provided at create time, if one was specified when the DB instance was
-- created. This same name is returned for the life of the DB instance.
--
-- Type: String
--
-- __Oracle__
--
-- Contains the Oracle System ID (SID) of the created DB instance. Not
-- shown when the returned parameters do not apply to an Oracle DB
-- instance.
dbInstance_dbName :: Lens.Lens' DBInstance (Prelude.Maybe Prelude.Text)
dbInstance_dbName :: (Maybe Text -> f (Maybe Text)) -> DBInstance -> f DBInstance
dbInstance_dbName = (DBInstance -> Maybe Text)
-> (DBInstance -> Maybe Text -> DBInstance)
-> Lens DBInstance DBInstance (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBInstance' {Maybe Text
dbName :: Maybe Text
$sel:dbName:DBInstance' :: DBInstance -> Maybe Text
dbName} -> Maybe Text
dbName) (\s :: DBInstance
s@DBInstance' {} Maybe Text
a -> DBInstance
s {$sel:dbName:DBInstance' :: Maybe Text
dbName = Maybe Text
a} :: DBInstance)

instance Core.FromXML DBInstance where
  parseXML :: [Node] -> Either String DBInstance
parseXML [Node]
x =
    Maybe Text
-> Maybe [DBSecurityGroupMembership]
-> Maybe Bool
-> Maybe ISO8601
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe [Text]
-> Maybe Bool
-> Maybe Text
-> Maybe Int
-> Maybe ISO8601
-> Maybe [Tag]
-> Maybe Text
-> Maybe ReplicaMode
-> Maybe Int
-> Maybe Text
-> Maybe [ProcessorFeature]
-> Maybe ISO8601
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe [DBInstanceRole]
-> Maybe Text
-> Maybe [VpcSecurityGroupMembership]
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe DBSubnetGroup
-> Maybe ActivityStreamMode
-> Maybe Bool
-> Maybe Endpoint
-> Maybe [OptionGroupMembership]
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe ActivityStreamStatus
-> Maybe Bool
-> Maybe Int
-> Maybe Text
-> Maybe [DBParameterGroupStatus]
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe [DBInstanceAutomatedBackupsReplication]
-> Maybe Endpoint
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe PendingModifiedValues
-> Maybe [Text]
-> Maybe Text
-> Maybe [DBInstanceStatusInfo]
-> Maybe [DomainMembership]
-> Maybe Text
-> DBInstance
DBInstance'
      (Maybe Text
 -> Maybe [DBSecurityGroupMembership]
 -> Maybe Bool
 -> Maybe ISO8601
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Int
 -> Maybe ISO8601
 -> Maybe [Tag]
 -> Maybe Text
 -> Maybe ReplicaMode
 -> Maybe Int
 -> Maybe Text
 -> Maybe [ProcessorFeature]
 -> Maybe ISO8601
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Int
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe [DBInstanceRole]
 -> Maybe Text
 -> Maybe [VpcSecurityGroupMembership]
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe DBSubnetGroup
 -> Maybe ActivityStreamMode
 -> Maybe Bool
 -> Maybe Endpoint
 -> Maybe [OptionGroupMembership]
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe Text
 -> Maybe ActivityStreamStatus
 -> Maybe Bool
 -> Maybe Int
 -> Maybe Text
 -> Maybe [DBParameterGroupStatus]
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe [DBInstanceAutomatedBackupsReplication]
 -> Maybe Endpoint
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe PendingModifiedValues
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe [DBInstanceStatusInfo]
 -> Maybe [DomainMembership]
 -> Maybe Text
 -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [DBSecurityGroupMembership]
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"EngineVersion")
      Either
  String
  (Maybe [DBSecurityGroupMembership]
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe [DBSecurityGroupMembership])
-> Either
     String
     (Maybe Bool
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DBSecurityGroups"
                      Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                      Either String [Node]
-> ([Node] -> Either String (Maybe [DBSecurityGroupMembership]))
-> Either String (Maybe [DBSecurityGroupMembership])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [DBSecurityGroupMembership])
-> [Node] -> Either String (Maybe [DBSecurityGroupMembership])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [DBSecurityGroupMembership]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"DBSecurityGroup")
                  )
      Either
  String
  (Maybe Bool
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe ISO8601
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Bool)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DeletionProtection")
      Either
  String
  (Maybe ISO8601
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe ISO8601)
-> Either
     String
     (Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe ISO8601)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"AutomaticRestartTime")
      Either
  String
  (Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Bool)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"StorageEncrypted")
      Either
  String
  (Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DBClusterIdentifier")
      Either
  String
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Bool)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"PubliclyAccessible")
      Either
  String
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Bool)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"AutoMinorVersionUpgrade")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DBInstanceArn")
      Either
  String
  (Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ActivityStreamKinesisStreamName")
      Either
  String
  (Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Text
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      [Node] -> Text -> Either String (Maybe Bool)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ActivityStreamEngineNativeAuditFieldsIncluded"
                  )
      Either
  String
  (Maybe Text
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"MasterUsername")
      Either
  String
  (Maybe [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe [Text])
-> Either
     String
     (Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ReadReplicaDBInstanceIdentifiers"
                      Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                      Either String [Node]
-> ([Node] -> Either String (Maybe [Text]))
-> Either String (Maybe [Text])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [Text])
-> [Node] -> Either String (Maybe [Text])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may
                        ( Text -> [Node] -> Either String [Text]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList
                            Text
"ReadReplicaDBInstanceIdentifier"
                        )
                  )
      Either
  String
  (Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Bool)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"IAMDatabaseAuthenticationEnabled")
      Either
  String
  (Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Int
      -> Maybe ISO8601
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"MonitoringRoleArn")
      Either
  String
  (Maybe Int
   -> Maybe ISO8601
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe ISO8601
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Int)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"Iops")
      Either
  String
  (Maybe ISO8601
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe ISO8601)
-> Either
     String
     (Maybe [Tag]
      -> Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe ISO8601)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"InstanceCreateTime")
      Either
  String
  (Maybe [Tag]
   -> Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe [Tag])
-> Either
     String
     (Maybe Text
      -> Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"TagList" Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                      Either String [Node]
-> ([Node] -> Either String (Maybe [Tag]))
-> Either String (Maybe [Tag])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [Tag])
-> [Node] -> Either String (Maybe [Tag])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [Tag]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"Tag")
                  )
      Either
  String
  (Maybe Text
   -> Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe ReplicaMode
      -> Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ReadReplicaSourceDBInstanceIdentifier")
      Either
  String
  (Maybe ReplicaMode
   -> Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe ReplicaMode)
-> Either
     String
     (Maybe Int
      -> Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe ReplicaMode)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ReplicaMode")
      Either
  String
  (Maybe Int
   -> Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Text
      -> Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Int)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"MonitoringInterval")
      Either
  String
  (Maybe Text
   -> Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [ProcessorFeature]
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"Engine")
      Either
  String
  (Maybe [ProcessorFeature]
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe [ProcessorFeature])
-> Either
     String
     (Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ProcessorFeatures"
                      Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                      Either String [Node]
-> ([Node] -> Either String (Maybe [ProcessorFeature]))
-> Either String (Maybe [ProcessorFeature])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [ProcessorFeature])
-> [Node] -> Either String (Maybe [ProcessorFeature])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [ProcessorFeature]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"ProcessorFeature")
                  )
      Either
  String
  (Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe ISO8601)
-> Either
     String
     (Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe ISO8601)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"LatestRestorableTime")
      Either
  String
  (Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DBInstanceClass")
      Either
  String
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Int)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"PromotionTier")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"AwsBackupRecoveryPointArn")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"LicenseModel")
      Either
  String
  (Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"PreferredMaintenanceWindow")
      Either
  String
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Int)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"PerformanceInsightsRetentionPeriod")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"CACertificateIdentifier")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DBInstanceIdentifier")
      Either
  String
  (Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"CharacterSetName")
      Either
  String
  (Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Int)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"MaxAllocatedStorage")
      Either
  String
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Bool)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"CustomerOwnedIpEnabled")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"KmsKeyId")
      Either
  String
  (Maybe Text
   -> Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [DBInstanceRole]
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"PreferredBackupWindow")
      Either
  String
  (Maybe [DBInstanceRole]
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe [DBInstanceRole])
-> Either
     String
     (Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"AssociatedRoles" Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                      Either String [Node]
-> ([Node] -> Either String (Maybe [DBInstanceRole]))
-> Either String (Maybe [DBInstanceRole])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [DBInstanceRole])
-> [Node] -> Either String (Maybe [DBInstanceRole])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [DBInstanceRole]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"DBInstanceRole")
                  )
      Either
  String
  (Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"AvailabilityZone")
      Either
  String
  (Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe [VpcSecurityGroupMembership])
-> Either
     String
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"VpcSecurityGroups"
                      Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                      Either String [Node]
-> ([Node] -> Either String (Maybe [VpcSecurityGroupMembership]))
-> Either String (Maybe [VpcSecurityGroupMembership])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [VpcSecurityGroupMembership])
-> [Node] -> Either String (Maybe [VpcSecurityGroupMembership])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may
                        (Text -> [Node] -> Either String [VpcSecurityGroupMembership]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"VpcSecurityGroupMembership")
                  )
      Either
  String
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Int)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"BackupRetentionPeriod")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"NcharCharacterSetName")
      Either
  String
  (Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe DBSubnetGroup
      -> Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"PerformanceInsightsKMSKeyId")
      Either
  String
  (Maybe DBSubnetGroup
   -> Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe DBSubnetGroup)
-> Either
     String
     (Maybe ActivityStreamMode
      -> Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe DBSubnetGroup)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DBSubnetGroup")
      Either
  String
  (Maybe ActivityStreamMode
   -> Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe ActivityStreamMode)
-> Either
     String
     (Maybe Bool
      -> Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe ActivityStreamMode)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ActivityStreamMode")
      Either
  String
  (Maybe Bool
   -> Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Endpoint
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Bool)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"MultiAZ")
      Either
  String
  (Maybe Endpoint
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Endpoint)
-> Either
     String
     (Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Endpoint)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ListenerEndpoint")
      Either
  String
  (Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe [OptionGroupMembership])
-> Either
     String
     (Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"OptionGroupMemberships"
                      Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                      Either String [Node]
-> ([Node] -> Either String (Maybe [OptionGroupMembership]))
-> Either String (Maybe [OptionGroupMembership])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [OptionGroupMembership])
-> [Node] -> Either String (Maybe [OptionGroupMembership])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [OptionGroupMembership]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"OptionGroupMembership")
                  )
      Either
  String
  (Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe [Text])
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"EnabledCloudwatchLogsExports"
                      Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                      Either String [Node]
-> ([Node] -> Either String (Maybe [Text]))
-> Either String (Maybe [Text])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [Text])
-> [Node] -> Either String (Maybe [Text])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [Text]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"member")
                  )
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"EnhancedMonitoringResourceArn")
      Either
  String
  (Maybe Text
   -> Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe ActivityStreamStatus
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"SecondaryAvailabilityZone")
      Either
  String
  (Maybe ActivityStreamStatus
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe ActivityStreamStatus)
-> Either
     String
     (Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe ActivityStreamStatus)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ActivityStreamStatus")
      Either
  String
  (Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Bool)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"PerformanceInsightsEnabled")
      Either
  String
  (Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Int)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"AllocatedStorage")
      Either
  String
  (Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DbiResourceId")
      Either
  String
  (Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe [DBParameterGroupStatus])
-> Either
     String
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DBParameterGroups"
                      Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                      Either String [Node]
-> ([Node] -> Either String (Maybe [DBParameterGroupStatus]))
-> Either String (Maybe [DBParameterGroupStatus])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [DBParameterGroupStatus])
-> [Node] -> Either String (Maybe [DBParameterGroupStatus])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [DBParameterGroupStatus]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"DBParameterGroup")
                  )
      Either
  String
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Bool)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"CopyTagsToSnapshot")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"Timezone")
      Either
  String
  (Maybe Text
   -> Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [DBInstanceAutomatedBackupsReplication]
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"TdeCredentialArn")
      Either
  String
  (Maybe [DBInstanceAutomatedBackupsReplication]
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe [DBInstanceAutomatedBackupsReplication])
-> Either
     String
     (Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DBInstanceAutomatedBackupsReplications"
                      Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                      Either String [Node]
-> ([Node]
    -> Either String (Maybe [DBInstanceAutomatedBackupsReplication]))
-> Either String (Maybe [DBInstanceAutomatedBackupsReplication])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [DBInstanceAutomatedBackupsReplication])
-> [Node]
-> Either String (Maybe [DBInstanceAutomatedBackupsReplication])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may
                        ( Text
-> [Node] -> Either String [DBInstanceAutomatedBackupsReplication]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList
                            Text
"DBInstanceAutomatedBackupsReplication"
                        )
                  )
      Either
  String
  (Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Endpoint)
-> Either
     String
     (Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Endpoint)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"Endpoint")
      Either
  String
  (Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Int
      -> Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DBInstanceStatus")
      Either
  String
  (Maybe Int
   -> Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Text
      -> Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Int)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DbInstancePort")
      Either
  String
  (Maybe Text
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe PendingModifiedValues
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ActivityStreamKmsKeyId")
      Either
  String
  (Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe PendingModifiedValues)
-> Either
     String
     (Maybe [Text]
      -> Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe PendingModifiedValues)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"PendingModifiedValues")
      Either
  String
  (Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe [Text])
-> Either
     String
     (Maybe Text
      -> Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership]
      -> Maybe Text
      -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ReadReplicaDBClusterIdentifiers"
                      Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                      Either String [Node]
-> ([Node] -> Either String (Maybe [Text]))
-> Either String (Maybe [Text])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [Text])
-> [Node] -> Either String (Maybe [Text])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may
                        (Text -> [Node] -> Either String [Text]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"ReadReplicaDBClusterIdentifier")
                  )
      Either
  String
  (Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [DBInstanceStatusInfo]
      -> Maybe [DomainMembership] -> Maybe Text -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"StorageType")
      Either
  String
  (Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership] -> Maybe Text -> DBInstance)
-> Either String (Maybe [DBInstanceStatusInfo])
-> Either
     String (Maybe [DomainMembership] -> Maybe Text -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"StatusInfos" Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                      Either String [Node]
-> ([Node] -> Either String (Maybe [DBInstanceStatusInfo]))
-> Either String (Maybe [DBInstanceStatusInfo])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [DBInstanceStatusInfo])
-> [Node] -> Either String (Maybe [DBInstanceStatusInfo])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [DBInstanceStatusInfo]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"DBInstanceStatusInfo")
                  )
      Either
  String (Maybe [DomainMembership] -> Maybe Text -> DBInstance)
-> Either String (Maybe [DomainMembership])
-> Either String (Maybe Text -> DBInstance)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DomainMemberships"
                      Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                      Either String [Node]
-> ([Node] -> Either String (Maybe [DomainMembership]))
-> Either String (Maybe [DomainMembership])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [DomainMembership])
-> [Node] -> Either String (Maybe [DomainMembership])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [DomainMembership]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"DomainMembership")
                  )
      Either String (Maybe Text -> DBInstance)
-> Either String (Maybe Text) -> Either String DBInstance
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DBName")

instance Prelude.Hashable DBInstance

instance Prelude.NFData DBInstance