{-# 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.Neptune.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.Neptune.Types.DBInstance where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import Amazonka.Neptune.Types.DBInstanceStatusInfo
import Amazonka.Neptune.Types.DBParameterGroupStatus
import Amazonka.Neptune.Types.DBSecurityGroupMembership
import Amazonka.Neptune.Types.DBSubnetGroup
import Amazonka.Neptune.Types.DomainMembership
import Amazonka.Neptune.Types.Endpoint
import Amazonka.Neptune.Types.OptionGroupMembership
import Amazonka.Neptune.Types.PendingModifiedValues
import Amazonka.Neptune.Types.VpcSecurityGroupMembership
import qualified Amazonka.Prelude as Prelude

-- | Contains the details of an Amazon Neptune 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,
    -- | Provides List of DB security group elements containing only
    -- @DBSecurityGroup.Name@ and @DBSecurityGroup.Status@ subelements.
    DBInstance -> Maybe [DBSecurityGroupMembership]
dbSecurityGroups :: Prelude.Maybe [DBSecurityGroupMembership],
    -- | Indicates whether or not the DB instance has deletion protection
    -- enabled. The instance can\'t be deleted when deletion protection is
    -- enabled. See
    -- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html Deleting a DB Instance>.
    DBInstance -> Maybe Bool
deletionProtection :: Prelude.Maybe Prelude.Bool,
    -- | Not supported: The encryption for DB instances is managed by the DB
    -- cluster.
    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,
    -- | This flag should no longer be used.
    DBInstance -> Maybe Bool
publiclyAccessible :: Prelude.Maybe Prelude.Bool,
    -- | 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,
    -- | Not supported by Neptune.
    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 Amazon Identity and Access Management (IAM) authentication is
    -- enabled, and otherwise false.
    DBInstance -> Maybe Bool
iAMDatabaseAuthenticationEnabled :: Prelude.Maybe Prelude.Bool,
    -- | The ARN for the IAM role that permits Neptune 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,
    -- | 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 interval, in seconds, between points when Enhanced Monitoring
    -- metrics are collected for the DB instance.
    DBInstance -> Maybe Int
monitoringInterval :: Prelude.Maybe Prelude.Int,
    -- | Provides the name of the database engine to be used for this DB
    -- instance.
    DBInstance -> Maybe Text
engine :: Prelude.Maybe Prelude.Text,
    -- | 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 a Read Replica is promoted to
    -- the primary instance after a failure of the existing primary instance.
    DBInstance -> Maybe Int
promotionTier :: Prelude.Maybe Prelude.Int,
    -- | 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 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,
    -- | /(Not supported by Neptune)/
    DBInstance -> Maybe Text
characterSetName :: Prelude.Maybe Prelude.Text,
    -- | Not supported: The encryption for DB instances is managed by the DB
    -- cluster.
    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,
    -- | 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,
    -- | /(Not supported by Neptune)/
    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,
    -- | Specifies if the DB instance is a Multi-AZ deployment.
    DBInstance -> Maybe Bool
multiAZ :: Prelude.Maybe Prelude.Bool,
    -- | /(Not supported by Neptune)/
    DBInstance -> Maybe [OptionGroupMembership]
optionGroupMemberships :: Prelude.Maybe [OptionGroupMembership],
    -- | A list of log types that this DB instance is configured to export to
    -- CloudWatch Logs.
    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,
    -- | /(Not supported by Neptune)/
    DBInstance -> Maybe Bool
performanceInsightsEnabled :: Prelude.Maybe Prelude.Bool,
    -- | Not supported by Neptune.
    DBInstance -> Maybe Int
allocatedStorage :: Prelude.Maybe Prelude.Int,
    -- | The Amazon Region-unique, immutable identifier for the DB instance. This
    -- identifier is found in Amazon CloudTrail log entries whenever the Amazon
    -- KMS key 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.
    DBInstance -> Maybe Bool
copyTagsToSnapshot :: Prelude.Maybe Prelude.Bool,
    -- | Not supported.
    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,
    -- | Specifies the connection endpoint.
    DBInstance -> Maybe Endpoint
endpoint :: Prelude.Maybe Endpoint,
    -- | Specifies the current state of this database.
    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,
    -- | 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 DB clusters that are Read Replicas
    -- of this DB instance.
    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 is not a Read Replica,
    -- this is blank.
    DBInstance -> Maybe [DBInstanceStatusInfo]
statusInfos :: Prelude.Maybe [DBInstanceStatusInfo],
    -- | Not supported
    DBInstance -> Maybe [DomainMembership]
domainMemberships :: Prelude.Maybe [DomainMembership],
    -- | The database name.
    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' - Provides List of DB security group elements containing only
-- @DBSecurityGroup.Name@ and @DBSecurityGroup.Status@ subelements.
--
-- 'deletionProtection', 'dbInstance_deletionProtection' - Indicates whether or not the DB instance has deletion protection
-- enabled. The instance can\'t be deleted when deletion protection is
-- enabled. See
-- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html Deleting a DB Instance>.
--
-- 'storageEncrypted', 'dbInstance_storageEncrypted' - Not supported: The encryption for DB instances is managed by the DB
-- cluster.
--
-- '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' - This flag should no longer be used.
--
-- 'autoMinorVersionUpgrade', 'dbInstance_autoMinorVersionUpgrade' - Indicates that minor version patches are applied automatically.
--
-- 'dbInstanceArn', 'dbInstance_dbInstanceArn' - The Amazon Resource Name (ARN) for the DB instance.
--
-- 'masterUsername', 'dbInstance_masterUsername' - Not supported by Neptune.
--
-- 'readReplicaDBInstanceIdentifiers', 'dbInstance_readReplicaDBInstanceIdentifiers' - Contains one or more identifiers of the Read Replicas associated with
-- this DB instance.
--
-- 'iAMDatabaseAuthenticationEnabled', 'dbInstance_iAMDatabaseAuthenticationEnabled' - True if Amazon Identity and Access Management (IAM) authentication is
-- enabled, and otherwise false.
--
-- 'monitoringRoleArn', 'dbInstance_monitoringRoleArn' - The ARN for the IAM role that permits Neptune 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.
--
-- 'readReplicaSourceDBInstanceIdentifier', 'dbInstance_readReplicaSourceDBInstanceIdentifier' - Contains the identifier of the source DB instance if this DB instance is
-- a Read Replica.
--
-- 'monitoringInterval', 'dbInstance_monitoringInterval' - The interval, in seconds, between points when Enhanced Monitoring
-- metrics are collected for the DB instance.
--
-- 'engine', 'dbInstance_engine' - Provides the name of the database engine to be used for this 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 a Read Replica is promoted to
-- the primary instance after a failure of the existing primary instance.
--
-- '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).
--
-- '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' - /(Not supported by Neptune)/
--
-- 'kmsKeyId', 'dbInstance_kmsKeyId' - Not supported: The encryption for DB instances is managed by the DB
-- cluster.
--
-- 'preferredBackupWindow', 'dbInstance_preferredBackupWindow' - Specifies the daily time range during which automated backups are
-- created if automated backups are enabled, as determined by the
-- @BackupRetentionPeriod@.
--
-- '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.
--
-- 'performanceInsightsKMSKeyId', 'dbInstance_performanceInsightsKMSKeyId' - /(Not supported by Neptune)/
--
-- 'dbSubnetGroup', 'dbInstance_dbSubnetGroup' - Specifies information on the subnet group associated with the DB
-- instance, including the name, description, and subnets in the subnet
-- group.
--
-- 'multiAZ', 'dbInstance_multiAZ' - Specifies if the DB instance is a Multi-AZ deployment.
--
-- 'optionGroupMemberships', 'dbInstance_optionGroupMemberships' - /(Not supported by Neptune)/
--
-- 'enabledCloudwatchLogsExports', 'dbInstance_enabledCloudwatchLogsExports' - A list of log types that this DB instance is configured to export to
-- CloudWatch Logs.
--
-- '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.
--
-- 'performanceInsightsEnabled', 'dbInstance_performanceInsightsEnabled' - /(Not supported by Neptune)/
--
-- 'allocatedStorage', 'dbInstance_allocatedStorage' - Not supported by Neptune.
--
-- 'dbiResourceId', 'dbInstance_dbiResourceId' - The Amazon Region-unique, immutable identifier for the DB instance. This
-- identifier is found in Amazon CloudTrail log entries whenever the Amazon
-- KMS key 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.
--
-- 'timezone', 'dbInstance_timezone' - Not supported.
--
-- 'tdeCredentialArn', 'dbInstance_tdeCredentialArn' - The ARN from the key store with which the instance is associated for TDE
-- encryption.
--
-- 'endpoint', 'dbInstance_endpoint' - Specifies the connection endpoint.
--
-- 'dbInstanceStatus', 'dbInstance_dbInstanceStatus' - Specifies the current state of this database.
--
-- '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.
--
-- 'pendingModifiedValues', 'dbInstance_pendingModifiedValues' - 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 DB clusters that are Read Replicas
-- of this DB instance.
--
-- 'storageType', 'dbInstance_storageType' - Specifies the storage type associated with DB instance.
--
-- 'statusInfos', 'dbInstance_statusInfos' - The status of a Read Replica. If the instance is not a Read Replica,
-- this is blank.
--
-- 'domainMemberships', 'dbInstance_domainMemberships' - Not supported
--
-- 'dbName', 'dbInstance_dbName' - The database name.
newDBInstance ::
  DBInstance
newDBInstance :: DBInstance
newDBInstance =
  DBInstance' :: Maybe Text
-> Maybe [DBSecurityGroupMembership]
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe Bool
-> Maybe Text
-> Maybe Int
-> Maybe ISO8601
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe ISO8601
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [VpcSecurityGroupMembership]
-> Maybe Int
-> Maybe Text
-> Maybe DBSubnetGroup
-> Maybe Bool
-> Maybe [OptionGroupMembership]
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Int
-> Maybe Text
-> Maybe [DBParameterGroupStatus]
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Endpoint
-> Maybe Text
-> Maybe Int
-> 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: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: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:readReplicaSourceDBInstanceIdentifier:DBInstance' :: Maybe Text
readReplicaSourceDBInstanceIdentifier =
        Maybe Text
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: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: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: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: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: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: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:multiAZ:DBInstance' :: Maybe Bool
multiAZ = Maybe Bool
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: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: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: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)

