software.amazon.awssdk.services.databasemigration.model.Endpoint Maven / Gradle / Ivy
Show all versions of dms Show documentation
/*
* Copyright 2012-2017 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.
*/
package software.amazon.awssdk.services.databasemigration.model;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Consumer;
import javax.annotation.Generated;
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.core.protocol.ProtocolMarshaller;
import software.amazon.awssdk.core.protocol.StructuredPojo;
import software.amazon.awssdk.services.databasemigration.transform.EndpointMarshaller;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*
*/
@Generated("software.amazon.awssdk:codegen")
public class Endpoint implements StructuredPojo, ToCopyableBuilder {
private final String endpointIdentifier;
private final String endpointType;
private final String engineName;
private final String username;
private final String serverName;
private final Integer port;
private final String databaseName;
private final String extraConnectionAttributes;
private final String status;
private final String kmsKeyId;
private final String endpointArn;
private final String certificateArn;
private final String sslMode;
private final String externalId;
private final DynamoDbSettings dynamoDbSettings;
private final S3Settings s3Settings;
private final MongoDbSettings mongoDbSettings;
private Endpoint(BuilderImpl builder) {
this.endpointIdentifier = builder.endpointIdentifier;
this.endpointType = builder.endpointType;
this.engineName = builder.engineName;
this.username = builder.username;
this.serverName = builder.serverName;
this.port = builder.port;
this.databaseName = builder.databaseName;
this.extraConnectionAttributes = builder.extraConnectionAttributes;
this.status = builder.status;
this.kmsKeyId = builder.kmsKeyId;
this.endpointArn = builder.endpointArn;
this.certificateArn = builder.certificateArn;
this.sslMode = builder.sslMode;
this.externalId = builder.externalId;
this.dynamoDbSettings = builder.dynamoDbSettings;
this.s3Settings = builder.s3Settings;
this.mongoDbSettings = builder.mongoDbSettings;
}
/**
*
* The database endpoint identifier. Identifiers must begin with a letter; must contain only ASCII letters, digits,
* and hyphens; and must not end with a hyphen or contain two consecutive hyphens.
*
*
* @return The database endpoint identifier. Identifiers must begin with a letter; must contain only ASCII letters,
* digits, and hyphens; and must not end with a hyphen or contain two consecutive hyphens.
*/
public String endpointIdentifier() {
return endpointIdentifier;
}
/**
*
* The type of endpoint.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #endpointType} will
* return {@link ReplicationEndpointTypeValue#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is
* available from {@link #endpointTypeString}.
*
*
* @return The type of endpoint.
* @see ReplicationEndpointTypeValue
*/
public ReplicationEndpointTypeValue endpointType() {
return ReplicationEndpointTypeValue.fromValue(endpointType);
}
/**
*
* The type of endpoint.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #endpointType} will
* return {@link ReplicationEndpointTypeValue#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is
* available from {@link #endpointTypeString}.
*
*
* @return The type of endpoint.
* @see ReplicationEndpointTypeValue
*/
public String endpointTypeString() {
return endpointType;
}
/**
*
* The database engine name. Valid values, depending on the EndPointType, include MYSQL, ORACLE, POSTGRES, MARIADB,
* AURORA, REDSHIFT, S3, SYBASE, DYNAMODB, MONGODB, and SQLSERVER.
*
*
* @return The database engine name. Valid values, depending on the EndPointType, include MYSQL, ORACLE, POSTGRES,
* MARIADB, AURORA, REDSHIFT, S3, SYBASE, DYNAMODB, MONGODB, and SQLSERVER.
*/
public String engineName() {
return engineName;
}
/**
*
* The user name used to connect to the endpoint.
*
*
* @return The user name used to connect to the endpoint.
*/
public String username() {
return username;
}
/**
*
* The name of the server at the endpoint.
*
*
* @return The name of the server at the endpoint.
*/
public String serverName() {
return serverName;
}
/**
*
* The port value used to access the endpoint.
*
*
* @return The port value used to access the endpoint.
*/
public Integer port() {
return port;
}
/**
*
* The name of the database at the endpoint.
*
*
* @return The name of the database at the endpoint.
*/
public String databaseName() {
return databaseName;
}
/**
*
* Additional connection attributes used to connect to the endpoint.
*
*
* @return Additional connection attributes used to connect to the endpoint.
*/
public String extraConnectionAttributes() {
return extraConnectionAttributes;
}
/**
*
* The status of the endpoint.
*
*
* @return The status of the endpoint.
*/
public String status() {
return status;
}
/**
*
* The KMS key identifier that will be used to encrypt the connection parameters. If you do not specify a value for
* the KmsKeyId parameter, then AWS DMS will use your default encryption key. AWS KMS creates the default encryption
* key for your AWS account. Your AWS account has a different default encryption key for each AWS region.
*
*
* @return The KMS key identifier that will be used to encrypt the connection parameters. If you do not specify a
* value for the KmsKeyId parameter, then AWS DMS will use your default encryption key. AWS KMS creates the
* default encryption key for your AWS account. Your AWS account has a different default encryption key for
* each AWS region.
*/
public String kmsKeyId() {
return kmsKeyId;
}
/**
*
* The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.
*
*
* @return The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.
*/
public String endpointArn() {
return endpointArn;
}
/**
*
* The Amazon Resource Name (ARN) used for SSL connection to the endpoint.
*
*
* @return The Amazon Resource Name (ARN) used for SSL connection to the endpoint.
*/
public String certificateArn() {
return certificateArn;
}
/**
*
* The SSL mode used to connect to the endpoint.
*
*
* SSL mode can be one of four values: none, require, verify-ca, verify-full.
*
*
* The default value is none.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #sslMode} will
* return {@link DmsSslModeValue#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #sslModeString}.
*
*
* @return The SSL mode used to connect to the endpoint.
*
* SSL mode can be one of four values: none, require, verify-ca, verify-full.
*
*
* The default value is none.
* @see DmsSslModeValue
*/
public DmsSslModeValue sslMode() {
return DmsSslModeValue.fromValue(sslMode);
}
/**
*
* The SSL mode used to connect to the endpoint.
*
*
* SSL mode can be one of four values: none, require, verify-ca, verify-full.
*
*
* The default value is none.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #sslMode} will
* return {@link DmsSslModeValue#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #sslModeString}.
*
*
* @return The SSL mode used to connect to the endpoint.
*
* SSL mode can be one of four values: none, require, verify-ca, verify-full.
*
*
* The default value is none.
* @see DmsSslModeValue
*/
public String sslModeString() {
return sslMode;
}
/**
*
* Value returned by a call to CreateEndpoint that can be used for cross-account validation. Use it on a subsequent
* call to CreateEndpoint to create the endpoint with a cross-account.
*
*
* @return Value returned by a call to CreateEndpoint that can be used for cross-account validation. Use it on a
* subsequent call to CreateEndpoint to create the endpoint with a cross-account.
*/
public String externalId() {
return externalId;
}
/**
*
* The settings for the target DynamoDB database. For more information, see the DynamoDBSettings
* structure.
*
*
* @return The settings for the target DynamoDB database. For more information, see the
* DynamoDBSettings
structure.
*/
public DynamoDbSettings dynamoDbSettings() {
return dynamoDbSettings;
}
/**
*
* The settings for the S3 target endpoint. For more information, see the S3Settings
structure.
*
*
* @return The settings for the S3 target endpoint. For more information, see the S3Settings
structure.
*/
public S3Settings s3Settings() {
return s3Settings;
}
/**
*
* The settings for the MongoDB source endpoint. For more information, see the MongoDbSettings
* structure.
*
*
* @return The settings for the MongoDB source endpoint. For more information, see the MongoDbSettings
* structure.
*/
public MongoDbSettings mongoDbSettings() {
return mongoDbSettings;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class extends Builder> serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + Objects.hashCode(endpointIdentifier());
hashCode = 31 * hashCode + Objects.hashCode(endpointTypeString());
hashCode = 31 * hashCode + Objects.hashCode(engineName());
hashCode = 31 * hashCode + Objects.hashCode(username());
hashCode = 31 * hashCode + Objects.hashCode(serverName());
hashCode = 31 * hashCode + Objects.hashCode(port());
hashCode = 31 * hashCode + Objects.hashCode(databaseName());
hashCode = 31 * hashCode + Objects.hashCode(extraConnectionAttributes());
hashCode = 31 * hashCode + Objects.hashCode(status());
hashCode = 31 * hashCode + Objects.hashCode(kmsKeyId());
hashCode = 31 * hashCode + Objects.hashCode(endpointArn());
hashCode = 31 * hashCode + Objects.hashCode(certificateArn());
hashCode = 31 * hashCode + Objects.hashCode(sslModeString());
hashCode = 31 * hashCode + Objects.hashCode(externalId());
hashCode = 31 * hashCode + Objects.hashCode(dynamoDbSettings());
hashCode = 31 * hashCode + Objects.hashCode(s3Settings());
hashCode = 31 * hashCode + Objects.hashCode(mongoDbSettings());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof Endpoint)) {
return false;
}
Endpoint other = (Endpoint) obj;
return Objects.equals(endpointIdentifier(), other.endpointIdentifier())
&& Objects.equals(endpointTypeString(), other.endpointTypeString())
&& Objects.equals(engineName(), other.engineName()) && Objects.equals(username(), other.username())
&& Objects.equals(serverName(), other.serverName()) && Objects.equals(port(), other.port())
&& Objects.equals(databaseName(), other.databaseName())
&& Objects.equals(extraConnectionAttributes(), other.extraConnectionAttributes())
&& Objects.equals(status(), other.status()) && Objects.equals(kmsKeyId(), other.kmsKeyId())
&& Objects.equals(endpointArn(), other.endpointArn()) && Objects.equals(certificateArn(), other.certificateArn())
&& Objects.equals(sslModeString(), other.sslModeString()) && Objects.equals(externalId(), other.externalId())
&& Objects.equals(dynamoDbSettings(), other.dynamoDbSettings())
&& Objects.equals(s3Settings(), other.s3Settings()) && Objects.equals(mongoDbSettings(), other.mongoDbSettings());
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder("{");
if (endpointIdentifier() != null) {
sb.append("EndpointIdentifier: ").append(endpointIdentifier()).append(",");
}
if (endpointTypeString() != null) {
sb.append("EndpointType: ").append(endpointTypeString()).append(",");
}
if (engineName() != null) {
sb.append("EngineName: ").append(engineName()).append(",");
}
if (username() != null) {
sb.append("Username: ").append(username()).append(",");
}
if (serverName() != null) {
sb.append("ServerName: ").append(serverName()).append(",");
}
if (port() != null) {
sb.append("Port: ").append(port()).append(",");
}
if (databaseName() != null) {
sb.append("DatabaseName: ").append(databaseName()).append(",");
}
if (extraConnectionAttributes() != null) {
sb.append("ExtraConnectionAttributes: ").append(extraConnectionAttributes()).append(",");
}
if (status() != null) {
sb.append("Status: ").append(status()).append(",");
}
if (kmsKeyId() != null) {
sb.append("KmsKeyId: ").append(kmsKeyId()).append(",");
}
if (endpointArn() != null) {
sb.append("EndpointArn: ").append(endpointArn()).append(",");
}
if (certificateArn() != null) {
sb.append("CertificateArn: ").append(certificateArn()).append(",");
}
if (sslModeString() != null) {
sb.append("SslMode: ").append(sslModeString()).append(",");
}
if (externalId() != null) {
sb.append("ExternalId: ").append(externalId()).append(",");
}
if (dynamoDbSettings() != null) {
sb.append("DynamoDbSettings: ").append(dynamoDbSettings()).append(",");
}
if (s3Settings() != null) {
sb.append("S3Settings: ").append(s3Settings()).append(",");
}
if (mongoDbSettings() != null) {
sb.append("MongoDbSettings: ").append(mongoDbSettings()).append(",");
}
if (sb.length() > 1) {
sb.setLength(sb.length() - 1);
}
sb.append("}");
return sb.toString();
}
public Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "EndpointIdentifier":
return Optional.of(clazz.cast(endpointIdentifier()));
case "EndpointType":
return Optional.of(clazz.cast(endpointTypeString()));
case "EngineName":
return Optional.of(clazz.cast(engineName()));
case "Username":
return Optional.of(clazz.cast(username()));
case "ServerName":
return Optional.of(clazz.cast(serverName()));
case "Port":
return Optional.of(clazz.cast(port()));
case "DatabaseName":
return Optional.of(clazz.cast(databaseName()));
case "ExtraConnectionAttributes":
return Optional.of(clazz.cast(extraConnectionAttributes()));
case "Status":
return Optional.of(clazz.cast(status()));
case "KmsKeyId":
return Optional.of(clazz.cast(kmsKeyId()));
case "EndpointArn":
return Optional.of(clazz.cast(endpointArn()));
case "CertificateArn":
return Optional.of(clazz.cast(certificateArn()));
case "SslMode":
return Optional.of(clazz.cast(sslModeString()));
case "ExternalId":
return Optional.of(clazz.cast(externalId()));
case "DynamoDbSettings":
return Optional.of(clazz.cast(dynamoDbSettings()));
case "S3Settings":
return Optional.of(clazz.cast(s3Settings()));
case "MongoDbSettings":
return Optional.of(clazz.cast(mongoDbSettings()));
default:
return Optional.empty();
}
}
@SdkInternalApi
@Override
public void marshall(ProtocolMarshaller protocolMarshaller) {
EndpointMarshaller.getInstance().marshall(this, protocolMarshaller);
}
public interface Builder extends CopyableBuilder {
/**
*
* The database endpoint identifier. Identifiers must begin with a letter; must contain only ASCII letters,
* digits, and hyphens; and must not end with a hyphen or contain two consecutive hyphens.
*
*
* @param endpointIdentifier
* The database endpoint identifier. Identifiers must begin with a letter; must contain only ASCII
* letters, digits, and hyphens; and must not end with a hyphen or contain two consecutive hyphens.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder endpointIdentifier(String endpointIdentifier);
/**
*
* The type of endpoint.
*
*
* @param endpointType
* The type of endpoint.
* @see ReplicationEndpointTypeValue
* @return Returns a reference to this object so that method calls can be chained together.
* @see ReplicationEndpointTypeValue
*/
Builder endpointType(String endpointType);
/**
*
* The type of endpoint.
*
*
* @param endpointType
* The type of endpoint.
* @see ReplicationEndpointTypeValue
* @return Returns a reference to this object so that method calls can be chained together.
* @see ReplicationEndpointTypeValue
*/
Builder endpointType(ReplicationEndpointTypeValue endpointType);
/**
*
* The database engine name. Valid values, depending on the EndPointType, include MYSQL, ORACLE, POSTGRES,
* MARIADB, AURORA, REDSHIFT, S3, SYBASE, DYNAMODB, MONGODB, and SQLSERVER.
*
*
* @param engineName
* The database engine name. Valid values, depending on the EndPointType, include MYSQL, ORACLE,
* POSTGRES, MARIADB, AURORA, REDSHIFT, S3, SYBASE, DYNAMODB, MONGODB, and SQLSERVER.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder engineName(String engineName);
/**
*
* The user name used to connect to the endpoint.
*
*
* @param username
* The user name used to connect to the endpoint.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder username(String username);
/**
*
* The name of the server at the endpoint.
*
*
* @param serverName
* The name of the server at the endpoint.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder serverName(String serverName);
/**
*
* The port value used to access the endpoint.
*
*
* @param port
* The port value used to access the endpoint.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder port(Integer port);
/**
*
* The name of the database at the endpoint.
*
*
* @param databaseName
* The name of the database at the endpoint.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder databaseName(String databaseName);
/**
*
* Additional connection attributes used to connect to the endpoint.
*
*
* @param extraConnectionAttributes
* Additional connection attributes used to connect to the endpoint.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder extraConnectionAttributes(String extraConnectionAttributes);
/**
*
* The status of the endpoint.
*
*
* @param status
* The status of the endpoint.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder status(String status);
/**
*
* The KMS key identifier that will be used to encrypt the connection parameters. If you do not specify a value
* for the KmsKeyId parameter, then AWS DMS will use your default encryption key. AWS KMS creates the default
* encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS
* region.
*
*
* @param kmsKeyId
* The KMS key identifier that will be used to encrypt the connection parameters. If you do not specify a
* value for the KmsKeyId parameter, then AWS DMS will use your default encryption key. AWS KMS creates
* the default encryption key for your AWS account. Your AWS account has a different default encryption
* key for each AWS region.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder kmsKeyId(String kmsKeyId);
/**
*
* The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.
*
*
* @param endpointArn
* The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder endpointArn(String endpointArn);
/**
*
* The Amazon Resource Name (ARN) used for SSL connection to the endpoint.
*
*
* @param certificateArn
* The Amazon Resource Name (ARN) used for SSL connection to the endpoint.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder certificateArn(String certificateArn);
/**
*
* The SSL mode used to connect to the endpoint.
*
*
* SSL mode can be one of four values: none, require, verify-ca, verify-full.
*
*
* The default value is none.
*
*
* @param sslMode
* The SSL mode used to connect to the endpoint.
*
* SSL mode can be one of four values: none, require, verify-ca, verify-full.
*
*
* The default value is none.
* @see DmsSslModeValue
* @return Returns a reference to this object so that method calls can be chained together.
* @see DmsSslModeValue
*/
Builder sslMode(String sslMode);
/**
*
* The SSL mode used to connect to the endpoint.
*
*
* SSL mode can be one of four values: none, require, verify-ca, verify-full.
*
*
* The default value is none.
*
*
* @param sslMode
* The SSL mode used to connect to the endpoint.
*
* SSL mode can be one of four values: none, require, verify-ca, verify-full.
*
*
* The default value is none.
* @see DmsSslModeValue
* @return Returns a reference to this object so that method calls can be chained together.
* @see DmsSslModeValue
*/
Builder sslMode(DmsSslModeValue sslMode);
/**
*
* Value returned by a call to CreateEndpoint that can be used for cross-account validation. Use it on a
* subsequent call to CreateEndpoint to create the endpoint with a cross-account.
*
*
* @param externalId
* Value returned by a call to CreateEndpoint that can be used for cross-account validation. Use it on a
* subsequent call to CreateEndpoint to create the endpoint with a cross-account.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder externalId(String externalId);
/**
*
* The settings for the target DynamoDB database. For more information, see the DynamoDBSettings
* structure.
*
*
* @param dynamoDbSettings
* The settings for the target DynamoDB database. For more information, see the
* DynamoDBSettings
structure.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder dynamoDbSettings(DynamoDbSettings dynamoDbSettings);
/**
*
* The settings for the target DynamoDB database. For more information, see the DynamoDBSettings
* structure.
*
* This is a convenience that creates an instance of the {@link DynamoDbSettings.Builder} avoiding the need to
* create one manually via {@link DynamoDbSettings#builder()}.
*
* When the {@link Consumer} completes, {@link DynamoDbSettings.Builder#build()} is called immediately and its
* result is passed to {@link #dynamoDbSettings(DynamoDbSettings)}.
*
* @param dynamoDbSettings
* a consumer that will call methods on {@link DynamoDbSettings.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #dynamoDbSettings(DynamoDbSettings)
*/
default Builder dynamoDbSettings(Consumer dynamoDbSettings) {
return dynamoDbSettings(DynamoDbSettings.builder().apply(dynamoDbSettings).build());
}
/**
*
* The settings for the S3 target endpoint. For more information, see the S3Settings
structure.
*
*
* @param s3Settings
* The settings for the S3 target endpoint. For more information, see the S3Settings
* structure.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder s3Settings(S3Settings s3Settings);
/**
*
* The settings for the S3 target endpoint. For more information, see the S3Settings
structure.
*
* This is a convenience that creates an instance of the {@link S3Settings.Builder} avoiding the need to create
* one manually via {@link S3Settings#builder()}.
*
* When the {@link Consumer} completes, {@link S3Settings.Builder#build()} is called immediately and its result
* is passed to {@link #s3Settings(S3Settings)}.
*
* @param s3Settings
* a consumer that will call methods on {@link S3Settings.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #s3Settings(S3Settings)
*/
default Builder s3Settings(Consumer s3Settings) {
return s3Settings(S3Settings.builder().apply(s3Settings).build());
}
/**
*
* The settings for the MongoDB source endpoint. For more information, see the MongoDbSettings
* structure.
*
*
* @param mongoDbSettings
* The settings for the MongoDB source endpoint. For more information, see the
* MongoDbSettings
structure.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder mongoDbSettings(MongoDbSettings mongoDbSettings);
/**
*
* The settings for the MongoDB source endpoint. For more information, see the MongoDbSettings
* structure.
*
* This is a convenience that creates an instance of the {@link MongoDbSettings.Builder} avoiding the need to
* create one manually via {@link MongoDbSettings#builder()}.
*
* When the {@link Consumer} completes, {@link MongoDbSettings.Builder#build()} is called immediately and its
* result is passed to {@link #mongoDbSettings(MongoDbSettings)}.
*
* @param mongoDbSettings
* a consumer that will call methods on {@link MongoDbSettings.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #mongoDbSettings(MongoDbSettings)
*/
default Builder mongoDbSettings(Consumer mongoDbSettings) {
return mongoDbSettings(MongoDbSettings.builder().apply(mongoDbSettings).build());
}
}
static final class BuilderImpl implements Builder {
private String endpointIdentifier;
private String endpointType;
private String engineName;
private String username;
private String serverName;
private Integer port;
private String databaseName;
private String extraConnectionAttributes;
private String status;
private String kmsKeyId;
private String endpointArn;
private String certificateArn;
private String sslMode;
private String externalId;
private DynamoDbSettings dynamoDbSettings;
private S3Settings s3Settings;
private MongoDbSettings mongoDbSettings;
private BuilderImpl() {
}
private BuilderImpl(Endpoint model) {
endpointIdentifier(model.endpointIdentifier);
endpointType(model.endpointType);
engineName(model.engineName);
username(model.username);
serverName(model.serverName);
port(model.port);
databaseName(model.databaseName);
extraConnectionAttributes(model.extraConnectionAttributes);
status(model.status);
kmsKeyId(model.kmsKeyId);
endpointArn(model.endpointArn);
certificateArn(model.certificateArn);
sslMode(model.sslMode);
externalId(model.externalId);
dynamoDbSettings(model.dynamoDbSettings);
s3Settings(model.s3Settings);
mongoDbSettings(model.mongoDbSettings);
}
public final String getEndpointIdentifier() {
return endpointIdentifier;
}
@Override
public final Builder endpointIdentifier(String endpointIdentifier) {
this.endpointIdentifier = endpointIdentifier;
return this;
}
public final void setEndpointIdentifier(String endpointIdentifier) {
this.endpointIdentifier = endpointIdentifier;
}
public final String getEndpointType() {
return endpointType;
}
@Override
public final Builder endpointType(String endpointType) {
this.endpointType = endpointType;
return this;
}
@Override
public final Builder endpointType(ReplicationEndpointTypeValue endpointType) {
this.endpointType(endpointType.toString());
return this;
}
public final void setEndpointType(String endpointType) {
this.endpointType = endpointType;
}
public final String getEngineName() {
return engineName;
}
@Override
public final Builder engineName(String engineName) {
this.engineName = engineName;
return this;
}
public final void setEngineName(String engineName) {
this.engineName = engineName;
}
public final String getUsername() {
return username;
}
@Override
public final Builder username(String username) {
this.username = username;
return this;
}
public final void setUsername(String username) {
this.username = username;
}
public final String getServerName() {
return serverName;
}
@Override
public final Builder serverName(String serverName) {
this.serverName = serverName;
return this;
}
public final void setServerName(String serverName) {
this.serverName = serverName;
}
public final Integer getPort() {
return port;
}
@Override
public final Builder port(Integer port) {
this.port = port;
return this;
}
public final void setPort(Integer port) {
this.port = port;
}
public final String getDatabaseName() {
return databaseName;
}
@Override
public final Builder databaseName(String databaseName) {
this.databaseName = databaseName;
return this;
}
public final void setDatabaseName(String databaseName) {
this.databaseName = databaseName;
}
public final String getExtraConnectionAttributes() {
return extraConnectionAttributes;
}
@Override
public final Builder extraConnectionAttributes(String extraConnectionAttributes) {
this.extraConnectionAttributes = extraConnectionAttributes;
return this;
}
public final void setExtraConnectionAttributes(String extraConnectionAttributes) {
this.extraConnectionAttributes = extraConnectionAttributes;
}
public final String getStatus() {
return status;
}
@Override
public final Builder status(String status) {
this.status = status;
return this;
}
public final void setStatus(String status) {
this.status = status;
}
public final String getKmsKeyId() {
return kmsKeyId;
}
@Override
public final Builder kmsKeyId(String kmsKeyId) {
this.kmsKeyId = kmsKeyId;
return this;
}
public final void setKmsKeyId(String kmsKeyId) {
this.kmsKeyId = kmsKeyId;
}
public final String getEndpointArn() {
return endpointArn;
}
@Override
public final Builder endpointArn(String endpointArn) {
this.endpointArn = endpointArn;
return this;
}
public final void setEndpointArn(String endpointArn) {
this.endpointArn = endpointArn;
}
public final String getCertificateArn() {
return certificateArn;
}
@Override
public final Builder certificateArn(String certificateArn) {
this.certificateArn = certificateArn;
return this;
}
public final void setCertificateArn(String certificateArn) {
this.certificateArn = certificateArn;
}
public final String getSslMode() {
return sslMode;
}
@Override
public final Builder sslMode(String sslMode) {
this.sslMode = sslMode;
return this;
}
@Override
public final Builder sslMode(DmsSslModeValue sslMode) {
this.sslMode(sslMode.toString());
return this;
}
public final void setSslMode(String sslMode) {
this.sslMode = sslMode;
}
public final String getExternalId() {
return externalId;
}
@Override
public final Builder externalId(String externalId) {
this.externalId = externalId;
return this;
}
public final void setExternalId(String externalId) {
this.externalId = externalId;
}
public final DynamoDbSettings.Builder getDynamoDbSettings() {
return dynamoDbSettings != null ? dynamoDbSettings.toBuilder() : null;
}
@Override
public final Builder dynamoDbSettings(DynamoDbSettings dynamoDbSettings) {
this.dynamoDbSettings = dynamoDbSettings;
return this;
}
public final void setDynamoDbSettings(DynamoDbSettings.BuilderImpl dynamoDbSettings) {
this.dynamoDbSettings = dynamoDbSettings != null ? dynamoDbSettings.build() : null;
}
public final S3Settings.Builder getS3Settings() {
return s3Settings != null ? s3Settings.toBuilder() : null;
}
@Override
public final Builder s3Settings(S3Settings s3Settings) {
this.s3Settings = s3Settings;
return this;
}
public final void setS3Settings(S3Settings.BuilderImpl s3Settings) {
this.s3Settings = s3Settings != null ? s3Settings.build() : null;
}
public final MongoDbSettings.Builder getMongoDbSettings() {
return mongoDbSettings != null ? mongoDbSettings.toBuilder() : null;
}
@Override
public final Builder mongoDbSettings(MongoDbSettings mongoDbSettings) {
this.mongoDbSettings = mongoDbSettings;
return this;
}
public final void setMongoDbSettings(MongoDbSettings.BuilderImpl mongoDbSettings) {
this.mongoDbSettings = mongoDbSettings != null ? mongoDbSettings.build() : null;
}
@Override
public Endpoint build() {
return new Endpoint(this);
}
}
}