{-# 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.RestoreDBInstanceToPointInTime
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Restores a DB instance to an arbitrary point in time. You can restore to
-- any point in time before the time identified by the LatestRestorableTime
-- property. You can restore to a point up to the number of days specified
-- by the BackupRetentionPeriod property.
--
-- The target database is created with most of the original configuration,
-- but in a system-selected Availability Zone, with the default security
-- group, the default subnet group, and the default 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 that
-- is associated with mirroring; in this case, the instance becomes a
-- mirrored deployment and not a single-AZ deployment.
--
-- This command doesn\'t apply to Aurora MySQL and Aurora PostgreSQL. For
-- Aurora, use @RestoreDBClusterToPointInTime@.
module Amazonka.RDS.RestoreDBInstanceToPointInTime
  ( -- * Creating a Request
    RestoreDBInstanceToPointInTime (..),
    newRestoreDBInstanceToPointInTime,

    -- * Request Lenses
    restoreDBInstanceToPointInTime_autoMinorVersionUpgrade,
    restoreDBInstanceToPointInTime_availabilityZone,
    restoreDBInstanceToPointInTime_backupTarget,
    restoreDBInstanceToPointInTime_copyTagsToSnapshot,
    restoreDBInstanceToPointInTime_customIamInstanceProfile,
    restoreDBInstanceToPointInTime_dbInstanceClass,
    restoreDBInstanceToPointInTime_dbName,
    restoreDBInstanceToPointInTime_dbParameterGroupName,
    restoreDBInstanceToPointInTime_dbSubnetGroupName,
    restoreDBInstanceToPointInTime_deletionProtection,
    restoreDBInstanceToPointInTime_domain,
    restoreDBInstanceToPointInTime_domainIAMRoleName,
    restoreDBInstanceToPointInTime_enableCloudwatchLogsExports,
    restoreDBInstanceToPointInTime_enableCustomerOwnedIp,
    restoreDBInstanceToPointInTime_enableIAMDatabaseAuthentication,
    restoreDBInstanceToPointInTime_engine,
    restoreDBInstanceToPointInTime_iops,
    restoreDBInstanceToPointInTime_licenseModel,
    restoreDBInstanceToPointInTime_maxAllocatedStorage,
    restoreDBInstanceToPointInTime_multiAZ,
    restoreDBInstanceToPointInTime_networkType,
    restoreDBInstanceToPointInTime_optionGroupName,
    restoreDBInstanceToPointInTime_port,
    restoreDBInstanceToPointInTime_processorFeatures,
    restoreDBInstanceToPointInTime_publiclyAccessible,
    restoreDBInstanceToPointInTime_restoreTime,
    restoreDBInstanceToPointInTime_sourceDBInstanceAutomatedBackupsArn,
    restoreDBInstanceToPointInTime_sourceDBInstanceIdentifier,
    restoreDBInstanceToPointInTime_sourceDbiResourceId,
    restoreDBInstanceToPointInTime_storageThroughput,
    restoreDBInstanceToPointInTime_storageType,
    restoreDBInstanceToPointInTime_tags,
    restoreDBInstanceToPointInTime_tdeCredentialArn,
    restoreDBInstanceToPointInTime_tdeCredentialPassword,
    restoreDBInstanceToPointInTime_useDefaultProcessorFeatures,
    restoreDBInstanceToPointInTime_useLatestRestorableTime,
    restoreDBInstanceToPointInTime_vpcSecurityGroupIds,
    restoreDBInstanceToPointInTime_targetDBInstanceIdentifier,

    -- * Destructuring the Response
    RestoreDBInstanceToPointInTimeResponse (..),
    newRestoreDBInstanceToPointInTimeResponse,

    -- * Response Lenses
    restoreDBInstanceToPointInTimeResponse_dbInstance,
    restoreDBInstanceToPointInTimeResponse_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:/ 'newRestoreDBInstanceToPointInTime' smart constructor.
data RestoreDBInstanceToPointInTime = RestoreDBInstanceToPointInTime'
  { -- | A value that indicates whether minor version upgrades are applied
    -- automatically to the DB instance during the maintenance window.
    --
    -- This setting doesn\'t apply to RDS Custom.
    RestoreDBInstanceToPointInTime -> 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@
    RestoreDBInstanceToPointInTime -> 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/.
    RestoreDBInstanceToPointInTime -> 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. By default, tags are not
    -- copied.
    RestoreDBInstanceToPointInTime -> 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.
    RestoreDBInstanceToPointInTime -> Maybe Text
customIamInstanceProfile :: 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.
    RestoreDBInstanceToPointInTime -> Maybe Text
dbInstanceClass :: Prelude.Maybe Prelude.Text,
    -- | The database name for the restored DB instance.
    --
    -- This parameter isn\'t supported for the MySQL or MariaDB engines. It
    -- also doesn\'t apply to RDS Custom.
    RestoreDBInstanceToPointInTime -> Maybe Text
dbName :: Prelude.Maybe Prelude.Text,
    -- | The name of the DB parameter group to associate with this DB instance.
    --
    -- If you do not specify a value for @DBParameterGroupName@, then the
    -- default @DBParameterGroup@ for the specified DB engine is used.
    --
    -- 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.
    RestoreDBInstanceToPointInTime -> Maybe Text
dbParameterGroupName :: 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@
    RestoreDBInstanceToPointInTime -> 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>.
    RestoreDBInstanceToPointInTime -> Maybe Bool
deletionProtection :: Prelude.Maybe Prelude.Bool,
    -- | Specify the Active Directory directory ID to restore the DB instance in.
    -- Create the domain before running this command. Currently, you can create
    -- only the MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB
    -- instances in an Active Directory Domain.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html Kerberos Authentication>
    -- in the /Amazon RDS User Guide/.
    RestoreDBInstanceToPointInTime -> 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.
    RestoreDBInstanceToPointInTime -> 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.
    RestoreDBInstanceToPointInTime -> 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/.
    RestoreDBInstanceToPointInTime -> 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 isn\'t enabled.
    --
    -- This setting doesn\'t apply to RDS Custom.
    --
    -- 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./
    RestoreDBInstanceToPointInTime -> 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
    --
    -- Valid Values:
    --
    -- -   @mariadb@
    --
    -- -   @mysql@
    --
    -- -   @oracle-ee@
    --
    -- -   @oracle-ee-cdb@
    --
    -- -   @oracle-se2@
    --
    -- -   @oracle-se2-cdb@
    --
    -- -   @postgres@
    --
    -- -   @sqlserver-ee@
    --
    -- -   @sqlserver-se@
    --
    -- -   @sqlserver-ex@
    --
    -- -   @sqlserver-web@
    RestoreDBInstanceToPointInTime -> Maybe Text
engine :: Prelude.Maybe Prelude.Text,
    -- | The amount of Provisioned IOPS (input\/output operations per second) to
    -- be initially allocated for the DB instance.
    --
    -- Constraints: Must be an integer greater than 1000.
    --
    -- __SQL Server__
    --
    -- Setting the IOPS value for the SQL Server database engine isn\'t
    -- supported.
    RestoreDBInstanceToPointInTime -> 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@
    RestoreDBInstanceToPointInTime -> Maybe Text
licenseModel :: Prelude.Maybe Prelude.Text,
    -- | The upper limit in gibibytes (GiB) to which Amazon RDS can automatically
    -- scale the storage of the DB instance.
    --
    -- For more information about this setting, including limitations that
    -- apply to it, see
    -- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling Managing capacity automatically with Amazon RDS storage autoscaling>
    -- in the /Amazon RDS User Guide/.
    --
    -- This setting doesn\'t apply to RDS Custom.
    RestoreDBInstanceToPointInTime -> Maybe Int
maxAllocatedStorage :: Prelude.Maybe Prelude.Int,
    -- | 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.
    RestoreDBInstanceToPointInTime -> 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./
    RestoreDBInstanceToPointInTime -> 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.
    RestoreDBInstanceToPointInTime -> Maybe Text
optionGroupName :: Prelude.Maybe Prelude.Text,
    -- | The port number on which the database accepts connections.
    --
    -- Constraints: Value must be @1150-65535@
    --
    -- Default: The same port as the original DB instance.
    RestoreDBInstanceToPointInTime -> 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.
    RestoreDBInstanceToPointInTime -> Maybe [ProcessorFeature]
processorFeatures :: Prelude.Maybe [ProcessorFeature],
    -- | A value that indicates whether the DB instance is publicly accessible.
    --
    -- When the DB cluster is publicly accessible, its Domain Name System (DNS)
    -- endpoint resolves to the private IP address from within the DB
    -- cluster\'s virtual private cloud (VPC). It resolves to the public IP
    -- address from outside of the DB cluster\'s VPC. Access to the DB cluster
    -- is ultimately controlled by the security group it uses. That public
    -- access isn\'t permitted if the security group assigned to the DB cluster
    -- 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.
    RestoreDBInstanceToPointInTime -> Maybe Bool
publiclyAccessible :: Prelude.Maybe Prelude.Bool,
    -- | The date and time to restore from.
    --
    -- Valid Values: Value must be a time in Universal Coordinated Time (UTC)
    -- format
    --
    -- Constraints:
    --
    -- -   Must be before the latest restorable time for the DB instance
    --
    -- -   Can\'t be specified if the @UseLatestRestorableTime@ parameter is
    --     enabled
    --
    -- Example: @2009-09-07T23:45:00Z@
    RestoreDBInstanceToPointInTime -> Maybe ISO8601
restoreTime :: Prelude.Maybe Data.ISO8601,
    -- | The Amazon Resource Name (ARN) of the replicated automated backups from
    -- which to restore, for example,
    -- @arn:aws:rds:useast-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE@.
    --
    -- This setting doesn\'t apply to RDS Custom.
    RestoreDBInstanceToPointInTime -> Maybe Text
sourceDBInstanceAutomatedBackupsArn :: Prelude.Maybe Prelude.Text,
    -- | The identifier of the source DB instance from which to restore.
    --
    -- Constraints:
    --
    -- -   Must match the identifier of an existing DB instance.
    RestoreDBInstanceToPointInTime -> Maybe Text
sourceDBInstanceIdentifier :: Prelude.Maybe Prelude.Text,
    -- | The resource ID of the source DB instance from which to restore.
    RestoreDBInstanceToPointInTime -> Maybe Text
sourceDbiResourceId :: Prelude.Maybe Prelude.Text,
    -- | Specifies the storage throughput value for the DB instance.
    --
    -- This setting doesn\'t apply to RDS Custom or Amazon Aurora.
    RestoreDBInstanceToPointInTime -> 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@
    RestoreDBInstanceToPointInTime -> Maybe Text
storageType :: Prelude.Maybe Prelude.Text,
    RestoreDBInstanceToPointInTime -> 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.
    RestoreDBInstanceToPointInTime -> 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.
    RestoreDBInstanceToPointInTime -> 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.
    RestoreDBInstanceToPointInTime -> Maybe Bool
useDefaultProcessorFeatures :: Prelude.Maybe Prelude.Bool,
    -- | A value that indicates whether the DB instance is restored from the
    -- latest backup time. By default, the DB instance isn\'t restored from the
    -- latest backup time.
    --
    -- Constraints: Can\'t be specified if the @RestoreTime@ parameter is
    -- provided.
    RestoreDBInstanceToPointInTime -> Maybe Bool
useLatestRestorableTime :: 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.
    RestoreDBInstanceToPointInTime -> Maybe [Text]
vpcSecurityGroupIds :: Prelude.Maybe [Prelude.Text],
    -- | The name of the new DB instance to be created.
    --
    -- Constraints:
    --
    -- -   Must contain from 1 to 63 letters, numbers, or hyphens
    --
    -- -   First character must be a letter
    --
    -- -   Can\'t end with a hyphen or contain two consecutive hyphens
    RestoreDBInstanceToPointInTime -> Text
targetDBInstanceIdentifier :: Prelude.Text
  }
  deriving (RestoreDBInstanceToPointInTime
-> RestoreDBInstanceToPointInTime -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RestoreDBInstanceToPointInTime
-> RestoreDBInstanceToPointInTime -> Bool
$c/= :: RestoreDBInstanceToPointInTime
-> RestoreDBInstanceToPointInTime -> Bool
== :: RestoreDBInstanceToPointInTime
-> RestoreDBInstanceToPointInTime -> Bool
$c== :: RestoreDBInstanceToPointInTime
-> RestoreDBInstanceToPointInTime -> Bool
Prelude.Eq, ReadPrec [RestoreDBInstanceToPointInTime]
ReadPrec RestoreDBInstanceToPointInTime
Int -> ReadS RestoreDBInstanceToPointInTime
ReadS [RestoreDBInstanceToPointInTime]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [RestoreDBInstanceToPointInTime]
$creadListPrec :: ReadPrec [RestoreDBInstanceToPointInTime]
readPrec :: ReadPrec RestoreDBInstanceToPointInTime
$creadPrec :: ReadPrec RestoreDBInstanceToPointInTime
readList :: ReadS [RestoreDBInstanceToPointInTime]
$creadList :: ReadS [RestoreDBInstanceToPointInTime]
readsPrec :: Int -> ReadS RestoreDBInstanceToPointInTime
$creadsPrec :: Int -> ReadS RestoreDBInstanceToPointInTime
Prelude.Read, Int -> RestoreDBInstanceToPointInTime -> ShowS
[RestoreDBInstanceToPointInTime] -> ShowS
RestoreDBInstanceToPointInTime -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [RestoreDBInstanceToPointInTime] -> ShowS
$cshowList :: [RestoreDBInstanceToPointInTime] -> ShowS
show :: RestoreDBInstanceToPointInTime -> String
$cshow :: RestoreDBInstanceToPointInTime -> String
showsPrec :: Int -> RestoreDBInstanceToPointInTime -> ShowS
$cshowsPrec :: Int -> RestoreDBInstanceToPointInTime -> ShowS
Prelude.Show, forall x.
Rep RestoreDBInstanceToPointInTime x
-> RestoreDBInstanceToPointInTime
forall x.
RestoreDBInstanceToPointInTime
-> Rep RestoreDBInstanceToPointInTime x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep RestoreDBInstanceToPointInTime x
-> RestoreDBInstanceToPointInTime
$cfrom :: forall x.
RestoreDBInstanceToPointInTime
-> Rep RestoreDBInstanceToPointInTime x
Prelude.Generic)

-- |
-- Create a value of 'RestoreDBInstanceToPointInTime' 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', 'restoreDBInstanceToPointInTime_autoMinorVersionUpgrade' - A value that indicates whether minor version upgrades are applied
-- automatically to the DB instance during the maintenance window.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'availabilityZone', 'restoreDBInstanceToPointInTime_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', 'restoreDBInstanceToPointInTime_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', 'restoreDBInstanceToPointInTime_copyTagsToSnapshot' - A value that indicates whether to copy all tags from the restored DB
-- instance to snapshots of the DB instance. By default, tags are not
-- copied.
--
-- 'customIamInstanceProfile', 'restoreDBInstanceToPointInTime_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.
--
-- 'dbInstanceClass', 'restoreDBInstanceToPointInTime_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', 'restoreDBInstanceToPointInTime_dbName' - The database name for the restored DB instance.
--
-- This parameter isn\'t supported for the MySQL or MariaDB engines. It
-- also doesn\'t apply to RDS Custom.
--
-- 'dbParameterGroupName', 'restoreDBInstanceToPointInTime_dbParameterGroupName' - The name of the DB parameter group to associate with this DB instance.
--
-- If you do not specify a value for @DBParameterGroupName@, then the
-- default @DBParameterGroup@ for the specified DB engine is used.
--
-- 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.
--
-- 'dbSubnetGroupName', 'restoreDBInstanceToPointInTime_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', 'restoreDBInstanceToPointInTime_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', 'restoreDBInstanceToPointInTime_domain' - Specify the Active Directory directory ID to restore the DB instance in.
-- Create the domain before running this command. Currently, you can create
-- only the MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB
-- instances in an Active Directory Domain.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html Kerberos Authentication>
-- in the /Amazon RDS User Guide/.
--
-- 'domainIAMRoleName', 'restoreDBInstanceToPointInTime_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', 'restoreDBInstanceToPointInTime_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', 'restoreDBInstanceToPointInTime_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', 'restoreDBInstanceToPointInTime_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 isn\'t enabled.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 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./
--
-- 'engine', 'restoreDBInstanceToPointInTime_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
--
-- Valid Values:
--
-- -   @mariadb@
--
-- -   @mysql@
--
-- -   @oracle-ee@
--
-- -   @oracle-ee-cdb@
--
-- -   @oracle-se2@
--
-- -   @oracle-se2-cdb@
--
-- -   @postgres@
--
-- -   @sqlserver-ee@
--
-- -   @sqlserver-se@
--
-- -   @sqlserver-ex@
--
-- -   @sqlserver-web@
--
-- 'iops', 'restoreDBInstanceToPointInTime_iops' - The amount of Provisioned IOPS (input\/output operations per second) to
-- be initially allocated for the DB instance.
--
-- Constraints: Must be an integer greater than 1000.
--
-- __SQL Server__
--
-- Setting the IOPS value for the SQL Server database engine isn\'t
-- supported.
--
-- 'licenseModel', 'restoreDBInstanceToPointInTime_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@
--
-- 'maxAllocatedStorage', 'restoreDBInstanceToPointInTime_maxAllocatedStorage' - The upper limit in gibibytes (GiB) to which Amazon RDS can automatically
-- scale the storage of the DB instance.
--
-- For more information about this setting, including limitations that
-- apply to it, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling Managing capacity automatically with Amazon RDS storage autoscaling>
-- in the /Amazon RDS User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'multiAZ', 'restoreDBInstanceToPointInTime_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', 'restoreDBInstanceToPointInTime_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', 'restoreDBInstanceToPointInTime_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', 'restoreDBInstanceToPointInTime_port' - The port number on which the database accepts connections.
--
-- Constraints: Value must be @1150-65535@
--
-- Default: The same port as the original DB instance.
--
-- 'processorFeatures', 'restoreDBInstanceToPointInTime_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', 'restoreDBInstanceToPointInTime_publiclyAccessible' - A value that indicates whether the DB instance is publicly accessible.
--
-- When the DB cluster is publicly accessible, its Domain Name System (DNS)
-- endpoint resolves to the private IP address from within the DB
-- cluster\'s virtual private cloud (VPC). It resolves to the public IP
-- address from outside of the DB cluster\'s VPC. Access to the DB cluster
-- is ultimately controlled by the security group it uses. That public
-- access isn\'t permitted if the security group assigned to the DB cluster
-- 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.
--
-- 'restoreTime', 'restoreDBInstanceToPointInTime_restoreTime' - The date and time to restore from.
--
-- Valid Values: Value must be a time in Universal Coordinated Time (UTC)
-- format
--
-- Constraints:
--
-- -   Must be before the latest restorable time for the DB instance
--
-- -   Can\'t be specified if the @UseLatestRestorableTime@ parameter is
--     enabled
--
-- Example: @2009-09-07T23:45:00Z@
--
-- 'sourceDBInstanceAutomatedBackupsArn', 'restoreDBInstanceToPointInTime_sourceDBInstanceAutomatedBackupsArn' - The Amazon Resource Name (ARN) of the replicated automated backups from
-- which to restore, for example,
-- @arn:aws:rds:useast-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE@.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'sourceDBInstanceIdentifier', 'restoreDBInstanceToPointInTime_sourceDBInstanceIdentifier' - The identifier of the source DB instance from which to restore.
--
-- Constraints:
--
-- -   Must match the identifier of an existing DB instance.
--
-- 'sourceDbiResourceId', 'restoreDBInstanceToPointInTime_sourceDbiResourceId' - The resource ID of the source DB instance from which to restore.
--
-- 'storageThroughput', 'restoreDBInstanceToPointInTime_storageThroughput' - Specifies the storage throughput value for the DB instance.
--
-- This setting doesn\'t apply to RDS Custom or Amazon Aurora.
--
-- 'storageType', 'restoreDBInstanceToPointInTime_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', 'restoreDBInstanceToPointInTime_tags' - Undocumented member.
--
-- 'tdeCredentialArn', 'restoreDBInstanceToPointInTime_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', 'restoreDBInstanceToPointInTime_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', 'restoreDBInstanceToPointInTime_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.
--
-- 'useLatestRestorableTime', 'restoreDBInstanceToPointInTime_useLatestRestorableTime' - A value that indicates whether the DB instance is restored from the
-- latest backup time. By default, the DB instance isn\'t restored from the
-- latest backup time.
--
-- Constraints: Can\'t be specified if the @RestoreTime@ parameter is
-- provided.
--
-- 'vpcSecurityGroupIds', 'restoreDBInstanceToPointInTime_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.
--
-- 'targetDBInstanceIdentifier', 'restoreDBInstanceToPointInTime_targetDBInstanceIdentifier' - The name of the new DB instance to be created.
--
-- Constraints:
--
-- -   Must contain from 1 to 63 letters, numbers, or hyphens
--
-- -   First character must be a letter
--
-- -   Can\'t end with a hyphen or contain two consecutive hyphens
newRestoreDBInstanceToPointInTime ::
  -- | 'targetDBInstanceIdentifier'
  Prelude.Text ->
  RestoreDBInstanceToPointInTime
newRestoreDBInstanceToPointInTime :: Text -> RestoreDBInstanceToPointInTime
newRestoreDBInstanceToPointInTime
  Text
pTargetDBInstanceIdentifier_ =
    RestoreDBInstanceToPointInTime'
      { $sel:autoMinorVersionUpgrade:RestoreDBInstanceToPointInTime' :: Maybe Bool
autoMinorVersionUpgrade =
          forall a. Maybe a
Prelude.Nothing,
        $sel:availabilityZone:RestoreDBInstanceToPointInTime' :: Maybe Text
availabilityZone = forall a. Maybe a
Prelude.Nothing,
        $sel:backupTarget:RestoreDBInstanceToPointInTime' :: Maybe Text
backupTarget = forall a. Maybe a
Prelude.Nothing,
        $sel:copyTagsToSnapshot:RestoreDBInstanceToPointInTime' :: Maybe Bool
copyTagsToSnapshot = forall a. Maybe a
Prelude.Nothing,
        $sel:customIamInstanceProfile:RestoreDBInstanceToPointInTime' :: Maybe Text
customIamInstanceProfile = forall a. Maybe a
Prelude.Nothing,
        $sel:dbInstanceClass:RestoreDBInstanceToPointInTime' :: Maybe Text
dbInstanceClass = forall a. Maybe a
Prelude.Nothing,
        $sel:dbName:RestoreDBInstanceToPointInTime' :: Maybe Text
dbName = forall a. Maybe a
Prelude.Nothing,
        $sel:dbParameterGroupName:RestoreDBInstanceToPointInTime' :: Maybe Text
dbParameterGroupName = forall a. Maybe a
Prelude.Nothing,
        $sel:dbSubnetGroupName:RestoreDBInstanceToPointInTime' :: Maybe Text
dbSubnetGroupName = forall a. Maybe a
Prelude.Nothing,
        $sel:deletionProtection:RestoreDBInstanceToPointInTime' :: Maybe Bool
deletionProtection = forall a. Maybe a
Prelude.Nothing,
        $sel:domain:RestoreDBInstanceToPointInTime' :: Maybe Text
domain = forall a. Maybe a
Prelude.Nothing,
        $sel:domainIAMRoleName:RestoreDBInstanceToPointInTime' :: Maybe Text
domainIAMRoleName = forall a. Maybe a
Prelude.Nothing,
        $sel:enableCloudwatchLogsExports:RestoreDBInstanceToPointInTime' :: Maybe [Text]
enableCloudwatchLogsExports =
          forall a. Maybe a
Prelude.Nothing,
        $sel:enableCustomerOwnedIp:RestoreDBInstanceToPointInTime' :: Maybe Bool
enableCustomerOwnedIp = forall a. Maybe a
Prelude.Nothing,
        $sel:enableIAMDatabaseAuthentication:RestoreDBInstanceToPointInTime' :: Maybe Bool
enableIAMDatabaseAuthentication =
          forall a. Maybe a
Prelude.Nothing,
        $sel:engine:RestoreDBInstanceToPointInTime' :: Maybe Text
engine = forall a. Maybe a
Prelude.Nothing,
        $sel:iops:RestoreDBInstanceToPointInTime' :: Maybe Int
iops = forall a. Maybe a
Prelude.Nothing,
        $sel:licenseModel:RestoreDBInstanceToPointInTime' :: Maybe Text
licenseModel = forall a. Maybe a
Prelude.Nothing,
        $sel:maxAllocatedStorage:RestoreDBInstanceToPointInTime' :: Maybe Int
maxAllocatedStorage = forall a. Maybe a
Prelude.Nothing,
        $sel:multiAZ:RestoreDBInstanceToPointInTime' :: Maybe Bool
multiAZ = forall a. Maybe a
Prelude.Nothing,
        $sel:networkType:RestoreDBInstanceToPointInTime' :: Maybe Text
networkType = forall a. Maybe a
Prelude.Nothing,
        $sel:optionGroupName:RestoreDBInstanceToPointInTime' :: Maybe Text
optionGroupName = forall a. Maybe a
Prelude.Nothing,
        $sel:port:RestoreDBInstanceToPointInTime' :: Maybe Int
port = forall a. Maybe a
Prelude.Nothing,
        $sel:processorFeatures:RestoreDBInstanceToPointInTime' :: Maybe [ProcessorFeature]
processorFeatures = forall a. Maybe a
Prelude.Nothing,
        $sel:publiclyAccessible:RestoreDBInstanceToPointInTime' :: Maybe Bool
publiclyAccessible = forall a. Maybe a
Prelude.Nothing,
        $sel:restoreTime:RestoreDBInstanceToPointInTime' :: Maybe ISO8601
restoreTime = forall a. Maybe a
Prelude.Nothing,
        $sel:sourceDBInstanceAutomatedBackupsArn:RestoreDBInstanceToPointInTime' :: Maybe Text
sourceDBInstanceAutomatedBackupsArn =
          forall a. Maybe a
Prelude.Nothing,
        $sel:sourceDBInstanceIdentifier:RestoreDBInstanceToPointInTime' :: Maybe Text
sourceDBInstanceIdentifier =
          forall a. Maybe a
Prelude.Nothing,
        $sel:sourceDbiResourceId:RestoreDBInstanceToPointInTime' :: Maybe Text
sourceDbiResourceId = forall a. Maybe a
Prelude.Nothing,
        $sel:storageThroughput:RestoreDBInstanceToPointInTime' :: Maybe Int
storageThroughput = forall a. Maybe a
Prelude.Nothing,
        $sel:storageType:RestoreDBInstanceToPointInTime' :: Maybe Text
storageType = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:RestoreDBInstanceToPointInTime' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:tdeCredentialArn:RestoreDBInstanceToPointInTime' :: Maybe Text
tdeCredentialArn = forall a. Maybe a
Prelude.Nothing,
        $sel:tdeCredentialPassword:RestoreDBInstanceToPointInTime' :: Maybe Text
tdeCredentialPassword = forall a. Maybe a
Prelude.Nothing,
        $sel:useDefaultProcessorFeatures:RestoreDBInstanceToPointInTime' :: Maybe Bool
useDefaultProcessorFeatures =
          forall a. Maybe a
Prelude.Nothing,
        $sel:useLatestRestorableTime:RestoreDBInstanceToPointInTime' :: Maybe Bool
useLatestRestorableTime = forall a. Maybe a
Prelude.Nothing,
        $sel:vpcSecurityGroupIds:RestoreDBInstanceToPointInTime' :: Maybe [Text]
vpcSecurityGroupIds = forall a. Maybe a
Prelude.Nothing,
        $sel:targetDBInstanceIdentifier:RestoreDBInstanceToPointInTime' :: Text
targetDBInstanceIdentifier =
          Text
pTargetDBInstanceIdentifier_
      }

-- | A value that indicates whether minor version upgrades are applied
-- automatically to the DB instance during the maintenance window.
--
-- This setting doesn\'t apply to RDS Custom.
restoreDBInstanceToPointInTime_autoMinorVersionUpgrade :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Bool)
restoreDBInstanceToPointInTime_autoMinorVersionUpgrade :: Lens' RestoreDBInstanceToPointInTime (Maybe Bool)
restoreDBInstanceToPointInTime_autoMinorVersionUpgrade = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Bool
autoMinorVersionUpgrade :: Maybe Bool
$sel:autoMinorVersionUpgrade:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
autoMinorVersionUpgrade} -> Maybe Bool
autoMinorVersionUpgrade) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Bool
a -> RestoreDBInstanceToPointInTime
s {$sel:autoMinorVersionUpgrade:RestoreDBInstanceToPointInTime' :: Maybe Bool
autoMinorVersionUpgrade = Maybe Bool
a} :: RestoreDBInstanceToPointInTime)

