{-# 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.Endpoint
-- 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.Endpoint where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import Amazonka.DMS.Types.DmsSslModeValue
import Amazonka.DMS.Types.DmsTransferSettings
import Amazonka.DMS.Types.DocDbSettings
import Amazonka.DMS.Types.DynamoDbSettings
import Amazonka.DMS.Types.ElasticsearchSettings
import Amazonka.DMS.Types.GcpMySQLSettings
import Amazonka.DMS.Types.IBMDb2Settings
import Amazonka.DMS.Types.KafkaSettings
import Amazonka.DMS.Types.KinesisSettings
import Amazonka.DMS.Types.MicrosoftSQLServerSettings
import Amazonka.DMS.Types.MongoDbSettings
import Amazonka.DMS.Types.MySQLSettings
import Amazonka.DMS.Types.NeptuneSettings
import Amazonka.DMS.Types.OracleSettings
import Amazonka.DMS.Types.PostgreSQLSettings
import Amazonka.DMS.Types.RedisSettings
import Amazonka.DMS.Types.RedshiftSettings
import Amazonka.DMS.Types.ReplicationEndpointTypeValue
import Amazonka.DMS.Types.S3Settings
import Amazonka.DMS.Types.SybaseSettings
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

-- | Describes an endpoint of a database instance in response to operations
-- such as the following:
--
-- -   @CreateEndpoint@
--
-- -   @DescribeEndpoint@
--
-- -   @ModifyEndpoint@
--
-- /See:/ 'newEndpoint' smart constructor.
data Endpoint = Endpoint'
  { -- | The Amazon Resource Name (ARN) used for SSL connection to the endpoint.
    Endpoint -> Maybe Text
certificateArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the database at the endpoint.
    Endpoint -> Maybe Text
databaseName :: Prelude.Maybe Prelude.Text,
    -- | The settings for the DMS Transfer type source. For more information, see
    -- the DmsTransferSettings structure.
    Endpoint -> Maybe DmsTransferSettings
dmsTransferSettings :: Prelude.Maybe DmsTransferSettings,
    Endpoint -> Maybe DocDbSettings
docDbSettings :: Prelude.Maybe DocDbSettings,
    -- | The settings for the DynamoDB target endpoint. For more information, see
    -- the @DynamoDBSettings@ structure.
    Endpoint -> Maybe DynamoDbSettings
dynamoDbSettings :: Prelude.Maybe DynamoDbSettings,
    -- | The settings for the OpenSearch source endpoint. For more information,
    -- see the @ElasticsearchSettings@ structure.
    Endpoint -> Maybe ElasticsearchSettings
elasticsearchSettings :: Prelude.Maybe ElasticsearchSettings,
    -- | The Amazon Resource Name (ARN) string that uniquely identifies the
    -- endpoint.
    Endpoint -> Maybe Text
endpointArn :: Prelude.Maybe Prelude.Text,
    -- | The database endpoint identifier. Identifiers must begin with a letter
    -- and must contain only ASCII letters, digits, and hyphens. They can\'t
    -- end with a hyphen or contain two consecutive hyphens.
    Endpoint -> Maybe Text
endpointIdentifier :: Prelude.Maybe Prelude.Text,
    -- | The type of endpoint. Valid values are @source@ and @target@.
    Endpoint -> Maybe ReplicationEndpointTypeValue
endpointType :: Prelude.Maybe ReplicationEndpointTypeValue,
    -- | The expanded name for the engine name. For example, if the @EngineName@
    -- parameter is \"aurora\", this value would be \"Amazon Aurora MySQL\".
    Endpoint -> Maybe Text
engineDisplayName :: Prelude.Maybe Prelude.Text,
    -- | The database engine name. Valid values, depending on the EndpointType,
    -- include @\"mysql\"@, @\"oracle\"@, @\"postgres\"@, @\"mariadb\"@,
    -- @\"aurora\"@, @\"aurora-postgresql\"@, @\"redshift\"@, @\"s3\"@,
    -- @\"db2\"@, @\"db2-zos\"@, @\"azuredb\"@, @\"sybase\"@, @\"dynamodb\"@,
    -- @\"mongodb\"@, @\"kinesis\"@, @\"kafka\"@, @\"elasticsearch\"@,
    -- @\"documentdb\"@, @\"sqlserver\"@, @\"neptune\"@, and @\"babelfish\"@.
    Endpoint -> Maybe Text
engineName :: Prelude.Maybe Prelude.Text,
    -- | Value returned by a call to CreateEndpoint that can be used for
    -- cross-account validation. Use it on a subsequent call to CreateEndpoint
    -- to create the endpoint with a cross-account.
    Endpoint -> Maybe Text
externalId :: Prelude.Maybe Prelude.Text,
    -- | The external table definition.
    Endpoint -> Maybe Text
externalTableDefinition :: Prelude.Maybe Prelude.Text,
    -- | Additional connection attributes used to connect to the endpoint.
    Endpoint -> Maybe Text
extraConnectionAttributes :: Prelude.Maybe Prelude.Text,
    -- | Settings in JSON format for the source GCP MySQL endpoint.
    Endpoint -> Maybe GcpMySQLSettings
gcpMySQLSettings :: Prelude.Maybe GcpMySQLSettings,
    -- | The settings for the IBM Db2 LUW source endpoint. For more information,
    -- see the @IBMDb2Settings@ structure.
    Endpoint -> Maybe IBMDb2Settings
iBMDb2Settings :: Prelude.Maybe IBMDb2Settings,
    -- | The settings for the Apache Kafka target endpoint. For more information,
    -- see the @KafkaSettings@ structure.
    Endpoint -> Maybe KafkaSettings
kafkaSettings :: Prelude.Maybe KafkaSettings,
    -- | The settings for the Amazon Kinesis target endpoint. For more
    -- information, see the @KinesisSettings@ structure.
    Endpoint -> Maybe KinesisSettings
kinesisSettings :: Prelude.Maybe KinesisSettings,
    -- | An KMS key identifier that is used to encrypt the connection parameters
    -- for the endpoint.
    --
    -- If you don\'t specify a value for the @KmsKeyId@ parameter, then DMS
    -- uses your default encryption key.
    --
    -- KMS creates the default encryption key for your Amazon Web Services
    -- account. Your Amazon Web Services account has a different default
    -- encryption key for each Amazon Web Services Region.
    Endpoint -> Maybe Text
kmsKeyId :: Prelude.Maybe Prelude.Text,
    -- | The settings for the Microsoft SQL Server source and target endpoint.
    -- For more information, see the @MicrosoftSQLServerSettings@ structure.
    Endpoint -> Maybe MicrosoftSQLServerSettings
microsoftSQLServerSettings :: Prelude.Maybe MicrosoftSQLServerSettings,
    -- | The settings for the MongoDB source endpoint. For more information, see
    -- the @MongoDbSettings@ structure.
    Endpoint -> Maybe MongoDbSettings
mongoDbSettings :: Prelude.Maybe MongoDbSettings,
    -- | The settings for the MySQL source and target endpoint. For more
    -- information, see the @MySQLSettings@ structure.
    Endpoint -> Maybe MySQLSettings
mySQLSettings :: Prelude.Maybe MySQLSettings,
    -- | The settings for the Amazon Neptune target endpoint. For more
    -- information, see the @NeptuneSettings@ structure.
    Endpoint -> Maybe NeptuneSettings
neptuneSettings :: Prelude.Maybe NeptuneSettings,
    -- | The settings for the Oracle source and target endpoint. For more
    -- information, see the @OracleSettings@ structure.
    Endpoint -> Maybe OracleSettings
oracleSettings :: Prelude.Maybe OracleSettings,
    -- | The port value used to access the endpoint.
    Endpoint -> Maybe Int
port :: Prelude.Maybe Prelude.Int,
    -- | The settings for the PostgreSQL source and target endpoint. For more
    -- information, see the @PostgreSQLSettings@ structure.
    Endpoint -> Maybe PostgreSQLSettings
postgreSQLSettings :: Prelude.Maybe PostgreSQLSettings,
    -- | The settings for the Redis target endpoint. For more information, see
    -- the @RedisSettings@ structure.
    Endpoint -> Maybe RedisSettings
redisSettings :: Prelude.Maybe RedisSettings,
    -- | Settings for the Amazon Redshift endpoint.
    Endpoint -> Maybe RedshiftSettings
redshiftSettings :: Prelude.Maybe RedshiftSettings,
    -- | The settings for the S3 target endpoint. For more information, see the
    -- @S3Settings@ structure.
    Endpoint -> Maybe S3Settings
s3Settings :: Prelude.Maybe S3Settings,
    -- | The name of the server at the endpoint.
    Endpoint -> Maybe Text
serverName :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) used by the service to access the IAM
    -- role. The role must allow the @iam:PassRole@ action.
    Endpoint -> Maybe Text
serviceAccessRoleArn :: Prelude.Maybe Prelude.Text,
    -- | The SSL mode used to connect to the endpoint. The default value is
    -- @none@.
    Endpoint -> Maybe DmsSslModeValue
sslMode :: Prelude.Maybe DmsSslModeValue,
    -- | The status of the endpoint.
    Endpoint -> Maybe Text
status :: Prelude.Maybe Prelude.Text,
    -- | The settings for the SAP ASE source and target endpoint. For more
    -- information, see the @SybaseSettings@ structure.
    Endpoint -> Maybe SybaseSettings
sybaseSettings :: Prelude.Maybe SybaseSettings,
    -- | The user name used to connect to the endpoint.
    Endpoint -> Maybe Text
username :: Prelude.Maybe Prelude.Text
  }
  deriving (Endpoint -> Endpoint -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Endpoint -> Endpoint -> Bool
$c/= :: Endpoint -> Endpoint -> Bool
== :: Endpoint -> Endpoint -> Bool
$c== :: Endpoint -> Endpoint -> Bool
Prelude.Eq, Int -> Endpoint -> ShowS
[Endpoint] -> ShowS
Endpoint -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Endpoint] -> ShowS
$cshowList :: [Endpoint] -> ShowS
show :: Endpoint -> String
$cshow :: Endpoint -> String
showsPrec :: Int -> Endpoint -> ShowS
$cshowsPrec :: Int -> Endpoint -> ShowS
Prelude.Show, forall x. Rep Endpoint x -> Endpoint
forall x. Endpoint -> Rep Endpoint x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Endpoint x -> Endpoint
$cfrom :: forall x. Endpoint -> Rep Endpoint x
Prelude.Generic)

