{-# 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.RDS.RestoreDBInstanceFromDBSnapshot
-- 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 from a DB snapshot. The target database is
-- created from the source database restore point with most of the
-- source\'s original configuration, including the default security group
-- and DB parameter group. By default, the new DB instance is created as a
-- Single-AZ deployment, except when the instance is a SQL Server instance
-- that has an option group associated with mirroring. In this case, the
-- instance becomes a Multi-AZ deployment, not a Single-AZ deployment.
--
-- If you want to replace your original DB instance with the new, restored
-- DB instance, then rename your original DB instance before you call the
-- RestoreDBInstanceFromDBSnapshot action. RDS doesn\'t allow two DB
-- instances with the same name. After you have renamed your original DB
-- instance with a different identifier, then you can pass the original
-- name of the DB instance as the DBInstanceIdentifier in the call to the
-- RestoreDBInstanceFromDBSnapshot action. The result is that you replace
-- the original DB instance with the DB instance created from the snapshot.
--
-- If you are restoring from a shared manual DB snapshot, the
-- @DBSnapshotIdentifier@ must be the ARN of the shared DB snapshot.
--
-- This command doesn\'t apply to Aurora MySQL and Aurora PostgreSQL. For
-- Aurora, use @RestoreDBClusterFromSnapshot@.
module Amazonka.RDS.RestoreDBInstanceFromDBSnapshot
  ( -- * Creating a Request
    RestoreDBInstanceFromDBSnapshot (..),
    newRestoreDBInstanceFromDBSnapshot,

    -- * Request Lenses
    restoreDBInstanceFromDBSnapshot_autoMinorVersionUpgrade,
    restoreDBInstanceFromDBSnapshot_availabilityZone,
    restoreDBInstanceFromDBSnapshot_backupTarget,
    restoreDBInstanceFromDBSnapshot_copyTagsToSnapshot,
    restoreDBInstanceFromDBSnapshot_customIamInstanceProfile,
    restoreDBInstanceFromDBSnapshot_dbClusterSnapshotIdentifier,
    restoreDBInstanceFromDBSnapshot_dbInstanceClass,
    restoreDBInstanceFromDBSnapshot_dbName,
    restoreDBInstanceFromDBSnapshot_dbParameterGroupName,
    restoreDBInstanceFromDBSnapshot_dbSnapshotIdentifier,
    restoreDBInstanceFromDBSnapshot_dbSubnetGroupName,
    restoreDBInstanceFromDBSnapshot_deletionProtection,
    restoreDBInstanceFromDBSnapshot_domain,
    restoreDBInstanceFromDBSnapshot_domainIAMRoleName,
    restoreDBInstanceFromDBSnapshot_enableCloudwatchLogsExports,
    restoreDBInstanceFromDBSnapshot_enableCustomerOwnedIp,
    restoreDBInstanceFromDBSnapshot_enableIAMDatabaseAuthentication,
    restoreDBInstanceFromDBSnapshot_engine,
    restoreDBInstanceFromDBSnapshot_iops,
    restoreDBInstanceFromDBSnapshot_licenseModel,
    restoreDBInstanceFromDBSnapshot_multiAZ,
    restoreDBInstanceFromDBSnapshot_networkType,
    restoreDBInstanceFromDBSnapshot_optionGroupName,
    restoreDBInstanceFromDBSnapshot_port,
    restoreDBInstanceFromDBSnapshot_processorFeatures,
    restoreDBInstanceFromDBSnapshot_publiclyAccessible,
    restoreDBInstanceFromDBSnapshot_storageThroughput,
    restoreDBInstanceFromDBSnapshot_storageType,
    restoreDBInstanceFromDBSnapshot_tags,
    restoreDBInstanceFromDBSnapshot_tdeCredentialArn,
    restoreDBInstanceFromDBSnapshot_tdeCredentialPassword,
    restoreDBInstanceFromDBSnapshot_useDefaultProcessorFeatures,
    restoreDBInstanceFromDBSnapshot_vpcSecurityGroupIds,
    restoreDBInstanceFromDBSnapshot_dbInstanceIdentifier,

    -- * Destructuring the Response
    RestoreDBInstanceFromDBSnapshotResponse (..),
    newRestoreDBInstanceFromDBSnapshotResponse,

    -- * Response Lenses
    restoreDBInstanceFromDBSnapshotResponse_dbInstance,
    restoreDBInstanceFromDBSnapshotResponse_httpStatus,
  )
where

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

-- |
--
-- /See:/ 'newRestoreDBInstanceFromDBSnapshot' smart constructor.
data RestoreDBInstanceFromDBSnapshot = RestoreDBInstanceFromDBSnapshot'
  { -- | A value that indicates whether minor version upgrades are applied
    -- automatically to the DB instance during the maintenance window.
    --
    -- If you restore an RDS Custom DB instance, you must disable this
    -- parameter.
    RestoreDBInstanceFromDBSnapshot -> Maybe Bool
autoMinorVersionUpgrade :: Prelude.Maybe Prelude.Bool,
    -- | The Availability Zone (AZ) where the DB instance will be created.
    --
    -- Default: A random, system-chosen Availability Zone.
    --
    -- Constraint: You can\'t specify the @AvailabilityZone@ parameter if the
    -- DB instance is a Multi-AZ deployment.
    --
    -- Example: @us-east-1a@
    RestoreDBInstanceFromDBSnapshot -> Maybe Text
availabilityZone :: Prelude.Maybe Prelude.Text,
    -- | Specifies where automated backups and manual snapshots are stored for
    -- the restored DB instance.
    --
    -- Possible values are @outposts@ (Amazon Web Services Outposts) and
    -- @region@ (Amazon Web Services Region). The default is @region@.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html Working with Amazon RDS on Amazon Web Services Outposts>
    -- in the /Amazon RDS User Guide/.
    RestoreDBInstanceFromDBSnapshot -> Maybe Text
backupTarget :: Prelude.Maybe Prelude.Text,
    -- | A value that indicates whether to copy all tags from the restored DB
    -- instance to snapshots of the DB instance.
    --
    -- In most cases, tags aren\'t copied by default. However, when you restore
    -- a DB instance from a DB snapshot, RDS checks whether you specify new
    -- tags. If yes, the new tags are added to the restored DB instance. If
    -- there are no new tags, RDS looks for the tags from the source DB
    -- instance for the DB snapshot, and then adds those tags to the restored
    -- DB instance.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html#USER_Tagging.CopyTags Copying tags to DB instance snapshots>
    -- in the /Amazon RDS User Guide/.
    RestoreDBInstanceFromDBSnapshot -> Maybe Bool
copyTagsToSnapshot :: Prelude.Maybe Prelude.Bool,
    -- | The instance profile associated with the underlying Amazon EC2 instance
    -- of an RDS Custom DB instance. The instance profile must meet the
    -- following requirements:
    --
    -- -   The profile must exist in your account.
    --
    -- -   The profile must have an IAM role that Amazon EC2 has permissions to
    --     assume.
    --
    -- -   The instance profile name and the associated IAM role name must
    --     start with the prefix @AWSRDSCustom@.
    --
    -- For the list of permissions required for the IAM role, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc Configure IAM and your VPC>
    -- in the /Amazon RDS User Guide/.
    --
    -- This setting is required for RDS Custom.
    RestoreDBInstanceFromDBSnapshot -> Maybe Text
customIamInstanceProfile :: Prelude.Maybe Prelude.Text,
    -- | The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to
    -- restore from.
    --
    -- For more information on Multi-AZ DB clusters, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html Multi-AZ deployments with two readable standby DB instances>
    -- in the /Amazon RDS User Guide/.
    --
    -- Constraints:
    --
    -- -   Must match the identifier of an existing Multi-AZ DB cluster
    --     snapshot.
    --
    -- -   Can\'t be specified when @DBSnapshotIdentifier@ is specified.
    --
    -- -   Must be specified when @DBSnapshotIdentifier@ isn\'t specified.
    --
    -- -   If you are restoring from a shared manual Multi-AZ DB cluster
    --     snapshot, the @DBClusterSnapshotIdentifier@ must be the ARN of the
    --     shared snapshot.
    --
    -- -   Can\'t be the identifier of an Aurora DB cluster snapshot.
    --
    -- -   Can\'t be the identifier of an RDS for PostgreSQL Multi-AZ DB
    --     cluster snapshot.
    RestoreDBInstanceFromDBSnapshot -> Maybe Text
dbClusterSnapshotIdentifier :: Prelude.Maybe Prelude.Text,
    -- | The compute and memory capacity of the Amazon RDS DB instance, for
    -- example db.m4.large. Not all DB instance classes are available in all
    -- Amazon Web Services Regions, or for all database engines. For the full
    -- list of DB instance classes, and availability for your engine, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html DB Instance Class>
    -- in the /Amazon RDS User Guide./
    --
    -- Default: The same DBInstanceClass as the original DB instance.
    RestoreDBInstanceFromDBSnapshot -> Maybe Text
dbInstanceClass :: Prelude.Maybe Prelude.Text,
    -- | The database name for the restored DB instance.
    --
    -- This parameter doesn\'t apply to the MySQL, PostgreSQL, or MariaDB
    -- engines. It also doesn\'t apply to RDS Custom DB instances.
    RestoreDBInstanceFromDBSnapshot -> Maybe Text
dbName :: Prelude.Maybe Prelude.Text,
    -- | The name of the DB parameter group to associate with this DB instance.
    --
    -- If you don\'t specify a value for @DBParameterGroupName@, then RDS uses
    -- the default @DBParameterGroup@ for the specified DB engine.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- Constraints:
    --
    -- -   If supplied, must match the name of an existing DBParameterGroup.
    --
    -- -   Must be 1 to 255 letters, numbers, or hyphens.
    --
    -- -   First character must be a letter.
    --
    -- -   Can\'t end with a hyphen or contain two consecutive hyphens.
    RestoreDBInstanceFromDBSnapshot -> Maybe Text
dbParameterGroupName :: Prelude.Maybe Prelude.Text,
    -- | The identifier for the DB snapshot to restore from.
    --
    -- Constraints:
    --
    -- -   Must match the identifier of an existing DBSnapshot.
    --
    -- -   Can\'t be specified when @DBClusterSnapshotIdentifier@ is specified.
    --
    -- -   Must be specified when @DBClusterSnapshotIdentifier@ isn\'t
    --     specified.
    --
    -- -   If you are restoring from a shared manual DB snapshot, the
    --     @DBSnapshotIdentifier@ must be the ARN of the shared DB snapshot.
    RestoreDBInstanceFromDBSnapshot -> Maybe Text
dbSnapshotIdentifier :: Prelude.Maybe Prelude.Text,
    -- | The DB subnet group name to use for the new instance.
    --
    -- Constraints: If supplied, must match the name of an existing
    -- DBSubnetGroup.
    --
    -- Example: @mydbsubnetgroup@
    RestoreDBInstanceFromDBSnapshot -> 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 isn\'t enabled. For more
    -- information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html Deleting a DB Instance>.
    RestoreDBInstanceFromDBSnapshot -> Maybe Bool
deletionProtection :: Prelude.Maybe Prelude.Bool,
    -- | Specify the Active Directory directory ID to restore the DB instance in.
    -- The domain\/ must be created prior to this operation. Currently, you can
    -- create only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB
    -- instances in an Active Directory Domain.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html Kerberos Authentication>
    -- in the /Amazon RDS User Guide/.
    --
    -- This setting doesn\'t apply to RDS Custom.
    RestoreDBInstanceFromDBSnapshot -> 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.
    --
    -- This setting doesn\'t apply to RDS Custom.
    RestoreDBInstanceFromDBSnapshot -> Maybe Text
domainIAMRoleName :: Prelude.Maybe Prelude.Text,
    -- | The list of logs that the restored DB instance is to export to
    -- CloudWatch Logs. The values in the list depend on the DB engine being
    -- used. For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch Publishing Database Logs to Amazon CloudWatch Logs>
    -- in the /Amazon RDS User Guide/.
    --
    -- This setting doesn\'t apply to RDS Custom.
    RestoreDBInstanceFromDBSnapshot -> Maybe [Text]
enableCloudwatchLogsExports :: Prelude.Maybe [Prelude.Text],
    -- | A value that indicates whether to enable a customer-owned IP address
    -- (CoIP) for an RDS on Outposts DB instance.
    --
    -- A /CoIP/ provides local or external connectivity to resources in your
    -- Outpost subnets through your on-premises network. For some use cases, a
    -- CoIP can provide lower latency for connections to the DB instance from
    -- outside of its virtual private cloud (VPC) on your local network.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- For more information about RDS on Outposts, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html Working with Amazon RDS on Amazon Web Services Outposts>
    -- in the /Amazon RDS User Guide/.
    --
    -- For more information about CoIPs, see
    -- <https://docs.aws.amazon.com/outposts/latest/userguide/routing.html#ip-addressing Customer-owned IP addresses>
    -- in the /Amazon Web Services Outposts User Guide/.
    RestoreDBInstanceFromDBSnapshot -> Maybe Bool
enableCustomerOwnedIp :: Prelude.Maybe Prelude.Bool,
    -- | A value that indicates whether to enable mapping of Amazon Web Services
    -- Identity and Access Management (IAM) accounts to database accounts. By
    -- default, mapping is disabled.
    --
    -- For more information about IAM database authentication, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html IAM Database Authentication for MySQL and PostgreSQL>
    -- in the /Amazon RDS User Guide./
    --
    -- This setting doesn\'t apply to RDS Custom.
    RestoreDBInstanceFromDBSnapshot -> Maybe Bool
enableIAMDatabaseAuthentication :: Prelude.Maybe Prelude.Bool,
    -- | The database engine to use for the new instance.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- Default: The same as source
    --
    -- Constraint: Must be compatible with the engine of the source. For
    -- example, you can restore a MariaDB 10.1 DB instance from a MySQL 5.6
    -- snapshot.
    --
    -- Valid Values:
    --
    -- -   @mariadb@
    --
    -- -   @mysql@
    --
    -- -   @oracle-ee@
    --
    -- -   @oracle-ee-cdb@
    --
    -- -   @oracle-se2@
    --
    -- -   @oracle-se2-cdb@
    --
    -- -   @postgres@
    --
    -- -   @sqlserver-ee@
    --
    -- -   @sqlserver-se@
    --
    -- -   @sqlserver-ex@
    --
    -- -   @sqlserver-web@
    RestoreDBInstanceFromDBSnapshot -> Maybe Text
engine :: Prelude.Maybe Prelude.Text,
    -- | Specifies the amount of provisioned IOPS for the DB instance, expressed
    -- in I\/O operations per second. If this parameter isn\'t specified, the
    -- IOPS value is taken from the backup. If this parameter is set to 0, the
    -- new instance is converted to a non-PIOPS instance. The conversion takes
    -- additional time, though your DB instance is available for connections
    -- before the conversion starts.
    --
    -- The provisioned IOPS value must follow the requirements for your
    -- database engine. For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS Amazon RDS Provisioned IOPS storage>
    -- in the /Amazon RDS User Guide./
    --
    -- Constraints: Must be an integer greater than 1000.
    RestoreDBInstanceFromDBSnapshot -> Maybe Int
iops :: Prelude.Maybe Prelude.Int,
    -- | License model information for the restored DB instance.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- Default: Same as source.
    --
    -- Valid values: @license-included@ | @bring-your-own-license@ |
    -- @general-public-license@
    RestoreDBInstanceFromDBSnapshot -> Maybe Text
licenseModel :: Prelude.Maybe Prelude.Text,
    -- | A value that indicates whether the DB instance is a Multi-AZ deployment.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- Constraint: You can\'t specify the @AvailabilityZone@ parameter if the
    -- DB instance is a Multi-AZ deployment.
    RestoreDBInstanceFromDBSnapshot -> Maybe Bool
multiAZ :: Prelude.Maybe Prelude.Bool,
    -- | The network type of the DB instance.
    --
    -- Valid values:
    --
    -- -   @IPV4@
    --
    -- -   @DUAL@
    --
    -- The network type is determined by the @DBSubnetGroup@ specified for the
    -- DB instance. A @DBSubnetGroup@ can support only the IPv4 protocol or the
    -- IPv4 and the IPv6 protocols (@DUAL@).
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html Working with a DB instance in a VPC>
    -- in the /Amazon RDS User Guide./
    RestoreDBInstanceFromDBSnapshot -> Maybe Text
networkType :: Prelude.Maybe Prelude.Text,
    -- | The name of the option group to be used for the restored DB instance.
    --
    -- Permanent options, such as the TDE option for Oracle Advanced Security
    -- TDE, can\'t be removed from an option group, and that option group
    -- can\'t be removed from a DB instance after it is associated with a DB
    -- instance.
    --
    -- This setting doesn\'t apply to RDS Custom.
    RestoreDBInstanceFromDBSnapshot -> Maybe Text
optionGroupName :: Prelude.Maybe Prelude.Text,
    -- | The port number on which the database accepts connections.
    --
    -- Default: The same port as the original DB instance
    --
    -- Constraints: Value must be @1150-65535@
    RestoreDBInstanceFromDBSnapshot -> Maybe Int
port :: Prelude.Maybe Prelude.Int,
    -- | The number of CPU cores and the number of threads per core for the DB
    -- instance class of the DB instance.
    --
    -- This setting doesn\'t apply to RDS Custom.
    RestoreDBInstanceFromDBSnapshot -> Maybe [ProcessorFeature]
processorFeatures :: Prelude.Maybe [ProcessorFeature],
    -- | A value that indicates whether the DB instance is publicly accessible.
    --
    -- When the DB instance is publicly accessible, its Domain Name System
    -- (DNS) endpoint resolves to the private IP address from within the DB
    -- instance\'s virtual private cloud (VPC). It resolves to the public IP
    -- address from outside of the DB instance\'s VPC. Access to the DB
    -- instance is ultimately controlled by the security group it uses. That
    -- public access is not permitted if the security group assigned to the DB
    -- instance doesn\'t permit it.
    --
    -- When the DB instance isn\'t publicly accessible, it is an internal DB
    -- instance with a DNS name that resolves to a private IP address.
    --
    -- For more information, see CreateDBInstance.
    RestoreDBInstanceFromDBSnapshot -> Maybe Bool
publiclyAccessible :: Prelude.Maybe Prelude.Bool,
    -- | Specifies the storage throughput value for the DB instance.
    --
    -- This setting doesn\'t apply to RDS Custom or Amazon Aurora.
    RestoreDBInstanceFromDBSnapshot -> Maybe Int
storageThroughput :: Prelude.Maybe Prelude.Int,
    -- | Specifies the storage type to be associated with the DB instance.
    --
    -- Valid values: @gp2 | gp3 | io1 | standard@
    --
    -- If you specify @io1@ or @gp3@, you must also include a value for the
    -- @Iops@ parameter.
    --
    -- Default: @io1@ if the @Iops@ parameter is specified, otherwise @gp2@
    RestoreDBInstanceFromDBSnapshot -> Maybe Text
storageType :: Prelude.Maybe Prelude.Text,
    RestoreDBInstanceFromDBSnapshot -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The ARN from the key store with which to associate the instance for TDE
    -- encryption.
    --
    -- This setting doesn\'t apply to RDS Custom.
    RestoreDBInstanceFromDBSnapshot -> Maybe Text
tdeCredentialArn :: Prelude.Maybe Prelude.Text,
    -- | The password for the given ARN from the key store in order to access the
    -- device.
    --
    -- This setting doesn\'t apply to RDS Custom.
    RestoreDBInstanceFromDBSnapshot -> Maybe Text
tdeCredentialPassword :: Prelude.Maybe Prelude.Text,
    -- | A value that indicates whether the DB instance class of the DB instance
    -- uses its default processor features.
    --
    -- This setting doesn\'t apply to RDS Custom.
    RestoreDBInstanceFromDBSnapshot -> Maybe Bool
useDefaultProcessorFeatures :: Prelude.Maybe Prelude.Bool,
    -- | A list of EC2 VPC security groups to associate with this DB instance.
    --
    -- Default: The default EC2 VPC security group for the DB subnet group\'s
    -- VPC.
    RestoreDBInstanceFromDBSnapshot -> Maybe [Text]
vpcSecurityGroupIds :: Prelude.Maybe [Prelude.Text],
    -- | Name of the DB instance to create from the DB snapshot. This parameter
    -- isn\'t case-sensitive.
    --
    -- Constraints:
    --
    -- -   Must contain from 1 to 63 numbers, letters, or hyphens
    --
    -- -   First character must be a letter
    --
    -- -   Can\'t end with a hyphen or contain two consecutive hyphens
    --
    -- Example: @my-snapshot-id@
    RestoreDBInstanceFromDBSnapshot -> Text
dbInstanceIdentifier :: Prelude.Text
  }
  deriving (RestoreDBInstanceFromDBSnapshot
-> RestoreDBInstanceFromDBSnapshot -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RestoreDBInstanceFromDBSnapshot
-> RestoreDBInstanceFromDBSnapshot -> Bool
$c/= :: RestoreDBInstanceFromDBSnapshot
-> RestoreDBInstanceFromDBSnapshot -> Bool
== :: RestoreDBInstanceFromDBSnapshot
-> RestoreDBInstanceFromDBSnapshot -> Bool
$c== :: RestoreDBInstanceFromDBSnapshot
-> RestoreDBInstanceFromDBSnapshot -> Bool
Prelude.Eq, ReadPrec [RestoreDBInstanceFromDBSnapshot]
ReadPrec RestoreDBInstanceFromDBSnapshot
Int -> ReadS RestoreDBInstanceFromDBSnapshot
ReadS [RestoreDBInstanceFromDBSnapshot]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [RestoreDBInstanceFromDBSnapshot]
$creadListPrec :: ReadPrec [RestoreDBInstanceFromDBSnapshot]
readPrec :: ReadPrec RestoreDBInstanceFromDBSnapshot
$creadPrec :: ReadPrec RestoreDBInstanceFromDBSnapshot
readList :: ReadS [RestoreDBInstanceFromDBSnapshot]
$creadList :: ReadS [RestoreDBInstanceFromDBSnapshot]
readsPrec :: Int -> ReadS RestoreDBInstanceFromDBSnapshot
$creadsPrec :: Int -> ReadS RestoreDBInstanceFromDBSnapshot
Prelude.Read, Int -> RestoreDBInstanceFromDBSnapshot -> ShowS
[RestoreDBInstanceFromDBSnapshot] -> ShowS
RestoreDBInstanceFromDBSnapshot -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [RestoreDBInstanceFromDBSnapshot] -> ShowS
$cshowList :: [RestoreDBInstanceFromDBSnapshot] -> ShowS
show :: RestoreDBInstanceFromDBSnapshot -> String
$cshow :: RestoreDBInstanceFromDBSnapshot -> String
showsPrec :: Int -> RestoreDBInstanceFromDBSnapshot -> ShowS
$cshowsPrec :: Int -> RestoreDBInstanceFromDBSnapshot -> ShowS
Prelude.Show, forall x.
Rep RestoreDBInstanceFromDBSnapshot x
-> RestoreDBInstanceFromDBSnapshot
forall x.
RestoreDBInstanceFromDBSnapshot
-> Rep RestoreDBInstanceFromDBSnapshot x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep RestoreDBInstanceFromDBSnapshot x
-> RestoreDBInstanceFromDBSnapshot
$cfrom :: forall x.
RestoreDBInstanceFromDBSnapshot
-> Rep RestoreDBInstanceFromDBSnapshot x
Prelude.Generic)

-- |
-- Create a value of 'RestoreDBInstanceFromDBSnapshot' 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:
--
-- 'autoMinorVersionUpgrade', 'restoreDBInstanceFromDBSnapshot_autoMinorVersionUpgrade' - A value that indicates whether minor version upgrades are applied
-- automatically to the DB instance during the maintenance window.
--
-- If you restore an RDS Custom DB instance, you must disable this
-- parameter.
--
-- 'availabilityZone', 'restoreDBInstanceFromDBSnapshot_availabilityZone' - The Availability Zone (AZ) where the DB instance will be created.
--
-- Default: A random, system-chosen Availability Zone.
--
-- Constraint: You can\'t specify the @AvailabilityZone@ parameter if the
-- DB instance is a Multi-AZ deployment.
--
-- Example: @us-east-1a@
--
-- 'backupTarget', 'restoreDBInstanceFromDBSnapshot_backupTarget' - Specifies where automated backups and manual snapshots are stored for
-- the restored DB instance.
--
-- Possible values are @outposts@ (Amazon Web Services Outposts) and
-- @region@ (Amazon Web Services Region). The default is @region@.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html Working with Amazon RDS on Amazon Web Services Outposts>
-- in the /Amazon RDS User Guide/.
--
-- 'copyTagsToSnapshot', 'restoreDBInstanceFromDBSnapshot_copyTagsToSnapshot' - A value that indicates whether to copy all tags from the restored DB
-- instance to snapshots of the DB instance.
--
-- In most cases, tags aren\'t copied by default. However, when you restore
-- a DB instance from a DB snapshot, RDS checks whether you specify new
-- tags. If yes, the new tags are added to the restored DB instance. If
-- there are no new tags, RDS looks for the tags from the source DB
-- instance for the DB snapshot, and then adds those tags to the restored
-- DB instance.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html#USER_Tagging.CopyTags Copying tags to DB instance snapshots>
-- in the /Amazon RDS User Guide/.
--
-- 'customIamInstanceProfile', 'restoreDBInstanceFromDBSnapshot_customIamInstanceProfile' - The instance profile associated with the underlying Amazon EC2 instance
-- of an RDS Custom DB instance. The instance profile must meet the
-- following requirements:
--
-- -   The profile must exist in your account.
--
-- -   The profile must have an IAM role that Amazon EC2 has permissions to
--     assume.
--
-- -   The instance profile name and the associated IAM role name must
--     start with the prefix @AWSRDSCustom@.
--
-- For the list of permissions required for the IAM role, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc Configure IAM and your VPC>
-- in the /Amazon RDS User Guide/.
--
-- This setting is required for RDS Custom.
--
-- 'dbClusterSnapshotIdentifier', 'restoreDBInstanceFromDBSnapshot_dbClusterSnapshotIdentifier' - The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to
-- restore from.
--
-- For more information on Multi-AZ DB clusters, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html Multi-AZ deployments with two readable standby DB instances>
-- in the /Amazon RDS User Guide/.
--
-- Constraints:
--
-- -   Must match the identifier of an existing Multi-AZ DB cluster
--     snapshot.
--
-- -   Can\'t be specified when @DBSnapshotIdentifier@ is specified.
--
-- -   Must be specified when @DBSnapshotIdentifier@ isn\'t specified.
--
-- -   If you are restoring from a shared manual Multi-AZ DB cluster
--     snapshot, the @DBClusterSnapshotIdentifier@ must be the ARN of the
--     shared snapshot.
--
-- -   Can\'t be the identifier of an Aurora DB cluster snapshot.
--
-- -   Can\'t be the identifier of an RDS for PostgreSQL Multi-AZ DB
--     cluster snapshot.
--
-- 'dbInstanceClass', 'restoreDBInstanceFromDBSnapshot_dbInstanceClass' - The compute and memory capacity of the Amazon RDS DB instance, for
-- example db.m4.large. Not all DB instance classes are available in all
-- Amazon Web Services Regions, or for all database engines. For the full
-- list of DB instance classes, and availability for your engine, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html DB Instance Class>
-- in the /Amazon RDS User Guide./
--
-- Default: The same DBInstanceClass as the original DB instance.
--
-- 'dbName', 'restoreDBInstanceFromDBSnapshot_dbName' - The database name for the restored DB instance.
--
-- This parameter doesn\'t apply to the MySQL, PostgreSQL, or MariaDB
-- engines. It also doesn\'t apply to RDS Custom DB instances.
--
-- 'dbParameterGroupName', 'restoreDBInstanceFromDBSnapshot_dbParameterGroupName' - The name of the DB parameter group to associate with this DB instance.
--
-- If you don\'t specify a value for @DBParameterGroupName@, then RDS uses
-- the default @DBParameterGroup@ for the specified DB engine.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Constraints:
--
-- -   If supplied, must match the name of an existing DBParameterGroup.
--
-- -   Must be 1 to 255 letters, numbers, or hyphens.
--
-- -   First character must be a letter.
--
-- -   Can\'t end with a hyphen or contain two consecutive hyphens.
--
-- 'dbSnapshotIdentifier', 'restoreDBInstanceFromDBSnapshot_dbSnapshotIdentifier' - The identifier for the DB snapshot to restore from.
--
-- Constraints:
--
-- -   Must match the identifier of an existing DBSnapshot.
--
-- -   Can\'t be specified when @DBClusterSnapshotIdentifier@ is specified.
--
-- -   Must be specified when @DBClusterSnapshotIdentifier@ isn\'t
--     specified.
--
-- -   If you are restoring from a shared manual DB snapshot, the
--     @DBSnapshotIdentifier@ must be the ARN of the shared DB snapshot.
--
-- 'dbSubnetGroupName', 'restoreDBInstanceFromDBSnapshot_dbSubnetGroupName' - The DB subnet group name to use for the new instance.
--
-- Constraints: If supplied, must match the name of an existing
-- DBSubnetGroup.
--
-- Example: @mydbsubnetgroup@
--
-- 'deletionProtection', 'restoreDBInstanceFromDBSnapshot_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 isn\'t enabled. For more
-- information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html Deleting a DB Instance>.
--
-- 'domain', 'restoreDBInstanceFromDBSnapshot_domain' - Specify the Active Directory directory ID to restore the DB instance in.
-- The domain\/ must be created prior to this operation. Currently, you can
-- create only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB
-- instances in an Active Directory Domain.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html Kerberos Authentication>
-- in the /Amazon RDS User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'domainIAMRoleName', 'restoreDBInstanceFromDBSnapshot_domainIAMRoleName' - Specify the name of the IAM role to be used when making API calls to the
-- Directory Service.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'enableCloudwatchLogsExports', 'restoreDBInstanceFromDBSnapshot_enableCloudwatchLogsExports' - The list of logs that the restored DB instance is to export to
-- CloudWatch Logs. The values in the list depend on the DB engine being
-- used. For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch Publishing Database Logs to Amazon CloudWatch Logs>
-- in the /Amazon RDS User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'enableCustomerOwnedIp', 'restoreDBInstanceFromDBSnapshot_enableCustomerOwnedIp' - A value that indicates whether to enable a customer-owned IP address
-- (CoIP) for an RDS on Outposts DB instance.
--
-- A /CoIP/ provides local or external connectivity to resources in your
-- Outpost subnets through your on-premises network. For some use cases, a
-- CoIP can provide lower latency for connections to the DB instance from
-- outside of its virtual private cloud (VPC) on your local network.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- For more information about RDS on Outposts, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html Working with Amazon RDS on Amazon Web Services Outposts>
-- in the /Amazon RDS User Guide/.
--
-- For more information about CoIPs, see
-- <https://docs.aws.amazon.com/outposts/latest/userguide/routing.html#ip-addressing Customer-owned IP addresses>
-- in the /Amazon Web Services Outposts User Guide/.
--
-- 'enableIAMDatabaseAuthentication', 'restoreDBInstanceFromDBSnapshot_enableIAMDatabaseAuthentication' - A value that indicates whether to enable mapping of Amazon Web Services
-- Identity and Access Management (IAM) accounts to database accounts. By
-- default, mapping is disabled.
--
-- For more information about IAM database authentication, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html IAM Database Authentication for MySQL and PostgreSQL>
-- in the /Amazon RDS User Guide./
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'engine', 'restoreDBInstanceFromDBSnapshot_engine' - The database engine to use for the new instance.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Default: The same as source
--
-- Constraint: Must be compatible with the engine of the source. For
-- example, you can restore a MariaDB 10.1 DB instance from a MySQL 5.6
-- snapshot.
--
-- Valid Values:
--
-- -   @mariadb@
--
-- -   @mysql@
--
-- -   @oracle-ee@
--
-- -   @oracle-ee-cdb@
--
-- -   @oracle-se2@
--
-- -   @oracle-se2-cdb@
--
-- -   @postgres@
--
-- -   @sqlserver-ee@
--
-- -   @sqlserver-se@
--
-- -   @sqlserver-ex@
--
-- -   @sqlserver-web@
--
-- 'iops', 'restoreDBInstanceFromDBSnapshot_iops' - Specifies the amount of provisioned IOPS for the DB instance, expressed
-- in I\/O operations per second. If this parameter isn\'t specified, the
-- IOPS value is taken from the backup. If this parameter is set to 0, the
-- new instance is converted to a non-PIOPS instance. The conversion takes
-- additional time, though your DB instance is available for connections
-- before the conversion starts.
--
-- The provisioned IOPS value must follow the requirements for your
-- database engine. For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS Amazon RDS Provisioned IOPS storage>
-- in the /Amazon RDS User Guide./
--
-- Constraints: Must be an integer greater than 1000.
--
-- 'licenseModel', 'restoreDBInstanceFromDBSnapshot_licenseModel' - License model information for the restored DB instance.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Default: Same as source.
--
-- Valid values: @license-included@ | @bring-your-own-license@ |
-- @general-public-license@
--
-- 'multiAZ', 'restoreDBInstanceFromDBSnapshot_multiAZ' - A value that indicates whether the DB instance is a Multi-AZ deployment.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Constraint: You can\'t specify the @AvailabilityZone@ parameter if the
-- DB instance is a Multi-AZ deployment.
--
-- 'networkType', 'restoreDBInstanceFromDBSnapshot_networkType' - The network type of the DB instance.
--
-- Valid values:
--
-- -   @IPV4@
--
-- -   @DUAL@
--
-- The network type is determined by the @DBSubnetGroup@ specified for the
-- DB instance. A @DBSubnetGroup@ can support only the IPv4 protocol or the
-- IPv4 and the IPv6 protocols (@DUAL@).
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html Working with a DB instance in a VPC>
-- in the /Amazon RDS User Guide./
--
-- 'optionGroupName', 'restoreDBInstanceFromDBSnapshot_optionGroupName' - The name of the option group to be used for the restored DB instance.
--
-- Permanent options, such as the TDE option for Oracle Advanced Security
-- TDE, can\'t be removed from an option group, and that option group
-- can\'t be removed from a DB instance after it is associated with a DB
-- instance.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'port', 'restoreDBInstanceFromDBSnapshot_port' - The port number on which the database accepts connections.
--
-- Default: The same port as the original DB instance
--
-- Constraints: Value must be @1150-65535@
--
-- 'processorFeatures', 'restoreDBInstanceFromDBSnapshot_processorFeatures' - The number of CPU cores and the number of threads per core for the DB
-- instance class of the DB instance.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'publiclyAccessible', 'restoreDBInstanceFromDBSnapshot_publiclyAccessible' - A value that indicates whether the DB instance is publicly accessible.
--
-- When the DB instance is publicly accessible, its Domain Name System
-- (DNS) endpoint resolves to the private IP address from within the DB
-- instance\'s virtual private cloud (VPC). It resolves to the public IP
-- address from outside of the DB instance\'s VPC. Access to the DB
-- instance is ultimately controlled by the security group it uses. That
-- public access is not permitted if the security group assigned to the DB
-- instance doesn\'t permit it.
--
-- When the DB instance isn\'t publicly accessible, it is an internal DB
-- instance with a DNS name that resolves to a private IP address.
--
-- For more information, see CreateDBInstance.
--
-- 'storageThroughput', 'restoreDBInstanceFromDBSnapshot_storageThroughput' - Specifies the storage throughput value for the DB instance.
--
-- This setting doesn\'t apply to RDS Custom or Amazon Aurora.
--
-- 'storageType', 'restoreDBInstanceFromDBSnapshot_storageType' - Specifies the storage type to be associated with the DB instance.
--
-- Valid values: @gp2 | gp3 | io1 | standard@
--
-- If you specify @io1@ or @gp3@, you must also include a value for the
-- @Iops@ parameter.
--
-- Default: @io1@ if the @Iops@ parameter is specified, otherwise @gp2@
--
-- 'tags', 'restoreDBInstanceFromDBSnapshot_tags' - Undocumented member.
--
-- 'tdeCredentialArn', 'restoreDBInstanceFromDBSnapshot_tdeCredentialArn' - The ARN from the key store with which to associate the instance for TDE
-- encryption.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'tdeCredentialPassword', 'restoreDBInstanceFromDBSnapshot_tdeCredentialPassword' - The password for the given ARN from the key store in order to access the
-- device.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'useDefaultProcessorFeatures', 'restoreDBInstanceFromDBSnapshot_useDefaultProcessorFeatures' - A value that indicates whether the DB instance class of the DB instance
-- uses its default processor features.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'vpcSecurityGroupIds', 'restoreDBInstanceFromDBSnapshot_vpcSecurityGroupIds' - A list of EC2 VPC security groups to associate with this DB instance.
--
-- Default: The default EC2 VPC security group for the DB subnet group\'s
-- VPC.
--
-- 'dbInstanceIdentifier', 'restoreDBInstanceFromDBSnapshot_dbInstanceIdentifier' - Name of the DB instance to create from the DB snapshot. This parameter
-- isn\'t case-sensitive.
--
-- Constraints:
--
-- -   Must contain from 1 to 63 numbers, letters, or hyphens
--
-- -   First character must be a letter
--
-- -   Can\'t end with a hyphen or contain two consecutive hyphens
--
-- Example: @my-snapshot-id@
newRestoreDBInstanceFromDBSnapshot ::
  -- | 'dbInstanceIdentifier'
  Prelude.Text ->
  RestoreDBInstanceFromDBSnapshot
newRestoreDBInstanceFromDBSnapshot :: Text -> RestoreDBInstanceFromDBSnapshot
newRestoreDBInstanceFromDBSnapshot
  Text
pDBInstanceIdentifier_ =
    RestoreDBInstanceFromDBSnapshot'
      { $sel:autoMinorVersionUpgrade:RestoreDBInstanceFromDBSnapshot' :: Maybe Bool
autoMinorVersionUpgrade =
          forall a. Maybe a
Prelude.Nothing,
        $sel:availabilityZone:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
availabilityZone = forall a. Maybe a
Prelude.Nothing,
        $sel:backupTarget:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
backupTarget = forall a. Maybe a
Prelude.Nothing,
        $sel:copyTagsToSnapshot:RestoreDBInstanceFromDBSnapshot' :: Maybe Bool
copyTagsToSnapshot = forall a. Maybe a
Prelude.Nothing,
        $sel:customIamInstanceProfile:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
customIamInstanceProfile = forall a. Maybe a
Prelude.Nothing,
        $sel:dbClusterSnapshotIdentifier:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
dbClusterSnapshotIdentifier =
          forall a. Maybe a
Prelude.Nothing,
        $sel:dbInstanceClass:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
dbInstanceClass = forall a. Maybe a
Prelude.Nothing,
        $sel:dbName:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
dbName = forall a. Maybe a
Prelude.Nothing,
        $sel:dbParameterGroupName:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
dbParameterGroupName = forall a. Maybe a
Prelude.Nothing,
        $sel:dbSnapshotIdentifier:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
dbSnapshotIdentifier = forall a. Maybe a
Prelude.Nothing,
        $sel:dbSubnetGroupName:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
dbSubnetGroupName = forall a. Maybe a
Prelude.Nothing,
        $sel:deletionProtection:RestoreDBInstanceFromDBSnapshot' :: Maybe Bool
deletionProtection = forall a. Maybe a
Prelude.Nothing,
        $sel:domain:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
domain = forall a. Maybe a
Prelude.Nothing,
        $sel:domainIAMRoleName:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
domainIAMRoleName = forall a. Maybe a
Prelude.Nothing,
        $sel:enableCloudwatchLogsExports:RestoreDBInstanceFromDBSnapshot' :: Maybe [Text]
enableCloudwatchLogsExports =
          forall a. Maybe a
Prelude.Nothing,
        $sel:enableCustomerOwnedIp:RestoreDBInstanceFromDBSnapshot' :: Maybe Bool
enableCustomerOwnedIp = forall a. Maybe a
Prelude.Nothing,
        $sel:enableIAMDatabaseAuthentication:RestoreDBInstanceFromDBSnapshot' :: Maybe Bool
enableIAMDatabaseAuthentication =
          forall a. Maybe a
Prelude.Nothing,
        $sel:engine:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
engine = forall a. Maybe a
Prelude.Nothing,
        $sel:iops:RestoreDBInstanceFromDBSnapshot' :: Maybe Int
iops = forall a. Maybe a
Prelude.Nothing,
        $sel:licenseModel:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
licenseModel = forall a. Maybe a
Prelude.Nothing,
        $sel:multiAZ:RestoreDBInstanceFromDBSnapshot' :: Maybe Bool
multiAZ = forall a. Maybe a
Prelude.Nothing,
        $sel:networkType:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
networkType = forall a. Maybe a
Prelude.Nothing,
        $sel:optionGroupName:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
optionGroupName = forall a. Maybe a
Prelude.Nothing,
        $sel:port:RestoreDBInstanceFromDBSnapshot' :: Maybe Int
port = forall a. Maybe a
Prelude.Nothing,
        $sel:processorFeatures:RestoreDBInstanceFromDBSnapshot' :: Maybe [ProcessorFeature]
processorFeatures = forall a. Maybe a
Prelude.Nothing,
        $sel:publiclyAccessible:RestoreDBInstanceFromDBSnapshot' :: Maybe Bool
publiclyAccessible = forall a. Maybe a
Prelude.Nothing,
        $sel:storageThroughput:RestoreDBInstanceFromDBSnapshot' :: Maybe Int
storageThroughput = forall a. Maybe a
Prelude.Nothing,
        $sel:storageType:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
storageType = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:RestoreDBInstanceFromDBSnapshot' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:tdeCredentialArn:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
tdeCredentialArn = forall a. Maybe a
Prelude.Nothing,
        $sel:tdeCredentialPassword:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
tdeCredentialPassword = forall a. Maybe a
Prelude.Nothing,
        $sel:useDefaultProcessorFeatures:RestoreDBInstanceFromDBSnapshot' :: Maybe Bool
useDefaultProcessorFeatures =
          forall a. Maybe a
Prelude.Nothing,
        $sel:vpcSecurityGroupIds:RestoreDBInstanceFromDBSnapshot' :: Maybe [Text]
vpcSecurityGroupIds = forall a. Maybe a
Prelude.Nothing,
        $sel:dbInstanceIdentifier:RestoreDBInstanceFromDBSnapshot' :: Text
dbInstanceIdentifier =
          Text
pDBInstanceIdentifier_
      }

-- | A value that indicates whether minor version upgrades are applied
-- automatically to the DB instance during the maintenance window.
--
-- If you restore an RDS Custom DB instance, you must disable this
-- parameter.
restoreDBInstanceFromDBSnapshot_autoMinorVersionUpgrade :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Bool)
restoreDBInstanceFromDBSnapshot_autoMinorVersionUpgrade :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Bool)
restoreDBInstanceFromDBSnapshot_autoMinorVersionUpgrade = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Bool
autoMinorVersionUpgrade :: Maybe Bool
$sel:autoMinorVersionUpgrade:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
autoMinorVersionUpgrade} -> Maybe Bool
autoMinorVersionUpgrade) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Bool
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:autoMinorVersionUpgrade:RestoreDBInstanceFromDBSnapshot' :: Maybe Bool
autoMinorVersionUpgrade = Maybe Bool
a} :: RestoreDBInstanceFromDBSnapshot)

