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

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

-- |
-- Module      : Amazonka.RDS.Types.DBCluster
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.RDS.Types.DBCluster where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import Amazonka.RDS.Types.ActivityStreamMode
import Amazonka.RDS.Types.ActivityStreamStatus
import Amazonka.RDS.Types.ClusterPendingModifiedValues
import Amazonka.RDS.Types.DBClusterMember
import Amazonka.RDS.Types.DBClusterOptionGroupStatus
import Amazonka.RDS.Types.DBClusterRole
import Amazonka.RDS.Types.DomainMembership
import Amazonka.RDS.Types.ScalingConfigurationInfo
import Amazonka.RDS.Types.Tag
import Amazonka.RDS.Types.VpcSecurityGroupMembership
import Amazonka.RDS.Types.WriteForwardingStatus

-- | Contains the details of an Amazon Aurora DB cluster.
--
-- This data type is used as a response element in the
-- @DescribeDBClusters@, @StopDBCluster@, and @StartDBCluster@ actions.
--
-- /See:/ 'newDBCluster' smart constructor.
data DBCluster = DBCluster'
  { -- | The number of change records stored for Backtrack.
    DBCluster -> Maybe Integer
backtrackConsumedChangeRecords :: Prelude.Maybe Prelude.Integer,
    -- | Indicates the database engine version.
    DBCluster -> Maybe Text
engineVersion :: Prelude.Maybe Prelude.Text,
    -- | Specifies the current state of this DB cluster.
    DBCluster -> Maybe Text
status :: Prelude.Maybe Prelude.Text,
    -- | Indicates if the DB cluster has deletion protection enabled. The
    -- database can\'t be deleted when deletion protection is enabled.
    DBCluster -> Maybe Bool
deletionProtection :: Prelude.Maybe Prelude.Bool,
    -- | The time when a stopped DB cluster is restarted automatically.
    DBCluster -> Maybe ISO8601
automaticRestartTime :: Prelude.Maybe Core.ISO8601,
    -- | Specifies whether the DB cluster is encrypted.
    DBCluster -> Maybe Bool
storageEncrypted :: Prelude.Maybe Prelude.Bool,
    -- | Contains a user-supplied DB cluster identifier. This identifier is the
    -- unique key that identifies a DB cluster.
    DBCluster -> Maybe Text
dbClusterIdentifier :: Prelude.Maybe Prelude.Text,
    -- | Provides the list of instances that make up the DB cluster.
    DBCluster -> Maybe [DBClusterMember]
dbClusterMembers :: Prelude.Maybe [DBClusterMember],
    -- | Contains one or more identifiers of the read replicas associated with
    -- this DB cluster.
    DBCluster -> Maybe [Text]
readReplicaIdentifiers :: Prelude.Maybe [Prelude.Text],
    -- | Contains the identifier of the source DB cluster if this DB cluster is a
    -- read replica.
    DBCluster -> Maybe Text
replicationSourceIdentifier :: Prelude.Maybe Prelude.Text,
    -- | The name of the Amazon Kinesis data stream used for the database
    -- activity stream.
    DBCluster -> Maybe Text
activityStreamKinesisStreamName :: Prelude.Maybe Prelude.Text,
    -- | Specifies the ID that Amazon Route 53 assigns when you create a hosted
    -- zone.
    DBCluster -> Maybe Text
hostedZoneId :: Prelude.Maybe Prelude.Text,
    -- | Specifies the name of the DB cluster parameter group for the DB cluster.
    DBCluster -> Maybe Text
dbClusterParameterGroup :: Prelude.Maybe Prelude.Text,
    -- | Contains the master username for the DB cluster.
    DBCluster -> Maybe Text
masterUsername :: Prelude.Maybe Prelude.Text,
    -- | A value that indicates whether the mapping of Amazon Web Services
    -- Identity and Access Management (IAM) accounts to database accounts is
    -- enabled.
    DBCluster -> Maybe Bool
iAMDatabaseAuthenticationEnabled :: Prelude.Maybe Prelude.Bool,
    -- | Specifies whether you have requested to enable write forwarding for a
    -- secondary cluster in an Aurora global database. Because write forwarding
    -- takes time to enable, check the value of @GlobalWriteForwardingStatus@
    -- to confirm that the request has completed before using the write
    -- forwarding feature for this cluster.
    DBCluster -> Maybe Bool
globalWriteForwardingRequested :: Prelude.Maybe Prelude.Bool,
    -- | The earliest time to which a DB cluster can be backtracked.
    DBCluster -> Maybe ISO8601
earliestBacktrackTime :: Prelude.Maybe Core.ISO8601,
    -- | The target backtrack window, in seconds. If this value is set to 0,
    -- backtracking is disabled for the DB cluster. Otherwise, backtracking is
    -- enabled.
    DBCluster -> Maybe Integer
backtrackWindow :: Prelude.Maybe Prelude.Integer,
    DBCluster -> Maybe [Tag]
tagList :: Prelude.Maybe [Tag],
    -- | The Amazon Web Services Region-unique, immutable identifier for the DB
    -- cluster. This identifier is found in Amazon Web Services CloudTrail log
    -- entries whenever the Amazon Web Services KMS CMK for the DB cluster is
    -- accessed.
    DBCluster -> Maybe Text
dbClusterResourceId :: Prelude.Maybe Prelude.Text,
    -- | The earliest time to which a database can be restored with point-in-time
    -- restore.
    DBCluster -> Maybe ISO8601
earliestRestorableTime :: Prelude.Maybe Core.ISO8601,
    -- | Identifies all custom endpoints associated with the cluster.
    DBCluster -> Maybe [Text]
customEndpoints :: Prelude.Maybe [Prelude.Text],
    -- | The name of the database engine to be used for this DB cluster.
    DBCluster -> Maybe Text
engine :: Prelude.Maybe Prelude.Text,
    -- | A value that indicates whether the HTTP endpoint for an Aurora
    -- Serverless DB cluster is enabled.
    --
    -- When enabled, the HTTP endpoint provides a connectionless web service
    -- API for running SQL queries on the Aurora Serverless DB cluster. You can
    -- also query your database from inside the RDS console with the query
    -- editor.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html Using the Data API for Aurora Serverless>
    -- in the /Amazon Aurora User Guide/.
    DBCluster -> Maybe Bool
httpEndpointEnabled :: Prelude.Maybe Prelude.Bool,
    -- | The Amazon Resource Name (ARN) for the DB cluster.
    DBCluster -> Maybe Text
dbClusterArn :: Prelude.Maybe Prelude.Text,
    -- | Identifies the clone group to which the DB cluster is associated.
    DBCluster -> Maybe Text
cloneGroupId :: Prelude.Maybe Prelude.Text,
    -- | Specifies the latest time to which a database can be restored with
    -- point-in-time restore.
    DBCluster -> Maybe ISO8601
latestRestorableTime :: Prelude.Maybe Core.ISO8601,
    -- | Specifies whether the DB cluster is a clone of a DB cluster owned by a
    -- different Amazon Web Services account.
    DBCluster -> Maybe Bool
crossAccountClone :: Prelude.Maybe Prelude.Bool,
    -- | The current capacity of an Aurora Serverless DB cluster. The capacity is
    -- 0 (zero) when the cluster is paused.
    --
    -- For more information about Aurora Serverless, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html Using Amazon Aurora Serverless>
    -- in the /Amazon Aurora User Guide/.
    DBCluster -> Maybe Int
capacity :: Prelude.Maybe Prelude.Int,
    -- | Specifies the weekly time range during which system maintenance can
    -- occur, in Universal Coordinated Time (UTC).
    DBCluster -> Maybe Text
preferredMaintenanceWindow :: Prelude.Maybe Prelude.Text,
    -- | Provides the list of Availability Zones (AZs) where instances in the DB
    -- cluster can be created.
    DBCluster -> Maybe [Text]
availabilityZones :: Prelude.Maybe [Prelude.Text],
    -- | If present, specifies the name of the character set that this cluster is
    -- associated with.
    DBCluster -> Maybe Text
characterSetName :: Prelude.Maybe Prelude.Text,
    -- | If @StorageEncrypted@ is enabled, the Amazon Web Services KMS key
    -- identifier for the encrypted DB cluster.
    --
    -- The Amazon Web Services KMS key identifier is the key ARN, key ID, alias
    -- ARN, or alias name for the Amazon Web Services KMS customer master key
    -- (CMK).
    DBCluster -> 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@.
    DBCluster -> Maybe Text
preferredBackupWindow :: Prelude.Maybe Prelude.Text,
    -- | Provides a list of the Amazon Web Services Identity and Access
    -- Management (IAM) roles that are associated with the DB cluster. IAM
    -- roles that are associated with a DB cluster grant permission for the DB
    -- cluster to access other Amazon Web Services on your behalf.
    DBCluster -> Maybe [DBClusterRole]
associatedRoles :: Prelude.Maybe [DBClusterRole],
    -- | Provides a list of VPC security groups that the DB cluster belongs to.
    DBCluster -> Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups :: Prelude.Maybe [VpcSecurityGroupMembership],
    -- | Specifies the number of days for which automatic DB snapshots are
    -- retained.
    DBCluster -> Maybe Int
backupRetentionPeriod :: Prelude.Maybe Prelude.Int,
    -- | Specifies information on the subnet group associated with the DB
    -- cluster, including the name, description, and subnets in the subnet
    -- group.
    DBCluster -> Maybe Text
dbSubnetGroup :: Prelude.Maybe Prelude.Text,
    -- | The mode of the database activity stream. Database events such as a
    -- change or access generate an activity stream event. The database session
    -- can handle these events either synchronously or asynchronously.
    DBCluster -> Maybe ActivityStreamMode
activityStreamMode :: Prelude.Maybe ActivityStreamMode,
    -- | Contains the name of the initial database of this DB cluster that was
    -- provided at create time, if one was specified when the DB cluster was
    -- created. This same name is returned for the life of the DB cluster.
    DBCluster -> Maybe Text
databaseName :: Prelude.Maybe Prelude.Text,
    -- | Specifies whether the DB cluster has instances in multiple Availability
    -- Zones.
    DBCluster -> Maybe Bool
multiAZ :: Prelude.Maybe Prelude.Bool,
    -- | The DB engine mode of the DB cluster, either @provisioned@,
    -- @serverless@, @parallelquery@, @global@, or @multimaster@.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html CreateDBCluster>.
    DBCluster -> Maybe Text
engineMode :: Prelude.Maybe Prelude.Text,
    -- | A list of log types that this DB cluster is configured to export to
    -- CloudWatch Logs.
    --
    -- Log types vary by DB engine. For information about the log types for
    -- each DB engine, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html Amazon RDS Database Log Files>
    -- in the /Amazon Aurora User Guide./
    DBCluster -> Maybe [Text]
enabledCloudwatchLogsExports :: Prelude.Maybe [Prelude.Text],
    -- | The status of the database activity stream.
    DBCluster -> Maybe ActivityStreamStatus
activityStreamStatus :: Prelude.Maybe ActivityStreamStatus,
    -- | For all database engines except Amazon Aurora, @AllocatedStorage@
    -- specifies the allocated storage size in gibibytes (GiB). For Aurora,
    -- @AllocatedStorage@ always returns 1, because Aurora DB cluster storage
    -- size isn\'t fixed, but instead automatically adjusts as needed.
    DBCluster -> Maybe Int
allocatedStorage :: Prelude.Maybe Prelude.Int,
    -- | Specifies whether tags are copied from the DB cluster to snapshots of
    -- the DB cluster.
    DBCluster -> Maybe Bool
copyTagsToSnapshot :: Prelude.Maybe Prelude.Bool,
    -- | Specifies the time when the DB cluster was created, in Universal
    -- Coordinated Time (UTC).
    DBCluster -> Maybe ISO8601
clusterCreateTime :: Prelude.Maybe Core.ISO8601,
    -- | Specifies the connection endpoint for the primary instance of the DB
    -- cluster.
    DBCluster -> Maybe Text
endpoint :: Prelude.Maybe Prelude.Text,
    DBCluster -> Maybe ScalingConfigurationInfo
scalingConfigurationInfo :: Prelude.Maybe ScalingConfigurationInfo,
    -- | The Amazon Web Services KMS key identifier used for encrypting messages
    -- in the database activity stream.
    --
    -- The Amazon Web Services KMS key identifier is the key ARN, key ID, alias
    -- ARN, or alias name for the Amazon Web Services KMS customer master key
    -- (CMK).
    DBCluster -> Maybe Text
activityStreamKmsKeyId :: Prelude.Maybe Prelude.Text,
    -- | Specifies the progress of the operation as a percentage.
    DBCluster -> Maybe Text
percentProgress :: Prelude.Maybe Prelude.Text,
    -- | A value that specifies that changes to the DB cluster are pending. This
    -- element is only included when changes are pending. Specific changes are
    -- identified by subelements.
    DBCluster -> Maybe ClusterPendingModifiedValues
pendingModifiedValues :: Prelude.Maybe ClusterPendingModifiedValues,
    -- | The reader endpoint for the DB cluster. The reader endpoint for a DB
    -- cluster load-balances connections across the Aurora Replicas that are
    -- available in a DB cluster. As clients request new connections to the
    -- reader endpoint, Aurora distributes the connection requests among the
    -- Aurora Replicas in the DB cluster. This functionality can help balance
    -- your read workload across multiple Aurora Replicas in your DB cluster.
    --
    -- If a failover occurs, and the Aurora Replica that you are connected to
    -- is promoted to be the primary instance, your connection is dropped. To
    -- continue sending your read workload to other Aurora Replicas in the
    -- cluster, you can then reconnect to the reader endpoint.
    DBCluster -> Maybe Text
readerEndpoint :: Prelude.Maybe Prelude.Text,
    -- | Specifies whether a secondary cluster in an Aurora global database has
    -- write forwarding enabled, not enabled, or is in the process of enabling
    -- it.
    DBCluster -> Maybe WriteForwardingStatus
globalWriteForwardingStatus :: Prelude.Maybe WriteForwardingStatus,
    -- | Specifies the port that the database engine is listening on.
    DBCluster -> Maybe Int
port :: Prelude.Maybe Prelude.Int,
    -- | The Active Directory Domain membership records associated with the DB
    -- cluster.
    DBCluster -> Maybe [DomainMembership]
domainMemberships :: Prelude.Maybe [DomainMembership],
    -- | Provides the list of option group memberships for this DB cluster.
    DBCluster -> Maybe [DBClusterOptionGroupStatus]
dbClusterOptionGroupMemberships :: Prelude.Maybe [DBClusterOptionGroupStatus]
  }
  deriving (DBCluster -> DBCluster -> Bool
(DBCluster -> DBCluster -> Bool)
-> (DBCluster -> DBCluster -> Bool) -> Eq DBCluster
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DBCluster -> DBCluster -> Bool
$c/= :: DBCluster -> DBCluster -> Bool
== :: DBCluster -> DBCluster -> Bool
$c== :: DBCluster -> DBCluster -> Bool
Prelude.Eq, ReadPrec [DBCluster]
ReadPrec DBCluster
Int -> ReadS DBCluster
ReadS [DBCluster]
(Int -> ReadS DBCluster)
-> ReadS [DBCluster]
-> ReadPrec DBCluster
-> ReadPrec [DBCluster]
-> Read DBCluster
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DBCluster]
$creadListPrec :: ReadPrec [DBCluster]
readPrec :: ReadPrec DBCluster
$creadPrec :: ReadPrec DBCluster
readList :: ReadS [DBCluster]
$creadList :: ReadS [DBCluster]
readsPrec :: Int -> ReadS DBCluster
$creadsPrec :: Int -> ReadS DBCluster
Prelude.Read, Int -> DBCluster -> ShowS
[DBCluster] -> ShowS
DBCluster -> String
(Int -> DBCluster -> ShowS)
-> (DBCluster -> String)
-> ([DBCluster] -> ShowS)
-> Show DBCluster
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DBCluster] -> ShowS
$cshowList :: [DBCluster] -> ShowS
show :: DBCluster -> String
$cshow :: DBCluster -> String
showsPrec :: Int -> DBCluster -> ShowS
$cshowsPrec :: Int -> DBCluster -> ShowS
Prelude.Show, (forall x. DBCluster -> Rep DBCluster x)
-> (forall x. Rep DBCluster x -> DBCluster) -> Generic DBCluster
forall x. Rep DBCluster x -> DBCluster
forall x. DBCluster -> Rep DBCluster x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DBCluster x -> DBCluster
$cfrom :: forall x. DBCluster -> Rep DBCluster x
Prelude.Generic)