-- |
-- Create a value of 'Endpoint' 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:
--
-- 'certificateArn', 'endpoint_certificateArn' - The Amazon Resource Name (ARN) used for SSL connection to the endpoint.
--
-- 'databaseName', 'endpoint_databaseName' - The name of the database at the endpoint.
--
-- 'dmsTransferSettings', 'endpoint_dmsTransferSettings' - The settings for the DMS Transfer type source. For more information, see
-- the DmsTransferSettings structure.
--
-- 'docDbSettings', 'endpoint_docDbSettings' - Undocumented member.
--
-- 'dynamoDbSettings', 'endpoint_dynamoDbSettings' - The settings for the DynamoDB target endpoint. For more information, see
-- the @DynamoDBSettings@ structure.
--
-- 'elasticsearchSettings', 'endpoint_elasticsearchSettings' - The settings for the OpenSearch source endpoint. For more information,
-- see the @ElasticsearchSettings@ structure.
--
-- 'endpointArn', 'endpoint_endpointArn' - The Amazon Resource Name (ARN) string that uniquely identifies the
-- endpoint.
--
-- 'endpointIdentifier', 'endpoint_endpointIdentifier' - The database endpoint identifier. Identifiers must begin with a letter
-- and must contain only ASCII letters, digits, and hyphens. They can\'t
-- end with a hyphen or contain two consecutive hyphens.
--
-- 'endpointType', 'endpoint_endpointType' - The type of endpoint. Valid values are @source@ and @target@.
--
-- 'engineDisplayName', 'endpoint_engineDisplayName' - The expanded name for the engine name. For example, if the @EngineName@
-- parameter is \"aurora\", this value would be \"Amazon Aurora MySQL\".
--
-- 'engineName', 'endpoint_engineName' - The database engine name. Valid values, depending on the EndpointType,
-- include @\"mysql\"@, @\"oracle\"@, @\"postgres\"@, @\"mariadb\"@,
-- @\"aurora\"@, @\"aurora-postgresql\"@, @\"redshift\"@, @\"s3\"@,
-- @\"db2\"@, @\"db2-zos\"@, @\"azuredb\"@, @\"sybase\"@, @\"dynamodb\"@,
-- @\"mongodb\"@, @\"kinesis\"@, @\"kafka\"@, @\"elasticsearch\"@,
-- @\"documentdb\"@, @\"sqlserver\"@, @\"neptune\"@, and @\"babelfish\"@.
--
-- 'externalId', 'endpoint_externalId' - Value returned by a call to CreateEndpoint that can be used for
-- cross-account validation. Use it on a subsequent call to CreateEndpoint
-- to create the endpoint with a cross-account.
--
-- 'externalTableDefinition', 'endpoint_externalTableDefinition' - The external table definition.
--
-- 'extraConnectionAttributes', 'endpoint_extraConnectionAttributes' - Additional connection attributes used to connect to the endpoint.
--
-- 'gcpMySQLSettings', 'endpoint_gcpMySQLSettings' - Settings in JSON format for the source GCP MySQL endpoint.
--
-- 'iBMDb2Settings', 'endpoint_iBMDb2Settings' - The settings for the IBM Db2 LUW source endpoint. For more information,
-- see the @IBMDb2Settings@ structure.
--
-- 'kafkaSettings', 'endpoint_kafkaSettings' - The settings for the Apache Kafka target endpoint. For more information,
-- see the @KafkaSettings@ structure.
--
-- 'kinesisSettings', 'endpoint_kinesisSettings' - The settings for the Amazon Kinesis target endpoint. For more
-- information, see the @KinesisSettings@ structure.
--
-- 'kmsKeyId', 'endpoint_kmsKeyId' - An KMS key identifier that is used to encrypt the connection parameters
-- for the endpoint.
--
-- If you don\'t specify a value for the @KmsKeyId@ parameter, then DMS
-- uses your default encryption key.
--
-- KMS creates the default encryption key for your Amazon Web Services
-- account. Your Amazon Web Services account has a different default
-- encryption key for each Amazon Web Services Region.
--
-- 'microsoftSQLServerSettings', 'endpoint_microsoftSQLServerSettings' - The settings for the Microsoft SQL Server source and target endpoint.
-- For more information, see the @MicrosoftSQLServerSettings@ structure.
--
-- 'mongoDbSettings', 'endpoint_mongoDbSettings' - The settings for the MongoDB source endpoint. For more information, see
-- the @MongoDbSettings@ structure.
--
-- 'mySQLSettings', 'endpoint_mySQLSettings' - The settings for the MySQL source and target endpoint. For more
-- information, see the @MySQLSettings@ structure.
--
-- 'neptuneSettings', 'endpoint_neptuneSettings' - The settings for the Amazon Neptune target endpoint. For more
-- information, see the @NeptuneSettings@ structure.
--
-- 'oracleSettings', 'endpoint_oracleSettings' - The settings for the Oracle source and target endpoint. For more
-- information, see the @OracleSettings@ structure.
--
-- 'port', 'endpoint_port' - The port value used to access the endpoint.
--
-- 'postgreSQLSettings', 'endpoint_postgreSQLSettings' - The settings for the PostgreSQL source and target endpoint. For more
-- information, see the @PostgreSQLSettings@ structure.
--
-- 'redisSettings', 'endpoint_redisSettings' - The settings for the Redis target endpoint. For more information, see
-- the @RedisSettings@ structure.
--
-- 'redshiftSettings', 'endpoint_redshiftSettings' - Settings for the Amazon Redshift endpoint.
--
-- 's3Settings', 'endpoint_s3Settings' - The settings for the S3 target endpoint. For more information, see the
-- @S3Settings@ structure.
--
-- 'serverName', 'endpoint_serverName' - The name of the server at the endpoint.
--
-- 'serviceAccessRoleArn', 'endpoint_serviceAccessRoleArn' - The Amazon Resource Name (ARN) used by the service to access the IAM
-- role. The role must allow the @iam:PassRole@ action.
--
-- 'sslMode', 'endpoint_sslMode' - The SSL mode used to connect to the endpoint. The default value is
-- @none@.
--
-- 'status', 'endpoint_status' - The status of the endpoint.
--
-- 'sybaseSettings', 'endpoint_sybaseSettings' - The settings for the SAP ASE source and target endpoint. For more
-- information, see the @SybaseSettings@ structure.
--
-- 'username', 'endpoint_username' - The user name used to connect to the endpoint.
newEndpoint ::
  Endpoint