-- | 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@
restoreDBInstanceToPointInTime_availabilityZone :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Text)
restoreDBInstanceToPointInTime_availabilityZone :: Lens' RestoreDBInstanceToPointInTime (Maybe Text)
restoreDBInstanceToPointInTime_availabilityZone = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Text
availabilityZone :: Maybe Text
$sel:availabilityZone:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
availabilityZone} -> Maybe Text
availabilityZone) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Text
a -> RestoreDBInstanceToPointInTime
s {$sel:availabilityZone:RestoreDBInstanceToPointInTime' :: Maybe Text
availabilityZone = Maybe Text
a} :: RestoreDBInstanceToPointInTime)

-- | 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/.
restoreDBInstanceToPointInTime_backupTarget :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Text)
restoreDBInstanceToPointInTime_backupTarget :: Lens' RestoreDBInstanceToPointInTime (Maybe Text)
restoreDBInstanceToPointInTime_backupTarget = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Text
backupTarget :: Maybe Text
$sel:backupTarget:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
backupTarget} -> Maybe Text
backupTarget) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Text
a -> RestoreDBInstanceToPointInTime
s {$sel:backupTarget:RestoreDBInstanceToPointInTime' :: Maybe Text
backupTarget = Maybe Text
a} :: RestoreDBInstanceToPointInTime)

