software.amazon.awssdk.services.databasemigration.model.CreateEndpointRequest Maven / Gradle / Ivy
Show all versions of dms Show documentation
/*
* Copyright 2013-2018 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.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructList;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*
*/
@Generated("software.amazon.awssdk:codegen")
public final class CreateEndpointRequest extends DatabaseMigrationRequest implements
ToCopyableBuilder {
private final String endpointIdentifier;
private final String endpointType;
private final String engineName;
private final String username;
private final String password;
private final String serverName;
private final Integer port;
private final String databaseName;
private final String extraConnectionAttributes;
private final String kmsKeyId;
private final List tags;
private final String certificateArn;
private final String sslMode;
private final DynamoDbSettings dynamoDbSettings;
private final S3Settings s3Settings;
private final MongoDbSettings mongoDbSettings;
private CreateEndpointRequest(BuilderImpl builder) {
super(builder);
this.endpointIdentifier = builder.endpointIdentifier;
this.endpointType = builder.endpointType;
this.engineName = builder.engineName;
this.username = builder.username;
this.password = builder.password;
this.serverName = builder.serverName;
this.port = builder.port;
this.databaseName = builder.databaseName;
this.extraConnectionAttributes = builder.extraConnectionAttributes;
this.kmsKeyId = builder.kmsKeyId;
this.tags = builder.tags;
this.certificateArn = builder.certificateArn;
this.sslMode = builder.sslMode;
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 #endpointTypeAsString}.
*
*
* @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 #endpointTypeAsString}.
*
*
* @return The type of endpoint.
* @see ReplicationEndpointTypeValue
*/
public String endpointTypeAsString() {
return endpointType;
}
/**
*
* The type of engine for the endpoint. Valid values, depending on the EndPointType, include MYSQL, ORACLE,
* POSTGRES, MARIADB, AURORA, REDSHIFT, S3, SYBASE, DYNAMODB, MONGODB, and SQLSERVER.
*
*
* @return The type of engine for the endpoint. 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 to be used to login to the endpoint database.
*
*
* @return The user name to be used to login to the endpoint database.
*/
public String username() {
return username;
}
/**
*
* The password to be used to login to the endpoint database.
*
*
* @return The password to be used to login to the endpoint database.
*/
public String password() {
return password;
}
/**
*
* The name of the server where the endpoint database resides.
*
*
* @return The name of the server where the endpoint database resides.
*/
public String serverName() {
return serverName;
}
/**
*
* The port used by the endpoint database.
*
*
* @return The port used by the endpoint database.
*/
public Integer port() {
return port;
}
/**
*
* The name of the endpoint database.
*
*
* @return The name of the endpoint database.
*/
public String databaseName() {
return databaseName;
}
/**
*
* Additional attributes associated with the connection.
*
*
* @return Additional attributes associated with the connection.
*/
public String extraConnectionAttributes() {
return extraConnectionAttributes;
}
/**
*
* 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;
}
/**
*
* Tags to be added to the endpoint.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* @return Tags to be added to the endpoint.
*/
public List tags() {
return tags;
}
/**
*
* The Amazon Resource Name (ARN) for the certificate.
*
*
* @return The Amazon Resource Name (ARN) for the certificate.
*/
public String certificateArn() {
return certificateArn;
}
/**
*
* The SSL mode to use for the SSL connection.
*
*
* 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 #sslModeAsString}.
*
*
* @return The SSL mode to use for the SSL connection.
*
* 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 to use for the SSL connection.
*
*
* 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 #sslModeAsString}.
*
*
* @return The SSL mode to use for the SSL connection.
*
* SSL mode can be one of four values: none, require, verify-ca, verify-full.
*
*
* The default value is none.
* @see DmsSslModeValue
*/
public String sslModeAsString() {
return sslMode;
}
/**
*
* Settings in JSON format for the target Amazon DynamoDB endpoint. For more information about the available
* settings, see the Using Object Mapping to Migrate Data to DynamoDB section at Using an Amazon DynamoDB
* Database as a Target for AWS Database Migration Service.
*
*
* @return Settings in JSON format for the target Amazon DynamoDB endpoint. For more information about the available
* settings, see the Using Object Mapping to Migrate Data to DynamoDB section at Using an Amazon
* DynamoDB Database as a Target for AWS Database Migration Service.
*/
public DynamoDbSettings dynamoDbSettings() {
return dynamoDbSettings;
}
/**
*
* Settings in JSON format for the target S3 endpoint. For more information about the available settings, see the
* Extra Connection Attributes section at Using Amazon S3 as a Target for AWS
* Database Migration Service.
*
*
* @return Settings in JSON format for the target S3 endpoint. For more information about the available settings,
* see the Extra Connection Attributes section at Using Amazon S3 as a Target
* for AWS Database Migration Service.
*/
public S3Settings s3Settings() {
return s3Settings;
}
/**
*
* Settings in JSON format for the source MongoDB endpoint. For more information about the available settings, see
* the Configuration Properties When Using MongoDB as a Source for AWS Database Migration Service section at
* Using Amazon S3 as a Target
* for AWS Database Migration Service.
*
*
* @return Settings in JSON format for the source MongoDB endpoint. For more information about the available
* settings, see the Configuration Properties When Using MongoDB as a Source for AWS Database Migration
* Service section at Using Amazon S3 as a
* Target for AWS Database Migration Service.
*/
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(endpointTypeAsString());
hashCode = 31 * hashCode + Objects.hashCode(engineName());
hashCode = 31 * hashCode + Objects.hashCode(username());
hashCode = 31 * hashCode + Objects.hashCode(password());
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(kmsKeyId());
hashCode = 31 * hashCode + Objects.hashCode(tags());
hashCode = 31 * hashCode + Objects.hashCode(certificateArn());
hashCode = 31 * hashCode + Objects.hashCode(sslModeAsString());
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 CreateEndpointRequest)) {
return false;
}
CreateEndpointRequest other = (CreateEndpointRequest) obj;
return Objects.equals(endpointIdentifier(), other.endpointIdentifier())
&& Objects.equals(endpointTypeAsString(), other.endpointTypeAsString())
&& Objects.equals(engineName(), other.engineName()) && Objects.equals(username(), other.username())
&& Objects.equals(password(), other.password()) && Objects.equals(serverName(), other.serverName())
&& Objects.equals(port(), other.port()) && Objects.equals(databaseName(), other.databaseName())
&& Objects.equals(extraConnectionAttributes(), other.extraConnectionAttributes())
&& Objects.equals(kmsKeyId(), other.kmsKeyId()) && Objects.equals(tags(), other.tags())
&& Objects.equals(certificateArn(), other.certificateArn())
&& Objects.equals(sslModeAsString(), other.sslModeAsString())
&& Objects.equals(dynamoDbSettings(), other.dynamoDbSettings())
&& Objects.equals(s3Settings(), other.s3Settings()) && Objects.equals(mongoDbSettings(), other.mongoDbSettings());
}
@Override
public String toString() {
return ToString.builder("CreateEndpointRequest").add("EndpointIdentifier", endpointIdentifier())
.add("EndpointType", endpointTypeAsString()).add("EngineName", engineName()).add("Username", username())
.add("Password", password()).add("ServerName", serverName()).add("Port", port())
.add("DatabaseName", databaseName()).add("ExtraConnectionAttributes", extraConnectionAttributes())
.add("KmsKeyId", kmsKeyId()).add("Tags", tags()).add("CertificateArn", certificateArn())
.add("SslMode", sslModeAsString()).add("DynamoDbSettings", dynamoDbSettings()).add("S3Settings", s3Settings())
.add("MongoDbSettings", mongoDbSettings()).build();
}
public Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "EndpointIdentifier":
return Optional.ofNullable(clazz.cast(endpointIdentifier()));
case "EndpointType":
return Optional.ofNullable(clazz.cast(endpointTypeAsString()));
case "EngineName":
return Optional.ofNullable(clazz.cast(engineName()));
case "Username":
return Optional.ofNullable(clazz.cast(username()));
case "Password":
return Optional.ofNullable(clazz.cast(password()));
case "ServerName":
return Optional.ofNullable(clazz.cast(serverName()));
case "Port":
return Optional.ofNullable(clazz.cast(port()));
case "DatabaseName":
return Optional.ofNullable(clazz.cast(databaseName()));
case "ExtraConnectionAttributes":
return Optional.ofNullable(clazz.cast(extraConnectionAttributes()));
case "KmsKeyId":
return Optional.ofNullable(clazz.cast(kmsKeyId()));
case "Tags":
return Optional.ofNullable(clazz.cast(tags()));
case "CertificateArn":
return Optional.ofNullable(clazz.cast(certificateArn()));
case "SslMode":
return Optional.ofNullable(clazz.cast(sslModeAsString()));
case "DynamoDbSettings":
return Optional.ofNullable(clazz.cast(dynamoDbSettings()));
case "S3Settings":
return Optional.ofNullable(clazz.cast(s3Settings()));
case "MongoDbSettings":
return Optional.ofNullable(clazz.cast(mongoDbSettings()));
default:
return Optional.empty();
}
}
public interface Builder extends DatabaseMigrationRequest.Builder, 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 type of engine for the endpoint. Valid values, depending on the EndPointType, include MYSQL, ORACLE,
* POSTGRES, MARIADB, AURORA, REDSHIFT, S3, SYBASE, DYNAMODB, MONGODB, and SQLSERVER.
*
*
* @param engineName
* The type of engine for the endpoint. 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 to be used to login to the endpoint database.
*
*
* @param username
* The user name to be used to login to the endpoint database.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder username(String username);
/**
*
* The password to be used to login to the endpoint database.
*
*
* @param password
* The password to be used to login to the endpoint database.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder password(String password);
/**
*
* The name of the server where the endpoint database resides.
*
*
* @param serverName
* The name of the server where the endpoint database resides.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder serverName(String serverName);
/**
*
* The port used by the endpoint database.
*
*
* @param port
* The port used by the endpoint database.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder port(Integer port);
/**
*
* The name of the endpoint database.
*
*
* @param databaseName
* The name of the endpoint database.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder databaseName(String databaseName);
/**
*
* Additional attributes associated with the connection.
*
*
* @param extraConnectionAttributes
* Additional attributes associated with the connection.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder extraConnectionAttributes(String extraConnectionAttributes);
/**
*
* 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);
/**
*
* Tags to be added to the endpoint.
*
*
* @param tags
* Tags to be added to the endpoint.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder tags(Collection tags);
/**
*
* Tags to be added to the endpoint.
*
*
* @param tags
* Tags to be added to the endpoint.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder tags(Tag... tags);
/**
*
* Tags to be added to the endpoint.
*
* This is a convenience that creates an instance of the {@link List.Builder} avoiding the need to create
* one manually via {@link List#builder()}.
*
* When the {@link Consumer} completes, {@link List.Builder#build()} is called immediately and its result
* is passed to {@link #tags(List)}.
*
* @param tags
* a consumer that will call methods on {@link List.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #tags(List)
*/
Builder tags(Consumer... tags);
/**
*
* The Amazon Resource Name (ARN) for the certificate.
*
*
* @param certificateArn
* The Amazon Resource Name (ARN) for the certificate.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder certificateArn(String certificateArn);
/**
*
* The SSL mode to use for the SSL connection.
*
*
* SSL mode can be one of four values: none, require, verify-ca, verify-full.
*
*
* The default value is none.
*
*
* @param sslMode
* The SSL mode to use for the SSL connection.
*
* 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 to use for the SSL connection.
*
*
* SSL mode can be one of four values: none, require, verify-ca, verify-full.
*
*
* The default value is none.
*
*
* @param sslMode
* The SSL mode to use for the SSL connection.
*
* 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);
/**
*
* Settings in JSON format for the target Amazon DynamoDB endpoint. For more information about the available
* settings, see the Using Object Mapping to Migrate Data to DynamoDB section at Using an Amazon DynamoDB
* Database as a Target for AWS Database Migration Service.
*
*
* @param dynamoDbSettings
* Settings in JSON format for the target Amazon DynamoDB endpoint. For more information about the
* available settings, see the Using Object Mapping to Migrate Data to DynamoDB section at Using an Amazon
* DynamoDB Database as a Target for AWS Database Migration Service.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder dynamoDbSettings(DynamoDbSettings dynamoDbSettings);
/**
*
* Settings in JSON format for the target Amazon DynamoDB endpoint. For more information about the available
* settings, see the Using Object Mapping to Migrate Data to DynamoDB section at Using an Amazon DynamoDB
* Database as a Target for AWS Database Migration Service.
*
* 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().applyMutation(dynamoDbSettings).build());
}
/**
*
* Settings in JSON format for the target S3 endpoint. For more information about the available settings, see
* the Extra Connection Attributes section at Using Amazon S3 as a Target for
* AWS Database Migration Service.
*
*
* @param s3Settings
* Settings in JSON format for the target S3 endpoint. For more information about the available settings,
* see the Extra Connection Attributes section at Using Amazon S3 as a
* Target for AWS Database Migration Service.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder s3Settings(S3Settings s3Settings);
/**
*
* Settings in JSON format for the target S3 endpoint. For more information about the available settings, see
* the Extra Connection Attributes section at Using Amazon S3 as a Target for
* AWS Database Migration Service.
*
* 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().applyMutation(s3Settings).build());
}
/**
*
* Settings in JSON format for the source MongoDB endpoint. For more information about the available settings,
* see the Configuration Properties When Using MongoDB as a Source for AWS Database Migration Service
* section at Using Amazon
* S3 as a Target for AWS Database Migration Service.
*
*
* @param mongoDbSettings
* Settings in JSON format for the source MongoDB endpoint. For more information about the available
* settings, see the Configuration Properties When Using MongoDB as a Source for AWS Database
* Migration Service section at Using Amazon S3 as a
* Target for AWS Database Migration Service.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder mongoDbSettings(MongoDbSettings mongoDbSettings);
/**
*
* Settings in JSON format for the source MongoDB endpoint. For more information about the available settings,
* see the Configuration Properties When Using MongoDB as a Source for AWS Database Migration Service
* section at Using Amazon
* S3 as a Target for AWS Database Migration Service.
*
* 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().applyMutation(mongoDbSettings).build());
}
@Override
Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration);
@Override
Builder overrideConfiguration(Consumer builderConsumer);
}
static final class BuilderImpl extends DatabaseMigrationRequest.BuilderImpl implements Builder {
private String endpointIdentifier;
private String endpointType;
private String engineName;
private String username;
private String password;
private String serverName;
private Integer port;
private String databaseName;
private String extraConnectionAttributes;
private String kmsKeyId;
private List tags = DefaultSdkAutoConstructList.getInstance();
private String certificateArn;
private String sslMode;
private DynamoDbSettings dynamoDbSettings;
private S3Settings s3Settings;
private MongoDbSettings mongoDbSettings;
private BuilderImpl() {
}
private BuilderImpl(CreateEndpointRequest model) {
super(model);
endpointIdentifier(model.endpointIdentifier);
endpointType(model.endpointType);
engineName(model.engineName);
username(model.username);
password(model.password);
serverName(model.serverName);
port(model.port);
databaseName(model.databaseName);
extraConnectionAttributes(model.extraConnectionAttributes);
kmsKeyId(model.kmsKeyId);
tags(model.tags);
certificateArn(model.certificateArn);
sslMode(model.sslMode);
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 getPassword() {
return password;
}
@Override
public final Builder password(String password) {
this.password = password;
return this;
}
public final void setPassword(String password) {
this.password = password;
}
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 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 Collection getTags() {
return tags != null ? tags.stream().map(Tag::toBuilder).collect(Collectors.toList()) : null;
}
@Override
public final Builder tags(Collection tags) {
this.tags = TagListCopier.copy(tags);
return this;
}
@Override
@SafeVarargs
public final Builder tags(Tag... tags) {
tags(Arrays.asList(tags));
return this;
}
@Override
@SafeVarargs
public final Builder tags(Consumer... tags) {
tags(Stream.of(tags).map(c -> Tag.builder().applyMutation(c).build()).collect(Collectors.toList()));
return this;
}
public final void setTags(Collection tags) {
this.tags = TagListCopier.copyFromBuilder(tags);
}
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 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 Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) {
super.overrideConfiguration(overrideConfiguration);
return this;
}
@Override
public Builder overrideConfiguration(Consumer builderConsumer) {
super.overrideConfiguration(builderConsumer);
return this;
}
@Override
public CreateEndpointRequest build() {
return new CreateEndpointRequest(this);
}
}
}