newEndpoint :: Endpoint
newEndpoint =
  Endpoint'
    { $sel:certificateArn:Endpoint' :: Maybe Text
certificateArn = forall a. Maybe a
Prelude.Nothing,
      $sel:databaseName:Endpoint' :: Maybe Text
databaseName = forall a. Maybe a
Prelude.Nothing,
      $sel:dmsTransferSettings:Endpoint' :: Maybe DmsTransferSettings
dmsTransferSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:docDbSettings:Endpoint' :: Maybe DocDbSettings
docDbSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:dynamoDbSettings:Endpoint' :: Maybe DynamoDbSettings
dynamoDbSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:elasticsearchSettings:Endpoint' :: Maybe ElasticsearchSettings
elasticsearchSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:endpointArn:Endpoint' :: Maybe Text
endpointArn = forall a. Maybe a
Prelude.Nothing,
      $sel:endpointIdentifier:Endpoint' :: Maybe Text
endpointIdentifier = forall a. Maybe a
Prelude.Nothing,
      $sel:endpointType:Endpoint' :: Maybe ReplicationEndpointTypeValue
endpointType = forall a. Maybe a
Prelude.Nothing,
      $sel:engineDisplayName:Endpoint' :: Maybe Text
engineDisplayName = forall a. Maybe a
Prelude.Nothing,
      $sel:engineName:Endpoint' :: Maybe Text
engineName = forall a. Maybe a
Prelude.Nothing,
      $sel:externalId:Endpoint' :: Maybe Text
externalId = forall a. Maybe a
Prelude.Nothing,
      $sel:externalTableDefinition:Endpoint' :: Maybe Text
externalTableDefinition = forall a. Maybe a
Prelude.Nothing,
      $sel:extraConnectionAttributes:Endpoint' :: Maybe Text
extraConnectionAttributes = forall a. Maybe a
Prelude.Nothing,
      $sel:gcpMySQLSettings:Endpoint' :: Maybe GcpMySQLSettings
gcpMySQLSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:iBMDb2Settings:Endpoint' :: Maybe IBMDb2Settings
iBMDb2Settings = forall a. Maybe a
Prelude.Nothing,
      $sel:kafkaSettings:Endpoint' :: Maybe KafkaSettings
kafkaSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:kinesisSettings:Endpoint' :: Maybe KinesisSettings
kinesisSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:kmsKeyId:Endpoint' :: Maybe Text
kmsKeyId = forall a. Maybe a
Prelude.Nothing,
      $sel:microsoftSQLServerSettings:Endpoint' :: Maybe MicrosoftSQLServerSettings
microsoftSQLServerSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:mongoDbSettings:Endpoint' :: Maybe MongoDbSettings
mongoDbSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:mySQLSettings:Endpoint' :: Maybe MySQLSettings
mySQLSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:neptuneSettings:Endpoint' :: Maybe NeptuneSettings
neptuneSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:oracleSettings:Endpoint' :: Maybe OracleSettings
oracleSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:port:Endpoint' :: Maybe Int
port = forall a. Maybe a
Prelude.Nothing,
      $sel:postgreSQLSettings:Endpoint' :: Maybe PostgreSQLSettings
postgreSQLSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:redisSettings:Endpoint' :: Maybe RedisSettings
redisSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:redshiftSettings:Endpoint' :: Maybe RedshiftSettings
redshiftSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:s3Settings:Endpoint' :: Maybe S3Settings
s3Settings = forall a. Maybe a
Prelude.Nothing,
      $sel:serverName:Endpoint' :: Maybe Text
serverName = forall a. Maybe a
Prelude.Nothing,
      $sel:serviceAccessRoleArn:Endpoint' :: Maybe Text
serviceAccessRoleArn = forall a. Maybe a
Prelude.Nothing,
      $sel:sslMode:Endpoint' :: Maybe DmsSslModeValue
sslMode = forall a. Maybe a
Prelude.Nothing,
      $sel:status:Endpoint' :: Maybe Text
status = forall a. Maybe a
Prelude.Nothing,
      $sel:sybaseSettings:Endpoint' :: Maybe SybaseSettings
sybaseSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:username:Endpoint' :: Maybe Text
username = forall a. Maybe a
Prelude.Nothing
    }

-- | The Amazon Resource Name (ARN) used for SSL connection to the endpoint.
endpoint_certificateArn :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)
endpoint_certificateArn :: Lens' Endpoint (Maybe Text)
endpoint_certificateArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe Text
certificateArn :: Maybe Text
$sel:certificateArn:Endpoint' :: Endpoint -> Maybe Text
certificateArn} -> Maybe Text
certificateArn) (\s :: Endpoint
s@Endpoint' {} Maybe Text
a -> Endpoint
s {$sel:certificateArn:Endpoint' :: Maybe Text
certificateArn = Maybe Text
a} :: Endpoint)

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

-- | The settings for the DMS Transfer type source. For more information, see
-- the DmsTransferSettings structure.
endpoint_dmsTransferSettings :: Lens.Lens' Endpoint (Prelude.Maybe DmsTransferSettings)
endpoint_dmsTransferSettings :: Lens' Endpoint (Maybe DmsTransferSettings)
endpoint_dmsTransferSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe DmsTransferSettings
dmsTransferSettings :: Maybe DmsTransferSettings
$sel:dmsTransferSettings:Endpoint' :: Endpoint -> Maybe DmsTransferSettings
dmsTransferSettings} -> Maybe DmsTransferSettings
dmsTransferSettings) (\s :: Endpoint
s@Endpoint' {} Maybe DmsTransferSettings
a -> Endpoint
s {$sel:dmsTransferSettings:Endpoint' :: Maybe DmsTransferSettings
dmsTransferSettings = Maybe DmsTransferSettings
a} :: Endpoint)

-- | Undocumented member.
endpoint_docDbSettings :: Lens.Lens' Endpoint (Prelude.Maybe DocDbSettings)
endpoint_docDbSettings :: Lens' Endpoint (Maybe DocDbSettings)
endpoint_docDbSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe DocDbSettings
docDbSettings :: Maybe DocDbSettings
$sel:docDbSettings:Endpoint' :: Endpoint -> Maybe DocDbSettings
docDbSettings} -> Maybe DocDbSettings
docDbSettings) (\s :: Endpoint
s@Endpoint' {} Maybe DocDbSettings
a -> Endpoint
s {$sel:docDbSettings:Endpoint' :: Maybe DocDbSettings
docDbSettings = Maybe DocDbSettings
a} :: Endpoint)

-- | The settings for the DynamoDB target endpoint. For more information, see
-- the @DynamoDBSettings@ structure.
endpoint_dynamoDbSettings :: Lens.Lens' Endpoint (Prelude.Maybe DynamoDbSettings)
endpoint_dynamoDbSettings :: Lens' Endpoint (Maybe DynamoDbSettings)
endpoint_dynamoDbSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe DynamoDbSettings
dynamoDbSettings :: Maybe DynamoDbSettings
$sel:dynamoDbSettings:Endpoint' :: Endpoint -> Maybe DynamoDbSettings
dynamoDbSettings} -> Maybe DynamoDbSettings
dynamoDbSettings) (\s :: Endpoint
s@Endpoint' {} Maybe DynamoDbSettings
a -> Endpoint
s {$sel:dynamoDbSettings:Endpoint' :: Maybe DynamoDbSettings
dynamoDbSettings = Maybe DynamoDbSettings
a} :: Endpoint)