-- |
-- Create a value of 'DBCluster' 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:
--
-- 'backtrackConsumedChangeRecords', 'dbCluster_backtrackConsumedChangeRecords' - The number of change records stored for Backtrack.
--
-- 'engineVersion', 'dbCluster_engineVersion' - Indicates the database engine version.
--
-- 'status', 'dbCluster_status' - Specifies the current state of this DB cluster.
--
-- 'deletionProtection', 'dbCluster_deletionProtection' - Indicates if the DB cluster has deletion protection enabled. The
-- database can\'t be deleted when deletion protection is enabled.
--
-- 'automaticRestartTime', 'dbCluster_automaticRestartTime' - The time when a stopped DB cluster is restarted automatically.
--
-- 'storageEncrypted', 'dbCluster_storageEncrypted' - Specifies whether the DB cluster is encrypted.
--
-- 'dbClusterIdentifier', 'dbCluster_dbClusterIdentifier' - Contains a user-supplied DB cluster identifier. This identifier is the
-- unique key that identifies a DB cluster.
--
-- 'dbClusterMembers', 'dbCluster_dbClusterMembers' - Provides the list of instances that make up the DB cluster.
--
-- 'readReplicaIdentifiers', 'dbCluster_readReplicaIdentifiers' - Contains one or more identifiers of the read replicas associated with
-- this DB cluster.
--
-- 'replicationSourceIdentifier', 'dbCluster_replicationSourceIdentifier' - Contains the identifier of the source DB cluster if this DB cluster is a
-- read replica.
--
-- 'activityStreamKinesisStreamName', 'dbCluster_activityStreamKinesisStreamName' - The name of the Amazon Kinesis data stream used for the database
-- activity stream.
--
-- 'hostedZoneId', 'dbCluster_hostedZoneId' - Specifies the ID that Amazon Route 53 assigns when you create a hosted
-- zone.
--
-- 'dbClusterParameterGroup', 'dbCluster_dbClusterParameterGroup' - Specifies the name of the DB cluster parameter group for the DB cluster.
--
-- 'masterUsername', 'dbCluster_masterUsername' - Contains the master username for the DB cluster.
--
-- 'iAMDatabaseAuthenticationEnabled', 'dbCluster_iAMDatabaseAuthenticationEnabled' - A value that indicates whether the mapping of Amazon Web Services
-- Identity and Access Management (IAM) accounts to database accounts is
-- enabled.
--
-- 'globalWriteForwardingRequested', 'dbCluster_globalWriteForwardingRequested' - Specifies whether you have requested to enable write forwarding for a
-- secondary cluster in an Aurora global database. Because write forwarding
-- takes time to enable, check the value of @GlobalWriteForwardingStatus@
-- to confirm that the request has completed before using the write
-- forwarding feature for this cluster.
--
-- 'earliestBacktrackTime', 'dbCluster_earliestBacktrackTime' - The earliest time to which a DB cluster can be backtracked.
--
-- 'backtrackWindow', 'dbCluster_backtrackWindow' - The target backtrack window, in seconds. If this value is set to 0,
-- backtracking is disabled for the DB cluster. Otherwise, backtracking is
-- enabled.
--
-- 'tagList', 'dbCluster_tagList' - Undocumented member.
--
-- 'dbClusterResourceId', 'dbCluster_dbClusterResourceId' - The Amazon Web Services Region-unique, immutable identifier for the DB
-- cluster. This identifier is found in Amazon Web Services CloudTrail log
-- entries whenever the Amazon Web Services KMS CMK for the DB cluster is
-- accessed.
--
-- 'earliestRestorableTime', 'dbCluster_earliestRestorableTime' - The earliest time to which a database can be restored with point-in-time
-- restore.
--
-- 'customEndpoints', 'dbCluster_customEndpoints' - Identifies all custom endpoints associated with the cluster.
--
-- 'engine', 'dbCluster_engine' - The name of the database engine to be used for this DB cluster.
--
-- 'httpEndpointEnabled', 'dbCluster_httpEndpointEnabled' - A value that indicates whether the HTTP endpoint for an Aurora
-- Serverless DB cluster is enabled.
--
-- When enabled, the HTTP endpoint provides a connectionless web service
-- API for running SQL queries on the Aurora Serverless DB cluster. You can
-- also query your database from inside the RDS console with the query
-- editor.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html Using the Data API for Aurora Serverless>
-- in the /Amazon Aurora User Guide/.
--
-- 'dbClusterArn', 'dbCluster_dbClusterArn' - The Amazon Resource Name (ARN) for the DB cluster.
--
-- 'cloneGroupId', 'dbCluster_cloneGroupId' - Identifies the clone group to which the DB cluster is associated.
--
-- 'latestRestorableTime', 'dbCluster_latestRestorableTime' - Specifies the latest time to which a database can be restored with
-- point-in-time restore.
--
-- 'crossAccountClone', 'dbCluster_crossAccountClone' - Specifies whether the DB cluster is a clone of a DB cluster owned by a
-- different Amazon Web Services account.
--
-- 'capacity', 'dbCluster_capacity' - The current capacity of an Aurora Serverless DB cluster. The capacity is
-- 0 (zero) when the cluster is paused.
--
-- For more information about Aurora Serverless, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html Using Amazon Aurora Serverless>
-- in the /Amazon Aurora User Guide/.
--
-- 'preferredMaintenanceWindow', 'dbCluster_preferredMaintenanceWindow' - Specifies the weekly time range during which system maintenance can
-- occur, in Universal Coordinated Time (UTC).
--
-- 'availabilityZones', 'dbCluster_availabilityZones' - Provides the list of Availability Zones (AZs) where instances in the DB
-- cluster can be created.
--
-- 'characterSetName', 'dbCluster_characterSetName' - If present, specifies the name of the character set that this cluster is
-- associated with.
--
-- 'kmsKeyId', 'dbCluster_kmsKeyId' - If @StorageEncrypted@ is enabled, the Amazon Web Services KMS key
-- identifier for the encrypted DB cluster.
--
-- The Amazon Web Services KMS key identifier is the key ARN, key ID, alias
-- ARN, or alias name for the Amazon Web Services KMS customer master key
-- (CMK).
--
-- 'preferredBackupWindow', 'dbCluster_preferredBackupWindow' - Specifies the daily time range during which automated backups are
-- created if automated backups are enabled, as determined by the
-- @BackupRetentionPeriod@.
--
-- 'associatedRoles', 'dbCluster_associatedRoles' - Provides a list of the Amazon Web Services Identity and Access
-- Management (IAM) roles that are associated with the DB cluster. IAM
-- roles that are associated with a DB cluster grant permission for the DB
-- cluster to access other Amazon Web Services on your behalf.
--
-- 'vpcSecurityGroups', 'dbCluster_vpcSecurityGroups' - Provides a list of VPC security groups that the DB cluster belongs to.
--
-- 'backupRetentionPeriod', 'dbCluster_backupRetentionPeriod' - Specifies the number of days for which automatic DB snapshots are
-- retained.
--
-- 'dbSubnetGroup', 'dbCluster_dbSubnetGroup' - Specifies information on the subnet group associated with the DB
-- cluster, including the name, description, and subnets in the subnet
-- group.
--
-- 'activityStreamMode', 'dbCluster_activityStreamMode' - The mode of the database activity stream. Database events such as a
-- change or access generate an activity stream event. The database session
-- can handle these events either synchronously or asynchronously.
--
-- 'databaseName', 'dbCluster_databaseName' - Contains the name of the initial database of this DB cluster that was
-- provided at create time, if one was specified when the DB cluster was
-- created. This same name is returned for the life of the DB cluster.
--
-- 'multiAZ', 'dbCluster_multiAZ' - Specifies whether the DB cluster has instances in multiple Availability
-- Zones.
--
-- 'engineMode', 'dbCluster_engineMode' - The DB engine mode of the DB cluster, either @provisioned@,
-- @serverless@, @parallelquery@, @global@, or @multimaster@.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html CreateDBCluster>.
--
-- 'enabledCloudwatchLogsExports', 'dbCluster_enabledCloudwatchLogsExports' - A list of log types that this DB cluster is configured to export to
-- CloudWatch Logs.
--
-- Log types vary by DB engine. For information about the log types for
-- each DB engine, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html Amazon RDS Database Log Files>
-- in the /Amazon Aurora User Guide./
--
-- 'activityStreamStatus', 'dbCluster_activityStreamStatus' - The status of the database activity stream.
--
-- 'allocatedStorage', 'dbCluster_allocatedStorage' - For all database engines except Amazon Aurora, @AllocatedStorage@
-- specifies the allocated storage size in gibibytes (GiB). For Aurora,
-- @AllocatedStorage@ always returns 1, because Aurora DB cluster storage
-- size isn\'t fixed, but instead automatically adjusts as needed.
--
-- 'copyTagsToSnapshot', 'dbCluster_copyTagsToSnapshot' - Specifies whether tags are copied from the DB cluster to snapshots of
-- the DB cluster.
--
-- 'clusterCreateTime', 'dbCluster_clusterCreateTime' - Specifies the time when the DB cluster was created, in Universal
-- Coordinated Time (UTC).
--
-- 'endpoint', 'dbCluster_endpoint' - Specifies the connection endpoint for the primary instance of the DB
-- cluster.
--
-- 'scalingConfigurationInfo', 'dbCluster_scalingConfigurationInfo' - Undocumented member.
--
-- 'activityStreamKmsKeyId', 'dbCluster_activityStreamKmsKeyId' - The Amazon Web Services KMS key identifier used for encrypting messages
-- in the database activity stream.
--
-- The Amazon Web Services KMS key identifier is the key ARN, key ID, alias
-- ARN, or alias name for the Amazon Web Services KMS customer master key
-- (CMK).
--
-- 'percentProgress', 'dbCluster_percentProgress' - Specifies the progress of the operation as a percentage.
--
-- 'pendingModifiedValues', 'dbCluster_pendingModifiedValues' - A value that specifies that changes to the DB cluster are pending. This
-- element is only included when changes are pending. Specific changes are
-- identified by subelements.
--
-- 'readerEndpoint', 'dbCluster_readerEndpoint' - The reader endpoint for the DB cluster. The reader endpoint for a DB
-- cluster load-balances connections across the Aurora Replicas that are
-- available in a DB cluster. As clients request new connections to the
-- reader endpoint, Aurora distributes the connection requests among the
-- Aurora Replicas in the DB cluster. This functionality can help balance
-- your read workload across multiple Aurora Replicas in your DB cluster.
--
-- If a failover occurs, and the Aurora Replica that you are connected to
-- is promoted to be the primary instance, your connection is dropped. To
-- continue sending your read workload to other Aurora Replicas in the
-- cluster, you can then reconnect to the reader endpoint.
--
-- 'globalWriteForwardingStatus', 'dbCluster_globalWriteForwardingStatus' - Specifies whether a secondary cluster in an Aurora global database has
-- write forwarding enabled, not enabled, or is in the process of enabling
-- it.
--
-- 'port', 'dbCluster_port' - Specifies the port that the database engine is listening on.
--
-- 'domainMemberships', 'dbCluster_domainMemberships' - The Active Directory Domain membership records associated with the DB
-- cluster.
--
-- 'dbClusterOptionGroupMemberships', 'dbCluster_dbClusterOptionGroupMemberships' - Provides the list of option group memberships for this DB cluster.
newDBCluster ::
  DBCluster