-- | The Availability Zone (AZ) where the DB instance will be created.
--
-- Default: A random, system-chosen Availability Zone.
--
-- Constraint: You can\'t specify the @AvailabilityZone@ parameter if the
-- DB instance is a Multi-AZ deployment.
--
-- Example: @us-east-1a@
restoreDBInstanceFromDBSnapshot_availabilityZone :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Text)
restoreDBInstanceFromDBSnapshot_availabilityZone :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Text)
restoreDBInstanceFromDBSnapshot_availabilityZone = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Text
availabilityZone :: Maybe Text
$sel:availabilityZone:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
availabilityZone} -> Maybe Text
availabilityZone) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Text
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:availabilityZone:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
availabilityZone = Maybe Text
a} :: RestoreDBInstanceFromDBSnapshot)

-- | Specifies where automated backups and manual snapshots are stored for
-- the restored DB instance.
--
-- Possible values are @outposts@ (Amazon Web Services Outposts) and
-- @region@ (Amazon Web Services Region). The default is @region@.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html Working with Amazon RDS on Amazon Web Services Outposts>
-- in the /Amazon RDS User Guide/.
restoreDBInstanceFromDBSnapshot_backupTarget :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Text)
restoreDBInstanceFromDBSnapshot_backupTarget :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Text)
restoreDBInstanceFromDBSnapshot_backupTarget = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Text
backupTarget :: Maybe Text
$sel:backupTarget:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
backupTarget} -> Maybe Text
backupTarget) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Text
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:backupTarget:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
backupTarget = Maybe Text
a} :: RestoreDBInstanceFromDBSnapshot)

