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

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

-- |
-- Module      : Amazonka.DMS.CreateEndpoint
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates an endpoint using the provided settings.
--
-- For a MySQL source or target endpoint, don\'t explicitly specify the
-- database using the @DatabaseName@ request parameter on the
-- @CreateEndpoint@ API call. Specifying @DatabaseName@ when you create a
-- MySQL endpoint replicates all the task tables to this single database.
-- For MySQL endpoints, you specify the database only when you specify the
-- schema in the table-mapping rules of the DMS task.
module Amazonka.DMS.CreateEndpoint
  ( -- * Creating a Request
    CreateEndpoint (..),
    newCreateEndpoint,

    -- * Request Lenses
    createEndpoint_certificateArn,
    createEndpoint_databaseName,
    createEndpoint_dmsTransferSettings,
    createEndpoint_docDbSettings,
    createEndpoint_dynamoDbSettings,
    createEndpoint_elasticsearchSettings,
    createEndpoint_externalTableDefinition,
    createEndpoint_extraConnectionAttributes,
    createEndpoint_gcpMySQLSettings,
    createEndpoint_iBMDb2Settings,
    createEndpoint_kafkaSettings,
    createEndpoint_kinesisSettings,
    createEndpoint_kmsKeyId,
    createEndpoint_microsoftSQLServerSettings,
    createEndpoint_mongoDbSettings,
    createEndpoint_mySQLSettings,
    createEndpoint_neptuneSettings,
    createEndpoint_oracleSettings,
    createEndpoint_password,
    createEndpoint_port,
    createEndpoint_postgreSQLSettings,
    createEndpoint_redisSettings,
    createEndpoint_redshiftSettings,
    createEndpoint_resourceIdentifier,
    createEndpoint_s3Settings,
    createEndpoint_serverName,
    createEndpoint_serviceAccessRoleArn,
    createEndpoint_sslMode,
    createEndpoint_sybaseSettings,
    createEndpoint_tags,
    createEndpoint_username,
    createEndpoint_endpointIdentifier,
    createEndpoint_endpointType,
    createEndpoint_engineName,

    -- * Destructuring the Response
    CreateEndpointResponse (..),
    newCreateEndpointResponse,

    -- * Response Lenses
    createEndpointResponse_endpoint,
    createEndpointResponse_httpStatus,
  )
where

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

-- |
--
-- /See:/ 'newCreateEndpoint' smart constructor.
data CreateEndpoint = CreateEndpoint'
  { -- | The Amazon Resource Name (ARN) for the certificate.
    CreateEndpoint -> Maybe Text
certificateArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the endpoint database. For a MySQL source or target
    -- endpoint, do not specify DatabaseName. To migrate to a specific
    -- database, use this setting and @targetDbType@.
    CreateEndpoint -> Maybe Text
databaseName :: Prelude.Maybe Prelude.Text,
    -- | The settings in JSON format for the DMS transfer type of source
    -- endpoint.
    --
    -- Possible settings include the following:
    --
    -- -   @ServiceAccessRoleArn@ - The Amazon Resource Name (ARN) used by the
    --     service access IAM role. The role must allow the @iam:PassRole@
    --     action.
    --
    -- -   @BucketName@ - The name of the S3 bucket to use.
    --
    -- Shorthand syntax for these settings is as follows:
    -- @ServiceAccessRoleArn=string,BucketName=string@
    --
    -- JSON syntax for these settings is as follows:
    -- @{ \"ServiceAccessRoleArn\": \"string\", \"BucketName\": \"string\", } @
    CreateEndpoint -> Maybe DmsTransferSettings
dmsTransferSettings :: Prelude.Maybe DmsTransferSettings,
    CreateEndpoint -> Maybe DocDbSettings
docDbSettings :: Prelude.Maybe DocDbSettings,
    -- | Settings in JSON format for the target Amazon DynamoDB endpoint. For
    -- information about other available settings, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.DynamoDB.html#CHAP_Target.DynamoDB.ObjectMapping Using Object Mapping to Migrate Data to DynamoDB>
    -- in the /Database Migration Service User Guide./
    CreateEndpoint -> Maybe DynamoDbSettings
dynamoDbSettings :: Prelude.Maybe DynamoDbSettings,
    -- | Settings in JSON format for the target OpenSearch endpoint. For more
    -- information about the available settings, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Elasticsearch.html#CHAP_Target.Elasticsearch.Configuration Extra Connection Attributes When Using OpenSearch as a Target for DMS>
    -- in the /Database Migration Service User Guide/.
    CreateEndpoint -> Maybe ElasticsearchSettings
elasticsearchSettings :: Prelude.Maybe ElasticsearchSettings,
    -- | The external table definition.
    CreateEndpoint -> Maybe Text
externalTableDefinition :: Prelude.Maybe Prelude.Text,
    -- | Additional attributes associated with the connection. Each attribute is
    -- specified as a name-value pair associated by an equal sign (=). Multiple
    -- attributes are separated by a semicolon (;) with no additional white
    -- space. For information on the attributes available for connecting your
    -- source or target endpoint, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.html Working with DMS Endpoints>
    -- in the /Database Migration Service User Guide./
    CreateEndpoint -> Maybe Text
extraConnectionAttributes :: Prelude.Maybe Prelude.Text,
    -- | Settings in JSON format for the source GCP MySQL endpoint.
    CreateEndpoint -> Maybe GcpMySQLSettings
gcpMySQLSettings :: Prelude.Maybe GcpMySQLSettings,
    -- | Settings in JSON format for the source IBM Db2 LUW endpoint. For
    -- information about other available settings, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.DB2.html#CHAP_Source.DB2.ConnectionAttrib Extra connection attributes when using Db2 LUW as a source for DMS>
    -- in the /Database Migration Service User Guide./
    CreateEndpoint -> Maybe IBMDb2Settings
iBMDb2Settings :: Prelude.Maybe IBMDb2Settings,
    -- | Settings in JSON format for the target Apache Kafka endpoint. For more
    -- information about the available settings, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kafka.html#CHAP_Target.Kafka.ObjectMapping Using object mapping to migrate data to a Kafka topic>
    -- in the /Database Migration Service User Guide./
    CreateEndpoint -> Maybe KafkaSettings
kafkaSettings :: Prelude.Maybe KafkaSettings,
    -- | Settings in JSON format for the target endpoint for Amazon Kinesis Data
    -- Streams. For more information about the available settings, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kinesis.html#CHAP_Target.Kinesis.ObjectMapping Using object mapping to migrate data to a Kinesis data stream>
    -- in the /Database Migration Service User Guide./
    CreateEndpoint -> 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.
    CreateEndpoint -> Maybe Text
kmsKeyId :: Prelude.Maybe Prelude.Text,
    -- | Settings in JSON format for the source and target Microsoft SQL Server
    -- endpoint. For information about other available settings, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html#CHAP_Source.SQLServer.ConnectionAttrib Extra connection attributes when using SQL Server as a source for DMS>
    -- and
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SQLServer.html#CHAP_Target.SQLServer.ConnectionAttrib Extra connection attributes when using SQL Server as a target for DMS>
    -- in the /Database Migration Service User Guide./
    CreateEndpoint -> Maybe MicrosoftSQLServerSettings
microsoftSQLServerSettings :: Prelude.Maybe MicrosoftSQLServerSettings,
    -- | Settings in JSON format for the source MongoDB endpoint. For more
    -- information about the available settings, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MongoDB.html#CHAP_Source.MongoDB.Configuration Endpoint configuration settings when using MongoDB as a source for Database Migration Service>
    -- in the /Database Migration Service User Guide./
    CreateEndpoint -> Maybe MongoDbSettings
mongoDbSettings :: Prelude.Maybe MongoDbSettings,
    -- | Settings in JSON format for the source and target MySQL endpoint. For
    -- information about other available settings, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.ConnectionAttrib Extra connection attributes when using MySQL as a source for DMS>
    -- and
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html#CHAP_Target.MySQL.ConnectionAttrib Extra connection attributes when using a MySQL-compatible database as a target for DMS>
    -- in the /Database Migration Service User Guide./
    CreateEndpoint -> Maybe MySQLSettings
mySQLSettings :: Prelude.Maybe MySQLSettings,
    -- | Settings in JSON format for the target Amazon Neptune endpoint. For more
    -- information about the available settings, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Neptune.html#CHAP_Target.Neptune.EndpointSettings Specifying graph-mapping rules using Gremlin and R2RML for Amazon Neptune as a target>
    -- in the /Database Migration Service User Guide./
    CreateEndpoint -> Maybe NeptuneSettings
neptuneSettings :: Prelude.Maybe NeptuneSettings,
    -- | Settings in JSON format for the source and target Oracle endpoint. For
    -- information about other available settings, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.ConnectionAttrib Extra connection attributes when using Oracle as a source for DMS>
    -- and
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html#CHAP_Target.Oracle.ConnectionAttrib Extra connection attributes when using Oracle as a target for DMS>
    -- in the /Database Migration Service User Guide./
    CreateEndpoint -> Maybe OracleSettings
oracleSettings :: Prelude.Maybe OracleSettings,
    -- | The password to be used to log in to the endpoint database.
    CreateEndpoint -> Maybe (Sensitive Text)
password :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | The port used by the endpoint database.
    CreateEndpoint -> Maybe Int
port :: Prelude.Maybe Prelude.Int,
    -- | Settings in JSON format for the source and target PostgreSQL endpoint.
    -- For information about other available settings, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.ConnectionAttrib Extra connection attributes when using PostgreSQL as a source for DMS>
    -- and
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html#CHAP_Target.PostgreSQL.ConnectionAttrib Extra connection attributes when using PostgreSQL as a target for DMS>
    -- in the /Database Migration Service User Guide./
    CreateEndpoint -> Maybe PostgreSQLSettings
postgreSQLSettings :: Prelude.Maybe PostgreSQLSettings,
    -- | Settings in JSON format for the target Redis endpoint.
    CreateEndpoint -> Maybe RedisSettings
redisSettings :: Prelude.Maybe RedisSettings,
    CreateEndpoint -> Maybe RedshiftSettings
redshiftSettings :: Prelude.Maybe RedshiftSettings,
    -- | A friendly name for the resource identifier at the end of the
    -- @EndpointArn@ response parameter that is returned in the created
    -- @Endpoint@ object. The value for this parameter can have up to 31
    -- characters. It can contain only ASCII letters, digits, and hyphen
    -- (\'-\'). Also, it can\'t end with a hyphen or contain two consecutive
    -- hyphens, and can only begin with a letter, such as @Example-App-ARN1@.
    -- For example, this value might result in the @EndpointArn@ value
    -- @arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1@. If you don\'t
    -- specify a @ResourceIdentifier@ value, DMS generates a default identifier
    -- value for the end of @EndpointArn@.
    CreateEndpoint -> Maybe Text
resourceIdentifier :: Prelude.Maybe Prelude.Text,
    -- | Settings in JSON format for the target Amazon S3 endpoint. For more
    -- information about the available settings, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring Extra Connection Attributes When Using Amazon S3 as a Target for DMS>
    -- in the /Database Migration Service User Guide./
    CreateEndpoint -> Maybe S3Settings
s3Settings :: Prelude.Maybe S3Settings,
    -- | The name of the server where the endpoint database resides.
    CreateEndpoint -> Maybe Text
serverName :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) for the service access role that you want
    -- to use to create the endpoint. The role must allow the @iam:PassRole@
    -- action.
    CreateEndpoint -> Maybe Text
serviceAccessRoleArn :: Prelude.Maybe Prelude.Text,
    -- | The Secure Sockets Layer (SSL) mode to use for the SSL connection. The
    -- default is @none@
    CreateEndpoint -> Maybe DmsSslModeValue
sslMode :: Prelude.Maybe DmsSslModeValue,
    -- | Settings in JSON format for the source and target SAP ASE endpoint. For
    -- information about other available settings, see
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html#CHAP_Source.SAP.ConnectionAttrib Extra connection attributes when using SAP ASE as a source for DMS>
    -- and
    -- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SAP.html#CHAP_Target.SAP.ConnectionAttrib Extra connection attributes when using SAP ASE as a target for DMS>
    -- in the /Database Migration Service User Guide./
    CreateEndpoint -> Maybe SybaseSettings
sybaseSettings :: Prelude.Maybe SybaseSettings,
    -- | One or more tags to be assigned to the endpoint.
    CreateEndpoint -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The user name to be used to log in to the endpoint database.
    CreateEndpoint -> Maybe Text
username :: 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.
    CreateEndpoint -> Text
endpointIdentifier :: Prelude.Text,
    -- | The type of endpoint. Valid values are @source@ and @target@.
    CreateEndpoint -> ReplicationEndpointTypeValue
endpointType :: ReplicationEndpointTypeValue,
    -- | The type of engine for the endpoint. Valid values, depending on the
    -- @EndpointType@ value, include @\"mysql\"@, @\"oracle\"@, @\"postgres\"@,
    -- @\"mariadb\"@, @\"aurora\"@, @\"aurora-postgresql\"@, @\"opensearch\"@,
    -- @\"redshift\"@, @\"s3\"@, @\"db2\"@, @\"db2-zos\"@, @\"azuredb\"@,
    -- @\"sybase\"@, @\"dynamodb\"@, @\"mongodb\"@, @\"kinesis\"@, @\"kafka\"@,
    -- @\"elasticsearch\"@, @\"docdb\"@, @\"sqlserver\"@, @\"neptune\"@, and
    -- @\"babelfish\"@.
    CreateEndpoint -> Text
engineName :: Prelude.Text
  }
  deriving (CreateEndpoint -> CreateEndpoint -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateEndpoint -> CreateEndpoint -> Bool
$c/= :: CreateEndpoint -> CreateEndpoint -> Bool
== :: CreateEndpoint -> CreateEndpoint -> Bool
$c== :: CreateEndpoint -> CreateEndpoint -> Bool
Prelude.Eq, Int -> CreateEndpoint -> ShowS
[CreateEndpoint] -> ShowS
CreateEndpoint -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateEndpoint] -> ShowS
$cshowList :: [CreateEndpoint] -> ShowS
show :: CreateEndpoint -> String
$cshow :: CreateEndpoint -> String
showsPrec :: Int -> CreateEndpoint -> ShowS
$cshowsPrec :: Int -> CreateEndpoint -> ShowS
Prelude.Show, forall x. Rep CreateEndpoint x -> CreateEndpoint
forall x. CreateEndpoint -> Rep CreateEndpoint x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateEndpoint x -> CreateEndpoint
$cfrom :: forall x. CreateEndpoint -> Rep CreateEndpoint x
Prelude.Generic)