-- | The settings for the OpenSearch source endpoint. For more information,
-- see the @ElasticsearchSettings@ structure.
endpoint_elasticsearchSettings :: Lens.Lens' Endpoint (Prelude.Maybe ElasticsearchSettings)
endpoint_elasticsearchSettings :: Lens' Endpoint (Maybe ElasticsearchSettings)
endpoint_elasticsearchSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe ElasticsearchSettings
elasticsearchSettings :: Maybe ElasticsearchSettings
$sel:elasticsearchSettings:Endpoint' :: Endpoint -> Maybe ElasticsearchSettings
elasticsearchSettings} -> Maybe ElasticsearchSettings
elasticsearchSettings) (\s :: Endpoint
s@Endpoint' {} Maybe ElasticsearchSettings
a -> Endpoint
s {$sel:elasticsearchSettings:Endpoint' :: Maybe ElasticsearchSettings
elasticsearchSettings = Maybe ElasticsearchSettings
a} :: Endpoint)

-- | The Amazon Resource Name (ARN) string that uniquely identifies the
-- endpoint.
endpoint_endpointArn :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)
endpoint_endpointArn :: Lens' Endpoint (Maybe Text)
endpoint_endpointArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe Text
endpointArn :: Maybe Text
$sel:endpointArn:Endpoint' :: Endpoint -> Maybe Text
endpointArn} -> Maybe Text
endpointArn) (\s :: Endpoint
s@Endpoint' {} Maybe Text
a -> Endpoint
s {$sel:endpointArn:Endpoint' :: Maybe Text
endpointArn = Maybe Text
a} :: Endpoint)

-- | The database endpoint identifier. Identifiers must begin with a letter
-- and must contain only ASCII letters, digits, and hyphens. They can\'t
-- end with a hyphen or contain two consecutive hyphens.
endpoint_endpointIdentifier :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)
endpoint_endpointIdentifier :: Lens' Endpoint (Maybe Text)
endpoint_endpointIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe Text
endpointIdentifier :: Maybe Text
$sel:endpointIdentifier:Endpoint' :: Endpoint -> Maybe Text
endpointIdentifier} -> Maybe Text
endpointIdentifier) (\s :: Endpoint
s@Endpoint' {} Maybe Text
a -> Endpoint
s {$sel:endpointIdentifier:Endpoint' :: Maybe Text
endpointIdentifier = Maybe Text
a} :: Endpoint)

-- | The type of endpoint. Valid values are @source@ and @target@.
endpoint_endpointType :: Lens.Lens' Endpoint (Prelude.Maybe ReplicationEndpointTypeValue)
endpoint_endpointType :: Lens' Endpoint (Maybe ReplicationEndpointTypeValue)
endpoint_endpointType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe ReplicationEndpointTypeValue
endpointType :: Maybe ReplicationEndpointTypeValue
$sel:endpointType:Endpoint' :: Endpoint -> Maybe ReplicationEndpointTypeValue
endpointType} -> Maybe ReplicationEndpointTypeValue
endpointType) (\s :: Endpoint
s@Endpoint' {} Maybe ReplicationEndpointTypeValue
a -> Endpoint
s {$sel:endpointType:Endpoint' :: Maybe ReplicationEndpointTypeValue
endpointType = Maybe ReplicationEndpointTypeValue
a} :: Endpoint)

-- | The expanded name for the engine name. For example, if the @EngineName@
-- parameter is \"aurora\", this value would be \"Amazon Aurora MySQL\".
endpoint_engineDisplayName :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)
endpoint_engineDisplayName :: Lens' Endpoint (Maybe Text)
endpoint_engineDisplayName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe Text
engineDisplayName :: Maybe Text
$sel:engineDisplayName:Endpoint' :: Endpoint -> Maybe Text
engineDisplayName} -> Maybe Text
engineDisplayName) (\s :: Endpoint
s@Endpoint' {} Maybe Text
a -> Endpoint
s {$sel:engineDisplayName:Endpoint' :: Maybe Text
engineDisplayName = Maybe Text
a} :: Endpoint)

-- | The database engine name. Valid values, depending on the EndpointType,
-- include @\"mysql\"@, @\"oracle\"@, @\"postgres\"@, @\"mariadb\"@,
-- @\"aurora\"@, @\"aurora-postgresql\"@, @\"redshift\"@, @\"s3\"@,
-- @\"db2\"@, @\"db2-zos\"@, @\"azuredb\"@, @\"sybase\"@, @\"dynamodb\"@,
-- @\"mongodb\"@, @\"kinesis\"@, @\"kafka\"@, @\"elasticsearch\"@,
-- @\"documentdb\"@, @\"sqlserver\"@, @\"neptune\"@, and @\"babelfish\"@.
endpoint_engineName :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)
endpoint_engineName :: Lens' Endpoint (Maybe Text)
endpoint_engineName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe Text
engineName :: Maybe Text
$sel:engineName:Endpoint' :: Endpoint -> Maybe Text
engineName} -> Maybe Text
engineName) (\s :: Endpoint
s@Endpoint' {} Maybe Text
a -> Endpoint
s {$sel:engineName:Endpoint' :: Maybe Text
engineName = Maybe Text
a} :: Endpoint)

-- | Value returned by a call to CreateEndpoint that can be used for
-- cross-account validation. Use it on a subsequent call to CreateEndpoint
-- to create the endpoint with a cross-account.
endpoint_externalId :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)
endpoint_externalId :: Lens' Endpoint (Maybe Text)
endpoint_externalId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe Text
externalId :: Maybe Text
$sel:externalId:Endpoint' :: Endpoint -> Maybe Text
externalId} -> Maybe Text
externalId) (\s :: Endpoint
s@Endpoint' {} Maybe Text
a -> Endpoint
s {$sel:externalId:Endpoint' :: Maybe Text
externalId = Maybe Text
a} :: Endpoint)

-- | The external table definition.
endpoint_externalTableDefinition :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)
endpoint_externalTableDefinition :: Lens' Endpoint (Maybe Text)
endpoint_externalTableDefinition = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe Text
externalTableDefinition :: Maybe Text
$sel:externalTableDefinition:Endpoint' :: Endpoint -> Maybe Text
externalTableDefinition} -> Maybe Text
externalTableDefinition) (\s :: Endpoint
s@Endpoint' {} Maybe Text
a -> Endpoint
s {$sel:externalTableDefinition:Endpoint' :: Maybe Text
externalTableDefinition = Maybe Text
a} :: Endpoint)

-- | Additional connection attributes used to connect to the endpoint.
endpoint_extraConnectionAttributes :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)
endpoint_extraConnectionAttributes :: Lens' Endpoint (Maybe Text)
endpoint_extraConnectionAttributes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe Text
extraConnectionAttributes :: Maybe Text
$sel:extraConnectionAttributes:Endpoint' :: Endpoint -> Maybe Text
extraConnectionAttributes} -> Maybe Text
extraConnectionAttributes) (\s :: Endpoint
s@Endpoint' {} Maybe Text
a -> Endpoint
s {$sel:extraConnectionAttributes:Endpoint' :: Maybe Text
extraConnectionAttributes = Maybe Text
a} :: Endpoint)

-- | Settings in JSON format for the source GCP MySQL endpoint.
endpoint_gcpMySQLSettings :: Lens.Lens' Endpoint (Prelude.Maybe GcpMySQLSettings)
endpoint_gcpMySQLSettings :: Lens' Endpoint (Maybe GcpMySQLSettings)
endpoint_gcpMySQLSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe GcpMySQLSettings
gcpMySQLSettings :: Maybe GcpMySQLSettings
$sel:gcpMySQLSettings:Endpoint' :: Endpoint -> Maybe GcpMySQLSettings
gcpMySQLSettings} -> Maybe GcpMySQLSettings
gcpMySQLSettings) (\s :: Endpoint
s@Endpoint' {} Maybe GcpMySQLSettings
a -> Endpoint
s {$sel:gcpMySQLSettings:Endpoint' :: Maybe GcpMySQLSettings
gcpMySQLSettings = Maybe GcpMySQLSettings
a} :: Endpoint)

-- | The settings for the IBM Db2 LUW source endpoint. For more information,
-- see the @IBMDb2Settings@ structure.
endpoint_iBMDb2Settings :: Lens.Lens' Endpoint (Prelude.Maybe IBMDb2Settings)
endpoint_iBMDb2Settings :: Lens' Endpoint (Maybe IBMDb2Settings)
endpoint_iBMDb2Settings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe IBMDb2Settings
iBMDb2Settings :: Maybe IBMDb2Settings
$sel:iBMDb2Settings:Endpoint' :: Endpoint -> Maybe IBMDb2Settings
iBMDb2Settings} -> Maybe IBMDb2Settings
iBMDb2Settings) (\s :: Endpoint
s@Endpoint' {} Maybe IBMDb2Settings
a -> Endpoint
s {$sel:iBMDb2Settings:Endpoint' :: Maybe IBMDb2Settings
iBMDb2Settings = Maybe IBMDb2Settings
a} :: Endpoint)

-- | The settings for the Apache Kafka target endpoint. For more information,
-- see the @KafkaSettings@ structure.
endpoint_kafkaSettings :: Lens.Lens' Endpoint (Prelude.Maybe KafkaSettings)
endpoint_kafkaSettings :: Lens' Endpoint (Maybe KafkaSettings)
endpoint_kafkaSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe KafkaSettings
kafkaSettings :: Maybe KafkaSettings
$sel:kafkaSettings:Endpoint' :: Endpoint -> Maybe KafkaSettings
kafkaSettings} -> Maybe KafkaSettings
kafkaSettings) (\s :: Endpoint
s@Endpoint' {} Maybe KafkaSettings
a -> Endpoint
s {$sel:kafkaSettings:Endpoint' :: Maybe KafkaSettings
kafkaSettings = Maybe KafkaSettings
a} :: Endpoint)

-- | The settings for the Amazon Kinesis target endpoint. For more
-- information, see the @KinesisSettings@ structure.
endpoint_kinesisSettings :: Lens.Lens' Endpoint (Prelude.Maybe KinesisSettings)
endpoint_kinesisSettings :: Lens' Endpoint (Maybe KinesisSettings)
endpoint_kinesisSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe KinesisSettings
kinesisSettings :: Maybe KinesisSettings
$sel:kinesisSettings:Endpoint' :: Endpoint -> Maybe KinesisSettings
kinesisSettings} -> Maybe KinesisSettings
kinesisSettings) (\s :: Endpoint
s@Endpoint' {} Maybe KinesisSettings
a -> Endpoint
s {$sel:kinesisSettings:Endpoint' :: Maybe KinesisSettings
kinesisSettings = Maybe KinesisSettings
a} :: Endpoint)

-- | An KMS key identifier that is used to encrypt the connection parameters
-- for the endpoint.
--
-- If you don\'t specify a value for the @KmsKeyId@ parameter, then DMS
-- uses your default encryption key.
--
-- KMS creates the default encryption key for your Amazon Web Services
-- account. Your Amazon Web Services account has a different default
-- encryption key for each Amazon Web Services Region.
endpoint_kmsKeyId :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)
endpoint_kmsKeyId :: Lens' Endpoint (Maybe Text)
endpoint_kmsKeyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe Text
kmsKeyId :: Maybe Text
$sel:kmsKeyId:Endpoint' :: Endpoint -> Maybe Text
kmsKeyId} -> Maybe Text
kmsKeyId) (\s :: Endpoint
s@Endpoint' {} Maybe Text
a -> Endpoint
s {$sel:kmsKeyId:Endpoint' :: Maybe Text
kmsKeyId = Maybe Text
a} :: Endpoint)

-- | The settings for the Microsoft SQL Server source and target endpoint.
-- For more information, see the @MicrosoftSQLServerSettings@ structure.
endpoint_microsoftSQLServerSettings :: Lens.Lens' Endpoint (Prelude.Maybe MicrosoftSQLServerSettings)
endpoint_microsoftSQLServerSettings :: Lens' Endpoint (Maybe MicrosoftSQLServerSettings)
endpoint_microsoftSQLServerSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe MicrosoftSQLServerSettings
microsoftSQLServerSettings :: Maybe MicrosoftSQLServerSettings
$sel:microsoftSQLServerSettings:Endpoint' :: Endpoint -> Maybe MicrosoftSQLServerSettings
microsoftSQLServerSettings} -> Maybe MicrosoftSQLServerSettings
microsoftSQLServerSettings) (\s :: Endpoint
s@Endpoint' {} Maybe MicrosoftSQLServerSettings
a -> Endpoint
s {$sel:microsoftSQLServerSettings:Endpoint' :: Maybe MicrosoftSQLServerSettings
microsoftSQLServerSettings = Maybe MicrosoftSQLServerSettings
a} :: Endpoint)

-- | The settings for the MongoDB source endpoint. For more information, see
-- the @MongoDbSettings@ structure.
endpoint_mongoDbSettings :: Lens.Lens' Endpoint (Prelude.Maybe MongoDbSettings)
endpoint_mongoDbSettings :: Lens' Endpoint (Maybe MongoDbSettings)
endpoint_mongoDbSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe MongoDbSettings
mongoDbSettings :: Maybe MongoDbSettings
$sel:mongoDbSettings:Endpoint' :: Endpoint -> Maybe MongoDbSettings
mongoDbSettings} -> Maybe MongoDbSettings
mongoDbSettings) (\s :: Endpoint
s@Endpoint' {} Maybe MongoDbSettings
a -> Endpoint
s {$sel:mongoDbSettings:Endpoint' :: Maybe MongoDbSettings
mongoDbSettings = Maybe MongoDbSettings
a} :: Endpoint)

-- | The settings for the MySQL source and target endpoint. For more
-- information, see the @MySQLSettings@ structure.
endpoint_mySQLSettings :: Lens.Lens' Endpoint (Prelude.Maybe MySQLSettings)
endpoint_mySQLSettings :: Lens' Endpoint (Maybe MySQLSettings)
endpoint_mySQLSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe MySQLSettings
mySQLSettings :: Maybe MySQLSettings
$sel:mySQLSettings:Endpoint' :: Endpoint -> Maybe MySQLSettings
mySQLSettings} -> Maybe MySQLSettings
mySQLSettings) (\s :: Endpoint
s@Endpoint' {} Maybe MySQLSettings
a -> Endpoint
s {$sel:mySQLSettings:Endpoint' :: Maybe MySQLSettings
mySQLSettings = Maybe MySQLSettings
a} :: Endpoint)

-- | The settings for the Amazon Neptune target endpoint. For more
-- information, see the @NeptuneSettings@ structure.
endpoint_neptuneSettings :: Lens.Lens' Endpoint (Prelude.Maybe NeptuneSettings)
endpoint_neptuneSettings :: Lens' Endpoint (Maybe NeptuneSettings)
endpoint_neptuneSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe NeptuneSettings
neptuneSettings :: Maybe NeptuneSettings
$sel:neptuneSettings:Endpoint' :: Endpoint -> Maybe NeptuneSettings
neptuneSettings} -> Maybe NeptuneSettings
neptuneSettings) (\s :: Endpoint
s@Endpoint' {} Maybe NeptuneSettings
a -> Endpoint
s {$sel:neptuneSettings:Endpoint' :: Maybe NeptuneSettings
neptuneSettings = Maybe NeptuneSettings
a} :: Endpoint)