-- | Provides List of DB security group elements containing only
-- @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 whether or not the DB instance has deletion protection
-- enabled. The instance can\'t be deleted when deletion protection is
-- enabled. See
-- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.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)

-- | Not supported: The encryption for DB instances is managed by the DB
-- cluster.
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)

-- | This flag should no longer be used.
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)

-- | 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)

-- | Not supported by Neptune.
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 Amazon Identity and Access Management (IAM) authentication is
-- enabled, and otherwise false.
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 Neptune 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

-- | 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 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)

-- | Provides 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)

-- | 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 a Read Replica is promoted to
-- the primary instance after a failure of the existing primary instance.
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)

-- | 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 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)

-- | /(Not supported by Neptune)/
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)

-- | Not supported: The encryption for DB instances is managed by the DB
-- cluster.
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)

-- | 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)

-- | /(Not supported by Neptune)/
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)

-- | 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)

-- | /(Not supported by Neptune)/
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.
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)

-- | /(Not supported by Neptune)/
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)

-- | Not supported by Neptune.
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 Region-unique, immutable identifier for the DB instance. This
-- identifier is found in Amazon CloudTrail log entries whenever the Amazon
-- KMS key 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.
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)

-- | Not supported.
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)

-- | Specifies the connection endpoint.
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.
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)

