software.amazon.awssdk.services.databasemigration.model.ModifyEndpointRequest Maven / Gradle / Ivy
/*
* 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.
*/
package software.amazon.awssdk.services.databasemigration.model;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.LocationTrait;
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 ModifyEndpointRequest extends DatabaseMigrationRequest implements
ToCopyableBuilder {
private static final SdkField ENDPOINT_ARN_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("EndpointArn").getter(getter(ModifyEndpointRequest::endpointArn)).setter(setter(Builder::endpointArn))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("EndpointArn").build()).build();
private static final SdkField ENDPOINT_IDENTIFIER_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("EndpointIdentifier").getter(getter(ModifyEndpointRequest::endpointIdentifier))
.setter(setter(Builder::endpointIdentifier))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("EndpointIdentifier").build())
.build();
private static final SdkField ENDPOINT_TYPE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("EndpointType").getter(getter(ModifyEndpointRequest::endpointTypeAsString))
.setter(setter(Builder::endpointType))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("EndpointType").build()).build();
private static final SdkField ENGINE_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("EngineName").getter(getter(ModifyEndpointRequest::engineName)).setter(setter(Builder::engineName))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("EngineName").build()).build();
private static final SdkField USERNAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("Username").getter(getter(ModifyEndpointRequest::username)).setter(setter(Builder::username))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Username").build()).build();
private static final SdkField PASSWORD_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("Password").getter(getter(ModifyEndpointRequest::password)).setter(setter(Builder::password))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Password").build()).build();
private static final SdkField SERVER_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ServerName").getter(getter(ModifyEndpointRequest::serverName)).setter(setter(Builder::serverName))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ServerName").build()).build();
private static final SdkField PORT_FIELD = SdkField. builder(MarshallingType.INTEGER).memberName("Port")
.getter(getter(ModifyEndpointRequest::port)).setter(setter(Builder::port))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Port").build()).build();
private static final SdkField DATABASE_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("DatabaseName").getter(getter(ModifyEndpointRequest::databaseName)).setter(setter(Builder::databaseName))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DatabaseName").build()).build();
private static final SdkField EXTRA_CONNECTION_ATTRIBUTES_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ExtraConnectionAttributes").getter(getter(ModifyEndpointRequest::extraConnectionAttributes))
.setter(setter(Builder::extraConnectionAttributes))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ExtraConnectionAttributes").build())
.build();
private static final SdkField CERTIFICATE_ARN_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("CertificateArn").getter(getter(ModifyEndpointRequest::certificateArn))
.setter(setter(Builder::certificateArn))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CertificateArn").build()).build();
private static final SdkField SSL_MODE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("SslMode").getter(getter(ModifyEndpointRequest::sslModeAsString)).setter(setter(Builder::sslMode))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SslMode").build()).build();
private static final SdkField SERVICE_ACCESS_ROLE_ARN_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ServiceAccessRoleArn").getter(getter(ModifyEndpointRequest::serviceAccessRoleArn))
.setter(setter(Builder::serviceAccessRoleArn))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ServiceAccessRoleArn").build())
.build();
private static final SdkField EXTERNAL_TABLE_DEFINITION_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ExternalTableDefinition").getter(getter(ModifyEndpointRequest::externalTableDefinition))
.setter(setter(Builder::externalTableDefinition))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ExternalTableDefinition").build())
.build();
private static final SdkField DYNAMO_DB_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("DynamoDbSettings")
.getter(getter(ModifyEndpointRequest::dynamoDbSettings)).setter(setter(Builder::dynamoDbSettings))
.constructor(DynamoDbSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DynamoDbSettings").build()).build();
private static final SdkField S3_SETTINGS_FIELD = SdkField. builder(MarshallingType.SDK_POJO)
.memberName("S3Settings").getter(getter(ModifyEndpointRequest::s3Settings)).setter(setter(Builder::s3Settings))
.constructor(S3Settings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("S3Settings").build()).build();
private static final SdkField DMS_TRANSFER_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("DmsTransferSettings")
.getter(getter(ModifyEndpointRequest::dmsTransferSettings)).setter(setter(Builder::dmsTransferSettings))
.constructor(DmsTransferSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DmsTransferSettings").build())
.build();
private static final SdkField MONGO_DB_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("MongoDbSettings")
.getter(getter(ModifyEndpointRequest::mongoDbSettings)).setter(setter(Builder::mongoDbSettings))
.constructor(MongoDbSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MongoDbSettings").build()).build();
private static final SdkField KINESIS_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("KinesisSettings")
.getter(getter(ModifyEndpointRequest::kinesisSettings)).setter(setter(Builder::kinesisSettings))
.constructor(KinesisSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("KinesisSettings").build()).build();
private static final SdkField KAFKA_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("KafkaSettings")
.getter(getter(ModifyEndpointRequest::kafkaSettings)).setter(setter(Builder::kafkaSettings))
.constructor(KafkaSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("KafkaSettings").build()).build();
private static final SdkField ELASTICSEARCH_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("ElasticsearchSettings")
.getter(getter(ModifyEndpointRequest::elasticsearchSettings)).setter(setter(Builder::elasticsearchSettings))
.constructor(ElasticsearchSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ElasticsearchSettings").build())
.build();
private static final SdkField NEPTUNE_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("NeptuneSettings")
.getter(getter(ModifyEndpointRequest::neptuneSettings)).setter(setter(Builder::neptuneSettings))
.constructor(NeptuneSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("NeptuneSettings").build()).build();
private static final SdkField REDSHIFT_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("RedshiftSettings")
.getter(getter(ModifyEndpointRequest::redshiftSettings)).setter(setter(Builder::redshiftSettings))
.constructor(RedshiftSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("RedshiftSettings").build()).build();
private static final SdkField POSTGRE_SQL_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("PostgreSQLSettings")
.getter(getter(ModifyEndpointRequest::postgreSQLSettings)).setter(setter(Builder::postgreSQLSettings))
.constructor(PostgreSQLSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("PostgreSQLSettings").build())
.build();
private static final SdkField MY_SQL_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("MySQLSettings")
.getter(getter(ModifyEndpointRequest::mySQLSettings)).setter(setter(Builder::mySQLSettings))
.constructor(MySQLSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MySQLSettings").build()).build();
private static final SdkField ORACLE_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("OracleSettings")
.getter(getter(ModifyEndpointRequest::oracleSettings)).setter(setter(Builder::oracleSettings))
.constructor(OracleSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("OracleSettings").build()).build();
private static final SdkField SYBASE_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("SybaseSettings")
.getter(getter(ModifyEndpointRequest::sybaseSettings)).setter(setter(Builder::sybaseSettings))
.constructor(SybaseSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SybaseSettings").build()).build();
private static final SdkField MICROSOFT_SQL_SERVER_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO)
.memberName("MicrosoftSQLServerSettings")
.getter(getter(ModifyEndpointRequest::microsoftSQLServerSettings))
.setter(setter(Builder::microsoftSQLServerSettings))
.constructor(MicrosoftSQLServerSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MicrosoftSQLServerSettings").build())
.build();
private static final SdkField IBM_DB2_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("IBMDb2Settings")
.getter(getter(ModifyEndpointRequest::ibmDb2Settings)).setter(setter(Builder::ibmDb2Settings))
.constructor(IBMDb2Settings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("IBMDb2Settings").build()).build();
private static final SdkField DOC_DB_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("DocDbSettings")
.getter(getter(ModifyEndpointRequest::docDbSettings)).setter(setter(Builder::docDbSettings))
.constructor(DocDbSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DocDbSettings").build()).build();
private static final SdkField REDIS_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("RedisSettings")
.getter(getter(ModifyEndpointRequest::redisSettings)).setter(setter(Builder::redisSettings))
.constructor(RedisSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("RedisSettings").build()).build();
private static final SdkField EXACT_SETTINGS_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
.memberName("ExactSettings").getter(getter(ModifyEndpointRequest::exactSettings))
.setter(setter(Builder::exactSettings))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ExactSettings").build()).build();
private static final SdkField GCP_MY_SQL_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("GcpMySQLSettings")
.getter(getter(ModifyEndpointRequest::gcpMySQLSettings)).setter(setter(Builder::gcpMySQLSettings))
.constructor(GcpMySQLSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("GcpMySQLSettings").build()).build();
private static final SdkField TIMESTREAM_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("TimestreamSettings")
.getter(getter(ModifyEndpointRequest::timestreamSettings)).setter(setter(Builder::timestreamSettings))
.constructor(TimestreamSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("TimestreamSettings").build())
.build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(ENDPOINT_ARN_FIELD,
ENDPOINT_IDENTIFIER_FIELD, ENDPOINT_TYPE_FIELD, ENGINE_NAME_FIELD, USERNAME_FIELD, PASSWORD_FIELD, SERVER_NAME_FIELD,
PORT_FIELD, DATABASE_NAME_FIELD, EXTRA_CONNECTION_ATTRIBUTES_FIELD, CERTIFICATE_ARN_FIELD, SSL_MODE_FIELD,
SERVICE_ACCESS_ROLE_ARN_FIELD, EXTERNAL_TABLE_DEFINITION_FIELD, DYNAMO_DB_SETTINGS_FIELD, S3_SETTINGS_FIELD,
DMS_TRANSFER_SETTINGS_FIELD, MONGO_DB_SETTINGS_FIELD, KINESIS_SETTINGS_FIELD, KAFKA_SETTINGS_FIELD,
ELASTICSEARCH_SETTINGS_FIELD, NEPTUNE_SETTINGS_FIELD, REDSHIFT_SETTINGS_FIELD, POSTGRE_SQL_SETTINGS_FIELD,
MY_SQL_SETTINGS_FIELD, ORACLE_SETTINGS_FIELD, SYBASE_SETTINGS_FIELD, MICROSOFT_SQL_SERVER_SETTINGS_FIELD,
IBM_DB2_SETTINGS_FIELD, DOC_DB_SETTINGS_FIELD, REDIS_SETTINGS_FIELD, EXACT_SETTINGS_FIELD, GCP_MY_SQL_SETTINGS_FIELD,
TIMESTREAM_SETTINGS_FIELD));
private final String endpointArn;
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 certificateArn;
private final String sslMode;
private final String serviceAccessRoleArn;
private final String externalTableDefinition;
private final DynamoDbSettings dynamoDbSettings;
private final S3Settings s3Settings;
private final DmsTransferSettings dmsTransferSettings;
private final MongoDbSettings mongoDbSettings;
private final KinesisSettings kinesisSettings;
private final KafkaSettings kafkaSettings;
private final ElasticsearchSettings elasticsearchSettings;
private final NeptuneSettings neptuneSettings;
private final RedshiftSettings redshiftSettings;
private final PostgreSQLSettings postgreSQLSettings;
private final MySQLSettings mySQLSettings;
private final OracleSettings oracleSettings;
private final SybaseSettings sybaseSettings;
private final MicrosoftSQLServerSettings microsoftSQLServerSettings;
private final IBMDb2Settings ibmDb2Settings;
private final DocDbSettings docDbSettings;
private final RedisSettings redisSettings;
private final Boolean exactSettings;
private final GcpMySQLSettings gcpMySQLSettings;
private final TimestreamSettings timestreamSettings;
private ModifyEndpointRequest(BuilderImpl builder) {
super(builder);
this.endpointArn = builder.endpointArn;
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.certificateArn = builder.certificateArn;
this.sslMode = builder.sslMode;
this.serviceAccessRoleArn = builder.serviceAccessRoleArn;
this.externalTableDefinition = builder.externalTableDefinition;
this.dynamoDbSettings = builder.dynamoDbSettings;
this.s3Settings = builder.s3Settings;
this.dmsTransferSettings = builder.dmsTransferSettings;
this.mongoDbSettings = builder.mongoDbSettings;
this.kinesisSettings = builder.kinesisSettings;
this.kafkaSettings = builder.kafkaSettings;
this.elasticsearchSettings = builder.elasticsearchSettings;
this.neptuneSettings = builder.neptuneSettings;
this.redshiftSettings = builder.redshiftSettings;
this.postgreSQLSettings = builder.postgreSQLSettings;
this.mySQLSettings = builder.mySQLSettings;
this.oracleSettings = builder.oracleSettings;
this.sybaseSettings = builder.sybaseSettings;
this.microsoftSQLServerSettings = builder.microsoftSQLServerSettings;
this.ibmDb2Settings = builder.ibmDb2Settings;
this.docDbSettings = builder.docDbSettings;
this.redisSettings = builder.redisSettings;
this.exactSettings = builder.exactSettings;
this.gcpMySQLSettings = builder.gcpMySQLSettings;
this.timestreamSettings = builder.timestreamSettings;
}
/**
*
* The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.
*
*
* @return The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.
*/
public final String endpointArn() {
return endpointArn;
}
/**
*
* 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.
*
*
* @return 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.
*/
public final String endpointIdentifier() {
return endpointIdentifier;
}
/**
*
* The type of endpoint. Valid values are source
and target
.
*
*
* 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. Valid values are source
and target
.
* @see ReplicationEndpointTypeValue
*/
public final ReplicationEndpointTypeValue endpointType() {
return ReplicationEndpointTypeValue.fromValue(endpointType);
}
/**
*
* The type of endpoint. Valid values are source
and target
.
*
*
* 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. Valid values are source
and target
.
* @see ReplicationEndpointTypeValue
*/
public final String endpointTypeAsString() {
return endpointType;
}
/**
*
* The database engine name. Valid values, depending on the EndpointType, include "mysql"
,
* "oracle"
, "postgres"
, "mariadb"
, "aurora"
,
* "aurora-postgresql"
, "redshift"
, "s3"
, "db2"
,
* "db2-zos"
, "azuredb"
, "sybase"
, "dynamodb"
,
* "mongodb"
, "kinesis"
, "kafka"
, "elasticsearch"
,
* "documentdb"
, "sqlserver"
, "neptune"
, and "babelfish"
.
*
*
* @return The database engine name. Valid values, depending on the EndpointType, include "mysql"
,
* "oracle"
, "postgres"
, "mariadb"
, "aurora"
,
* "aurora-postgresql"
, "redshift"
, "s3"
, "db2"
,
* "db2-zos"
, "azuredb"
, "sybase"
, "dynamodb"
,
* "mongodb"
, "kinesis"
, "kafka"
, "elasticsearch"
,
* "documentdb"
, "sqlserver"
, "neptune"
, and "babelfish"
* .
*/
public final 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 final 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 final 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 final String serverName() {
return serverName;
}
/**
*
* The port used by the endpoint database.
*
*
* @return The port used by the endpoint database.
*/
public final Integer port() {
return port;
}
/**
*
* The name of the endpoint database. For a MySQL source or target endpoint, do not specify DatabaseName.
*
*
* @return The name of the endpoint database. For a MySQL source or target endpoint, do not specify DatabaseName.
*/
public final String databaseName() {
return databaseName;
}
/**
*
* Additional attributes associated with the connection. To reset this parameter, pass the empty string ("") as an
* argument.
*
*
* @return Additional attributes associated with the connection. To reset this parameter, pass the empty string ("")
* as an argument.
*/
public final String extraConnectionAttributes() {
return extraConnectionAttributes;
}
/**
*
* The Amazon Resource Name (ARN) of the certificate used for SSL connection.
*
*
* @return The Amazon Resource Name (ARN) of the certificate used for SSL connection.
*/
public final String certificateArn() {
return certificateArn;
}
/**
*
* The SSL mode used to connect to the endpoint. 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 used to connect to the endpoint. The default value is none
.
* @see DmsSslModeValue
*/
public final DmsSslModeValue sslMode() {
return DmsSslModeValue.fromValue(sslMode);
}
/**
*
* The SSL mode used to connect to the endpoint. 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 used to connect to the endpoint. The default value is none
.
* @see DmsSslModeValue
*/
public final String sslModeAsString() {
return sslMode;
}
/**
*
* The Amazon Resource Name (ARN) for the IAM role you want to use to modify the endpoint. The role must allow the
* iam:PassRole
action.
*
*
* @return The Amazon Resource Name (ARN) for the IAM role you want to use to modify the endpoint. The role must
* allow the iam:PassRole
action.
*/
public final String serviceAccessRoleArn() {
return serviceAccessRoleArn;
}
/**
*
* The external table definition.
*
*
* @return The external table definition.
*/
public final String externalTableDefinition() {
return externalTableDefinition;
}
/**
*
* 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.
*
*
* @return 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 final DynamoDbSettings dynamoDbSettings() {
return dynamoDbSettings;
}
/**
*
* 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.
*
*
* @return 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 final S3Settings s3Settings() {
return s3Settings;
}
/**
*
* The settings in JSON format for the DMS transfer type of source endpoint.
*
*
* Attributes 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"}
*
*
* @return The settings in JSON format for the DMS transfer type of source endpoint.
*
* Attributes 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 final DmsTransferSettings dmsTransferSettings() {
return dmsTransferSettings;
}
/**
*
* Settings in JSON format for the source MongoDB endpoint. For more information about the available settings, see
* the configuration properties section in Endpoint configuration settings when using MongoDB as a source for Database Migration Service in the
* Database Migration Service User Guide.
*
*
* @return Settings in JSON format for the source MongoDB endpoint. For more information about the available
* settings, see the configuration properties section in Endpoint configuration settings when using MongoDB as a source for Database Migration Service in the
* Database Migration Service User Guide.
*/
public final MongoDbSettings mongoDbSettings() {
return mongoDbSettings;
}
/**
*
* 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.
*
*
* @return 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 final KinesisSettings kinesisSettings() {
return kinesisSettings;
}
/**
*
* 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.
*
*
* @return 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 final KafkaSettings kafkaSettings() {
return kafkaSettings;
}
/**
*
* 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.
*
*
* @return 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 final ElasticsearchSettings elasticsearchSettings() {
return elasticsearchSettings;
}
/**
*
* 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.
*
*
* @return 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 final NeptuneSettings neptuneSettings() {
return neptuneSettings;
}
/**
* Returns the value of the RedshiftSettings property for this object.
*
* @return The value of the RedshiftSettings property for this object.
*/
public final RedshiftSettings redshiftSettings() {
return redshiftSettings;
}
/**
*
* 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.
*
*
* @return 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 final PostgreSQLSettings postgreSQLSettings() {
return postgreSQLSettings;
}
/**
*
* 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.
*
*
* @return 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 final MySQLSettings mySQLSettings() {
return mySQLSettings;
}
/**
*
* 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.
*
*
* @return 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 final OracleSettings oracleSettings() {
return oracleSettings;
}
/**
*
* 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.
*
*
* @return 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 final SybaseSettings sybaseSettings() {
return sybaseSettings;
}
/**
*
* 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.
*
*
* @return 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 final MicrosoftSQLServerSettings microsoftSQLServerSettings() {
return microsoftSQLServerSettings;
}
/**
*
* 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.
*
*
* @return 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 final IBMDb2Settings ibmDb2Settings() {
return ibmDb2Settings;
}
/**
*
* Settings in JSON format for the source DocumentDB endpoint. For more information about the available settings,
* see the configuration properties section in Using DocumentDB as a Target
* for Database Migration Service in the Database Migration Service User Guide.
*
*
* @return Settings in JSON format for the source DocumentDB endpoint. For more information about the available
* settings, see the configuration properties section in Using DocumentDB as
* a Target for Database Migration Service in the Database Migration Service User Guide.
*/
public final DocDbSettings docDbSettings() {
return docDbSettings;
}
/**
*
* Settings in JSON format for the Redis target endpoint.
*
*
* @return Settings in JSON format for the Redis target endpoint.
*/
public final RedisSettings redisSettings() {
return redisSettings;
}
/**
*
* If this attribute is Y, the current call to ModifyEndpoint
replaces all existing endpoint settings
* with the exact settings that you specify in this call. If this attribute is N, the current call to
* ModifyEndpoint
does two things:
*
*
* -
*
* It replaces any endpoint settings that already exist with new values, for settings with the same names.
*
*
* -
*
* It creates new endpoint settings that you specify in the call, for settings with different names.
*
*
*
*
* For example, if you call create-endpoint ... --endpoint-settings '{"a":1}' ...
, the endpoint has the
* following endpoint settings: '{"a":1}'
. If you then call
* modify-endpoint ... --endpoint-settings '{"b":2}' ...
for the same endpoint, the endpoint has the
* following settings: '{"a":1,"b":2}'
.
*
*
* However, suppose that you follow this with a call to
* modify-endpoint ... --endpoint-settings '{"b":2}' --exact-settings ...
for that same endpoint again.
* Then the endpoint has the following settings: '{"b":2}'
. All existing settings are replaced with the
* exact settings that you specify.
*
*
* @return If this attribute is Y, the current call to ModifyEndpoint
replaces all existing endpoint
* settings with the exact settings that you specify in this call. If this attribute is N, the current call
* to ModifyEndpoint
does two things:
*
* -
*
* It replaces any endpoint settings that already exist with new values, for settings with the same names.
*
*
* -
*
* It creates new endpoint settings that you specify in the call, for settings with different names.
*
*
*
*
* For example, if you call create-endpoint ... --endpoint-settings '{"a":1}' ...
, the endpoint
* has the following endpoint settings: '{"a":1}'
. If you then call
* modify-endpoint ... --endpoint-settings '{"b":2}' ...
for the same endpoint, the endpoint
* has the following settings: '{"a":1,"b":2}'
.
*
*
* However, suppose that you follow this with a call to
* modify-endpoint ... --endpoint-settings '{"b":2}' --exact-settings ...
for that same
* endpoint again. Then the endpoint has the following settings: '{"b":2}'
. All existing
* settings are replaced with the exact settings that you specify.
*/
public final Boolean exactSettings() {
return exactSettings;
}
/**
*
* Settings in JSON format for the source GCP MySQL endpoint.
*
*
* @return Settings in JSON format for the source GCP MySQL endpoint.
*/
public final GcpMySQLSettings gcpMySQLSettings() {
return gcpMySQLSettings;
}
/**
*
* Settings in JSON format for the target Amazon Timestream endpoint.
*
*
* @return Settings in JSON format for the target Amazon Timestream endpoint.
*/
public final TimestreamSettings timestreamSettings() {
return timestreamSettings;
}
@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 final int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + super.hashCode();
hashCode = 31 * hashCode + Objects.hashCode(endpointArn());
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(certificateArn());
hashCode = 31 * hashCode + Objects.hashCode(sslModeAsString());
hashCode = 31 * hashCode + Objects.hashCode(serviceAccessRoleArn());
hashCode = 31 * hashCode + Objects.hashCode(externalTableDefinition());
hashCode = 31 * hashCode + Objects.hashCode(dynamoDbSettings());
hashCode = 31 * hashCode + Objects.hashCode(s3Settings());
hashCode = 31 * hashCode + Objects.hashCode(dmsTransferSettings());
hashCode = 31 * hashCode + Objects.hashCode(mongoDbSettings());
hashCode = 31 * hashCode + Objects.hashCode(kinesisSettings());
hashCode = 31 * hashCode + Objects.hashCode(kafkaSettings());
hashCode = 31 * hashCode + Objects.hashCode(elasticsearchSettings());
hashCode = 31 * hashCode + Objects.hashCode(neptuneSettings());
hashCode = 31 * hashCode + Objects.hashCode(redshiftSettings());
hashCode = 31 * hashCode + Objects.hashCode(postgreSQLSettings());
hashCode = 31 * hashCode + Objects.hashCode(mySQLSettings());
hashCode = 31 * hashCode + Objects.hashCode(oracleSettings());
hashCode = 31 * hashCode + Objects.hashCode(sybaseSettings());
hashCode = 31 * hashCode + Objects.hashCode(microsoftSQLServerSettings());
hashCode = 31 * hashCode + Objects.hashCode(ibmDb2Settings());
hashCode = 31 * hashCode + Objects.hashCode(docDbSettings());
hashCode = 31 * hashCode + Objects.hashCode(redisSettings());
hashCode = 31 * hashCode + Objects.hashCode(exactSettings());
hashCode = 31 * hashCode + Objects.hashCode(gcpMySQLSettings());
hashCode = 31 * hashCode + Objects.hashCode(timestreamSettings());
return hashCode;
}
@Override
public final boolean equals(Object obj) {
return super.equals(obj) && equalsBySdkFields(obj);
}
@Override
public final boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof ModifyEndpointRequest)) {
return false;
}
ModifyEndpointRequest other = (ModifyEndpointRequest) obj;
return Objects.equals(endpointArn(), other.endpointArn())
&& 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(certificateArn(), other.certificateArn())
&& Objects.equals(sslModeAsString(), other.sslModeAsString())
&& Objects.equals(serviceAccessRoleArn(), other.serviceAccessRoleArn())
&& Objects.equals(externalTableDefinition(), other.externalTableDefinition())
&& Objects.equals(dynamoDbSettings(), other.dynamoDbSettings())
&& Objects.equals(s3Settings(), other.s3Settings())
&& Objects.equals(dmsTransferSettings(), other.dmsTransferSettings())
&& Objects.equals(mongoDbSettings(), other.mongoDbSettings())
&& Objects.equals(kinesisSettings(), other.kinesisSettings())
&& Objects.equals(kafkaSettings(), other.kafkaSettings())
&& Objects.equals(elasticsearchSettings(), other.elasticsearchSettings())
&& Objects.equals(neptuneSettings(), other.neptuneSettings())
&& Objects.equals(redshiftSettings(), other.redshiftSettings())
&& Objects.equals(postgreSQLSettings(), other.postgreSQLSettings())
&& Objects.equals(mySQLSettings(), other.mySQLSettings())
&& Objects.equals(oracleSettings(), other.oracleSettings())
&& Objects.equals(sybaseSettings(), other.sybaseSettings())
&& Objects.equals(microsoftSQLServerSettings(), other.microsoftSQLServerSettings())
&& Objects.equals(ibmDb2Settings(), other.ibmDb2Settings())
&& Objects.equals(docDbSettings(), other.docDbSettings())
&& Objects.equals(redisSettings(), other.redisSettings())
&& Objects.equals(exactSettings(), other.exactSettings())
&& Objects.equals(gcpMySQLSettings(), other.gcpMySQLSettings())
&& Objects.equals(timestreamSettings(), other.timestreamSettings());
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*/
@Override
public final String toString() {
return ToString.builder("ModifyEndpointRequest").add("EndpointArn", endpointArn())
.add("EndpointIdentifier", endpointIdentifier()).add("EndpointType", endpointTypeAsString())
.add("EngineName", engineName()).add("Username", username())
.add("Password", password() == null ? null : "*** Sensitive Data Redacted ***").add("ServerName", serverName())
.add("Port", port()).add("DatabaseName", databaseName())
.add("ExtraConnectionAttributes", extraConnectionAttributes()).add("CertificateArn", certificateArn())
.add("SslMode", sslModeAsString()).add("ServiceAccessRoleArn", serviceAccessRoleArn())
.add("ExternalTableDefinition", externalTableDefinition()).add("DynamoDbSettings", dynamoDbSettings())
.add("S3Settings", s3Settings()).add("DmsTransferSettings", dmsTransferSettings())
.add("MongoDbSettings", mongoDbSettings()).add("KinesisSettings", kinesisSettings())
.add("KafkaSettings", kafkaSettings()).add("ElasticsearchSettings", elasticsearchSettings())
.add("NeptuneSettings", neptuneSettings()).add("RedshiftSettings", redshiftSettings())
.add("PostgreSQLSettings", postgreSQLSettings()).add("MySQLSettings", mySQLSettings())
.add("OracleSettings", oracleSettings()).add("SybaseSettings", sybaseSettings())
.add("MicrosoftSQLServerSettings", microsoftSQLServerSettings()).add("IBMDb2Settings", ibmDb2Settings())
.add("DocDbSettings", docDbSettings()).add("RedisSettings", redisSettings())
.add("ExactSettings", exactSettings()).add("GcpMySQLSettings", gcpMySQLSettings())
.add("TimestreamSettings", timestreamSettings()).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "EndpointArn":
return Optional.ofNullable(clazz.cast(endpointArn()));
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 "CertificateArn":
return Optional.ofNullable(clazz.cast(certificateArn()));
case "SslMode":
return Optional.ofNullable(clazz.cast(sslModeAsString()));
case "ServiceAccessRoleArn":
return Optional.ofNullable(clazz.cast(serviceAccessRoleArn()));
case "ExternalTableDefinition":
return Optional.ofNullable(clazz.cast(externalTableDefinition()));
case "DynamoDbSettings":
return Optional.ofNullable(clazz.cast(dynamoDbSettings()));
case "S3Settings":
return Optional.ofNullable(clazz.cast(s3Settings()));
case "DmsTransferSettings":
return Optional.ofNullable(clazz.cast(dmsTransferSettings()));
case "MongoDbSettings":
return Optional.ofNullable(clazz.cast(mongoDbSettings()));
case "KinesisSettings":
return Optional.ofNullable(clazz.cast(kinesisSettings()));
case "KafkaSettings":
return Optional.ofNullable(clazz.cast(kafkaSettings()));
case "ElasticsearchSettings":
return Optional.ofNullable(clazz.cast(elasticsearchSettings()));
case "NeptuneSettings":
return Optional.ofNullable(clazz.cast(neptuneSettings()));
case "RedshiftSettings":
return Optional.ofNullable(clazz.cast(redshiftSettings()));
case "PostgreSQLSettings":
return Optional.ofNullable(clazz.cast(postgreSQLSettings()));
case "MySQLSettings":
return Optional.ofNullable(clazz.cast(mySQLSettings()));
case "OracleSettings":
return Optional.ofNullable(clazz.cast(oracleSettings()));
case "SybaseSettings":
return Optional.ofNullable(clazz.cast(sybaseSettings()));
case "MicrosoftSQLServerSettings":
return Optional.ofNullable(clazz.cast(microsoftSQLServerSettings()));
case "IBMDb2Settings":
return Optional.ofNullable(clazz.cast(ibmDb2Settings()));
case "DocDbSettings":
return Optional.ofNullable(clazz.cast(docDbSettings()));
case "RedisSettings":
return Optional.ofNullable(clazz.cast(redisSettings()));
case "ExactSettings":
return Optional.ofNullable(clazz.cast(exactSettings()));
case "GcpMySQLSettings":
return Optional.ofNullable(clazz.cast(gcpMySQLSettings()));
case "TimestreamSettings":
return Optional.ofNullable(clazz.cast(timestreamSettings()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function