{-# 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.SecurityHub.Types.AwsRdsDbClusterDetails
-- 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.SecurityHub.Types.AwsRdsDbClusterDetails where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import Amazonka.SecurityHub.Types.AwsRdsDbClusterAssociatedRole
import Amazonka.SecurityHub.Types.AwsRdsDbClusterMember
import Amazonka.SecurityHub.Types.AwsRdsDbClusterOptionGroupMembership
import Amazonka.SecurityHub.Types.AwsRdsDbDomainMembership
import Amazonka.SecurityHub.Types.AwsRdsDbInstanceVpcSecurityGroup

-- | Information about an Amazon RDS DB cluster.
--
-- /See:/ 'newAwsRdsDbClusterDetails' smart constructor.
data AwsRdsDbClusterDetails = AwsRdsDbClusterDetails'
  { -- | The version number of the database engine to use.
    AwsRdsDbClusterDetails -> Maybe Text
engineVersion :: Prelude.Maybe Prelude.Text,
    -- | The current status of this DB cluster.
    AwsRdsDbClusterDetails -> Maybe Text
status :: Prelude.Maybe Prelude.Text,
    -- | The list of instances that make up the DB cluster.
    AwsRdsDbClusterDetails -> Maybe [AwsRdsDbClusterMember]
dbClusterMembers :: Prelude.Maybe [AwsRdsDbClusterMember],
    -- | Whether the DB cluster has deletion protection enabled.
    AwsRdsDbClusterDetails -> Maybe Bool
deletionProtection :: Prelude.Maybe Prelude.Bool,
    -- | Whether the DB cluster is encrypted.
    AwsRdsDbClusterDetails -> Maybe Bool
storageEncrypted :: Prelude.Maybe Prelude.Bool,
    -- | The DB cluster identifier that the user assigned to the cluster. This
    -- identifier is the unique key that identifies a DB cluster.
    AwsRdsDbClusterDetails -> Maybe Text
dbClusterIdentifier :: Prelude.Maybe Prelude.Text,
    -- | The identifiers of the read replicas that are associated with this DB
    -- cluster.
    AwsRdsDbClusterDetails -> Maybe [Text]
readReplicaIdentifiers :: Prelude.Maybe [Prelude.Text],
    -- | The name of the DB cluster parameter group for the DB cluster.
    AwsRdsDbClusterDetails -> Maybe Text
dbClusterParameterGroup :: Prelude.Maybe Prelude.Text,
    -- | Specifies the identifier that Amazon Route 53 assigns when you create a
    -- hosted zone.
    AwsRdsDbClusterDetails -> Maybe Text
hostedZoneId :: Prelude.Maybe Prelude.Text,
    -- | The name of the master user for the DB cluster.
    AwsRdsDbClusterDetails -> Maybe Text
masterUsername :: Prelude.Maybe Prelude.Text,
    -- | Whether the mapping of IAM accounts to database accounts is enabled.
    AwsRdsDbClusterDetails -> Maybe Bool
iamDatabaseAuthenticationEnabled :: Prelude.Maybe Prelude.Bool,
    -- | The identifier of the DB cluster. The identifier must be unique within
    -- each Amazon Web Services Region and is immutable.
    AwsRdsDbClusterDetails -> Maybe Text
dbClusterResourceId :: Prelude.Maybe Prelude.Text,
    -- | A list of custom endpoints for the DB cluster.
    AwsRdsDbClusterDetails -> Maybe [Text]
customEndpoints :: Prelude.Maybe [Prelude.Text],
    -- | The name of the database engine to use for this DB cluster.
    AwsRdsDbClusterDetails -> Maybe Text
engine :: Prelude.Maybe Prelude.Text,
    -- | Whether the HTTP endpoint for an Aurora Serverless DB cluster is
    -- enabled.
    AwsRdsDbClusterDetails -> Maybe Bool
httpEndpointEnabled :: Prelude.Maybe Prelude.Bool,
    -- | Whether the DB cluster is a clone of a DB cluster owned by a different
    -- Amazon Web Services account.
    AwsRdsDbClusterDetails -> Maybe Bool
crossAccountClone :: Prelude.Maybe Prelude.Bool,
    -- | The weekly time range during which system maintenance can occur, in
    -- Universal Coordinated Time (UTC).
    --
    -- Uses the format @\<day>:HH:MM-\<day>:HH:MM@.
    --
    -- For the day values, use @mon@|@tue@|@wed@|@thu@|@fri@|@sat@|@sun@.
    --
    -- For example, @sun:09:32-sun:10:02@.
    AwsRdsDbClusterDetails -> Maybe Text
preferredMaintenanceWindow :: Prelude.Maybe Prelude.Text,
    -- | A list of Availability Zones (AZs) where instances in the DB cluster can
    -- be created.
    AwsRdsDbClusterDetails -> Maybe [Text]
availabilityZones :: Prelude.Maybe [Prelude.Text],
    -- | The ARN of the KMS master key that is used to encrypt the database
    -- instances in the DB cluster.
    AwsRdsDbClusterDetails -> Maybe Text
kmsKeyId :: Prelude.Maybe Prelude.Text,
    -- | The range of time each day when automated backups are created, if
    -- automated backups are enabled.
    --
    -- Uses the format @HH:MM-HH:MM@. For example, @04:52-05:22@.
    AwsRdsDbClusterDetails -> Maybe Text
preferredBackupWindow :: Prelude.Maybe Prelude.Text,
    -- | A list of the IAM roles that are associated with the DB cluster.
    AwsRdsDbClusterDetails -> Maybe [AwsRdsDbClusterAssociatedRole]
associatedRoles :: Prelude.Maybe [AwsRdsDbClusterAssociatedRole],
    -- | A list of VPC security groups that the DB cluster belongs to.
    AwsRdsDbClusterDetails -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
vpcSecurityGroups :: Prelude.Maybe [AwsRdsDbInstanceVpcSecurityGroup],
    -- | The number of days for which automated backups are retained.
    AwsRdsDbClusterDetails -> Maybe Int
backupRetentionPeriod :: Prelude.Maybe Prelude.Int,
    -- | The subnet group that is associated with the DB cluster, including the
    -- name, description, and subnets in the subnet group.
    AwsRdsDbClusterDetails -> Maybe Text
dbSubnetGroup :: Prelude.Maybe Prelude.Text,
    -- | Whether the DB cluster has instances in multiple Availability Zones.
    AwsRdsDbClusterDetails -> Maybe Bool
multiAz :: Prelude.Maybe Prelude.Bool,
    -- | The name of the database.
    AwsRdsDbClusterDetails -> Maybe Text
databaseName :: Prelude.Maybe Prelude.Text,
    -- | The database engine mode of the DB cluster.
    AwsRdsDbClusterDetails -> Maybe Text
engineMode :: Prelude.Maybe Prelude.Text,
    -- | A list of log types that this DB cluster is configured to export to
    -- CloudWatch Logs.
    AwsRdsDbClusterDetails -> Maybe [Text]
enabledCloudWatchLogsExports :: Prelude.Maybe [Prelude.Text],
    -- | The status of the database activity stream.
    AwsRdsDbClusterDetails -> Maybe Text
activityStreamStatus :: Prelude.Maybe Prelude.Text,
    -- | For all database engines except Aurora, specifies the allocated storage
    -- size in gibibytes (GiB).
    AwsRdsDbClusterDetails -> Maybe Int
allocatedStorage :: Prelude.Maybe Prelude.Int,
    -- | Whether tags are copied from the DB cluster to snapshots of the DB
    -- cluster.
    AwsRdsDbClusterDetails -> Maybe Bool
copyTagsToSnapshot :: Prelude.Maybe Prelude.Bool,
    -- | Indicates when the DB cluster was created, in Universal Coordinated Time
    -- (UTC).
    --
    -- Uses the @date-time@ format specified in
    -- <https://tools.ietf.org/html/rfc3339#section-5.6 RFC 3339 section 5.6, Internet Date\/Time Format>.
    -- The value cannot contain spaces. For example,
    -- @2020-03-22T13:22:13.933Z@.
    AwsRdsDbClusterDetails -> Maybe Text
clusterCreateTime :: Prelude.Maybe Prelude.Text,
    -- | The connection endpoint for the primary instance of the DB cluster.
    AwsRdsDbClusterDetails -> Maybe Text
endpoint :: Prelude.Maybe Prelude.Text,
    -- | The reader endpoint for the DB cluster.
    AwsRdsDbClusterDetails -> Maybe Text
readerEndpoint :: Prelude.Maybe Prelude.Text,
    -- | The list of option group memberships for this DB cluster.
    AwsRdsDbClusterDetails
-> Maybe [AwsRdsDbClusterOptionGroupMembership]
dbClusterOptionGroupMemberships :: Prelude.Maybe [AwsRdsDbClusterOptionGroupMembership],
    -- | The port number on which the DB instances in the DB cluster accept
    -- connections.
    AwsRdsDbClusterDetails -> Maybe Int
port :: Prelude.Maybe Prelude.Int,
    -- | The Active Directory domain membership records that are associated with
    -- the DB cluster.
    AwsRdsDbClusterDetails -> Maybe [AwsRdsDbDomainMembership]
domainMemberships :: Prelude.Maybe [AwsRdsDbDomainMembership]
  }
  deriving (AwsRdsDbClusterDetails -> AwsRdsDbClusterDetails -> Bool
(AwsRdsDbClusterDetails -> AwsRdsDbClusterDetails -> Bool)
-> (AwsRdsDbClusterDetails -> AwsRdsDbClusterDetails -> Bool)
-> Eq AwsRdsDbClusterDetails
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AwsRdsDbClusterDetails -> AwsRdsDbClusterDetails -> Bool
$c/= :: AwsRdsDbClusterDetails -> AwsRdsDbClusterDetails -> Bool
== :: AwsRdsDbClusterDetails -> AwsRdsDbClusterDetails -> Bool
$c== :: AwsRdsDbClusterDetails -> AwsRdsDbClusterDetails -> Bool
Prelude.Eq, ReadPrec [AwsRdsDbClusterDetails]
ReadPrec AwsRdsDbClusterDetails
Int -> ReadS AwsRdsDbClusterDetails
ReadS [AwsRdsDbClusterDetails]
(Int -> ReadS AwsRdsDbClusterDetails)
-> ReadS [AwsRdsDbClusterDetails]
-> ReadPrec AwsRdsDbClusterDetails
-> ReadPrec [AwsRdsDbClusterDetails]
-> Read AwsRdsDbClusterDetails
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AwsRdsDbClusterDetails]
$creadListPrec :: ReadPrec [AwsRdsDbClusterDetails]
readPrec :: ReadPrec AwsRdsDbClusterDetails
$creadPrec :: ReadPrec AwsRdsDbClusterDetails
readList :: ReadS [AwsRdsDbClusterDetails]
$creadList :: ReadS [AwsRdsDbClusterDetails]
readsPrec :: Int -> ReadS AwsRdsDbClusterDetails
$creadsPrec :: Int -> ReadS AwsRdsDbClusterDetails
Prelude.Read, Int -> AwsRdsDbClusterDetails -> ShowS
[AwsRdsDbClusterDetails] -> ShowS
AwsRdsDbClusterDetails -> String
(Int -> AwsRdsDbClusterDetails -> ShowS)
-> (AwsRdsDbClusterDetails -> String)
-> ([AwsRdsDbClusterDetails] -> ShowS)
-> Show AwsRdsDbClusterDetails
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AwsRdsDbClusterDetails] -> ShowS
$cshowList :: [AwsRdsDbClusterDetails] -> ShowS
show :: AwsRdsDbClusterDetails -> String
$cshow :: AwsRdsDbClusterDetails -> String
showsPrec :: Int -> AwsRdsDbClusterDetails -> ShowS
$cshowsPrec :: Int -> AwsRdsDbClusterDetails -> ShowS
Prelude.Show, (forall x. AwsRdsDbClusterDetails -> Rep AwsRdsDbClusterDetails x)
-> (forall x.
    Rep AwsRdsDbClusterDetails x -> AwsRdsDbClusterDetails)