-- | A value that indicates whether to copy all tags from the restored DB
-- instance to snapshots of the DB instance. By default, tags are not
-- copied.
restoreDBInstanceToPointInTime_copyTagsToSnapshot :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Bool)
restoreDBInstanceToPointInTime_copyTagsToSnapshot :: Lens' RestoreDBInstanceToPointInTime (Maybe Bool)
restoreDBInstanceToPointInTime_copyTagsToSnapshot = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Bool
copyTagsToSnapshot :: Maybe Bool
$sel:copyTagsToSnapshot:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
copyTagsToSnapshot} -> Maybe Bool
copyTagsToSnapshot) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Bool
a -> RestoreDBInstanceToPointInTime
s {$sel:copyTagsToSnapshot:RestoreDBInstanceToPointInTime' :: Maybe Bool
copyTagsToSnapshot = Maybe Bool
a} :: RestoreDBInstanceToPointInTime)

-- | 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.
restoreDBInstanceToPointInTime_customIamInstanceProfile :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Text)
restoreDBInstanceToPointInTime_customIamInstanceProfile :: Lens' RestoreDBInstanceToPointInTime (Maybe Text)
restoreDBInstanceToPointInTime_customIamInstanceProfile = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Text
customIamInstanceProfile :: Maybe Text
$sel:customIamInstanceProfile:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
customIamInstanceProfile} -> Maybe Text
customIamInstanceProfile) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Text
a -> RestoreDBInstanceToPointInTime
s {$sel:customIamInstanceProfile:RestoreDBInstanceToPointInTime' :: Maybe Text
customIamInstanceProfile = Maybe Text
a} :: RestoreDBInstanceToPointInTime)