-- |
-- Create a value of 'CreateEndpoint' 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', 'createEndpoint_certificateArn' - The Amazon Resource Name (ARN) for the certificate.
--
-- 'databaseName', 'createEndpoint_databaseName' - The name of the endpoint database. For a MySQL source or target
-- endpoint, do not specify DatabaseName. To migrate to a specific
-- database, use this setting and @targetDbType@.
--
-- 'dmsTransferSettings', 'createEndpoint_dmsTransferSettings' - The settings in JSON format for the DMS transfer type of source
-- endpoint.
--
-- Possible settings include the following:
--
-- -   @ServiceAccessRoleArn@ - The Amazon Resource Name (ARN) used by the
--     service access IAM role. The role must allow the @iam:PassRole@
--     action.
--
-- -   @BucketName@ - The name of the S3 bucket to use.
--
-- Shorthand syntax for these settings is as follows:
-- @ServiceAccessRoleArn=string,BucketName=string@
--
-- JSON syntax for these settings is as follows:
-- @{ \"ServiceAccessRoleArn\": \"string\", \"BucketName\": \"string\", } @
--
-- 'docDbSettings', 'createEndpoint_docDbSettings' - Undocumented member.
--
-- 'dynamoDbSettings', 'createEndpoint_dynamoDbSettings' - Settings in JSON format for the target Amazon DynamoDB endpoint. For
-- information about other available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.DynamoDB.html#CHAP_Target.DynamoDB.ObjectMapping Using Object Mapping to Migrate Data to DynamoDB>
-- in the /Database Migration Service User Guide./
--
-- 'elasticsearchSettings', 'createEndpoint_elasticsearchSettings' - Settings in JSON format for the target OpenSearch endpoint. For more
-- information about the available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Elasticsearch.html#CHAP_Target.Elasticsearch.Configuration Extra Connection Attributes When Using OpenSearch as a Target for DMS>
-- in the /Database Migration Service User Guide/.
--
-- 'externalTableDefinition', 'createEndpoint_externalTableDefinition' - The external table definition.
--
-- 'extraConnectionAttributes', 'createEndpoint_extraConnectionAttributes' - Additional attributes associated with the connection. Each attribute is
-- specified as a name-value pair associated by an equal sign (=). Multiple
-- attributes are separated by a semicolon (;) with no additional white
-- space. For information on the attributes available for connecting your
-- source or target endpoint, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.html Working with DMS Endpoints>
-- in the /Database Migration Service User Guide./
--
-- 'gcpMySQLSettings', 'createEndpoint_gcpMySQLSettings' - Settings in JSON format for the source GCP MySQL endpoint.
--
-- 'iBMDb2Settings', 'createEndpoint_iBMDb2Settings' - Settings in JSON format for the source IBM Db2 LUW endpoint. For
-- information about other available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.DB2.html#CHAP_Source.DB2.ConnectionAttrib Extra connection attributes when using Db2 LUW as a source for DMS>
-- in the /Database Migration Service User Guide./
--
-- 'kafkaSettings', 'createEndpoint_kafkaSettings' - Settings in JSON format for the target Apache Kafka endpoint. For more
-- information about the available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kafka.html#CHAP_Target.Kafka.ObjectMapping Using object mapping to migrate data to a Kafka topic>
-- in the /Database Migration Service User Guide./
--
-- 'kinesisSettings', 'createEndpoint_kinesisSettings' - Settings in JSON format for the target endpoint for Amazon Kinesis Data
-- Streams. For more information about the available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kinesis.html#CHAP_Target.Kinesis.ObjectMapping Using object mapping to migrate data to a Kinesis data stream>
-- in the /Database Migration Service User Guide./
--
-- 'kmsKeyId', 'createEndpoint_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', 'createEndpoint_microsoftSQLServerSettings' - Settings in JSON format for the source and target Microsoft SQL Server
-- endpoint. For information about other available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html#CHAP_Source.SQLServer.ConnectionAttrib Extra connection attributes when using SQL Server as a source for DMS>
-- and
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SQLServer.html#CHAP_Target.SQLServer.ConnectionAttrib Extra connection attributes when using SQL Server as a target for DMS>
-- in the /Database Migration Service User Guide./
--
-- 'mongoDbSettings', 'createEndpoint_mongoDbSettings' - Settings in JSON format for the source MongoDB endpoint. For more
-- information about the available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MongoDB.html#CHAP_Source.MongoDB.Configuration Endpoint configuration settings when using MongoDB as a source for Database Migration Service>
-- in the /Database Migration Service User Guide./
--
-- 'mySQLSettings', 'createEndpoint_mySQLSettings' - Settings in JSON format for the source and target MySQL endpoint. For
-- information about other available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.ConnectionAttrib Extra connection attributes when using MySQL as a source for DMS>
-- and
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html#CHAP_Target.MySQL.ConnectionAttrib Extra connection attributes when using a MySQL-compatible database as a target for DMS>
-- in the /Database Migration Service User Guide./
--
-- 'neptuneSettings', 'createEndpoint_neptuneSettings' - Settings in JSON format for the target Amazon Neptune endpoint. For more
-- information about the available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Neptune.html#CHAP_Target.Neptune.EndpointSettings Specifying graph-mapping rules using Gremlin and R2RML for Amazon Neptune as a target>
-- in the /Database Migration Service User Guide./
--
-- 'oracleSettings', 'createEndpoint_oracleSettings' - Settings in JSON format for the source and target Oracle endpoint. For
-- information about other available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.ConnectionAttrib Extra connection attributes when using Oracle as a source for DMS>
-- and
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html#CHAP_Target.Oracle.ConnectionAttrib Extra connection attributes when using Oracle as a target for DMS>
-- in the /Database Migration Service User Guide./
--
-- 'password', 'createEndpoint_password' - The password to be used to log in to the endpoint database.
--
-- 'port', 'createEndpoint_port' - The port used by the endpoint database.
--
-- 'postgreSQLSettings', 'createEndpoint_postgreSQLSettings' - Settings in JSON format for the source and target PostgreSQL endpoint.
-- For information about other available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.ConnectionAttrib Extra connection attributes when using PostgreSQL as a source for DMS>
-- and
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html#CHAP_Target.PostgreSQL.ConnectionAttrib Extra connection attributes when using PostgreSQL as a target for DMS>
-- in the /Database Migration Service User Guide./
--
-- 'redisSettings', 'createEndpoint_redisSettings' - Settings in JSON format for the target Redis endpoint.
--
-- 'redshiftSettings', 'createEndpoint_redshiftSettings' - Undocumented member.
--
-- 'resourceIdentifier', 'createEndpoint_resourceIdentifier' - A friendly name for the resource identifier at the end of the
-- @EndpointArn@ response parameter that is returned in the created
-- @Endpoint@ object. The value for this parameter can have up to 31
-- characters. It can contain only ASCII letters, digits, and hyphen
-- (\'-\'). Also, it can\'t end with a hyphen or contain two consecutive
-- hyphens, and can only begin with a letter, such as @Example-App-ARN1@.
-- For example, this value might result in the @EndpointArn@ value
-- @arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1@. If you don\'t
-- specify a @ResourceIdentifier@ value, DMS generates a default identifier
-- value for the end of @EndpointArn@.
--
-- 's3Settings', 'createEndpoint_s3Settings' - Settings in JSON format for the target Amazon S3 endpoint. For more
-- information about the available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring Extra Connection Attributes When Using Amazon S3 as a Target for DMS>
-- in the /Database Migration Service User Guide./
--
-- 'serverName', 'createEndpoint_serverName' - The name of the server where the endpoint database resides.
--
-- 'serviceAccessRoleArn', 'createEndpoint_serviceAccessRoleArn' - The Amazon Resource Name (ARN) for the service access role that you want
-- to use to create the endpoint. The role must allow the @iam:PassRole@
-- action.
--
-- 'sslMode', 'createEndpoint_sslMode' - The Secure Sockets Layer (SSL) mode to use for the SSL connection. The
-- default is @none@
--
-- 'sybaseSettings', 'createEndpoint_sybaseSettings' - Settings in JSON format for the source and target SAP ASE endpoint. For
-- information about other available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html#CHAP_Source.SAP.ConnectionAttrib Extra connection attributes when using SAP ASE as a source for DMS>
-- and
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SAP.html#CHAP_Target.SAP.ConnectionAttrib Extra connection attributes when using SAP ASE as a target for DMS>
-- in the /Database Migration Service User Guide./
--
-- 'tags', 'createEndpoint_tags' - One or more tags to be assigned to the endpoint.
--
-- 'username', 'createEndpoint_username' - The user name to be used to log in to the endpoint database.
--
-- 'endpointIdentifier', 'createEndpoint_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', 'createEndpoint_endpointType' - The type of endpoint. Valid values are @source@ and @target@.
--
-- 'engineName', 'createEndpoint_engineName' - The type of engine for the endpoint. Valid values, depending on the
-- @EndpointType@ value, include @\"mysql\"@, @\"oracle\"@, @\"postgres\"@,
-- @\"mariadb\"@, @\"aurora\"@, @\"aurora-postgresql\"@, @\"opensearch\"@,
-- @\"redshift\"@, @\"s3\"@, @\"db2\"@, @\"db2-zos\"@, @\"azuredb\"@,
-- @\"sybase\"@, @\"dynamodb\"@, @\"mongodb\"@, @\"kinesis\"@, @\"kafka\"@,
-- @\"elasticsearch\"@, @\"docdb\"@, @\"sqlserver\"@, @\"neptune\"@, and
-- @\"babelfish\"@.
newCreateEndpoint ::
  -- | 'endpointIdentifier'
  Prelude.Text ->
  -- | 'endpointType'
  ReplicationEndpointTypeValue ->
  -- | 'engineName'
  Prelude.Text ->
  CreateEndpoint
newCreateEndpoint :: Text -> ReplicationEndpointTypeValue -> Text -> CreateEndpoint
newCreateEndpoint
  Text
pEndpointIdentifier_
  ReplicationEndpointTypeValue
pEndpointType_
  Text
pEngineName_ =
    CreateEndpoint'
      { $sel:certificateArn:CreateEndpoint' :: Maybe Text
certificateArn = forall a. Maybe a
Prelude.Nothing,
        $sel:databaseName:CreateEndpoint' :: Maybe Text
databaseName = forall a. Maybe a
Prelude.Nothing,
        $sel:dmsTransferSettings:CreateEndpoint' :: Maybe DmsTransferSettings
dmsTransferSettings = forall a. Maybe a
Prelude.Nothing,
        $sel:docDbSettings:CreateEndpoint' :: Maybe DocDbSettings
docDbSettings = forall a. Maybe a
Prelude.Nothing,
        $sel:dynamoDbSettings:CreateEndpoint' :: Maybe DynamoDbSettings
dynamoDbSettings = forall a. Maybe a
Prelude.Nothing,
        $sel:elasticsearchSettings:CreateEndpoint' :: Maybe ElasticsearchSettings
elasticsearchSettings = forall a. Maybe a
Prelude.Nothing,
        $sel:externalTableDefinition:CreateEndpoint' :: Maybe Text
externalTableDefinition = forall a. Maybe a
Prelude.Nothing,
        $sel:extraConnectionAttributes:CreateEndpoint' :: Maybe Text
extraConnectionAttributes = forall a. Maybe a
Prelude.Nothing,
        $sel:gcpMySQLSettings:CreateEndpoint' :: Maybe GcpMySQLSettings
gcpMySQLSettings = forall a. Maybe a
Prelude.Nothing,
        $sel:iBMDb2Settings:CreateEndpoint' :: Maybe IBMDb2Settings
iBMDb2Settings = forall a. Maybe a
Prelude.Nothing,
        $sel:kafkaSettings:CreateEndpoint' :: Maybe KafkaSettings
kafkaSettings = forall a. Maybe a
Prelude.Nothing,
        $sel:kinesisSettings:CreateEndpoint' :: Maybe KinesisSettings
kinesisSettings = forall a. Maybe a
Prelude.Nothing,
        $sel:kmsKeyId:CreateEndpoint' :: Maybe Text
kmsKeyId = forall a. Maybe a
Prelude.Nothing,
        $sel:microsoftSQLServerSettings:CreateEndpoint' :: Maybe MicrosoftSQLServerSettings
microsoftSQLServerSettings = forall a. Maybe a
Prelude.Nothing,
        $sel:mongoDbSettings:CreateEndpoint' :: Maybe MongoDbSettings
mongoDbSettings = forall a. Maybe a
Prelude.Nothing,
        $sel:mySQLSettings:CreateEndpoint' :: Maybe MySQLSettings
mySQLSettings = forall a. Maybe a
Prelude.Nothing,
        $sel:neptuneSettings:CreateEndpoint' :: Maybe NeptuneSettings
neptuneSettings = forall a. Maybe a
Prelude.Nothing,
        $sel:oracleSettings:CreateEndpoint' :: Maybe OracleSettings
oracleSettings = forall a. Maybe a
Prelude.Nothing,
        $sel:password:CreateEndpoint' :: Maybe (Sensitive Text)
password = forall a. Maybe a
Prelude.Nothing,
        $sel:port:CreateEndpoint' :: Maybe Int
port = forall a. Maybe a
Prelude.Nothing,
        $sel:postgreSQLSettings:CreateEndpoint' :: Maybe PostgreSQLSettings
postgreSQLSettings = forall a. Maybe a
Prelude.Nothing,
        $sel:redisSettings:CreateEndpoint' :: Maybe RedisSettings
redisSettings = forall a. Maybe a
Prelude.Nothing,
        $sel:redshiftSettings:CreateEndpoint' :: Maybe RedshiftSettings
redshiftSettings = forall a. Maybe a
Prelude.Nothing,
        $sel:resourceIdentifier:CreateEndpoint' :: Maybe Text
resourceIdentifier = forall a. Maybe a
Prelude.Nothing,
        $sel:s3Settings:CreateEndpoint' :: Maybe S3Settings
s3Settings = forall a. Maybe a
Prelude.Nothing,
        $sel:serverName:CreateEndpoint' :: Maybe Text
serverName = forall a. Maybe a
Prelude.Nothing,
        $sel:serviceAccessRoleArn:CreateEndpoint' :: Maybe Text
serviceAccessRoleArn = forall a. Maybe a
Prelude.Nothing,
        $sel:sslMode:CreateEndpoint' :: Maybe DmsSslModeValue
sslMode = forall a. Maybe a
Prelude.Nothing,
        $sel:sybaseSettings:CreateEndpoint' :: Maybe SybaseSettings
sybaseSettings = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:CreateEndpoint' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:username:CreateEndpoint' :: Maybe Text
username = forall a. Maybe a
Prelude.Nothing,
        $sel:endpointIdentifier:CreateEndpoint' :: Text
endpointIdentifier = Text
pEndpointIdentifier_,
        $sel:endpointType:CreateEndpoint' :: ReplicationEndpointTypeValue
endpointType = ReplicationEndpointTypeValue
pEndpointType_,
        $sel:engineName:CreateEndpoint' :: Text
engineName = Text
pEngineName_
      }

-- | The Amazon Resource Name (ARN) for the certificate.
createEndpoint_certificateArn :: Lens.Lens' CreateEndpoint (Prelude.Maybe Prelude.Text)
createEndpoint_certificateArn :: Lens' CreateEndpoint (Maybe Text)
createEndpoint_certificateArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe Text
certificateArn :: Maybe Text
$sel:certificateArn:CreateEndpoint' :: CreateEndpoint -> Maybe Text
certificateArn} -> Maybe Text
certificateArn) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe Text
a -> CreateEndpoint
s {$sel:certificateArn:CreateEndpoint' :: Maybe Text
certificateArn = Maybe Text
a} :: CreateEndpoint)

