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

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

-- |
-- Module      : Amazonka.Neptune.CreateDBInstance
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a new DB instance.
module Amazonka.Neptune.CreateDBInstance
  ( -- * Creating a Request
    CreateDBInstance (..),
    newCreateDBInstance,

    -- * Request Lenses
    createDBInstance_allocatedStorage,
    createDBInstance_autoMinorVersionUpgrade,
    createDBInstance_availabilityZone,
    createDBInstance_backupRetentionPeriod,
    createDBInstance_characterSetName,
    createDBInstance_copyTagsToSnapshot,
    createDBInstance_dbClusterIdentifier,
    createDBInstance_dbName,
    createDBInstance_dbParameterGroupName,
    createDBInstance_dbSecurityGroups,
    createDBInstance_dbSubnetGroupName,
    createDBInstance_deletionProtection,
    createDBInstance_domain,
    createDBInstance_domainIAMRoleName,
    createDBInstance_enableCloudwatchLogsExports,
    createDBInstance_enableIAMDatabaseAuthentication,
    createDBInstance_enablePerformanceInsights,
    createDBInstance_engineVersion,
    createDBInstance_iops,
    createDBInstance_kmsKeyId,
    createDBInstance_licenseModel,
    createDBInstance_masterUserPassword,
    createDBInstance_masterUsername,
    createDBInstance_monitoringInterval,
    createDBInstance_monitoringRoleArn,
    createDBInstance_multiAZ,
    createDBInstance_optionGroupName,
    createDBInstance_performanceInsightsKMSKeyId,
    createDBInstance_port,
    createDBInstance_preferredBackupWindow,
    createDBInstance_preferredMaintenanceWindow,
    createDBInstance_promotionTier,
    createDBInstance_publiclyAccessible,
    createDBInstance_storageEncrypted,
    createDBInstance_storageType,
    createDBInstance_tags,
    createDBInstance_tdeCredentialArn,
    createDBInstance_tdeCredentialPassword,
    createDBInstance_timezone,
    createDBInstance_vpcSecurityGroupIds,
    createDBInstance_dbInstanceIdentifier,
    createDBInstance_dbInstanceClass,
    createDBInstance_engine,

    -- * Destructuring the Response
    CreateDBInstanceResponse (..),
    newCreateDBInstanceResponse,

    -- * Response Lenses
    createDBInstanceResponse_dbInstance,
    createDBInstanceResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Neptune.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newCreateDBInstance' smart constructor.
data CreateDBInstance = CreateDBInstance'
  { -- | Not supported by Neptune.
    CreateDBInstance -> Maybe Int
allocatedStorage :: Prelude.Maybe Prelude.Int,
    -- | Indicates that minor engine upgrades are applied automatically to the DB
    -- instance during the maintenance window.
    --
    -- Default: @true@
    CreateDBInstance -> Maybe Bool
autoMinorVersionUpgrade :: Prelude.Maybe Prelude.Bool,
    -- | The EC2 Availability Zone that the DB instance is created in
    --
    -- Default: A random, system-chosen Availability Zone in the endpoint\'s
    -- Amazon Region.
    --
    -- Example: @us-east-1d@
    --
    -- Constraint: The AvailabilityZone parameter can\'t be specified if the
    -- MultiAZ parameter is set to @true@. The specified Availability Zone must
    -- be in the same Amazon Region as the current endpoint.
    CreateDBInstance -> Maybe Text
availabilityZone :: Prelude.Maybe Prelude.Text,
    -- | The number of days for which automated backups are retained.
    --
    -- Not applicable. The retention period for automated backups is managed by
    -- the DB cluster. For more information, see CreateDBCluster.
    --
    -- Default: 1
    --
    -- Constraints:
    --
    -- -   Must be a value from 0 to 35
    --
    -- -   Cannot be set to 0 if the DB instance is a source to Read Replicas
    CreateDBInstance -> Maybe Int
backupRetentionPeriod :: Prelude.Maybe Prelude.Int,
    -- | /(Not supported by Neptune)/
    CreateDBInstance -> Maybe Text
characterSetName :: Prelude.Maybe Prelude.Text,
    -- | True to copy all tags from the DB instance to snapshots of the DB
    -- instance, and otherwise false. The default is false.
    CreateDBInstance -> Maybe Bool
copyTagsToSnapshot :: Prelude.Maybe Prelude.Bool,
    -- | The identifier of the DB cluster that the instance will belong to.
    --
    -- For information on creating a DB cluster, see CreateDBCluster.
    --
    -- Type: String
    CreateDBInstance -> Maybe Text
dbClusterIdentifier :: Prelude.Maybe Prelude.Text,
    -- | Not supported.
    CreateDBInstance -> Maybe Text
dbName :: Prelude.Maybe Prelude.Text,
    -- | The name of the DB parameter group to associate with this DB instance.
    -- If this argument is omitted, the default DBParameterGroup for the
    -- specified engine is used.
    --
    -- Constraints:
    --
    -- -   Must be 1 to 255 letters, numbers, or hyphens.
    --
    -- -   First character must be a letter
    --
    -- -   Cannot end with a hyphen or contain two consecutive hyphens
    CreateDBInstance -> Maybe Text
dbParameterGroupName :: Prelude.Maybe Prelude.Text,
    -- | A list of DB security groups to associate with this DB instance.
    --
    -- Default: The default DB security group for the database engine.
    CreateDBInstance -> Maybe [Text]
dbSecurityGroups :: Prelude.Maybe [Prelude.Text],
    -- | A DB subnet group to associate with this DB instance.
    --
    -- If there is no DB subnet group, then it is a non-VPC DB instance.
    CreateDBInstance -> Maybe Text
dbSubnetGroupName :: Prelude.Maybe Prelude.Text,
    -- | A value that indicates whether the DB instance has deletion protection
    -- enabled. The database can\'t be deleted when deletion protection is
    -- enabled. By default, deletion protection is disabled. See
    -- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html Deleting a DB Instance>.
    --
    -- DB instances in a DB cluster can be deleted even when deletion
    -- protection is enabled in their parent DB cluster.
    CreateDBInstance -> Maybe Bool
deletionProtection :: Prelude.Maybe Prelude.Bool,
    -- | Specify the Active Directory Domain to create the instance in.
    CreateDBInstance -> Maybe Text
domain :: Prelude.Maybe Prelude.Text,
    -- | Specify the name of the IAM role to be used when making API calls to the
    -- Directory Service.
    CreateDBInstance -> Maybe Text
domainIAMRoleName :: Prelude.Maybe Prelude.Text,
    -- | The list of log types that need to be enabled for exporting to
    -- CloudWatch Logs.
    CreateDBInstance -> Maybe [Text]
enableCloudwatchLogsExports :: Prelude.Maybe [Prelude.Text],
    -- | Not supported by Neptune (ignored).
    CreateDBInstance -> Maybe Bool
enableIAMDatabaseAuthentication :: Prelude.Maybe Prelude.Bool,
    -- | /(Not supported by Neptune)/
    CreateDBInstance -> Maybe Bool
enablePerformanceInsights :: Prelude.Maybe Prelude.Bool,
    -- | The version number of the database engine to use. Currently, setting
    -- this parameter has no effect.
    CreateDBInstance -> Maybe Text
engineVersion :: Prelude.Maybe Prelude.Text,
    -- | The amount of Provisioned IOPS (input\/output operations per second) to
    -- be initially allocated for the DB instance.
    CreateDBInstance -> Maybe Int
iops :: Prelude.Maybe Prelude.Int,
    -- | The Amazon KMS key identifier for an encrypted DB instance.
    --
    -- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
    -- encryption key. If you are creating a DB instance with the same Amazon
    -- account that owns the KMS encryption key used to encrypt the new DB
    -- instance, then you can use the KMS key alias instead of the ARN for the
    -- KM encryption key.
    --
    -- Not applicable. The KMS key identifier is managed by the DB cluster. For
    -- more information, see CreateDBCluster.
    --
    -- If the @StorageEncrypted@ parameter is true, and you do not specify a
    -- value for the @KmsKeyId@ parameter, then Amazon Neptune will use your
    -- default encryption key. Amazon KMS creates the default encryption key
    -- for your Amazon account. Your Amazon account has a different default
    -- encryption key for each Amazon Region.
    CreateDBInstance -> Maybe Text
kmsKeyId :: Prelude.Maybe Prelude.Text,
    -- | License model information for this DB instance.
    --
    -- Valid values: @license-included@ | @bring-your-own-license@ |
    -- @general-public-license@
    CreateDBInstance -> Maybe Text
licenseModel :: Prelude.Maybe Prelude.Text,
    -- | Not supported by Neptune.
    CreateDBInstance -> Maybe Text
masterUserPassword :: Prelude.Maybe Prelude.Text,
    -- | Not supported by Neptune.
    CreateDBInstance -> Maybe Text
masterUsername :: Prelude.Maybe Prelude.Text,
    -- | The interval, in seconds, between points when Enhanced Monitoring
    -- metrics are collected for the DB instance. To disable collecting
    -- Enhanced Monitoring metrics, specify 0. The default is 0.
    --
    -- If @MonitoringRoleArn@ is specified, then you must also set
    -- @MonitoringInterval@ to a value other than 0.
    --
    -- Valid Values: @0, 1, 5, 10, 15, 30, 60@
    CreateDBInstance -> Maybe Int
monitoringInterval :: Prelude.Maybe Prelude.Int,
    -- | The ARN for the IAM role that permits Neptune to send enhanced
    -- monitoring metrics to Amazon CloudWatch Logs. For example,
    -- @arn:aws:iam:123456789012:role\/emaccess@.
    --
    -- If @MonitoringInterval@ is set to a value other than 0, then you must
    -- supply a @MonitoringRoleArn@ value.
    CreateDBInstance -> Maybe Text
monitoringRoleArn :: Prelude.Maybe Prelude.Text,
    -- | Specifies if the DB instance is a Multi-AZ deployment. You can\'t set
    -- the AvailabilityZone parameter if the MultiAZ parameter is set to true.
    CreateDBInstance -> Maybe Bool
multiAZ :: Prelude.Maybe Prelude.Bool,
    -- | /(Not supported by Neptune)/
    CreateDBInstance -> Maybe Text
optionGroupName :: Prelude.Maybe Prelude.Text,
    -- | /(Not supported by Neptune)/
    CreateDBInstance -> Maybe Text
performanceInsightsKMSKeyId :: Prelude.Maybe Prelude.Text,
    -- | The port number on which the database accepts connections.
    --
    -- Not applicable. The port is managed by the DB cluster. For more
    -- information, see CreateDBCluster.
    --
    -- Default: @8182@
    --
    -- Type: Integer
    CreateDBInstance -> Maybe Int
port :: Prelude.Maybe Prelude.Int,
    -- | The daily time range during which automated backups are created.
    --
    -- Not applicable. The daily time range for creating automated backups is
    -- managed by the DB cluster. For more information, see CreateDBCluster.
    CreateDBInstance -> Maybe Text
preferredBackupWindow :: Prelude.Maybe Prelude.Text,
    -- | The time range each week during which system maintenance can occur, in
    -- Universal Coordinated Time (UTC).
    --
    -- Format: @ddd:hh24:mi-ddd:hh24:mi@
    --
    -- The default is a 30-minute window selected at random from an 8-hour
    -- block of time for each Amazon Region, occurring on a random day of the
    -- week.
    --
    -- Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
    --
    -- Constraints: Minimum 30-minute window.
    CreateDBInstance -> Maybe Text
preferredMaintenanceWindow :: Prelude.Maybe Prelude.Text,
    -- | A value that specifies the order in which an Read Replica is promoted to
    -- the primary instance after a failure of the existing primary instance.
    --
    -- Default: 1
    --
    -- Valid Values: 0 - 15
    CreateDBInstance -> Maybe Int
promotionTier :: Prelude.Maybe Prelude.Int,
    -- | This flag should no longer be used.
    CreateDBInstance -> Maybe Bool
publiclyAccessible :: Prelude.Maybe Prelude.Bool,
    -- | Specifies whether the DB instance is encrypted.
    --
    -- Not applicable. The encryption for DB instances is managed by the DB
    -- cluster. For more information, see CreateDBCluster.
    --
    -- Default: false
    CreateDBInstance -> Maybe Bool
storageEncrypted :: Prelude.Maybe Prelude.Bool,
    -- | Specifies the storage type to be associated with the DB instance.
    --
    -- Not applicable. Storage is managed by the DB Cluster.
    CreateDBInstance -> Maybe Text
storageType :: Prelude.Maybe Prelude.Text,
    -- | The tags to assign to the new instance.
    CreateDBInstance -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The ARN from the key store with which to associate the instance for TDE
    -- encryption.
    CreateDBInstance -> Maybe Text
tdeCredentialArn :: Prelude.Maybe Prelude.Text,
    -- | The password for the given ARN from the key store in order to access the
    -- device.
    CreateDBInstance -> Maybe Text
tdeCredentialPassword :: Prelude.Maybe Prelude.Text,
    -- | The time zone of the DB instance.
    CreateDBInstance -> Maybe Text
timezone :: Prelude.Maybe Prelude.Text,
    -- | A list of EC2 VPC security groups to associate with this DB instance.
    --
    -- Not applicable. The associated list of EC2 VPC security groups is
    -- managed by the DB cluster. For more information, see CreateDBCluster.
    --
    -- Default: The default EC2 VPC security group for the DB subnet group\'s
    -- VPC.
    CreateDBInstance -> Maybe [Text]
vpcSecurityGroupIds :: Prelude.Maybe [Prelude.Text],
    -- | The DB instance identifier. This parameter is stored as a lowercase
    -- string.
    --
    -- Constraints:
    --
    -- -   Must contain from 1 to 63 letters, numbers, or hyphens.
    --
    -- -   First character must be a letter.
    --
    -- -   Cannot end with a hyphen or contain two consecutive hyphens.
    --
    -- Example: @mydbinstance@
    CreateDBInstance -> Text
dbInstanceIdentifier :: Prelude.Text,
    -- | The compute and memory capacity of the DB instance, for example,
    -- @db.m4.large@. Not all DB instance classes are available in all Amazon
    -- Regions.
    CreateDBInstance -> Text
dbInstanceClass :: Prelude.Text,
    -- | The name of the database engine to be used for this instance.
    --
    -- Valid Values: @neptune@
    CreateDBInstance -> Text
engine :: Prelude.Text
  }
  deriving (CreateDBInstance -> CreateDBInstance -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateDBInstance -> CreateDBInstance -> Bool
$c/= :: CreateDBInstance -> CreateDBInstance -> Bool
== :: CreateDBInstance -> CreateDBInstance -> Bool
$c== :: CreateDBInstance -> CreateDBInstance -> Bool
Prelude.Eq, ReadPrec [CreateDBInstance]
ReadPrec CreateDBInstance
Int -> ReadS CreateDBInstance
ReadS [CreateDBInstance]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateDBInstance]
$creadListPrec :: ReadPrec [CreateDBInstance]
readPrec :: ReadPrec CreateDBInstance
$creadPrec :: ReadPrec CreateDBInstance
readList :: ReadS [CreateDBInstance]
$creadList :: ReadS [CreateDBInstance]
readsPrec :: Int -> ReadS CreateDBInstance
$creadsPrec :: Int -> ReadS CreateDBInstance
Prelude.Read, Int -> CreateDBInstance -> ShowS
[CreateDBInstance] -> ShowS
CreateDBInstance -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateDBInstance] -> ShowS
$cshowList :: [CreateDBInstance] -> ShowS
show :: CreateDBInstance -> String
$cshow :: CreateDBInstance -> String
showsPrec :: Int -> CreateDBInstance -> ShowS
$cshowsPrec :: Int -> CreateDBInstance -> ShowS
Prelude.Show, forall x. Rep CreateDBInstance x -> CreateDBInstance
forall x. CreateDBInstance -> Rep CreateDBInstance x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateDBInstance x -> CreateDBInstance
$cfrom :: forall x. CreateDBInstance -> Rep CreateDBInstance x
Prelude.Generic)