-- | 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.
restoreDBInstanceToPointInTime_dbInstanceClass :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Text)
restoreDBInstanceToPointInTime_dbInstanceClass :: Lens' RestoreDBInstanceToPointInTime (Maybe Text)
restoreDBInstanceToPointInTime_dbInstanceClass = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Text
dbInstanceClass :: Maybe Text
$sel:dbInstanceClass:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
dbInstanceClass} -> Maybe Text
dbInstanceClass) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Text
a -> RestoreDBInstanceToPointInTime
s {$sel:dbInstanceClass:RestoreDBInstanceToPointInTime' :: Maybe Text
dbInstanceClass = Maybe Text
a} :: RestoreDBInstanceToPointInTime)

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

-- | The name of the DB parameter group to associate with this DB instance.
--
-- If you do not specify a value for @DBParameterGroupName@, then the
-- default @DBParameterGroup@ for the specified DB engine is used.
--
-- 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.
restoreDBInstanceToPointInTime_dbParameterGroupName :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Text)
restoreDBInstanceToPointInTime_dbParameterGroupName :: Lens' RestoreDBInstanceToPointInTime (Maybe Text)
restoreDBInstanceToPointInTime_dbParameterGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Text
dbParameterGroupName :: Maybe Text
$sel:dbParameterGroupName:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
dbParameterGroupName} -> Maybe Text
dbParameterGroupName) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Text
a -> RestoreDBInstanceToPointInTime
s {$sel:dbParameterGroupName:RestoreDBInstanceToPointInTime' :: Maybe Text
dbParameterGroupName = Maybe Text
a} :: RestoreDBInstanceToPointInTime)

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