-- | A value that indicates whether to copy all tags from the restored DB
-- instance to snapshots of the DB instance.
--
-- In most cases, tags aren\'t copied by default. However, when you restore
-- a DB instance from a DB snapshot, RDS checks whether you specify new
-- tags. If yes, the new tags are added to the restored DB instance. If
-- there are no new tags, RDS looks for the tags from the source DB
-- instance for the DB snapshot, and then adds those tags to the restored
-- DB instance.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html#USER_Tagging.CopyTags Copying tags to DB instance snapshots>
-- in the /Amazon RDS User Guide/.
restoreDBInstanceFromDBSnapshot_copyTagsToSnapshot :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Bool)
restoreDBInstanceFromDBSnapshot_copyTagsToSnapshot :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Bool)
restoreDBInstanceFromDBSnapshot_copyTagsToSnapshot = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Bool
copyTagsToSnapshot :: Maybe Bool
$sel:copyTagsToSnapshot:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
copyTagsToSnapshot} -> Maybe Bool
copyTagsToSnapshot) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Bool
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:copyTagsToSnapshot:RestoreDBInstanceFromDBSnapshot' :: Maybe Bool
copyTagsToSnapshot = Maybe Bool
a} :: RestoreDBInstanceFromDBSnapshot)

-- | The instance profile associated with the underlying Amazon EC2 instance
-- of an RDS Custom DB instance. The instance profile must meet the
-- following requirements:
--
-- -   The profile must exist in your account.
--
-- -   The profile must have an IAM role that Amazon EC2 has permissions to
--     assume.
--
-- -   The instance profile name and the associated IAM role name must
--     start with the prefix @AWSRDSCustom@.
--
-- For the list of permissions required for the IAM role, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc Configure IAM and your VPC>
-- in the /Amazon RDS User Guide/.
--
-- This setting is required for RDS Custom.
restoreDBInstanceFromDBSnapshot_customIamInstanceProfile :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Text)
restoreDBInstanceFromDBSnapshot_customIamInstanceProfile :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Text)
restoreDBInstanceFromDBSnapshot_customIamInstanceProfile = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Text
customIamInstanceProfile :: Maybe Text
$sel:customIamInstanceProfile:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
customIamInstanceProfile} -> Maybe Text
customIamInstanceProfile) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Text
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:customIamInstanceProfile:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
customIamInstanceProfile = Maybe Text
a} :: RestoreDBInstanceFromDBSnapshot)