-> Generic AwsRdsDbClusterDetails
forall x. Rep AwsRdsDbClusterDetails x -> AwsRdsDbClusterDetails
forall x. AwsRdsDbClusterDetails -> Rep AwsRdsDbClusterDetails x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AwsRdsDbClusterDetails x -> AwsRdsDbClusterDetails
$cfrom :: forall x. AwsRdsDbClusterDetails -> Rep AwsRdsDbClusterDetails x
Prelude.Generic)

-- |
-- Create a value of 'AwsRdsDbClusterDetails' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'engineVersion', 'awsRdsDbClusterDetails_engineVersion' - The version number of the database engine to use.
--
-- 'status', 'awsRdsDbClusterDetails_status' - The current status of this DB cluster.
--
-- 'dbClusterMembers', 'awsRdsDbClusterDetails_dbClusterMembers' - The list of instances that make up the DB cluster.
--
-- 'deletionProtection', 'awsRdsDbClusterDetails_deletionProtection' - Whether the DB cluster has deletion protection enabled.
--
-- 'storageEncrypted', 'awsRdsDbClusterDetails_storageEncrypted' - Whether the DB cluster is encrypted.
--
-- 'dbClusterIdentifier', 'awsRdsDbClusterDetails_dbClusterIdentifier' - The DB cluster identifier that the user assigned to the cluster. This
-- identifier is the unique key that identifies a DB cluster.
--
-- 'readReplicaIdentifiers', 'awsRdsDbClusterDetails_readReplicaIdentifiers' - The identifiers of the read replicas that are associated with this DB
-- cluster.
--
-- 'dbClusterParameterGroup', 'awsRdsDbClusterDetails_dbClusterParameterGroup' - The name of the DB cluster parameter group for the DB cluster.
--
-- 'hostedZoneId', 'awsRdsDbClusterDetails_hostedZoneId' - Specifies the identifier that Amazon Route 53 assigns when you create a
-- hosted zone.
--
-- 'masterUsername', 'awsRdsDbClusterDetails_masterUsername' - The name of the master user for the DB cluster.
--
-- 'iamDatabaseAuthenticationEnabled', 'awsRdsDbClusterDetails_iamDatabaseAuthenticationEnabled' - Whether the mapping of IAM accounts to database accounts is enabled.
--
-- 'dbClusterResourceId', 'awsRdsDbClusterDetails_dbClusterResourceId' - The identifier of the DB cluster. The identifier must be unique within
-- each Amazon Web Services Region and is immutable.
--
-- 'customEndpoints', 'awsRdsDbClusterDetails_customEndpoints' - A list of custom endpoints for the DB cluster.
--
-- 'engine', 'awsRdsDbClusterDetails_engine' - The name of the database engine to use for this DB cluster.
--
-- 'httpEndpointEnabled', 'awsRdsDbClusterDetails_httpEndpointEnabled' - Whether the HTTP endpoint for an Aurora Serverless DB cluster is
-- enabled.
--
-- 'crossAccountClone', 'awsRdsDbClusterDetails_crossAccountClone' - Whether the DB cluster is a clone of a DB cluster owned by a different
-- Amazon Web Services account.
--
-- 'preferredMaintenanceWindow', 'awsRdsDbClusterDetails_preferredMaintenanceWindow' - The weekly time range during which system maintenance can occur, in
-- Universal Coordinated Time (UTC).
--
-- Uses the format @\<day>:HH:MM-\<day>:HH:MM@.
--
-- For the day values, use @mon@|@tue@|@wed@|@thu@|@fri@|@sat@|@sun@.
--
-- For example, @sun:09:32-sun:10:02@.
--
-- 'availabilityZones', 'awsRdsDbClusterDetails_availabilityZones' - A list of Availability Zones (AZs) where instances in the DB cluster can
-- be created.
--
-- 'kmsKeyId', 'awsRdsDbClusterDetails_kmsKeyId' - The ARN of the KMS master key that is used to encrypt the database
-- instances in the DB cluster.
--
-- 'preferredBackupWindow', 'awsRdsDbClusterDetails_preferredBackupWindow' - The range of time each day when automated backups are created, if
-- automated backups are enabled.
--
-- Uses the format @HH:MM-HH:MM@. For example, @04:52-05:22@.
--
-- 'associatedRoles', 'awsRdsDbClusterDetails_associatedRoles' - A list of the IAM roles that are associated with the DB cluster.
--
-- 'vpcSecurityGroups', 'awsRdsDbClusterDetails_vpcSecurityGroups' - A list of VPC security groups that the DB cluster belongs to.
--
-- 'backupRetentionPeriod', 'awsRdsDbClusterDetails_backupRetentionPeriod' - The number of days for which automated backups are retained.
--
-- 'dbSubnetGroup', 'awsRdsDbClusterDetails_dbSubnetGroup' - The subnet group that is associated with the DB cluster, including the
-- name, description, and subnets in the subnet group.
--
-- 'multiAz', 'awsRdsDbClusterDetails_multiAz' - Whether the DB cluster has instances in multiple Availability Zones.
--
-- 'databaseName', 'awsRdsDbClusterDetails_databaseName' - The name of the database.
--
-- 'engineMode', 'awsRdsDbClusterDetails_engineMode' - The database engine mode of the DB cluster.
--
-- 'enabledCloudWatchLogsExports', 'awsRdsDbClusterDetails_enabledCloudWatchLogsExports' - A list of log types that this DB cluster is configured to export to
-- CloudWatch Logs.
--
-- 'activityStreamStatus', 'awsRdsDbClusterDetails_activityStreamStatus' - The status of the database activity stream.
--
-- 'allocatedStorage', 'awsRdsDbClusterDetails_allocatedStorage' - For all database engines except Aurora, specifies the allocated storage
-- size in gibibytes (GiB).
--
-- 'copyTagsToSnapshot', 'awsRdsDbClusterDetails_copyTagsToSnapshot' - Whether tags are copied from the DB cluster to snapshots of the DB
-- cluster.
--
-- 'clusterCreateTime', 'awsRdsDbClusterDetails_clusterCreateTime' - Indicates when the DB cluster was created, in Universal Coordinated Time
-- (UTC).
--
-- Uses the @date-time@ format specified in
-- <https://tools.ietf.org/html/rfc3339#section-5.6 RFC 3339 section 5.6, Internet Date\/Time Format>.
-- The value cannot contain spaces. For example,
-- @2020-03-22T13:22:13.933Z@.
--
-- 'endpoint', 'awsRdsDbClusterDetails_endpoint' - The connection endpoint for the primary instance of the DB cluster.
--
-- 'readerEndpoint', 'awsRdsDbClusterDetails_readerEndpoint' - The reader endpoint for the DB cluster.
--
-- 'dbClusterOptionGroupMemberships', 'awsRdsDbClusterDetails_dbClusterOptionGroupMemberships' - The list of option group memberships for this DB cluster.
--
-- 'port', 'awsRdsDbClusterDetails_port' - The port number on which the DB instances in the DB cluster accept
-- connections.
--
-- 'domainMemberships', 'awsRdsDbClusterDetails_domainMemberships' - The Active Directory domain membership records that are associated with
-- the DB cluster.
newAwsRdsDbClusterDetails ::
  AwsRdsDbClusterDetails