-- | 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>.
restoreDBInstanceToPointInTime_deletionProtection :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Bool)
restoreDBInstanceToPointInTime_deletionProtection :: Lens' RestoreDBInstanceToPointInTime (Maybe Bool)
restoreDBInstanceToPointInTime_deletionProtection = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Bool
deletionProtection :: Maybe Bool
$sel:deletionProtection:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
deletionProtection} -> Maybe Bool
deletionProtection) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Bool
a -> RestoreDBInstanceToPointInTime
s {$sel:deletionProtection:RestoreDBInstanceToPointInTime' :: Maybe Bool
deletionProtection = Maybe Bool
a} :: RestoreDBInstanceToPointInTime)

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

-- | 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.
restoreDBInstanceToPointInTime_domainIAMRoleName :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Text)
restoreDBInstanceToPointInTime_domainIAMRoleName :: Lens' RestoreDBInstanceToPointInTime (Maybe Text)
restoreDBInstanceToPointInTime_domainIAMRoleName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Text
domainIAMRoleName :: Maybe Text
$sel:domainIAMRoleName:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
domainIAMRoleName} -> Maybe Text
domainIAMRoleName) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Text
a -> RestoreDBInstanceToPointInTime
s {$sel:domainIAMRoleName:RestoreDBInstanceToPointInTime' :: Maybe Text
domainIAMRoleName = Maybe Text
a} :: RestoreDBInstanceToPointInTime)

-- | 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.
restoreDBInstanceToPointInTime_enableCloudwatchLogsExports :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe [Prelude.Text])
restoreDBInstanceToPointInTime_enableCloudwatchLogsExports :: Lens' RestoreDBInstanceToPointInTime (Maybe [Text])
restoreDBInstanceToPointInTime_enableCloudwatchLogsExports = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe [Text]
enableCloudwatchLogsExports :: Maybe [Text]
$sel:enableCloudwatchLogsExports:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe [Text]
enableCloudwatchLogsExports} -> Maybe [Text]
enableCloudwatchLogsExports) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe [Text]
a -> RestoreDBInstanceToPointInTime
s {$sel:enableCloudwatchLogsExports:RestoreDBInstanceToPointInTime' :: Maybe [Text]
enableCloudwatchLogsExports = Maybe [Text]
a} :: RestoreDBInstanceToPointInTime) 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/.
restoreDBInstanceToPointInTime_enableCustomerOwnedIp :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Bool)
restoreDBInstanceToPointInTime_enableCustomerOwnedIp :: Lens' RestoreDBInstanceToPointInTime (Maybe Bool)
restoreDBInstanceToPointInTime_enableCustomerOwnedIp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Bool
enableCustomerOwnedIp :: Maybe Bool
$sel:enableCustomerOwnedIp:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
enableCustomerOwnedIp} -> Maybe Bool
enableCustomerOwnedIp) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Bool
a -> RestoreDBInstanceToPointInTime
s {$sel:enableCustomerOwnedIp:RestoreDBInstanceToPointInTime' :: Maybe Bool
enableCustomerOwnedIp = Maybe Bool
a} :: RestoreDBInstanceToPointInTime)