-- | The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to
-- restore from.
--
-- For more information on Multi-AZ DB clusters, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html Multi-AZ deployments with two readable standby DB instances>
-- in the /Amazon RDS User Guide/.
--
-- Constraints:
--
-- -   Must match the identifier of an existing Multi-AZ DB cluster
--     snapshot.
--
-- -   Can\'t be specified when @DBSnapshotIdentifier@ is specified.
--
-- -   Must be specified when @DBSnapshotIdentifier@ isn\'t specified.
--
-- -   If you are restoring from a shared manual Multi-AZ DB cluster
--     snapshot, the @DBClusterSnapshotIdentifier@ must be the ARN of the
--     shared snapshot.
--
-- -   Can\'t be the identifier of an Aurora DB cluster snapshot.
--
-- -   Can\'t be the identifier of an RDS for PostgreSQL Multi-AZ DB
--     cluster snapshot.
restoreDBInstanceFromDBSnapshot_dbClusterSnapshotIdentifier :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Text)
restoreDBInstanceFromDBSnapshot_dbClusterSnapshotIdentifier :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Text)
restoreDBInstanceFromDBSnapshot_dbClusterSnapshotIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Text
dbClusterSnapshotIdentifier :: Maybe Text
$sel:dbClusterSnapshotIdentifier:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
dbClusterSnapshotIdentifier} -> Maybe Text
dbClusterSnapshotIdentifier) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Text
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:dbClusterSnapshotIdentifier:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
dbClusterSnapshotIdentifier = Maybe Text
a} :: RestoreDBInstanceFromDBSnapshot)