newAwsRdsDbClusterDetails :: AwsRdsDbClusterDetails
newAwsRdsDbClusterDetails =
  AwsRdsDbClusterDetails' :: Maybe Text
-> Maybe Text
-> Maybe [AwsRdsDbClusterMember]
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe [AwsRdsDbClusterAssociatedRole]
-> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
-> Maybe Int
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe Int
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [AwsRdsDbClusterOptionGroupMembership]
-> Maybe Int
-> Maybe [AwsRdsDbDomainMembership]
-> AwsRdsDbClusterDetails
AwsRdsDbClusterDetails'
    { $sel:engineVersion:AwsRdsDbClusterDetails' :: Maybe Text
engineVersion =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:status:AwsRdsDbClusterDetails' :: Maybe Text
status = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:dbClusterMembers:AwsRdsDbClusterDetails' :: Maybe [AwsRdsDbClusterMember]
dbClusterMembers = Maybe [AwsRdsDbClusterMember]
forall a. Maybe a
Prelude.Nothing,
      $sel:deletionProtection:AwsRdsDbClusterDetails' :: Maybe Bool
deletionProtection = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:storageEncrypted:AwsRdsDbClusterDetails' :: Maybe Bool
storageEncrypted = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:dbClusterIdentifier:AwsRdsDbClusterDetails' :: Maybe Text
dbClusterIdentifier = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:readReplicaIdentifiers:AwsRdsDbClusterDetails' :: Maybe [Text]
readReplicaIdentifiers = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:dbClusterParameterGroup:AwsRdsDbClusterDetails' :: Maybe Text
dbClusterParameterGroup = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:hostedZoneId:AwsRdsDbClusterDetails' :: Maybe Text
hostedZoneId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:masterUsername:AwsRdsDbClusterDetails' :: Maybe Text
masterUsername = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:iamDatabaseAuthenticationEnabled:AwsRdsDbClusterDetails' :: Maybe Bool
iamDatabaseAuthenticationEnabled = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:dbClusterResourceId:AwsRdsDbClusterDetails' :: Maybe Text
dbClusterResourceId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:customEndpoints:AwsRdsDbClusterDetails' :: Maybe [Text]
customEndpoints = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:engine:AwsRdsDbClusterDetails' :: Maybe Text
engine = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:httpEndpointEnabled:AwsRdsDbClusterDetails' :: Maybe Bool
httpEndpointEnabled = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:crossAccountClone:AwsRdsDbClusterDetails' :: Maybe Bool
crossAccountClone = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:preferredMaintenanceWindow:AwsRdsDbClusterDetails' :: Maybe Text
preferredMaintenanceWindow = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:availabilityZones:AwsRdsDbClusterDetails' :: Maybe [Text]
availabilityZones = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:kmsKeyId:AwsRdsDbClusterDetails' :: Maybe Text
kmsKeyId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:preferredBackupWindow:AwsRdsDbClusterDetails' :: Maybe Text
preferredBackupWindow = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:associatedRoles:AwsRdsDbClusterDetails' :: Maybe [AwsRdsDbClusterAssociatedRole]
associatedRoles = Maybe [AwsRdsDbClusterAssociatedRole]
forall a. Maybe a
Prelude.Nothing,
      $sel:vpcSecurityGroups:AwsRdsDbClusterDetails' :: Maybe [AwsRdsDbInstanceVpcSecurityGroup]
vpcSecurityGroups = Maybe [AwsRdsDbInstanceVpcSecurityGroup]
forall a. Maybe a
Prelude.Nothing,
      $sel:backupRetentionPeriod:AwsRdsDbClusterDetails' :: Maybe Int
backupRetentionPeriod = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:dbSubnetGroup:AwsRdsDbClusterDetails' :: Maybe Text
dbSubnetGroup = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:multiAz:AwsRdsDbClusterDetails' :: Maybe Bool
multiAz = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:databaseName:AwsRdsDbClusterDetails' :: Maybe Text
databaseName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:engineMode:AwsRdsDbClusterDetails' :: Maybe Text
engineMode = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:enabledCloudWatchLogsExports:AwsRdsDbClusterDetails' :: Maybe [Text]
enabledCloudWatchLogsExports = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:activityStreamStatus:AwsRdsDbClusterDetails' :: Maybe Text
activityStreamStatus = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:allocatedStorage:AwsRdsDbClusterDetails' :: Maybe Int
allocatedStorage = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:copyTagsToSnapshot:AwsRdsDbClusterDetails' :: Maybe Bool
copyTagsToSnapshot = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:clusterCreateTime:AwsRdsDbClusterDetails' :: Maybe Text
clusterCreateTime = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:endpoint:AwsRdsDbClusterDetails' :: Maybe Text
endpoint = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:readerEndpoint:AwsRdsDbClusterDetails' :: Maybe Text
readerEndpoint = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:dbClusterOptionGroupMemberships:AwsRdsDbClusterDetails' :: Maybe [AwsRdsDbClusterOptionGroupMembership]
dbClusterOptionGroupMemberships = Maybe [AwsRdsDbClusterOptionGroupMembership]
forall a. Maybe a
Prelude.Nothing,
      $sel:port:AwsRdsDbClusterDetails' :: Maybe Int
port = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:domainMemberships:AwsRdsDbClusterDetails' :: Maybe [AwsRdsDbDomainMembership]
domainMemberships = Maybe [AwsRdsDbDomainMembership]
forall a. Maybe a
Prelude.Nothing
    }