-- | The settings for the Oracle source and target endpoint. For more
-- information, see the @OracleSettings@ structure.
endpoint_oracleSettings :: Lens.Lens' Endpoint (Prelude.Maybe OracleSettings)
endpoint_oracleSettings :: Lens' Endpoint (Maybe OracleSettings)
endpoint_oracleSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe OracleSettings
oracleSettings :: Maybe OracleSettings
$sel:oracleSettings:Endpoint' :: Endpoint -> Maybe OracleSettings
oracleSettings} -> Maybe OracleSettings
oracleSettings) (\s :: Endpoint
s@Endpoint' {} Maybe OracleSettings
a -> Endpoint
s {$sel:oracleSettings:Endpoint' :: Maybe OracleSettings
oracleSettings = Maybe OracleSettings
a} :: Endpoint)

-- | The port value used to access the endpoint.
endpoint_port :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Int)
endpoint_port :: Lens' Endpoint (Maybe Int)
endpoint_port = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe Int
port :: Maybe Int
$sel:port:Endpoint' :: Endpoint -> Maybe Int
port} -> Maybe Int
port) (\s :: Endpoint
s@Endpoint' {} Maybe Int
a -> Endpoint
s {$sel:port:Endpoint' :: Maybe Int
port = Maybe Int
a} :: Endpoint)

-- | The settings for the PostgreSQL source and target endpoint. For more
-- information, see the @PostgreSQLSettings@ structure.
endpoint_postgreSQLSettings :: Lens.Lens' Endpoint (Prelude.Maybe PostgreSQLSettings)
endpoint_postgreSQLSettings :: Lens' Endpoint (Maybe PostgreSQLSettings)
endpoint_postgreSQLSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe PostgreSQLSettings
postgreSQLSettings :: Maybe PostgreSQLSettings
$sel:postgreSQLSettings:Endpoint' :: Endpoint -> Maybe PostgreSQLSettings
postgreSQLSettings} -> Maybe PostgreSQLSettings
postgreSQLSettings) (\s :: Endpoint
s@Endpoint' {} Maybe PostgreSQLSettings
a -> Endpoint
s {$sel:postgreSQLSettings:Endpoint' :: Maybe PostgreSQLSettings
postgreSQLSettings = Maybe PostgreSQLSettings
a} :: Endpoint)

-- | The settings for the Redis target endpoint. For more information, see
-- the @RedisSettings@ structure.
endpoint_redisSettings :: Lens.Lens' Endpoint (Prelude.Maybe RedisSettings)
endpoint_redisSettings :: Lens' Endpoint (Maybe RedisSettings)
endpoint_redisSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe RedisSettings
redisSettings :: Maybe RedisSettings
$sel:redisSettings:Endpoint' :: Endpoint -> Maybe RedisSettings
redisSettings} -> Maybe RedisSettings
redisSettings) (\s :: Endpoint
s@Endpoint' {} Maybe RedisSettings
a -> Endpoint
s {$sel:redisSettings:Endpoint' :: Maybe RedisSettings
redisSettings = Maybe RedisSettings
a} :: Endpoint)

-- | Settings for the Amazon Redshift endpoint.
endpoint_redshiftSettings :: Lens.Lens' Endpoint (Prelude.Maybe RedshiftSettings)
endpoint_redshiftSettings :: Lens' Endpoint (Maybe RedshiftSettings)
endpoint_redshiftSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe RedshiftSettings
redshiftSettings :: Maybe RedshiftSettings
$sel:redshiftSettings:Endpoint' :: Endpoint -> Maybe RedshiftSettings
redshiftSettings} -> Maybe RedshiftSettings
redshiftSettings) (\s :: Endpoint
s@Endpoint' {} Maybe RedshiftSettings
a -> Endpoint
s {$sel:redshiftSettings:Endpoint' :: Maybe RedshiftSettings
redshiftSettings = Maybe RedshiftSettings
a} :: Endpoint)

-- | The settings for the S3 target endpoint. For more information, see the
-- @S3Settings@ structure.
endpoint_s3Settings :: Lens.Lens' Endpoint (Prelude.Maybe S3Settings)
endpoint_s3Settings :: Lens' Endpoint (Maybe S3Settings)
endpoint_s3Settings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe S3Settings
s3Settings :: Maybe S3Settings
$sel:s3Settings:Endpoint' :: Endpoint -> Maybe S3Settings
s3Settings} -> Maybe S3Settings
s3Settings) (\s :: Endpoint
s@Endpoint' {} Maybe S3Settings
a -> Endpoint
s {$sel:s3Settings:Endpoint' :: Maybe S3Settings
s3Settings = Maybe S3Settings
a} :: Endpoint)

-- | The name of the server at the endpoint.
endpoint_serverName :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)
endpoint_serverName :: Lens' Endpoint (Maybe Text)
endpoint_serverName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe Text
serverName :: Maybe Text
$sel:serverName:Endpoint' :: Endpoint -> Maybe Text
serverName} -> Maybe Text
serverName) (\s :: Endpoint
s@Endpoint' {} Maybe Text
a -> Endpoint
s {$sel:serverName:Endpoint' :: Maybe Text
serverName = Maybe Text
a} :: Endpoint)

-- | The Amazon Resource Name (ARN) used by the service to access the IAM
-- role. The role must allow the @iam:PassRole@ action.
endpoint_serviceAccessRoleArn :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)
endpoint_serviceAccessRoleArn :: Lens' Endpoint (Maybe Text)
endpoint_serviceAccessRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe Text
serviceAccessRoleArn :: Maybe Text
$sel:serviceAccessRoleArn:Endpoint' :: Endpoint -> Maybe Text
serviceAccessRoleArn} -> Maybe Text
serviceAccessRoleArn) (\s :: Endpoint
s@Endpoint' {} Maybe Text
a -> Endpoint
s {$sel:serviceAccessRoleArn:Endpoint' :: Maybe Text
serviceAccessRoleArn = Maybe Text
a} :: Endpoint)

-- | The SSL mode used to connect to the endpoint. The default value is
-- @none@.
endpoint_sslMode :: Lens.Lens' Endpoint (Prelude.Maybe DmsSslModeValue)
endpoint_sslMode :: Lens' Endpoint (Maybe DmsSslModeValue)
endpoint_sslMode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe DmsSslModeValue
sslMode :: Maybe DmsSslModeValue
$sel:sslMode:Endpoint' :: Endpoint -> Maybe DmsSslModeValue
sslMode} -> Maybe DmsSslModeValue
sslMode) (\s :: Endpoint
s@Endpoint' {} Maybe DmsSslModeValue
a -> Endpoint
s {$sel:sslMode:Endpoint' :: Maybe DmsSslModeValue
sslMode = Maybe DmsSslModeValue
a} :: Endpoint)

-- | The status of the endpoint.
endpoint_status :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)
endpoint_status :: Lens' Endpoint (Maybe Text)
endpoint_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe Text
status :: Maybe Text
$sel:status:Endpoint' :: Endpoint -> Maybe Text
status} -> Maybe Text
status) (\s :: Endpoint
s@Endpoint' {} Maybe Text
a -> Endpoint
s {$sel:status:Endpoint' :: Maybe Text
status = Maybe Text
a} :: Endpoint)

-- | The settings for the SAP ASE source and target endpoint. For more
-- information, see the @SybaseSettings@ structure.
endpoint_sybaseSettings :: Lens.Lens' Endpoint (Prelude.Maybe SybaseSettings)
endpoint_sybaseSettings :: Lens' Endpoint (Maybe SybaseSettings)
endpoint_sybaseSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe SybaseSettings
sybaseSettings :: Maybe SybaseSettings
$sel:sybaseSettings:Endpoint' :: Endpoint -> Maybe SybaseSettings
sybaseSettings} -> Maybe SybaseSettings
sybaseSettings) (\s :: Endpoint
s@Endpoint' {} Maybe SybaseSettings
a -> Endpoint
s {$sel:sybaseSettings:Endpoint' :: Maybe SybaseSettings
sybaseSettings = Maybe SybaseSettings
a} :: Endpoint)