newDBCluster :: DBCluster
newDBCluster =
  DBCluster' :: Maybe Integer
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe ISO8601
-> Maybe Bool
-> Maybe Text
-> Maybe [DBClusterMember]
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe ISO8601
-> Maybe Integer
-> Maybe [Tag]
-> Maybe Text
-> Maybe ISO8601
-> Maybe [Text]
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe ISO8601
-> Maybe Bool
-> Maybe Int
-> Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [DBClusterRole]
-> Maybe [VpcSecurityGroupMembership]
-> Maybe Int
-> Maybe Text
-> Maybe ActivityStreamMode
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe [Text]
-> Maybe ActivityStreamStatus
-> Maybe Int
-> Maybe Bool
-> Maybe ISO8601
-> Maybe Text
-> Maybe ScalingConfigurationInfo
-> Maybe Text
-> Maybe Text
-> Maybe ClusterPendingModifiedValues
-> Maybe Text
-> Maybe WriteForwardingStatus
-> Maybe Int
-> Maybe [DomainMembership]
-> Maybe [DBClusterOptionGroupStatus]
-> DBCluster
DBCluster'
    { $sel:backtrackConsumedChangeRecords:DBCluster' :: Maybe Integer
backtrackConsumedChangeRecords =
        Maybe Integer
forall a. Maybe a
Prelude.Nothing,
      $sel:engineVersion:DBCluster' :: Maybe Text
engineVersion = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:status:DBCluster' :: Maybe Text
status = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:deletionProtection:DBCluster' :: Maybe Bool
deletionProtection = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:automaticRestartTime:DBCluster' :: Maybe ISO8601
automaticRestartTime = Maybe ISO8601
forall a. Maybe a
Prelude.Nothing,
      $sel:storageEncrypted:DBCluster' :: Maybe Bool
storageEncrypted = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:dbClusterIdentifier:DBCluster' :: Maybe Text
dbClusterIdentifier = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:dbClusterMembers:DBCluster' :: Maybe [DBClusterMember]
dbClusterMembers = Maybe [DBClusterMember]
forall a. Maybe a
Prelude.Nothing,
      $sel:readReplicaIdentifiers:DBCluster' :: Maybe [Text]
readReplicaIdentifiers = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:replicationSourceIdentifier:DBCluster' :: Maybe Text
replicationSourceIdentifier = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:activityStreamKinesisStreamName:DBCluster' :: Maybe Text
activityStreamKinesisStreamName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:hostedZoneId:DBCluster' :: Maybe Text
hostedZoneId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:dbClusterParameterGroup:DBCluster' :: Maybe Text
dbClusterParameterGroup = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:masterUsername:DBCluster' :: Maybe Text
masterUsername = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:iAMDatabaseAuthenticationEnabled:DBCluster' :: Maybe Bool
iAMDatabaseAuthenticationEnabled = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:globalWriteForwardingRequested:DBCluster' :: Maybe Bool
globalWriteForwardingRequested = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:earliestBacktrackTime:DBCluster' :: Maybe ISO8601
earliestBacktrackTime = Maybe ISO8601
forall a. Maybe a
Prelude.Nothing,
      $sel:backtrackWindow:DBCluster' :: Maybe Integer
backtrackWindow = Maybe Integer
forall a. Maybe a
Prelude.Nothing,
      $sel:tagList:DBCluster' :: Maybe [Tag]
tagList = Maybe [Tag]
forall a. Maybe a
Prelude.Nothing,
      $sel:dbClusterResourceId:DBCluster' :: Maybe Text
dbClusterResourceId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:earliestRestorableTime:DBCluster' :: Maybe ISO8601
earliestRestorableTime = Maybe ISO8601
forall a. Maybe a
Prelude.Nothing,
      $sel:customEndpoints:DBCluster' :: Maybe [Text]
customEndpoints = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:engine:DBCluster' :: Maybe Text
engine = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:httpEndpointEnabled:DBCluster' :: Maybe Bool
httpEndpointEnabled = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:dbClusterArn:DBCluster' :: Maybe Text
dbClusterArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:cloneGroupId:DBCluster' :: Maybe Text
cloneGroupId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:latestRestorableTime:DBCluster' :: Maybe ISO8601
latestRestorableTime = Maybe ISO8601
forall a. Maybe a
Prelude.Nothing,
      $sel:crossAccountClone:DBCluster' :: Maybe Bool
crossAccountClone = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:capacity:DBCluster' :: Maybe Int
capacity = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:preferredMaintenanceWindow:DBCluster' :: Maybe Text
preferredMaintenanceWindow = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:availabilityZones:DBCluster' :: Maybe [Text]
availabilityZones = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:characterSetName:DBCluster' :: Maybe Text
characterSetName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:kmsKeyId:DBCluster' :: Maybe Text
kmsKeyId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:preferredBackupWindow:DBCluster' :: Maybe Text
preferredBackupWindow = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:associatedRoles:DBCluster' :: Maybe [DBClusterRole]
associatedRoles = Maybe [DBClusterRole]
forall a. Maybe a
Prelude.Nothing,
      $sel:vpcSecurityGroups:DBCluster' :: Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups = Maybe [VpcSecurityGroupMembership]
forall a. Maybe a
Prelude.Nothing,
      $sel:backupRetentionPeriod:DBCluster' :: Maybe Int
backupRetentionPeriod = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:dbSubnetGroup:DBCluster' :: Maybe Text
dbSubnetGroup = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:activityStreamMode:DBCluster' :: Maybe ActivityStreamMode
activityStreamMode = Maybe ActivityStreamMode
forall a. Maybe a
Prelude.Nothing,
      $sel:databaseName:DBCluster' :: Maybe Text
databaseName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:multiAZ:DBCluster' :: Maybe Bool
multiAZ = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:engineMode:DBCluster' :: Maybe Text
engineMode = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:enabledCloudwatchLogsExports:DBCluster' :: Maybe [Text]
enabledCloudwatchLogsExports = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:activityStreamStatus:DBCluster' :: Maybe ActivityStreamStatus
activityStreamStatus = Maybe ActivityStreamStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:allocatedStorage:DBCluster' :: Maybe Int
allocatedStorage = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:copyTagsToSnapshot:DBCluster' :: Maybe Bool
copyTagsToSnapshot = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:clusterCreateTime:DBCluster' :: Maybe ISO8601
clusterCreateTime = Maybe ISO8601
forall a. Maybe a
Prelude.Nothing,
      $sel:endpoint:DBCluster' :: Maybe Text
endpoint = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:scalingConfigurationInfo:DBCluster' :: Maybe ScalingConfigurationInfo
scalingConfigurationInfo = Maybe ScalingConfigurationInfo
forall a. Maybe a
Prelude.Nothing,
      $sel:activityStreamKmsKeyId:DBCluster' :: Maybe Text
activityStreamKmsKeyId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:percentProgress:DBCluster' :: Maybe Text
percentProgress = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:pendingModifiedValues:DBCluster' :: Maybe ClusterPendingModifiedValues
pendingModifiedValues = Maybe ClusterPendingModifiedValues
forall a. Maybe a
Prelude.Nothing,
      $sel:readerEndpoint:DBCluster' :: Maybe Text
readerEndpoint = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:globalWriteForwardingStatus:DBCluster' :: Maybe WriteForwardingStatus
globalWriteForwardingStatus = Maybe WriteForwardingStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:port:DBCluster' :: Maybe Int
port = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:domainMemberships:DBCluster' :: Maybe [DomainMembership]
domainMemberships = Maybe [DomainMembership]
forall a. Maybe a
Prelude.Nothing,
      $sel:dbClusterOptionGroupMemberships:DBCluster' :: Maybe [DBClusterOptionGroupStatus]
dbClusterOptionGroupMemberships = Maybe [DBClusterOptionGroupStatus]
forall a. Maybe a
Prelude.Nothing
    }