-- |
-- Create a value of 'CreateDBInstance' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'allocatedStorage', 'createDBInstance_allocatedStorage' - Not supported by Neptune.
--
-- 'autoMinorVersionUpgrade', 'createDBInstance_autoMinorVersionUpgrade' - Indicates that minor engine upgrades are applied automatically to the DB
-- instance during the maintenance window.
--
-- Default: @true@
--
-- 'availabilityZone', 'createDBInstance_availabilityZone' - The EC2 Availability Zone that the DB instance is created in
--
-- Default: A random, system-chosen Availability Zone in the endpoint\'s
-- Amazon Region.
--
-- Example: @us-east-1d@
--
-- Constraint: The AvailabilityZone parameter can\'t be specified if the
-- MultiAZ parameter is set to @true@. The specified Availability Zone must
-- be in the same Amazon Region as the current endpoint.
--
-- 'backupRetentionPeriod', 'createDBInstance_backupRetentionPeriod' - The number of days for which automated backups are retained.
--
-- Not applicable. The retention period for automated backups is managed by
-- the DB cluster. For more information, see CreateDBCluster.
--
-- Default: 1
--
-- Constraints:
--
-- -   Must be a value from 0 to 35
--
-- -   Cannot be set to 0 if the DB instance is a source to Read Replicas
--
-- 'characterSetName', 'createDBInstance_characterSetName' - /(Not supported by Neptune)/
--
-- 'copyTagsToSnapshot', 'createDBInstance_copyTagsToSnapshot' - True to copy all tags from the DB instance to snapshots of the DB
-- instance, and otherwise false. The default is false.
--
-- 'dbClusterIdentifier', 'createDBInstance_dbClusterIdentifier' - The identifier of the DB cluster that the instance will belong to.
--
-- For information on creating a DB cluster, see CreateDBCluster.
--
-- Type: String
--
-- 'dbName', 'createDBInstance_dbName' - Not supported.
--
-- 'dbParameterGroupName', 'createDBInstance_dbParameterGroupName' - The name of the DB parameter group to associate with this DB instance.
-- If this argument is omitted, the default DBParameterGroup for the
-- specified engine is used.
--
-- Constraints:
--
-- -   Must be 1 to 255 letters, numbers, or hyphens.
--
-- -   First character must be a letter
--
-- -   Cannot end with a hyphen or contain two consecutive hyphens
--
-- 'dbSecurityGroups', 'createDBInstance_dbSecurityGroups' - A list of DB security groups to associate with this DB instance.
--
-- Default: The default DB security group for the database engine.
--
-- 'dbSubnetGroupName', 'createDBInstance_dbSubnetGroupName' - A DB subnet group to associate with this DB instance.
--
-- If there is no DB subnet group, then it is a non-VPC DB instance.
--
-- 'deletionProtection', 'createDBInstance_deletionProtection' - A value that indicates whether the DB instance has deletion protection
-- enabled. The database can\'t be deleted when deletion protection is
-- enabled. By default, deletion protection is disabled. See
-- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html Deleting a DB Instance>.
--
-- DB instances in a DB cluster can be deleted even when deletion
-- protection is enabled in their parent DB cluster.
--
-- 'domain', 'createDBInstance_domain' - Specify the Active Directory Domain to create the instance in.
--
-- 'domainIAMRoleName', 'createDBInstance_domainIAMRoleName' - Specify the name of the IAM role to be used when making API calls to the
-- Directory Service.
--
-- 'enableCloudwatchLogsExports', 'createDBInstance_enableCloudwatchLogsExports' - The list of log types that need to be enabled for exporting to
-- CloudWatch Logs.
--
-- 'enableIAMDatabaseAuthentication', 'createDBInstance_enableIAMDatabaseAuthentication' - Not supported by Neptune (ignored).
--
-- 'enablePerformanceInsights', 'createDBInstance_enablePerformanceInsights' - /(Not supported by Neptune)/
--
-- 'engineVersion', 'createDBInstance_engineVersion' - The version number of the database engine to use. Currently, setting
-- this parameter has no effect.
--
-- 'iops', 'createDBInstance_iops' - The amount of Provisioned IOPS (input\/output operations per second) to
-- be initially allocated for the DB instance.
--
-- 'kmsKeyId', 'createDBInstance_kmsKeyId' - The Amazon KMS key identifier for an encrypted DB instance.
--
-- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
-- encryption key. If you are creating a DB instance with the same Amazon
-- account that owns the KMS encryption key used to encrypt the new DB
-- instance, then you can use the KMS key alias instead of the ARN for the
-- KM encryption key.
--
-- Not applicable. The KMS key identifier is managed by the DB cluster. For
-- more information, see CreateDBCluster.
--
-- If the @StorageEncrypted@ parameter is true, and you do not specify a
-- value for the @KmsKeyId@ parameter, then Amazon Neptune will use your
-- default encryption key. Amazon KMS creates the default encryption key
-- for your Amazon account. Your Amazon account has a different default
-- encryption key for each Amazon Region.
--
-- 'licenseModel', 'createDBInstance_licenseModel' - License model information for this DB instance.
--
-- Valid values: @license-included@ | @bring-your-own-license@ |
-- @general-public-license@
--
-- 'masterUserPassword', 'createDBInstance_masterUserPassword' - Not supported by Neptune.
--
-- 'masterUsername', 'createDBInstance_masterUsername' - Not supported by Neptune.
--
-- 'monitoringInterval', 'createDBInstance_monitoringInterval' - The interval, in seconds, between points when Enhanced Monitoring
-- metrics are collected for the DB instance. To disable collecting
-- Enhanced Monitoring metrics, specify 0. The default is 0.
--
-- If @MonitoringRoleArn@ is specified, then you must also set
-- @MonitoringInterval@ to a value other than 0.
--
-- Valid Values: @0, 1, 5, 10, 15, 30, 60@
--
-- 'monitoringRoleArn', 'createDBInstance_monitoringRoleArn' - The ARN for the IAM role that permits Neptune to send enhanced
-- monitoring metrics to Amazon CloudWatch Logs. For example,
-- @arn:aws:iam:123456789012:role\/emaccess@.
--
-- If @MonitoringInterval@ is set to a value other than 0, then you must
-- supply a @MonitoringRoleArn@ value.
--
-- 'multiAZ', 'createDBInstance_multiAZ' - Specifies if the DB instance is a Multi-AZ deployment. You can\'t set
-- the AvailabilityZone parameter if the MultiAZ parameter is set to true.
--
-- 'optionGroupName', 'createDBInstance_optionGroupName' - /(Not supported by Neptune)/
--
-- 'performanceInsightsKMSKeyId', 'createDBInstance_performanceInsightsKMSKeyId' - /(Not supported by Neptune)/
--
-- 'port', 'createDBInstance_port' - The port number on which the database accepts connections.
--
-- Not applicable. The port is managed by the DB cluster. For more
-- information, see CreateDBCluster.
--
-- Default: @8182@
--
-- Type: Integer
--
-- 'preferredBackupWindow', 'createDBInstance_preferredBackupWindow' - The daily time range during which automated backups are created.
--
-- Not applicable. The daily time range for creating automated backups is
-- managed by the DB cluster. For more information, see CreateDBCluster.
--
-- 'preferredMaintenanceWindow', 'createDBInstance_preferredMaintenanceWindow' - The time range each week during which system maintenance can occur, in
-- Universal Coordinated Time (UTC).
--
-- Format: @ddd:hh24:mi-ddd:hh24:mi@
--
-- The default is a 30-minute window selected at random from an 8-hour
-- block of time for each Amazon Region, occurring on a random day of the
-- week.
--
-- Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
--
-- Constraints: Minimum 30-minute window.
--
-- 'promotionTier', 'createDBInstance_promotionTier' - A value that specifies the order in which an Read Replica is promoted to
-- the primary instance after a failure of the existing primary instance.
--
-- Default: 1
--
-- Valid Values: 0 - 15
--
-- 'publiclyAccessible', 'createDBInstance_publiclyAccessible' - This flag should no longer be used.
--
-- 'storageEncrypted', 'createDBInstance_storageEncrypted' - Specifies whether the DB instance is encrypted.
--
-- Not applicable. The encryption for DB instances is managed by the DB
-- cluster. For more information, see CreateDBCluster.
--
-- Default: false
--
-- 'storageType', 'createDBInstance_storageType' - Specifies the storage type to be associated with the DB instance.
--
-- Not applicable. Storage is managed by the DB Cluster.
--
-- 'tags', 'createDBInstance_tags' - The tags to assign to the new instance.
--
-- 'tdeCredentialArn', 'createDBInstance_tdeCredentialArn' - The ARN from the key store with which to associate the instance for TDE
-- encryption.
--
-- 'tdeCredentialPassword', 'createDBInstance_tdeCredentialPassword' - The password for the given ARN from the key store in order to access the
-- device.
--
-- 'timezone', 'createDBInstance_timezone' - The time zone of the DB instance.
--
-- 'vpcSecurityGroupIds', 'createDBInstance_vpcSecurityGroupIds' - A list of EC2 VPC security groups to associate with this DB instance.
--
-- Not applicable. The associated list of EC2 VPC security groups is
-- managed by the DB cluster. For more information, see CreateDBCluster.
--
-- Default: The default EC2 VPC security group for the DB subnet group\'s
-- VPC.
--
-- 'dbInstanceIdentifier', 'createDBInstance_dbInstanceIdentifier' - The DB instance identifier. This parameter is stored as a lowercase
-- string.
--
-- Constraints:
--
-- -   Must contain from 1 to 63 letters, numbers, or hyphens.
--
-- -   First character must be a letter.
--
-- -   Cannot end with a hyphen or contain two consecutive hyphens.
--
-- Example: @mydbinstance@
--
-- 'dbInstanceClass', 'createDBInstance_dbInstanceClass' - The compute and memory capacity of the DB instance, for example,
-- @db.m4.large@. Not all DB instance classes are available in all Amazon
-- Regions.
--
-- 'engine', 'createDBInstance_engine' - The name of the database engine to be used for this instance.
--
-- Valid Values: @neptune@
newCreateDBInstance ::
  -- | 'dbInstanceIdentifier'
  Prelude.Text ->
  -- | 'dbInstanceClass'
  Prelude.Text ->
  -- | 'engine'
  Prelude.Text ->
  CreateDBInstance