-- | 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 DB clusters that are Read Replicas
-- of this DB instance.
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 is not 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

-- | Not supported
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 database name.
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 Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe Bool
-> Maybe Text
-> Maybe Int
-> Maybe ISO8601
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe ISO8601
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [VpcSecurityGroupMembership]
-> Maybe Int
-> Maybe Text
-> Maybe DBSubnetGroup
-> Maybe Bool
-> Maybe [OptionGroupMembership]
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Int
-> Maybe Text
-> Maybe [DBParameterGroupStatus]
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Endpoint
-> Maybe Text
-> Maybe Int
-> Maybe PendingModifiedValues
-> Maybe [Text]
-> Maybe Text
-> Maybe [DBInstanceStatusInfo]
-> Maybe [DomainMembership]
-> Maybe Text
-> DBInstance
DBInstance'
      (Maybe Text
 -> Maybe [DBSecurityGroupMembership]
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Int
 -> Maybe ISO8601
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe ISO8601
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe [VpcSecurityGroupMembership]
 -> Maybe Int
 -> Maybe Text
 -> Maybe DBSubnetGroup
 -> Maybe Bool
 -> Maybe [OptionGroupMembership]
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Int
 -> Maybe Text
 -> Maybe [DBParameterGroupStatus]
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe Endpoint
 -> Maybe Text
 -> Maybe Int
 -> Maybe PendingModifiedValues
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe [DBInstanceStatusInfo]
 -> Maybe [DomainMembership]
 -> Maybe Text
 -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [DBSecurityGroupMembership]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe [DBSecurityGroupMembership])
-> Either
     String
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> 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 [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> 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 [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> 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 [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 [Text]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> 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 Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> 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 Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> 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 Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Int
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> 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 ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Int
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Int
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Text
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe ISO8601
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 ISO8601
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> 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 Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> 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 Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> 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 Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Text
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> 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 DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe [VpcSecurityGroupMembership])
-> Either
     String
     (Maybe Int
      -> Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Text
      -> Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 DBSubnetGroup
   -> Maybe Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe DBSubnetGroup
      -> Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe DBSubnetGroup)
-> Either
     String
     (Maybe Bool
      -> Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Bool
   -> Maybe [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe [OptionGroupMembership]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 [OptionGroupMembership]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> 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 Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe [Text])
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [DBParameterGroupStatus]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [DBParameterGroupStatus]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Endpoint
   -> Maybe Text
   -> Maybe Int
   -> 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 Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Endpoint
   -> Maybe Text
   -> Maybe Int
   -> 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 Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Endpoint
   -> Maybe Text
   -> Maybe Int
   -> 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 Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Endpoint
   -> Maybe Text
   -> Maybe Int
   -> 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 Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Endpoint
      -> Maybe Text
      -> Maybe Int
      -> 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 Endpoint
   -> Maybe Text
   -> Maybe Int
   -> Maybe PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Endpoint)
-> Either
     String
     (Maybe Text
      -> Maybe Int
      -> 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 PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Int
      -> 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 PendingModifiedValues
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [DBInstanceStatusInfo]
   -> Maybe [DomainMembership]
   -> Maybe Text
   -> DBInstance)
-> Either String (Maybe Int)
-> 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 Int)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DbInstancePort")
      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