-- | The number of change records stored for Backtrack.
dbCluster_backtrackConsumedChangeRecords :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Integer)
dbCluster_backtrackConsumedChangeRecords :: (Maybe Integer -> f (Maybe Integer)) -> DBCluster -> f DBCluster
dbCluster_backtrackConsumedChangeRecords = (DBCluster -> Maybe Integer)
-> (DBCluster -> Maybe Integer -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Integer) (Maybe Integer)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Integer
backtrackConsumedChangeRecords :: Maybe Integer
$sel:backtrackConsumedChangeRecords:DBCluster' :: DBCluster -> Maybe Integer
backtrackConsumedChangeRecords} -> Maybe Integer
backtrackConsumedChangeRecords) (\s :: DBCluster
s@DBCluster' {} Maybe Integer
a -> DBCluster
s {$sel:backtrackConsumedChangeRecords:DBCluster' :: Maybe Integer
backtrackConsumedChangeRecords = Maybe Integer
a} :: DBCluster)

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

-- | Specifies the current state of this DB cluster.
dbCluster_status :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)
dbCluster_status :: (Maybe Text -> f (Maybe Text)) -> DBCluster -> f DBCluster
dbCluster_status = (DBCluster -> Maybe Text)
-> (DBCluster -> Maybe Text -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Text
status :: Maybe Text
$sel:status:DBCluster' :: DBCluster -> Maybe Text
status} -> Maybe Text
status) (\s :: DBCluster
s@DBCluster' {} Maybe Text
a -> DBCluster
s {$sel:status:DBCluster' :: Maybe Text
status = Maybe Text
a} :: DBCluster)

-- | Indicates if the DB cluster has deletion protection enabled. The
-- database can\'t be deleted when deletion protection is enabled.
dbCluster_deletionProtection :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Bool)
dbCluster_deletionProtection :: (Maybe Bool -> f (Maybe Bool)) -> DBCluster -> f DBCluster
dbCluster_deletionProtection = (DBCluster -> Maybe Bool)
-> (DBCluster -> Maybe Bool -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Bool
deletionProtection :: Maybe Bool
$sel:deletionProtection:DBCluster' :: DBCluster -> Maybe Bool
deletionProtection} -> Maybe Bool
deletionProtection) (\s :: DBCluster
s@DBCluster' {} Maybe Bool
a -> DBCluster
s {$sel:deletionProtection:DBCluster' :: Maybe Bool
deletionProtection = Maybe Bool
a} :: DBCluster)

-- | The time when a stopped DB cluster is restarted automatically.
dbCluster_automaticRestartTime :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.UTCTime)
dbCluster_automaticRestartTime :: (Maybe UTCTime -> f (Maybe UTCTime)) -> DBCluster -> f DBCluster
dbCluster_automaticRestartTime = (DBCluster -> Maybe ISO8601)
-> (DBCluster -> Maybe ISO8601 -> DBCluster)
-> Lens DBCluster DBCluster (Maybe ISO8601) (Maybe ISO8601)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe ISO8601
automaticRestartTime :: Maybe ISO8601
$sel:automaticRestartTime:DBCluster' :: DBCluster -> Maybe ISO8601
automaticRestartTime} -> Maybe ISO8601
automaticRestartTime) (\s :: DBCluster
s@DBCluster' {} Maybe ISO8601
a -> DBCluster
s {$sel:automaticRestartTime:DBCluster' :: Maybe ISO8601
automaticRestartTime = Maybe ISO8601
a} :: DBCluster) ((Maybe ISO8601 -> f (Maybe ISO8601)) -> DBCluster -> f DBCluster)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe ISO8601 -> f (Maybe ISO8601))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DBCluster
-> f DBCluster
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso ISO8601 ISO8601 UTCTime UTCTime
-> Iso
     (Maybe ISO8601) (Maybe ISO8601) (Maybe UTCTime) (Maybe UTCTime)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso ISO8601 ISO8601 UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

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

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

-- | Provides the list of instances that make up the DB cluster.
dbCluster_dbClusterMembers :: Lens.Lens' DBCluster (Prelude.Maybe [DBClusterMember])
dbCluster_dbClusterMembers :: (Maybe [DBClusterMember] -> f (Maybe [DBClusterMember]))
-> DBCluster -> f DBCluster
dbCluster_dbClusterMembers = (DBCluster -> Maybe [DBClusterMember])
-> (DBCluster -> Maybe [DBClusterMember] -> DBCluster)
-> Lens
     DBCluster
     DBCluster
     (Maybe [DBClusterMember])
     (Maybe [DBClusterMember])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe [DBClusterMember]
dbClusterMembers :: Maybe [DBClusterMember]
$sel:dbClusterMembers:DBCluster' :: DBCluster -> Maybe [DBClusterMember]
dbClusterMembers} -> Maybe [DBClusterMember]
dbClusterMembers) (\s :: DBCluster
s@DBCluster' {} Maybe [DBClusterMember]
a -> DBCluster
s {$sel:dbClusterMembers:DBCluster' :: Maybe [DBClusterMember]
dbClusterMembers = Maybe [DBClusterMember]
a} :: DBCluster) ((Maybe [DBClusterMember] -> f (Maybe [DBClusterMember]))
 -> DBCluster -> f DBCluster)
-> ((Maybe [DBClusterMember] -> f (Maybe [DBClusterMember]))
    -> Maybe [DBClusterMember] -> f (Maybe [DBClusterMember]))
-> (Maybe [DBClusterMember] -> f (Maybe [DBClusterMember]))
-> DBCluster
-> f DBCluster
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [DBClusterMember]
  [DBClusterMember]
  [DBClusterMember]
  [DBClusterMember]
-> Iso
     (Maybe [DBClusterMember])
     (Maybe [DBClusterMember])
     (Maybe [DBClusterMember])
     (Maybe [DBClusterMember])
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
  [DBClusterMember]
  [DBClusterMember]
  [DBClusterMember]
  [DBClusterMember]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Contains one or more identifiers of the read replicas associated with
-- this DB cluster.
dbCluster_readReplicaIdentifiers :: Lens.Lens' DBCluster (Prelude.Maybe [Prelude.Text])
dbCluster_readReplicaIdentifiers :: (Maybe [Text] -> f (Maybe [Text])) -> DBCluster -> f DBCluster
dbCluster_readReplicaIdentifiers = (DBCluster -> Maybe [Text])
-> (DBCluster -> Maybe [Text] -> DBCluster)
-> Lens DBCluster DBCluster (Maybe [Text]) (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe [Text]
readReplicaIdentifiers :: Maybe [Text]
$sel:readReplicaIdentifiers:DBCluster' :: DBCluster -> Maybe [Text]
readReplicaIdentifiers} -> Maybe [Text]
readReplicaIdentifiers) (\s :: DBCluster
s@DBCluster' {} Maybe [Text]
a -> DBCluster
s {$sel:readReplicaIdentifiers:DBCluster' :: Maybe [Text]
readReplicaIdentifiers = Maybe [Text]
a} :: DBCluster) ((Maybe [Text] -> f (Maybe [Text])) -> DBCluster -> f DBCluster)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> DBCluster
-> f DBCluster
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

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

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

-- | Specifies the ID that Amazon Route 53 assigns when you create a hosted
-- zone.
dbCluster_hostedZoneId :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)
dbCluster_hostedZoneId :: (Maybe Text -> f (Maybe Text)) -> DBCluster -> f DBCluster
dbCluster_hostedZoneId = (DBCluster -> Maybe Text)
-> (DBCluster -> Maybe Text -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Text
hostedZoneId :: Maybe Text
$sel:hostedZoneId:DBCluster' :: DBCluster -> Maybe Text
hostedZoneId} -> Maybe Text
hostedZoneId) (\s :: DBCluster
s@DBCluster' {} Maybe Text
a -> DBCluster
s {$sel:hostedZoneId:DBCluster' :: Maybe Text
hostedZoneId = Maybe Text
a} :: DBCluster)

-- | Specifies the name of the DB cluster parameter group for the DB cluster.
dbCluster_dbClusterParameterGroup :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)
dbCluster_dbClusterParameterGroup :: (Maybe Text -> f (Maybe Text)) -> DBCluster -> f DBCluster
dbCluster_dbClusterParameterGroup = (DBCluster -> Maybe Text)
-> (DBCluster -> Maybe Text -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Text
dbClusterParameterGroup :: Maybe Text
$sel:dbClusterParameterGroup:DBCluster' :: DBCluster -> Maybe Text
dbClusterParameterGroup} -> Maybe Text
dbClusterParameterGroup) (\s :: DBCluster
s@DBCluster' {} Maybe Text
a -> DBCluster
s {$sel:dbClusterParameterGroup:DBCluster' :: Maybe Text
dbClusterParameterGroup = Maybe Text
a} :: DBCluster)

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

-- | A value that indicates whether the mapping of Amazon Web Services
-- Identity and Access Management (IAM) accounts to database accounts is
-- enabled.
dbCluster_iAMDatabaseAuthenticationEnabled :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Bool)
dbCluster_iAMDatabaseAuthenticationEnabled :: (Maybe Bool -> f (Maybe Bool)) -> DBCluster -> f DBCluster
dbCluster_iAMDatabaseAuthenticationEnabled = (DBCluster -> Maybe Bool)
-> (DBCluster -> Maybe Bool -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Bool
iAMDatabaseAuthenticationEnabled :: Maybe Bool
$sel:iAMDatabaseAuthenticationEnabled:DBCluster' :: DBCluster -> Maybe Bool
iAMDatabaseAuthenticationEnabled} -> Maybe Bool
iAMDatabaseAuthenticationEnabled) (\s :: DBCluster
s@DBCluster' {} Maybe Bool
a -> DBCluster
s {$sel:iAMDatabaseAuthenticationEnabled:DBCluster' :: Maybe Bool
iAMDatabaseAuthenticationEnabled = Maybe Bool
a} :: DBCluster)