newCreateDBInstance :: Text -> Text -> Text -> CreateDBInstance
newCreateDBInstance
  Text
pDBInstanceIdentifier_
  Text
pDBInstanceClass_
  Text
pEngine_ =
    CreateDBInstance'
      { $sel:allocatedStorage:CreateDBInstance' :: Maybe Int
allocatedStorage =
          forall a. Maybe a
Prelude.Nothing,
        $sel:autoMinorVersionUpgrade:CreateDBInstance' :: Maybe Bool
autoMinorVersionUpgrade = forall a. Maybe a
Prelude.Nothing,
        $sel:availabilityZone:CreateDBInstance' :: Maybe Text
availabilityZone = forall a. Maybe a
Prelude.Nothing,
        $sel:backupRetentionPeriod:CreateDBInstance' :: Maybe Int
backupRetentionPeriod = forall a. Maybe a
Prelude.Nothing,
        $sel:characterSetName:CreateDBInstance' :: Maybe Text
characterSetName = forall a. Maybe a
Prelude.Nothing,
        $sel:copyTagsToSnapshot:CreateDBInstance' :: Maybe Bool
copyTagsToSnapshot = forall a. Maybe a
Prelude.Nothing,
        $sel:dbClusterIdentifier:CreateDBInstance' :: Maybe Text
dbClusterIdentifier = forall a. Maybe a
Prelude.Nothing,
        $sel:dbName:CreateDBInstance' :: Maybe Text
dbName = forall a. Maybe a
Prelude.Nothing,
        $sel:dbParameterGroupName:CreateDBInstance' :: Maybe Text
dbParameterGroupName = forall a. Maybe a
Prelude.Nothing,
        $sel:dbSecurityGroups:CreateDBInstance' :: Maybe [Text]
dbSecurityGroups = forall a. Maybe a
Prelude.Nothing,
        $sel:dbSubnetGroupName:CreateDBInstance' :: Maybe Text
dbSubnetGroupName = forall a. Maybe a
Prelude.Nothing,
        $sel:deletionProtection:CreateDBInstance' :: Maybe Bool
deletionProtection = forall a. Maybe a
Prelude.Nothing,
        $sel:domain:CreateDBInstance' :: Maybe Text
domain = forall a. Maybe a
Prelude.Nothing,
        $sel:domainIAMRoleName:CreateDBInstance' :: Maybe Text
domainIAMRoleName = forall a. Maybe a
Prelude.Nothing,
        $sel:enableCloudwatchLogsExports:CreateDBInstance' :: Maybe [Text]
enableCloudwatchLogsExports = forall a. Maybe a
Prelude.Nothing,
        $sel:enableIAMDatabaseAuthentication:CreateDBInstance' :: Maybe Bool
enableIAMDatabaseAuthentication = forall a. Maybe a
Prelude.Nothing,
        $sel:enablePerformanceInsights:CreateDBInstance' :: Maybe Bool
enablePerformanceInsights = forall a. Maybe a
Prelude.Nothing,
        $sel:engineVersion:CreateDBInstance' :: Maybe Text
engineVersion = forall a. Maybe a
Prelude.Nothing,
        $sel:iops:CreateDBInstance' :: Maybe Int
iops = forall a. Maybe a
Prelude.Nothing,
        $sel:kmsKeyId:CreateDBInstance' :: Maybe Text
kmsKeyId = forall a. Maybe a
Prelude.Nothing,
        $sel:licenseModel:CreateDBInstance' :: Maybe Text
licenseModel = forall a. Maybe a
Prelude.Nothing,
        $sel:masterUserPassword:CreateDBInstance' :: Maybe Text
masterUserPassword = forall a. Maybe a
Prelude.Nothing,
        $sel:masterUsername:CreateDBInstance' :: Maybe Text
masterUsername = forall a. Maybe a
Prelude.Nothing,
        $sel:monitoringInterval:CreateDBInstance' :: Maybe Int
monitoringInterval = forall a. Maybe a
Prelude.Nothing,
        $sel:monitoringRoleArn:CreateDBInstance' :: Maybe Text
monitoringRoleArn = forall a. Maybe a
Prelude.Nothing,
        $sel:multiAZ:CreateDBInstance' :: Maybe Bool
multiAZ = forall a. Maybe a
Prelude.Nothing,
        $sel:optionGroupName:CreateDBInstance' :: Maybe Text
optionGroupName = forall a. Maybe a
Prelude.Nothing,
        $sel:performanceInsightsKMSKeyId:CreateDBInstance' :: Maybe Text
performanceInsightsKMSKeyId = forall a. Maybe a
Prelude.Nothing,
        $sel:port:CreateDBInstance' :: Maybe Int
port = forall a. Maybe a
Prelude.Nothing,
        $sel:preferredBackupWindow:CreateDBInstance' :: Maybe Text
preferredBackupWindow = forall a. Maybe a
Prelude.Nothing,
        $sel:preferredMaintenanceWindow:CreateDBInstance' :: Maybe Text
preferredMaintenanceWindow = forall a. Maybe a
Prelude.Nothing,
        $sel:promotionTier:CreateDBInstance' :: Maybe Int
promotionTier = forall a. Maybe a
Prelude.Nothing,
        $sel:publiclyAccessible:CreateDBInstance' :: Maybe Bool
publiclyAccessible = forall a. Maybe a
Prelude.Nothing,
        $sel:storageEncrypted:CreateDBInstance' :: Maybe Bool
storageEncrypted = forall a. Maybe a
Prelude.Nothing,
        $sel:storageType:CreateDBInstance' :: Maybe Text
storageType = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:CreateDBInstance' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:tdeCredentialArn:CreateDBInstance' :: Maybe Text
tdeCredentialArn = forall a. Maybe a
Prelude.Nothing,
        $sel:tdeCredentialPassword:CreateDBInstance' :: Maybe Text
tdeCredentialPassword = forall a. Maybe a
Prelude.Nothing,
        $sel:timezone:CreateDBInstance' :: Maybe Text
timezone = forall a. Maybe a
Prelude.Nothing,
        $sel:vpcSecurityGroupIds:CreateDBInstance' :: Maybe [Text]
vpcSecurityGroupIds = forall a. Maybe a
Prelude.Nothing,
        $sel:dbInstanceIdentifier:CreateDBInstance' :: Text
dbInstanceIdentifier = Text
pDBInstanceIdentifier_,
        $sel:dbInstanceClass:CreateDBInstance' :: Text
dbInstanceClass = Text
pDBInstanceClass_,
        $sel:engine:CreateDBInstance' :: Text
engine = Text
pEngine_
      }