-- | The compute and memory capacity of the Amazon RDS DB instance, for
-- example db.m4.large. Not all DB instance classes are available in all
-- Amazon Web Services Regions, or for all database engines. For the full
-- list of DB instance classes, and availability for your engine, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html DB Instance Class>
-- in the /Amazon RDS User Guide./
--
-- Default: The same DBInstanceClass as the original DB instance.
restoreDBInstanceFromDBSnapshot_dbInstanceClass :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Text)
restoreDBInstanceFromDBSnapshot_dbInstanceClass :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Text)
restoreDBInstanceFromDBSnapshot_dbInstanceClass = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Text
dbInstanceClass :: Maybe Text
$sel:dbInstanceClass:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
dbInstanceClass} -> Maybe Text
dbInstanceClass) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Text
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:dbInstanceClass:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
dbInstanceClass = Maybe Text
a} :: RestoreDBInstanceFromDBSnapshot)

-- | The database name for the restored DB instance.
--
-- This parameter doesn\'t apply to the MySQL, PostgreSQL, or MariaDB
-- engines. It also doesn\'t apply to RDS Custom DB instances.
restoreDBInstanceFromDBSnapshot_dbName :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Text)
restoreDBInstanceFromDBSnapshot_dbName :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Text)
restoreDBInstanceFromDBSnapshot_dbName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Text
dbName :: Maybe Text
$sel:dbName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
dbName} -> Maybe Text
dbName) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Text
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:dbName:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
dbName = Maybe Text
a} :: RestoreDBInstanceFromDBSnapshot)

-- | The name of the DB parameter group to associate with this DB instance.
--
-- If you don\'t specify a value for @DBParameterGroupName@, then RDS uses
-- the default @DBParameterGroup@ for the specified DB engine.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Constraints:
--
-- -   If supplied, must match the name of an existing DBParameterGroup.
--
-- -   Must be 1 to 255 letters, numbers, or hyphens.
--
-- -   First character must be a letter.
--
-- -   Can\'t end with a hyphen or contain two consecutive hyphens.
restoreDBInstanceFromDBSnapshot_dbParameterGroupName :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Text)
restoreDBInstanceFromDBSnapshot_dbParameterGroupName :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Text)
restoreDBInstanceFromDBSnapshot_dbParameterGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Text
dbParameterGroupName :: Maybe Text
$sel:dbParameterGroupName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
dbParameterGroupName} -> Maybe Text
dbParameterGroupName) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Text
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:dbParameterGroupName:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
dbParameterGroupName = Maybe Text
a} :: RestoreDBInstanceFromDBSnapshot)

-- | The identifier for the DB snapshot to restore from.
--
-- Constraints:
--
-- -   Must match the identifier of an existing DBSnapshot.
--
-- -   Can\'t be specified when @DBClusterSnapshotIdentifier@ is specified.
--
-- -   Must be specified when @DBClusterSnapshotIdentifier@ isn\'t
--     specified.
--
-- -   If you are restoring from a shared manual DB snapshot, the
--     @DBSnapshotIdentifier@ must be the ARN of the shared DB snapshot.
restoreDBInstanceFromDBSnapshot_dbSnapshotIdentifier :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Text)
restoreDBInstanceFromDBSnapshot_dbSnapshotIdentifier :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Text)
restoreDBInstanceFromDBSnapshot_dbSnapshotIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Text
dbSnapshotIdentifier :: Maybe Text
$sel:dbSnapshotIdentifier:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
dbSnapshotIdentifier} -> Maybe Text
dbSnapshotIdentifier) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Text
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:dbSnapshotIdentifier:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
dbSnapshotIdentifier = Maybe Text
a} :: RestoreDBInstanceFromDBSnapshot)

-- | The DB subnet group name to use for the new instance.
--
-- Constraints: If supplied, must match the name of an existing
-- DBSubnetGroup.
--
-- Example: @mydbsubnetgroup@
restoreDBInstanceFromDBSnapshot_dbSubnetGroupName :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Text)
restoreDBInstanceFromDBSnapshot_dbSubnetGroupName :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Text)
restoreDBInstanceFromDBSnapshot_dbSubnetGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Text
dbSubnetGroupName :: Maybe Text
$sel:dbSubnetGroupName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
dbSubnetGroupName} -> Maybe Text
dbSubnetGroupName) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Text
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:dbSubnetGroupName:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
dbSubnetGroupName = Maybe Text
a} :: RestoreDBInstanceFromDBSnapshot)