-- | The user name used to connect to the endpoint.
endpoint_username :: Lens.Lens' Endpoint (Prelude.Maybe Prelude.Text)
endpoint_username :: Lens' Endpoint (Maybe Text)
endpoint_username = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Endpoint' {Maybe Text
username :: Maybe Text
$sel:username:Endpoint' :: Endpoint -> Maybe Text
username} -> Maybe Text
username) (\s :: Endpoint
s@Endpoint' {} Maybe Text
a -> Endpoint
s {$sel:username:Endpoint' :: Maybe Text
username = Maybe Text
a} :: Endpoint)

instance Data.FromJSON Endpoint where
  parseJSON :: Value -> Parser Endpoint
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"Endpoint"
      ( \Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe DmsTransferSettings
-> Maybe DocDbSettings
-> Maybe DynamoDbSettings
-> Maybe ElasticsearchSettings
-> Maybe Text
-> Maybe Text
-> Maybe ReplicationEndpointTypeValue
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe GcpMySQLSettings
-> Maybe IBMDb2Settings
-> Maybe KafkaSettings
-> Maybe KinesisSettings
-> Maybe Text
-> Maybe MicrosoftSQLServerSettings
-> Maybe MongoDbSettings
-> Maybe MySQLSettings
-> Maybe NeptuneSettings
-> Maybe OracleSettings
-> Maybe Int
-> Maybe PostgreSQLSettings
-> Maybe RedisSettings
-> Maybe RedshiftSettings
-> Maybe S3Settings
-> Maybe Text
-> Maybe Text
-> Maybe DmsSslModeValue
-> Maybe Text
-> Maybe SybaseSettings
-> Maybe Text
-> Endpoint
Endpoint'
            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
"CertificateArn")
            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
"DmsTransferSettings")
            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
"DocDbSettings")
            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
"DynamoDbSettings")
            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
"ElasticsearchSettings")
            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
"EndpointArn")
            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
"EndpointIdentifier")
            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
"EndpointType")
            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
"EngineDisplayName")
            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
"EngineName")
            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
"ExternalId")
            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
"ExternalTableDefinition")
            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
"ExtraConnectionAttributes")
            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
"GcpMySQLSettings")
            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
"IBMDb2Settings")
            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
"KafkaSettings")
            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
"KinesisSettings")
            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
"KmsKeyId")
            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
"MicrosoftSQLServerSettings")
            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
"MongoDbSettings")
            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
"MySQLSettings")
            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
"NeptuneSettings")
            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
"OracleSettings")
            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
"PostgreSQLSettings")
            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
"RedisSettings")
            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
"RedshiftSettings")
            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
"S3Settings")
            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
"ServiceAccessRoleArn")
            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
"SslMode")
            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
"Status")
            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
"SybaseSettings")
            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 Endpoint where
  hashWithSalt :: Int -> Endpoint -> Int
hashWithSalt Int
_salt Endpoint' {Maybe Int
Maybe Text
Maybe DmsSslModeValue
Maybe DmsTransferSettings
Maybe DynamoDbSettings
Maybe ElasticsearchSettings
Maybe IBMDb2Settings
Maybe KinesisSettings
Maybe KafkaSettings
Maybe NeptuneSettings
Maybe MongoDbSettings
Maybe DocDbSettings
Maybe OracleSettings
Maybe PostgreSQLSettings
Maybe RedshiftSettings
Maybe ReplicationEndpointTypeValue
Maybe S3Settings
Maybe MicrosoftSQLServerSettings
Maybe RedisSettings
Maybe SybaseSettings
Maybe MySQLSettings
Maybe GcpMySQLSettings
username :: Maybe Text
sybaseSettings :: Maybe SybaseSettings
status :: Maybe Text
sslMode :: Maybe DmsSslModeValue
serviceAccessRoleArn :: Maybe Text
serverName :: Maybe Text
s3Settings :: Maybe S3Settings
redshiftSettings :: Maybe RedshiftSettings
redisSettings :: Maybe RedisSettings
postgreSQLSettings :: Maybe PostgreSQLSettings
port :: Maybe Int
oracleSettings :: Maybe OracleSettings
neptuneSettings :: Maybe NeptuneSettings
mySQLSettings :: Maybe MySQLSettings
mongoDbSettings :: Maybe MongoDbSettings
microsoftSQLServerSettings :: Maybe MicrosoftSQLServerSettings
kmsKeyId :: Maybe Text
kinesisSettings :: Maybe KinesisSettings
kafkaSettings :: Maybe KafkaSettings
iBMDb2Settings :: Maybe IBMDb2Settings
gcpMySQLSettings :: Maybe GcpMySQLSettings
extraConnectionAttributes :: Maybe Text
externalTableDefinition :: Maybe Text
externalId :: Maybe Text
engineName :: Maybe Text
engineDisplayName :: Maybe Text
endpointType :: Maybe ReplicationEndpointTypeValue
endpointIdentifier :: Maybe Text
endpointArn :: Maybe Text
elasticsearchSettings :: Maybe ElasticsearchSettings
dynamoDbSettings :: Maybe DynamoDbSettings
docDbSettings :: Maybe DocDbSettings
dmsTransferSettings :: Maybe DmsTransferSettings
databaseName :: Maybe Text
certificateArn :: Maybe Text
$sel:username:Endpoint' :: Endpoint -> Maybe Text
$sel:sybaseSettings:Endpoint' :: Endpoint -> Maybe SybaseSettings
$sel:status:Endpoint' :: Endpoint -> Maybe Text
$sel:sslMode:Endpoint' :: Endpoint -> Maybe DmsSslModeValue
$sel:serviceAccessRoleArn:Endpoint' :: Endpoint -> Maybe Text
$sel:serverName:Endpoint' :: Endpoint -> Maybe Text
$sel:s3Settings:Endpoint' :: Endpoint -> Maybe S3Settings
$sel:redshiftSettings:Endpoint' :: Endpoint -> Maybe RedshiftSettings
$sel:redisSettings:Endpoint' :: Endpoint -> Maybe RedisSettings
$sel:postgreSQLSettings:Endpoint' :: Endpoint -> Maybe PostgreSQLSettings
$sel:port:Endpoint' :: Endpoint -> Maybe Int
$sel:oracleSettings:Endpoint' :: Endpoint -> Maybe OracleSettings
$sel:neptuneSettings:Endpoint' :: Endpoint -> Maybe NeptuneSettings
$sel:mySQLSettings:Endpoint' :: Endpoint -> Maybe MySQLSettings
$sel:mongoDbSettings:Endpoint' :: Endpoint -> Maybe MongoDbSettings
$sel:microsoftSQLServerSettings:Endpoint' :: Endpoint -> Maybe MicrosoftSQLServerSettings
$sel:kmsKeyId:Endpoint' :: Endpoint -> Maybe Text
$sel:kinesisSettings:Endpoint' :: Endpoint -> Maybe KinesisSettings
$sel:kafkaSettings:Endpoint' :: Endpoint -> Maybe KafkaSettings
$sel:iBMDb2Settings:Endpoint' :: Endpoint -> Maybe IBMDb2Settings
$sel:gcpMySQLSettings:Endpoint' :: Endpoint -> Maybe GcpMySQLSettings
$sel:extraConnectionAttributes:Endpoint' :: Endpoint -> Maybe Text
$sel:externalTableDefinition:Endpoint' :: Endpoint -> Maybe Text
$sel:externalId:Endpoint' :: Endpoint -> Maybe Text
$sel:engineName:Endpoint' :: Endpoint -> Maybe Text
$sel:engineDisplayName:Endpoint' :: Endpoint -> Maybe Text
$sel:endpointType:Endpoint' :: Endpoint -> Maybe ReplicationEndpointTypeValue
$sel:endpointIdentifier:Endpoint' :: Endpoint -> Maybe Text
$sel:endpointArn:Endpoint' :: Endpoint -> Maybe Text
$sel:elasticsearchSettings:Endpoint' :: Endpoint -> Maybe ElasticsearchSettings
$sel:dynamoDbSettings:Endpoint' :: Endpoint -> Maybe DynamoDbSettings
$sel:docDbSettings:Endpoint' :: Endpoint -> Maybe DocDbSettings
$sel:dmsTransferSettings:Endpoint' :: Endpoint -> Maybe DmsTransferSettings
$sel:databaseName:Endpoint' :: Endpoint -> Maybe Text
$sel:certificateArn:Endpoint' :: Endpoint -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
certificateArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
databaseName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DmsTransferSettings
dmsTransferSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DocDbSettings
docDbSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DynamoDbSettings
dynamoDbSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ElasticsearchSettings
elasticsearchSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
endpointArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
endpointIdentifier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ReplicationEndpointTypeValue
endpointType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
engineDisplayName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
engineName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
externalId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
externalTableDefinition
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
extraConnectionAttributes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe GcpMySQLSettings
gcpMySQLSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe IBMDb2Settings
iBMDb2Settings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe KafkaSettings
kafkaSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe KinesisSettings
kinesisSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
kmsKeyId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MicrosoftSQLServerSettings
microsoftSQLServerSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MongoDbSettings
mongoDbSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MySQLSettings
mySQLSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NeptuneSettings
neptuneSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe OracleSettings
oracleSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
port
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PostgreSQLSettings
postgreSQLSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RedisSettings
redisSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RedshiftSettings
redshiftSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe S3Settings
s3Settings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
serverName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
serviceAccessRoleArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DmsSslModeValue
sslMode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SybaseSettings
sybaseSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
username