-- | Not supported by Neptune.
createDBInstance_allocatedStorage :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Int)
createDBInstance_allocatedStorage :: Lens' CreateDBInstance (Maybe Int)
createDBInstance_allocatedStorage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Int
allocatedStorage :: Maybe Int
$sel:allocatedStorage:CreateDBInstance' :: CreateDBInstance -> Maybe Int
allocatedStorage} -> Maybe Int
allocatedStorage) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Int
a -> CreateDBInstance
s {$sel:allocatedStorage:CreateDBInstance' :: Maybe Int
allocatedStorage = Maybe Int
a} :: CreateDBInstance)

-- | Indicates that minor engine upgrades are applied automatically to the DB
-- instance during the maintenance window.
--
-- Default: @true@
createDBInstance_autoMinorVersionUpgrade :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)
createDBInstance_autoMinorVersionUpgrade :: Lens' CreateDBInstance (Maybe Bool)
createDBInstance_autoMinorVersionUpgrade = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Bool
autoMinorVersionUpgrade :: Maybe Bool
$sel:autoMinorVersionUpgrade:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
autoMinorVersionUpgrade} -> Maybe Bool
autoMinorVersionUpgrade) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Bool
a -> CreateDBInstance
s {$sel:autoMinorVersionUpgrade:CreateDBInstance' :: Maybe Bool
autoMinorVersionUpgrade = Maybe Bool
a} :: CreateDBInstance)

-- | The EC2 Availability Zone that the DB instance is created in
--
-- Default: A random, system-chosen Availability Zone in the endpoint\'s
-- Amazon Region.
--
-- Example: @us-east-1d@
--
-- Constraint: The AvailabilityZone parameter can\'t be specified if the
-- MultiAZ parameter is set to @true@. The specified Availability Zone must
-- be in the same Amazon Region as the current endpoint.
createDBInstance_availabilityZone :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_availabilityZone :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_availabilityZone = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
availabilityZone :: Maybe Text
$sel:availabilityZone:CreateDBInstance' :: CreateDBInstance -> Maybe Text
availabilityZone} -> Maybe Text
availabilityZone) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:availabilityZone:CreateDBInstance' :: Maybe Text
availabilityZone = Maybe Text
a} :: CreateDBInstance)

-- | The number of days for which automated backups are retained.
--
-- Not applicable. The retention period for automated backups is managed by
-- the DB cluster. For more information, see CreateDBCluster.
--
-- Default: 1
--
-- Constraints:
--
-- -   Must be a value from 0 to 35
--
-- -   Cannot be set to 0 if the DB instance is a source to Read Replicas
createDBInstance_backupRetentionPeriod :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Int)
createDBInstance_backupRetentionPeriod :: Lens' CreateDBInstance (Maybe Int)
createDBInstance_backupRetentionPeriod = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Int
backupRetentionPeriod :: Maybe Int
$sel:backupRetentionPeriod:CreateDBInstance' :: CreateDBInstance -> Maybe Int
backupRetentionPeriod} -> Maybe Int
backupRetentionPeriod) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Int
a -> CreateDBInstance
s {$sel:backupRetentionPeriod:CreateDBInstance' :: Maybe Int
backupRetentionPeriod = Maybe Int
a} :: CreateDBInstance)

-- | /(Not supported by Neptune)/
createDBInstance_characterSetName :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_characterSetName :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_characterSetName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
characterSetName :: Maybe Text
$sel:characterSetName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
characterSetName} -> Maybe Text
characterSetName) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:characterSetName:CreateDBInstance' :: Maybe Text
characterSetName = Maybe Text
a} :: CreateDBInstance)

-- | True to copy all tags from the DB instance to snapshots of the DB
-- instance, and otherwise false. The default is false.
createDBInstance_copyTagsToSnapshot :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)
createDBInstance_copyTagsToSnapshot :: Lens' CreateDBInstance (Maybe Bool)
createDBInstance_copyTagsToSnapshot = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Bool
copyTagsToSnapshot :: Maybe Bool
$sel:copyTagsToSnapshot:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
copyTagsToSnapshot} -> Maybe Bool
copyTagsToSnapshot) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Bool
a -> CreateDBInstance
s {$sel:copyTagsToSnapshot:CreateDBInstance' :: Maybe Bool
copyTagsToSnapshot = Maybe Bool
a} :: CreateDBInstance)

-- | The identifier of the DB cluster that the instance will belong to.
--
-- For information on creating a DB cluster, see CreateDBCluster.
--
-- Type: String
createDBInstance_dbClusterIdentifier :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_dbClusterIdentifier :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_dbClusterIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
dbClusterIdentifier :: Maybe Text
$sel:dbClusterIdentifier:CreateDBInstance' :: CreateDBInstance -> Maybe Text
dbClusterIdentifier} -> Maybe Text
dbClusterIdentifier) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:dbClusterIdentifier:CreateDBInstance' :: Maybe Text
dbClusterIdentifier = Maybe Text
a} :: CreateDBInstance)

-- | Not supported.
createDBInstance_dbName :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_dbName :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_dbName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
dbName :: Maybe Text
$sel:dbName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
dbName} -> Maybe Text
dbName) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:dbName:CreateDBInstance' :: Maybe Text
dbName = Maybe Text
a} :: CreateDBInstance)

-- | The name of the DB parameter group to associate with this DB instance.
-- If this argument is omitted, the default DBParameterGroup for the
-- specified engine is used.
--
-- Constraints:
--
-- -   Must be 1 to 255 letters, numbers, or hyphens.
--
-- -   First character must be a letter
--
-- -   Cannot end with a hyphen or contain two consecutive hyphens
createDBInstance_dbParameterGroupName :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_dbParameterGroupName :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_dbParameterGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
dbParameterGroupName :: Maybe Text
$sel:dbParameterGroupName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
dbParameterGroupName} -> Maybe Text
dbParameterGroupName) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:dbParameterGroupName:CreateDBInstance' :: Maybe Text
dbParameterGroupName = Maybe Text
a} :: CreateDBInstance)

-- | A list of DB security groups to associate with this DB instance.
--
-- Default: The default DB security group for the database engine.
createDBInstance_dbSecurityGroups :: Lens.Lens' CreateDBInstance (Prelude.Maybe [Prelude.Text])
createDBInstance_dbSecurityGroups :: Lens' CreateDBInstance (Maybe [Text])
createDBInstance_dbSecurityGroups = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe [Text]
dbSecurityGroups :: Maybe [Text]
$sel:dbSecurityGroups:CreateDBInstance' :: CreateDBInstance -> Maybe [Text]
dbSecurityGroups} -> Maybe [Text]
dbSecurityGroups) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe [Text]
a -> CreateDBInstance
s {$sel:dbSecurityGroups:CreateDBInstance' :: Maybe [Text]
dbSecurityGroups = Maybe [Text]
a} :: CreateDBInstance) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A DB subnet group to associate with this DB instance.
--
-- If there is no DB subnet group, then it is a non-VPC DB instance.
createDBInstance_dbSubnetGroupName :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_dbSubnetGroupName :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_dbSubnetGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
dbSubnetGroupName :: Maybe Text
$sel:dbSubnetGroupName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
dbSubnetGroupName} -> Maybe Text
dbSubnetGroupName) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:dbSubnetGroupName:CreateDBInstance' :: Maybe Text
dbSubnetGroupName = Maybe Text
a} :: CreateDBInstance)

-- | A value that indicates whether the DB instance has deletion protection
-- enabled. The database can\'t be deleted when deletion protection is
-- enabled. By default, deletion protection is disabled. See
-- <https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html Deleting a DB Instance>.
--
-- DB instances in a DB cluster can be deleted even when deletion
-- protection is enabled in their parent DB cluster.
createDBInstance_deletionProtection :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)
createDBInstance_deletionProtection :: Lens' CreateDBInstance (Maybe Bool)
createDBInstance_deletionProtection = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Bool
deletionProtection :: Maybe Bool
$sel:deletionProtection:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
deletionProtection} -> Maybe Bool
deletionProtection) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Bool
a -> CreateDBInstance
s {$sel:deletionProtection:CreateDBInstance' :: Maybe Bool
deletionProtection = Maybe Bool
a} :: CreateDBInstance)

-- | Specify the Active Directory Domain to create the instance in.
createDBInstance_domain :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_domain :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_domain = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
domain :: Maybe Text
$sel:domain:CreateDBInstance' :: CreateDBInstance -> Maybe Text
domain} -> Maybe Text
domain) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:domain:CreateDBInstance' :: Maybe Text
domain = Maybe Text
a} :: CreateDBInstance)

-- | Specify the name of the IAM role to be used when making API calls to the
-- Directory Service.
createDBInstance_domainIAMRoleName :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_domainIAMRoleName :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_domainIAMRoleName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
domainIAMRoleName :: Maybe Text
$sel:domainIAMRoleName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
domainIAMRoleName} -> Maybe Text
domainIAMRoleName) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:domainIAMRoleName:CreateDBInstance' :: Maybe Text
domainIAMRoleName = Maybe Text
a} :: CreateDBInstance)