-- | 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 isn\'t enabled. For more
-- information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html Deleting a DB Instance>.
restoreDBInstanceFromDBSnapshot_deletionProtection :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Bool)
restoreDBInstanceFromDBSnapshot_deletionProtection :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Bool)
restoreDBInstanceFromDBSnapshot_deletionProtection = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Bool
deletionProtection :: Maybe Bool
$sel:deletionProtection:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
deletionProtection} -> Maybe Bool
deletionProtection) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Bool
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:deletionProtection:RestoreDBInstanceFromDBSnapshot' :: Maybe Bool
deletionProtection = Maybe Bool
a} :: RestoreDBInstanceFromDBSnapshot)

-- | Specify the Active Directory directory ID to restore the DB instance in.
-- The domain\/ must be created prior to this operation. Currently, you can
-- create only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB
-- instances in an Active Directory Domain.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html Kerberos Authentication>
-- in the /Amazon RDS User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
restoreDBInstanceFromDBSnapshot_domain :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Text)
restoreDBInstanceFromDBSnapshot_domain :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Text)
restoreDBInstanceFromDBSnapshot_domain = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Text
domain :: Maybe Text
$sel:domain:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
domain} -> Maybe Text
domain) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Text
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:domain:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
domain = Maybe Text
a} :: RestoreDBInstanceFromDBSnapshot)

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

-- | The list of logs that the restored DB instance is to export to
-- CloudWatch Logs. The values in the list depend on the DB engine being
-- used. For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch Publishing Database Logs to Amazon CloudWatch Logs>
-- in the /Amazon RDS User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
restoreDBInstanceFromDBSnapshot_enableCloudwatchLogsExports :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe [Prelude.Text])
restoreDBInstanceFromDBSnapshot_enableCloudwatchLogsExports :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe [Text])
restoreDBInstanceFromDBSnapshot_enableCloudwatchLogsExports = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe [Text]
enableCloudwatchLogsExports :: Maybe [Text]
$sel:enableCloudwatchLogsExports:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe [Text]
enableCloudwatchLogsExports} -> Maybe [Text]
enableCloudwatchLogsExports) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe [Text]
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:enableCloudwatchLogsExports:RestoreDBInstanceFromDBSnapshot' :: Maybe [Text]
enableCloudwatchLogsExports = Maybe [Text]
a} :: RestoreDBInstanceFromDBSnapshot) 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 value that indicates whether to enable a customer-owned IP address
-- (CoIP) for an RDS on Outposts DB instance.
--
-- A /CoIP/ provides local or external connectivity to resources in your
-- Outpost subnets through your on-premises network. For some use cases, a
-- CoIP can provide lower latency for connections to the DB instance from
-- outside of its virtual private cloud (VPC) on your local network.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- For more information about RDS on Outposts, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html Working with Amazon RDS on Amazon Web Services Outposts>
-- in the /Amazon RDS User Guide/.
--
-- For more information about CoIPs, see
-- <https://docs.aws.amazon.com/outposts/latest/userguide/routing.html#ip-addressing Customer-owned IP addresses>
-- in the /Amazon Web Services Outposts User Guide/.
restoreDBInstanceFromDBSnapshot_enableCustomerOwnedIp :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Bool)
restoreDBInstanceFromDBSnapshot_enableCustomerOwnedIp :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Bool)
restoreDBInstanceFromDBSnapshot_enableCustomerOwnedIp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Bool
enableCustomerOwnedIp :: Maybe Bool
$sel:enableCustomerOwnedIp:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
enableCustomerOwnedIp} -> Maybe Bool
enableCustomerOwnedIp) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Bool
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:enableCustomerOwnedIp:RestoreDBInstanceFromDBSnapshot' :: Maybe Bool
enableCustomerOwnedIp = Maybe Bool
a} :: RestoreDBInstanceFromDBSnapshot)

-- | A value that indicates whether to enable mapping of Amazon Web Services
-- Identity and Access Management (IAM) accounts to database accounts. By
-- default, mapping is disabled.
--
-- For more information about IAM database authentication, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html IAM Database Authentication for MySQL and PostgreSQL>
-- in the /Amazon RDS User Guide./
--
-- This setting doesn\'t apply to RDS Custom.
restoreDBInstanceFromDBSnapshot_enableIAMDatabaseAuthentication :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Bool)
restoreDBInstanceFromDBSnapshot_enableIAMDatabaseAuthentication :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Bool)
restoreDBInstanceFromDBSnapshot_enableIAMDatabaseAuthentication = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Bool
enableIAMDatabaseAuthentication :: Maybe Bool
$sel:enableIAMDatabaseAuthentication:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
enableIAMDatabaseAuthentication} -> Maybe Bool
enableIAMDatabaseAuthentication) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Bool
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:enableIAMDatabaseAuthentication:RestoreDBInstanceFromDBSnapshot' :: Maybe Bool
enableIAMDatabaseAuthentication = Maybe Bool
a} :: RestoreDBInstanceFromDBSnapshot)

-- | The database engine to use for the new instance.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Default: The same as source
--
-- Constraint: Must be compatible with the engine of the source. For
-- example, you can restore a MariaDB 10.1 DB instance from a MySQL 5.6
-- snapshot.
--
-- Valid Values:
--
-- -   @mariadb@
--
-- -   @mysql@
--
-- -   @oracle-ee@
--
-- -   @oracle-ee-cdb@
--
-- -   @oracle-se2@
--
-- -   @oracle-se2-cdb@
--
-- -   @postgres@
--
-- -   @sqlserver-ee@
--
-- -   @sqlserver-se@
--
-- -   @sqlserver-ex@
--
-- -   @sqlserver-web@
restoreDBInstanceFromDBSnapshot_engine :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Text)
restoreDBInstanceFromDBSnapshot_engine :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Text)
restoreDBInstanceFromDBSnapshot_engine = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Text
engine :: Maybe Text
$sel:engine:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
engine} -> Maybe Text
engine) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Text
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:engine:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
engine = Maybe Text
a} :: RestoreDBInstanceFromDBSnapshot)

-- | Specifies the amount of provisioned IOPS for the DB instance, expressed
-- in I\/O operations per second. If this parameter isn\'t specified, the
-- IOPS value is taken from the backup. If this parameter is set to 0, the
-- new instance is converted to a non-PIOPS instance. The conversion takes
-- additional time, though your DB instance is available for connections
-- before the conversion starts.
--
-- The provisioned IOPS value must follow the requirements for your
-- database engine. For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS Amazon RDS Provisioned IOPS storage>
-- in the /Amazon RDS User Guide./
--
-- Constraints: Must be an integer greater than 1000.
restoreDBInstanceFromDBSnapshot_iops :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Int)
restoreDBInstanceFromDBSnapshot_iops :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Int)
restoreDBInstanceFromDBSnapshot_iops = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Int
iops :: Maybe Int
$sel:iops:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Int
iops} -> Maybe Int
iops) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Int
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:iops:RestoreDBInstanceFromDBSnapshot' :: Maybe Int
iops = Maybe Int
a} :: RestoreDBInstanceFromDBSnapshot)

-- | License model information for the restored DB instance.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Default: Same as source.
--
-- Valid values: @license-included@ | @bring-your-own-license@ |
-- @general-public-license@
restoreDBInstanceFromDBSnapshot_licenseModel :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Text)
restoreDBInstanceFromDBSnapshot_licenseModel :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Text)
restoreDBInstanceFromDBSnapshot_licenseModel = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Text
licenseModel :: Maybe Text
$sel:licenseModel:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
licenseModel} -> Maybe Text
licenseModel) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Text
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:licenseModel:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
licenseModel = Maybe Text
a} :: RestoreDBInstanceFromDBSnapshot)

-- | A value that indicates whether the DB instance is a Multi-AZ deployment.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- Constraint: You can\'t specify the @AvailabilityZone@ parameter if the
-- DB instance is a Multi-AZ deployment.
restoreDBInstanceFromDBSnapshot_multiAZ :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Bool)
restoreDBInstanceFromDBSnapshot_multiAZ :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Bool)
restoreDBInstanceFromDBSnapshot_multiAZ = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Bool
multiAZ :: Maybe Bool
$sel:multiAZ:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
multiAZ} -> Maybe Bool
multiAZ) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Bool
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:multiAZ:RestoreDBInstanceFromDBSnapshot' :: Maybe Bool
multiAZ = Maybe Bool
a} :: RestoreDBInstanceFromDBSnapshot)

-- | The network type of the DB instance.
--
-- Valid values:
--
-- -   @IPV4@
--
-- -   @DUAL@
--
-- The network type is determined by the @DBSubnetGroup@ specified for the
-- DB instance. A @DBSubnetGroup@ can support only the IPv4 protocol or the
-- IPv4 and the IPv6 protocols (@DUAL@).
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html Working with a DB instance in a VPC>
-- in the /Amazon RDS User Guide./
restoreDBInstanceFromDBSnapshot_networkType :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Text)
restoreDBInstanceFromDBSnapshot_networkType :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Text)
restoreDBInstanceFromDBSnapshot_networkType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Text
networkType :: Maybe Text
$sel:networkType:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
networkType} -> Maybe Text
networkType) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Text
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:networkType:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
networkType = Maybe Text
a} :: RestoreDBInstanceFromDBSnapshot)

-- | The name of the option group to be used for the restored DB instance.
--
-- Permanent options, such as the TDE option for Oracle Advanced Security
-- TDE, can\'t be removed from an option group, and that option group
-- can\'t be removed from a DB instance after it is associated with a DB
-- instance.
--
-- This setting doesn\'t apply to RDS Custom.
restoreDBInstanceFromDBSnapshot_optionGroupName :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Text)
restoreDBInstanceFromDBSnapshot_optionGroupName :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Text)
restoreDBInstanceFromDBSnapshot_optionGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Text
optionGroupName :: Maybe Text
$sel:optionGroupName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
optionGroupName} -> Maybe Text
optionGroupName) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Text
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:optionGroupName:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
optionGroupName = Maybe Text
a} :: RestoreDBInstanceFromDBSnapshot)

-- | The port number on which the database accepts connections.
--
-- Default: The same port as the original DB instance
--
-- Constraints: Value must be @1150-65535@
restoreDBInstanceFromDBSnapshot_port :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Int)
restoreDBInstanceFromDBSnapshot_port :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Int)
restoreDBInstanceFromDBSnapshot_port = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Int
port :: Maybe Int
$sel:port:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Int
port} -> Maybe Int
port) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Int
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:port:RestoreDBInstanceFromDBSnapshot' :: Maybe Int
port = Maybe Int
a} :: RestoreDBInstanceFromDBSnapshot)