instance Prelude.NFData Endpoint where
  rnf :: Endpoint -> ()
rnf Endpoint' {Maybe Int
Maybe Text
Maybe DmsSslModeValue
Maybe DmsTransferSettings
Maybe DynamoDbSettings
Maybe ElasticsearchSettings
Maybe IBMDb2Settings
Maybe KinesisSettings
Maybe KafkaSettings
Maybe NeptuneSettings
Maybe MongoDbSettings
Maybe DocDbSettings
Maybe OracleSettings
Maybe PostgreSQLSettings
Maybe RedshiftSettings
Maybe ReplicationEndpointTypeValue
Maybe S3Settings
Maybe MicrosoftSQLServerSettings
Maybe RedisSettings
Maybe SybaseSettings
Maybe MySQLSettings
Maybe GcpMySQLSettings
username :: Maybe Text
sybaseSettings :: Maybe SybaseSettings
status :: Maybe Text
sslMode :: Maybe DmsSslModeValue
serviceAccessRoleArn :: Maybe Text
serverName :: Maybe Text
s3Settings :: Maybe S3Settings
redshiftSettings :: Maybe RedshiftSettings
redisSettings :: Maybe RedisSettings
postgreSQLSettings :: Maybe PostgreSQLSettings
port :: Maybe Int
oracleSettings :: Maybe OracleSettings
neptuneSettings :: Maybe NeptuneSettings
mySQLSettings :: Maybe MySQLSettings
mongoDbSettings :: Maybe MongoDbSettings
microsoftSQLServerSettings :: Maybe MicrosoftSQLServerSettings
kmsKeyId :: Maybe Text
kinesisSettings :: Maybe KinesisSettings
kafkaSettings :: Maybe KafkaSettings
iBMDb2Settings :: Maybe IBMDb2Settings
gcpMySQLSettings :: Maybe GcpMySQLSettings
extraConnectionAttributes :: Maybe Text
externalTableDefinition :: Maybe Text
externalId :: Maybe Text
engineName :: Maybe Text
engineDisplayName :: Maybe Text
endpointType :: Maybe ReplicationEndpointTypeValue
endpointIdentifier :: Maybe Text
endpointArn :: Maybe Text
elasticsearchSettings :: Maybe ElasticsearchSettings
dynamoDbSettings :: Maybe DynamoDbSettings
docDbSettings :: Maybe DocDbSettings
dmsTransferSettings :: Maybe DmsTransferSettings
databaseName :: Maybe Text
certificateArn :: Maybe Text
$sel:username:Endpoint' :: Endpoint -> Maybe Text
$sel:sybaseSettings:Endpoint' :: Endpoint -> Maybe SybaseSettings
$sel:status:Endpoint' :: Endpoint -> Maybe Text
$sel:sslMode:Endpoint' :: Endpoint -> Maybe DmsSslModeValue
$sel:serviceAccessRoleArn:Endpoint' :: Endpoint -> Maybe Text
$sel:serverName:Endpoint' :: Endpoint -> Maybe Text
$sel:s3Settings:Endpoint' :: Endpoint -> Maybe S3Settings
$sel:redshiftSettings:Endpoint' :: Endpoint -> Maybe RedshiftSettings
$sel:redisSettings:Endpoint' :: Endpoint -> Maybe RedisSettings
$sel:postgreSQLSettings:Endpoint' :: Endpoint -> Maybe PostgreSQLSettings
$sel:port:Endpoint' :: Endpoint -> Maybe Int
$sel:oracleSettings:Endpoint' :: Endpoint -> Maybe OracleSettings
$sel:neptuneSettings:Endpoint' :: Endpoint -> Maybe NeptuneSettings
$sel:mySQLSettings:Endpoint' :: Endpoint -> Maybe MySQLSettings
$sel:mongoDbSettings:Endpoint' :: Endpoint -> Maybe MongoDbSettings
$sel:microsoftSQLServerSettings:Endpoint' :: Endpoint -> Maybe MicrosoftSQLServerSettings
$sel:kmsKeyId:Endpoint' :: Endpoint -> Maybe Text
$sel:kinesisSettings:Endpoint' :: Endpoint -> Maybe KinesisSettings
$sel:kafkaSettings:Endpoint' :: Endpoint -> Maybe KafkaSettings
$sel:iBMDb2Settings:Endpoint' :: Endpoint -> Maybe IBMDb2Settings
$sel:gcpMySQLSettings:Endpoint' :: Endpoint -> Maybe GcpMySQLSettings
$sel:extraConnectionAttributes:Endpoint' :: Endpoint -> Maybe Text
$sel:externalTableDefinition:Endpoint' :: Endpoint -> Maybe Text
$sel:externalId:Endpoint' :: Endpoint -> Maybe Text
$sel:engineName:Endpoint' :: Endpoint -> Maybe Text
$sel:engineDisplayName:Endpoint' :: Endpoint -> Maybe Text
$sel:endpointType:Endpoint' :: Endpoint -> Maybe ReplicationEndpointTypeValue
$sel:endpointIdentifier:Endpoint' :: Endpoint -> Maybe Text
$sel:endpointArn:Endpoint' :: Endpoint -> Maybe Text
$sel:elasticsearchSettings:Endpoint' :: Endpoint -> Maybe ElasticsearchSettings
$sel:dynamoDbSettings:Endpoint' :: Endpoint -> Maybe DynamoDbSettings
$sel:docDbSettings:Endpoint' :: Endpoint -> Maybe DocDbSettings
$sel:dmsTransferSettings:Endpoint' :: Endpoint -> Maybe DmsTransferSettings
$sel:databaseName:Endpoint' :: Endpoint -> Maybe Text
$sel:certificateArn:Endpoint' :: Endpoint -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
certificateArn
      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 DmsTransferSettings
dmsTransferSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DocDbSettings
docDbSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DynamoDbSettings
dynamoDbSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ElasticsearchSettings
elasticsearchSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
endpointArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
endpointIdentifier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ReplicationEndpointTypeValue
endpointType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
engineDisplayName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
engineName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
externalId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
externalTableDefinition
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
extraConnectionAttributes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe GcpMySQLSettings
gcpMySQLSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe IBMDb2Settings
iBMDb2Settings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe KafkaSettings
kafkaSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe KinesisSettings
kinesisSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
kmsKeyId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe MicrosoftSQLServerSettings
microsoftSQLServerSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MongoDbSettings
mongoDbSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MySQLSettings
mySQLSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe NeptuneSettings
neptuneSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe OracleSettings
oracleSettings
      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 PostgreSQLSettings
postgreSQLSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe RedisSettings
redisSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe RedshiftSettings
redshiftSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe S3Settings
s3Settings
      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
serviceAccessRoleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe DmsSslModeValue
sslMode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe SybaseSettings
sybaseSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
username