-- | The list of log types that need to be enabled for exporting to
-- CloudWatch Logs.
createDBInstance_enableCloudwatchLogsExports :: Lens.Lens' CreateDBInstance (Prelude.Maybe [Prelude.Text])
createDBInstance_enableCloudwatchLogsExports :: Lens' CreateDBInstance (Maybe [Text])
createDBInstance_enableCloudwatchLogsExports = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe [Text]
enableCloudwatchLogsExports :: Maybe [Text]
$sel:enableCloudwatchLogsExports:CreateDBInstance' :: CreateDBInstance -> Maybe [Text]
enableCloudwatchLogsExports} -> Maybe [Text]
enableCloudwatchLogsExports) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe [Text]
a -> CreateDBInstance
s {$sel:enableCloudwatchLogsExports:CreateDBInstance' :: Maybe [Text]
enableCloudwatchLogsExports = Maybe [Text]
a} :: CreateDBInstance) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Not supported by Neptune (ignored).
createDBInstance_enableIAMDatabaseAuthentication :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)
createDBInstance_enableIAMDatabaseAuthentication :: Lens' CreateDBInstance (Maybe Bool)
createDBInstance_enableIAMDatabaseAuthentication = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Bool
enableIAMDatabaseAuthentication :: Maybe Bool
$sel:enableIAMDatabaseAuthentication:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
enableIAMDatabaseAuthentication} -> Maybe Bool
enableIAMDatabaseAuthentication) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Bool
a -> CreateDBInstance
s {$sel:enableIAMDatabaseAuthentication:CreateDBInstance' :: Maybe Bool
enableIAMDatabaseAuthentication = Maybe Bool
a} :: CreateDBInstance)

-- | /(Not supported by Neptune)/
createDBInstance_enablePerformanceInsights :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)
createDBInstance_enablePerformanceInsights :: Lens' CreateDBInstance (Maybe Bool)
createDBInstance_enablePerformanceInsights = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Bool
enablePerformanceInsights :: Maybe Bool
$sel:enablePerformanceInsights:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
enablePerformanceInsights} -> Maybe Bool
enablePerformanceInsights) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Bool
a -> CreateDBInstance
s {$sel:enablePerformanceInsights:CreateDBInstance' :: Maybe Bool
enablePerformanceInsights = Maybe Bool
a} :: CreateDBInstance)

-- | The version number of the database engine to use. Currently, setting
-- this parameter has no effect.
createDBInstance_engineVersion :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_engineVersion :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_engineVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
engineVersion :: Maybe Text
$sel:engineVersion:CreateDBInstance' :: CreateDBInstance -> Maybe Text
engineVersion} -> Maybe Text
engineVersion) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:engineVersion:CreateDBInstance' :: Maybe Text
engineVersion = Maybe Text
a} :: CreateDBInstance)

-- | The amount of Provisioned IOPS (input\/output operations per second) to
-- be initially allocated for the DB instance.
createDBInstance_iops :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Int)
createDBInstance_iops :: Lens' CreateDBInstance (Maybe Int)
createDBInstance_iops = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Int
iops :: Maybe Int
$sel:iops:CreateDBInstance' :: CreateDBInstance -> Maybe Int
iops} -> Maybe Int
iops) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Int
a -> CreateDBInstance
s {$sel:iops:CreateDBInstance' :: Maybe Int
iops = Maybe Int
a} :: CreateDBInstance)

-- | The Amazon KMS key identifier for an encrypted DB instance.
--
-- The KMS key identifier is the Amazon Resource Name (ARN) for the KMS
-- encryption key. If you are creating a DB instance with the same Amazon
-- account that owns the KMS encryption key used to encrypt the new DB
-- instance, then you can use the KMS key alias instead of the ARN for the
-- KM encryption key.
--
-- Not applicable. The KMS key identifier is managed by the DB cluster. For
-- more information, see CreateDBCluster.
--
-- If the @StorageEncrypted@ parameter is true, and you do not specify a
-- value for the @KmsKeyId@ parameter, then Amazon Neptune will use your
-- default encryption key. Amazon KMS creates the default encryption key
-- for your Amazon account. Your Amazon account has a different default
-- encryption key for each Amazon Region.
createDBInstance_kmsKeyId :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_kmsKeyId :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_kmsKeyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
kmsKeyId :: Maybe Text
$sel:kmsKeyId:CreateDBInstance' :: CreateDBInstance -> Maybe Text
kmsKeyId} -> Maybe Text
kmsKeyId) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:kmsKeyId:CreateDBInstance' :: Maybe Text
kmsKeyId = Maybe Text
a} :: CreateDBInstance)

-- | License model information for this DB instance.
--
-- Valid values: @license-included@ | @bring-your-own-license@ |
-- @general-public-license@
createDBInstance_licenseModel :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_licenseModel :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_licenseModel = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
licenseModel :: Maybe Text
$sel:licenseModel:CreateDBInstance' :: CreateDBInstance -> Maybe Text
licenseModel} -> Maybe Text
licenseModel) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:licenseModel:CreateDBInstance' :: Maybe Text
licenseModel = Maybe Text
a} :: CreateDBInstance)

-- | Not supported by Neptune.
createDBInstance_masterUserPassword :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_masterUserPassword :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_masterUserPassword = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
masterUserPassword :: Maybe Text
$sel:masterUserPassword:CreateDBInstance' :: CreateDBInstance -> Maybe Text
masterUserPassword} -> Maybe Text
masterUserPassword) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:masterUserPassword:CreateDBInstance' :: Maybe Text
masterUserPassword = Maybe Text
a} :: CreateDBInstance)

-- | Not supported by Neptune.
createDBInstance_masterUsername :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_masterUsername :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_masterUsername = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
masterUsername :: Maybe Text
$sel:masterUsername:CreateDBInstance' :: CreateDBInstance -> Maybe Text
masterUsername} -> Maybe Text
masterUsername) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:masterUsername:CreateDBInstance' :: Maybe Text
masterUsername = Maybe Text
a} :: CreateDBInstance)

-- | The interval, in seconds, between points when Enhanced Monitoring
-- metrics are collected for the DB instance. To disable collecting
-- Enhanced Monitoring metrics, specify 0. The default is 0.
--
-- If @MonitoringRoleArn@ is specified, then you must also set
-- @MonitoringInterval@ to a value other than 0.
--
-- Valid Values: @0, 1, 5, 10, 15, 30, 60@
createDBInstance_monitoringInterval :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Int)
createDBInstance_monitoringInterval :: Lens' CreateDBInstance (Maybe Int)
createDBInstance_monitoringInterval = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Int
monitoringInterval :: Maybe Int
$sel:monitoringInterval:CreateDBInstance' :: CreateDBInstance -> Maybe Int
monitoringInterval} -> Maybe Int
monitoringInterval) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Int
a -> CreateDBInstance
s {$sel:monitoringInterval:CreateDBInstance' :: Maybe Int
monitoringInterval = Maybe Int
a} :: CreateDBInstance)

-- | The ARN for the IAM role that permits Neptune to send enhanced
-- monitoring metrics to Amazon CloudWatch Logs. For example,
-- @arn:aws:iam:123456789012:role\/emaccess@.
--
-- If @MonitoringInterval@ is set to a value other than 0, then you must
-- supply a @MonitoringRoleArn@ value.
createDBInstance_monitoringRoleArn :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_monitoringRoleArn :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_monitoringRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
monitoringRoleArn :: Maybe Text
$sel:monitoringRoleArn:CreateDBInstance' :: CreateDBInstance -> Maybe Text
monitoringRoleArn} -> Maybe Text
monitoringRoleArn) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:monitoringRoleArn:CreateDBInstance' :: Maybe Text
monitoringRoleArn = Maybe Text
a} :: CreateDBInstance)

-- | Specifies if the DB instance is a Multi-AZ deployment. You can\'t set
-- the AvailabilityZone parameter if the MultiAZ parameter is set to true.
createDBInstance_multiAZ :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)
createDBInstance_multiAZ :: Lens' CreateDBInstance (Maybe Bool)
createDBInstance_multiAZ = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Bool
multiAZ :: Maybe Bool
$sel:multiAZ:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
multiAZ} -> Maybe Bool
multiAZ) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Bool
a -> CreateDBInstance
s {$sel:multiAZ:CreateDBInstance' :: Maybe Bool
multiAZ = Maybe Bool
a} :: CreateDBInstance)

-- | /(Not supported by Neptune)/
createDBInstance_optionGroupName :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_optionGroupName :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_optionGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
optionGroupName :: Maybe Text
$sel:optionGroupName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
optionGroupName} -> Maybe Text
optionGroupName) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:optionGroupName:CreateDBInstance' :: Maybe Text
optionGroupName = Maybe Text
a} :: CreateDBInstance)

-- | /(Not supported by Neptune)/
createDBInstance_performanceInsightsKMSKeyId :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_performanceInsightsKMSKeyId :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_performanceInsightsKMSKeyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
performanceInsightsKMSKeyId :: Maybe Text
$sel:performanceInsightsKMSKeyId:CreateDBInstance' :: CreateDBInstance -> Maybe Text
performanceInsightsKMSKeyId} -> Maybe Text
performanceInsightsKMSKeyId) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:performanceInsightsKMSKeyId:CreateDBInstance' :: Maybe Text
performanceInsightsKMSKeyId = Maybe Text
a} :: CreateDBInstance)

-- | The port number on which the database accepts connections.
--
-- Not applicable. The port is managed by the DB cluster. For more
-- information, see CreateDBCluster.
--
-- Default: @8182@
--
-- Type: Integer
createDBInstance_port :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Int)
createDBInstance_port :: Lens' CreateDBInstance (Maybe Int)
createDBInstance_port = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Int
port :: Maybe Int
$sel:port:CreateDBInstance' :: CreateDBInstance -> Maybe Int
port} -> Maybe Int
port) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Int
a -> CreateDBInstance
s {$sel:port:CreateDBInstance' :: Maybe Int
port = Maybe Int
a} :: CreateDBInstance)

-- | The daily time range during which automated backups are created.
--
-- Not applicable. The daily time range for creating automated backups is
-- managed by the DB cluster. For more information, see CreateDBCluster.
createDBInstance_preferredBackupWindow :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_preferredBackupWindow :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_preferredBackupWindow = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
preferredBackupWindow :: Maybe Text
$sel:preferredBackupWindow:CreateDBInstance' :: CreateDBInstance -> Maybe Text
preferredBackupWindow} -> Maybe Text
preferredBackupWindow) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:preferredBackupWindow:CreateDBInstance' :: Maybe Text
preferredBackupWindow = Maybe Text
a} :: CreateDBInstance)