-- | Specifies whether you have requested to enable write forwarding for a
-- secondary cluster in an Aurora global database. Because write forwarding
-- takes time to enable, check the value of @GlobalWriteForwardingStatus@
-- to confirm that the request has completed before using the write
-- forwarding feature for this cluster.
dbCluster_globalWriteForwardingRequested :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Bool)
dbCluster_globalWriteForwardingRequested :: (Maybe Bool -> f (Maybe Bool)) -> DBCluster -> f DBCluster
dbCluster_globalWriteForwardingRequested = (DBCluster -> Maybe Bool)
-> (DBCluster -> Maybe Bool -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Bool
globalWriteForwardingRequested :: Maybe Bool
$sel:globalWriteForwardingRequested:DBCluster' :: DBCluster -> Maybe Bool
globalWriteForwardingRequested} -> Maybe Bool
globalWriteForwardingRequested) (\s :: DBCluster
s@DBCluster' {} Maybe Bool
a -> DBCluster
s {$sel:globalWriteForwardingRequested:DBCluster' :: Maybe Bool
globalWriteForwardingRequested = Maybe Bool
a} :: DBCluster)

-- | The earliest time to which a DB cluster can be backtracked.
dbCluster_earliestBacktrackTime :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.UTCTime)
dbCluster_earliestBacktrackTime :: (Maybe UTCTime -> f (Maybe UTCTime)) -> DBCluster -> f DBCluster
dbCluster_earliestBacktrackTime = (DBCluster -> Maybe ISO8601)
-> (DBCluster -> Maybe ISO8601 -> DBCluster)
-> Lens DBCluster DBCluster (Maybe ISO8601) (Maybe ISO8601)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe ISO8601
earliestBacktrackTime :: Maybe ISO8601
$sel:earliestBacktrackTime:DBCluster' :: DBCluster -> Maybe ISO8601
earliestBacktrackTime} -> Maybe ISO8601
earliestBacktrackTime) (\s :: DBCluster
s@DBCluster' {} Maybe ISO8601
a -> DBCluster
s {$sel:earliestBacktrackTime:DBCluster' :: Maybe ISO8601
earliestBacktrackTime = Maybe ISO8601
a} :: DBCluster) ((Maybe ISO8601 -> f (Maybe ISO8601)) -> DBCluster -> f DBCluster)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe ISO8601 -> f (Maybe ISO8601))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DBCluster
-> f DBCluster
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

-- | The target backtrack window, in seconds. If this value is set to 0,
-- backtracking is disabled for the DB cluster. Otherwise, backtracking is
-- enabled.
dbCluster_backtrackWindow :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Integer)
dbCluster_backtrackWindow :: (Maybe Integer -> f (Maybe Integer)) -> DBCluster -> f DBCluster
dbCluster_backtrackWindow = (DBCluster -> Maybe Integer)
-> (DBCluster -> Maybe Integer -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Integer) (Maybe Integer)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Integer
backtrackWindow :: Maybe Integer
$sel:backtrackWindow:DBCluster' :: DBCluster -> Maybe Integer
backtrackWindow} -> Maybe Integer
backtrackWindow) (\s :: DBCluster
s@DBCluster' {} Maybe Integer
a -> DBCluster
s {$sel:backtrackWindow:DBCluster' :: Maybe Integer
backtrackWindow = Maybe Integer
a} :: DBCluster)

-- | Undocumented member.
dbCluster_tagList :: Lens.Lens' DBCluster (Prelude.Maybe [Tag])
dbCluster_tagList :: (Maybe [Tag] -> f (Maybe [Tag])) -> DBCluster -> f DBCluster
dbCluster_tagList = (DBCluster -> Maybe [Tag])
-> (DBCluster -> Maybe [Tag] -> DBCluster)
-> Lens DBCluster DBCluster (Maybe [Tag]) (Maybe [Tag])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe [Tag]
tagList :: Maybe [Tag]
$sel:tagList:DBCluster' :: DBCluster -> Maybe [Tag]
tagList} -> Maybe [Tag]
tagList) (\s :: DBCluster
s@DBCluster' {} Maybe [Tag]
a -> DBCluster
s {$sel:tagList:DBCluster' :: Maybe [Tag]
tagList = Maybe [Tag]
a} :: DBCluster) ((Maybe [Tag] -> f (Maybe [Tag])) -> DBCluster -> f DBCluster)
-> ((Maybe [Tag] -> f (Maybe [Tag]))
    -> Maybe [Tag] -> f (Maybe [Tag]))
-> (Maybe [Tag] -> f (Maybe [Tag]))
-> DBCluster
-> f DBCluster
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Tag] [Tag] [Tag] [Tag]
-> Iso (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso [Tag] [Tag] [Tag] [Tag]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

-- | The earliest time to which a database can be restored with point-in-time
-- restore.
dbCluster_earliestRestorableTime :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.UTCTime)
dbCluster_earliestRestorableTime :: (Maybe UTCTime -> f (Maybe UTCTime)) -> DBCluster -> f DBCluster
dbCluster_earliestRestorableTime = (DBCluster -> Maybe ISO8601)
-> (DBCluster -> Maybe ISO8601 -> DBCluster)
-> Lens DBCluster DBCluster (Maybe ISO8601) (Maybe ISO8601)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe ISO8601
earliestRestorableTime :: Maybe ISO8601
$sel:earliestRestorableTime:DBCluster' :: DBCluster -> Maybe ISO8601
earliestRestorableTime} -> Maybe ISO8601
earliestRestorableTime) (\s :: DBCluster
s@DBCluster' {} Maybe ISO8601
a -> DBCluster
s {$sel:earliestRestorableTime:DBCluster' :: Maybe ISO8601
earliestRestorableTime = Maybe ISO8601
a} :: DBCluster) ((Maybe ISO8601 -> f (Maybe ISO8601)) -> DBCluster -> f DBCluster)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe ISO8601 -> f (Maybe ISO8601))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DBCluster
-> f DBCluster
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

-- | Identifies all custom endpoints associated with the cluster.
dbCluster_customEndpoints :: Lens.Lens' DBCluster (Prelude.Maybe [Prelude.Text])
dbCluster_customEndpoints :: (Maybe [Text] -> f (Maybe [Text])) -> DBCluster -> f DBCluster
dbCluster_customEndpoints = (DBCluster -> Maybe [Text])
-> (DBCluster -> Maybe [Text] -> DBCluster)
-> Lens DBCluster DBCluster (Maybe [Text]) (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe [Text]
customEndpoints :: Maybe [Text]
$sel:customEndpoints:DBCluster' :: DBCluster -> Maybe [Text]
customEndpoints} -> Maybe [Text]
customEndpoints) (\s :: DBCluster
s@DBCluster' {} Maybe [Text]
a -> DBCluster
s {$sel:customEndpoints:DBCluster' :: Maybe [Text]
customEndpoints = Maybe [Text]
a} :: DBCluster) ((Maybe [Text] -> f (Maybe [Text])) -> DBCluster -> f DBCluster)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> DBCluster
-> f DBCluster
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 name of the database engine to be used for this DB cluster.
dbCluster_engine :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)
dbCluster_engine :: (Maybe Text -> f (Maybe Text)) -> DBCluster -> f DBCluster
dbCluster_engine = (DBCluster -> Maybe Text)
-> (DBCluster -> Maybe Text -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Text
engine :: Maybe Text
$sel:engine:DBCluster' :: DBCluster -> Maybe Text
engine} -> Maybe Text
engine) (\s :: DBCluster
s@DBCluster' {} Maybe Text
a -> DBCluster
s {$sel:engine:DBCluster' :: Maybe Text
engine = Maybe Text
a} :: DBCluster)

-- | A value that indicates whether the HTTP endpoint for an Aurora
-- Serverless DB cluster is enabled.
--
-- When enabled, the HTTP endpoint provides a connectionless web service
-- API for running SQL queries on the Aurora Serverless DB cluster. You can
-- also query your database from inside the RDS console with the query
-- editor.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html Using the Data API for Aurora Serverless>
-- in the /Amazon Aurora User Guide/.
dbCluster_httpEndpointEnabled :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Bool)
dbCluster_httpEndpointEnabled :: (Maybe Bool -> f (Maybe Bool)) -> DBCluster -> f DBCluster
dbCluster_httpEndpointEnabled = (DBCluster -> Maybe Bool)
-> (DBCluster -> Maybe Bool -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Bool
httpEndpointEnabled :: Maybe Bool
$sel:httpEndpointEnabled:DBCluster' :: DBCluster -> Maybe Bool
httpEndpointEnabled} -> Maybe Bool
httpEndpointEnabled) (\s :: DBCluster
s@DBCluster' {} Maybe Bool
a -> DBCluster
s {$sel:httpEndpointEnabled:DBCluster' :: Maybe Bool
httpEndpointEnabled = Maybe Bool
a} :: DBCluster)

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

-- | Identifies the clone group to which the DB cluster is associated.
dbCluster_cloneGroupId :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)
dbCluster_cloneGroupId :: (Maybe Text -> f (Maybe Text)) -> DBCluster -> f DBCluster
dbCluster_cloneGroupId = (DBCluster -> Maybe Text)
-> (DBCluster -> Maybe Text -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Text
cloneGroupId :: Maybe Text
$sel:cloneGroupId:DBCluster' :: DBCluster -> Maybe Text
cloneGroupId} -> Maybe Text
cloneGroupId) (\s :: DBCluster
s@DBCluster' {} Maybe Text
a -> DBCluster
s {$sel:cloneGroupId:DBCluster' :: Maybe Text
cloneGroupId = Maybe Text
a} :: DBCluster)

-- | Specifies the latest time to which a database can be restored with
-- point-in-time restore.
dbCluster_latestRestorableTime :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.UTCTime)
dbCluster_latestRestorableTime :: (Maybe UTCTime -> f (Maybe UTCTime)) -> DBCluster -> f DBCluster
dbCluster_latestRestorableTime = (DBCluster -> Maybe ISO8601)
-> (DBCluster -> Maybe ISO8601 -> DBCluster)
-> Lens DBCluster DBCluster (Maybe ISO8601) (Maybe ISO8601)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe ISO8601
latestRestorableTime :: Maybe ISO8601
$sel:latestRestorableTime:DBCluster' :: DBCluster -> Maybe ISO8601
latestRestorableTime} -> Maybe ISO8601
latestRestorableTime) (\s :: DBCluster
s@DBCluster' {} Maybe ISO8601
a -> DBCluster
s {$sel:latestRestorableTime:DBCluster' :: Maybe ISO8601
latestRestorableTime = Maybe ISO8601
a} :: DBCluster) ((Maybe ISO8601 -> f (Maybe ISO8601)) -> DBCluster -> f DBCluster)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe ISO8601 -> f (Maybe ISO8601))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DBCluster
-> f DBCluster
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso ISO8601 ISO8601 UTCTime UTCTime
-> Iso
     (Maybe ISO8601) (Maybe ISO8601) (Maybe UTCTime) (Maybe UTCTime)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso ISO8601 ISO8601 UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Specifies whether the DB cluster is a clone of a DB cluster owned by a
-- different Amazon Web Services account.
dbCluster_crossAccountClone :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Bool)
dbCluster_crossAccountClone :: (Maybe Bool -> f (Maybe Bool)) -> DBCluster -> f DBCluster
dbCluster_crossAccountClone = (DBCluster -> Maybe Bool)
-> (DBCluster -> Maybe Bool -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Bool
crossAccountClone :: Maybe Bool
$sel:crossAccountClone:DBCluster' :: DBCluster -> Maybe Bool
crossAccountClone} -> Maybe Bool
crossAccountClone) (\s :: DBCluster
s@DBCluster' {} Maybe Bool
a -> DBCluster
s {$sel:crossAccountClone:DBCluster' :: Maybe Bool
crossAccountClone = Maybe Bool
a} :: DBCluster)

-- | The current capacity of an Aurora Serverless DB cluster. The capacity is
-- 0 (zero) when the cluster is paused.
--
-- For more information about Aurora Serverless, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html Using Amazon Aurora Serverless>
-- in the /Amazon Aurora User Guide/.
dbCluster_capacity :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Int)
dbCluster_capacity :: (Maybe Int -> f (Maybe Int)) -> DBCluster -> f DBCluster
dbCluster_capacity = (DBCluster -> Maybe Int)
-> (DBCluster -> Maybe Int -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Int
capacity :: Maybe Int
$sel:capacity:DBCluster' :: DBCluster -> Maybe Int
capacity} -> Maybe Int
capacity) (\s :: DBCluster
s@DBCluster' {} Maybe Int
a -> DBCluster
s {$sel:capacity:DBCluster' :: Maybe Int
capacity = Maybe Int
a} :: DBCluster)

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

-- | Provides the list of Availability Zones (AZs) where instances in the DB
-- cluster can be created.
dbCluster_availabilityZones :: Lens.Lens' DBCluster (Prelude.Maybe [Prelude.Text])
dbCluster_availabilityZones :: (Maybe [Text] -> f (Maybe [Text])) -> DBCluster -> f DBCluster
dbCluster_availabilityZones = (DBCluster -> Maybe [Text])
-> (DBCluster -> Maybe [Text] -> DBCluster)
-> Lens DBCluster DBCluster (Maybe [Text]) (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe [Text]
availabilityZones :: Maybe [Text]
$sel:availabilityZones:DBCluster' :: DBCluster -> Maybe [Text]
availabilityZones} -> Maybe [Text]
availabilityZones) (\s :: DBCluster
s@DBCluster' {} Maybe [Text]
a -> DBCluster
s {$sel:availabilityZones:DBCluster' :: Maybe [Text]
availabilityZones = Maybe [Text]
a} :: DBCluster) ((Maybe [Text] -> f (Maybe [Text])) -> DBCluster -> f DBCluster)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> DBCluster
-> f DBCluster
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

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

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

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

-- | Provides a list of the Amazon Web Services Identity and Access
-- Management (IAM) roles that are associated with the DB cluster. IAM
-- roles that are associated with a DB cluster grant permission for the DB
-- cluster to access other Amazon Web Services on your behalf.
dbCluster_associatedRoles :: Lens.Lens' DBCluster (Prelude.Maybe [DBClusterRole])
dbCluster_associatedRoles :: (Maybe [DBClusterRole] -> f (Maybe [DBClusterRole]))
-> DBCluster -> f DBCluster
dbCluster_associatedRoles = (DBCluster -> Maybe [DBClusterRole])
-> (DBCluster -> Maybe [DBClusterRole] -> DBCluster)
-> Lens
     DBCluster DBCluster (Maybe [DBClusterRole]) (Maybe [DBClusterRole])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe [DBClusterRole]
associatedRoles :: Maybe [DBClusterRole]
$sel:associatedRoles:DBCluster' :: DBCluster -> Maybe [DBClusterRole]
associatedRoles} -> Maybe [DBClusterRole]
associatedRoles) (\s :: DBCluster
s@DBCluster' {} Maybe [DBClusterRole]
a -> DBCluster
s {$sel:associatedRoles:DBCluster' :: Maybe [DBClusterRole]
associatedRoles = Maybe [DBClusterRole]
a} :: DBCluster) ((Maybe [DBClusterRole] -> f (Maybe [DBClusterRole]))
 -> DBCluster -> f DBCluster)
-> ((Maybe [DBClusterRole] -> f (Maybe [DBClusterRole]))
    -> Maybe [DBClusterRole] -> f (Maybe [DBClusterRole]))
-> (Maybe [DBClusterRole] -> f (Maybe [DBClusterRole]))
-> DBCluster
-> f DBCluster
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [DBClusterRole] [DBClusterRole] [DBClusterRole] [DBClusterRole]
-> Iso
     (Maybe [DBClusterRole])
     (Maybe [DBClusterRole])
     (Maybe [DBClusterRole])
     (Maybe [DBClusterRole])
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
  [DBClusterRole] [DBClusterRole] [DBClusterRole] [DBClusterRole]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Provides a list of VPC security groups that the DB cluster belongs to.
dbCluster_vpcSecurityGroups :: Lens.Lens' DBCluster (Prelude.Maybe [VpcSecurityGroupMembership])
dbCluster_vpcSecurityGroups :: (Maybe [VpcSecurityGroupMembership]
 -> f (Maybe [VpcSecurityGroupMembership]))
-> DBCluster -> f DBCluster
dbCluster_vpcSecurityGroups = (DBCluster -> Maybe [VpcSecurityGroupMembership])
-> (DBCluster -> Maybe [VpcSecurityGroupMembership] -> DBCluster)
-> Lens
     DBCluster
     DBCluster
     (Maybe [VpcSecurityGroupMembership])
     (Maybe [VpcSecurityGroupMembership])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups :: Maybe [VpcSecurityGroupMembership]
$sel:vpcSecurityGroups:DBCluster' :: DBCluster -> Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups} -> Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups) (\s :: DBCluster
s@DBCluster' {} Maybe [VpcSecurityGroupMembership]
a -> DBCluster
s {$sel:vpcSecurityGroups:DBCluster' :: Maybe [VpcSecurityGroupMembership]
vpcSecurityGroups = Maybe [VpcSecurityGroupMembership]
a} :: DBCluster) ((Maybe [VpcSecurityGroupMembership]
  -> f (Maybe [VpcSecurityGroupMembership]))
 -> DBCluster -> f DBCluster)
-> ((Maybe [VpcSecurityGroupMembership]
     -> f (Maybe [VpcSecurityGroupMembership]))
    -> Maybe [VpcSecurityGroupMembership]
    -> f (Maybe [VpcSecurityGroupMembership]))
-> (Maybe [VpcSecurityGroupMembership]
    -> f (Maybe [VpcSecurityGroupMembership]))
-> DBCluster
-> f DBCluster
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.
dbCluster_backupRetentionPeriod :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Int)
dbCluster_backupRetentionPeriod :: (Maybe Int -> f (Maybe Int)) -> DBCluster -> f DBCluster
dbCluster_backupRetentionPeriod = (DBCluster -> Maybe Int)
-> (DBCluster -> Maybe Int -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Int
backupRetentionPeriod :: Maybe Int
$sel:backupRetentionPeriod:DBCluster' :: DBCluster -> Maybe Int
backupRetentionPeriod} -> Maybe Int
backupRetentionPeriod) (\s :: DBCluster
s@DBCluster' {} Maybe Int
a -> DBCluster
s {$sel:backupRetentionPeriod:DBCluster' :: Maybe Int
backupRetentionPeriod = Maybe Int
a} :: DBCluster)

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

-- | The mode of the database activity stream. Database events such as a
-- change or access generate an activity stream event. The database session
-- can handle these events either synchronously or asynchronously.
dbCluster_activityStreamMode :: Lens.Lens' DBCluster (Prelude.Maybe ActivityStreamMode)
dbCluster_activityStreamMode :: (Maybe ActivityStreamMode -> f (Maybe ActivityStreamMode))
-> DBCluster -> f DBCluster
dbCluster_activityStreamMode = (DBCluster -> Maybe ActivityStreamMode)
-> (DBCluster -> Maybe ActivityStreamMode -> DBCluster)
-> Lens
     DBCluster
     DBCluster
     (Maybe ActivityStreamMode)
     (Maybe ActivityStreamMode)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe ActivityStreamMode
activityStreamMode :: Maybe ActivityStreamMode
$sel:activityStreamMode:DBCluster' :: DBCluster -> Maybe ActivityStreamMode
activityStreamMode} -> Maybe ActivityStreamMode
activityStreamMode) (\s :: DBCluster
s@DBCluster' {} Maybe ActivityStreamMode
a -> DBCluster
s {$sel:activityStreamMode:DBCluster' :: Maybe ActivityStreamMode
activityStreamMode = Maybe ActivityStreamMode
a} :: DBCluster)

-- | Contains the name of the initial database of this DB cluster that was
-- provided at create time, if one was specified when the DB cluster was
-- created. This same name is returned for the life of the DB cluster.
dbCluster_databaseName :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)
dbCluster_databaseName :: (Maybe Text -> f (Maybe Text)) -> DBCluster -> f DBCluster
dbCluster_databaseName = (DBCluster -> Maybe Text)
-> (DBCluster -> Maybe Text -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Text
databaseName :: Maybe Text
$sel:databaseName:DBCluster' :: DBCluster -> Maybe Text
databaseName} -> Maybe Text
databaseName) (\s :: DBCluster
s@DBCluster' {} Maybe Text
a -> DBCluster
s {$sel:databaseName:DBCluster' :: Maybe Text
databaseName = Maybe Text
a} :: DBCluster)

-- | Specifies whether the DB cluster has instances in multiple Availability
-- Zones.
dbCluster_multiAZ :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Bool)
dbCluster_multiAZ :: (Maybe Bool -> f (Maybe Bool)) -> DBCluster -> f DBCluster
dbCluster_multiAZ = (DBCluster -> Maybe Bool)
-> (DBCluster -> Maybe Bool -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Bool
multiAZ :: Maybe Bool
$sel:multiAZ:DBCluster' :: DBCluster -> Maybe Bool
multiAZ} -> Maybe Bool
multiAZ) (\s :: DBCluster
s@DBCluster' {} Maybe Bool
a -> DBCluster
s {$sel:multiAZ:DBCluster' :: Maybe Bool
multiAZ = Maybe Bool
a} :: DBCluster)

-- | The DB engine mode of the DB cluster, either @provisioned@,
-- @serverless@, @parallelquery@, @global@, or @multimaster@.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html CreateDBCluster>.
dbCluster_engineMode :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)
dbCluster_engineMode :: (Maybe Text -> f (Maybe Text)) -> DBCluster -> f DBCluster
dbCluster_engineMode = (DBCluster -> Maybe Text)
-> (DBCluster -> Maybe Text -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Text
engineMode :: Maybe Text
$sel:engineMode:DBCluster' :: DBCluster -> Maybe Text
engineMode} -> Maybe Text
engineMode) (\s :: DBCluster
s@DBCluster' {} Maybe Text
a -> DBCluster
s {$sel:engineMode:DBCluster' :: Maybe Text
engineMode = Maybe Text
a} :: DBCluster)