-- | The name of the endpoint database. For a MySQL source or target
-- endpoint, do not specify DatabaseName. To migrate to a specific
-- database, use this setting and @targetDbType@.
createEndpoint_databaseName :: Lens.Lens' CreateEndpoint (Prelude.Maybe Prelude.Text)
createEndpoint_databaseName :: Lens' CreateEndpoint (Maybe Text)
createEndpoint_databaseName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe Text
databaseName :: Maybe Text
$sel:databaseName:CreateEndpoint' :: CreateEndpoint -> Maybe Text
databaseName} -> Maybe Text
databaseName) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe Text
a -> CreateEndpoint
s {$sel:databaseName:CreateEndpoint' :: Maybe Text
databaseName = Maybe Text
a} :: CreateEndpoint)

-- | The settings in JSON format for the DMS transfer type of source
-- endpoint.
--
-- Possible settings include the following:
--
-- -   @ServiceAccessRoleArn@ - The Amazon Resource Name (ARN) used by the
--     service access IAM role. The role must allow the @iam:PassRole@
--     action.
--
-- -   @BucketName@ - The name of the S3 bucket to use.
--
-- Shorthand syntax for these settings is as follows:
-- @ServiceAccessRoleArn=string,BucketName=string@
--
-- JSON syntax for these settings is as follows:
-- @{ \"ServiceAccessRoleArn\": \"string\", \"BucketName\": \"string\", } @
createEndpoint_dmsTransferSettings :: Lens.Lens' CreateEndpoint (Prelude.Maybe DmsTransferSettings)
createEndpoint_dmsTransferSettings :: Lens' CreateEndpoint (Maybe DmsTransferSettings)
createEndpoint_dmsTransferSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe DmsTransferSettings
dmsTransferSettings :: Maybe DmsTransferSettings
$sel:dmsTransferSettings:CreateEndpoint' :: CreateEndpoint -> Maybe DmsTransferSettings
dmsTransferSettings} -> Maybe DmsTransferSettings
dmsTransferSettings) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe DmsTransferSettings
a -> CreateEndpoint
s {$sel:dmsTransferSettings:CreateEndpoint' :: Maybe DmsTransferSettings
dmsTransferSettings = Maybe DmsTransferSettings
a} :: CreateEndpoint)

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