-- | The time range each week during which system maintenance can occur, in
-- Universal Coordinated Time (UTC).
--
-- Format: @ddd:hh24:mi-ddd:hh24:mi@
--
-- The default is a 30-minute window selected at random from an 8-hour
-- block of time for each Amazon Region, occurring on a random day of the
-- week.
--
-- Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
--
-- Constraints: Minimum 30-minute window.
createDBInstance_preferredMaintenanceWindow :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_preferredMaintenanceWindow :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_preferredMaintenanceWindow = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
preferredMaintenanceWindow :: Maybe Text
$sel:preferredMaintenanceWindow:CreateDBInstance' :: CreateDBInstance -> Maybe Text
preferredMaintenanceWindow} -> Maybe Text
preferredMaintenanceWindow) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:preferredMaintenanceWindow:CreateDBInstance' :: Maybe Text
preferredMaintenanceWindow = Maybe Text
a} :: CreateDBInstance)

-- | A value that specifies the order in which an Read Replica is promoted to
-- the primary instance after a failure of the existing primary instance.
--
-- Default: 1
--
-- Valid Values: 0 - 15
createDBInstance_promotionTier :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Int)
createDBInstance_promotionTier :: Lens' CreateDBInstance (Maybe Int)
createDBInstance_promotionTier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Int
promotionTier :: Maybe Int
$sel:promotionTier:CreateDBInstance' :: CreateDBInstance -> Maybe Int
promotionTier} -> Maybe Int
promotionTier) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Int
a -> CreateDBInstance
s {$sel:promotionTier:CreateDBInstance' :: Maybe Int
promotionTier = Maybe Int
a} :: CreateDBInstance)

-- | This flag should no longer be used.
createDBInstance_publiclyAccessible :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)
createDBInstance_publiclyAccessible :: Lens' CreateDBInstance (Maybe Bool)
createDBInstance_publiclyAccessible = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Bool
publiclyAccessible :: Maybe Bool
$sel:publiclyAccessible:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
publiclyAccessible} -> Maybe Bool
publiclyAccessible) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Bool
a -> CreateDBInstance
s {$sel:publiclyAccessible:CreateDBInstance' :: Maybe Bool
publiclyAccessible = Maybe Bool
a} :: CreateDBInstance)

-- | Specifies whether the DB instance is encrypted.
--
-- Not applicable. The encryption for DB instances is managed by the DB
-- cluster. For more information, see CreateDBCluster.
--
-- Default: false
createDBInstance_storageEncrypted :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Bool)
createDBInstance_storageEncrypted :: Lens' CreateDBInstance (Maybe Bool)
createDBInstance_storageEncrypted = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Bool
storageEncrypted :: Maybe Bool
$sel:storageEncrypted:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
storageEncrypted} -> Maybe Bool
storageEncrypted) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Bool
a -> CreateDBInstance
s {$sel:storageEncrypted:CreateDBInstance' :: Maybe Bool
storageEncrypted = Maybe Bool
a} :: CreateDBInstance)

-- | Specifies the storage type to be associated with the DB instance.
--
-- Not applicable. Storage is managed by the DB Cluster.
createDBInstance_storageType :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_storageType :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_storageType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
storageType :: Maybe Text
$sel:storageType:CreateDBInstance' :: CreateDBInstance -> Maybe Text
storageType} -> Maybe Text
storageType) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:storageType:CreateDBInstance' :: Maybe Text
storageType = Maybe Text
a} :: CreateDBInstance)

-- | The tags to assign to the new instance.
createDBInstance_tags :: Lens.Lens' CreateDBInstance (Prelude.Maybe [Tag])
createDBInstance_tags :: Lens' CreateDBInstance (Maybe [Tag])
createDBInstance_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateDBInstance' :: CreateDBInstance -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe [Tag]
a -> CreateDBInstance
s {$sel:tags:CreateDBInstance' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateDBInstance) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

-- | The password for the given ARN from the key store in order to access the
-- device.
createDBInstance_tdeCredentialPassword :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_tdeCredentialPassword :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_tdeCredentialPassword = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
tdeCredentialPassword :: Maybe Text
$sel:tdeCredentialPassword:CreateDBInstance' :: CreateDBInstance -> Maybe Text
tdeCredentialPassword} -> Maybe Text
tdeCredentialPassword) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:tdeCredentialPassword:CreateDBInstance' :: Maybe Text
tdeCredentialPassword = Maybe Text
a} :: CreateDBInstance)

-- | The time zone of the DB instance.
createDBInstance_timezone :: Lens.Lens' CreateDBInstance (Prelude.Maybe Prelude.Text)
createDBInstance_timezone :: Lens' CreateDBInstance (Maybe Text)
createDBInstance_timezone = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe Text
timezone :: Maybe Text
$sel:timezone:CreateDBInstance' :: CreateDBInstance -> Maybe Text
timezone} -> Maybe Text
timezone) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe Text
a -> CreateDBInstance
s {$sel:timezone:CreateDBInstance' :: Maybe Text
timezone = Maybe Text
a} :: CreateDBInstance)

-- | A list of EC2 VPC security groups to associate with this DB instance.
--
-- Not applicable. The associated list of EC2 VPC security groups is
-- managed by the DB cluster. For more information, see CreateDBCluster.
--
-- Default: The default EC2 VPC security group for the DB subnet group\'s
-- VPC.
createDBInstance_vpcSecurityGroupIds :: Lens.Lens' CreateDBInstance (Prelude.Maybe [Prelude.Text])
createDBInstance_vpcSecurityGroupIds :: Lens' CreateDBInstance (Maybe [Text])
createDBInstance_vpcSecurityGroupIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Maybe [Text]
vpcSecurityGroupIds :: Maybe [Text]
$sel:vpcSecurityGroupIds:CreateDBInstance' :: CreateDBInstance -> Maybe [Text]
vpcSecurityGroupIds} -> Maybe [Text]
vpcSecurityGroupIds) (\s :: CreateDBInstance
s@CreateDBInstance' {} Maybe [Text]
a -> CreateDBInstance
s {$sel:vpcSecurityGroupIds:CreateDBInstance' :: Maybe [Text]
vpcSecurityGroupIds = Maybe [Text]
a} :: CreateDBInstance) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The DB instance identifier. This parameter is stored as a lowercase
-- string.
--
-- Constraints:
--
-- -   Must contain from 1 to 63 letters, numbers, or hyphens.
--
-- -   First character must be a letter.
--
-- -   Cannot end with a hyphen or contain two consecutive hyphens.
--
-- Example: @mydbinstance@
createDBInstance_dbInstanceIdentifier :: Lens.Lens' CreateDBInstance Prelude.Text
createDBInstance_dbInstanceIdentifier :: Lens' CreateDBInstance Text
createDBInstance_dbInstanceIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Text
dbInstanceIdentifier :: Text
$sel:dbInstanceIdentifier:CreateDBInstance' :: CreateDBInstance -> Text
dbInstanceIdentifier} -> Text
dbInstanceIdentifier) (\s :: CreateDBInstance
s@CreateDBInstance' {} Text
a -> CreateDBInstance
s {$sel:dbInstanceIdentifier:CreateDBInstance' :: Text
dbInstanceIdentifier = Text
a} :: CreateDBInstance)

-- | The compute and memory capacity of the DB instance, for example,
-- @db.m4.large@. Not all DB instance classes are available in all Amazon
-- Regions.
createDBInstance_dbInstanceClass :: Lens.Lens' CreateDBInstance Prelude.Text
createDBInstance_dbInstanceClass :: Lens' CreateDBInstance Text
createDBInstance_dbInstanceClass = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Text
dbInstanceClass :: Text
$sel:dbInstanceClass:CreateDBInstance' :: CreateDBInstance -> Text
dbInstanceClass} -> Text
dbInstanceClass) (\s :: CreateDBInstance
s@CreateDBInstance' {} Text
a -> CreateDBInstance
s {$sel:dbInstanceClass:CreateDBInstance' :: Text
dbInstanceClass = Text
a} :: CreateDBInstance)

-- | The name of the database engine to be used for this instance.
--
-- Valid Values: @neptune@
createDBInstance_engine :: Lens.Lens' CreateDBInstance Prelude.Text
createDBInstance_engine :: Lens' CreateDBInstance Text
createDBInstance_engine = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstance' {Text
engine :: Text
$sel:engine:CreateDBInstance' :: CreateDBInstance -> Text
engine} -> Text
engine) (\s :: CreateDBInstance
s@CreateDBInstance' {} Text
a -> CreateDBInstance
s {$sel:engine:CreateDBInstance' :: Text
engine = Text
a} :: CreateDBInstance)

instance Core.AWSRequest CreateDBInstance where
  type
    AWSResponse CreateDBInstance =
      CreateDBInstanceResponse
  request :: (Service -> Service)
-> CreateDBInstance -> Request CreateDBInstance
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateDBInstance
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateDBInstance)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
    -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
      Text
"CreateDBInstanceResult"
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe DBInstance -> Int -> CreateDBInstanceResponse
CreateDBInstanceResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"DBInstance")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable CreateDBInstance where
  hashWithSalt :: Int -> CreateDBInstance -> Int