-- | A list of log types that this DB cluster is configured to export to
-- CloudWatch Logs.
--
-- Log types vary by DB engine. For information about the log types for
-- each DB engine, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html Amazon RDS Database Log Files>
-- in the /Amazon Aurora User Guide./
dbCluster_enabledCloudwatchLogsExports :: Lens.Lens' DBCluster (Prelude.Maybe [Prelude.Text])
dbCluster_enabledCloudwatchLogsExports :: (Maybe [Text] -> f (Maybe [Text])) -> DBCluster -> f DBCluster
dbCluster_enabledCloudwatchLogsExports = (DBCluster -> Maybe [Text])
-> (DBCluster -> Maybe [Text] -> DBCluster)
-> Lens DBCluster DBCluster (Maybe [Text]) (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe [Text]
enabledCloudwatchLogsExports :: Maybe [Text]
$sel:enabledCloudwatchLogsExports:DBCluster' :: DBCluster -> Maybe [Text]
enabledCloudwatchLogsExports} -> Maybe [Text]
enabledCloudwatchLogsExports) (\s :: DBCluster
s@DBCluster' {} Maybe [Text]
a -> DBCluster
s {$sel:enabledCloudwatchLogsExports:DBCluster' :: Maybe [Text]
enabledCloudwatchLogsExports = Maybe [Text]
a} :: DBCluster) ((Maybe [Text] -> f (Maybe [Text])) -> DBCluster -> f DBCluster)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> DBCluster
-> f DBCluster
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 status of the database activity stream.
dbCluster_activityStreamStatus :: Lens.Lens' DBCluster (Prelude.Maybe ActivityStreamStatus)
dbCluster_activityStreamStatus :: (Maybe ActivityStreamStatus -> f (Maybe ActivityStreamStatus))
-> DBCluster -> f DBCluster
dbCluster_activityStreamStatus = (DBCluster -> Maybe ActivityStreamStatus)
-> (DBCluster -> Maybe ActivityStreamStatus -> DBCluster)
-> Lens
     DBCluster
     DBCluster
     (Maybe ActivityStreamStatus)
     (Maybe ActivityStreamStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe ActivityStreamStatus
activityStreamStatus :: Maybe ActivityStreamStatus
$sel:activityStreamStatus:DBCluster' :: DBCluster -> Maybe ActivityStreamStatus
activityStreamStatus} -> Maybe ActivityStreamStatus
activityStreamStatus) (\s :: DBCluster
s@DBCluster' {} Maybe ActivityStreamStatus
a -> DBCluster
s {$sel:activityStreamStatus:DBCluster' :: Maybe ActivityStreamStatus
activityStreamStatus = Maybe ActivityStreamStatus
a} :: DBCluster)

-- | For all database engines except Amazon Aurora, @AllocatedStorage@
-- specifies the allocated storage size in gibibytes (GiB). For Aurora,
-- @AllocatedStorage@ always returns 1, because Aurora DB cluster storage
-- size isn\'t fixed, but instead automatically adjusts as needed.
dbCluster_allocatedStorage :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Int)
dbCluster_allocatedStorage :: (Maybe Int -> f (Maybe Int)) -> DBCluster -> f DBCluster
dbCluster_allocatedStorage = (DBCluster -> Maybe Int)
-> (DBCluster -> Maybe Int -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Int
allocatedStorage :: Maybe Int
$sel:allocatedStorage:DBCluster' :: DBCluster -> Maybe Int
allocatedStorage} -> Maybe Int
allocatedStorage) (\s :: DBCluster
s@DBCluster' {} Maybe Int
a -> DBCluster
s {$sel:allocatedStorage:DBCluster' :: Maybe Int
allocatedStorage = Maybe Int
a} :: DBCluster)

-- | Specifies whether tags are copied from the DB cluster to snapshots of
-- the DB cluster.
dbCluster_copyTagsToSnapshot :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Bool)
dbCluster_copyTagsToSnapshot :: (Maybe Bool -> f (Maybe Bool)) -> DBCluster -> f DBCluster
dbCluster_copyTagsToSnapshot = (DBCluster -> Maybe Bool)
-> (DBCluster -> Maybe Bool -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Bool
copyTagsToSnapshot :: Maybe Bool
$sel:copyTagsToSnapshot:DBCluster' :: DBCluster -> Maybe Bool
copyTagsToSnapshot} -> Maybe Bool
copyTagsToSnapshot) (\s :: DBCluster
s@DBCluster' {} Maybe Bool
a -> DBCluster
s {$sel:copyTagsToSnapshot:DBCluster' :: Maybe Bool
copyTagsToSnapshot = Maybe Bool
a} :: DBCluster)

-- | Specifies the time when the DB cluster was created, in Universal
-- Coordinated Time (UTC).
dbCluster_clusterCreateTime :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.UTCTime)
dbCluster_clusterCreateTime :: (Maybe UTCTime -> f (Maybe UTCTime)) -> DBCluster -> f DBCluster
dbCluster_clusterCreateTime = (DBCluster -> Maybe ISO8601)
-> (DBCluster -> Maybe ISO8601 -> DBCluster)
-> Lens DBCluster DBCluster (Maybe ISO8601) (Maybe ISO8601)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe ISO8601
clusterCreateTime :: Maybe ISO8601
$sel:clusterCreateTime:DBCluster' :: DBCluster -> Maybe ISO8601
clusterCreateTime} -> Maybe ISO8601
clusterCreateTime) (\s :: DBCluster
s@DBCluster' {} Maybe ISO8601
a -> DBCluster
s {$sel:clusterCreateTime:DBCluster' :: Maybe ISO8601
clusterCreateTime = Maybe ISO8601
a} :: DBCluster) ((Maybe ISO8601 -> f (Maybe ISO8601)) -> DBCluster -> f DBCluster)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe ISO8601 -> f (Maybe ISO8601))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DBCluster
-> f DBCluster
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso ISO8601 ISO8601 UTCTime UTCTime
-> Iso
     (Maybe ISO8601) (Maybe ISO8601) (Maybe UTCTime) (Maybe UTCTime)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso ISO8601 ISO8601 UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Specifies the connection endpoint for the primary instance of the DB
-- cluster.
dbCluster_endpoint :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)
dbCluster_endpoint :: (Maybe Text -> f (Maybe Text)) -> DBCluster -> f DBCluster
dbCluster_endpoint = (DBCluster -> Maybe Text)
-> (DBCluster -> Maybe Text -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Text
endpoint :: Maybe Text
$sel:endpoint:DBCluster' :: DBCluster -> Maybe Text
endpoint} -> Maybe Text
endpoint) (\s :: DBCluster
s@DBCluster' {} Maybe Text
a -> DBCluster
s {$sel:endpoint:DBCluster' :: Maybe Text
endpoint = Maybe Text
a} :: DBCluster)

-- | Undocumented member.
dbCluster_scalingConfigurationInfo :: Lens.Lens' DBCluster (Prelude.Maybe ScalingConfigurationInfo)
dbCluster_scalingConfigurationInfo :: (Maybe ScalingConfigurationInfo
 -> f (Maybe ScalingConfigurationInfo))
-> DBCluster -> f DBCluster
dbCluster_scalingConfigurationInfo = (DBCluster -> Maybe ScalingConfigurationInfo)
-> (DBCluster -> Maybe ScalingConfigurationInfo -> DBCluster)
-> Lens
     DBCluster
     DBCluster
     (Maybe ScalingConfigurationInfo)
     (Maybe ScalingConfigurationInfo)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe ScalingConfigurationInfo
scalingConfigurationInfo :: Maybe ScalingConfigurationInfo
$sel:scalingConfigurationInfo:DBCluster' :: DBCluster -> Maybe ScalingConfigurationInfo
scalingConfigurationInfo} -> Maybe ScalingConfigurationInfo
scalingConfigurationInfo) (\s :: DBCluster
s@DBCluster' {} Maybe ScalingConfigurationInfo
a -> DBCluster
s {$sel:scalingConfigurationInfo:DBCluster' :: Maybe ScalingConfigurationInfo
scalingConfigurationInfo = Maybe ScalingConfigurationInfo
a} :: DBCluster)

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

-- | Specifies the progress of the operation as a percentage.
dbCluster_percentProgress :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)
dbCluster_percentProgress :: (Maybe Text -> f (Maybe Text)) -> DBCluster -> f DBCluster
dbCluster_percentProgress = (DBCluster -> Maybe Text)
-> (DBCluster -> Maybe Text -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Text
percentProgress :: Maybe Text
$sel:percentProgress:DBCluster' :: DBCluster -> Maybe Text
percentProgress} -> Maybe Text
percentProgress) (\s :: DBCluster
s@DBCluster' {} Maybe Text
a -> DBCluster
s {$sel:percentProgress:DBCluster' :: Maybe Text
percentProgress = Maybe Text
a} :: DBCluster)

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

-- | The reader endpoint for the DB cluster. The reader endpoint for a DB
-- cluster load-balances connections across the Aurora Replicas that are
-- available in a DB cluster. As clients request new connections to the
-- reader endpoint, Aurora distributes the connection requests among the
-- Aurora Replicas in the DB cluster. This functionality can help balance
-- your read workload across multiple Aurora Replicas in your DB cluster.
--
-- If a failover occurs, and the Aurora Replica that you are connected to
-- is promoted to be the primary instance, your connection is dropped. To
-- continue sending your read workload to other Aurora Replicas in the
-- cluster, you can then reconnect to the reader endpoint.
dbCluster_readerEndpoint :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Text)
dbCluster_readerEndpoint :: (Maybe Text -> f (Maybe Text)) -> DBCluster -> f DBCluster
dbCluster_readerEndpoint = (DBCluster -> Maybe Text)
-> (DBCluster -> Maybe Text -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Text
readerEndpoint :: Maybe Text
$sel:readerEndpoint:DBCluster' :: DBCluster -> Maybe Text
readerEndpoint} -> Maybe Text
readerEndpoint) (\s :: DBCluster
s@DBCluster' {} Maybe Text
a -> DBCluster
s {$sel:readerEndpoint:DBCluster' :: Maybe Text
readerEndpoint = Maybe Text
a} :: DBCluster)

-- | Specifies whether a secondary cluster in an Aurora global database has
-- write forwarding enabled, not enabled, or is in the process of enabling
-- it.
dbCluster_globalWriteForwardingStatus :: Lens.Lens' DBCluster (Prelude.Maybe WriteForwardingStatus)
dbCluster_globalWriteForwardingStatus :: (Maybe WriteForwardingStatus -> f (Maybe WriteForwardingStatus))
-> DBCluster -> f DBCluster
dbCluster_globalWriteForwardingStatus = (DBCluster -> Maybe WriteForwardingStatus)
-> (DBCluster -> Maybe WriteForwardingStatus -> DBCluster)
-> Lens
     DBCluster
     DBCluster
     (Maybe WriteForwardingStatus)
     (Maybe WriteForwardingStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe WriteForwardingStatus
globalWriteForwardingStatus :: Maybe WriteForwardingStatus
$sel:globalWriteForwardingStatus:DBCluster' :: DBCluster -> Maybe WriteForwardingStatus
globalWriteForwardingStatus} -> Maybe WriteForwardingStatus
globalWriteForwardingStatus) (\s :: DBCluster
s@DBCluster' {} Maybe WriteForwardingStatus
a -> DBCluster
s {$sel:globalWriteForwardingStatus:DBCluster' :: Maybe WriteForwardingStatus
globalWriteForwardingStatus = Maybe WriteForwardingStatus
a} :: DBCluster)

-- | Specifies the port that the database engine is listening on.
dbCluster_port :: Lens.Lens' DBCluster (Prelude.Maybe Prelude.Int)
dbCluster_port :: (Maybe Int -> f (Maybe Int)) -> DBCluster -> f DBCluster
dbCluster_port = (DBCluster -> Maybe Int)
-> (DBCluster -> Maybe Int -> DBCluster)
-> Lens DBCluster DBCluster (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe Int
port :: Maybe Int
$sel:port:DBCluster' :: DBCluster -> Maybe Int
port} -> Maybe Int
port) (\s :: DBCluster
s@DBCluster' {} Maybe Int
a -> DBCluster
s {$sel:port:DBCluster' :: Maybe Int
port = Maybe Int
a} :: DBCluster)