-- | Settings in JSON format for the target Amazon DynamoDB endpoint. For
-- information about other available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.DynamoDB.html#CHAP_Target.DynamoDB.ObjectMapping Using Object Mapping to Migrate Data to DynamoDB>
-- in the /Database Migration Service User Guide./
createEndpoint_dynamoDbSettings :: Lens.Lens' CreateEndpoint (Prelude.Maybe DynamoDbSettings)
createEndpoint_dynamoDbSettings :: Lens' CreateEndpoint (Maybe DynamoDbSettings)
createEndpoint_dynamoDbSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe DynamoDbSettings
dynamoDbSettings :: Maybe DynamoDbSettings
$sel:dynamoDbSettings:CreateEndpoint' :: CreateEndpoint -> Maybe DynamoDbSettings
dynamoDbSettings} -> Maybe DynamoDbSettings
dynamoDbSettings) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe DynamoDbSettings
a -> CreateEndpoint
s {$sel:dynamoDbSettings:CreateEndpoint' :: Maybe DynamoDbSettings
dynamoDbSettings = Maybe DynamoDbSettings
a} :: CreateEndpoint)

-- | Settings in JSON format for the target OpenSearch endpoint. For more
-- information about the available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Elasticsearch.html#CHAP_Target.Elasticsearch.Configuration Extra Connection Attributes When Using OpenSearch as a Target for DMS>
-- in the /Database Migration Service User Guide/.
createEndpoint_elasticsearchSettings :: Lens.Lens' CreateEndpoint (Prelude.Maybe ElasticsearchSettings)
createEndpoint_elasticsearchSettings :: Lens' CreateEndpoint (Maybe ElasticsearchSettings)
createEndpoint_elasticsearchSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe ElasticsearchSettings
elasticsearchSettings :: Maybe ElasticsearchSettings
$sel:elasticsearchSettings:CreateEndpoint' :: CreateEndpoint -> Maybe ElasticsearchSettings
elasticsearchSettings} -> Maybe ElasticsearchSettings
elasticsearchSettings) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe ElasticsearchSettings
a -> CreateEndpoint
s {$sel:elasticsearchSettings:CreateEndpoint' :: Maybe ElasticsearchSettings
elasticsearchSettings = Maybe ElasticsearchSettings
a} :: CreateEndpoint)

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

-- | Additional attributes associated with the connection. Each attribute is
-- specified as a name-value pair associated by an equal sign (=). Multiple
-- attributes are separated by a semicolon (;) with no additional white
-- space. For information on the attributes available for connecting your
-- source or target endpoint, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.html Working with DMS Endpoints>
-- in the /Database Migration Service User Guide./
createEndpoint_extraConnectionAttributes :: Lens.Lens' CreateEndpoint (Prelude.Maybe Prelude.Text)
createEndpoint_extraConnectionAttributes :: Lens' CreateEndpoint (Maybe Text)
createEndpoint_extraConnectionAttributes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe Text
extraConnectionAttributes :: Maybe Text
$sel:extraConnectionAttributes:CreateEndpoint' :: CreateEndpoint -> Maybe Text
extraConnectionAttributes} -> Maybe Text
extraConnectionAttributes) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe Text
a -> CreateEndpoint
s {$sel:extraConnectionAttributes:CreateEndpoint' :: Maybe Text
extraConnectionAttributes = Maybe Text
a} :: CreateEndpoint)

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