-- | The number of CPU cores and the number of threads per core for the DB
-- instance class of the DB instance.
--
-- This setting doesn\'t apply to RDS Custom.
restoreDBInstanceFromDBSnapshot_processorFeatures :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe [ProcessorFeature])
restoreDBInstanceFromDBSnapshot_processorFeatures :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe [ProcessorFeature])
restoreDBInstanceFromDBSnapshot_processorFeatures = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe [ProcessorFeature]
processorFeatures :: Maybe [ProcessorFeature]
$sel:processorFeatures:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe [ProcessorFeature]
processorFeatures} -> Maybe [ProcessorFeature]
processorFeatures) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe [ProcessorFeature]
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:processorFeatures:RestoreDBInstanceFromDBSnapshot' :: Maybe [ProcessorFeature]
processorFeatures = Maybe [ProcessorFeature]
a} :: RestoreDBInstanceFromDBSnapshot) 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 value that indicates whether the DB instance is publicly accessible.
--
-- When the DB instance is publicly accessible, its Domain Name System
-- (DNS) endpoint resolves to the private IP address from within the DB
-- instance\'s virtual private cloud (VPC). It resolves to the public IP
-- address from outside of the DB instance\'s VPC. Access to the DB
-- instance is ultimately controlled by the security group it uses. That
-- public access is not permitted if the security group assigned to the DB
-- instance doesn\'t permit it.
--
-- When the DB instance isn\'t publicly accessible, it is an internal DB
-- instance with a DNS name that resolves to a private IP address.
--
-- For more information, see CreateDBInstance.
restoreDBInstanceFromDBSnapshot_publiclyAccessible :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Bool)
restoreDBInstanceFromDBSnapshot_publiclyAccessible :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Bool)
restoreDBInstanceFromDBSnapshot_publiclyAccessible = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Bool
publiclyAccessible :: Maybe Bool
$sel:publiclyAccessible:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
publiclyAccessible} -> Maybe Bool
publiclyAccessible) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Bool
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:publiclyAccessible:RestoreDBInstanceFromDBSnapshot' :: Maybe Bool
publiclyAccessible = Maybe Bool
a} :: RestoreDBInstanceFromDBSnapshot)

-- | Specifies the storage throughput value for the DB instance.
--
-- This setting doesn\'t apply to RDS Custom or Amazon Aurora.
restoreDBInstanceFromDBSnapshot_storageThroughput :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Int)
restoreDBInstanceFromDBSnapshot_storageThroughput :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Int)
restoreDBInstanceFromDBSnapshot_storageThroughput = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Int
storageThroughput :: Maybe Int
$sel:storageThroughput:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Int
storageThroughput} -> Maybe Int
storageThroughput) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Int
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:storageThroughput:RestoreDBInstanceFromDBSnapshot' :: Maybe Int
storageThroughput = Maybe Int
a} :: RestoreDBInstanceFromDBSnapshot)

-- | Specifies the storage type to be associated with the DB instance.
--
-- Valid values: @gp2 | gp3 | io1 | standard@
--
-- If you specify @io1@ or @gp3@, you must also include a value for the
-- @Iops@ parameter.
--
-- Default: @io1@ if the @Iops@ parameter is specified, otherwise @gp2@
restoreDBInstanceFromDBSnapshot_storageType :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Text)
restoreDBInstanceFromDBSnapshot_storageType :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Text)
restoreDBInstanceFromDBSnapshot_storageType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Text
storageType :: Maybe Text
$sel:storageType:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
storageType} -> Maybe Text
storageType) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Text
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:storageType:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
storageType = Maybe Text
a} :: RestoreDBInstanceFromDBSnapshot)

-- | Undocumented member.
restoreDBInstanceFromDBSnapshot_tags :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe [Tag])
restoreDBInstanceFromDBSnapshot_tags :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe [Tag])
restoreDBInstanceFromDBSnapshot_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe [Tag]
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:tags:RestoreDBInstanceFromDBSnapshot' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: RestoreDBInstanceFromDBSnapshot) 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.
--
-- This setting doesn\'t apply to RDS Custom.
restoreDBInstanceFromDBSnapshot_tdeCredentialArn :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Text)
restoreDBInstanceFromDBSnapshot_tdeCredentialArn :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Text)
restoreDBInstanceFromDBSnapshot_tdeCredentialArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Text
tdeCredentialArn :: Maybe Text
$sel:tdeCredentialArn:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
tdeCredentialArn} -> Maybe Text
tdeCredentialArn) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Text
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:tdeCredentialArn:RestoreDBInstanceFromDBSnapshot' :: Maybe Text
tdeCredentialArn = Maybe Text
a} :: RestoreDBInstanceFromDBSnapshot)

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

-- | A value that indicates whether the DB instance class of the DB instance
-- uses its default processor features.
--
-- This setting doesn\'t apply to RDS Custom.
restoreDBInstanceFromDBSnapshot_useDefaultProcessorFeatures :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe Prelude.Bool)
restoreDBInstanceFromDBSnapshot_useDefaultProcessorFeatures :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe Bool)
restoreDBInstanceFromDBSnapshot_useDefaultProcessorFeatures = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe Bool
useDefaultProcessorFeatures :: Maybe Bool
$sel:useDefaultProcessorFeatures:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
useDefaultProcessorFeatures} -> Maybe Bool
useDefaultProcessorFeatures) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe Bool
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:useDefaultProcessorFeatures:RestoreDBInstanceFromDBSnapshot' :: Maybe Bool
useDefaultProcessorFeatures = Maybe Bool
a} :: RestoreDBInstanceFromDBSnapshot)

-- | A list of EC2 VPC security groups to associate with this DB instance.
--
-- Default: The default EC2 VPC security group for the DB subnet group\'s
-- VPC.
restoreDBInstanceFromDBSnapshot_vpcSecurityGroupIds :: Lens.Lens' RestoreDBInstanceFromDBSnapshot (Prelude.Maybe [Prelude.Text])
restoreDBInstanceFromDBSnapshot_vpcSecurityGroupIds :: Lens' RestoreDBInstanceFromDBSnapshot (Maybe [Text])
restoreDBInstanceFromDBSnapshot_vpcSecurityGroupIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Maybe [Text]
vpcSecurityGroupIds :: Maybe [Text]
$sel:vpcSecurityGroupIds:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe [Text]
vpcSecurityGroupIds} -> Maybe [Text]
vpcSecurityGroupIds) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Maybe [Text]
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:vpcSecurityGroupIds:RestoreDBInstanceFromDBSnapshot' :: Maybe [Text]
vpcSecurityGroupIds = Maybe [Text]
a} :: RestoreDBInstanceFromDBSnapshot) 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

-- | Name of the DB instance to create from the DB snapshot. This parameter
-- isn\'t case-sensitive.
--
-- Constraints:
--
-- -   Must contain from 1 to 63 numbers, letters, or hyphens
--
-- -   First character must be a letter
--
-- -   Can\'t end with a hyphen or contain two consecutive hyphens
--
-- Example: @my-snapshot-id@
restoreDBInstanceFromDBSnapshot_dbInstanceIdentifier :: Lens.Lens' RestoreDBInstanceFromDBSnapshot Prelude.Text
restoreDBInstanceFromDBSnapshot_dbInstanceIdentifier :: Lens' RestoreDBInstanceFromDBSnapshot Text
restoreDBInstanceFromDBSnapshot_dbInstanceIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceFromDBSnapshot' {Text
dbInstanceIdentifier :: Text
$sel:dbInstanceIdentifier:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Text
dbInstanceIdentifier} -> Text
dbInstanceIdentifier) (\s :: RestoreDBInstanceFromDBSnapshot
s@RestoreDBInstanceFromDBSnapshot' {} Text
a -> RestoreDBInstanceFromDBSnapshot
s {$sel:dbInstanceIdentifier:RestoreDBInstanceFromDBSnapshot' :: Text
dbInstanceIdentifier = Text
a} :: RestoreDBInstanceFromDBSnapshot)

instance
  Core.AWSRequest
    RestoreDBInstanceFromDBSnapshot
  where
  type
    AWSResponse RestoreDBInstanceFromDBSnapshot =
      RestoreDBInstanceFromDBSnapshotResponse
  request :: (Service -> Service)
-> RestoreDBInstanceFromDBSnapshot
-> Request RestoreDBInstanceFromDBSnapshot
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 RestoreDBInstanceFromDBSnapshot
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse RestoreDBInstanceFromDBSnapshot)))
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
"RestoreDBInstanceFromDBSnapshotResult"
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe DBInstance -> Int -> RestoreDBInstanceFromDBSnapshotResponse
RestoreDBInstanceFromDBSnapshotResponse'
            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
    RestoreDBInstanceFromDBSnapshot
  where
  hashWithSalt :: Int -> RestoreDBInstanceFromDBSnapshot -> Int
hashWithSalt
    Int
_salt
    RestoreDBInstanceFromDBSnapshot' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe [ProcessorFeature]
Maybe [Tag]
Maybe Text
Text
dbInstanceIdentifier :: Text
vpcSecurityGroupIds :: Maybe [Text]
useDefaultProcessorFeatures :: Maybe Bool
tdeCredentialPassword :: Maybe Text
tdeCredentialArn :: Maybe Text
tags :: Maybe [Tag]
storageType :: Maybe Text
storageThroughput :: Maybe Int
publiclyAccessible :: Maybe Bool
processorFeatures :: Maybe [ProcessorFeature]
port :: Maybe Int
optionGroupName :: Maybe Text
networkType :: Maybe Text
multiAZ :: Maybe Bool
licenseModel :: Maybe Text
iops :: Maybe Int
engine :: Maybe Text
enableIAMDatabaseAuthentication :: Maybe Bool
enableCustomerOwnedIp :: Maybe Bool
enableCloudwatchLogsExports :: Maybe [Text]
domainIAMRoleName :: Maybe Text
domain :: Maybe Text
deletionProtection :: Maybe Bool
dbSubnetGroupName :: Maybe Text
dbSnapshotIdentifier :: Maybe Text
dbParameterGroupName :: Maybe Text
dbName :: Maybe Text
dbInstanceClass :: Maybe Text
dbClusterSnapshotIdentifier :: Maybe Text
customIamInstanceProfile :: Maybe Text
copyTagsToSnapshot :: Maybe Bool
backupTarget :: Maybe Text
availabilityZone :: Maybe Text
autoMinorVersionUpgrade :: Maybe Bool
$sel:dbInstanceIdentifier:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Text
$sel:vpcSecurityGroupIds:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe [Text]
$sel:useDefaultProcessorFeatures:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:tdeCredentialPassword:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:tdeCredentialArn:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:tags:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe [Tag]
$sel:storageType:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:storageThroughput:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Int
$sel:publiclyAccessible:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:processorFeatures:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe [ProcessorFeature]
$sel:port:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Int
$sel:optionGroupName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:networkType:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:multiAZ:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:licenseModel:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:iops:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Int
$sel:engine:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:enableIAMDatabaseAuthentication:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:enableCustomerOwnedIp:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:enableCloudwatchLogsExports:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe [Text]
$sel:domainIAMRoleName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:domain:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:deletionProtection:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:dbSubnetGroupName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:dbSnapshotIdentifier:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:dbParameterGroupName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:dbName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:dbInstanceClass:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:dbClusterSnapshotIdentifier:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:customIamInstanceProfile:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:copyTagsToSnapshot:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:backupTarget:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:availabilityZone:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:autoMinorVersionUpgrade:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
..} =
      Int