-- | A value that indicates whether to enable mapping of Amazon Web Services
-- Identity and Access Management (IAM) accounts to database accounts. By
-- default, mapping isn\'t enabled.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 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./
restoreDBInstanceToPointInTime_enableIAMDatabaseAuthentication :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Bool)
restoreDBInstanceToPointInTime_enableIAMDatabaseAuthentication :: Lens' RestoreDBInstanceToPointInTime (Maybe Bool)
restoreDBInstanceToPointInTime_enableIAMDatabaseAuthentication = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Bool
enableIAMDatabaseAuthentication :: Maybe Bool
$sel:enableIAMDatabaseAuthentication:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
enableIAMDatabaseAuthentication} -> Maybe Bool
enableIAMDatabaseAuthentication) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Bool
a -> RestoreDBInstanceToPointInTime
s {$sel:enableIAMDatabaseAuthentication:RestoreDBInstanceToPointInTime' :: Maybe Bool
enableIAMDatabaseAuthentication = Maybe Bool
a} :: RestoreDBInstanceToPointInTime)

-- | 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
--
-- Valid Values:
--
-- -   @mariadb@
--
-- -   @mysql@
--
-- -   @oracle-ee@
--
-- -   @oracle-ee-cdb@
--
-- -   @oracle-se2@
--
-- -   @oracle-se2-cdb@
--
-- -   @postgres@
--
-- -   @sqlserver-ee@
--
-- -   @sqlserver-se@
--
-- -   @sqlserver-ex@
--
-- -   @sqlserver-web@
restoreDBInstanceToPointInTime_engine :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Text)
restoreDBInstanceToPointInTime_engine :: Lens' RestoreDBInstanceToPointInTime (Maybe Text)
restoreDBInstanceToPointInTime_engine = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Text
engine :: Maybe Text
$sel:engine:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
engine} -> Maybe Text
engine) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Text
a -> RestoreDBInstanceToPointInTime
s {$sel:engine:RestoreDBInstanceToPointInTime' :: Maybe Text
engine = Maybe Text
a} :: RestoreDBInstanceToPointInTime)

-- | The amount of Provisioned IOPS (input\/output operations per second) to
-- be initially allocated for the DB instance.
--
-- Constraints: Must be an integer greater than 1000.
--
-- __SQL Server__
--
-- Setting the IOPS value for the SQL Server database engine isn\'t
-- supported.
restoreDBInstanceToPointInTime_iops :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Int)
restoreDBInstanceToPointInTime_iops :: Lens' RestoreDBInstanceToPointInTime (Maybe Int)
restoreDBInstanceToPointInTime_iops = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Int
iops :: Maybe Int
$sel:iops:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Int
iops} -> Maybe Int
iops) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Int
a -> RestoreDBInstanceToPointInTime
s {$sel:iops:RestoreDBInstanceToPointInTime' :: Maybe Int
iops = Maybe Int
a} :: RestoreDBInstanceToPointInTime)

-- | 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@
restoreDBInstanceToPointInTime_licenseModel :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Text)
restoreDBInstanceToPointInTime_licenseModel :: Lens' RestoreDBInstanceToPointInTime (Maybe Text)
restoreDBInstanceToPointInTime_licenseModel = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Text
licenseModel :: Maybe Text
$sel:licenseModel:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
licenseModel} -> Maybe Text
licenseModel) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Text
a -> RestoreDBInstanceToPointInTime
s {$sel:licenseModel:RestoreDBInstanceToPointInTime' :: Maybe Text
licenseModel = Maybe Text
a} :: RestoreDBInstanceToPointInTime)

-- | The upper limit in gibibytes (GiB) to which Amazon RDS can automatically
-- scale the storage of the DB instance.
--
-- For more information about this setting, including limitations that
-- apply to it, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling Managing capacity automatically with Amazon RDS storage autoscaling>
-- in the /Amazon RDS User Guide/.
--
-- This setting doesn\'t apply to RDS Custom.
restoreDBInstanceToPointInTime_maxAllocatedStorage :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Int)
restoreDBInstanceToPointInTime_maxAllocatedStorage :: Lens' RestoreDBInstanceToPointInTime (Maybe Int)
restoreDBInstanceToPointInTime_maxAllocatedStorage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Int
maxAllocatedStorage :: Maybe Int
$sel:maxAllocatedStorage:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Int
maxAllocatedStorage} -> Maybe Int
maxAllocatedStorage) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Int
a -> RestoreDBInstanceToPointInTime
s {$sel:maxAllocatedStorage:RestoreDBInstanceToPointInTime' :: Maybe Int
maxAllocatedStorage = Maybe Int
a} :: RestoreDBInstanceToPointInTime)

-- | 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.
restoreDBInstanceToPointInTime_multiAZ :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Bool)
restoreDBInstanceToPointInTime_multiAZ :: Lens' RestoreDBInstanceToPointInTime (Maybe Bool)
restoreDBInstanceToPointInTime_multiAZ = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Bool
multiAZ :: Maybe Bool
$sel:multiAZ:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
multiAZ} -> Maybe Bool
multiAZ) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Bool
a -> RestoreDBInstanceToPointInTime
s {$sel:multiAZ:RestoreDBInstanceToPointInTime' :: Maybe Bool
multiAZ = Maybe Bool
a} :: RestoreDBInstanceToPointInTime)

-- | 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./
restoreDBInstanceToPointInTime_networkType :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Text)
restoreDBInstanceToPointInTime_networkType :: Lens' RestoreDBInstanceToPointInTime (Maybe Text)
restoreDBInstanceToPointInTime_networkType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Text
networkType :: Maybe Text
$sel:networkType:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
networkType} -> Maybe Text
networkType) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Text
a -> RestoreDBInstanceToPointInTime
s {$sel:networkType:RestoreDBInstanceToPointInTime' :: Maybe Text
networkType = Maybe Text
a} :: RestoreDBInstanceToPointInTime)

-- | 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.
restoreDBInstanceToPointInTime_optionGroupName :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Text)
restoreDBInstanceToPointInTime_optionGroupName :: Lens' RestoreDBInstanceToPointInTime (Maybe Text)
restoreDBInstanceToPointInTime_optionGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Text
optionGroupName :: Maybe Text
$sel:optionGroupName:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
optionGroupName} -> Maybe Text
optionGroupName) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Text
a -> RestoreDBInstanceToPointInTime
s {$sel:optionGroupName:RestoreDBInstanceToPointInTime' :: Maybe Text
optionGroupName = Maybe Text
a} :: RestoreDBInstanceToPointInTime)

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