-- | The version number of the database engine to use.
awsRdsDbClusterDetails_engineVersion :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Text)
awsRdsDbClusterDetails_engineVersion :: (Maybe Text -> f (Maybe Text))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_engineVersion = (AwsRdsDbClusterDetails -> Maybe Text)
-> (AwsRdsDbClusterDetails -> Maybe Text -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Text
engineVersion :: Maybe Text
$sel:engineVersion:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
engineVersion} -> Maybe Text
engineVersion) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Text
a -> AwsRdsDbClusterDetails
s {$sel:engineVersion:AwsRdsDbClusterDetails' :: Maybe Text
engineVersion = Maybe Text
a} :: AwsRdsDbClusterDetails)

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

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

-- | Whether the DB cluster has deletion protection enabled.
awsRdsDbClusterDetails_deletionProtection :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Bool)
awsRdsDbClusterDetails_deletionProtection :: (Maybe Bool -> f (Maybe Bool))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_deletionProtection = (AwsRdsDbClusterDetails -> Maybe Bool)
-> (AwsRdsDbClusterDetails -> Maybe Bool -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Bool
deletionProtection :: Maybe Bool
$sel:deletionProtection:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Bool
deletionProtection} -> Maybe Bool
deletionProtection) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Bool
a -> AwsRdsDbClusterDetails
s {$sel:deletionProtection:AwsRdsDbClusterDetails' :: Maybe Bool
deletionProtection = Maybe Bool
a} :: AwsRdsDbClusterDetails)

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

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

-- | The identifiers of the read replicas that are associated with this DB
-- cluster.
awsRdsDbClusterDetails_readReplicaIdentifiers :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe [Prelude.Text])
awsRdsDbClusterDetails_readReplicaIdentifiers :: (Maybe [Text] -> f (Maybe [Text]))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_readReplicaIdentifiers = (AwsRdsDbClusterDetails -> Maybe [Text])
-> (AwsRdsDbClusterDetails
    -> Maybe [Text] -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe [Text])
     (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe [Text]
readReplicaIdentifiers :: Maybe [Text]
$sel:readReplicaIdentifiers:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe [Text]
readReplicaIdentifiers} -> Maybe [Text]
readReplicaIdentifiers) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe [Text]
a -> AwsRdsDbClusterDetails
s {$sel:readReplicaIdentifiers:AwsRdsDbClusterDetails' :: Maybe [Text]
readReplicaIdentifiers = Maybe [Text]
a} :: AwsRdsDbClusterDetails) ((Maybe [Text] -> f (Maybe [Text]))
 -> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> AwsRdsDbClusterDetails
-> f AwsRdsDbClusterDetails
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 DB cluster parameter group for the DB cluster.
awsRdsDbClusterDetails_dbClusterParameterGroup :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Text)
awsRdsDbClusterDetails_dbClusterParameterGroup :: (Maybe Text -> f (Maybe Text))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_dbClusterParameterGroup = (AwsRdsDbClusterDetails -> Maybe Text)
-> (AwsRdsDbClusterDetails -> Maybe Text -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Text
dbClusterParameterGroup :: Maybe Text
$sel:dbClusterParameterGroup:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
dbClusterParameterGroup} -> Maybe Text
dbClusterParameterGroup) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Text
a -> AwsRdsDbClusterDetails
s {$sel:dbClusterParameterGroup:AwsRdsDbClusterDetails' :: Maybe Text
dbClusterParameterGroup = Maybe Text
a} :: AwsRdsDbClusterDetails)

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

-- | The name of the master user for the DB cluster.
awsRdsDbClusterDetails_masterUsername :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Text)
awsRdsDbClusterDetails_masterUsername :: (Maybe Text -> f (Maybe Text))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_masterUsername = (AwsRdsDbClusterDetails -> Maybe Text)
-> (AwsRdsDbClusterDetails -> Maybe Text -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Text
masterUsername :: Maybe Text
$sel:masterUsername:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
masterUsername} -> Maybe Text
masterUsername) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Text
a -> AwsRdsDbClusterDetails
s {$sel:masterUsername:AwsRdsDbClusterDetails' :: Maybe Text
masterUsername = Maybe Text
a} :: AwsRdsDbClusterDetails)

-- | Whether the mapping of IAM accounts to database accounts is enabled.
awsRdsDbClusterDetails_iamDatabaseAuthenticationEnabled :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Bool)
awsRdsDbClusterDetails_iamDatabaseAuthenticationEnabled :: (Maybe Bool -> f (Maybe Bool))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_iamDatabaseAuthenticationEnabled = (AwsRdsDbClusterDetails -> Maybe Bool)
-> (AwsRdsDbClusterDetails -> Maybe Bool -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Bool
iamDatabaseAuthenticationEnabled :: Maybe Bool
$sel:iamDatabaseAuthenticationEnabled:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Bool
iamDatabaseAuthenticationEnabled} -> Maybe Bool
iamDatabaseAuthenticationEnabled) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Bool
a -> AwsRdsDbClusterDetails
s {$sel:iamDatabaseAuthenticationEnabled:AwsRdsDbClusterDetails' :: Maybe Bool
iamDatabaseAuthenticationEnabled = Maybe Bool
a} :: AwsRdsDbClusterDetails)

-- | The identifier of the DB cluster. The identifier must be unique within
-- each Amazon Web Services Region and is immutable.
awsRdsDbClusterDetails_dbClusterResourceId :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Text)
awsRdsDbClusterDetails_dbClusterResourceId :: (Maybe Text -> f (Maybe Text))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_dbClusterResourceId = (AwsRdsDbClusterDetails -> Maybe Text)
-> (AwsRdsDbClusterDetails -> Maybe Text -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Text
dbClusterResourceId :: Maybe Text
$sel:dbClusterResourceId:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
dbClusterResourceId} -> Maybe Text
dbClusterResourceId) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Text
a -> AwsRdsDbClusterDetails
s {$sel:dbClusterResourceId:AwsRdsDbClusterDetails' :: Maybe Text
dbClusterResourceId = Maybe Text
a} :: AwsRdsDbClusterDetails)

-- | A list of custom endpoints for the DB cluster.
awsRdsDbClusterDetails_customEndpoints :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe [Prelude.Text])
awsRdsDbClusterDetails_customEndpoints :: (Maybe [Text] -> f (Maybe [Text]))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_customEndpoints = (AwsRdsDbClusterDetails -> Maybe [Text])
-> (AwsRdsDbClusterDetails
    -> Maybe [Text] -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe [Text])
     (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe [Text]
customEndpoints :: Maybe [Text]
$sel:customEndpoints:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe [Text]
customEndpoints} -> Maybe [Text]
customEndpoints) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe [Text]
a -> AwsRdsDbClusterDetails
s {$sel:customEndpoints:AwsRdsDbClusterDetails' :: Maybe [Text]
customEndpoints = Maybe [Text]
a} :: AwsRdsDbClusterDetails) ((Maybe [Text] -> f (Maybe [Text]))
 -> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> AwsRdsDbClusterDetails
-> f AwsRdsDbClusterDetails
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 use for this DB cluster.
awsRdsDbClusterDetails_engine :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Text)
awsRdsDbClusterDetails_engine :: (Maybe Text -> f (Maybe Text))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_engine = (AwsRdsDbClusterDetails -> Maybe Text)
-> (AwsRdsDbClusterDetails -> Maybe Text -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Text
engine :: Maybe Text
$sel:engine:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
engine} -> Maybe Text
engine) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Text
a -> AwsRdsDbClusterDetails
s {$sel:engine:AwsRdsDbClusterDetails' :: Maybe Text
engine = Maybe Text
a} :: AwsRdsDbClusterDetails)

-- | Whether the HTTP endpoint for an Aurora Serverless DB cluster is
-- enabled.
awsRdsDbClusterDetails_httpEndpointEnabled :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Bool)
awsRdsDbClusterDetails_httpEndpointEnabled :: (Maybe Bool -> f (Maybe Bool))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_httpEndpointEnabled = (AwsRdsDbClusterDetails -> Maybe Bool)
-> (AwsRdsDbClusterDetails -> Maybe Bool -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Bool
httpEndpointEnabled :: Maybe Bool
$sel:httpEndpointEnabled:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Bool
httpEndpointEnabled} -> Maybe Bool
httpEndpointEnabled) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Bool
a -> AwsRdsDbClusterDetails
s {$sel:httpEndpointEnabled:AwsRdsDbClusterDetails' :: Maybe Bool
httpEndpointEnabled = Maybe Bool
a} :: AwsRdsDbClusterDetails)

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

-- | The weekly time range during which system maintenance can occur, in
-- Universal Coordinated Time (UTC).
--
-- Uses the format @\<day>:HH:MM-\<day>:HH:MM@.
--
-- For the day values, use @mon@|@tue@|@wed@|@thu@|@fri@|@sat@|@sun@.
--
-- For example, @sun:09:32-sun:10:02@.
awsRdsDbClusterDetails_preferredMaintenanceWindow :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Text)
awsRdsDbClusterDetails_preferredMaintenanceWindow :: (Maybe Text -> f (Maybe Text))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_preferredMaintenanceWindow = (AwsRdsDbClusterDetails -> Maybe Text)
-> (AwsRdsDbClusterDetails -> Maybe Text -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Text
preferredMaintenanceWindow :: Maybe Text
$sel:preferredMaintenanceWindow:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
preferredMaintenanceWindow} -> Maybe Text
preferredMaintenanceWindow) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Text
a -> AwsRdsDbClusterDetails
s {$sel:preferredMaintenanceWindow:AwsRdsDbClusterDetails' :: Maybe Text
preferredMaintenanceWindow = Maybe Text
a} :: AwsRdsDbClusterDetails)

-- | A list of Availability Zones (AZs) where instances in the DB cluster can
-- be created.
awsRdsDbClusterDetails_availabilityZones :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe [Prelude.Text])
awsRdsDbClusterDetails_availabilityZones :: (Maybe [Text] -> f (Maybe [Text]))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_availabilityZones = (AwsRdsDbClusterDetails -> Maybe [Text])
-> (AwsRdsDbClusterDetails
    -> Maybe [Text] -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe [Text])
     (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe [Text]
availabilityZones :: Maybe [Text]
$sel:availabilityZones:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe [Text]
availabilityZones} -> Maybe [Text]
availabilityZones) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe [Text]
a -> AwsRdsDbClusterDetails
s {$sel:availabilityZones:AwsRdsDbClusterDetails' :: Maybe [Text]
availabilityZones = Maybe [Text]
a} :: AwsRdsDbClusterDetails) ((Maybe [Text] -> f (Maybe [Text]))
 -> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> AwsRdsDbClusterDetails
-> f AwsRdsDbClusterDetails
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 ARN of the KMS master key that is used to encrypt the database
-- instances in the DB cluster.
awsRdsDbClusterDetails_kmsKeyId :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Text)
awsRdsDbClusterDetails_kmsKeyId :: (Maybe Text -> f (Maybe Text))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_kmsKeyId = (AwsRdsDbClusterDetails -> Maybe Text)
-> (AwsRdsDbClusterDetails -> Maybe Text -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Text
kmsKeyId :: Maybe Text
$sel:kmsKeyId:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
kmsKeyId} -> Maybe Text
kmsKeyId) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Text
a -> AwsRdsDbClusterDetails
s {$sel:kmsKeyId:AwsRdsDbClusterDetails' :: Maybe Text
kmsKeyId = Maybe Text
a} :: AwsRdsDbClusterDetails)

-- | The range of time each day when automated backups are created, if
-- automated backups are enabled.
--
-- Uses the format @HH:MM-HH:MM@. For example, @04:52-05:22@.
awsRdsDbClusterDetails_preferredBackupWindow :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Text)
awsRdsDbClusterDetails_preferredBackupWindow :: (Maybe Text -> f (Maybe Text))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_preferredBackupWindow = (AwsRdsDbClusterDetails -> Maybe Text)
-> (AwsRdsDbClusterDetails -> Maybe Text -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Text
preferredBackupWindow :: Maybe Text
$sel:preferredBackupWindow:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
preferredBackupWindow} -> Maybe Text
preferredBackupWindow) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Text
a -> AwsRdsDbClusterDetails
s {$sel:preferredBackupWindow:AwsRdsDbClusterDetails' :: Maybe Text
preferredBackupWindow = Maybe Text
a} :: AwsRdsDbClusterDetails)

-- | A list of the IAM roles that are associated with the DB cluster.
awsRdsDbClusterDetails_associatedRoles :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe [AwsRdsDbClusterAssociatedRole])
awsRdsDbClusterDetails_associatedRoles :: (Maybe [AwsRdsDbClusterAssociatedRole]
 -> f (Maybe [AwsRdsDbClusterAssociatedRole]))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_associatedRoles = (AwsRdsDbClusterDetails -> Maybe [AwsRdsDbClusterAssociatedRole])
-> (AwsRdsDbClusterDetails
    -> Maybe [AwsRdsDbClusterAssociatedRole] -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe [AwsRdsDbClusterAssociatedRole])
     (Maybe [AwsRdsDbClusterAssociatedRole])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe [AwsRdsDbClusterAssociatedRole]
associatedRoles :: Maybe [AwsRdsDbClusterAssociatedRole]
$sel:associatedRoles:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe [AwsRdsDbClusterAssociatedRole]
associatedRoles} -> Maybe [AwsRdsDbClusterAssociatedRole]
associatedRoles) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe [AwsRdsDbClusterAssociatedRole]
a -> AwsRdsDbClusterDetails
s {$sel:associatedRoles:AwsRdsDbClusterDetails' :: Maybe [AwsRdsDbClusterAssociatedRole]
associatedRoles = Maybe [AwsRdsDbClusterAssociatedRole]
a} :: AwsRdsDbClusterDetails) ((Maybe [AwsRdsDbClusterAssociatedRole]
  -> f (Maybe [AwsRdsDbClusterAssociatedRole]))
 -> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails)
-> ((Maybe [AwsRdsDbClusterAssociatedRole]
     -> f (Maybe [AwsRdsDbClusterAssociatedRole]))
    -> Maybe [AwsRdsDbClusterAssociatedRole]
    -> f (Maybe [AwsRdsDbClusterAssociatedRole]))
-> (Maybe [AwsRdsDbClusterAssociatedRole]
    -> f (Maybe [AwsRdsDbClusterAssociatedRole]))
-> AwsRdsDbClusterDetails
-> f AwsRdsDbClusterDetails
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [AwsRdsDbClusterAssociatedRole]
  [AwsRdsDbClusterAssociatedRole]
  [AwsRdsDbClusterAssociatedRole]
  [AwsRdsDbClusterAssociatedRole]
-> Iso
     (Maybe [AwsRdsDbClusterAssociatedRole])
     (Maybe [AwsRdsDbClusterAssociatedRole])
     (Maybe [AwsRdsDbClusterAssociatedRole])
     (Maybe [AwsRdsDbClusterAssociatedRole])
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
  [AwsRdsDbClusterAssociatedRole]
  [AwsRdsDbClusterAssociatedRole]
  [AwsRdsDbClusterAssociatedRole]
  [AwsRdsDbClusterAssociatedRole]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A list of VPC security groups that the DB cluster belongs to.
awsRdsDbClusterDetails_vpcSecurityGroups :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe [AwsRdsDbInstanceVpcSecurityGroup])
awsRdsDbClusterDetails_vpcSecurityGroups :: (Maybe [AwsRdsDbInstanceVpcSecurityGroup]
 -> f (Maybe [AwsRdsDbInstanceVpcSecurityGroup]))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_vpcSecurityGroups = (AwsRdsDbClusterDetails
 -> Maybe [AwsRdsDbInstanceVpcSecurityGroup])
-> (AwsRdsDbClusterDetails
    -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
    -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe [AwsRdsDbInstanceVpcSecurityGroup])
     (Maybe [AwsRdsDbInstanceVpcSecurityGroup])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe [AwsRdsDbInstanceVpcSecurityGroup]
vpcSecurityGroups :: Maybe [AwsRdsDbInstanceVpcSecurityGroup]
$sel:vpcSecurityGroups:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
vpcSecurityGroups} -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
vpcSecurityGroups) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe [AwsRdsDbInstanceVpcSecurityGroup]
a -> AwsRdsDbClusterDetails
s {$sel:vpcSecurityGroups:AwsRdsDbClusterDetails' :: Maybe [AwsRdsDbInstanceVpcSecurityGroup]
vpcSecurityGroups = Maybe [AwsRdsDbInstanceVpcSecurityGroup]
a} :: AwsRdsDbClusterDetails) ((Maybe [AwsRdsDbInstanceVpcSecurityGroup]
  -> f (Maybe [AwsRdsDbInstanceVpcSecurityGroup]))
 -> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails)
-> ((Maybe [AwsRdsDbInstanceVpcSecurityGroup]
     -> f (Maybe [AwsRdsDbInstanceVpcSecurityGroup]))
    -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
    -> f (Maybe [AwsRdsDbInstanceVpcSecurityGroup]))
-> (Maybe [AwsRdsDbInstanceVpcSecurityGroup]
    -> f (Maybe [AwsRdsDbInstanceVpcSecurityGroup]))
-> AwsRdsDbClusterDetails
-> f AwsRdsDbClusterDetails
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [AwsRdsDbInstanceVpcSecurityGroup]
  [AwsRdsDbInstanceVpcSecurityGroup]
  [AwsRdsDbInstanceVpcSecurityGroup]
  [AwsRdsDbInstanceVpcSecurityGroup]
-> Iso
     (Maybe [AwsRdsDbInstanceVpcSecurityGroup])
     (Maybe [AwsRdsDbInstanceVpcSecurityGroup])
     (Maybe [AwsRdsDbInstanceVpcSecurityGroup])
     (Maybe [AwsRdsDbInstanceVpcSecurityGroup])
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
  [AwsRdsDbInstanceVpcSecurityGroup]
  [AwsRdsDbInstanceVpcSecurityGroup]
  [AwsRdsDbInstanceVpcSecurityGroup]
  [AwsRdsDbInstanceVpcSecurityGroup]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The number of days for which automated backups are retained.
awsRdsDbClusterDetails_backupRetentionPeriod :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Int)
awsRdsDbClusterDetails_backupRetentionPeriod :: (Maybe Int -> f (Maybe Int))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_backupRetentionPeriod = (AwsRdsDbClusterDetails -> Maybe Int)
-> (AwsRdsDbClusterDetails -> Maybe Int -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Int
backupRetentionPeriod :: Maybe Int
$sel:backupRetentionPeriod:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Int
backupRetentionPeriod} -> Maybe Int
backupRetentionPeriod) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Int
a -> AwsRdsDbClusterDetails
s {$sel:backupRetentionPeriod:AwsRdsDbClusterDetails' :: Maybe Int
backupRetentionPeriod = Maybe Int
a} :: AwsRdsDbClusterDetails)

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

-- | Whether the DB cluster has instances in multiple Availability Zones.
awsRdsDbClusterDetails_multiAz :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Bool)
awsRdsDbClusterDetails_multiAz :: (Maybe Bool -> f (Maybe Bool))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_multiAz = (AwsRdsDbClusterDetails -> Maybe Bool)
-> (AwsRdsDbClusterDetails -> Maybe Bool -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Bool
multiAz :: Maybe Bool
$sel:multiAz:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Bool
multiAz} -> Maybe Bool
multiAz) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Bool
a -> AwsRdsDbClusterDetails
s {$sel:multiAz:AwsRdsDbClusterDetails' :: Maybe Bool
multiAz = Maybe Bool
a} :: AwsRdsDbClusterDetails)

-- | The name of the database.
awsRdsDbClusterDetails_databaseName :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Text)
awsRdsDbClusterDetails_databaseName :: (Maybe Text -> f (Maybe Text))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_databaseName = (AwsRdsDbClusterDetails -> Maybe Text)
-> (AwsRdsDbClusterDetails -> Maybe Text -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Text
databaseName :: Maybe Text
$sel:databaseName:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
databaseName} -> Maybe Text
databaseName) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Text
a -> AwsRdsDbClusterDetails
s {$sel:databaseName:AwsRdsDbClusterDetails' :: Maybe Text
databaseName = Maybe Text
a} :: AwsRdsDbClusterDetails)

-- | The database engine mode of the DB cluster.
awsRdsDbClusterDetails_engineMode :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Text)
awsRdsDbClusterDetails_engineMode :: (Maybe Text -> f (Maybe Text))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_engineMode = (AwsRdsDbClusterDetails -> Maybe Text)
-> (AwsRdsDbClusterDetails -> Maybe Text -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Text
engineMode :: Maybe Text
$sel:engineMode:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
engineMode} -> Maybe Text
engineMode) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Text
a -> AwsRdsDbClusterDetails
s {$sel:engineMode:AwsRdsDbClusterDetails' :: Maybe Text
engineMode = Maybe Text
a} :: AwsRdsDbClusterDetails)

-- | A list of log types that this DB cluster is configured to export to
-- CloudWatch Logs.
awsRdsDbClusterDetails_enabledCloudWatchLogsExports :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe [Prelude.Text])
awsRdsDbClusterDetails_enabledCloudWatchLogsExports :: (Maybe [Text] -> f (Maybe [Text]))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_enabledCloudWatchLogsExports = (AwsRdsDbClusterDetails -> Maybe [Text])
-> (AwsRdsDbClusterDetails
    -> Maybe [Text] -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe [Text])
     (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe [Text]
enabledCloudWatchLogsExports :: Maybe [Text]
$sel:enabledCloudWatchLogsExports:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe [Text]
enabledCloudWatchLogsExports} -> Maybe [Text]
enabledCloudWatchLogsExports) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe [Text]
a -> AwsRdsDbClusterDetails
s {$sel:enabledCloudWatchLogsExports:AwsRdsDbClusterDetails' :: Maybe [Text]
enabledCloudWatchLogsExports = Maybe [Text]
a} :: AwsRdsDbClusterDetails) ((Maybe [Text] -> f (Maybe [Text]))
 -> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> AwsRdsDbClusterDetails
-> f AwsRdsDbClusterDetails
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.
awsRdsDbClusterDetails_activityStreamStatus :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Text)
awsRdsDbClusterDetails_activityStreamStatus :: (Maybe Text -> f (Maybe Text))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_activityStreamStatus = (AwsRdsDbClusterDetails -> Maybe Text)
-> (AwsRdsDbClusterDetails -> Maybe Text -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Text
activityStreamStatus :: Maybe Text
$sel:activityStreamStatus:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
activityStreamStatus} -> Maybe Text
activityStreamStatus) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Text
a -> AwsRdsDbClusterDetails
s {$sel:activityStreamStatus:AwsRdsDbClusterDetails' :: Maybe Text
activityStreamStatus = Maybe Text
a} :: AwsRdsDbClusterDetails)

-- | For all database engines except Aurora, specifies the allocated storage
-- size in gibibytes (GiB).
awsRdsDbClusterDetails_allocatedStorage :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Int)
awsRdsDbClusterDetails_allocatedStorage :: (Maybe Int -> f (Maybe Int))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_allocatedStorage = (AwsRdsDbClusterDetails -> Maybe Int)
-> (AwsRdsDbClusterDetails -> Maybe Int -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Int
allocatedStorage :: Maybe Int
$sel:allocatedStorage:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Int
allocatedStorage} -> Maybe Int
allocatedStorage) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Int
a -> AwsRdsDbClusterDetails
s {$sel:allocatedStorage:AwsRdsDbClusterDetails' :: Maybe Int
allocatedStorage = Maybe Int
a} :: AwsRdsDbClusterDetails)

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

-- | Indicates when the DB cluster was created, in Universal Coordinated Time
-- (UTC).
--
-- Uses the @date-time@ format specified in
-- <https://tools.ietf.org/html/rfc3339#section-5.6 RFC 3339 section 5.6, Internet Date\/Time Format>.
-- The value cannot contain spaces. For example,
-- @2020-03-22T13:22:13.933Z@.
awsRdsDbClusterDetails_clusterCreateTime :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Text)
awsRdsDbClusterDetails_clusterCreateTime :: (Maybe Text -> f (Maybe Text))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_clusterCreateTime = (AwsRdsDbClusterDetails -> Maybe Text)
-> (AwsRdsDbClusterDetails -> Maybe Text -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Text
clusterCreateTime :: Maybe Text
$sel:clusterCreateTime:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
clusterCreateTime} -> Maybe Text
clusterCreateTime) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Text
a -> AwsRdsDbClusterDetails
s {$sel:clusterCreateTime:AwsRdsDbClusterDetails' :: Maybe Text
clusterCreateTime = Maybe Text
a} :: AwsRdsDbClusterDetails)

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

-- | The reader endpoint for the DB cluster.
awsRdsDbClusterDetails_readerEndpoint :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Text)
awsRdsDbClusterDetails_readerEndpoint :: (Maybe Text -> f (Maybe Text))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_readerEndpoint = (AwsRdsDbClusterDetails -> Maybe Text)
-> (AwsRdsDbClusterDetails -> Maybe Text -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Text
readerEndpoint :: Maybe Text
$sel:readerEndpoint:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
readerEndpoint} -> Maybe Text
readerEndpoint) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Text
a -> AwsRdsDbClusterDetails
s {$sel:readerEndpoint:AwsRdsDbClusterDetails' :: Maybe Text
readerEndpoint = Maybe Text
a} :: AwsRdsDbClusterDetails)

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

-- | The port number on which the DB instances in the DB cluster accept
-- connections.
awsRdsDbClusterDetails_port :: Lens.Lens' AwsRdsDbClusterDetails (Prelude.Maybe Prelude.Int)
awsRdsDbClusterDetails_port :: (Maybe Int -> f (Maybe Int))
-> AwsRdsDbClusterDetails -> f AwsRdsDbClusterDetails
awsRdsDbClusterDetails_port = (AwsRdsDbClusterDetails -> Maybe Int)
-> (AwsRdsDbClusterDetails -> Maybe Int -> AwsRdsDbClusterDetails)
-> Lens
     AwsRdsDbClusterDetails
     AwsRdsDbClusterDetails
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsRdsDbClusterDetails' {Maybe Int
port :: Maybe Int
$sel:port:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Int
port} -> Maybe Int
port) (\s :: AwsRdsDbClusterDetails
s@AwsRdsDbClusterDetails' {} Maybe Int
a -> AwsRdsDbClusterDetails
s {$sel:port:AwsRdsDbClusterDetails' :: Maybe Int
port = Maybe Int
a} :: AwsRdsDbClusterDetails)

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

instance Core.FromJSON AwsRdsDbClusterDetails where
  parseJSON :: Value -> Parser AwsRdsDbClusterDetails
parseJSON =
    String
-> (Object -> Parser AwsRdsDbClusterDetails)
-> Value
-> Parser AwsRdsDbClusterDetails
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"AwsRdsDbClusterDetails"
      ( \Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe [AwsRdsDbClusterMember]
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe [AwsRdsDbClusterAssociatedRole]
-> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
-> Maybe Int
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe Int
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [AwsRdsDbClusterOptionGroupMembership]
-> Maybe Int
-> Maybe [AwsRdsDbDomainMembership]
-> AwsRdsDbClusterDetails
AwsRdsDbClusterDetails'
            (Maybe Text
 -> Maybe Text
 -> Maybe [AwsRdsDbClusterMember]
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe Text
 -> Maybe [AwsRdsDbClusterAssociatedRole]
 -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
 -> Maybe Int
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe Int
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe [AwsRdsDbClusterOptionGroupMembership]
 -> Maybe Int
 -> Maybe [AwsRdsDbDomainMembership]
 -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe [AwsRdsDbClusterMember]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"EngineVersion")
            Parser
  (Maybe Text
   -> Maybe [AwsRdsDbClusterMember]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe [AwsRdsDbClusterMember]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Status")
            Parser
  (Maybe [AwsRdsDbClusterMember]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe [AwsRdsDbClusterMember])
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [AwsRdsDbClusterMember]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DbClusterMembers"
                            Parser (Maybe (Maybe [AwsRdsDbClusterMember]))
-> Maybe [AwsRdsDbClusterMember]
-> Parser (Maybe [AwsRdsDbClusterMember])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [AwsRdsDbClusterMember]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DeletionProtection")
            Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"StorageEncrypted")
            Parser
  (Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DbClusterIdentifier")
            Parser
  (Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [Text]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ReadReplicaIdentifiers"
                            Parser (Maybe (Maybe [Text]))
-> Maybe [Text] -> Parser (Maybe [Text])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [Text]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DbClusterParameterGroup")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"HostedZoneId")
            Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"MasterUsername")
            Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"IamDatabaseAuthenticationEnabled")
            Parser
  (Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DbClusterResourceId")
            Parser
  (Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [Text]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"CustomEndpoints"
                            Parser (Maybe (Maybe [Text]))
-> Maybe [Text] -> Parser (Maybe [Text])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [Text]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Engine")
            Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"HttpEndpointEnabled")
            Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"CrossAccountClone")
            Parser
  (Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"PreferredMaintenanceWindow")
            Parser
  (Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [Text]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AvailabilityZones"
                            Parser (Maybe (Maybe [Text]))
-> Maybe [Text] -> Parser (Maybe [Text])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [Text]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"KmsKeyId")
            Parser
  (Maybe Text
   -> Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe [AwsRdsDbClusterAssociatedRole]
      -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"PreferredBackupWindow")
            Parser
  (Maybe [AwsRdsDbClusterAssociatedRole]
   -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe [AwsRdsDbClusterAssociatedRole])
-> Parser
     (Maybe [AwsRdsDbInstanceVpcSecurityGroup]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text -> Parser (Maybe (Maybe [AwsRdsDbClusterAssociatedRole]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AssociatedRoles"
                            Parser (Maybe (Maybe [AwsRdsDbClusterAssociatedRole]))
-> Maybe [AwsRdsDbClusterAssociatedRole]
-> Parser (Maybe [AwsRdsDbClusterAssociatedRole])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [AwsRdsDbClusterAssociatedRole]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe [AwsRdsDbInstanceVpcSecurityGroup]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe [AwsRdsDbInstanceVpcSecurityGroup])
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text
-> Parser (Maybe (Maybe [AwsRdsDbInstanceVpcSecurityGroup]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"VpcSecurityGroups"
                            Parser (Maybe (Maybe [AwsRdsDbInstanceVpcSecurityGroup]))
-> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
-> Parser (Maybe [AwsRdsDbInstanceVpcSecurityGroup])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [AwsRdsDbInstanceVpcSecurityGroup]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"BackupRetentionPeriod")
            Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DbSubnetGroup")
            Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"MultiAz")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DatabaseName")
            Parser
  (Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Text]
      -> Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"EngineMode")
            Parser
  (Maybe [Text]
   -> Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [Text]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"EnabledCloudWatchLogsExports"
                            Parser (Maybe (Maybe [Text]))
-> Maybe [Text] -> Parser (Maybe [Text])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [Text]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe Text
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ActivityStreamStatus")
            Parser
  (Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AllocatedStorage")
            Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"CopyTagsToSnapshot")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ClusterCreateTime")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Endpoint")
            Parser
  (Maybe Text
   -> Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe [AwsRdsDbClusterOptionGroupMembership]
      -> Maybe Int
      -> Maybe [AwsRdsDbDomainMembership]
      -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ReaderEndpoint")
            Parser
  (Maybe [AwsRdsDbClusterOptionGroupMembership]
   -> Maybe Int
   -> Maybe [AwsRdsDbDomainMembership]
   -> AwsRdsDbClusterDetails)
-> Parser (Maybe [AwsRdsDbClusterOptionGroupMembership])
-> Parser
     (Maybe Int
      -> Maybe [AwsRdsDbDomainMembership] -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text
-> Parser (Maybe (Maybe [AwsRdsDbClusterOptionGroupMembership]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DbClusterOptionGroupMemberships"
                            Parser (Maybe (Maybe [AwsRdsDbClusterOptionGroupMembership]))
-> Maybe [AwsRdsDbClusterOptionGroupMembership]
-> Parser (Maybe [AwsRdsDbClusterOptionGroupMembership])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [AwsRdsDbClusterOptionGroupMembership]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe Int
   -> Maybe [AwsRdsDbDomainMembership] -> AwsRdsDbClusterDetails)
-> Parser (Maybe Int)
-> Parser
     (Maybe [AwsRdsDbDomainMembership] -> AwsRdsDbClusterDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Port")
            Parser (Maybe [AwsRdsDbDomainMembership] -> AwsRdsDbClusterDetails)
-> Parser (Maybe [AwsRdsDbDomainMembership])
-> Parser AwsRdsDbClusterDetails
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [AwsRdsDbDomainMembership]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DomainMemberships"
                            Parser (Maybe (Maybe [AwsRdsDbDomainMembership]))
-> Maybe [AwsRdsDbDomainMembership]
-> Parser (Maybe [AwsRdsDbDomainMembership])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [AwsRdsDbDomainMembership]
forall a. Monoid a => a
Prelude.mempty
                        )
      )

instance Prelude.Hashable AwsRdsDbClusterDetails

instance Prelude.NFData AwsRdsDbClusterDetails

instance Core.ToJSON AwsRdsDbClusterDetails where
  toJSON :: AwsRdsDbClusterDetails -> Value
toJSON AwsRdsDbClusterDetails' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe [AwsRdsDbClusterAssociatedRole]
Maybe [AwsRdsDbClusterMember]
Maybe [AwsRdsDbClusterOptionGroupMembership]
Maybe [AwsRdsDbDomainMembership]
Maybe [AwsRdsDbInstanceVpcSecurityGroup]
Maybe Text
domainMemberships :: Maybe [AwsRdsDbDomainMembership]
port :: Maybe Int
dbClusterOptionGroupMemberships :: Maybe [AwsRdsDbClusterOptionGroupMembership]
readerEndpoint :: Maybe Text
endpoint :: Maybe Text
clusterCreateTime :: Maybe Text
copyTagsToSnapshot :: Maybe Bool
allocatedStorage :: Maybe Int
activityStreamStatus :: Maybe Text
enabledCloudWatchLogsExports :: Maybe [Text]
engineMode :: Maybe Text
databaseName :: Maybe Text
multiAz :: Maybe Bool
dbSubnetGroup :: Maybe Text
backupRetentionPeriod :: Maybe Int
vpcSecurityGroups :: Maybe [AwsRdsDbInstanceVpcSecurityGroup]
associatedRoles :: Maybe [AwsRdsDbClusterAssociatedRole]
preferredBackupWindow :: Maybe Text
kmsKeyId :: Maybe Text
availabilityZones :: Maybe [Text]
preferredMaintenanceWindow :: Maybe Text
crossAccountClone :: Maybe Bool
httpEndpointEnabled :: Maybe Bool
engine :: Maybe Text
customEndpoints :: Maybe [Text]
dbClusterResourceId :: Maybe Text
iamDatabaseAuthenticationEnabled :: Maybe Bool
masterUsername :: Maybe Text
hostedZoneId :: Maybe Text
dbClusterParameterGroup :: Maybe Text
readReplicaIdentifiers :: Maybe [Text]
dbClusterIdentifier :: Maybe Text
storageEncrypted :: Maybe Bool
deletionProtection :: Maybe Bool
dbClusterMembers :: Maybe [AwsRdsDbClusterMember]
status :: Maybe Text
engineVersion :: Maybe Text
$sel:domainMemberships:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe [AwsRdsDbDomainMembership]
$sel:port:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Int
$sel:dbClusterOptionGroupMemberships:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails
-> Maybe [AwsRdsDbClusterOptionGroupMembership]
$sel:readerEndpoint:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
$sel:endpoint:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
$sel:clusterCreateTime:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
$sel:copyTagsToSnapshot:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Bool
$sel:allocatedStorage:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Int
$sel:activityStreamStatus:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
$sel:enabledCloudWatchLogsExports:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe [Text]
$sel:engineMode:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
$sel:databaseName:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
$sel:multiAz:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Bool
$sel:dbSubnetGroup:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
$sel:backupRetentionPeriod:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Int
$sel:vpcSecurityGroups:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
$sel:associatedRoles:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe [AwsRdsDbClusterAssociatedRole]
$sel:preferredBackupWindow:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
$sel:kmsKeyId:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
$sel:availabilityZones:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe [Text]
$sel:preferredMaintenanceWindow:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
$sel:crossAccountClone:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Bool
$sel:httpEndpointEnabled:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Bool
$sel:engine:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
$sel:customEndpoints:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe [Text]
$sel:dbClusterResourceId:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
$sel:iamDatabaseAuthenticationEnabled:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Bool
$sel:masterUsername:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
$sel:hostedZoneId:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
$sel:dbClusterParameterGroup:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
$sel:readReplicaIdentifiers:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe [Text]
$sel:dbClusterIdentifier:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
$sel:storageEncrypted:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Bool
$sel:deletionProtection:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Bool
$sel:dbClusterMembers:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe [AwsRdsDbClusterMember]
$sel:status:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
$sel:engineVersion:AwsRdsDbClusterDetails' :: AwsRdsDbClusterDetails -> Maybe Text
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"EngineVersion" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
engineVersion,
            (Text
"Status" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
status,
            (Text
"DbClusterMembers" Text -> [AwsRdsDbClusterMember] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([AwsRdsDbClusterMember] -> Pair)
-> Maybe [AwsRdsDbClusterMember] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AwsRdsDbClusterMember]
dbClusterMembers,
            (Text
"DeletionProtection" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
deletionProtection,
            (Text
"StorageEncrypted" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
storageEncrypted,
            (Text
"DbClusterIdentifier" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
dbClusterIdentifier,
            (Text
"ReadReplicaIdentifiers" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
readReplicaIdentifiers,
            (Text
"DbClusterParameterGroup" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
dbClusterParameterGroup,
            (Text
"HostedZoneId" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
hostedZoneId,
            (Text
"MasterUsername" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
masterUsername,
            (Text
"IamDatabaseAuthenticationEnabled" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
iamDatabaseAuthenticationEnabled,
            (Text
"DbClusterResourceId" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
dbClusterResourceId,
            (Text
"CustomEndpoints" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
customEndpoints,
            (Text
"Engine" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
engine,
            (Text
"HttpEndpointEnabled" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
httpEndpointEnabled,
            (Text
"CrossAccountClone" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
crossAccountClone,
            (Text
"PreferredMaintenanceWindow" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
preferredMaintenanceWindow,
            (Text
"AvailabilityZones" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
availabilityZones,
            (Text
"KmsKeyId" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
kmsKeyId,
            (Text
"PreferredBackupWindow" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
preferredBackupWindow,
            (Text
"AssociatedRoles" Text -> [AwsRdsDbClusterAssociatedRole] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([AwsRdsDbClusterAssociatedRole] -> Pair)
-> Maybe [AwsRdsDbClusterAssociatedRole] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AwsRdsDbClusterAssociatedRole]
associatedRoles,
            (Text
"VpcSecurityGroups" Text -> [AwsRdsDbInstanceVpcSecurityGroup] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([AwsRdsDbInstanceVpcSecurityGroup] -> Pair)
-> Maybe [AwsRdsDbInstanceVpcSecurityGroup] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AwsRdsDbInstanceVpcSecurityGroup]
vpcSecurityGroups,
            (Text
"BackupRetentionPeriod" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Int -> Pair) -> Maybe Int -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
backupRetentionPeriod,
            (Text
"DbSubnetGroup" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
dbSubnetGroup,
            (Text
"MultiAz" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
multiAz,
            (Text
"DatabaseName" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
databaseName,
            (Text
"EngineMode" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
engineMode,
            (Text
"EnabledCloudWatchLogsExports" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
enabledCloudWatchLogsExports,
            (Text
"ActivityStreamStatus" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
activityStreamStatus,
            (Text
"AllocatedStorage" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Int -> Pair) -> Maybe Int -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
allocatedStorage,
            (Text
"CopyTagsToSnapshot" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
copyTagsToSnapshot,
            (Text
"ClusterCreateTime" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
clusterCreateTime,
            (Text
"Endpoint" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
endpoint,
            (Text
"ReaderEndpoint" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
readerEndpoint,
            (Text
"DbClusterOptionGroupMemberships" Text -> [AwsRdsDbClusterOptionGroupMembership] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([AwsRdsDbClusterOptionGroupMembership] -> Pair)
-> Maybe [AwsRdsDbClusterOptionGroupMembership] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AwsRdsDbClusterOptionGroupMembership]
dbClusterOptionGroupMemberships,
            (Text
"Port" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Int -> Pair) -> Maybe Int -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
port,
            (Text
"DomainMemberships" Text -> [AwsRdsDbDomainMembership] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([AwsRdsDbDomainMembership] -> Pair)
-> Maybe [AwsRdsDbDomainMembership] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AwsRdsDbDomainMembership]
domainMemberships
          ]
      )