-- | Settings in JSON format for the source IBM Db2 LUW endpoint. For
-- information about other available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.DB2.html#CHAP_Source.DB2.ConnectionAttrib Extra connection attributes when using Db2 LUW as a source for DMS>
-- in the /Database Migration Service User Guide./
createEndpoint_iBMDb2Settings :: Lens.Lens' CreateEndpoint (Prelude.Maybe IBMDb2Settings)
createEndpoint_iBMDb2Settings :: Lens' CreateEndpoint (Maybe IBMDb2Settings)
createEndpoint_iBMDb2Settings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe IBMDb2Settings
iBMDb2Settings :: Maybe IBMDb2Settings
$sel:iBMDb2Settings:CreateEndpoint' :: CreateEndpoint -> Maybe IBMDb2Settings
iBMDb2Settings} -> Maybe IBMDb2Settings
iBMDb2Settings) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe IBMDb2Settings
a -> CreateEndpoint
s {$sel:iBMDb2Settings:CreateEndpoint' :: Maybe IBMDb2Settings
iBMDb2Settings = Maybe IBMDb2Settings
a} :: CreateEndpoint)

-- | Settings in JSON format for the target Apache Kafka endpoint. For more
-- information about the available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kafka.html#CHAP_Target.Kafka.ObjectMapping Using object mapping to migrate data to a Kafka topic>
-- in the /Database Migration Service User Guide./
createEndpoint_kafkaSettings :: Lens.Lens' CreateEndpoint (Prelude.Maybe KafkaSettings)
createEndpoint_kafkaSettings :: Lens' CreateEndpoint (Maybe KafkaSettings)
createEndpoint_kafkaSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe KafkaSettings
kafkaSettings :: Maybe KafkaSettings
$sel:kafkaSettings:CreateEndpoint' :: CreateEndpoint -> Maybe KafkaSettings
kafkaSettings} -> Maybe KafkaSettings
kafkaSettings) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe KafkaSettings
a -> CreateEndpoint
s {$sel:kafkaSettings:CreateEndpoint' :: Maybe KafkaSettings
kafkaSettings = Maybe KafkaSettings
a} :: CreateEndpoint)

-- | Settings in JSON format for the target endpoint for Amazon Kinesis Data
-- Streams. For more information about the available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kinesis.html#CHAP_Target.Kinesis.ObjectMapping Using object mapping to migrate data to a Kinesis data stream>
-- in the /Database Migration Service User Guide./
createEndpoint_kinesisSettings :: Lens.Lens' CreateEndpoint (Prelude.Maybe KinesisSettings)
createEndpoint_kinesisSettings :: Lens' CreateEndpoint (Maybe KinesisSettings)
createEndpoint_kinesisSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe KinesisSettings
kinesisSettings :: Maybe KinesisSettings
$sel:kinesisSettings:CreateEndpoint' :: CreateEndpoint -> Maybe KinesisSettings
kinesisSettings} -> Maybe KinesisSettings
kinesisSettings) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe KinesisSettings
a -> CreateEndpoint
s {$sel:kinesisSettings:CreateEndpoint' :: Maybe KinesisSettings
kinesisSettings = Maybe KinesisSettings
a} :: CreateEndpoint)

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

-- | Settings in JSON format for the source and target Microsoft SQL Server
-- endpoint. For information about other available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html#CHAP_Source.SQLServer.ConnectionAttrib Extra connection attributes when using SQL Server as a source for DMS>
-- and
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SQLServer.html#CHAP_Target.SQLServer.ConnectionAttrib Extra connection attributes when using SQL Server as a target for DMS>
-- in the /Database Migration Service User Guide./
createEndpoint_microsoftSQLServerSettings :: Lens.Lens' CreateEndpoint (Prelude.Maybe MicrosoftSQLServerSettings)
createEndpoint_microsoftSQLServerSettings :: Lens' CreateEndpoint (Maybe MicrosoftSQLServerSettings)
createEndpoint_microsoftSQLServerSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe MicrosoftSQLServerSettings
microsoftSQLServerSettings :: Maybe MicrosoftSQLServerSettings
$sel:microsoftSQLServerSettings:CreateEndpoint' :: CreateEndpoint -> Maybe MicrosoftSQLServerSettings
microsoftSQLServerSettings} -> Maybe MicrosoftSQLServerSettings
microsoftSQLServerSettings) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe MicrosoftSQLServerSettings
a -> CreateEndpoint
s {$sel:microsoftSQLServerSettings:CreateEndpoint' :: Maybe MicrosoftSQLServerSettings
microsoftSQLServerSettings = Maybe MicrosoftSQLServerSettings
a} :: CreateEndpoint)

-- | Settings in JSON format for the source MongoDB endpoint. For more
-- information about the available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MongoDB.html#CHAP_Source.MongoDB.Configuration Endpoint configuration settings when using MongoDB as a source for Database Migration Service>
-- in the /Database Migration Service User Guide./
createEndpoint_mongoDbSettings :: Lens.Lens' CreateEndpoint (Prelude.Maybe MongoDbSettings)
createEndpoint_mongoDbSettings :: Lens' CreateEndpoint (Maybe MongoDbSettings)
createEndpoint_mongoDbSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe MongoDbSettings
mongoDbSettings :: Maybe MongoDbSettings
$sel:mongoDbSettings:CreateEndpoint' :: CreateEndpoint -> Maybe MongoDbSettings
mongoDbSettings} -> Maybe MongoDbSettings
mongoDbSettings) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe MongoDbSettings
a -> CreateEndpoint
s {$sel:mongoDbSettings:CreateEndpoint' :: Maybe MongoDbSettings
mongoDbSettings = Maybe MongoDbSettings
a} :: CreateEndpoint)

-- | Settings in JSON format for the source and target MySQL endpoint. For
-- information about other available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.ConnectionAttrib Extra connection attributes when using MySQL as a source for DMS>
-- and
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html#CHAP_Target.MySQL.ConnectionAttrib Extra connection attributes when using a MySQL-compatible database as a target for DMS>
-- in the /Database Migration Service User Guide./
createEndpoint_mySQLSettings :: Lens.Lens' CreateEndpoint (Prelude.Maybe MySQLSettings)
createEndpoint_mySQLSettings :: Lens' CreateEndpoint (Maybe MySQLSettings)
createEndpoint_mySQLSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe MySQLSettings
mySQLSettings :: Maybe MySQLSettings
$sel:mySQLSettings:CreateEndpoint' :: CreateEndpoint -> Maybe MySQLSettings
mySQLSettings} -> Maybe MySQLSettings
mySQLSettings) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe MySQLSettings
a -> CreateEndpoint
s {$sel:mySQLSettings:CreateEndpoint' :: Maybe MySQLSettings
mySQLSettings = Maybe MySQLSettings
a} :: CreateEndpoint)

-- | Settings in JSON format for the target Amazon Neptune endpoint. For more
-- information about the available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Neptune.html#CHAP_Target.Neptune.EndpointSettings Specifying graph-mapping rules using Gremlin and R2RML for Amazon Neptune as a target>
-- in the /Database Migration Service User Guide./
createEndpoint_neptuneSettings :: Lens.Lens' CreateEndpoint (Prelude.Maybe NeptuneSettings)
createEndpoint_neptuneSettings :: Lens' CreateEndpoint (Maybe NeptuneSettings)
createEndpoint_neptuneSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe NeptuneSettings
neptuneSettings :: Maybe NeptuneSettings
$sel:neptuneSettings:CreateEndpoint' :: CreateEndpoint -> Maybe NeptuneSettings
neptuneSettings} -> Maybe NeptuneSettings
neptuneSettings) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe NeptuneSettings
a -> CreateEndpoint
s {$sel:neptuneSettings:CreateEndpoint' :: Maybe NeptuneSettings
neptuneSettings = Maybe NeptuneSettings
a} :: CreateEndpoint)

-- | Settings in JSON format for the source and target Oracle endpoint. For
-- information about other available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.ConnectionAttrib Extra connection attributes when using Oracle as a source for DMS>
-- and
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html#CHAP_Target.Oracle.ConnectionAttrib Extra connection attributes when using Oracle as a target for DMS>
-- in the /Database Migration Service User Guide./
createEndpoint_oracleSettings :: Lens.Lens' CreateEndpoint (Prelude.Maybe OracleSettings)
createEndpoint_oracleSettings :: Lens' CreateEndpoint (Maybe OracleSettings)
createEndpoint_oracleSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe OracleSettings
oracleSettings :: Maybe OracleSettings
$sel:oracleSettings:CreateEndpoint' :: CreateEndpoint -> Maybe OracleSettings
oracleSettings} -> Maybe OracleSettings
oracleSettings) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe OracleSettings
a -> CreateEndpoint
s {$sel:oracleSettings:CreateEndpoint' :: Maybe OracleSettings
oracleSettings = Maybe OracleSettings
a} :: CreateEndpoint)

-- | The password to be used to log in to the endpoint database.
createEndpoint_password :: Lens.Lens' CreateEndpoint (Prelude.Maybe Prelude.Text)
createEndpoint_password :: Lens' CreateEndpoint (Maybe Text)
createEndpoint_password = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe (Sensitive Text)
password :: Maybe (Sensitive Text)
$sel:password:CreateEndpoint' :: CreateEndpoint -> Maybe (Sensitive Text)
password} -> Maybe (Sensitive Text)
password) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe (Sensitive Text)
a -> CreateEndpoint
s {$sel:password:CreateEndpoint' :: Maybe (Sensitive Text)
password = Maybe (Sensitive Text)
a} :: CreateEndpoint) 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

-- | The port used by the endpoint database.
createEndpoint_port :: Lens.Lens' CreateEndpoint (Prelude.Maybe Prelude.Int)
createEndpoint_port :: Lens' CreateEndpoint (Maybe Int)
createEndpoint_port = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe Int
port :: Maybe Int
$sel:port:CreateEndpoint' :: CreateEndpoint -> Maybe Int
port} -> Maybe Int
port) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe Int
a -> CreateEndpoint
s {$sel:port:CreateEndpoint' :: Maybe Int
port = Maybe Int
a} :: CreateEndpoint)

-- | Settings in JSON format for the source and target PostgreSQL endpoint.
-- For information about other available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.ConnectionAttrib Extra connection attributes when using PostgreSQL as a source for DMS>
-- and
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html#CHAP_Target.PostgreSQL.ConnectionAttrib Extra connection attributes when using PostgreSQL as a target for DMS>
-- in the /Database Migration Service User Guide./
createEndpoint_postgreSQLSettings :: Lens.Lens' CreateEndpoint (Prelude.Maybe PostgreSQLSettings)
createEndpoint_postgreSQLSettings :: Lens' CreateEndpoint (Maybe PostgreSQLSettings)
createEndpoint_postgreSQLSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe PostgreSQLSettings
postgreSQLSettings :: Maybe PostgreSQLSettings
$sel:postgreSQLSettings:CreateEndpoint' :: CreateEndpoint -> Maybe PostgreSQLSettings
postgreSQLSettings} -> Maybe PostgreSQLSettings
postgreSQLSettings) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe PostgreSQLSettings
a -> CreateEndpoint
s {$sel:postgreSQLSettings:CreateEndpoint' :: Maybe PostgreSQLSettings
postgreSQLSettings = Maybe PostgreSQLSettings
a} :: CreateEndpoint)

-- | Settings in JSON format for the target Redis endpoint.
createEndpoint_redisSettings :: Lens.Lens' CreateEndpoint (Prelude.Maybe RedisSettings)
createEndpoint_redisSettings :: Lens' CreateEndpoint (Maybe RedisSettings)
createEndpoint_redisSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe RedisSettings
redisSettings :: Maybe RedisSettings
$sel:redisSettings:CreateEndpoint' :: CreateEndpoint -> Maybe RedisSettings
redisSettings} -> Maybe RedisSettings
redisSettings) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe RedisSettings
a -> CreateEndpoint
s {$sel:redisSettings:CreateEndpoint' :: Maybe RedisSettings
redisSettings = Maybe RedisSettings
a} :: CreateEndpoint)

-- | Undocumented member.
createEndpoint_redshiftSettings :: Lens.Lens' CreateEndpoint (Prelude.Maybe RedshiftSettings)
createEndpoint_redshiftSettings :: Lens' CreateEndpoint (Maybe RedshiftSettings)
createEndpoint_redshiftSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe RedshiftSettings
redshiftSettings :: Maybe RedshiftSettings
$sel:redshiftSettings:CreateEndpoint' :: CreateEndpoint -> Maybe RedshiftSettings
redshiftSettings} -> Maybe RedshiftSettings
redshiftSettings) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe RedshiftSettings
a -> CreateEndpoint
s {$sel:redshiftSettings:CreateEndpoint' :: Maybe RedshiftSettings
redshiftSettings = Maybe RedshiftSettings
a} :: CreateEndpoint)

-- | A friendly name for the resource identifier at the end of the
-- @EndpointArn@ response parameter that is returned in the created
-- @Endpoint@ object. The value for this parameter can have up to 31
-- characters. It can contain only ASCII letters, digits, and hyphen
-- (\'-\'). Also, it can\'t end with a hyphen or contain two consecutive
-- hyphens, and can only begin with a letter, such as @Example-App-ARN1@.
-- For example, this value might result in the @EndpointArn@ value
-- @arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1@. If you don\'t
-- specify a @ResourceIdentifier@ value, DMS generates a default identifier
-- value for the end of @EndpointArn@.
createEndpoint_resourceIdentifier :: Lens.Lens' CreateEndpoint (Prelude.Maybe Prelude.Text)
createEndpoint_resourceIdentifier :: Lens' CreateEndpoint (Maybe Text)
createEndpoint_resourceIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe Text
resourceIdentifier :: Maybe Text
$sel:resourceIdentifier:CreateEndpoint' :: CreateEndpoint -> Maybe Text
resourceIdentifier} -> Maybe Text
resourceIdentifier) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe Text
a -> CreateEndpoint
s {$sel:resourceIdentifier:CreateEndpoint' :: Maybe Text
resourceIdentifier = Maybe Text
a} :: CreateEndpoint)

-- | Settings in JSON format for the target Amazon S3 endpoint. For more
-- information about the available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring Extra Connection Attributes When Using Amazon S3 as a Target for DMS>
-- in the /Database Migration Service User Guide./
createEndpoint_s3Settings :: Lens.Lens' CreateEndpoint (Prelude.Maybe S3Settings)
createEndpoint_s3Settings :: Lens' CreateEndpoint (Maybe S3Settings)
createEndpoint_s3Settings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe S3Settings
s3Settings :: Maybe S3Settings
$sel:s3Settings:CreateEndpoint' :: CreateEndpoint -> Maybe S3Settings
s3Settings} -> Maybe S3Settings
s3Settings) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe S3Settings
a -> CreateEndpoint
s {$sel:s3Settings:CreateEndpoint' :: Maybe S3Settings
s3Settings = Maybe S3Settings
a} :: CreateEndpoint)

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

-- | The Amazon Resource Name (ARN) for the service access role that you want
-- to use to create the endpoint. The role must allow the @iam:PassRole@
-- action.
createEndpoint_serviceAccessRoleArn :: Lens.Lens' CreateEndpoint (Prelude.Maybe Prelude.Text)
createEndpoint_serviceAccessRoleArn :: Lens' CreateEndpoint (Maybe Text)
createEndpoint_serviceAccessRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe Text
serviceAccessRoleArn :: Maybe Text
$sel:serviceAccessRoleArn:CreateEndpoint' :: CreateEndpoint -> Maybe Text
serviceAccessRoleArn} -> Maybe Text
serviceAccessRoleArn) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe Text
a -> CreateEndpoint
s {$sel:serviceAccessRoleArn:CreateEndpoint' :: Maybe Text
serviceAccessRoleArn = Maybe Text
a} :: CreateEndpoint)

-- | The Secure Sockets Layer (SSL) mode to use for the SSL connection. The
-- default is @none@
createEndpoint_sslMode :: Lens.Lens' CreateEndpoint (Prelude.Maybe DmsSslModeValue)
createEndpoint_sslMode :: Lens' CreateEndpoint (Maybe DmsSslModeValue)
createEndpoint_sslMode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe DmsSslModeValue
sslMode :: Maybe DmsSslModeValue
$sel:sslMode:CreateEndpoint' :: CreateEndpoint -> Maybe DmsSslModeValue
sslMode} -> Maybe DmsSslModeValue
sslMode) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe DmsSslModeValue
a -> CreateEndpoint
s {$sel:sslMode:CreateEndpoint' :: Maybe DmsSslModeValue
sslMode = Maybe DmsSslModeValue
a} :: CreateEndpoint)

-- | Settings in JSON format for the source and target SAP ASE endpoint. For
-- information about other available settings, see
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html#CHAP_Source.SAP.ConnectionAttrib Extra connection attributes when using SAP ASE as a source for DMS>
-- and
-- <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SAP.html#CHAP_Target.SAP.ConnectionAttrib Extra connection attributes when using SAP ASE as a target for DMS>
-- in the /Database Migration Service User Guide./
createEndpoint_sybaseSettings :: Lens.Lens' CreateEndpoint (Prelude.Maybe SybaseSettings)
createEndpoint_sybaseSettings :: Lens' CreateEndpoint (Maybe SybaseSettings)
createEndpoint_sybaseSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe SybaseSettings
sybaseSettings :: Maybe SybaseSettings
$sel:sybaseSettings:CreateEndpoint' :: CreateEndpoint -> Maybe SybaseSettings
sybaseSettings} -> Maybe SybaseSettings
sybaseSettings) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe SybaseSettings
a -> CreateEndpoint
s {$sel:sybaseSettings:CreateEndpoint' :: Maybe SybaseSettings
sybaseSettings = Maybe SybaseSettings
a} :: CreateEndpoint)

-- | One or more tags to be assigned to the endpoint.
createEndpoint_tags :: Lens.Lens' CreateEndpoint (Prelude.Maybe [Tag])
createEndpoint_tags :: Lens' CreateEndpoint (Maybe [Tag])
createEndpoint_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateEndpoint' :: CreateEndpoint -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe [Tag]
a -> CreateEndpoint
s {$sel:tags:CreateEndpoint' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateEndpoint) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The user name to be used to log in to the endpoint database.
createEndpoint_username :: Lens.Lens' CreateEndpoint (Prelude.Maybe Prelude.Text)
createEndpoint_username :: Lens' CreateEndpoint (Maybe Text)
createEndpoint_username = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Maybe Text
username :: Maybe Text
$sel:username:CreateEndpoint' :: CreateEndpoint -> Maybe Text
username} -> Maybe Text
username) (\s :: CreateEndpoint
s@CreateEndpoint' {} Maybe Text
a -> CreateEndpoint
s {$sel:username:CreateEndpoint' :: Maybe Text
username = Maybe Text
a} :: CreateEndpoint)

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

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

-- | The type of engine for the endpoint. Valid values, depending on the
-- @EndpointType@ value, include @\"mysql\"@, @\"oracle\"@, @\"postgres\"@,
-- @\"mariadb\"@, @\"aurora\"@, @\"aurora-postgresql\"@, @\"opensearch\"@,
-- @\"redshift\"@, @\"s3\"@, @\"db2\"@, @\"db2-zos\"@, @\"azuredb\"@,
-- @\"sybase\"@, @\"dynamodb\"@, @\"mongodb\"@, @\"kinesis\"@, @\"kafka\"@,
-- @\"elasticsearch\"@, @\"docdb\"@, @\"sqlserver\"@, @\"neptune\"@, and
-- @\"babelfish\"@.
createEndpoint_engineName :: Lens.Lens' CreateEndpoint Prelude.Text
createEndpoint_engineName :: Lens' CreateEndpoint Text
createEndpoint_engineName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpoint' {Text
engineName :: Text
$sel:engineName:CreateEndpoint' :: CreateEndpoint -> Text
engineName} -> Text
engineName) (\s :: CreateEndpoint
s@CreateEndpoint' {} Text
a -> CreateEndpoint
s {$sel:engineName:CreateEndpoint' :: Text
engineName = Text
a} :: CreateEndpoint)

instance Core.AWSRequest CreateEndpoint where
  type
    AWSResponse CreateEndpoint =
      CreateEndpointResponse
  request :: (Service -> Service) -> CreateEndpoint -> Request CreateEndpoint
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateEndpoint
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateEndpoint)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Endpoint -> Int -> CreateEndpointResponse
CreateEndpointResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Endpoint")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable CreateEndpoint where
  hashWithSalt :: Int -> CreateEndpoint -> Int
hashWithSalt Int
_salt CreateEndpoint' {Maybe Int
Maybe [Tag]
Maybe Text
Maybe (Sensitive 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 S3Settings
Maybe MicrosoftSQLServerSettings
Maybe RedisSettings
Maybe SybaseSettings
Maybe MySQLSettings
Maybe GcpMySQLSettings
Text
ReplicationEndpointTypeValue
engineName :: Text
endpointType :: ReplicationEndpointTypeValue
endpointIdentifier :: Text
username :: Maybe Text
tags :: Maybe [Tag]
sybaseSettings :: Maybe SybaseSettings
sslMode :: Maybe DmsSslModeValue
serviceAccessRoleArn :: Maybe Text
serverName :: Maybe Text
s3Settings :: Maybe S3Settings
resourceIdentifier :: Maybe Text
redshiftSettings :: Maybe RedshiftSettings
redisSettings :: Maybe RedisSettings
postgreSQLSettings :: Maybe PostgreSQLSettings
port :: Maybe Int
password :: Maybe (Sensitive Text)
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
elasticsearchSettings :: Maybe ElasticsearchSettings
dynamoDbSettings :: Maybe DynamoDbSettings
docDbSettings :: Maybe DocDbSettings
dmsTransferSettings :: Maybe DmsTransferSettings
databaseName :: Maybe Text
certificateArn :: Maybe Text
$sel:engineName:CreateEndpoint' :: CreateEndpoint -> Text
$sel:endpointType:CreateEndpoint' :: CreateEndpoint -> ReplicationEndpointTypeValue
$sel:endpointIdentifier:CreateEndpoint' :: CreateEndpoint -> Text
$sel:username:CreateEndpoint' :: CreateEndpoint -> Maybe Text
$sel:tags:CreateEndpoint' :: CreateEndpoint -> Maybe [Tag]
$sel:sybaseSettings:CreateEndpoint' :: CreateEndpoint -> Maybe SybaseSettings
$sel:sslMode:CreateEndpoint' :: CreateEndpoint -> Maybe DmsSslModeValue
$sel:serviceAccessRoleArn:CreateEndpoint' :: CreateEndpoint -> Maybe Text
$sel:serverName:CreateEndpoint' :: CreateEndpoint -> Maybe Text
$sel:s3Settings:CreateEndpoint' :: CreateEndpoint -> Maybe S3Settings
$sel:resourceIdentifier:CreateEndpoint' :: CreateEndpoint -> Maybe Text
$sel:redshiftSettings:CreateEndpoint' :: CreateEndpoint -> Maybe RedshiftSettings
$sel:redisSettings:CreateEndpoint' :: CreateEndpoint -> Maybe RedisSettings
$sel:postgreSQLSettings:CreateEndpoint' :: CreateEndpoint -> Maybe PostgreSQLSettings
$sel:port:CreateEndpoint' :: CreateEndpoint -> Maybe Int
$sel:password:CreateEndpoint' :: CreateEndpoint -> Maybe (Sensitive Text)
$sel:oracleSettings:CreateEndpoint' :: CreateEndpoint -> Maybe OracleSettings
$sel:neptuneSettings:CreateEndpoint' :: CreateEndpoint -> Maybe NeptuneSettings
$sel:mySQLSettings:CreateEndpoint' :: CreateEndpoint -> Maybe MySQLSettings
$sel:mongoDbSettings:CreateEndpoint' :: CreateEndpoint -> Maybe MongoDbSettings
$sel:microsoftSQLServerSettings:CreateEndpoint' :: CreateEndpoint -> Maybe MicrosoftSQLServerSettings
$sel:kmsKeyId:CreateEndpoint' :: CreateEndpoint -> Maybe Text
$sel:kinesisSettings:CreateEndpoint' :: CreateEndpoint -> Maybe KinesisSettings
$sel:kafkaSettings:CreateEndpoint' :: CreateEndpoint -> Maybe KafkaSettings
$sel:iBMDb2Settings:CreateEndpoint' :: CreateEndpoint -> Maybe IBMDb2Settings
$sel:gcpMySQLSettings:CreateEndpoint' :: CreateEndpoint -> Maybe GcpMySQLSettings
$sel:extraConnectionAttributes:CreateEndpoint' :: CreateEndpoint -> Maybe Text
$sel:externalTableDefinition:CreateEndpoint' :: CreateEndpoint -> Maybe Text
$sel:elasticsearchSettings:CreateEndpoint' :: CreateEndpoint -> Maybe ElasticsearchSettings
$sel:dynamoDbSettings:CreateEndpoint' :: CreateEndpoint -> Maybe DynamoDbSettings
$sel:docDbSettings:CreateEndpoint' :: CreateEndpoint -> Maybe DocDbSettings
$sel:dmsTransferSettings:CreateEndpoint' :: CreateEndpoint -> Maybe DmsTransferSettings
$sel:databaseName:CreateEndpoint' :: CreateEndpoint -> Maybe Text
$sel:certificateArn:CreateEndpoint' :: CreateEndpoint -> 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
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 (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 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 Text
resourceIdentifier
      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 SybaseSettings
sybaseSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
username
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
endpointIdentifier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ReplicationEndpointTypeValue
endpointType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
engineName

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

instance Data.ToHeaders CreateEndpoint where
  toHeaders :: CreateEndpoint -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"AmazonDMSv20160101.CreateEndpoint" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON CreateEndpoint where
  toJSON :: CreateEndpoint -> Value
toJSON CreateEndpoint' {Maybe Int
Maybe [Tag]
Maybe Text
Maybe (Sensitive 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 S3Settings
Maybe MicrosoftSQLServerSettings
Maybe RedisSettings
Maybe SybaseSettings
Maybe MySQLSettings
Maybe GcpMySQLSettings
Text
ReplicationEndpointTypeValue
engineName :: Text
endpointType :: ReplicationEndpointTypeValue
endpointIdentifier :: Text
username :: Maybe Text
tags :: Maybe [Tag]
sybaseSettings :: Maybe SybaseSettings
sslMode :: Maybe DmsSslModeValue
serviceAccessRoleArn :: Maybe Text
serverName :: Maybe Text
s3Settings :: Maybe S3Settings
resourceIdentifier :: Maybe Text
redshiftSettings :: Maybe RedshiftSettings
redisSettings :: Maybe RedisSettings
postgreSQLSettings :: Maybe PostgreSQLSettings
port :: Maybe Int
password :: Maybe (Sensitive Text)
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
elasticsearchSettings :: Maybe ElasticsearchSettings
dynamoDbSettings :: Maybe DynamoDbSettings
docDbSettings :: Maybe DocDbSettings
dmsTransferSettings :: Maybe DmsTransferSettings
databaseName :: Maybe Text
certificateArn :: Maybe Text
$sel:engineName:CreateEndpoint' :: CreateEndpoint -> Text
$sel:endpointType:CreateEndpoint' :: CreateEndpoint -> ReplicationEndpointTypeValue
$sel:endpointIdentifier:CreateEndpoint' :: CreateEndpoint -> Text
$sel:username:CreateEndpoint' :: CreateEndpoint -> Maybe Text
$sel:tags:CreateEndpoint' :: CreateEndpoint -> Maybe [Tag]
$sel:sybaseSettings:CreateEndpoint' :: CreateEndpoint -> Maybe SybaseSettings
$sel:sslMode:CreateEndpoint' :: CreateEndpoint -> Maybe DmsSslModeValue
$sel:serviceAccessRoleArn:CreateEndpoint' :: CreateEndpoint -> Maybe Text
$sel:serverName:CreateEndpoint' :: CreateEndpoint -> Maybe Text
$sel:s3Settings:CreateEndpoint' :: CreateEndpoint -> Maybe S3Settings
$sel:resourceIdentifier:CreateEndpoint' :: CreateEndpoint -> Maybe Text
$sel:redshiftSettings:CreateEndpoint' :: CreateEndpoint -> Maybe RedshiftSettings
$sel:redisSettings:CreateEndpoint' :: CreateEndpoint -> Maybe RedisSettings
$sel:postgreSQLSettings:CreateEndpoint' :: CreateEndpoint -> Maybe PostgreSQLSettings
$sel:port:CreateEndpoint' :: CreateEndpoint -> Maybe Int
$sel:password:CreateEndpoint' :: CreateEndpoint -> Maybe (Sensitive Text)
$sel:oracleSettings:CreateEndpoint' :: CreateEndpoint -> Maybe OracleSettings
$sel:neptuneSettings:CreateEndpoint' :: CreateEndpoint -> Maybe NeptuneSettings
$sel:mySQLSettings:CreateEndpoint' :: CreateEndpoint -> Maybe MySQLSettings
$sel:mongoDbSettings:CreateEndpoint' :: CreateEndpoint -> Maybe MongoDbSettings
$sel:microsoftSQLServerSettings:CreateEndpoint' :: CreateEndpoint -> Maybe MicrosoftSQLServerSettings
$sel:kmsKeyId:CreateEndpoint' :: CreateEndpoint -> Maybe Text
$sel:kinesisSettings:CreateEndpoint' :: CreateEndpoint -> Maybe KinesisSettings
$sel:kafkaSettings:CreateEndpoint' :: CreateEndpoint -> Maybe KafkaSettings
$sel:iBMDb2Settings:CreateEndpoint' :: CreateEndpoint -> Maybe IBMDb2Settings
$sel:gcpMySQLSettings:CreateEndpoint' :: CreateEndpoint -> Maybe GcpMySQLSettings
$sel:extraConnectionAttributes:CreateEndpoint' :: CreateEndpoint -> Maybe Text
$sel:externalTableDefinition:CreateEndpoint' :: CreateEndpoint -> Maybe Text
$sel:elasticsearchSettings:CreateEndpoint' :: CreateEndpoint -> Maybe ElasticsearchSettings
$sel:dynamoDbSettings:CreateEndpoint' :: CreateEndpoint -> Maybe DynamoDbSettings
$sel:docDbSettings:CreateEndpoint' :: CreateEndpoint -> Maybe DocDbSettings
$sel:dmsTransferSettings:CreateEndpoint' :: CreateEndpoint -> Maybe DmsTransferSettings
$sel:databaseName:CreateEndpoint' :: CreateEndpoint -> Maybe Text
$sel:certificateArn:CreateEndpoint' :: CreateEndpoint -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"CertificateArn" 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
certificateArn,
            (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
"DmsTransferSettings" 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 DmsTransferSettings
dmsTransferSettings,
            (Key
"DocDbSettings" 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 DocDbSettings
docDbSettings,
            (Key
"DynamoDbSettings" 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 DynamoDbSettings
dynamoDbSettings,
            (Key
"ElasticsearchSettings" 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 ElasticsearchSettings
elasticsearchSettings,
            (Key
"ExternalTableDefinition" 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
externalTableDefinition,
            (Key
"ExtraConnectionAttributes" 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
extraConnectionAttributes,
            (Key
"GcpMySQLSettings" 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 GcpMySQLSettings
gcpMySQLSettings,
            (Key
"IBMDb2Settings" 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 IBMDb2Settings
iBMDb2Settings,
            (Key
"KafkaSettings" 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 KafkaSettings
kafkaSettings,
            (Key
"KinesisSettings" 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 KinesisSettings
kinesisSettings,
            (Key
"KmsKeyId" 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
kmsKeyId,
            (Key
"MicrosoftSQLServerSettings" 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 MicrosoftSQLServerSettings
microsoftSQLServerSettings,
            (Key
"MongoDbSettings" 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 MongoDbSettings
mongoDbSettings,
            (Key
"MySQLSettings" 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 MySQLSettings
mySQLSettings,
            (Key
"NeptuneSettings" 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 NeptuneSettings
neptuneSettings,
            (Key
"OracleSettings" 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 OracleSettings
oracleSettings,
            (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
"PostgreSQLSettings" 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 PostgreSQLSettings
postgreSQLSettings,
            (Key
"RedisSettings" 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 RedisSettings
redisSettings,
            (Key
"RedshiftSettings" 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 RedshiftSettings
redshiftSettings,
            (Key
"ResourceIdentifier" 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
resourceIdentifier,
            (Key
"S3Settings" 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 S3Settings
s3Settings,
            (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
"ServiceAccessRoleArn" 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
serviceAccessRoleArn,
            (Key
"SslMode" 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 DmsSslModeValue
sslMode,
            (Key
"SybaseSettings" 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 SybaseSettings
sybaseSettings,
            (Key
"Tags" 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 [Tag]
tags,
            (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,
            forall a. a -> Maybe a
Prelude.Just
              (Key
"EndpointIdentifier" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
endpointIdentifier),
            forall a. a -> Maybe a
Prelude.Just (Key
"EndpointType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= ReplicationEndpointTypeValue
endpointType),
            forall a. a -> Maybe a
Prelude.Just (Key
"EngineName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
engineName)
          ]
      )

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

instance Data.ToQuery CreateEndpoint where
  toQuery :: CreateEndpoint -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- |
--
-- /See:/ 'newCreateEndpointResponse' smart constructor.
data CreateEndpointResponse = CreateEndpointResponse'
  { -- | The endpoint that was created.
    CreateEndpointResponse -> Maybe Endpoint
endpoint :: Prelude.Maybe Endpoint,
    -- | The response's http status code.
    CreateEndpointResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (CreateEndpointResponse -> CreateEndpointResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateEndpointResponse -> CreateEndpointResponse -> Bool
$c/= :: CreateEndpointResponse -> CreateEndpointResponse -> Bool
== :: CreateEndpointResponse -> CreateEndpointResponse -> Bool
$c== :: CreateEndpointResponse -> CreateEndpointResponse -> Bool
Prelude.Eq, Int -> CreateEndpointResponse -> ShowS
[CreateEndpointResponse] -> ShowS
CreateEndpointResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateEndpointResponse] -> ShowS
$cshowList :: [CreateEndpointResponse] -> ShowS
show :: CreateEndpointResponse -> String
$cshow :: CreateEndpointResponse -> String
showsPrec :: Int -> CreateEndpointResponse -> ShowS
$cshowsPrec :: Int -> CreateEndpointResponse -> ShowS
Prelude.Show, forall x. Rep CreateEndpointResponse x -> CreateEndpointResponse
forall x. CreateEndpointResponse -> Rep CreateEndpointResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateEndpointResponse x -> CreateEndpointResponse
$cfrom :: forall x. CreateEndpointResponse -> Rep CreateEndpointResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateEndpointResponse' 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:
--
-- 'endpoint', 'createEndpointResponse_endpoint' - The endpoint that was created.
--
-- 'httpStatus', 'createEndpointResponse_httpStatus' - The response's http status code.
newCreateEndpointResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateEndpointResponse
newCreateEndpointResponse :: Int -> CreateEndpointResponse
newCreateEndpointResponse Int
pHttpStatus_ =
  CreateEndpointResponse'
    { $sel:endpoint:CreateEndpointResponse' :: Maybe Endpoint
endpoint = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:CreateEndpointResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The endpoint that was created.
createEndpointResponse_endpoint :: Lens.Lens' CreateEndpointResponse (Prelude.Maybe Endpoint)
createEndpointResponse_endpoint :: Lens' CreateEndpointResponse (Maybe Endpoint)
createEndpointResponse_endpoint = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEndpointResponse' {Maybe Endpoint
endpoint :: Maybe Endpoint
$sel:endpoint:CreateEndpointResponse' :: CreateEndpointResponse -> Maybe Endpoint
endpoint} -> Maybe Endpoint
endpoint) (\s :: CreateEndpointResponse
s@CreateEndpointResponse' {} Maybe Endpoint
a -> CreateEndpointResponse
s {$sel:endpoint:CreateEndpointResponse' :: Maybe Endpoint
endpoint = Maybe Endpoint
a} :: CreateEndpointResponse)

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

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