-- | 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.
restoreDBInstanceToPointInTime_processorFeatures :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe [ProcessorFeature])
restoreDBInstanceToPointInTime_processorFeatures :: Lens' RestoreDBInstanceToPointInTime (Maybe [ProcessorFeature])
restoreDBInstanceToPointInTime_processorFeatures = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe [ProcessorFeature]
processorFeatures :: Maybe [ProcessorFeature]
$sel:processorFeatures:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe [ProcessorFeature]
processorFeatures} -> Maybe [ProcessorFeature]
processorFeatures) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe [ProcessorFeature]
a -> RestoreDBInstanceToPointInTime
s {$sel:processorFeatures:RestoreDBInstanceToPointInTime' :: Maybe [ProcessorFeature]
processorFeatures = Maybe [ProcessorFeature]
a} :: RestoreDBInstanceToPointInTime) 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 cluster is publicly accessible, its Domain Name System (DNS)
-- endpoint resolves to the private IP address from within the DB
-- cluster\'s virtual private cloud (VPC). It resolves to the public IP
-- address from outside of the DB cluster\'s VPC. Access to the DB cluster
-- is ultimately controlled by the security group it uses. That public
-- access isn\'t permitted if the security group assigned to the DB cluster
-- 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.
restoreDBInstanceToPointInTime_publiclyAccessible :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Bool)
restoreDBInstanceToPointInTime_publiclyAccessible :: Lens' RestoreDBInstanceToPointInTime (Maybe Bool)
restoreDBInstanceToPointInTime_publiclyAccessible = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Bool
publiclyAccessible :: Maybe Bool
$sel:publiclyAccessible:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
publiclyAccessible} -> Maybe Bool
publiclyAccessible) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Bool
a -> RestoreDBInstanceToPointInTime
s {$sel:publiclyAccessible:RestoreDBInstanceToPointInTime' :: Maybe Bool
publiclyAccessible = Maybe Bool
a} :: RestoreDBInstanceToPointInTime)

-- | The date and time to restore from.
--
-- Valid Values: Value must be a time in Universal Coordinated Time (UTC)
-- format
--
-- Constraints:
--
-- -   Must be before the latest restorable time for the DB instance
--
-- -   Can\'t be specified if the @UseLatestRestorableTime@ parameter is
--     enabled
--
-- Example: @2009-09-07T23:45:00Z@
restoreDBInstanceToPointInTime_restoreTime :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.UTCTime)
restoreDBInstanceToPointInTime_restoreTime :: Lens' RestoreDBInstanceToPointInTime (Maybe UTCTime)
restoreDBInstanceToPointInTime_restoreTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe ISO8601
restoreTime :: Maybe ISO8601
$sel:restoreTime:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe ISO8601
restoreTime} -> Maybe ISO8601
restoreTime) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe ISO8601
a -> RestoreDBInstanceToPointInTime
s {$sel:restoreTime:RestoreDBInstanceToPointInTime' :: Maybe ISO8601
restoreTime = Maybe ISO8601
a} :: RestoreDBInstanceToPointInTime) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The Amazon Resource Name (ARN) of the replicated automated backups from
-- which to restore, for example,
-- @arn:aws:rds:useast-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE@.
--
-- This setting doesn\'t apply to RDS Custom.
restoreDBInstanceToPointInTime_sourceDBInstanceAutomatedBackupsArn :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Text)
restoreDBInstanceToPointInTime_sourceDBInstanceAutomatedBackupsArn :: Lens' RestoreDBInstanceToPointInTime (Maybe Text)
restoreDBInstanceToPointInTime_sourceDBInstanceAutomatedBackupsArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Text
sourceDBInstanceAutomatedBackupsArn :: Maybe Text
$sel:sourceDBInstanceAutomatedBackupsArn:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
sourceDBInstanceAutomatedBackupsArn} -> Maybe Text
sourceDBInstanceAutomatedBackupsArn) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Text
a -> RestoreDBInstanceToPointInTime
s {$sel:sourceDBInstanceAutomatedBackupsArn:RestoreDBInstanceToPointInTime' :: Maybe Text
sourceDBInstanceAutomatedBackupsArn = Maybe Text
a} :: RestoreDBInstanceToPointInTime)

-- | The identifier of the source DB instance from which to restore.
--
-- Constraints:
--
-- -   Must match the identifier of an existing DB instance.
restoreDBInstanceToPointInTime_sourceDBInstanceIdentifier :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Text)
restoreDBInstanceToPointInTime_sourceDBInstanceIdentifier :: Lens' RestoreDBInstanceToPointInTime (Maybe Text)
restoreDBInstanceToPointInTime_sourceDBInstanceIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Text
sourceDBInstanceIdentifier :: Maybe Text
$sel:sourceDBInstanceIdentifier:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
sourceDBInstanceIdentifier} -> Maybe Text
sourceDBInstanceIdentifier) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Text
a -> RestoreDBInstanceToPointInTime
s {$sel:sourceDBInstanceIdentifier:RestoreDBInstanceToPointInTime' :: Maybe Text
sourceDBInstanceIdentifier = Maybe Text
a} :: RestoreDBInstanceToPointInTime)

-- | The resource ID of the source DB instance from which to restore.
restoreDBInstanceToPointInTime_sourceDbiResourceId :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Text)
restoreDBInstanceToPointInTime_sourceDbiResourceId :: Lens' RestoreDBInstanceToPointInTime (Maybe Text)
restoreDBInstanceToPointInTime_sourceDbiResourceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Text
sourceDbiResourceId :: Maybe Text
$sel:sourceDbiResourceId:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
sourceDbiResourceId} -> Maybe Text
sourceDbiResourceId) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Text
a -> RestoreDBInstanceToPointInTime
s {$sel:sourceDbiResourceId:RestoreDBInstanceToPointInTime' :: Maybe Text
sourceDbiResourceId = Maybe Text
a} :: RestoreDBInstanceToPointInTime)

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

-- | 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@
restoreDBInstanceToPointInTime_storageType :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Text)
restoreDBInstanceToPointInTime_storageType :: Lens' RestoreDBInstanceToPointInTime (Maybe Text)
restoreDBInstanceToPointInTime_storageType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Text
storageType :: Maybe Text
$sel:storageType:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
storageType} -> Maybe Text
storageType) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Text
a -> RestoreDBInstanceToPointInTime
s {$sel:storageType:RestoreDBInstanceToPointInTime' :: Maybe Text
storageType = Maybe Text
a} :: RestoreDBInstanceToPointInTime)

-- | Undocumented member.
restoreDBInstanceToPointInTime_tags :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe [Tag])
restoreDBInstanceToPointInTime_tags :: Lens' RestoreDBInstanceToPointInTime (Maybe [Tag])
restoreDBInstanceToPointInTime_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe [Tag]
a -> RestoreDBInstanceToPointInTime
s {$sel:tags:RestoreDBInstanceToPointInTime' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: RestoreDBInstanceToPointInTime) 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.
restoreDBInstanceToPointInTime_tdeCredentialArn :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Text)
restoreDBInstanceToPointInTime_tdeCredentialArn :: Lens' RestoreDBInstanceToPointInTime (Maybe Text)
restoreDBInstanceToPointInTime_tdeCredentialArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Text
tdeCredentialArn :: Maybe Text
$sel:tdeCredentialArn:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
tdeCredentialArn} -> Maybe Text
tdeCredentialArn) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Text
a -> RestoreDBInstanceToPointInTime
s {$sel:tdeCredentialArn:RestoreDBInstanceToPointInTime' :: Maybe Text
tdeCredentialArn = Maybe Text
a} :: RestoreDBInstanceToPointInTime)

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

-- | 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.
restoreDBInstanceToPointInTime_useDefaultProcessorFeatures :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Bool)
restoreDBInstanceToPointInTime_useDefaultProcessorFeatures :: Lens' RestoreDBInstanceToPointInTime (Maybe Bool)
restoreDBInstanceToPointInTime_useDefaultProcessorFeatures = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Bool
useDefaultProcessorFeatures :: Maybe Bool
$sel:useDefaultProcessorFeatures:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
useDefaultProcessorFeatures} -> Maybe Bool
useDefaultProcessorFeatures) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Bool
a -> RestoreDBInstanceToPointInTime
s {$sel:useDefaultProcessorFeatures:RestoreDBInstanceToPointInTime' :: Maybe Bool
useDefaultProcessorFeatures = Maybe Bool
a} :: RestoreDBInstanceToPointInTime)

-- | A value that indicates whether the DB instance is restored from the
-- latest backup time. By default, the DB instance isn\'t restored from the
-- latest backup time.
--
-- Constraints: Can\'t be specified if the @RestoreTime@ parameter is
-- provided.
restoreDBInstanceToPointInTime_useLatestRestorableTime :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe Prelude.Bool)
restoreDBInstanceToPointInTime_useLatestRestorableTime :: Lens' RestoreDBInstanceToPointInTime (Maybe Bool)
restoreDBInstanceToPointInTime_useLatestRestorableTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe Bool
useLatestRestorableTime :: Maybe Bool
$sel:useLatestRestorableTime:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
useLatestRestorableTime} -> Maybe Bool
useLatestRestorableTime) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe Bool
a -> RestoreDBInstanceToPointInTime
s {$sel:useLatestRestorableTime:RestoreDBInstanceToPointInTime' :: Maybe Bool
useLatestRestorableTime = Maybe Bool
a} :: RestoreDBInstanceToPointInTime)

-- | 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.
restoreDBInstanceToPointInTime_vpcSecurityGroupIds :: Lens.Lens' RestoreDBInstanceToPointInTime (Prelude.Maybe [Prelude.Text])
restoreDBInstanceToPointInTime_vpcSecurityGroupIds :: Lens' RestoreDBInstanceToPointInTime (Maybe [Text])
restoreDBInstanceToPointInTime_vpcSecurityGroupIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Maybe [Text]
vpcSecurityGroupIds :: Maybe [Text]
$sel:vpcSecurityGroupIds:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe [Text]
vpcSecurityGroupIds} -> Maybe [Text]
vpcSecurityGroupIds) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Maybe [Text]
a -> RestoreDBInstanceToPointInTime
s {$sel:vpcSecurityGroupIds:RestoreDBInstanceToPointInTime' :: Maybe [Text]
vpcSecurityGroupIds = Maybe [Text]
a} :: RestoreDBInstanceToPointInTime) 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 name of the new DB instance to be created.
--
-- Constraints:
--
-- -   Must contain from 1 to 63 letters, numbers, or hyphens
--
-- -   First character must be a letter
--
-- -   Can\'t end with a hyphen or contain two consecutive hyphens
restoreDBInstanceToPointInTime_targetDBInstanceIdentifier :: Lens.Lens' RestoreDBInstanceToPointInTime Prelude.Text
restoreDBInstanceToPointInTime_targetDBInstanceIdentifier :: Lens' RestoreDBInstanceToPointInTime Text
restoreDBInstanceToPointInTime_targetDBInstanceIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RestoreDBInstanceToPointInTime' {Text
targetDBInstanceIdentifier :: Text
$sel:targetDBInstanceIdentifier:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Text
targetDBInstanceIdentifier} -> Text
targetDBInstanceIdentifier) (\s :: RestoreDBInstanceToPointInTime
s@RestoreDBInstanceToPointInTime' {} Text
a -> RestoreDBInstanceToPointInTime
s {$sel:targetDBInstanceIdentifier:RestoreDBInstanceToPointInTime' :: Text
targetDBInstanceIdentifier = Text
a} :: RestoreDBInstanceToPointInTime)

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

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

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

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

instance Data.ToQuery RestoreDBInstanceToPointInTime where
  toQuery :: RestoreDBInstanceToPointInTime -> QueryString
toQuery RestoreDBInstanceToPointInTime' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe [ProcessorFeature]
Maybe [Tag]
Maybe Text
Maybe ISO8601
Text
targetDBInstanceIdentifier :: Text
vpcSecurityGroupIds :: Maybe [Text]
useLatestRestorableTime :: Maybe Bool
useDefaultProcessorFeatures :: Maybe Bool
tdeCredentialPassword :: Maybe Text
tdeCredentialArn :: Maybe Text
tags :: Maybe [Tag]
storageType :: Maybe Text
storageThroughput :: Maybe Int
sourceDbiResourceId :: Maybe Text
sourceDBInstanceIdentifier :: Maybe Text
sourceDBInstanceAutomatedBackupsArn :: Maybe Text
restoreTime :: Maybe ISO8601
publiclyAccessible :: Maybe Bool
processorFeatures :: Maybe [ProcessorFeature]
port :: Maybe Int
optionGroupName :: Maybe Text
networkType :: Maybe Text
multiAZ :: Maybe Bool
maxAllocatedStorage :: Maybe Int
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
dbParameterGroupName :: Maybe Text
dbName :: Maybe Text
dbInstanceClass :: Maybe Text
customIamInstanceProfile :: Maybe Text
copyTagsToSnapshot :: Maybe Bool
backupTarget :: Maybe Text
availabilityZone :: Maybe Text
autoMinorVersionUpgrade :: Maybe Bool
$sel:targetDBInstanceIdentifier:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Text
$sel:vpcSecurityGroupIds:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe [Text]
$sel:useLatestRestorableTime:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
$sel:useDefaultProcessorFeatures:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
$sel:tdeCredentialPassword:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:tdeCredentialArn:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:tags:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe [Tag]
$sel:storageType:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:storageThroughput:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Int
$sel:sourceDbiResourceId:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:sourceDBInstanceIdentifier:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:sourceDBInstanceAutomatedBackupsArn:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:restoreTime:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe ISO8601
$sel:publiclyAccessible:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
$sel:processorFeatures:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe [ProcessorFeature]
$sel:port:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Int
$sel:optionGroupName:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:networkType:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:multiAZ:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
$sel:maxAllocatedStorage:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Int
$sel:licenseModel:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:iops:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Int
$sel:engine:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:enableIAMDatabaseAuthentication:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
$sel:enableCustomerOwnedIp:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
$sel:enableCloudwatchLogsExports:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe [Text]
$sel:domainIAMRoleName:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:domain:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:deletionProtection:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
$sel:dbSubnetGroupName:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:dbParameterGroupName:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:dbName:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:dbInstanceClass:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:customIamInstanceProfile:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:copyTagsToSnapshot:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
$sel:backupTarget:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:availabilityZone:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Text
$sel:autoMinorVersionUpgrade:RestoreDBInstanceToPointInTime' :: RestoreDBInstanceToPointInTime -> Maybe Bool
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: ( ByteString
"RestoreDBInstanceToPointInTime" ::
                      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
"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
"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
"MaxAllocatedStorage" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
maxAllocatedStorage,
        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
"RestoreTime" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe ISO8601
restoreTime,
        ByteString
"SourceDBInstanceAutomatedBackupsArn"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
sourceDBInstanceAutomatedBackupsArn,
        ByteString
"SourceDBInstanceIdentifier"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
sourceDBInstanceIdentifier,
        ByteString
"SourceDbiResourceId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
sourceDbiResourceId,
        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
"UseLatestRestorableTime"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
useLatestRestorableTime,
        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
"TargetDBInstanceIdentifier"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
targetDBInstanceIdentifier
      ]

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

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

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

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

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