-- | The Active Directory Domain membership records associated with the DB
-- cluster.
dbCluster_domainMemberships :: Lens.Lens' DBCluster (Prelude.Maybe [DomainMembership])
dbCluster_domainMemberships :: (Maybe [DomainMembership] -> f (Maybe [DomainMembership]))
-> DBCluster -> f DBCluster
dbCluster_domainMemberships = (DBCluster -> Maybe [DomainMembership])
-> (DBCluster -> Maybe [DomainMembership] -> DBCluster)
-> Lens
     DBCluster
     DBCluster
     (Maybe [DomainMembership])
     (Maybe [DomainMembership])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBCluster' {Maybe [DomainMembership]
domainMemberships :: Maybe [DomainMembership]
$sel:domainMemberships:DBCluster' :: DBCluster -> Maybe [DomainMembership]
domainMemberships} -> Maybe [DomainMembership]
domainMemberships) (\s :: DBCluster
s@DBCluster' {} Maybe [DomainMembership]
a -> DBCluster
s {$sel:domainMemberships:DBCluster' :: Maybe [DomainMembership]
domainMemberships = Maybe [DomainMembership]
a} :: DBCluster) ((Maybe [DomainMembership] -> f (Maybe [DomainMembership]))
 -> DBCluster -> f DBCluster)
-> ((Maybe [DomainMembership] -> f (Maybe [DomainMembership]))
    -> Maybe [DomainMembership] -> f (Maybe [DomainMembership]))
-> (Maybe [DomainMembership] -> f (Maybe [DomainMembership]))
-> DBCluster
-> f DBCluster
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

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

instance Core.FromXML DBCluster where
  parseXML :: [Node] -> Either String DBCluster
parseXML [Node]
x =
    Maybe Integer
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe ISO8601
-> Maybe Bool
-> Maybe Text
-> Maybe [DBClusterMember]
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe ISO8601
-> Maybe Integer
-> Maybe [Tag]
-> Maybe Text
-> Maybe ISO8601
-> Maybe [Text]
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe ISO8601
-> Maybe Bool
-> Maybe Int
-> Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [DBClusterRole]
-> Maybe [VpcSecurityGroupMembership]
-> Maybe Int
-> Maybe Text
-> Maybe ActivityStreamMode
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe [Text]
-> Maybe ActivityStreamStatus
-> Maybe Int
-> Maybe Bool
-> Maybe ISO8601
-> Maybe Text
-> Maybe ScalingConfigurationInfo
-> Maybe Text
-> Maybe Text
-> Maybe ClusterPendingModifiedValues
-> Maybe Text
-> Maybe WriteForwardingStatus
-> Maybe Int
-> Maybe [DomainMembership]
-> Maybe [DBClusterOptionGroupStatus]
-> DBCluster
DBCluster'
      (Maybe Integer
 -> Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> Maybe ISO8601
 -> Maybe Bool
 -> Maybe Text
 -> Maybe [DBClusterMember]
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe ISO8601
 -> Maybe Integer
 -> Maybe [Tag]
 -> Maybe Text
 -> Maybe ISO8601
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe ISO8601
 -> Maybe Bool
 -> Maybe Int
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe [DBClusterRole]
 -> Maybe [VpcSecurityGroupMembership]
 -> Maybe Int
 -> Maybe Text
 -> Maybe ActivityStreamMode
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe ActivityStreamStatus
 -> Maybe Int
 -> Maybe Bool
 -> Maybe ISO8601
 -> Maybe Text
 -> Maybe ScalingConfigurationInfo
 -> Maybe Text
 -> Maybe Text
 -> Maybe ClusterPendingModifiedValues
 -> Maybe Text
 -> Maybe WriteForwardingStatus
 -> Maybe Int
 -> Maybe [DomainMembership]
 -> Maybe [DBClusterOptionGroupStatus]
 -> DBCluster)
-> Either String (Maybe Integer)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [DBClusterMember]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Integer
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x [Node] -> Text -> Either String (Maybe Integer)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"BacktrackConsumedChangeRecords")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [DBClusterMember]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Integer
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [DBClusterMember]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Integer
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"EngineVersion")
      Either
  String
  (Maybe Text
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [DBClusterMember]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Integer
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Bool
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [DBClusterMember]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Integer
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"Status")
      Either
  String
  (Maybe Bool
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [DBClusterMember]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Integer
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe ISO8601
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [DBClusterMember]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Integer
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Bool)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DeletionProtection")
      Either
  String
  (Maybe ISO8601
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [DBClusterMember]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Integer
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe ISO8601)
-> Either
     String
     (Maybe Bool
      -> Maybe Text
      -> Maybe [DBClusterMember]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Integer
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe ISO8601)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"AutomaticRestartTime")
      Either
  String
  (Maybe Bool
   -> Maybe Text
   -> Maybe [DBClusterMember]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Integer
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Text
      -> Maybe [DBClusterMember]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Integer
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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 [DBClusterMember]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Integer
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [DBClusterMember]
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Integer
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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 [DBClusterMember]
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Integer
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe [DBClusterMember])
-> Either
     String
     (Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Integer
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"DBClusterMembers"
                      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 [DBClusterMember]))
-> Either String (Maybe [DBClusterMember])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [DBClusterMember])
-> [Node] -> Either String (Maybe [DBClusterMember])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [DBClusterMember]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"DBClusterMember")
                  )
      Either
  String
  (Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Integer
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe [Text])
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Integer
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"ReadReplicaIdentifiers"
                      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
"ReadReplicaIdentifier")
                  )
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Integer
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Integer
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"ReplicationSourceIdentifier")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Integer
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Integer
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ActivityStreamKinesisStreamName")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Integer
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Integer
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"HostedZoneId")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Integer
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Integer
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"DBClusterParameterGroup")
      Either
  String
  (Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Integer
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Bool
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Integer
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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 Bool
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Integer
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Bool
      -> Maybe ISO8601
      -> Maybe Integer
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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 Bool
   -> Maybe ISO8601
   -> Maybe Integer
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe ISO8601
      -> Maybe Integer
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"GlobalWriteForwardingRequested")
      Either
  String
  (Maybe ISO8601
   -> Maybe Integer
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe ISO8601)
-> Either
     String
     (Maybe Integer
      -> Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"EarliestBacktrackTime")
      Either
  String
  (Maybe Integer
   -> Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Integer)
-> Either
     String
     (Maybe [Tag]
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Integer)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"BacktrackWindow")
      Either
  String
  (Maybe [Tag]
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe [Tag])
-> Either
     String
     (Maybe Text
      -> Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"TagList" Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                      Either String [Node]
-> ([Node] -> Either String (Maybe [Tag]))
-> Either String (Maybe [Tag])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [Tag])
-> [Node] -> Either String (Maybe [Tag])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [Tag]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"Tag")
                  )
      Either
  String
  (Maybe Text
   -> Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe ISO8601
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"DbClusterResourceId")
      Either
  String
  (Maybe ISO8601
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe ISO8601)
-> Either
     String
     (Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"EarliestRestorableTime")
      Either
  String
  (Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe [Text])
-> Either
     String
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"CustomEndpoints" 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 Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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 Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"HttpEndpointEnabled")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"DBClusterArn")
      Either
  String
  (Maybe Text
   -> Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe ISO8601
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"CloneGroupId")
      Either
  String
  (Maybe ISO8601
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe ISO8601)
-> Either
     String
     (Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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 Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"CrossAccountClone")
      Either
  String
  (Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"Capacity")
      Either
  String
  (Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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 [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe [Text])
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"AvailabilityZones"
                      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
"AvailabilityZone")
                  )
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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 [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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 [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [DBClusterRole]
      -> Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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 [DBClusterRole]
   -> Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe [DBClusterRole])
-> Either
     String
     (Maybe [VpcSecurityGroupMembership]
      -> Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"AssociatedRoles" Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                      Either String [Node]
-> ([Node] -> Either String (Maybe [DBClusterRole]))
-> Either String (Maybe [DBClusterRole])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [DBClusterRole])
-> [Node] -> Either String (Maybe [DBClusterRole])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [DBClusterRole]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"DBClusterRole")
                  )
      Either
  String
  (Maybe [VpcSecurityGroupMembership]
   -> Maybe Int
   -> Maybe Text
   -> Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe [VpcSecurityGroupMembership])
-> Either
     String
     (Maybe Int
      -> Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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 ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Text
      -> Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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 ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe ActivityStreamMode
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"DBSubnetGroup")
      Either
  String
  (Maybe ActivityStreamMode
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe ActivityStreamMode)
-> Either
     String
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe ActivityStreamMode)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ActivityStreamMode")
      Either
  String
  (Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"DatabaseName")
      Either
  String
  (Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Text
      -> Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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 Text
   -> Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [Text]
      -> Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"EngineMode")
      Either
  String
  (Maybe [Text]
   -> Maybe ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe [Text])
-> Either
     String
     (Maybe ActivityStreamStatus
      -> Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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 ActivityStreamStatus
   -> Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe ActivityStreamStatus)
-> Either
     String
     (Maybe Int
      -> Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe ActivityStreamStatus)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ActivityStreamStatus")
      Either
  String
  (Maybe Int
   -> Maybe Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Bool
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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 Bool
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe ISO8601
      -> Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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 ISO8601
   -> Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe ISO8601)
-> Either
     String
     (Maybe Text
      -> Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"ClusterCreateTime")
      Either
  String
  (Maybe Text
   -> Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe ScalingConfigurationInfo
      -> Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"Endpoint")
      Either
  String
  (Maybe ScalingConfigurationInfo
   -> Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe ScalingConfigurationInfo)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe ScalingConfigurationInfo)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ScalingConfigurationInfo")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ActivityStreamKmsKeyId")
      Either
  String
  (Maybe Text
   -> Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe ClusterPendingModifiedValues
      -> Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"PercentProgress")
      Either
  String
  (Maybe ClusterPendingModifiedValues
   -> Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe ClusterPendingModifiedValues)
-> Either
     String
     (Maybe Text
      -> Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node]
-> Text -> Either String (Maybe ClusterPendingModifiedValues)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"PendingModifiedValues")
      Either
  String
  (Maybe Text
   -> Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe WriteForwardingStatus
      -> Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
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
"ReaderEndpoint")
      Either
  String
  (Maybe WriteForwardingStatus
   -> Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe WriteForwardingStatus)
-> Either
     String
     (Maybe Int
      -> Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus]
      -> DBCluster)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe WriteForwardingStatus)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"GlobalWriteForwardingStatus")
      Either
  String
  (Maybe Int
   -> Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus]
   -> DBCluster)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe [DomainMembership]
      -> Maybe [DBClusterOptionGroupStatus] -> DBCluster)
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
"Port")
      Either
  String
  (Maybe [DomainMembership]
   -> Maybe [DBClusterOptionGroupStatus] -> DBCluster)
-> Either String (Maybe [DomainMembership])
-> Either String (Maybe [DBClusterOptionGroupStatus] -> DBCluster)
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 [DBClusterOptionGroupStatus] -> DBCluster)
-> Either String (Maybe [DBClusterOptionGroupStatus])
-> Either String DBCluster
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
"DBClusterOptionGroupMemberships"
                      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 [DBClusterOptionGroupStatus]))
-> Either String (Maybe [DBClusterOptionGroupStatus])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [DBClusterOptionGroupStatus])
-> [Node] -> Either String (Maybe [DBClusterOptionGroupStatus])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [DBClusterOptionGroupStatus]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"DBClusterOptionGroup")
                  )

instance Prelude.Hashable DBCluster

instance Prelude.NFData DBCluster