hashWithSalt Int
_salt CreateDBInstance' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe [Tag]
Maybe Text
Text
engine :: Text
dbInstanceClass :: Text
dbInstanceIdentifier :: Text
vpcSecurityGroupIds :: Maybe [Text]
timezone :: Maybe Text
tdeCredentialPassword :: Maybe Text
tdeCredentialArn :: Maybe Text
tags :: Maybe [Tag]
storageType :: Maybe Text
storageEncrypted :: Maybe Bool
publiclyAccessible :: Maybe Bool
promotionTier :: Maybe Int
preferredMaintenanceWindow :: Maybe Text
preferredBackupWindow :: Maybe Text
port :: Maybe Int
performanceInsightsKMSKeyId :: Maybe Text
optionGroupName :: Maybe Text
multiAZ :: Maybe Bool
monitoringRoleArn :: Maybe Text
monitoringInterval :: Maybe Int
masterUsername :: Maybe Text
masterUserPassword :: Maybe Text
licenseModel :: Maybe Text
kmsKeyId :: Maybe Text
iops :: Maybe Int
engineVersion :: Maybe Text
enablePerformanceInsights :: Maybe Bool
enableIAMDatabaseAuthentication :: Maybe Bool
enableCloudwatchLogsExports :: Maybe [Text]
domainIAMRoleName :: Maybe Text
domain :: Maybe Text
deletionProtection :: Maybe Bool
dbSubnetGroupName :: Maybe Text
dbSecurityGroups :: Maybe [Text]
dbParameterGroupName :: Maybe Text
dbName :: Maybe Text
dbClusterIdentifier :: Maybe Text
copyTagsToSnapshot :: Maybe Bool
characterSetName :: Maybe Text
backupRetentionPeriod :: Maybe Int
availabilityZone :: Maybe Text
autoMinorVersionUpgrade :: Maybe Bool
allocatedStorage :: Maybe Int
$sel:engine:CreateDBInstance' :: CreateDBInstance -> Text
$sel:dbInstanceClass:CreateDBInstance' :: CreateDBInstance -> Text
$sel:dbInstanceIdentifier:CreateDBInstance' :: CreateDBInstance -> Text
$sel:vpcSecurityGroupIds:CreateDBInstance' :: CreateDBInstance -> Maybe [Text]
$sel:timezone:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:tdeCredentialPassword:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:tdeCredentialArn:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:tags:CreateDBInstance' :: CreateDBInstance -> Maybe [Tag]
$sel:storageType:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:storageEncrypted:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:publiclyAccessible:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:promotionTier:CreateDBInstance' :: CreateDBInstance -> Maybe Int
$sel:preferredMaintenanceWindow:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:preferredBackupWindow:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:port:CreateDBInstance' :: CreateDBInstance -> Maybe Int
$sel:performanceInsightsKMSKeyId:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:optionGroupName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:multiAZ:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:monitoringRoleArn:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:monitoringInterval:CreateDBInstance' :: CreateDBInstance -> Maybe Int
$sel:masterUsername:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:masterUserPassword:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:licenseModel:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:kmsKeyId:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:iops:CreateDBInstance' :: CreateDBInstance -> Maybe Int
$sel:engineVersion:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:enablePerformanceInsights:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:enableIAMDatabaseAuthentication:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:enableCloudwatchLogsExports:CreateDBInstance' :: CreateDBInstance -> Maybe [Text]
$sel:domainIAMRoleName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:domain:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:deletionProtection:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:dbSubnetGroupName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:dbSecurityGroups:CreateDBInstance' :: CreateDBInstance -> Maybe [Text]
$sel:dbParameterGroupName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:dbName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:dbClusterIdentifier:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:copyTagsToSnapshot:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:characterSetName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:backupRetentionPeriod:CreateDBInstance' :: CreateDBInstance -> Maybe Int
$sel:availabilityZone:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:autoMinorVersionUpgrade:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:allocatedStorage:CreateDBInstance' :: CreateDBInstance -> Maybe Int
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
allocatedStorage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
autoMinorVersionUpgrade
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
availabilityZone
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
backupRetentionPeriod
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
characterSetName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
copyTagsToSnapshot
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dbClusterIdentifier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dbName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dbParameterGroupName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
dbSecurityGroups
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dbSubnetGroupName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
deletionProtection
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
domain
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
domainIAMRoleName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
enableCloudwatchLogsExports
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
enableIAMDatabaseAuthentication
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
enablePerformanceInsights
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
engineVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
iops
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
kmsKeyId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
licenseModel
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
masterUserPassword
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
masterUsername
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
monitoringInterval
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
monitoringRoleArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
multiAZ
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
optionGroupName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
performanceInsightsKMSKeyId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
port
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
preferredBackupWindow
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
preferredMaintenanceWindow
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
promotionTier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
publiclyAccessible
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
storageEncrypted
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
storageType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
tdeCredentialArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
tdeCredentialPassword
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
timezone
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
vpcSecurityGroupIds
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
dbInstanceIdentifier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
dbInstanceClass
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
engine

instance Prelude.NFData CreateDBInstance where
  rnf :: CreateDBInstance -> ()
rnf CreateDBInstance' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe [Tag]
Maybe Text
Text
engine :: Text
dbInstanceClass :: Text
dbInstanceIdentifier :: Text
vpcSecurityGroupIds :: Maybe [Text]
timezone :: Maybe Text
tdeCredentialPassword :: Maybe Text
tdeCredentialArn :: Maybe Text
tags :: Maybe [Tag]
storageType :: Maybe Text
storageEncrypted :: Maybe Bool
publiclyAccessible :: Maybe Bool
promotionTier :: Maybe Int
preferredMaintenanceWindow :: Maybe Text
preferredBackupWindow :: Maybe Text
port :: Maybe Int
performanceInsightsKMSKeyId :: Maybe Text
optionGroupName :: Maybe Text
multiAZ :: Maybe Bool
monitoringRoleArn :: Maybe Text
monitoringInterval :: Maybe Int
masterUsername :: Maybe Text
masterUserPassword :: Maybe Text
licenseModel :: Maybe Text
kmsKeyId :: Maybe Text
iops :: Maybe Int
engineVersion :: Maybe Text
enablePerformanceInsights :: Maybe Bool
enableIAMDatabaseAuthentication :: Maybe Bool
enableCloudwatchLogsExports :: Maybe [Text]
domainIAMRoleName :: Maybe Text
domain :: Maybe Text
deletionProtection :: Maybe Bool
dbSubnetGroupName :: Maybe Text
dbSecurityGroups :: Maybe [Text]
dbParameterGroupName :: Maybe Text
dbName :: Maybe Text
dbClusterIdentifier :: Maybe Text
copyTagsToSnapshot :: Maybe Bool
characterSetName :: Maybe Text
backupRetentionPeriod :: Maybe Int
availabilityZone :: Maybe Text
autoMinorVersionUpgrade :: Maybe Bool
allocatedStorage :: Maybe Int
$sel:engine:CreateDBInstance' :: CreateDBInstance -> Text
$sel:dbInstanceClass:CreateDBInstance' :: CreateDBInstance -> Text
$sel:dbInstanceIdentifier:CreateDBInstance' :: CreateDBInstance -> Text
$sel:vpcSecurityGroupIds:CreateDBInstance' :: CreateDBInstance -> Maybe [Text]
$sel:timezone:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:tdeCredentialPassword:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:tdeCredentialArn:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:tags:CreateDBInstance' :: CreateDBInstance -> Maybe [Tag]
$sel:storageType:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:storageEncrypted:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:publiclyAccessible:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:promotionTier:CreateDBInstance' :: CreateDBInstance -> Maybe Int
$sel:preferredMaintenanceWindow:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:preferredBackupWindow:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:port:CreateDBInstance' :: CreateDBInstance -> Maybe Int
$sel:performanceInsightsKMSKeyId:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:optionGroupName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:multiAZ:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:monitoringRoleArn:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:monitoringInterval:CreateDBInstance' :: CreateDBInstance -> Maybe Int
$sel:masterUsername:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:masterUserPassword:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:licenseModel:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:kmsKeyId:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:iops:CreateDBInstance' :: CreateDBInstance -> Maybe Int
$sel:engineVersion:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:enablePerformanceInsights:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:enableIAMDatabaseAuthentication:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:enableCloudwatchLogsExports:CreateDBInstance' :: CreateDBInstance -> Maybe [Text]
$sel:domainIAMRoleName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:domain:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:deletionProtection:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:dbSubnetGroupName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:dbSecurityGroups:CreateDBInstance' :: CreateDBInstance -> Maybe [Text]
$sel:dbParameterGroupName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:dbName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:dbClusterIdentifier:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:copyTagsToSnapshot:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:characterSetName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:backupRetentionPeriod:CreateDBInstance' :: CreateDBInstance -> Maybe Int
$sel:availabilityZone:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:autoMinorVersionUpgrade:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:allocatedStorage:CreateDBInstance' :: CreateDBInstance -> Maybe Int
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
allocatedStorage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
autoMinorVersionUpgrade
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
availabilityZone
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
backupRetentionPeriod
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
characterSetName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
copyTagsToSnapshot
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dbClusterIdentifier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dbName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dbParameterGroupName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
dbSecurityGroups
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dbSubnetGroupName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
deletionProtection
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
domain
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
domainIAMRoleName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
enableCloudwatchLogsExports
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Bool
enableIAMDatabaseAuthentication
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Bool
enablePerformanceInsights
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
engineVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
iops
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
kmsKeyId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
licenseModel
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
masterUserPassword
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
masterUsername
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Int
monitoringInterval
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
monitoringRoleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Bool
multiAZ
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
optionGroupName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
performanceInsightsKMSKeyId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Int
port
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
preferredBackupWindow
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
preferredMaintenanceWindow
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Int
promotionTier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Bool
publiclyAccessible
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Bool
storageEncrypted
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
storageType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe [Tag]
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
tdeCredentialArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
tdeCredentialPassword
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
timezone
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe [Text]
vpcSecurityGroupIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Text
dbInstanceIdentifier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Text
dbInstanceClass
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Text
engine

instance Data.ToHeaders CreateDBInstance where
  toHeaders :: CreateDBInstance -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToPath CreateDBInstance where
  toPath :: CreateDBInstance -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery CreateDBInstance where
  toQuery :: CreateDBInstance -> QueryString