_salt
        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 Text
backupTarget
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
copyTagsToSnapshot
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
customIamInstanceProfile
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dbClusterSnapshotIdentifier
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dbInstanceClass
        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
dbSnapshotIdentifier
        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
enableCustomerOwnedIp
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
enableIAMDatabaseAuthentication
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
engine
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
iops
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
licenseModel
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
multiAZ
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
networkType
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
optionGroupName
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
port
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [ProcessorFeature]
processorFeatures
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
publiclyAccessible
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
storageThroughput
        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 Bool
useDefaultProcessorFeatures
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
vpcSecurityGroupIds
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
dbInstanceIdentifier

instance
  Prelude.NFData
    RestoreDBInstanceFromDBSnapshot
  where
  rnf :: RestoreDBInstanceFromDBSnapshot -> ()
rnf RestoreDBInstanceFromDBSnapshot' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe [ProcessorFeature]
Maybe [Tag]
Maybe Text
Text
dbInstanceIdentifier :: Text
vpcSecurityGroupIds :: Maybe [Text]
useDefaultProcessorFeatures :: Maybe Bool
tdeCredentialPassword :: Maybe Text
tdeCredentialArn :: Maybe Text
tags :: Maybe [Tag]
storageType :: Maybe Text
storageThroughput :: Maybe Int
publiclyAccessible :: Maybe Bool
processorFeatures :: Maybe [ProcessorFeature]
port :: Maybe Int
optionGroupName :: Maybe Text
networkType :: Maybe Text
multiAZ :: Maybe Bool
licenseModel :: Maybe Text
iops :: Maybe Int
engine :: Maybe Text
enableIAMDatabaseAuthentication :: Maybe Bool
enableCustomerOwnedIp :: Maybe Bool
enableCloudwatchLogsExports :: Maybe [Text]
domainIAMRoleName :: Maybe Text
domain :: Maybe Text
deletionProtection :: Maybe Bool
dbSubnetGroupName :: Maybe Text
dbSnapshotIdentifier :: Maybe Text
dbParameterGroupName :: Maybe Text
dbName :: Maybe Text
dbInstanceClass :: Maybe Text
dbClusterSnapshotIdentifier :: Maybe Text
customIamInstanceProfile :: Maybe Text
copyTagsToSnapshot :: Maybe Bool
backupTarget :: Maybe Text
availabilityZone :: Maybe Text
autoMinorVersionUpgrade :: Maybe Bool
$sel:dbInstanceIdentifier:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Text
$sel:vpcSecurityGroupIds:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe [Text]
$sel:useDefaultProcessorFeatures:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:tdeCredentialPassword:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:tdeCredentialArn:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:tags:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe [Tag]
$sel:storageType:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:storageThroughput:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Int
$sel:publiclyAccessible:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:processorFeatures:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe [ProcessorFeature]
$sel:port:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Int
$sel:optionGroupName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:networkType:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:multiAZ:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:licenseModel:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:iops:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Int
$sel:engine:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:enableIAMDatabaseAuthentication:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:enableCustomerOwnedIp:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:enableCloudwatchLogsExports:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe [Text]
$sel:domainIAMRoleName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:domain:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:deletionProtection:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:dbSubnetGroupName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:dbSnapshotIdentifier:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:dbParameterGroupName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:dbName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:dbInstanceClass:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:dbClusterSnapshotIdentifier:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:customIamInstanceProfile:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:copyTagsToSnapshot:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:backupTarget:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:availabilityZone:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:autoMinorVersionUpgrade:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
..} =
    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 Text
backupTarget
      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
customIamInstanceProfile
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dbClusterSnapshotIdentifier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dbInstanceClass
      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
dbSnapshotIdentifier
      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
enableCustomerOwnedIp
      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 Text
engine
      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
licenseModel
      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
networkType
      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 Int
port
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe [ProcessorFeature]
processorFeatures
      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 Int
storageThroughput
      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 Bool
useDefaultProcessorFeatures
      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

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

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

instance Data.ToQuery RestoreDBInstanceFromDBSnapshot where
  toQuery :: RestoreDBInstanceFromDBSnapshot -> QueryString
toQuery RestoreDBInstanceFromDBSnapshot' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe [ProcessorFeature]
Maybe [Tag]
Maybe Text
Text
dbInstanceIdentifier :: Text
vpcSecurityGroupIds :: Maybe [Text]
useDefaultProcessorFeatures :: Maybe Bool
tdeCredentialPassword :: Maybe Text
tdeCredentialArn :: Maybe Text
tags :: Maybe [Tag]
storageType :: Maybe Text
storageThroughput :: Maybe Int
publiclyAccessible :: Maybe Bool
processorFeatures :: Maybe [ProcessorFeature]
port :: Maybe Int
optionGroupName :: Maybe Text
networkType :: Maybe Text
multiAZ :: Maybe Bool
licenseModel :: Maybe Text
iops :: Maybe Int
engine :: Maybe Text
enableIAMDatabaseAuthentication :: Maybe Bool
enableCustomerOwnedIp :: Maybe Bool
enableCloudwatchLogsExports :: Maybe [Text]
domainIAMRoleName :: Maybe Text
domain :: Maybe Text
deletionProtection :: Maybe Bool
dbSubnetGroupName :: Maybe Text
dbSnapshotIdentifier :: Maybe Text
dbParameterGroupName :: Maybe Text
dbName :: Maybe Text
dbInstanceClass :: Maybe Text
dbClusterSnapshotIdentifier :: Maybe Text
customIamInstanceProfile :: Maybe Text
copyTagsToSnapshot :: Maybe Bool
backupTarget :: Maybe Text
availabilityZone :: Maybe Text
autoMinorVersionUpgrade :: Maybe Bool
$sel:dbInstanceIdentifier:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Text
$sel:vpcSecurityGroupIds:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe [Text]
$sel:useDefaultProcessorFeatures:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:tdeCredentialPassword:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:tdeCredentialArn:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:tags:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe [Tag]
$sel:storageType:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:storageThroughput:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Int
$sel:publiclyAccessible:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:processorFeatures:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe [ProcessorFeature]
$sel:port:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Int
$sel:optionGroupName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:networkType:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:multiAZ:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:licenseModel:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:iops:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Int
$sel:engine:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:enableIAMDatabaseAuthentication:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:enableCustomerOwnedIp:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:enableCloudwatchLogsExports:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe [Text]
$sel:domainIAMRoleName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:domain:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:deletionProtection:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:dbSubnetGroupName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:dbSnapshotIdentifier:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:dbParameterGroupName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:dbName:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:dbInstanceClass:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:dbClusterSnapshotIdentifier:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:customIamInstanceProfile:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:copyTagsToSnapshot:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
$sel:backupTarget:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:availabilityZone:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Text
$sel:autoMinorVersionUpgrade:RestoreDBInstanceFromDBSnapshot' :: RestoreDBInstanceFromDBSnapshot -> Maybe Bool
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: ( ByteString
"RestoreDBInstanceFromDBSnapshot" ::
                      Prelude.ByteString
                  ),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2014-10-31" :: Prelude.ByteString),
        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
"BackupTarget" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
backupTarget,
        ByteString
"CopyTagsToSnapshot" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
copyTagsToSnapshot,
        ByteString
"CustomIamInstanceProfile"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
customIamInstanceProfile,
        ByteString
"DBClusterSnapshotIdentifier"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
dbClusterSnapshotIdentifier,
        ByteString
"DBInstanceClass" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
dbInstanceClass,
        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
"DBSnapshotIdentifier" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
dbSnapshotIdentifier,
        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
"EnableCustomerOwnedIp"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
enableCustomerOwnedIp,
        ByteString
"EnableIAMDatabaseAuthentication"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
enableIAMDatabaseAuthentication,
        ByteString
"Engine" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
engine,
        ByteString
"Iops" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
iops,
        ByteString
"LicenseModel" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
licenseModel,
        ByteString
"MultiAZ" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
multiAZ,
        ByteString
"NetworkType" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
networkType,
        ByteString
"OptionGroupName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
optionGroupName,
        ByteString
"Port" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
port,
        ByteString
"ProcessorFeatures"
          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
"ProcessorFeature"
                forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ProcessorFeature]
processorFeatures
            ),
        ByteString
"PubliclyAccessible" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
publiclyAccessible,
        ByteString
"StorageThroughput" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
storageThroughput,
        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
"UseDefaultProcessorFeatures"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
useDefaultProcessorFeatures,
        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
      ]

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

-- |
-- Create a value of 'RestoreDBInstanceFromDBSnapshotResponse' 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', 'restoreDBInstanceFromDBSnapshotResponse_dbInstance' - Undocumented member.
--
-- 'httpStatus', 'restoreDBInstanceFromDBSnapshotResponse_httpStatus' - The response's http status code.
newRestoreDBInstanceFromDBSnapshotResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  RestoreDBInstanceFromDBSnapshotResponse
newRestoreDBInstanceFromDBSnapshotResponse :: Int -> RestoreDBInstanceFromDBSnapshotResponse
newRestoreDBInstanceFromDBSnapshotResponse
  Int
pHttpStatus_ =
    RestoreDBInstanceFromDBSnapshotResponse'
      { $sel:dbInstance:RestoreDBInstanceFromDBSnapshotResponse' :: Maybe DBInstance
dbInstance =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:RestoreDBInstanceFromDBSnapshotResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

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

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

instance
  Prelude.NFData
    RestoreDBInstanceFromDBSnapshotResponse
  where
  rnf :: RestoreDBInstanceFromDBSnapshotResponse -> ()
rnf RestoreDBInstanceFromDBSnapshotResponse' {Int
Maybe DBInstance
httpStatus :: Int
dbInstance :: Maybe DBInstance
$sel:httpStatus:RestoreDBInstanceFromDBSnapshotResponse' :: RestoreDBInstanceFromDBSnapshotResponse -> Int
$sel:dbInstance:RestoreDBInstanceFromDBSnapshotResponse' :: RestoreDBInstanceFromDBSnapshotResponse -> 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