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

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

-- |
-- Module      : Amazonka.DMS.Types.OracleSettings
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.DMS.Types.OracleSettings where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import Amazonka.DMS.Types.CharLengthSemantics
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

-- | Provides information that defines an Oracle endpoint.
--
-- /See:/ 'newOracleSettings' smart constructor.
data OracleSettings = OracleSettings'
  { -- | Set this attribute to @false@ in order to use the Binary Reader to
    -- capture change data for an Amazon RDS for Oracle as the source. This
    -- tells the DMS instance to not access redo logs through any specified
    -- path prefix replacement using direct file access.
    OracleSettings -> Maybe Bool
accessAlternateDirectly :: Prelude.Maybe Prelude.Bool,
    -- | Set this attribute to set up table-level supplemental logging for the
    -- Oracle database. This attribute enables PRIMARY KEY supplemental logging
    -- on all tables selected for a migration task.
    --
    -- If you use this option, you still need to enable database-level
    -- supplemental logging.
    OracleSettings -> Maybe Bool
addSupplementalLogging :: Prelude.Maybe Prelude.Bool,
    -- | Set this attribute with @ArchivedLogDestId@ in a primary\/ standby
    -- setup. This attribute is useful in the case of a switchover. In this
    -- case, DMS needs to know which destination to get archive redo logs from
    -- to read changes. This need arises because the previous primary instance
    -- is now a standby instance after switchover.
    --
    -- Although DMS supports the use of the Oracle @RESETLOGS@ option to open
    -- the database, never use @RESETLOGS@ unless necessary. For additional
    -- information about @RESETLOGS@, see
    -- <https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/rman-data-repair-concepts.html#GUID-1805CCF7-4AF2-482D-B65A-998192F89C2B RMAN Data Repair Concepts>
    -- in the /Oracle Database Backup and Recovery User\'s Guide/.
    OracleSettings -> Maybe Int
additionalArchivedLogDestId :: Prelude.Maybe Prelude.Int,
    -- | Set this attribute to @true@ to enable replication of Oracle tables
    -- containing columns that are nested tables or defined types.
    OracleSettings -> Maybe Bool
allowSelectNestedTables :: Prelude.Maybe Prelude.Bool,
    -- | Specifies the ID of the destination for the archived redo logs. This
    -- value should be the same as a number in the dest_id column of the
    -- v$archived_log view. If you work with an additional redo log
    -- destination, use the @AdditionalArchivedLogDestId@ option to specify the
    -- additional destination ID. Doing this improves performance by ensuring
    -- that the correct logs are accessed from the outset.
    OracleSettings -> Maybe Int
archivedLogDestId :: Prelude.Maybe Prelude.Int,
    -- | When this field is set to @Y@, DMS only accesses the archived redo logs.
    -- If the archived redo logs are stored on Automatic Storage Management
    -- (ASM) only, the DMS user account needs to be granted ASM privileges.
    OracleSettings -> Maybe Bool
archivedLogsOnly :: Prelude.Maybe Prelude.Bool,
    -- | For an Oracle source endpoint, your Oracle Automatic Storage Management
    -- (ASM) password. You can set this value from the
    -- @ @/@asm_user_password@/@ @ value. You set this value as part of the
    -- comma-separated value that you set to the @Password@ request parameter
    -- when you create the endpoint to access transaction logs using Binary
    -- Reader. For more information, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration Configuration for change data capture (CDC) on an Oracle source database>.
    OracleSettings -> Maybe (Sensitive Text)
asmPassword :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | For an Oracle source endpoint, your ASM server address. You can set this
    -- value from the @asm_server@ value. You set @asm_server@ as part of the
    -- extra connection attribute string to access an Oracle server with Binary
    -- Reader that uses ASM. For more information, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration Configuration for change data capture (CDC) on an Oracle source database>.
    OracleSettings -> Maybe Text
asmServer :: Prelude.Maybe Prelude.Text,
    -- | For an Oracle source endpoint, your ASM user name. You can set this
    -- value from the @asm_user@ value. You set @asm_user@ as part of the extra
    -- connection attribute string to access an Oracle server with Binary
    -- Reader that uses ASM. For more information, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration Configuration for change data capture (CDC) on an Oracle source database>.
    OracleSettings -> Maybe Text
asmUser :: Prelude.Maybe Prelude.Text,
    -- | Specifies whether the length of a character column is in bytes or in
    -- characters. To indicate that the character column length is in
    -- characters, set this attribute to @CHAR@. Otherwise, the character
    -- column length is in bytes.
    --
    -- Example: @charLengthSemantics=CHAR;@
    OracleSettings -> Maybe CharLengthSemantics
charLengthSemantics :: Prelude.Maybe CharLengthSemantics,
    -- | Database name for the endpoint.
    OracleSettings -> Maybe Text
databaseName :: Prelude.Maybe Prelude.Text,
    -- | When set to @true@, this attribute helps to increase the commit rate on
    -- the Oracle target database by writing directly to tables and not writing
    -- a trail to database logs.
    OracleSettings -> Maybe Bool
directPathNoLog :: Prelude.Maybe Prelude.Bool,
    -- | When set to @true@, this attribute specifies a parallel load when
    -- @useDirectPathFullLoad@ is set to @Y@. This attribute also only applies
    -- when you use the DMS parallel load feature. Note that the target table
    -- cannot have any constraints or indexes.
    OracleSettings -> Maybe Bool
directPathParallelLoad :: Prelude.Maybe Prelude.Bool,
    -- | Set this attribute to enable homogenous tablespace replication and
    -- create existing tables or indexes under the same tablespace on the
    -- target.
    OracleSettings -> Maybe Bool
enableHomogenousTablespace :: Prelude.Maybe Prelude.Bool,
    -- | Specifies the IDs of one more destinations for one or more archived redo
    -- logs. These IDs are the values of the @dest_id@ column in the
    -- @v$archived_log@ view. Use this setting with the @archivedLogDestId@
    -- extra connection attribute in a primary-to-single setup or a
    -- primary-to-multiple-standby setup.
    --
    -- This setting is useful in a switchover when you use an Oracle Data Guard
    -- database as a source. In this case, DMS needs information about what
    -- destination to get archive redo logs from to read changes. DMS needs
    -- this because after the switchover the previous primary is a standby
    -- instance. For example, in a primary-to-single standby setup you might
    -- apply the following settings.
    --
    -- @archivedLogDestId=1; ExtraArchivedLogDestIds=[2]@
    --
    -- In a primary-to-multiple-standby setup, you might apply the following
    -- settings.
    --
    -- @archivedLogDestId=1; ExtraArchivedLogDestIds=[2,3,4]@
    --
    -- Although DMS supports the use of the Oracle @RESETLOGS@ option to open
    -- the database, never use @RESETLOGS@ unless it\'s necessary. For more
    -- information about @RESETLOGS@, see
    -- <https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/rman-data-repair-concepts.html#GUID-1805CCF7-4AF2-482D-B65A-998192F89C2B RMAN Data Repair Concepts>
    -- in the /Oracle Database Backup and Recovery User\'s Guide/.
    OracleSettings -> Maybe [Int]
extraArchivedLogDestIds :: Prelude.Maybe [Prelude.Int],
    -- | When set to @true@, this attribute causes a task to fail if the actual
    -- size of an LOB column is greater than the specified @LobMaxSize@.
    --
    -- If a task is set to limited LOB mode and this option is set to @true@,
    -- the task fails instead of truncating the LOB data.
    OracleSettings -> Maybe Bool
failTasksOnLobTruncation :: Prelude.Maybe Prelude.Bool,
    -- | Specifies the number scale. You can select a scale up to 38, or you can
    -- select FLOAT. By default, the NUMBER data type is converted to precision
    -- 38, scale 10.
    --
    -- Example: @numberDataTypeScale=12@
    OracleSettings -> Maybe Int
numberDatatypeScale :: Prelude.Maybe Prelude.Int,
    -- | Set this string attribute to the required value in order to use the
    -- Binary Reader to capture change data for an Amazon RDS for Oracle as the
    -- source. This value specifies the default Oracle root used to access the
    -- redo logs.
    OracleSettings -> Maybe Text
oraclePathPrefix :: Prelude.Maybe Prelude.Text,
    -- | Set this attribute to change the number of threads that DMS configures
    -- to perform a change data capture (CDC) load using Oracle Automatic
    -- Storage Management (ASM). You can specify an integer value between 2
    -- (the default) and 8 (the maximum). Use this attribute together with the
    -- @readAheadBlocks@ attribute.
    OracleSettings -> Maybe Int
parallelAsmReadThreads :: Prelude.Maybe Prelude.Int,
    -- | Endpoint connection password.
    OracleSettings -> Maybe (Sensitive Text)
password :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | Endpoint TCP port.
    OracleSettings -> Maybe Int
port :: Prelude.Maybe Prelude.Int,
    -- | Set this attribute to change the number of read-ahead blocks that DMS
    -- configures to perform a change data capture (CDC) load using Oracle
    -- Automatic Storage Management (ASM). You can specify an integer value
    -- between 1000 (the default) and 200,000 (the maximum).
    OracleSettings -> Maybe Int
readAheadBlocks :: Prelude.Maybe Prelude.Int,
    -- | When set to @true@, this attribute supports tablespace replication.
    OracleSettings -> Maybe Bool
readTableSpaceName :: Prelude.Maybe Prelude.Bool,
    -- | Set this attribute to true in order to use the Binary Reader to capture
    -- change data for an Amazon RDS for Oracle as the source. This setting
    -- tells DMS instance to replace the default Oracle root with the specified
    -- @usePathPrefix@ setting to access the redo logs.
    OracleSettings -> Maybe Bool
replacePathPrefix :: Prelude.Maybe Prelude.Bool,
    -- | Specifies the number of seconds that the system waits before resending a
    -- query.
    --
    -- Example: @retryInterval=6;@
    OracleSettings -> Maybe Int
retryInterval :: Prelude.Maybe Prelude.Int,
    -- | The full Amazon Resource Name (ARN) of the IAM role that specifies DMS
    -- as the trusted entity and grants the required permissions to access the
    -- value in @SecretsManagerSecret@. The role must allow the @iam:PassRole@
    -- action. @SecretsManagerSecret@ has the value of the Amazon Web Services
    -- Secrets Manager secret that allows access to the Oracle endpoint.
    --
    -- You can specify one of two sets of values for these permissions. You can
    -- specify the values for this setting and @SecretsManagerSecretId@. Or you
    -- can specify clear-text values for @UserName@, @Password@, @ServerName@,
    -- and @Port@. You can\'t specify both. For more information on creating
    -- this @SecretsManagerSecret@ and the @SecretsManagerAccessRoleArn@ and
    -- @SecretsManagerSecretId@ required to access it, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager Using secrets to access Database Migration Service resources>
    -- in the /Database Migration Service User Guide/.
    OracleSettings -> Maybe Text
secretsManagerAccessRoleArn :: Prelude.Maybe Prelude.Text,
    -- | Required only if your Oracle endpoint uses Automatic Storage Management
    -- (ASM). The full ARN of the IAM role that specifies DMS as the trusted
    -- entity and grants the required permissions to access the
    -- @SecretsManagerOracleAsmSecret@. This @SecretsManagerOracleAsmSecret@
    -- has the secret value that allows access to the Oracle ASM of the
    -- endpoint.
    --
    -- You can specify one of two sets of values for these permissions. You can
    -- specify the values for this setting and
    -- @SecretsManagerOracleAsmSecretId@. Or you can specify clear-text values
    -- for @AsmUserName@, @AsmPassword@, and @AsmServerName@. You can\'t
    -- specify both. For more information on creating this
    -- @SecretsManagerOracleAsmSecret@ and the
    -- @SecretsManagerOracleAsmAccessRoleArn@ and
    -- @SecretsManagerOracleAsmSecretId@ required to access it, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager Using secrets to access Database Migration Service resources>
    -- in the /Database Migration Service User Guide/.
    OracleSettings -> Maybe Text
secretsManagerOracleAsmAccessRoleArn :: Prelude.Maybe Prelude.Text,
    -- | Required only if your Oracle endpoint uses Automatic Storage Management
    -- (ASM). The full ARN, partial ARN, or friendly name of the
    -- @SecretsManagerOracleAsmSecret@ that contains the Oracle ASM connection
    -- details for the Oracle endpoint.
    OracleSettings -> Maybe Text
secretsManagerOracleAsmSecretId :: Prelude.Maybe Prelude.Text,
    -- | The full ARN, partial ARN, or friendly name of the
    -- @SecretsManagerSecret@ that contains the Oracle endpoint connection
    -- details.
    OracleSettings -> Maybe Text
secretsManagerSecretId :: Prelude.Maybe Prelude.Text,
    -- | For an Oracle source endpoint, the transparent data encryption (TDE)
    -- password required by AWM DMS to access Oracle redo logs encrypted by TDE
    -- using Binary Reader. It is also the @ @/@TDE_Password@/@ @ part of the
    -- comma-separated value you set to the @Password@ request parameter when
    -- you create the endpoint. The @SecurityDbEncryptian@ setting is related
    -- to this @SecurityDbEncryptionName@ setting. For more information, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Encryption Supported encryption methods for using Oracle as a source for DMS>
    -- in the /Database Migration Service User Guide/.
    OracleSettings -> Maybe (Sensitive Text)
securityDbEncryption :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | For an Oracle source endpoint, the name of a key used for the
    -- transparent data encryption (TDE) of the columns and tablespaces in an
    -- Oracle source database that is encrypted using TDE. The key value is the
    -- value of the @SecurityDbEncryption@ setting. For more information on
    -- setting the key name value of @SecurityDbEncryptionName@, see the
    -- information and example for setting the @securityDbEncryptionName@ extra
    -- connection attribute in
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Encryption Supported encryption methods for using Oracle as a source for DMS>
    -- in the /Database Migration Service User Guide/.
    OracleSettings -> Maybe Text
securityDbEncryptionName :: Prelude.Maybe Prelude.Text,
    -- | Fully qualified domain name of the endpoint.
    OracleSettings -> Maybe Text
serverName :: Prelude.Maybe Prelude.Text,
    -- | Use this attribute to convert @SDO_GEOMETRY@ to @GEOJSON@ format. By
    -- default, DMS calls the @SDO2GEOJSON@ custom function if present and
    -- accessible. Or you can create your own custom function that mimics the
    -- operation of @SDOGEOJSON@ and set
    -- @SpatialDataOptionToGeoJsonFunctionName@ to call it instead.
    OracleSettings -> Maybe Text
spatialDataOptionToGeoJsonFunctionName :: Prelude.Maybe Prelude.Text,
    -- | Use this attribute to specify a time in minutes for the delay in standby
    -- sync. If the source is an Oracle Active Data Guard standby database, use
    -- this attribute to specify the time lag between primary and standby
    -- databases.
    --
    -- In DMS, you can create an Oracle CDC task that uses an Active Data Guard
    -- standby instance as a source for replicating ongoing changes. Doing this
    -- eliminates the need to connect to an active database that might be in
    -- production.
    OracleSettings -> Maybe Int
standbyDelayTime :: Prelude.Maybe Prelude.Int,
    -- | Use the @TrimSpaceInChar@ source endpoint setting to trim data on CHAR
    -- and NCHAR data types during migration. The default value is @true@.
    OracleSettings -> Maybe Bool
trimSpaceInChar :: Prelude.Maybe Prelude.Bool,
    -- | Set this attribute to @true@ in order to use the Binary Reader to
    -- capture change data for an Amazon RDS for Oracle as the source. This
    -- tells the DMS instance to use any specified prefix replacement to access
    -- all online redo logs.
    OracleSettings -> Maybe Bool
useAlternateFolderForOnline :: Prelude.Maybe Prelude.Bool,
    -- | Set this attribute to Y to capture change data using the Binary Reader
    -- utility. Set @UseLogminerReader@ to N to set this attribute to Y. To use
    -- Binary Reader with Amazon RDS for Oracle as the source, you set
    -- additional attributes. For more information about using this setting
    -- with Oracle Automatic Storage Management (ASM), see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC Using Oracle LogMiner or DMS Binary Reader for CDC>.
    OracleSettings -> Maybe Bool
useBFile :: Prelude.Maybe Prelude.Bool,
    -- | Set this attribute to Y to have DMS use a direct path full load. Specify
    -- this value to use the direct path protocol in the Oracle Call Interface
    -- (OCI). By using this OCI protocol, you can bulk-load Oracle target
    -- tables during a full load.
    OracleSettings -> Maybe Bool
useDirectPathFullLoad :: Prelude.Maybe Prelude.Bool,
    -- | Set this attribute to Y to capture change data using the Oracle LogMiner
    -- utility (the default). Set this attribute to N if you want to access the
    -- redo logs as a binary file. When you set @UseLogminerReader@ to N, also
    -- set @UseBfile@ to Y. For more information on this setting and using
    -- Oracle ASM, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC Using Oracle LogMiner or DMS Binary Reader for CDC>
    -- in the /DMS User Guide/.
    OracleSettings -> Maybe Bool
useLogminerReader :: Prelude.Maybe Prelude.Bool,
    -- | Set this string attribute to the required value in order to use the
    -- Binary Reader to capture change data for an Amazon RDS for Oracle as the
    -- source. This value specifies the path prefix used to replace the default
    -- Oracle root to access the redo logs.
    OracleSettings -> Maybe Text
usePathPrefix :: Prelude.Maybe Prelude.Text,
    -- | Endpoint connection user name.
    OracleSettings -> Maybe Text
username :: Prelude.Maybe Prelude.Text
  }
  deriving (OracleSettings -> OracleSettings -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OracleSettings -> OracleSettings -> Bool
$c/= :: OracleSettings -> OracleSettings -> Bool
== :: OracleSettings -> OracleSettings -> Bool
$c== :: OracleSettings -> OracleSettings -> Bool
Prelude.Eq, Int -> OracleSettings -> ShowS
[OracleSettings] -> ShowS
OracleSettings -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [OracleSettings] -> ShowS
$cshowList :: [OracleSettings] -> ShowS
show :: OracleSettings -> String
$cshow :: OracleSettings -> String
showsPrec :: Int -> OracleSettings -> ShowS
$cshowsPrec :: Int -> OracleSettings -> ShowS
Prelude.Show, forall x. Rep OracleSettings x -> OracleSettings
forall x. OracleSettings -> Rep OracleSettings x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep OracleSettings x -> OracleSettings
$cfrom :: forall x. OracleSettings -> Rep OracleSettings x
Prelude.Generic)

-- |
-- Create a value of 'OracleSettings' 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:
--
-- 'accessAlternateDirectly', 'oracleSettings_accessAlternateDirectly' - Set this attribute to @false@ in order to use the Binary Reader to
-- capture change data for an Amazon RDS for Oracle as the source. This
-- tells the DMS instance to not access redo logs through any specified
-- path prefix replacement using direct file access.
--
-- 'addSupplementalLogging', 'oracleSettings_addSupplementalLogging' - Set this attribute to set up table-level supplemental logging for the
-- Oracle database. This attribute enables PRIMARY KEY supplemental logging
-- on all tables selected for a migration task.
--
-- If you use this option, you still need to enable database-level
-- supplemental logging.
--
-- 'additionalArchivedLogDestId', 'oracleSettings_additionalArchivedLogDestId' - Set this attribute with @ArchivedLogDestId@ in a primary\/ standby
-- setup. This attribute is useful in the case of a switchover. In this
-- case, DMS needs to know which destination to get archive redo logs from
-- to read changes. This need arises because the previous primary instance
-- is now a standby instance after switchover.
--
-- Although DMS supports the use of the Oracle @RESETLOGS@ option to open
-- the database, never use @RESETLOGS@ unless necessary. For additional
-- information about @RESETLOGS@, see
-- <https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/rman-data-repair-concepts.html#GUID-1805CCF7-4AF2-482D-B65A-998192F89C2B RMAN Data Repair Concepts>
-- in the /Oracle Database Backup and Recovery User\'s Guide/.
--
-- 'allowSelectNestedTables', 'oracleSettings_allowSelectNestedTables' - Set this attribute to @true@ to enable replication of Oracle tables
-- containing columns that are nested tables or defined types.
--
-- 'archivedLogDestId', 'oracleSettings_archivedLogDestId' - Specifies the ID of the destination for the archived redo logs. This
-- value should be the same as a number in the dest_id column of the
-- v$archived_log view. If you work with an additional redo log
-- destination, use the @AdditionalArchivedLogDestId@ option to specify the
-- additional destination ID. Doing this improves performance by ensuring
-- that the correct logs are accessed from the outset.
--
-- 'archivedLogsOnly', 'oracleSettings_archivedLogsOnly' - When this field is set to @Y@, DMS only accesses the archived redo logs.
-- If the archived redo logs are stored on Automatic Storage Management
-- (ASM) only, the DMS user account needs to be granted ASM privileges.
--
-- 'asmPassword', 'oracleSettings_asmPassword' - For an Oracle source endpoint, your Oracle Automatic Storage Management
-- (ASM) password. You can set this value from the
-- @ @/@asm_user_password@/@ @ value. You set this value as part of the
-- comma-separated value that you set to the @Password@ request parameter
-- when you create the endpoint to access transaction logs using Binary
-- Reader. For more information, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration Configuration for change data capture (CDC) on an Oracle source database>.
--
-- 'asmServer', 'oracleSettings_asmServer' - For an Oracle source endpoint, your ASM server address. You can set this
-- value from the @asm_server@ value. You set @asm_server@ as part of the
-- extra connection attribute string to access an Oracle server with Binary
-- Reader that uses ASM. For more information, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration Configuration for change data capture (CDC) on an Oracle source database>.
--
-- 'asmUser', 'oracleSettings_asmUser' - For an Oracle source endpoint, your ASM user name. You can set this
-- value from the @asm_user@ value. You set @asm_user@ as part of the extra
-- connection attribute string to access an Oracle server with Binary
-- Reader that uses ASM. For more information, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration Configuration for change data capture (CDC) on an Oracle source database>.
--
-- 'charLengthSemantics', 'oracleSettings_charLengthSemantics' - Specifies whether the length of a character column is in bytes or in
-- characters. To indicate that the character column length is in
-- characters, set this attribute to @CHAR@. Otherwise, the character
-- column length is in bytes.
--
-- Example: @charLengthSemantics=CHAR;@
--
-- 'databaseName', 'oracleSettings_databaseName' - Database name for the endpoint.
--
-- 'directPathNoLog', 'oracleSettings_directPathNoLog' - When set to @true@, this attribute helps to increase the commit rate on
-- the Oracle target database by writing directly to tables and not writing
-- a trail to database logs.
--
-- 'directPathParallelLoad', 'oracleSettings_directPathParallelLoad' - When set to @true@, this attribute specifies a parallel load when
-- @useDirectPathFullLoad@ is set to @Y@. This attribute also only applies
-- when you use the DMS parallel load feature. Note that the target table
-- cannot have any constraints or indexes.
--
-- 'enableHomogenousTablespace', 'oracleSettings_enableHomogenousTablespace' - Set this attribute to enable homogenous tablespace replication and
-- create existing tables or indexes under the same tablespace on the
-- target.
--
-- 'extraArchivedLogDestIds', 'oracleSettings_extraArchivedLogDestIds' - Specifies the IDs of one more destinations for one or more archived redo
-- logs. These IDs are the values of the @dest_id@ column in the
-- @v$archived_log@ view. Use this setting with the @archivedLogDestId@
-- extra connection attribute in a primary-to-single setup or a
-- primary-to-multiple-standby setup.
--
-- This setting is useful in a switchover when you use an Oracle Data Guard
-- database as a source. In this case, DMS needs information about what
-- destination to get archive redo logs from to read changes. DMS needs
-- this because after the switchover the previous primary is a standby
-- instance. For example, in a primary-to-single standby setup you might
-- apply the following settings.
--
-- @archivedLogDestId=1; ExtraArchivedLogDestIds=[2]@
--
-- In a primary-to-multiple-standby setup, you might apply the following
-- settings.
--
-- @archivedLogDestId=1; ExtraArchivedLogDestIds=[2,3,4]@
--
-- Although DMS supports the use of the Oracle @RESETLOGS@ option to open
-- the database, never use @RESETLOGS@ unless it\'s necessary. For more
-- information about @RESETLOGS@, see
-- <https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/rman-data-repair-concepts.html#GUID-1805CCF7-4AF2-482D-B65A-998192F89C2B RMAN Data Repair Concepts>
-- in the /Oracle Database Backup and Recovery User\'s Guide/.
--
-- 'failTasksOnLobTruncation', 'oracleSettings_failTasksOnLobTruncation' - When set to @true@, this attribute causes a task to fail if the actual
-- size of an LOB column is greater than the specified @LobMaxSize@.
--
-- If a task is set to limited LOB mode and this option is set to @true@,
-- the task fails instead of truncating the LOB data.
--
-- 'numberDatatypeScale', 'oracleSettings_numberDatatypeScale' - Specifies the number scale. You can select a scale up to 38, or you can
-- select FLOAT. By default, the NUMBER data type is converted to precision
-- 38, scale 10.
--
-- Example: @numberDataTypeScale=12@
--
-- 'oraclePathPrefix', 'oracleSettings_oraclePathPrefix' - Set this string attribute to the required value in order to use the
-- Binary Reader to capture change data for an Amazon RDS for Oracle as the
-- source. This value specifies the default Oracle root used to access the
-- redo logs.
--
-- 'parallelAsmReadThreads', 'oracleSettings_parallelAsmReadThreads' - Set this attribute to change the number of threads that DMS configures
-- to perform a change data capture (CDC) load using Oracle Automatic
-- Storage Management (ASM). You can specify an integer value between 2
-- (the default) and 8 (the maximum). Use this attribute together with the
-- @readAheadBlocks@ attribute.
--
-- 'password', 'oracleSettings_password' - Endpoint connection password.
--
-- 'port', 'oracleSettings_port' - Endpoint TCP port.
--
-- 'readAheadBlocks', 'oracleSettings_readAheadBlocks' - Set this attribute to change the number of read-ahead blocks that DMS
-- configures to perform a change data capture (CDC) load using Oracle
-- Automatic Storage Management (ASM). You can specify an integer value
-- between 1000 (the default) and 200,000 (the maximum).
--
-- 'readTableSpaceName', 'oracleSettings_readTableSpaceName' - When set to @true@, this attribute supports tablespace replication.
--
-- 'replacePathPrefix', 'oracleSettings_replacePathPrefix' - Set this attribute to true in order to use the Binary Reader to capture
-- change data for an Amazon RDS for Oracle as the source. This setting
-- tells DMS instance to replace the default Oracle root with the specified
-- @usePathPrefix@ setting to access the redo logs.
--
-- 'retryInterval', 'oracleSettings_retryInterval' - Specifies the number of seconds that the system waits before resending a
-- query.
--
-- Example: @retryInterval=6;@
--
-- 'secretsManagerAccessRoleArn', 'oracleSettings_secretsManagerAccessRoleArn' - The full Amazon Resource Name (ARN) of the IAM role that specifies DMS
-- as the trusted entity and grants the required permissions to access the
-- value in @SecretsManagerSecret@. The role must allow the @iam:PassRole@
-- action. @SecretsManagerSecret@ has the value of the Amazon Web Services
-- Secrets Manager secret that allows access to the Oracle endpoint.
--
-- You can specify one of two sets of values for these permissions. You can
-- specify the values for this setting and @SecretsManagerSecretId@. Or you
-- can specify clear-text values for @UserName@, @Password@, @ServerName@,
-- and @Port@. You can\'t specify both. For more information on creating
-- this @SecretsManagerSecret@ and the @SecretsManagerAccessRoleArn@ and
-- @SecretsManagerSecretId@ required to access it, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager Using secrets to access Database Migration Service resources>
-- in the /Database Migration Service User Guide/.
--
-- 'secretsManagerOracleAsmAccessRoleArn', 'oracleSettings_secretsManagerOracleAsmAccessRoleArn' - Required only if your Oracle endpoint uses Automatic Storage Management
-- (ASM). The full ARN of the IAM role that specifies DMS as the trusted
-- entity and grants the required permissions to access the
-- @SecretsManagerOracleAsmSecret@. This @SecretsManagerOracleAsmSecret@
-- has the secret value that allows access to the Oracle ASM of the
-- endpoint.
--
-- You can specify one of two sets of values for these permissions. You can
-- specify the values for this setting and
-- @SecretsManagerOracleAsmSecretId@. Or you can specify clear-text values
-- for @AsmUserName@, @AsmPassword@, and @AsmServerName@. You can\'t
-- specify both. For more information on creating this
-- @SecretsManagerOracleAsmSecret@ and the
-- @SecretsManagerOracleAsmAccessRoleArn@ and
-- @SecretsManagerOracleAsmSecretId@ required to access it, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager Using secrets to access Database Migration Service resources>
-- in the /Database Migration Service User Guide/.
--
-- 'secretsManagerOracleAsmSecretId', 'oracleSettings_secretsManagerOracleAsmSecretId' - Required only if your Oracle endpoint uses Automatic Storage Management
-- (ASM). The full ARN, partial ARN, or friendly name of the
-- @SecretsManagerOracleAsmSecret@ that contains the Oracle ASM connection
-- details for the Oracle endpoint.
--
-- 'secretsManagerSecretId', 'oracleSettings_secretsManagerSecretId' - The full ARN, partial ARN, or friendly name of the
-- @SecretsManagerSecret@ that contains the Oracle endpoint connection
-- details.
--
-- 'securityDbEncryption', 'oracleSettings_securityDbEncryption' - For an Oracle source endpoint, the transparent data encryption (TDE)
-- password required by AWM DMS to access Oracle redo logs encrypted by TDE
-- using Binary Reader. It is also the @ @/@TDE_Password@/@ @ part of the
-- comma-separated value you set to the @Password@ request parameter when
-- you create the endpoint. The @SecurityDbEncryptian@ setting is related
-- to this @SecurityDbEncryptionName@ setting. For more information, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Encryption Supported encryption methods for using Oracle as a source for DMS>
-- in the /Database Migration Service User Guide/.
--
-- 'securityDbEncryptionName', 'oracleSettings_securityDbEncryptionName' - For an Oracle source endpoint, the name of a key used for the
-- transparent data encryption (TDE) of the columns and tablespaces in an
-- Oracle source database that is encrypted using TDE. The key value is the
-- value of the @SecurityDbEncryption@ setting. For more information on
-- setting the key name value of @SecurityDbEncryptionName@, see the
-- information and example for setting the @securityDbEncryptionName@ extra
-- connection attribute in
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Encryption Supported encryption methods for using Oracle as a source for DMS>
-- in the /Database Migration Service User Guide/.
--
-- 'serverName', 'oracleSettings_serverName' - Fully qualified domain name of the endpoint.
--
-- 'spatialDataOptionToGeoJsonFunctionName', 'oracleSettings_spatialDataOptionToGeoJsonFunctionName' - Use this attribute to convert @SDO_GEOMETRY@ to @GEOJSON@ format. By
-- default, DMS calls the @SDO2GEOJSON@ custom function if present and
-- accessible. Or you can create your own custom function that mimics the
-- operation of @SDOGEOJSON@ and set
-- @SpatialDataOptionToGeoJsonFunctionName@ to call it instead.
--
-- 'standbyDelayTime', 'oracleSettings_standbyDelayTime' - Use this attribute to specify a time in minutes for the delay in standby
-- sync. If the source is an Oracle Active Data Guard standby database, use
-- this attribute to specify the time lag between primary and standby
-- databases.
--
-- In DMS, you can create an Oracle CDC task that uses an Active Data Guard
-- standby instance as a source for replicating ongoing changes. Doing this
-- eliminates the need to connect to an active database that might be in
-- production.
--
-- 'trimSpaceInChar', 'oracleSettings_trimSpaceInChar' - Use the @TrimSpaceInChar@ source endpoint setting to trim data on CHAR
-- and NCHAR data types during migration. The default value is @true@.
--
-- 'useAlternateFolderForOnline', 'oracleSettings_useAlternateFolderForOnline' - Set this attribute to @true@ in order to use the Binary Reader to
-- capture change data for an Amazon RDS for Oracle as the source. This
-- tells the DMS instance to use any specified prefix replacement to access
-- all online redo logs.
--
-- 'useBFile', 'oracleSettings_useBFile' - Set this attribute to Y to capture change data using the Binary Reader
-- utility. Set @UseLogminerReader@ to N to set this attribute to Y. To use
-- Binary Reader with Amazon RDS for Oracle as the source, you set
-- additional attributes. For more information about using this setting
-- with Oracle Automatic Storage Management (ASM), see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC Using Oracle LogMiner or DMS Binary Reader for CDC>.
--
-- 'useDirectPathFullLoad', 'oracleSettings_useDirectPathFullLoad' - Set this attribute to Y to have DMS use a direct path full load. Specify
-- this value to use the direct path protocol in the Oracle Call Interface
-- (OCI). By using this OCI protocol, you can bulk-load Oracle target
-- tables during a full load.
--
-- 'useLogminerReader', 'oracleSettings_useLogminerReader' - Set this attribute to Y to capture change data using the Oracle LogMiner
-- utility (the default). Set this attribute to N if you want to access the
-- redo logs as a binary file. When you set @UseLogminerReader@ to N, also
-- set @UseBfile@ to Y. For more information on this setting and using
-- Oracle ASM, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC Using Oracle LogMiner or DMS Binary Reader for CDC>
-- in the /DMS User Guide/.
--
-- 'usePathPrefix', 'oracleSettings_usePathPrefix' - Set this string attribute to the required value in order to use the
-- Binary Reader to capture change data for an Amazon RDS for Oracle as the
-- source. This value specifies the path prefix used to replace the default
-- Oracle root to access the redo logs.
--
-- 'username', 'oracleSettings_username' - Endpoint connection user name.
newOracleSettings ::
  OracleSettings
newOracleSettings :: OracleSettings
newOracleSettings =
  OracleSettings'
    { $sel:accessAlternateDirectly:OracleSettings' :: Maybe Bool
accessAlternateDirectly =
        forall a. Maybe a
Prelude.Nothing,
      $sel:addSupplementalLogging:OracleSettings' :: Maybe Bool
addSupplementalLogging = forall a. Maybe a
Prelude.Nothing,
      $sel:additionalArchivedLogDestId:OracleSettings' :: Maybe Int
additionalArchivedLogDestId = forall a. Maybe a
Prelude.Nothing,
      $sel:allowSelectNestedTables:OracleSettings' :: Maybe Bool
allowSelectNestedTables = forall a. Maybe a
Prelude.Nothing,
      $sel:archivedLogDestId:OracleSettings' :: Maybe Int
archivedLogDestId = forall a. Maybe a
Prelude.Nothing,
      $sel:archivedLogsOnly:OracleSettings' :: Maybe Bool
archivedLogsOnly = forall a. Maybe a
Prelude.Nothing,
      $sel:asmPassword:OracleSettings' :: Maybe (Sensitive Text)
asmPassword = forall a. Maybe a
Prelude.Nothing,
      $sel:asmServer:OracleSettings' :: Maybe Text
asmServer = forall a. Maybe a
Prelude.Nothing,
      $sel:asmUser:OracleSettings' :: Maybe Text
asmUser = forall a. Maybe a
Prelude.Nothing,
      $sel:charLengthSemantics:OracleSettings' :: Maybe CharLengthSemantics
charLengthSemantics = forall a. Maybe a
Prelude.Nothing,
      $sel:databaseName:OracleSettings' :: Maybe Text
databaseName = forall a. Maybe a
Prelude.Nothing,
      $sel:directPathNoLog:OracleSettings' :: Maybe Bool
directPathNoLog = forall a. Maybe a
Prelude.Nothing,
      $sel:directPathParallelLoad:OracleSettings' :: Maybe Bool
directPathParallelLoad = forall a. Maybe a
Prelude.Nothing,
      $sel:enableHomogenousTablespace:OracleSettings' :: Maybe Bool
enableHomogenousTablespace = forall a. Maybe a
Prelude.Nothing,
      $sel:extraArchivedLogDestIds:OracleSettings' :: Maybe [Int]
extraArchivedLogDestIds = forall a. Maybe a
Prelude.Nothing,
      $sel:failTasksOnLobTruncation:OracleSettings' :: Maybe Bool
failTasksOnLobTruncation = forall a. Maybe a
Prelude.Nothing,
      $sel:numberDatatypeScale:OracleSettings' :: Maybe Int
numberDatatypeScale = forall a. Maybe a
Prelude.Nothing,
      $sel:oraclePathPrefix:OracleSettings' :: Maybe Text
oraclePathPrefix = forall a. Maybe a
Prelude.Nothing,
      $sel:parallelAsmReadThreads:OracleSettings' :: Maybe Int
parallelAsmReadThreads = forall a. Maybe a
Prelude.Nothing,
      $sel:password:OracleSettings' :: Maybe (Sensitive Text)
password = forall a. Maybe a
Prelude.Nothing,
      $sel:port:OracleSettings' :: Maybe Int
port = forall a. Maybe a
Prelude.Nothing,
      $sel:readAheadBlocks:OracleSettings' :: Maybe Int
readAheadBlocks = forall a. Maybe a
Prelude.Nothing,
      $sel:readTableSpaceName:OracleSettings' :: Maybe Bool
readTableSpaceName = forall a. Maybe a
Prelude.Nothing,
      $sel:replacePathPrefix:OracleSettings' :: Maybe Bool
replacePathPrefix = forall a. Maybe a
Prelude.Nothing,
      $sel:retryInterval:OracleSettings' :: Maybe Int
retryInterval = forall a. Maybe a
Prelude.Nothing,
      $sel:secretsManagerAccessRoleArn:OracleSettings' :: Maybe Text
secretsManagerAccessRoleArn = forall a. Maybe a
Prelude.Nothing,
      $sel:secretsManagerOracleAsmAccessRoleArn:OracleSettings' :: Maybe Text
secretsManagerOracleAsmAccessRoleArn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:secretsManagerOracleAsmSecretId:OracleSettings' :: Maybe Text
secretsManagerOracleAsmSecretId = forall a. Maybe a
Prelude.Nothing,
      $sel:secretsManagerSecretId:OracleSettings' :: Maybe Text
secretsManagerSecretId = forall a. Maybe a
Prelude.Nothing,
      $sel:securityDbEncryption:OracleSettings' :: Maybe (Sensitive Text)
securityDbEncryption = forall a. Maybe a
Prelude.Nothing,
      $sel:securityDbEncryptionName:OracleSettings' :: Maybe Text
securityDbEncryptionName = forall a. Maybe a
Prelude.Nothing,
      $sel:serverName:OracleSettings' :: Maybe Text
serverName = forall a. Maybe a
Prelude.Nothing,
      $sel:spatialDataOptionToGeoJsonFunctionName:OracleSettings' :: Maybe Text
spatialDataOptionToGeoJsonFunctionName =
        forall a. Maybe a
Prelude.Nothing,
      $sel:standbyDelayTime:OracleSettings' :: Maybe Int
standbyDelayTime = forall a. Maybe a
Prelude.Nothing,
      $sel:trimSpaceInChar:OracleSettings' :: Maybe Bool
trimSpaceInChar = forall a. Maybe a
Prelude.Nothing,
      $sel:useAlternateFolderForOnline:OracleSettings' :: Maybe Bool
useAlternateFolderForOnline = forall a. Maybe a
Prelude.Nothing,
      $sel:useBFile:OracleSettings' :: Maybe Bool
useBFile = forall a. Maybe a
Prelude.Nothing,
      $sel:useDirectPathFullLoad:OracleSettings' :: Maybe Bool
useDirectPathFullLoad = forall a. Maybe a
Prelude.Nothing,
      $sel:useLogminerReader:OracleSettings' :: Maybe Bool
useLogminerReader = forall a. Maybe a
Prelude.Nothing,
      $sel:usePathPrefix:OracleSettings' :: Maybe Text
usePathPrefix = forall a. Maybe a
Prelude.Nothing,
      $sel:username:OracleSettings' :: Maybe Text
username = forall a. Maybe a
Prelude.Nothing
    }

-- | Set this attribute to @false@ in order to use the Binary Reader to
-- capture change data for an Amazon RDS for Oracle as the source. This
-- tells the DMS instance to not access redo logs through any specified
-- path prefix replacement using direct file access.
oracleSettings_accessAlternateDirectly :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Bool)
oracleSettings_accessAlternateDirectly :: Lens' OracleSettings (Maybe Bool)
oracleSettings_accessAlternateDirectly = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Bool
accessAlternateDirectly :: Maybe Bool
$sel:accessAlternateDirectly:OracleSettings' :: OracleSettings -> Maybe Bool
accessAlternateDirectly} -> Maybe Bool
accessAlternateDirectly) (\s :: OracleSettings
s@OracleSettings' {} Maybe Bool
a -> OracleSettings
s {$sel:accessAlternateDirectly:OracleSettings' :: Maybe Bool
accessAlternateDirectly = Maybe Bool
a} :: OracleSettings)

-- | Set this attribute to set up table-level supplemental logging for the
-- Oracle database. This attribute enables PRIMARY KEY supplemental logging
-- on all tables selected for a migration task.
--
-- If you use this option, you still need to enable database-level
-- supplemental logging.
oracleSettings_addSupplementalLogging :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Bool)
oracleSettings_addSupplementalLogging :: Lens' OracleSettings (Maybe Bool)
oracleSettings_addSupplementalLogging = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Bool
addSupplementalLogging :: Maybe Bool
$sel:addSupplementalLogging:OracleSettings' :: OracleSettings -> Maybe Bool
addSupplementalLogging} -> Maybe Bool
addSupplementalLogging) (\s :: OracleSettings
s@OracleSettings' {} Maybe Bool
a -> OracleSettings
s {$sel:addSupplementalLogging:OracleSettings' :: Maybe Bool
addSupplementalLogging = Maybe Bool
a} :: OracleSettings)

-- | Set this attribute with @ArchivedLogDestId@ in a primary\/ standby
-- setup. This attribute is useful in the case of a switchover. In this
-- case, DMS needs to know which destination to get archive redo logs from
-- to read changes. This need arises because the previous primary instance
-- is now a standby instance after switchover.
--
-- Although DMS supports the use of the Oracle @RESETLOGS@ option to open
-- the database, never use @RESETLOGS@ unless necessary. For additional
-- information about @RESETLOGS@, see
-- <https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/rman-data-repair-concepts.html#GUID-1805CCF7-4AF2-482D-B65A-998192F89C2B RMAN Data Repair Concepts>
-- in the /Oracle Database Backup and Recovery User\'s Guide/.
oracleSettings_additionalArchivedLogDestId :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Int)
oracleSettings_additionalArchivedLogDestId :: Lens' OracleSettings (Maybe Int)
oracleSettings_additionalArchivedLogDestId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Int
additionalArchivedLogDestId :: Maybe Int
$sel:additionalArchivedLogDestId:OracleSettings' :: OracleSettings -> Maybe Int
additionalArchivedLogDestId} -> Maybe Int
additionalArchivedLogDestId) (\s :: OracleSettings
s@OracleSettings' {} Maybe Int
a -> OracleSettings
s {$sel:additionalArchivedLogDestId:OracleSettings' :: Maybe Int
additionalArchivedLogDestId = Maybe Int
a} :: OracleSettings)

-- | Set this attribute to @true@ to enable replication of Oracle tables
-- containing columns that are nested tables or defined types.
oracleSettings_allowSelectNestedTables :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Bool)
oracleSettings_allowSelectNestedTables :: Lens' OracleSettings (Maybe Bool)
oracleSettings_allowSelectNestedTables = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Bool
allowSelectNestedTables :: Maybe Bool
$sel:allowSelectNestedTables:OracleSettings' :: OracleSettings -> Maybe Bool
allowSelectNestedTables} -> Maybe Bool
allowSelectNestedTables) (\s :: OracleSettings
s@OracleSettings' {} Maybe Bool
a -> OracleSettings
s {$sel:allowSelectNestedTables:OracleSettings' :: Maybe Bool
allowSelectNestedTables = Maybe Bool
a} :: OracleSettings)

-- | Specifies the ID of the destination for the archived redo logs. This
-- value should be the same as a number in the dest_id column of the
-- v$archived_log view. If you work with an additional redo log
-- destination, use the @AdditionalArchivedLogDestId@ option to specify the
-- additional destination ID. Doing this improves performance by ensuring
-- that the correct logs are accessed from the outset.
oracleSettings_archivedLogDestId :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Int)
oracleSettings_archivedLogDestId :: Lens' OracleSettings (Maybe Int)
oracleSettings_archivedLogDestId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Int
archivedLogDestId :: Maybe Int
$sel:archivedLogDestId:OracleSettings' :: OracleSettings -> Maybe Int
archivedLogDestId} -> Maybe Int
archivedLogDestId) (\s :: OracleSettings
s@OracleSettings' {} Maybe Int
a -> OracleSettings
s {$sel:archivedLogDestId:OracleSettings' :: Maybe Int
archivedLogDestId = Maybe Int
a} :: OracleSettings)

-- | When this field is set to @Y@, DMS only accesses the archived redo logs.
-- If the archived redo logs are stored on Automatic Storage Management
-- (ASM) only, the DMS user account needs to be granted ASM privileges.
oracleSettings_archivedLogsOnly :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Bool)
oracleSettings_archivedLogsOnly :: Lens' OracleSettings (Maybe Bool)
oracleSettings_archivedLogsOnly = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Bool
archivedLogsOnly :: Maybe Bool
$sel:archivedLogsOnly:OracleSettings' :: OracleSettings -> Maybe Bool
archivedLogsOnly} -> Maybe Bool
archivedLogsOnly) (\s :: OracleSettings
s@OracleSettings' {} Maybe Bool
a -> OracleSettings
s {$sel:archivedLogsOnly:OracleSettings' :: Maybe Bool
archivedLogsOnly = Maybe Bool
a} :: OracleSettings)

-- | For an Oracle source endpoint, your Oracle Automatic Storage Management
-- (ASM) password. You can set this value from the
-- @ @/@asm_user_password@/@ @ value. You set this value as part of the
-- comma-separated value that you set to the @Password@ request parameter
-- when you create the endpoint to access transaction logs using Binary
-- Reader. For more information, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration Configuration for change data capture (CDC) on an Oracle source database>.
oracleSettings_asmPassword :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Text)
oracleSettings_asmPassword :: Lens' OracleSettings (Maybe Text)
oracleSettings_asmPassword = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe (Sensitive Text)
asmPassword :: Maybe (Sensitive Text)
$sel:asmPassword:OracleSettings' :: OracleSettings -> Maybe (Sensitive Text)
asmPassword} -> Maybe (Sensitive Text)
asmPassword) (\s :: OracleSettings
s@OracleSettings' {} Maybe (Sensitive Text)
a -> OracleSettings
s {$sel:asmPassword:OracleSettings' :: Maybe (Sensitive Text)
asmPassword = Maybe (Sensitive Text)
a} :: OracleSettings) 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. Iso' (Sensitive a) a
Data._Sensitive

-- | For an Oracle source endpoint, your ASM server address. You can set this
-- value from the @asm_server@ value. You set @asm_server@ as part of the
-- extra connection attribute string to access an Oracle server with Binary
-- Reader that uses ASM. For more information, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration Configuration for change data capture (CDC) on an Oracle source database>.
oracleSettings_asmServer :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Text)
oracleSettings_asmServer :: Lens' OracleSettings (Maybe Text)
oracleSettings_asmServer = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Text
asmServer :: Maybe Text
$sel:asmServer:OracleSettings' :: OracleSettings -> Maybe Text
asmServer} -> Maybe Text
asmServer) (\s :: OracleSettings
s@OracleSettings' {} Maybe Text
a -> OracleSettings
s {$sel:asmServer:OracleSettings' :: Maybe Text
asmServer = Maybe Text
a} :: OracleSettings)

-- | For an Oracle source endpoint, your ASM user name. You can set this
-- value from the @asm_user@ value. You set @asm_user@ as part of the extra
-- connection attribute string to access an Oracle server with Binary
-- Reader that uses ASM. For more information, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration Configuration for change data capture (CDC) on an Oracle source database>.
oracleSettings_asmUser :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Text)
oracleSettings_asmUser :: Lens' OracleSettings (Maybe Text)
oracleSettings_asmUser = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Text
asmUser :: Maybe Text
$sel:asmUser:OracleSettings' :: OracleSettings -> Maybe Text
asmUser} -> Maybe Text
asmUser) (\s :: OracleSettings
s@OracleSettings' {} Maybe Text
a -> OracleSettings
s {$sel:asmUser:OracleSettings' :: Maybe Text
asmUser = Maybe Text
a} :: OracleSettings)

-- | Specifies whether the length of a character column is in bytes or in
-- characters. To indicate that the character column length is in
-- characters, set this attribute to @CHAR@. Otherwise, the character
-- column length is in bytes.
--
-- Example: @charLengthSemantics=CHAR;@
oracleSettings_charLengthSemantics :: Lens.Lens' OracleSettings (Prelude.Maybe CharLengthSemantics)
oracleSettings_charLengthSemantics :: Lens' OracleSettings (Maybe CharLengthSemantics)
oracleSettings_charLengthSemantics = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe CharLengthSemantics
charLengthSemantics :: Maybe CharLengthSemantics
$sel:charLengthSemantics:OracleSettings' :: OracleSettings -> Maybe CharLengthSemantics
charLengthSemantics} -> Maybe CharLengthSemantics
charLengthSemantics) (\s :: OracleSettings
s@OracleSettings' {} Maybe CharLengthSemantics
a -> OracleSettings
s {$sel:charLengthSemantics:OracleSettings' :: Maybe CharLengthSemantics
charLengthSemantics = Maybe CharLengthSemantics
a} :: OracleSettings)

-- | Database name for the endpoint.
oracleSettings_databaseName :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Text)
oracleSettings_databaseName :: Lens' OracleSettings (Maybe Text)
oracleSettings_databaseName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Text
databaseName :: Maybe Text
$sel:databaseName:OracleSettings' :: OracleSettings -> Maybe Text
databaseName} -> Maybe Text
databaseName) (\s :: OracleSettings
s@OracleSettings' {} Maybe Text
a -> OracleSettings
s {$sel:databaseName:OracleSettings' :: Maybe Text
databaseName = Maybe Text
a} :: OracleSettings)

-- | When set to @true@, this attribute helps to increase the commit rate on
-- the Oracle target database by writing directly to tables and not writing
-- a trail to database logs.
oracleSettings_directPathNoLog :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Bool)
oracleSettings_directPathNoLog :: Lens' OracleSettings (Maybe Bool)
oracleSettings_directPathNoLog = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Bool
directPathNoLog :: Maybe Bool
$sel:directPathNoLog:OracleSettings' :: OracleSettings -> Maybe Bool
directPathNoLog} -> Maybe Bool
directPathNoLog) (\s :: OracleSettings
s@OracleSettings' {} Maybe Bool
a -> OracleSettings
s {$sel:directPathNoLog:OracleSettings' :: Maybe Bool
directPathNoLog = Maybe Bool
a} :: OracleSettings)

-- | When set to @true@, this attribute specifies a parallel load when
-- @useDirectPathFullLoad@ is set to @Y@. This attribute also only applies
-- when you use the DMS parallel load feature. Note that the target table
-- cannot have any constraints or indexes.
oracleSettings_directPathParallelLoad :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Bool)
oracleSettings_directPathParallelLoad :: Lens' OracleSettings (Maybe Bool)
oracleSettings_directPathParallelLoad = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Bool
directPathParallelLoad :: Maybe Bool
$sel:directPathParallelLoad:OracleSettings' :: OracleSettings -> Maybe Bool
directPathParallelLoad} -> Maybe Bool
directPathParallelLoad) (\s :: OracleSettings
s@OracleSettings' {} Maybe Bool
a -> OracleSettings
s {$sel:directPathParallelLoad:OracleSettings' :: Maybe Bool
directPathParallelLoad = Maybe Bool
a} :: OracleSettings)

-- | Set this attribute to enable homogenous tablespace replication and
-- create existing tables or indexes under the same tablespace on the
-- target.
oracleSettings_enableHomogenousTablespace :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Bool)
oracleSettings_enableHomogenousTablespace :: Lens' OracleSettings (Maybe Bool)
oracleSettings_enableHomogenousTablespace = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Bool
enableHomogenousTablespace :: Maybe Bool
$sel:enableHomogenousTablespace:OracleSettings' :: OracleSettings -> Maybe Bool
enableHomogenousTablespace} -> Maybe Bool
enableHomogenousTablespace) (\s :: OracleSettings
s@OracleSettings' {} Maybe Bool
a -> OracleSettings
s {$sel:enableHomogenousTablespace:OracleSettings' :: Maybe Bool
enableHomogenousTablespace = Maybe Bool
a} :: OracleSettings)

-- | Specifies the IDs of one more destinations for one or more archived redo
-- logs. These IDs are the values of the @dest_id@ column in the
-- @v$archived_log@ view. Use this setting with the @archivedLogDestId@
-- extra connection attribute in a primary-to-single setup or a
-- primary-to-multiple-standby setup.
--
-- This setting is useful in a switchover when you use an Oracle Data Guard
-- database as a source. In this case, DMS needs information about what
-- destination to get archive redo logs from to read changes. DMS needs
-- this because after the switchover the previous primary is a standby
-- instance. For example, in a primary-to-single standby setup you might
-- apply the following settings.
--
-- @archivedLogDestId=1; ExtraArchivedLogDestIds=[2]@
--
-- In a primary-to-multiple-standby setup, you might apply the following
-- settings.
--
-- @archivedLogDestId=1; ExtraArchivedLogDestIds=[2,3,4]@
--
-- Although DMS supports the use of the Oracle @RESETLOGS@ option to open
-- the database, never use @RESETLOGS@ unless it\'s necessary. For more
-- information about @RESETLOGS@, see
-- <https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/rman-data-repair-concepts.html#GUID-1805CCF7-4AF2-482D-B65A-998192F89C2B RMAN Data Repair Concepts>
-- in the /Oracle Database Backup and Recovery User\'s Guide/.
oracleSettings_extraArchivedLogDestIds :: Lens.Lens' OracleSettings (Prelude.Maybe [Prelude.Int])
oracleSettings_extraArchivedLogDestIds :: Lens' OracleSettings (Maybe [Int])
oracleSettings_extraArchivedLogDestIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe [Int]
extraArchivedLogDestIds :: Maybe [Int]
$sel:extraArchivedLogDestIds:OracleSettings' :: OracleSettings -> Maybe [Int]
extraArchivedLogDestIds} -> Maybe [Int]
extraArchivedLogDestIds) (\s :: OracleSettings
s@OracleSettings' {} Maybe [Int]
a -> OracleSettings
s {$sel:extraArchivedLogDestIds:OracleSettings' :: Maybe [Int]
extraArchivedLogDestIds = Maybe [Int]
a} :: OracleSettings) 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

-- | When set to @true@, this attribute causes a task to fail if the actual
-- size of an LOB column is greater than the specified @LobMaxSize@.
--
-- If a task is set to limited LOB mode and this option is set to @true@,
-- the task fails instead of truncating the LOB data.
oracleSettings_failTasksOnLobTruncation :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Bool)
oracleSettings_failTasksOnLobTruncation :: Lens' OracleSettings (Maybe Bool)
oracleSettings_failTasksOnLobTruncation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Bool
failTasksOnLobTruncation :: Maybe Bool
$sel:failTasksOnLobTruncation:OracleSettings' :: OracleSettings -> Maybe Bool
failTasksOnLobTruncation} -> Maybe Bool
failTasksOnLobTruncation) (\s :: OracleSettings
s@OracleSettings' {} Maybe Bool
a -> OracleSettings
s {$sel:failTasksOnLobTruncation:OracleSettings' :: Maybe Bool
failTasksOnLobTruncation = Maybe Bool
a} :: OracleSettings)

-- | Specifies the number scale. You can select a scale up to 38, or you can
-- select FLOAT. By default, the NUMBER data type is converted to precision
-- 38, scale 10.
--
-- Example: @numberDataTypeScale=12@
oracleSettings_numberDatatypeScale :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Int)
oracleSettings_numberDatatypeScale :: Lens' OracleSettings (Maybe Int)
oracleSettings_numberDatatypeScale = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Int
numberDatatypeScale :: Maybe Int
$sel:numberDatatypeScale:OracleSettings' :: OracleSettings -> Maybe Int
numberDatatypeScale} -> Maybe Int
numberDatatypeScale) (\s :: OracleSettings
s@OracleSettings' {} Maybe Int
a -> OracleSettings
s {$sel:numberDatatypeScale:OracleSettings' :: Maybe Int
numberDatatypeScale = Maybe Int
a} :: OracleSettings)

-- | Set this string attribute to the required value in order to use the
-- Binary Reader to capture change data for an Amazon RDS for Oracle as the
-- source. This value specifies the default Oracle root used to access the
-- redo logs.
oracleSettings_oraclePathPrefix :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Text)
oracleSettings_oraclePathPrefix :: Lens' OracleSettings (Maybe Text)
oracleSettings_oraclePathPrefix = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Text
oraclePathPrefix :: Maybe Text
$sel:oraclePathPrefix:OracleSettings' :: OracleSettings -> Maybe Text
oraclePathPrefix} -> Maybe Text
oraclePathPrefix) (\s :: OracleSettings
s@OracleSettings' {} Maybe Text
a -> OracleSettings
s {$sel:oraclePathPrefix:OracleSettings' :: Maybe Text
oraclePathPrefix = Maybe Text
a} :: OracleSettings)

-- | Set this attribute to change the number of threads that DMS configures
-- to perform a change data capture (CDC) load using Oracle Automatic
-- Storage Management (ASM). You can specify an integer value between 2
-- (the default) and 8 (the maximum). Use this attribute together with the
-- @readAheadBlocks@ attribute.
oracleSettings_parallelAsmReadThreads :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Int)
oracleSettings_parallelAsmReadThreads :: Lens' OracleSettings (Maybe Int)
oracleSettings_parallelAsmReadThreads = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Int
parallelAsmReadThreads :: Maybe Int
$sel:parallelAsmReadThreads:OracleSettings' :: OracleSettings -> Maybe Int
parallelAsmReadThreads} -> Maybe Int
parallelAsmReadThreads) (\s :: OracleSettings
s@OracleSettings' {} Maybe Int
a -> OracleSettings
s {$sel:parallelAsmReadThreads:OracleSettings' :: Maybe Int
parallelAsmReadThreads = Maybe Int
a} :: OracleSettings)

-- | Endpoint connection password.
oracleSettings_password :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Text)
oracleSettings_password :: Lens' OracleSettings (Maybe Text)
oracleSettings_password = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe (Sensitive Text)
password :: Maybe (Sensitive Text)
$sel:password:OracleSettings' :: OracleSettings -> Maybe (Sensitive Text)
password} -> Maybe (Sensitive Text)
password) (\s :: OracleSettings
s@OracleSettings' {} Maybe (Sensitive Text)
a -> OracleSettings
s {$sel:password:OracleSettings' :: Maybe (Sensitive Text)
password = Maybe (Sensitive Text)
a} :: OracleSettings) 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. Iso' (Sensitive a) a
Data._Sensitive

-- | Endpoint TCP port.
oracleSettings_port :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Int)
oracleSettings_port :: Lens' OracleSettings (Maybe Int)
oracleSettings_port = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Int
port :: Maybe Int
$sel:port:OracleSettings' :: OracleSettings -> Maybe Int
port} -> Maybe Int
port) (\s :: OracleSettings
s@OracleSettings' {} Maybe Int
a -> OracleSettings
s {$sel:port:OracleSettings' :: Maybe Int
port = Maybe Int
a} :: OracleSettings)

-- | Set this attribute to change the number of read-ahead blocks that DMS
-- configures to perform a change data capture (CDC) load using Oracle
-- Automatic Storage Management (ASM). You can specify an integer value
-- between 1000 (the default) and 200,000 (the maximum).
oracleSettings_readAheadBlocks :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Int)
oracleSettings_readAheadBlocks :: Lens' OracleSettings (Maybe Int)
oracleSettings_readAheadBlocks = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Int
readAheadBlocks :: Maybe Int
$sel:readAheadBlocks:OracleSettings' :: OracleSettings -> Maybe Int
readAheadBlocks} -> Maybe Int
readAheadBlocks) (\s :: OracleSettings
s@OracleSettings' {} Maybe Int
a -> OracleSettings
s {$sel:readAheadBlocks:OracleSettings' :: Maybe Int
readAheadBlocks = Maybe Int
a} :: OracleSettings)

-- | When set to @true@, this attribute supports tablespace replication.
oracleSettings_readTableSpaceName :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Bool)
oracleSettings_readTableSpaceName :: Lens' OracleSettings (Maybe Bool)
oracleSettings_readTableSpaceName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Bool
readTableSpaceName :: Maybe Bool
$sel:readTableSpaceName:OracleSettings' :: OracleSettings -> Maybe Bool
readTableSpaceName} -> Maybe Bool
readTableSpaceName) (\s :: OracleSettings
s@OracleSettings' {} Maybe Bool
a -> OracleSettings
s {$sel:readTableSpaceName:OracleSettings' :: Maybe Bool
readTableSpaceName = Maybe Bool
a} :: OracleSettings)

-- | Set this attribute to true in order to use the Binary Reader to capture
-- change data for an Amazon RDS for Oracle as the source. This setting
-- tells DMS instance to replace the default Oracle root with the specified
-- @usePathPrefix@ setting to access the redo logs.
oracleSettings_replacePathPrefix :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Bool)
oracleSettings_replacePathPrefix :: Lens' OracleSettings (Maybe Bool)
oracleSettings_replacePathPrefix = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Bool
replacePathPrefix :: Maybe Bool
$sel:replacePathPrefix:OracleSettings' :: OracleSettings -> Maybe Bool
replacePathPrefix} -> Maybe Bool
replacePathPrefix) (\s :: OracleSettings
s@OracleSettings' {} Maybe Bool
a -> OracleSettings
s {$sel:replacePathPrefix:OracleSettings' :: Maybe Bool
replacePathPrefix = Maybe Bool
a} :: OracleSettings)

-- | Specifies the number of seconds that the system waits before resending a
-- query.
--
-- Example: @retryInterval=6;@
oracleSettings_retryInterval :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Int)
oracleSettings_retryInterval :: Lens' OracleSettings (Maybe Int)
oracleSettings_retryInterval = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Int
retryInterval :: Maybe Int
$sel:retryInterval:OracleSettings' :: OracleSettings -> Maybe Int
retryInterval} -> Maybe Int
retryInterval) (\s :: OracleSettings
s@OracleSettings' {} Maybe Int
a -> OracleSettings
s {$sel:retryInterval:OracleSettings' :: Maybe Int
retryInterval = Maybe Int
a} :: OracleSettings)

-- | The full Amazon Resource Name (ARN) of the IAM role that specifies DMS
-- as the trusted entity and grants the required permissions to access the
-- value in @SecretsManagerSecret@. The role must allow the @iam:PassRole@
-- action. @SecretsManagerSecret@ has the value of the Amazon Web Services
-- Secrets Manager secret that allows access to the Oracle endpoint.
--
-- You can specify one of two sets of values for these permissions. You can
-- specify the values for this setting and @SecretsManagerSecretId@. Or you
-- can specify clear-text values for @UserName@, @Password@, @ServerName@,
-- and @Port@. You can\'t specify both. For more information on creating
-- this @SecretsManagerSecret@ and the @SecretsManagerAccessRoleArn@ and
-- @SecretsManagerSecretId@ required to access it, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager Using secrets to access Database Migration Service resources>
-- in the /Database Migration Service User Guide/.
oracleSettings_secretsManagerAccessRoleArn :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Text)
oracleSettings_secretsManagerAccessRoleArn :: Lens' OracleSettings (Maybe Text)
oracleSettings_secretsManagerAccessRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Text
secretsManagerAccessRoleArn :: Maybe Text
$sel:secretsManagerAccessRoleArn:OracleSettings' :: OracleSettings -> Maybe Text
secretsManagerAccessRoleArn} -> Maybe Text
secretsManagerAccessRoleArn) (\s :: OracleSettings
s@OracleSettings' {} Maybe Text
a -> OracleSettings
s {$sel:secretsManagerAccessRoleArn:OracleSettings' :: Maybe Text
secretsManagerAccessRoleArn = Maybe Text
a} :: OracleSettings)

-- | Required only if your Oracle endpoint uses Automatic Storage Management
-- (ASM). The full ARN of the IAM role that specifies DMS as the trusted
-- entity and grants the required permissions to access the
-- @SecretsManagerOracleAsmSecret@. This @SecretsManagerOracleAsmSecret@
-- has the secret value that allows access to the Oracle ASM of the
-- endpoint.
--
-- You can specify one of two sets of values for these permissions. You can
-- specify the values for this setting and
-- @SecretsManagerOracleAsmSecretId@. Or you can specify clear-text values
-- for @AsmUserName@, @AsmPassword@, and @AsmServerName@. You can\'t
-- specify both. For more information on creating this
-- @SecretsManagerOracleAsmSecret@ and the
-- @SecretsManagerOracleAsmAccessRoleArn@ and
-- @SecretsManagerOracleAsmSecretId@ required to access it, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager Using secrets to access Database Migration Service resources>
-- in the /Database Migration Service User Guide/.
oracleSettings_secretsManagerOracleAsmAccessRoleArn :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Text)
oracleSettings_secretsManagerOracleAsmAccessRoleArn :: Lens' OracleSettings (Maybe Text)
oracleSettings_secretsManagerOracleAsmAccessRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Text
secretsManagerOracleAsmAccessRoleArn :: Maybe Text
$sel:secretsManagerOracleAsmAccessRoleArn:OracleSettings' :: OracleSettings -> Maybe Text
secretsManagerOracleAsmAccessRoleArn} -> Maybe Text
secretsManagerOracleAsmAccessRoleArn) (\s :: OracleSettings
s@OracleSettings' {} Maybe Text
a -> OracleSettings
s {$sel:secretsManagerOracleAsmAccessRoleArn:OracleSettings' :: Maybe Text
secretsManagerOracleAsmAccessRoleArn = Maybe Text
a} :: OracleSettings)

-- | Required only if your Oracle endpoint uses Automatic Storage Management
-- (ASM). The full ARN, partial ARN, or friendly name of the
-- @SecretsManagerOracleAsmSecret@ that contains the Oracle ASM connection
-- details for the Oracle endpoint.
oracleSettings_secretsManagerOracleAsmSecretId :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Text)
oracleSettings_secretsManagerOracleAsmSecretId :: Lens' OracleSettings (Maybe Text)
oracleSettings_secretsManagerOracleAsmSecretId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Text
secretsManagerOracleAsmSecretId :: Maybe Text
$sel:secretsManagerOracleAsmSecretId:OracleSettings' :: OracleSettings -> Maybe Text
secretsManagerOracleAsmSecretId} -> Maybe Text
secretsManagerOracleAsmSecretId) (\s :: OracleSettings
s@OracleSettings' {} Maybe Text
a -> OracleSettings
s {$sel:secretsManagerOracleAsmSecretId:OracleSettings' :: Maybe Text
secretsManagerOracleAsmSecretId = Maybe Text
a} :: OracleSettings)

-- | The full ARN, partial ARN, or friendly name of the
-- @SecretsManagerSecret@ that contains the Oracle endpoint connection
-- details.
oracleSettings_secretsManagerSecretId :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Text)
oracleSettings_secretsManagerSecretId :: Lens' OracleSettings (Maybe Text)
oracleSettings_secretsManagerSecretId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Text
secretsManagerSecretId :: Maybe Text
$sel:secretsManagerSecretId:OracleSettings' :: OracleSettings -> Maybe Text
secretsManagerSecretId} -> Maybe Text
secretsManagerSecretId) (\s :: OracleSettings
s@OracleSettings' {} Maybe Text
a -> OracleSettings
s {$sel:secretsManagerSecretId:OracleSettings' :: Maybe Text
secretsManagerSecretId = Maybe Text
a} :: OracleSettings)

-- | For an Oracle source endpoint, the transparent data encryption (TDE)
-- password required by AWM DMS to access Oracle redo logs encrypted by TDE
-- using Binary Reader. It is also the @ @/@TDE_Password@/@ @ part of the
-- comma-separated value you set to the @Password@ request parameter when
-- you create the endpoint. The @SecurityDbEncryptian@ setting is related
-- to this @SecurityDbEncryptionName@ setting. For more information, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Encryption Supported encryption methods for using Oracle as a source for DMS>
-- in the /Database Migration Service User Guide/.
oracleSettings_securityDbEncryption :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Text)
oracleSettings_securityDbEncryption :: Lens' OracleSettings (Maybe Text)
oracleSettings_securityDbEncryption = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe (Sensitive Text)
securityDbEncryption :: Maybe (Sensitive Text)
$sel:securityDbEncryption:OracleSettings' :: OracleSettings -> Maybe (Sensitive Text)
securityDbEncryption} -> Maybe (Sensitive Text)
securityDbEncryption) (\s :: OracleSettings
s@OracleSettings' {} Maybe (Sensitive Text)
a -> OracleSettings
s {$sel:securityDbEncryption:OracleSettings' :: Maybe (Sensitive Text)
securityDbEncryption = Maybe (Sensitive Text)
a} :: OracleSettings) 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. Iso' (Sensitive a) a
Data._Sensitive

-- | For an Oracle source endpoint, the name of a key used for the
-- transparent data encryption (TDE) of the columns and tablespaces in an
-- Oracle source database that is encrypted using TDE. The key value is the
-- value of the @SecurityDbEncryption@ setting. For more information on
-- setting the key name value of @SecurityDbEncryptionName@, see the
-- information and example for setting the @securityDbEncryptionName@ extra
-- connection attribute in
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Encryption Supported encryption methods for using Oracle as a source for DMS>
-- in the /Database Migration Service User Guide/.
oracleSettings_securityDbEncryptionName :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Text)
oracleSettings_securityDbEncryptionName :: Lens' OracleSettings (Maybe Text)
oracleSettings_securityDbEncryptionName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Text
securityDbEncryptionName :: Maybe Text
$sel:securityDbEncryptionName:OracleSettings' :: OracleSettings -> Maybe Text
securityDbEncryptionName} -> Maybe Text
securityDbEncryptionName) (\s :: OracleSettings
s@OracleSettings' {} Maybe Text
a -> OracleSettings
s {$sel:securityDbEncryptionName:OracleSettings' :: Maybe Text
securityDbEncryptionName = Maybe Text
a} :: OracleSettings)

-- | Fully qualified domain name of the endpoint.
oracleSettings_serverName :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Text)
oracleSettings_serverName :: Lens' OracleSettings (Maybe Text)
oracleSettings_serverName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Text
serverName :: Maybe Text
$sel:serverName:OracleSettings' :: OracleSettings -> Maybe Text
serverName} -> Maybe Text
serverName) (\s :: OracleSettings
s@OracleSettings' {} Maybe Text
a -> OracleSettings
s {$sel:serverName:OracleSettings' :: Maybe Text
serverName = Maybe Text
a} :: OracleSettings)

-- | Use this attribute to convert @SDO_GEOMETRY@ to @GEOJSON@ format. By
-- default, DMS calls the @SDO2GEOJSON@ custom function if present and
-- accessible. Or you can create your own custom function that mimics the
-- operation of @SDOGEOJSON@ and set
-- @SpatialDataOptionToGeoJsonFunctionName@ to call it instead.
oracleSettings_spatialDataOptionToGeoJsonFunctionName :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Text)
oracleSettings_spatialDataOptionToGeoJsonFunctionName :: Lens' OracleSettings (Maybe Text)
oracleSettings_spatialDataOptionToGeoJsonFunctionName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Text
spatialDataOptionToGeoJsonFunctionName :: Maybe Text
$sel:spatialDataOptionToGeoJsonFunctionName:OracleSettings' :: OracleSettings -> Maybe Text
spatialDataOptionToGeoJsonFunctionName} -> Maybe Text
spatialDataOptionToGeoJsonFunctionName) (\s :: OracleSettings
s@OracleSettings' {} Maybe Text
a -> OracleSettings
s {$sel:spatialDataOptionToGeoJsonFunctionName:OracleSettings' :: Maybe Text
spatialDataOptionToGeoJsonFunctionName = Maybe Text
a} :: OracleSettings)

-- | Use this attribute to specify a time in minutes for the delay in standby
-- sync. If the source is an Oracle Active Data Guard standby database, use
-- this attribute to specify the time lag between primary and standby
-- databases.
--
-- In DMS, you can create an Oracle CDC task that uses an Active Data Guard
-- standby instance as a source for replicating ongoing changes. Doing this
-- eliminates the need to connect to an active database that might be in
-- production.
oracleSettings_standbyDelayTime :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Int)
oracleSettings_standbyDelayTime :: Lens' OracleSettings (Maybe Int)
oracleSettings_standbyDelayTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Int
standbyDelayTime :: Maybe Int
$sel:standbyDelayTime:OracleSettings' :: OracleSettings -> Maybe Int
standbyDelayTime} -> Maybe Int
standbyDelayTime) (\s :: OracleSettings
s@OracleSettings' {} Maybe Int
a -> OracleSettings
s {$sel:standbyDelayTime:OracleSettings' :: Maybe Int
standbyDelayTime = Maybe Int
a} :: OracleSettings)

-- | Use the @TrimSpaceInChar@ source endpoint setting to trim data on CHAR
-- and NCHAR data types during migration. The default value is @true@.
oracleSettings_trimSpaceInChar :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Bool)
oracleSettings_trimSpaceInChar :: Lens' OracleSettings (Maybe Bool)
oracleSettings_trimSpaceInChar = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Bool
trimSpaceInChar :: Maybe Bool
$sel:trimSpaceInChar:OracleSettings' :: OracleSettings -> Maybe Bool
trimSpaceInChar} -> Maybe Bool
trimSpaceInChar) (\s :: OracleSettings
s@OracleSettings' {} Maybe Bool
a -> OracleSettings
s {$sel:trimSpaceInChar:OracleSettings' :: Maybe Bool
trimSpaceInChar = Maybe Bool
a} :: OracleSettings)

-- | Set this attribute to @true@ in order to use the Binary Reader to
-- capture change data for an Amazon RDS for Oracle as the source. This
-- tells the DMS instance to use any specified prefix replacement to access
-- all online redo logs.
oracleSettings_useAlternateFolderForOnline :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Bool)
oracleSettings_useAlternateFolderForOnline :: Lens' OracleSettings (Maybe Bool)
oracleSettings_useAlternateFolderForOnline = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Bool
useAlternateFolderForOnline :: Maybe Bool
$sel:useAlternateFolderForOnline:OracleSettings' :: OracleSettings -> Maybe Bool
useAlternateFolderForOnline} -> Maybe Bool
useAlternateFolderForOnline) (\s :: OracleSettings
s@OracleSettings' {} Maybe Bool
a -> OracleSettings
s {$sel:useAlternateFolderForOnline:OracleSettings' :: Maybe Bool
useAlternateFolderForOnline = Maybe Bool
a} :: OracleSettings)

-- | Set this attribute to Y to capture change data using the Binary Reader
-- utility. Set @UseLogminerReader@ to N to set this attribute to Y. To use
-- Binary Reader with Amazon RDS for Oracle as the source, you set
-- additional attributes. For more information about using this setting
-- with Oracle Automatic Storage Management (ASM), see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC Using Oracle LogMiner or DMS Binary Reader for CDC>.
oracleSettings_useBFile :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Bool)
oracleSettings_useBFile :: Lens' OracleSettings (Maybe Bool)
oracleSettings_useBFile = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Bool
useBFile :: Maybe Bool
$sel:useBFile:OracleSettings' :: OracleSettings -> Maybe Bool
useBFile} -> Maybe Bool
useBFile) (\s :: OracleSettings
s@OracleSettings' {} Maybe Bool
a -> OracleSettings
s {$sel:useBFile:OracleSettings' :: Maybe Bool
useBFile = Maybe Bool
a} :: OracleSettings)

-- | Set this attribute to Y to have DMS use a direct path full load. Specify
-- this value to use the direct path protocol in the Oracle Call Interface
-- (OCI). By using this OCI protocol, you can bulk-load Oracle target
-- tables during a full load.
oracleSettings_useDirectPathFullLoad :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Bool)
oracleSettings_useDirectPathFullLoad :: Lens' OracleSettings (Maybe Bool)
oracleSettings_useDirectPathFullLoad = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Bool
useDirectPathFullLoad :: Maybe Bool
$sel:useDirectPathFullLoad:OracleSettings' :: OracleSettings -> Maybe Bool
useDirectPathFullLoad} -> Maybe Bool
useDirectPathFullLoad) (\s :: OracleSettings
s@OracleSettings' {} Maybe Bool
a -> OracleSettings
s {$sel:useDirectPathFullLoad:OracleSettings' :: Maybe Bool
useDirectPathFullLoad = Maybe Bool
a} :: OracleSettings)

-- | Set this attribute to Y to capture change data using the Oracle LogMiner
-- utility (the default). Set this attribute to N if you want to access the
-- redo logs as a binary file. When you set @UseLogminerReader@ to N, also
-- set @UseBfile@ to Y. For more information on this setting and using
-- Oracle ASM, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC Using Oracle LogMiner or DMS Binary Reader for CDC>
-- in the /DMS User Guide/.
oracleSettings_useLogminerReader :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Bool)
oracleSettings_useLogminerReader :: Lens' OracleSettings (Maybe Bool)
oracleSettings_useLogminerReader = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Bool
useLogminerReader :: Maybe Bool
$sel:useLogminerReader:OracleSettings' :: OracleSettings -> Maybe Bool
useLogminerReader} -> Maybe Bool
useLogminerReader) (\s :: OracleSettings
s@OracleSettings' {} Maybe Bool
a -> OracleSettings
s {$sel:useLogminerReader:OracleSettings' :: Maybe Bool
useLogminerReader = Maybe Bool
a} :: OracleSettings)

-- | Set this string attribute to the required value in order to use the
-- Binary Reader to capture change data for an Amazon RDS for Oracle as the
-- source. This value specifies the path prefix used to replace the default
-- Oracle root to access the redo logs.
oracleSettings_usePathPrefix :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Text)
oracleSettings_usePathPrefix :: Lens' OracleSettings (Maybe Text)
oracleSettings_usePathPrefix = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Text
usePathPrefix :: Maybe Text
$sel:usePathPrefix:OracleSettings' :: OracleSettings -> Maybe Text
usePathPrefix} -> Maybe Text
usePathPrefix) (\s :: OracleSettings
s@OracleSettings' {} Maybe Text
a -> OracleSettings
s {$sel:usePathPrefix:OracleSettings' :: Maybe Text
usePathPrefix = Maybe Text
a} :: OracleSettings)

-- | Endpoint connection user name.
oracleSettings_username :: Lens.Lens' OracleSettings (Prelude.Maybe Prelude.Text)
oracleSettings_username :: Lens' OracleSettings (Maybe Text)
oracleSettings_username = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OracleSettings' {Maybe Text
username :: Maybe Text
$sel:username:OracleSettings' :: OracleSettings -> Maybe Text
username} -> Maybe Text
username) (\s :: OracleSettings
s@OracleSettings' {} Maybe Text
a -> OracleSettings
s {$sel:username:OracleSettings' :: Maybe Text
username = Maybe Text
a} :: OracleSettings)

instance Data.FromJSON OracleSettings where
  parseJSON :: Value -> Parser OracleSettings
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"OracleSettings"
      ( \Object
x ->
          Maybe Bool
-> Maybe Bool
-> Maybe Int
-> Maybe Bool
-> Maybe Int
-> Maybe Bool
-> Maybe (Sensitive Text)
-> Maybe Text
-> Maybe Text
-> Maybe CharLengthSemantics
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe [Int]
-> Maybe Bool
-> Maybe Int
-> Maybe Text
-> Maybe Int
-> Maybe (Sensitive Text)
-> Maybe Int
-> Maybe Int
-> Maybe Bool
-> Maybe Bool
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe (Sensitive Text)
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> OracleSettings
OracleSettings'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AccessAlternateDirectly")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AddSupplementalLogging")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AdditionalArchivedLogDestId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AllowSelectNestedTables")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ArchivedLogDestId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ArchivedLogsOnly")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AsmPassword")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AsmServer")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AsmUser")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CharLengthSemantics")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DatabaseName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DirectPathNoLog")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DirectPathParallelLoad")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EnableHomogenousTablespace")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ExtraArchivedLogDestIds"
                            forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"FailTasksOnLobTruncation")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"NumberDatatypeScale")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"OraclePathPrefix")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ParallelAsmReadThreads")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Password")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Port")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ReadAheadBlocks")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ReadTableSpaceName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ReplacePathPrefix")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"RetryInterval")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SecretsManagerAccessRoleArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SecretsManagerOracleAsmAccessRoleArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SecretsManagerOracleAsmSecretId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SecretsManagerSecretId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SecurityDbEncryption")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SecurityDbEncryptionName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ServerName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SpatialDataOptionToGeoJsonFunctionName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"StandbyDelayTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"TrimSpaceInChar")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"UseAlternateFolderForOnline")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"UseBFile")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"UseDirectPathFullLoad")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"UseLogminerReader")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"UsePathPrefix")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Username")
      )

instance Prelude.Hashable OracleSettings where
  hashWithSalt :: Int -> OracleSettings -> Int
hashWithSalt Int
_salt OracleSettings' {Maybe Bool
Maybe Int
Maybe [Int]
Maybe Text
Maybe (Sensitive Text)
Maybe CharLengthSemantics
username :: Maybe Text
usePathPrefix :: Maybe Text
useLogminerReader :: Maybe Bool
useDirectPathFullLoad :: Maybe Bool
useBFile :: Maybe Bool
useAlternateFolderForOnline :: Maybe Bool
trimSpaceInChar :: Maybe Bool
standbyDelayTime :: Maybe Int
spatialDataOptionToGeoJsonFunctionName :: Maybe Text
serverName :: Maybe Text
securityDbEncryptionName :: Maybe Text
securityDbEncryption :: Maybe (Sensitive Text)
secretsManagerSecretId :: Maybe Text
secretsManagerOracleAsmSecretId :: Maybe Text
secretsManagerOracleAsmAccessRoleArn :: Maybe Text
secretsManagerAccessRoleArn :: Maybe Text
retryInterval :: Maybe Int
replacePathPrefix :: Maybe Bool
readTableSpaceName :: Maybe Bool
readAheadBlocks :: Maybe Int
port :: Maybe Int
password :: Maybe (Sensitive Text)
parallelAsmReadThreads :: Maybe Int
oraclePathPrefix :: Maybe Text
numberDatatypeScale :: Maybe Int
failTasksOnLobTruncation :: Maybe Bool
extraArchivedLogDestIds :: Maybe [Int]
enableHomogenousTablespace :: Maybe Bool
directPathParallelLoad :: Maybe Bool
directPathNoLog :: Maybe Bool
databaseName :: Maybe Text
charLengthSemantics :: Maybe CharLengthSemantics
asmUser :: Maybe Text
asmServer :: Maybe Text
asmPassword :: Maybe (Sensitive Text)
archivedLogsOnly :: Maybe Bool
archivedLogDestId :: Maybe Int
allowSelectNestedTables :: Maybe Bool
additionalArchivedLogDestId :: Maybe Int
addSupplementalLogging :: Maybe Bool
accessAlternateDirectly :: Maybe Bool
$sel:username:OracleSettings' :: OracleSettings -> Maybe Text
$sel:usePathPrefix:OracleSettings' :: OracleSettings -> Maybe Text
$sel:useLogminerReader:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:useDirectPathFullLoad:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:useBFile:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:useAlternateFolderForOnline:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:trimSpaceInChar:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:standbyDelayTime:OracleSettings' :: OracleSettings -> Maybe Int
$sel:spatialDataOptionToGeoJsonFunctionName:OracleSettings' :: OracleSettings -> Maybe Text
$sel:serverName:OracleSettings' :: OracleSettings -> Maybe Text
$sel:securityDbEncryptionName:OracleSettings' :: OracleSettings -> Maybe Text
$sel:securityDbEncryption:OracleSettings' :: OracleSettings -> Maybe (Sensitive Text)
$sel:secretsManagerSecretId:OracleSettings' :: OracleSettings -> Maybe Text
$sel:secretsManagerOracleAsmSecretId:OracleSettings' :: OracleSettings -> Maybe Text
$sel:secretsManagerOracleAsmAccessRoleArn:OracleSettings' :: OracleSettings -> Maybe Text
$sel:secretsManagerAccessRoleArn:OracleSettings' :: OracleSettings -> Maybe Text
$sel:retryInterval:OracleSettings' :: OracleSettings -> Maybe Int
$sel:replacePathPrefix:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:readTableSpaceName:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:readAheadBlocks:OracleSettings' :: OracleSettings -> Maybe Int
$sel:port:OracleSettings' :: OracleSettings -> Maybe Int
$sel:password:OracleSettings' :: OracleSettings -> Maybe (Sensitive Text)
$sel:parallelAsmReadThreads:OracleSettings' :: OracleSettings -> Maybe Int
$sel:oraclePathPrefix:OracleSettings' :: OracleSettings -> Maybe Text
$sel:numberDatatypeScale:OracleSettings' :: OracleSettings -> Maybe Int
$sel:failTasksOnLobTruncation:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:extraArchivedLogDestIds:OracleSettings' :: OracleSettings -> Maybe [Int]
$sel:enableHomogenousTablespace:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:directPathParallelLoad:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:directPathNoLog:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:databaseName:OracleSettings' :: OracleSettings -> Maybe Text
$sel:charLengthSemantics:OracleSettings' :: OracleSettings -> Maybe CharLengthSemantics
$sel:asmUser:OracleSettings' :: OracleSettings -> Maybe Text
$sel:asmServer:OracleSettings' :: OracleSettings -> Maybe Text
$sel:asmPassword:OracleSettings' :: OracleSettings -> Maybe (Sensitive Text)
$sel:archivedLogsOnly:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:archivedLogDestId:OracleSettings' :: OracleSettings -> Maybe Int
$sel:allowSelectNestedTables:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:additionalArchivedLogDestId:OracleSettings' :: OracleSettings -> Maybe Int
$sel:addSupplementalLogging:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:accessAlternateDirectly:OracleSettings' :: OracleSettings -> Maybe Bool
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
accessAlternateDirectly
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
addSupplementalLogging
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
additionalArchivedLogDestId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
allowSelectNestedTables
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
archivedLogDestId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
archivedLogsOnly
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
asmPassword
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
asmServer
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
asmUser
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CharLengthSemantics
charLengthSemantics
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
databaseName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
directPathNoLog
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
directPathParallelLoad
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
enableHomogenousTablespace
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Int]
extraArchivedLogDestIds
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
failTasksOnLobTruncation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
numberDatatypeScale
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
oraclePathPrefix
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
parallelAsmReadThreads
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
password
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
port
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
readAheadBlocks
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
readTableSpaceName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
replacePathPrefix
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
retryInterval
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
secretsManagerAccessRoleArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
secretsManagerOracleAsmAccessRoleArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
secretsManagerOracleAsmSecretId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
secretsManagerSecretId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
securityDbEncryption
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
securityDbEncryptionName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
serverName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
spatialDataOptionToGeoJsonFunctionName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
standbyDelayTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
trimSpaceInChar
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
useAlternateFolderForOnline
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
useBFile
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
useDirectPathFullLoad
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
useLogminerReader
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
usePathPrefix
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
username

instance Prelude.NFData OracleSettings where
  rnf :: OracleSettings -> ()
rnf OracleSettings' {Maybe Bool
Maybe Int
Maybe [Int]
Maybe Text
Maybe (Sensitive Text)
Maybe CharLengthSemantics
username :: Maybe Text
usePathPrefix :: Maybe Text
useLogminerReader :: Maybe Bool
useDirectPathFullLoad :: Maybe Bool
useBFile :: Maybe Bool
useAlternateFolderForOnline :: Maybe Bool
trimSpaceInChar :: Maybe Bool
standbyDelayTime :: Maybe Int
spatialDataOptionToGeoJsonFunctionName :: Maybe Text
serverName :: Maybe Text
securityDbEncryptionName :: Maybe Text
securityDbEncryption :: Maybe (Sensitive Text)
secretsManagerSecretId :: Maybe Text
secretsManagerOracleAsmSecretId :: Maybe Text
secretsManagerOracleAsmAccessRoleArn :: Maybe Text
secretsManagerAccessRoleArn :: Maybe Text
retryInterval :: Maybe Int
replacePathPrefix :: Maybe Bool
readTableSpaceName :: Maybe Bool
readAheadBlocks :: Maybe Int
port :: Maybe Int
password :: Maybe (Sensitive Text)
parallelAsmReadThreads :: Maybe Int
oraclePathPrefix :: Maybe Text
numberDatatypeScale :: Maybe Int
failTasksOnLobTruncation :: Maybe Bool
extraArchivedLogDestIds :: Maybe [Int]
enableHomogenousTablespace :: Maybe Bool
directPathParallelLoad :: Maybe Bool
directPathNoLog :: Maybe Bool
databaseName :: Maybe Text
charLengthSemantics :: Maybe CharLengthSemantics
asmUser :: Maybe Text
asmServer :: Maybe Text
asmPassword :: Maybe (Sensitive Text)
archivedLogsOnly :: Maybe Bool
archivedLogDestId :: Maybe Int
allowSelectNestedTables :: Maybe Bool
additionalArchivedLogDestId :: Maybe Int
addSupplementalLogging :: Maybe Bool
accessAlternateDirectly :: Maybe Bool
$sel:username:OracleSettings' :: OracleSettings -> Maybe Text
$sel:usePathPrefix:OracleSettings' :: OracleSettings -> Maybe Text
$sel:useLogminerReader:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:useDirectPathFullLoad:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:useBFile:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:useAlternateFolderForOnline:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:trimSpaceInChar:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:standbyDelayTime:OracleSettings' :: OracleSettings -> Maybe Int
$sel:spatialDataOptionToGeoJsonFunctionName:OracleSettings' :: OracleSettings -> Maybe Text
$sel:serverName:OracleSettings' :: OracleSettings -> Maybe Text
$sel:securityDbEncryptionName:OracleSettings' :: OracleSettings -> Maybe Text
$sel:securityDbEncryption:OracleSettings' :: OracleSettings -> Maybe (Sensitive Text)
$sel:secretsManagerSecretId:OracleSettings' :: OracleSettings -> Maybe Text
$sel:secretsManagerOracleAsmSecretId:OracleSettings' :: OracleSettings -> Maybe Text
$sel:secretsManagerOracleAsmAccessRoleArn:OracleSettings' :: OracleSettings -> Maybe Text
$sel:secretsManagerAccessRoleArn:OracleSettings' :: OracleSettings -> Maybe Text
$sel:retryInterval:OracleSettings' :: OracleSettings -> Maybe Int
$sel:replacePathPrefix:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:readTableSpaceName:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:readAheadBlocks:OracleSettings' :: OracleSettings -> Maybe Int
$sel:port:OracleSettings' :: OracleSettings -> Maybe Int
$sel:password:OracleSettings' :: OracleSettings -> Maybe (Sensitive Text)
$sel:parallelAsmReadThreads:OracleSettings' :: OracleSettings -> Maybe Int
$sel:oraclePathPrefix:OracleSettings' :: OracleSettings -> Maybe Text
$sel:numberDatatypeScale:OracleSettings' :: OracleSettings -> Maybe Int
$sel:failTasksOnLobTruncation:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:extraArchivedLogDestIds:OracleSettings' :: OracleSettings -> Maybe [Int]
$sel:enableHomogenousTablespace:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:directPathParallelLoad:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:directPathNoLog:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:databaseName:OracleSettings' :: OracleSettings -> Maybe Text
$sel:charLengthSemantics:OracleSettings' :: OracleSettings -> Maybe CharLengthSemantics
$sel:asmUser:OracleSettings' :: OracleSettings -> Maybe Text
$sel:asmServer:OracleSettings' :: OracleSettings -> Maybe Text
$sel:asmPassword:OracleSettings' :: OracleSettings -> Maybe (Sensitive Text)
$sel:archivedLogsOnly:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:archivedLogDestId:OracleSettings' :: OracleSettings -> Maybe Int
$sel:allowSelectNestedTables:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:additionalArchivedLogDestId:OracleSettings' :: OracleSettings -> Maybe Int
$sel:addSupplementalLogging:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:accessAlternateDirectly:OracleSettings' :: OracleSettings -> Maybe Bool
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
accessAlternateDirectly
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
addSupplementalLogging
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
additionalArchivedLogDestId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
allowSelectNestedTables
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
archivedLogDestId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
archivedLogsOnly
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
asmPassword
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
asmServer
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
asmUser
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CharLengthSemantics
charLengthSemantics
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
databaseName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
directPathNoLog
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
directPathParallelLoad
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
enableHomogenousTablespace
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Int]
extraArchivedLogDestIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
failTasksOnLobTruncation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
numberDatatypeScale
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
oraclePathPrefix
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Int
parallelAsmReadThreads
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
password
      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 Int
readAheadBlocks
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Bool
readTableSpaceName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Bool
replacePathPrefix
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Int
retryInterval
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
secretsManagerAccessRoleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
secretsManagerOracleAsmAccessRoleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
secretsManagerOracleAsmSecretId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
secretsManagerSecretId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe (Sensitive Text)
securityDbEncryption
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
securityDbEncryptionName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
serverName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
spatialDataOptionToGeoJsonFunctionName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Int
standbyDelayTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Bool
trimSpaceInChar
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Bool
useAlternateFolderForOnline
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Bool
useBFile
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Bool
useDirectPathFullLoad
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Bool
useLogminerReader
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
usePathPrefix
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
username

instance Data.ToJSON OracleSettings where
  toJSON :: OracleSettings -> Value
toJSON OracleSettings' {Maybe Bool
Maybe Int
Maybe [Int]
Maybe Text
Maybe (Sensitive Text)
Maybe CharLengthSemantics
username :: Maybe Text
usePathPrefix :: Maybe Text
useLogminerReader :: Maybe Bool
useDirectPathFullLoad :: Maybe Bool
useBFile :: Maybe Bool
useAlternateFolderForOnline :: Maybe Bool
trimSpaceInChar :: Maybe Bool
standbyDelayTime :: Maybe Int
spatialDataOptionToGeoJsonFunctionName :: Maybe Text
serverName :: Maybe Text
securityDbEncryptionName :: Maybe Text
securityDbEncryption :: Maybe (Sensitive Text)
secretsManagerSecretId :: Maybe Text
secretsManagerOracleAsmSecretId :: Maybe Text
secretsManagerOracleAsmAccessRoleArn :: Maybe Text
secretsManagerAccessRoleArn :: Maybe Text
retryInterval :: Maybe Int
replacePathPrefix :: Maybe Bool
readTableSpaceName :: Maybe Bool
readAheadBlocks :: Maybe Int
port :: Maybe Int
password :: Maybe (Sensitive Text)
parallelAsmReadThreads :: Maybe Int
oraclePathPrefix :: Maybe Text
numberDatatypeScale :: Maybe Int
failTasksOnLobTruncation :: Maybe Bool
extraArchivedLogDestIds :: Maybe [Int]
enableHomogenousTablespace :: Maybe Bool
directPathParallelLoad :: Maybe Bool
directPathNoLog :: Maybe Bool
databaseName :: Maybe Text
charLengthSemantics :: Maybe CharLengthSemantics
asmUser :: Maybe Text
asmServer :: Maybe Text
asmPassword :: Maybe (Sensitive Text)
archivedLogsOnly :: Maybe Bool
archivedLogDestId :: Maybe Int
allowSelectNestedTables :: Maybe Bool
additionalArchivedLogDestId :: Maybe Int
addSupplementalLogging :: Maybe Bool
accessAlternateDirectly :: Maybe Bool
$sel:username:OracleSettings' :: OracleSettings -> Maybe Text
$sel:usePathPrefix:OracleSettings' :: OracleSettings -> Maybe Text
$sel:useLogminerReader:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:useDirectPathFullLoad:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:useBFile:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:useAlternateFolderForOnline:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:trimSpaceInChar:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:standbyDelayTime:OracleSettings' :: OracleSettings -> Maybe Int
$sel:spatialDataOptionToGeoJsonFunctionName:OracleSettings' :: OracleSettings -> Maybe Text
$sel:serverName:OracleSettings' :: OracleSettings -> Maybe Text
$sel:securityDbEncryptionName:OracleSettings' :: OracleSettings -> Maybe Text
$sel:securityDbEncryption:OracleSettings' :: OracleSettings -> Maybe (Sensitive Text)
$sel:secretsManagerSecretId:OracleSettings' :: OracleSettings -> Maybe Text
$sel:secretsManagerOracleAsmSecretId:OracleSettings' :: OracleSettings -> Maybe Text
$sel:secretsManagerOracleAsmAccessRoleArn:OracleSettings' :: OracleSettings -> Maybe Text
$sel:secretsManagerAccessRoleArn:OracleSettings' :: OracleSettings -> Maybe Text
$sel:retryInterval:OracleSettings' :: OracleSettings -> Maybe Int
$sel:replacePathPrefix:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:readTableSpaceName:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:readAheadBlocks:OracleSettings' :: OracleSettings -> Maybe Int
$sel:port:OracleSettings' :: OracleSettings -> Maybe Int
$sel:password:OracleSettings' :: OracleSettings -> Maybe (Sensitive Text)
$sel:parallelAsmReadThreads:OracleSettings' :: OracleSettings -> Maybe Int
$sel:oraclePathPrefix:OracleSettings' :: OracleSettings -> Maybe Text
$sel:numberDatatypeScale:OracleSettings' :: OracleSettings -> Maybe Int
$sel:failTasksOnLobTruncation:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:extraArchivedLogDestIds:OracleSettings' :: OracleSettings -> Maybe [Int]
$sel:enableHomogenousTablespace:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:directPathParallelLoad:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:directPathNoLog:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:databaseName:OracleSettings' :: OracleSettings -> Maybe Text
$sel:charLengthSemantics:OracleSettings' :: OracleSettings -> Maybe CharLengthSemantics
$sel:asmUser:OracleSettings' :: OracleSettings -> Maybe Text
$sel:asmServer:OracleSettings' :: OracleSettings -> Maybe Text
$sel:asmPassword:OracleSettings' :: OracleSettings -> Maybe (Sensitive Text)
$sel:archivedLogsOnly:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:archivedLogDestId:OracleSettings' :: OracleSettings -> Maybe Int
$sel:allowSelectNestedTables:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:additionalArchivedLogDestId:OracleSettings' :: OracleSettings -> Maybe Int
$sel:addSupplementalLogging:OracleSettings' :: OracleSettings -> Maybe Bool
$sel:accessAlternateDirectly:OracleSettings' :: OracleSettings -> Maybe Bool
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"AccessAlternateDirectly" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
accessAlternateDirectly,
            (Key
"AddSupplementalLogging" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
addSupplementalLogging,
            (Key
"AdditionalArchivedLogDestId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
additionalArchivedLogDestId,
            (Key
"AllowSelectNestedTables" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
allowSelectNestedTables,
            (Key
"ArchivedLogDestId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
archivedLogDestId,
            (Key
"ArchivedLogsOnly" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
archivedLogsOnly,
            (Key
"AsmPassword" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Sensitive Text)
asmPassword,
            (Key
"AsmServer" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
asmServer,
            (Key
"AsmUser" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
asmUser,
            (Key
"CharLengthSemantics" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe CharLengthSemantics
charLengthSemantics,
            (Key
"DatabaseName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
databaseName,
            (Key
"DirectPathNoLog" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
directPathNoLog,
            (Key
"DirectPathParallelLoad" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
directPathParallelLoad,
            (Key
"EnableHomogenousTablespace" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
enableHomogenousTablespace,
            (Key
"ExtraArchivedLogDestIds" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Int]
extraArchivedLogDestIds,
            (Key
"FailTasksOnLobTruncation" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
failTasksOnLobTruncation,
            (Key
"NumberDatatypeScale" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
numberDatatypeScale,
            (Key
"OraclePathPrefix" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
oraclePathPrefix,
            (Key
"ParallelAsmReadThreads" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
parallelAsmReadThreads,
            (Key
"Password" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Sensitive Text)
password,
            (Key
"Port" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
port,
            (Key
"ReadAheadBlocks" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
readAheadBlocks,
            (Key
"ReadTableSpaceName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
readTableSpaceName,
            (Key
"ReplacePathPrefix" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
replacePathPrefix,
            (Key
"RetryInterval" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
retryInterval,
            (Key
"SecretsManagerAccessRoleArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
secretsManagerAccessRoleArn,
            (Key
"SecretsManagerOracleAsmAccessRoleArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
secretsManagerOracleAsmAccessRoleArn,
            (Key
"SecretsManagerOracleAsmSecretId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
secretsManagerOracleAsmSecretId,
            (Key
"SecretsManagerSecretId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
secretsManagerSecretId,
            (Key
"SecurityDbEncryption" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Sensitive Text)
securityDbEncryption,
            (Key
"SecurityDbEncryptionName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
securityDbEncryptionName,
            (Key
"ServerName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
serverName,
            (Key
"SpatialDataOptionToGeoJsonFunctionName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
spatialDataOptionToGeoJsonFunctionName,
            (Key
"StandbyDelayTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
standbyDelayTime,
            (Key
"TrimSpaceInChar" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
trimSpaceInChar,
            (Key
"UseAlternateFolderForOnline" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
useAlternateFolderForOnline,
            (Key
"UseBFile" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
useBFile,
            (Key
"UseDirectPathFullLoad" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
useDirectPathFullLoad,
            (Key
"UseLogminerReader" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
useLogminerReader,
            (Key
"UsePathPrefix" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
usePathPrefix,
            (Key
"Username" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
username
          ]
      )