toQuery CreateDBInstance' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe [Tag]
Maybe Text
Text
engine :: Text
dbInstanceClass :: Text
dbInstanceIdentifier :: Text
vpcSecurityGroupIds :: Maybe [Text]
timezone :: Maybe Text
tdeCredentialPassword :: Maybe Text
tdeCredentialArn :: Maybe Text
tags :: Maybe [Tag]
storageType :: Maybe Text
storageEncrypted :: Maybe Bool
publiclyAccessible :: Maybe Bool
promotionTier :: Maybe Int
preferredMaintenanceWindow :: Maybe Text
preferredBackupWindow :: Maybe Text
port :: Maybe Int
performanceInsightsKMSKeyId :: Maybe Text
optionGroupName :: Maybe Text
multiAZ :: Maybe Bool
monitoringRoleArn :: Maybe Text
monitoringInterval :: Maybe Int
masterUsername :: Maybe Text
masterUserPassword :: Maybe Text
licenseModel :: Maybe Text
kmsKeyId :: Maybe Text
iops :: Maybe Int
engineVersion :: Maybe Text
enablePerformanceInsights :: Maybe Bool
enableIAMDatabaseAuthentication :: Maybe Bool
enableCloudwatchLogsExports :: Maybe [Text]
domainIAMRoleName :: Maybe Text
domain :: Maybe Text
deletionProtection :: Maybe Bool
dbSubnetGroupName :: Maybe Text
dbSecurityGroups :: Maybe [Text]
dbParameterGroupName :: Maybe Text
dbName :: Maybe Text
dbClusterIdentifier :: Maybe Text
copyTagsToSnapshot :: Maybe Bool
characterSetName :: Maybe Text
backupRetentionPeriod :: Maybe Int
availabilityZone :: Maybe Text
autoMinorVersionUpgrade :: Maybe Bool
allocatedStorage :: Maybe Int
$sel:engine:CreateDBInstance' :: CreateDBInstance -> Text
$sel:dbInstanceClass:CreateDBInstance' :: CreateDBInstance -> Text
$sel:dbInstanceIdentifier:CreateDBInstance' :: CreateDBInstance -> Text
$sel:vpcSecurityGroupIds:CreateDBInstance' :: CreateDBInstance -> Maybe [Text]
$sel:timezone:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:tdeCredentialPassword:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:tdeCredentialArn:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:tags:CreateDBInstance' :: CreateDBInstance -> Maybe [Tag]
$sel:storageType:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:storageEncrypted:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:publiclyAccessible:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:promotionTier:CreateDBInstance' :: CreateDBInstance -> Maybe Int
$sel:preferredMaintenanceWindow:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:preferredBackupWindow:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:port:CreateDBInstance' :: CreateDBInstance -> Maybe Int
$sel:performanceInsightsKMSKeyId:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:optionGroupName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:multiAZ:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:monitoringRoleArn:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:monitoringInterval:CreateDBInstance' :: CreateDBInstance -> Maybe Int
$sel:masterUsername:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:masterUserPassword:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:licenseModel:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:kmsKeyId:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:iops:CreateDBInstance' :: CreateDBInstance -> Maybe Int
$sel:engineVersion:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:enablePerformanceInsights:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:enableIAMDatabaseAuthentication:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:enableCloudwatchLogsExports:CreateDBInstance' :: CreateDBInstance -> Maybe [Text]
$sel:domainIAMRoleName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:domain:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:deletionProtection:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:dbSubnetGroupName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:dbSecurityGroups:CreateDBInstance' :: CreateDBInstance -> Maybe [Text]
$sel:dbParameterGroupName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:dbName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:dbClusterIdentifier:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:copyTagsToSnapshot:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:characterSetName:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:backupRetentionPeriod:CreateDBInstance' :: CreateDBInstance -> Maybe Int
$sel:availabilityZone:CreateDBInstance' :: CreateDBInstance -> Maybe Text
$sel:autoMinorVersionUpgrade:CreateDBInstance' :: CreateDBInstance -> Maybe Bool
$sel:allocatedStorage:CreateDBInstance' :: CreateDBInstance -> Maybe Int
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"CreateDBInstance" :: Prelude.ByteString),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2014-10-31" :: Prelude.ByteString),
        ByteString
"AllocatedStorage" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
allocatedStorage,
        ByteString
"AutoMinorVersionUpgrade"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
autoMinorVersionUpgrade,
        ByteString
"AvailabilityZone" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
availabilityZone,
        ByteString
"BackupRetentionPeriod"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
backupRetentionPeriod,
        ByteString
"CharacterSetName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
characterSetName,
        ByteString
"CopyTagsToSnapshot" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
copyTagsToSnapshot,
        ByteString
"DBClusterIdentifier" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
dbClusterIdentifier,
        ByteString
"DBName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
dbName,
        ByteString
"DBParameterGroupName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
dbParameterGroupName,
        ByteString
"DBSecurityGroups"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: forall a. ToQuery a => a -> QueryString
Data.toQuery
            ( forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"DBSecurityGroupName"
                forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
dbSecurityGroups
            ),
        ByteString
"DBSubnetGroupName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
dbSubnetGroupName,
        ByteString
"DeletionProtection" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
deletionProtection,
        ByteString
"Domain" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
domain,
        ByteString
"DomainIAMRoleName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
domainIAMRoleName,
        ByteString
"EnableCloudwatchLogsExports"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: forall a. ToQuery a => a -> QueryString
Data.toQuery
            ( forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"member"
                forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
enableCloudwatchLogsExports
            ),
        ByteString
"EnableIAMDatabaseAuthentication"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
enableIAMDatabaseAuthentication,
        ByteString
"EnablePerformanceInsights"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
enablePerformanceInsights,
        ByteString
"EngineVersion" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
engineVersion,
        ByteString
"Iops" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
iops,
        ByteString
"KmsKeyId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
kmsKeyId,
        ByteString
"LicenseModel" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
licenseModel,
        ByteString
"MasterUserPassword" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
masterUserPassword,
        ByteString
"MasterUsername" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
masterUsername,
        ByteString
"MonitoringInterval" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
monitoringInterval,
        ByteString
"MonitoringRoleArn" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
monitoringRoleArn,
        ByteString
"MultiAZ" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
multiAZ,
        ByteString
"OptionGroupName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
optionGroupName,
        ByteString
"PerformanceInsightsKMSKeyId"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
performanceInsightsKMSKeyId,
        ByteString
"Port" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
port,
        ByteString
"PreferredBackupWindow"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
preferredBackupWindow,
        ByteString
"PreferredMaintenanceWindow"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
preferredMaintenanceWindow,
        ByteString
"PromotionTier" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
promotionTier,
        ByteString
"PubliclyAccessible" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
publiclyAccessible,
        ByteString
"StorageEncrypted" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
storageEncrypted,
        ByteString
"StorageType" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
storageType,
        ByteString
"Tags"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: forall a. ToQuery a => a -> QueryString
Data.toQuery
            (forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"Tag" forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Tag]
tags),
        ByteString
"TdeCredentialArn" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
tdeCredentialArn,
        ByteString
"TdeCredentialPassword"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
tdeCredentialPassword,
        ByteString
"Timezone" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
timezone,
        ByteString
"VpcSecurityGroupIds"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: forall a. ToQuery a => a -> QueryString
Data.toQuery
            ( forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"VpcSecurityGroupId"
                forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
vpcSecurityGroupIds
            ),
        ByteString
"DBInstanceIdentifier" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
dbInstanceIdentifier,
        ByteString
"DBInstanceClass" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
dbInstanceClass,
        ByteString
"Engine" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
engine
      ]

-- | /See:/ 'newCreateDBInstanceResponse' smart constructor.
data CreateDBInstanceResponse = CreateDBInstanceResponse'
  { CreateDBInstanceResponse -> Maybe DBInstance
dbInstance :: Prelude.Maybe DBInstance,
    -- | The response's http status code.
    CreateDBInstanceResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (CreateDBInstanceResponse -> CreateDBInstanceResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateDBInstanceResponse -> CreateDBInstanceResponse -> Bool
$c/= :: CreateDBInstanceResponse -> CreateDBInstanceResponse -> Bool
== :: CreateDBInstanceResponse -> CreateDBInstanceResponse -> Bool
$c== :: CreateDBInstanceResponse -> CreateDBInstanceResponse -> Bool
Prelude.Eq, ReadPrec [CreateDBInstanceResponse]
ReadPrec CreateDBInstanceResponse
Int -> ReadS CreateDBInstanceResponse
ReadS [CreateDBInstanceResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateDBInstanceResponse]
$creadListPrec :: ReadPrec [CreateDBInstanceResponse]
readPrec :: ReadPrec CreateDBInstanceResponse
$creadPrec :: ReadPrec CreateDBInstanceResponse
readList :: ReadS [CreateDBInstanceResponse]
$creadList :: ReadS [CreateDBInstanceResponse]
readsPrec :: Int -> ReadS CreateDBInstanceResponse
$creadsPrec :: Int -> ReadS CreateDBInstanceResponse
Prelude.Read, Int -> CreateDBInstanceResponse -> ShowS
[CreateDBInstanceResponse] -> ShowS
CreateDBInstanceResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateDBInstanceResponse] -> ShowS
$cshowList :: [CreateDBInstanceResponse] -> ShowS
show :: CreateDBInstanceResponse -> String
$cshow :: CreateDBInstanceResponse -> String
showsPrec :: Int -> CreateDBInstanceResponse -> ShowS
$cshowsPrec :: Int -> CreateDBInstanceResponse -> ShowS
Prelude.Show, forall x.
Rep CreateDBInstanceResponse x -> CreateDBInstanceResponse
forall x.
CreateDBInstanceResponse -> Rep CreateDBInstanceResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateDBInstanceResponse x -> CreateDBInstanceResponse
$cfrom :: forall x.
CreateDBInstanceResponse -> Rep CreateDBInstanceResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateDBInstanceResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'dbInstance', 'createDBInstanceResponse_dbInstance' - Undocumented member.
--
-- 'httpStatus', 'createDBInstanceResponse_httpStatus' - The response's http status code.
newCreateDBInstanceResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateDBInstanceResponse
newCreateDBInstanceResponse :: Int -> CreateDBInstanceResponse
newCreateDBInstanceResponse Int
pHttpStatus_ =
  CreateDBInstanceResponse'
    { $sel:dbInstance:CreateDBInstanceResponse' :: Maybe DBInstance
dbInstance =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:CreateDBInstanceResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Undocumented member.
createDBInstanceResponse_dbInstance :: Lens.Lens' CreateDBInstanceResponse (Prelude.Maybe DBInstance)
createDBInstanceResponse_dbInstance :: Lens' CreateDBInstanceResponse (Maybe DBInstance)
createDBInstanceResponse_dbInstance = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstanceResponse' {Maybe DBInstance
dbInstance :: Maybe DBInstance
$sel:dbInstance:CreateDBInstanceResponse' :: CreateDBInstanceResponse -> Maybe DBInstance
dbInstance} -> Maybe DBInstance
dbInstance) (\s :: CreateDBInstanceResponse
s@CreateDBInstanceResponse' {} Maybe DBInstance
a -> CreateDBInstanceResponse
s {$sel:dbInstance:CreateDBInstanceResponse' :: Maybe DBInstance
dbInstance = Maybe DBInstance
a} :: CreateDBInstanceResponse)

-- | The response's http status code.
createDBInstanceResponse_httpStatus :: Lens.Lens' CreateDBInstanceResponse Prelude.Int
createDBInstanceResponse_httpStatus :: Lens' CreateDBInstanceResponse Int
createDBInstanceResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDBInstanceResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateDBInstanceResponse' :: CreateDBInstanceResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateDBInstanceResponse
s@CreateDBInstanceResponse' {} Int
a -> CreateDBInstanceResponse
s {$sel:httpStatus:CreateDBInstanceResponse' :: Int
httpStatus = Int
a} :: CreateDBInstanceResponse)

instance Prelude.NFData CreateDBInstanceResponse where
  rnf :: CreateDBInstanceResponse -> ()
rnf CreateDBInstanceResponse' {Int
Maybe DBInstance
httpStatus :: Int
dbInstance :: Maybe DBInstance
$sel:httpStatus:CreateDBInstanceResponse' :: CreateDBInstanceResponse -> Int
$sel:dbInstance:CreateDBInstanceResponse' :: CreateDBInstanceResponse -> Maybe DBInstance
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe DBInstance
dbInstance
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus