/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the dms-2016-01-01.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.DatabaseMigrationService.Model
{
///
/// Container for the parameters to the CreateEndpoint operation.
/// 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.
///
///
///
public partial class CreateEndpointRequest : AmazonDatabaseMigrationServiceRequest
{
private string _certificateArn;
private string _databaseName;
private DmsTransferSettings _dmsTransferSettings;
private DocDbSettings _docDbSettings;
private DynamoDbSettings _dynamoDbSettings;
private ElasticsearchSettings _elasticsearchSettings;
private string _endpointIdentifier;
private ReplicationEndpointTypeValue _endpointType;
private string _engineName;
private string _externalTableDefinition;
private string _extraConnectionAttributes;
private GcpMySQLSettings _gcpMySQLSettings;
private IBMDb2Settings _ibmDb2Settings;
private KafkaSettings _kafkaSettings;
private KinesisSettings _kinesisSettings;
private string _kmsKeyId;
private MicrosoftSQLServerSettings _microsoftSQLServerSettings;
private MongoDbSettings _mongoDbSettings;
private MySQLSettings _mySQLSettings;
private NeptuneSettings _neptuneSettings;
private OracleSettings _oracleSettings;
private string _password;
private int? _port;
private PostgreSQLSettings _postgreSQLSettings;
private RedisSettings _redisSettings;
private RedshiftSettings _redshiftSettings;
private string _resourceIdentifier;
private S3Settings _s3Settings;
private string _serverName;
private string _serviceAccessRoleArn;
private DmsSslModeValue _sslMode;
private SybaseSettings _sybaseSettings;
private List _tags = new List();
private TimestreamSettings _timestreamSettings;
private string _username;
///
/// Gets and sets the property CertificateArn.
///
/// The Amazon Resource Name (ARN) for the certificate.
///
///
public string CertificateArn
{
get { return this._certificateArn; }
set { this._certificateArn = value; }
}
// Check to see if CertificateArn property is set
internal bool IsSetCertificateArn()
{
return this._certificateArn != null;
}
///
/// Gets and sets the property 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
.
///
///
public string DatabaseName
{
get { return this._databaseName; }
set { this._databaseName = value; }
}
// Check to see if DatabaseName property is set
internal bool IsSetDatabaseName()
{
return this._databaseName != null;
}
///
/// Gets and sets the property 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", }
///
///
public DmsTransferSettings DmsTransferSettings
{
get { return this._dmsTransferSettings; }
set { this._dmsTransferSettings = value; }
}
// Check to see if DmsTransferSettings property is set
internal bool IsSetDmsTransferSettings()
{
return this._dmsTransferSettings != null;
}
///
/// Gets and sets the property DocDbSettings.
///
public DocDbSettings DocDbSettings
{
get { return this._docDbSettings; }
set { this._docDbSettings = value; }
}
// Check to see if DocDbSettings property is set
internal bool IsSetDocDbSettings()
{
return this._docDbSettings != null;
}
///
/// Gets and sets the property DynamoDbSettings.
///
/// Settings in JSON format for the target Amazon DynamoDB endpoint. For information about
/// other available settings, see Using
/// Object Mapping to Migrate Data to DynamoDB in the Database Migration Service
/// User Guide.
///
///
public DynamoDbSettings DynamoDbSettings
{
get { return this._dynamoDbSettings; }
set { this._dynamoDbSettings = value; }
}
// Check to see if DynamoDbSettings property is set
internal bool IsSetDynamoDbSettings()
{
return this._dynamoDbSettings != null;
}
///
/// Gets and sets the property ElasticsearchSettings.
///
/// Settings in JSON format for the target OpenSearch endpoint. For more information about
/// the available settings, see Extra
/// Connection Attributes When Using OpenSearch as a Target for DMS in the Database
/// Migration Service User Guide.
///
///
public ElasticsearchSettings ElasticsearchSettings
{
get { return this._elasticsearchSettings; }
set { this._elasticsearchSettings = value; }
}
// Check to see if ElasticsearchSettings property is set
internal bool IsSetElasticsearchSettings()
{
return this._elasticsearchSettings != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Required=true)]
public string EndpointIdentifier
{
get { return this._endpointIdentifier; }
set { this._endpointIdentifier = value; }
}
// Check to see if EndpointIdentifier property is set
internal bool IsSetEndpointIdentifier()
{
return this._endpointIdentifier != null;
}
///
/// Gets and sets the property EndpointType.
///
/// The type of endpoint. Valid values are source
and target
.
///
///
[AWSProperty(Required=true)]
public ReplicationEndpointTypeValue EndpointType
{
get { return this._endpointType; }
set { this._endpointType = value; }
}
// Check to see if EndpointType property is set
internal bool IsSetEndpointType()
{
return this._endpointType != null;
}
///
/// Gets and sets the property 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"
.
///
///
[AWSProperty(Required=true)]
public string EngineName
{
get { return this._engineName; }
set { this._engineName = value; }
}
// Check to see if EngineName property is set
internal bool IsSetEngineName()
{
return this._engineName != null;
}
///
/// Gets and sets the property ExternalTableDefinition.
///
/// The external table definition.
///
///
public string ExternalTableDefinition
{
get { return this._externalTableDefinition; }
set { this._externalTableDefinition = value; }
}
// Check to see if ExternalTableDefinition property is set
internal bool IsSetExternalTableDefinition()
{
return this._externalTableDefinition != null;
}
///
/// Gets and sets the property 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 Working
/// with DMS Endpoints in the Database Migration Service User Guide.
///
///
public string ExtraConnectionAttributes
{
get { return this._extraConnectionAttributes; }
set { this._extraConnectionAttributes = value; }
}
// Check to see if ExtraConnectionAttributes property is set
internal bool IsSetExtraConnectionAttributes()
{
return this._extraConnectionAttributes != null;
}
///
/// Gets and sets the property GcpMySQLSettings.
///
/// Settings in JSON format for the source GCP MySQL endpoint.
///
///
public GcpMySQLSettings GcpMySQLSettings
{
get { return this._gcpMySQLSettings; }
set { this._gcpMySQLSettings = value; }
}
// Check to see if GcpMySQLSettings property is set
internal bool IsSetGcpMySQLSettings()
{
return this._gcpMySQLSettings != null;
}
///
/// Gets and sets the property IBMDb2Settings.
///
/// Settings in JSON format for the source IBM Db2 LUW endpoint. For information about
/// other available settings, see Extra
/// connection attributes when using Db2 LUW as a source for DMS in the Database
/// Migration Service User Guide.
///
///
public IBMDb2Settings IBMDb2Settings
{
get { return this._ibmDb2Settings; }
set { this._ibmDb2Settings = value; }
}
// Check to see if IBMDb2Settings property is set
internal bool IsSetIBMDb2Settings()
{
return this._ibmDb2Settings != null;
}
///
/// Gets and sets the property KafkaSettings.
///
/// Settings in JSON format for the target Apache Kafka endpoint. For more information
/// about the available settings, see Using
/// object mapping to migrate data to a Kafka topic in the Database Migration Service
/// User Guide.
///
///
public KafkaSettings KafkaSettings
{
get { return this._kafkaSettings; }
set { this._kafkaSettings = value; }
}
// Check to see if KafkaSettings property is set
internal bool IsSetKafkaSettings()
{
return this._kafkaSettings != null;
}
///
/// Gets and sets the property KinesisSettings.
///
/// Settings in JSON format for the target endpoint for Amazon Kinesis Data Streams. For
/// more information about the available settings, see Using
/// object mapping to migrate data to a Kinesis data stream in the Database Migration
/// Service User Guide.
///
///
public KinesisSettings KinesisSettings
{
get { return this._kinesisSettings; }
set { this._kinesisSettings = value; }
}
// Check to see if KinesisSettings property is set
internal bool IsSetKinesisSettings()
{
return this._kinesisSettings != null;
}
///
/// Gets and sets the property 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.
///
///
public string KmsKeyId
{
get { return this._kmsKeyId; }
set { this._kmsKeyId = value; }
}
// Check to see if KmsKeyId property is set
internal bool IsSetKmsKeyId()
{
return this._kmsKeyId != null;
}
///
/// Gets and sets the property MicrosoftSQLServerSettings.
///
/// Settings in JSON format for the source and target Microsoft SQL Server endpoint. For
/// information about other available settings, see Extra
/// connection attributes when using SQL Server as a source for DMS and
/// Extra connection attributes when using SQL Server as a target for DMS in the Database
/// Migration Service User Guide.
///
///
public MicrosoftSQLServerSettings MicrosoftSQLServerSettings
{
get { return this._microsoftSQLServerSettings; }
set { this._microsoftSQLServerSettings = value; }
}
// Check to see if MicrosoftSQLServerSettings property is set
internal bool IsSetMicrosoftSQLServerSettings()
{
return this._microsoftSQLServerSettings != null;
}
///
/// Gets and sets the property MongoDbSettings.
///
/// Settings in JSON format for the source MongoDB endpoint. For more information about
/// the available settings, see Endpoint
/// configuration settings when using MongoDB as a source for Database Migration Service
/// in the Database Migration Service User Guide.
///
///
public MongoDbSettings MongoDbSettings
{
get { return this._mongoDbSettings; }
set { this._mongoDbSettings = value; }
}
// Check to see if MongoDbSettings property is set
internal bool IsSetMongoDbSettings()
{
return this._mongoDbSettings != null;
}
///
/// Gets and sets the property MySQLSettings.
///
/// Settings in JSON format for the source and target MySQL endpoint. For information
/// about other available settings, see Extra
/// connection attributes when using MySQL as a source for DMS and Extra
/// connection attributes when using a MySQL-compatible database as a target for DMS
/// in the Database Migration Service User Guide.
///
///
public MySQLSettings MySQLSettings
{
get { return this._mySQLSettings; }
set { this._mySQLSettings = value; }
}
// Check to see if MySQLSettings property is set
internal bool IsSetMySQLSettings()
{
return this._mySQLSettings != null;
}
///
/// Gets and sets the property NeptuneSettings.
///
/// Settings in JSON format for the target Amazon Neptune endpoint. For more information
/// about the available settings, see Specifying
/// graph-mapping rules using Gremlin and R2RML for Amazon Neptune as a target in
/// the Database Migration Service User Guide.
///
///
public NeptuneSettings NeptuneSettings
{
get { return this._neptuneSettings; }
set { this._neptuneSettings = value; }
}
// Check to see if NeptuneSettings property is set
internal bool IsSetNeptuneSettings()
{
return this._neptuneSettings != null;
}
///
/// Gets and sets the property OracleSettings.
///
/// Settings in JSON format for the source and target Oracle endpoint. For information
/// about other available settings, see Extra
/// connection attributes when using Oracle as a source for DMS and
/// Extra connection attributes when using Oracle as a target for DMS in the Database
/// Migration Service User Guide.
///
///
public OracleSettings OracleSettings
{
get { return this._oracleSettings; }
set { this._oracleSettings = value; }
}
// Check to see if OracleSettings property is set
internal bool IsSetOracleSettings()
{
return this._oracleSettings != null;
}
///
/// Gets and sets the property Password.
///
/// The password to be used to log in to the endpoint database.
///
///
[AWSProperty(Sensitive=true)]
public string Password
{
get { return this._password; }
set { this._password = value; }
}
// Check to see if Password property is set
internal bool IsSetPassword()
{
return this._password != null;
}
///
/// Gets and sets the property Port.
///
/// The port used by the endpoint database.
///
///
public int Port
{
get { return this._port.GetValueOrDefault(); }
set { this._port = value; }
}
// Check to see if Port property is set
internal bool IsSetPort()
{
return this._port.HasValue;
}
///
/// Gets and sets the property PostgreSQLSettings.
///
/// Settings in JSON format for the source and target PostgreSQL endpoint. For information
/// about other available settings, see Extra
/// connection attributes when using PostgreSQL as a source for DMS and
/// Extra connection attributes when using PostgreSQL as a target for DMS in the Database
/// Migration Service User Guide.
///
///
public PostgreSQLSettings PostgreSQLSettings
{
get { return this._postgreSQLSettings; }
set { this._postgreSQLSettings = value; }
}
// Check to see if PostgreSQLSettings property is set
internal bool IsSetPostgreSQLSettings()
{
return this._postgreSQLSettings != null;
}
///
/// Gets and sets the property RedisSettings.
///
/// Settings in JSON format for the target Redis endpoint.
///
///
public RedisSettings RedisSettings
{
get { return this._redisSettings; }
set { this._redisSettings = value; }
}
// Check to see if RedisSettings property is set
internal bool IsSetRedisSettings()
{
return this._redisSettings != null;
}
///
/// Gets and sets the property RedshiftSettings.
///
public RedshiftSettings RedshiftSettings
{
get { return this._redshiftSettings; }
set { this._redshiftSettings = value; }
}
// Check to see if RedshiftSettings property is set
internal bool IsSetRedshiftSettings()
{
return this._redshiftSettings != null;
}
///
/// Gets and sets the property 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
.
///
///
public string ResourceIdentifier
{
get { return this._resourceIdentifier; }
set { this._resourceIdentifier = value; }
}
// Check to see if ResourceIdentifier property is set
internal bool IsSetResourceIdentifier()
{
return this._resourceIdentifier != null;
}
///
/// Gets and sets the property S3Settings.
///
/// Settings in JSON format for the target Amazon S3 endpoint. For more information about
/// the available settings, see Extra
/// Connection Attributes When Using Amazon S3 as a Target for DMS in the Database
/// Migration Service User Guide.
///
///
public S3Settings S3Settings
{
get { return this._s3Settings; }
set { this._s3Settings = value; }
}
// Check to see if S3Settings property is set
internal bool IsSetS3Settings()
{
return this._s3Settings != null;
}
///
/// Gets and sets the property ServerName.
///
/// The name of the server where the endpoint database resides.
///
///
public string ServerName
{
get { return this._serverName; }
set { this._serverName = value; }
}
// Check to see if ServerName property is set
internal bool IsSetServerName()
{
return this._serverName != null;
}
///
/// Gets and sets the property 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.
///
///
public string ServiceAccessRoleArn
{
get { return this._serviceAccessRoleArn; }
set { this._serviceAccessRoleArn = value; }
}
// Check to see if ServiceAccessRoleArn property is set
internal bool IsSetServiceAccessRoleArn()
{
return this._serviceAccessRoleArn != null;
}
///
/// Gets and sets the property SslMode.
///
/// The Secure Sockets Layer (SSL) mode to use for the SSL connection. The default is
/// none
///
///
public DmsSslModeValue SslMode
{
get { return this._sslMode; }
set { this._sslMode = value; }
}
// Check to see if SslMode property is set
internal bool IsSetSslMode()
{
return this._sslMode != null;
}
///
/// Gets and sets the property SybaseSettings.
///
/// Settings in JSON format for the source and target SAP ASE endpoint. For information
/// about other available settings, see Extra
/// connection attributes when using SAP ASE as a source for DMS and Extra
/// connection attributes when using SAP ASE as a target for DMS in the Database
/// Migration Service User Guide.
///
///
public SybaseSettings SybaseSettings
{
get { return this._sybaseSettings; }
set { this._sybaseSettings = value; }
}
// Check to see if SybaseSettings property is set
internal bool IsSetSybaseSettings()
{
return this._sybaseSettings != null;
}
///
/// Gets and sets the property Tags.
///
/// One or more tags to be assigned to the endpoint.
///
///
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property TimestreamSettings.
///
/// Settings in JSON format for the target Amazon Timestream endpoint.
///
///
public TimestreamSettings TimestreamSettings
{
get { return this._timestreamSettings; }
set { this._timestreamSettings = value; }
}
// Check to see if TimestreamSettings property is set
internal bool IsSetTimestreamSettings()
{
return this._timestreamSettings != null;
}
///
/// Gets and sets the property Username.
///
/// The user name to be used to log in to the endpoint database.
///
///
public string Username
{
get { return this._username; }
set { this._username = value; }
}
// Check to see if Username property is set
internal bool IsSetUsername()
{
return this._username != null;
}
}
}