All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.rds.model.CreateDbInstanceReadReplicaRequest Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon RDS module holds the client classes that are used for communicating with Amazon Relational Database Service

There is a newer version: 2.29.15
Show newest version
/*
 * 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.rds.model;

import java.util.Arrays;
import java.util.Collection;
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 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.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.ListTrait;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructList;
import software.amazon.awssdk.core.util.SdkAutoConstructList;
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 CreateDbInstanceReadReplicaRequest extends RdsRequest implements
        ToCopyableBuilder {
    private static final SdkField DB_INSTANCE_IDENTIFIER_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("DBInstanceIdentifier").getter(getter(CreateDbInstanceReadReplicaRequest::dbInstanceIdentifier))
            .setter(setter(Builder::dbInstanceIdentifier))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DBInstanceIdentifier").build())
            .build();

    private static final SdkField SOURCE_DB_INSTANCE_IDENTIFIER_FIELD = SdkField
            . builder(MarshallingType.STRING)
            .memberName("SourceDBInstanceIdentifier")
            .getter(getter(CreateDbInstanceReadReplicaRequest::sourceDBInstanceIdentifier))
            .setter(setter(Builder::sourceDBInstanceIdentifier))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SourceDBInstanceIdentifier").build())
            .build();

    private static final SdkField DB_INSTANCE_CLASS_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("DBInstanceClass").getter(getter(CreateDbInstanceReadReplicaRequest::dbInstanceClass))
            .setter(setter(Builder::dbInstanceClass))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DBInstanceClass").build()).build();

    private static final SdkField AVAILABILITY_ZONE_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("AvailabilityZone").getter(getter(CreateDbInstanceReadReplicaRequest::availabilityZone))
            .setter(setter(Builder::availabilityZone))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AvailabilityZone").build()).build();

    private static final SdkField PORT_FIELD = SdkField. builder(MarshallingType.INTEGER).memberName("Port")
            .getter(getter(CreateDbInstanceReadReplicaRequest::port)).setter(setter(Builder::port))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Port").build()).build();

    private static final SdkField MULTI_AZ_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
            .memberName("MultiAZ").getter(getter(CreateDbInstanceReadReplicaRequest::multiAZ)).setter(setter(Builder::multiAZ))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MultiAZ").build()).build();

    private static final SdkField AUTO_MINOR_VERSION_UPGRADE_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
            .memberName("AutoMinorVersionUpgrade").getter(getter(CreateDbInstanceReadReplicaRequest::autoMinorVersionUpgrade))
            .setter(setter(Builder::autoMinorVersionUpgrade))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AutoMinorVersionUpgrade").build())
            .build();

    private static final SdkField IOPS_FIELD = SdkField. builder(MarshallingType.INTEGER).memberName("Iops")
            .getter(getter(CreateDbInstanceReadReplicaRequest::iops)).setter(setter(Builder::iops))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Iops").build()).build();

    private static final SdkField OPTION_GROUP_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("OptionGroupName").getter(getter(CreateDbInstanceReadReplicaRequest::optionGroupName))
            .setter(setter(Builder::optionGroupName))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("OptionGroupName").build()).build();

    private static final SdkField DB_PARAMETER_GROUP_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("DBParameterGroupName").getter(getter(CreateDbInstanceReadReplicaRequest::dbParameterGroupName))
            .setter(setter(Builder::dbParameterGroupName))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DBParameterGroupName").build())
            .build();

    private static final SdkField PUBLICLY_ACCESSIBLE_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
            .memberName("PubliclyAccessible").getter(getter(CreateDbInstanceReadReplicaRequest::publiclyAccessible))
            .setter(setter(Builder::publiclyAccessible))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("PubliclyAccessible").build())
            .build();

    private static final SdkField> TAGS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .memberName("Tags")
            .getter(getter(CreateDbInstanceReadReplicaRequest::tags))
            .setter(setter(Builder::tags))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Tags").build(),
                    ListTrait
                            .builder()
                            .memberLocationName("Tag")
                            .memberFieldInfo(
                                    SdkField. builder(MarshallingType.SDK_POJO)
                                            .constructor(Tag::builder)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("Tag").build()).build()).build()).build();

    private static final SdkField DB_SUBNET_GROUP_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("DBSubnetGroupName").getter(getter(CreateDbInstanceReadReplicaRequest::dbSubnetGroupName))
            .setter(setter(Builder::dbSubnetGroupName))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DBSubnetGroupName").build()).build();

    private static final SdkField> VPC_SECURITY_GROUP_IDS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .memberName("VpcSecurityGroupIds")
            .getter(getter(CreateDbInstanceReadReplicaRequest::vpcSecurityGroupIds))
            .setter(setter(Builder::vpcSecurityGroupIds))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("VpcSecurityGroupIds").build(),
                    ListTrait
                            .builder()
                            .memberLocationName("VpcSecurityGroupId")
                            .memberFieldInfo(
                                    SdkField. builder(MarshallingType.STRING)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("VpcSecurityGroupId").build()).build()).build()).build();

    private static final SdkField STORAGE_TYPE_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("StorageType").getter(getter(CreateDbInstanceReadReplicaRequest::storageType))
            .setter(setter(Builder::storageType))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("StorageType").build()).build();

    private static final SdkField COPY_TAGS_TO_SNAPSHOT_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
            .memberName("CopyTagsToSnapshot").getter(getter(CreateDbInstanceReadReplicaRequest::copyTagsToSnapshot))
            .setter(setter(Builder::copyTagsToSnapshot))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CopyTagsToSnapshot").build())
            .build();

    private static final SdkField MONITORING_INTERVAL_FIELD = SdkField. builder(MarshallingType.INTEGER)
            .memberName("MonitoringInterval").getter(getter(CreateDbInstanceReadReplicaRequest::monitoringInterval))
            .setter(setter(Builder::monitoringInterval))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MonitoringInterval").build())
            .build();

    private static final SdkField MONITORING_ROLE_ARN_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("MonitoringRoleArn").getter(getter(CreateDbInstanceReadReplicaRequest::monitoringRoleArn))
            .setter(setter(Builder::monitoringRoleArn))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MonitoringRoleArn").build()).build();

    private static final SdkField KMS_KEY_ID_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("KmsKeyId").getter(getter(CreateDbInstanceReadReplicaRequest::kmsKeyId))
            .setter(setter(Builder::kmsKeyId))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("KmsKeyId").build()).build();

    private static final SdkField PRE_SIGNED_URL_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("PreSignedUrl").getter(getter(CreateDbInstanceReadReplicaRequest::preSignedUrl))
            .setter(setter(Builder::preSignedUrl))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("PreSignedUrl").build()).build();

    private static final SdkField ENABLE_IAM_DATABASE_AUTHENTICATION_FIELD = SdkField
            . builder(MarshallingType.BOOLEAN)
            .memberName("EnableIAMDatabaseAuthentication")
            .getter(getter(CreateDbInstanceReadReplicaRequest::enableIAMDatabaseAuthentication))
            .setter(setter(Builder::enableIAMDatabaseAuthentication))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("EnableIAMDatabaseAuthentication")
                    .build()).build();

    private static final SdkField ENABLE_PERFORMANCE_INSIGHTS_FIELD = SdkField
            . builder(MarshallingType.BOOLEAN).memberName("EnablePerformanceInsights")
            .getter(getter(CreateDbInstanceReadReplicaRequest::enablePerformanceInsights))
            .setter(setter(Builder::enablePerformanceInsights))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("EnablePerformanceInsights").build())
            .build();

    private static final SdkField PERFORMANCE_INSIGHTS_KMS_KEY_ID_FIELD = SdkField
            . builder(MarshallingType.STRING)
            .memberName("PerformanceInsightsKMSKeyId")
            .getter(getter(CreateDbInstanceReadReplicaRequest::performanceInsightsKMSKeyId))
            .setter(setter(Builder::performanceInsightsKMSKeyId))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("PerformanceInsightsKMSKeyId")
                    .build()).build();

    private static final SdkField PERFORMANCE_INSIGHTS_RETENTION_PERIOD_FIELD = SdkField
            . builder(MarshallingType.INTEGER)
            .memberName("PerformanceInsightsRetentionPeriod")
            .getter(getter(CreateDbInstanceReadReplicaRequest::performanceInsightsRetentionPeriod))
            .setter(setter(Builder::performanceInsightsRetentionPeriod))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("PerformanceInsightsRetentionPeriod")
                    .build()).build();

    private static final SdkField> ENABLE_CLOUDWATCH_LOGS_EXPORTS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .memberName("EnableCloudwatchLogsExports")
            .getter(getter(CreateDbInstanceReadReplicaRequest::enableCloudwatchLogsExports))
            .setter(setter(Builder::enableCloudwatchLogsExports))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("EnableCloudwatchLogsExports")
                    .build(),
                    ListTrait
                            .builder()
                            .memberLocationName(null)
                            .memberFieldInfo(
                                    SdkField. builder(MarshallingType.STRING)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("member").build()).build()).build()).build();

    private static final SdkField> PROCESSOR_FEATURES_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .memberName("ProcessorFeatures")
            .getter(getter(CreateDbInstanceReadReplicaRequest::processorFeatures))
            .setter(setter(Builder::processorFeatures))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ProcessorFeatures").build(),
                    ListTrait
                            .builder()
                            .memberLocationName("ProcessorFeature")
                            .memberFieldInfo(
                                    SdkField. builder(MarshallingType.SDK_POJO)
                                            .constructor(ProcessorFeature::builder)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("ProcessorFeature").build()).build()).build()).build();

    private static final SdkField USE_DEFAULT_PROCESSOR_FEATURES_FIELD = SdkField
            . builder(MarshallingType.BOOLEAN)
            .memberName("UseDefaultProcessorFeatures")
            .getter(getter(CreateDbInstanceReadReplicaRequest::useDefaultProcessorFeatures))
            .setter(setter(Builder::useDefaultProcessorFeatures))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("UseDefaultProcessorFeatures")
                    .build()).build();

    private static final SdkField DELETION_PROTECTION_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
            .memberName("DeletionProtection").getter(getter(CreateDbInstanceReadReplicaRequest::deletionProtection))
            .setter(setter(Builder::deletionProtection))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DeletionProtection").build())
            .build();

    private static final SdkField DOMAIN_FIELD = SdkField. builder(MarshallingType.STRING).memberName("Domain")
            .getter(getter(CreateDbInstanceReadReplicaRequest::domain)).setter(setter(Builder::domain))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Domain").build()).build();

    private static final SdkField DOMAIN_IAM_ROLE_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("DomainIAMRoleName").getter(getter(CreateDbInstanceReadReplicaRequest::domainIAMRoleName))
            .setter(setter(Builder::domainIAMRoleName))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DomainIAMRoleName").build()).build();

    private static final SdkField DOMAIN_FQDN_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("DomainFqdn").getter(getter(CreateDbInstanceReadReplicaRequest::domainFqdn))
            .setter(setter(Builder::domainFqdn))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DomainFqdn").build()).build();

    private static final SdkField DOMAIN_OU_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("DomainOu").getter(getter(CreateDbInstanceReadReplicaRequest::domainOu))
            .setter(setter(Builder::domainOu))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DomainOu").build()).build();

    private static final SdkField DOMAIN_AUTH_SECRET_ARN_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("DomainAuthSecretArn").getter(getter(CreateDbInstanceReadReplicaRequest::domainAuthSecretArn))
            .setter(setter(Builder::domainAuthSecretArn))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DomainAuthSecretArn").build())
            .build();

    private static final SdkField> DOMAIN_DNS_IPS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .memberName("DomainDnsIps")
            .getter(getter(CreateDbInstanceReadReplicaRequest::domainDnsIps))
            .setter(setter(Builder::domainDnsIps))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DomainDnsIps").build(),
                    ListTrait
                            .builder()
                            .memberLocationName(null)
                            .memberFieldInfo(
                                    SdkField. builder(MarshallingType.STRING)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("member").build()).build()).build()).build();

    private static final SdkField REPLICA_MODE_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("ReplicaMode").getter(getter(CreateDbInstanceReadReplicaRequest::replicaModeAsString))
            .setter(setter(Builder::replicaMode))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ReplicaMode").build()).build();

    private static final SdkField MAX_ALLOCATED_STORAGE_FIELD = SdkField. builder(MarshallingType.INTEGER)
            .memberName("MaxAllocatedStorage").getter(getter(CreateDbInstanceReadReplicaRequest::maxAllocatedStorage))
            .setter(setter(Builder::maxAllocatedStorage))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MaxAllocatedStorage").build())
            .build();

    private static final SdkField CUSTOM_IAM_INSTANCE_PROFILE_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("CustomIamInstanceProfile").getter(getter(CreateDbInstanceReadReplicaRequest::customIamInstanceProfile))
            .setter(setter(Builder::customIamInstanceProfile))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CustomIamInstanceProfile").build())
            .build();

    private static final SdkField NETWORK_TYPE_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("NetworkType").getter(getter(CreateDbInstanceReadReplicaRequest::networkType))
            .setter(setter(Builder::networkType))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("NetworkType").build()).build();

    private static final SdkField STORAGE_THROUGHPUT_FIELD = SdkField. builder(MarshallingType.INTEGER)
            .memberName("StorageThroughput").getter(getter(CreateDbInstanceReadReplicaRequest::storageThroughput))
            .setter(setter(Builder::storageThroughput))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("StorageThroughput").build()).build();

    private static final SdkField ENABLE_CUSTOMER_OWNED_IP_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
            .memberName("EnableCustomerOwnedIp").getter(getter(CreateDbInstanceReadReplicaRequest::enableCustomerOwnedIp))
            .setter(setter(Builder::enableCustomerOwnedIp))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("EnableCustomerOwnedIp").build())
            .build();

    private static final SdkField ALLOCATED_STORAGE_FIELD = SdkField. builder(MarshallingType.INTEGER)
            .memberName("AllocatedStorage").getter(getter(CreateDbInstanceReadReplicaRequest::allocatedStorage))
            .setter(setter(Builder::allocatedStorage))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AllocatedStorage").build()).build();

    private static final SdkField SOURCE_DB_CLUSTER_IDENTIFIER_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("SourceDBClusterIdentifier")
            .getter(getter(CreateDbInstanceReadReplicaRequest::sourceDBClusterIdentifier))
            .setter(setter(Builder::sourceDBClusterIdentifier))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SourceDBClusterIdentifier").build())
            .build();

    private static final SdkField DEDICATED_LOG_VOLUME_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
            .memberName("DedicatedLogVolume").getter(getter(CreateDbInstanceReadReplicaRequest::dedicatedLogVolume))
            .setter(setter(Builder::dedicatedLogVolume))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DedicatedLogVolume").build())
            .build();

    private static final SdkField UPGRADE_STORAGE_CONFIG_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
            .memberName("UpgradeStorageConfig").getter(getter(CreateDbInstanceReadReplicaRequest::upgradeStorageConfig))
            .setter(setter(Builder::upgradeStorageConfig))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("UpgradeStorageConfig").build())
            .build();

    private static final SdkField CA_CERTIFICATE_IDENTIFIER_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("CACertificateIdentifier").getter(getter(CreateDbInstanceReadReplicaRequest::caCertificateIdentifier))
            .setter(setter(Builder::caCertificateIdentifier))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CACertificateIdentifier").build())
            .build();

    private static final SdkField SOURCE_REGION_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("SourceRegion").getter(getter(CreateDbInstanceReadReplicaRequest::sourceRegion))
            .setter(setter(Builder::sourceRegion))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SourceRegion").build()).build();

    private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(DB_INSTANCE_IDENTIFIER_FIELD,
            SOURCE_DB_INSTANCE_IDENTIFIER_FIELD, DB_INSTANCE_CLASS_FIELD, AVAILABILITY_ZONE_FIELD, PORT_FIELD, MULTI_AZ_FIELD,
            AUTO_MINOR_VERSION_UPGRADE_FIELD, IOPS_FIELD, OPTION_GROUP_NAME_FIELD, DB_PARAMETER_GROUP_NAME_FIELD,
            PUBLICLY_ACCESSIBLE_FIELD, TAGS_FIELD, DB_SUBNET_GROUP_NAME_FIELD, VPC_SECURITY_GROUP_IDS_FIELD, STORAGE_TYPE_FIELD,
            COPY_TAGS_TO_SNAPSHOT_FIELD, MONITORING_INTERVAL_FIELD, MONITORING_ROLE_ARN_FIELD, KMS_KEY_ID_FIELD,
            PRE_SIGNED_URL_FIELD, ENABLE_IAM_DATABASE_AUTHENTICATION_FIELD, ENABLE_PERFORMANCE_INSIGHTS_FIELD,
            PERFORMANCE_INSIGHTS_KMS_KEY_ID_FIELD, PERFORMANCE_INSIGHTS_RETENTION_PERIOD_FIELD,
            ENABLE_CLOUDWATCH_LOGS_EXPORTS_FIELD, PROCESSOR_FEATURES_FIELD, USE_DEFAULT_PROCESSOR_FEATURES_FIELD,
            DELETION_PROTECTION_FIELD, DOMAIN_FIELD, DOMAIN_IAM_ROLE_NAME_FIELD, DOMAIN_FQDN_FIELD, DOMAIN_OU_FIELD,
            DOMAIN_AUTH_SECRET_ARN_FIELD, DOMAIN_DNS_IPS_FIELD, REPLICA_MODE_FIELD, MAX_ALLOCATED_STORAGE_FIELD,
            CUSTOM_IAM_INSTANCE_PROFILE_FIELD, NETWORK_TYPE_FIELD, STORAGE_THROUGHPUT_FIELD, ENABLE_CUSTOMER_OWNED_IP_FIELD,
            ALLOCATED_STORAGE_FIELD, SOURCE_DB_CLUSTER_IDENTIFIER_FIELD, DEDICATED_LOG_VOLUME_FIELD,
            UPGRADE_STORAGE_CONFIG_FIELD, CA_CERTIFICATE_IDENTIFIER_FIELD, SOURCE_REGION_FIELD));

    private final String dbInstanceIdentifier;

    private final String sourceDBInstanceIdentifier;

    private final String dbInstanceClass;

    private final String availabilityZone;

    private final Integer port;

    private final Boolean multiAZ;

    private final Boolean autoMinorVersionUpgrade;

    private final Integer iops;

    private final String optionGroupName;

    private final String dbParameterGroupName;

    private final Boolean publiclyAccessible;

    private final List tags;

    private final String dbSubnetGroupName;

    private final List vpcSecurityGroupIds;

    private final String storageType;

    private final Boolean copyTagsToSnapshot;

    private final Integer monitoringInterval;

    private final String monitoringRoleArn;

    private final String kmsKeyId;

    private final String preSignedUrl;

    private final Boolean enableIAMDatabaseAuthentication;

    private final Boolean enablePerformanceInsights;

    private final String performanceInsightsKMSKeyId;

    private final Integer performanceInsightsRetentionPeriod;

    private final List enableCloudwatchLogsExports;

    private final List processorFeatures;

    private final Boolean useDefaultProcessorFeatures;

    private final Boolean deletionProtection;

    private final String domain;

    private final String domainIAMRoleName;

    private final String domainFqdn;

    private final String domainOu;

    private final String domainAuthSecretArn;

    private final List domainDnsIps;

    private final String replicaMode;

    private final Integer maxAllocatedStorage;

    private final String customIamInstanceProfile;

    private final String networkType;

    private final Integer storageThroughput;

    private final Boolean enableCustomerOwnedIp;

    private final Integer allocatedStorage;

    private final String sourceDBClusterIdentifier;

    private final Boolean dedicatedLogVolume;

    private final Boolean upgradeStorageConfig;

    private final String caCertificateIdentifier;

    private final String sourceRegion;

    private CreateDbInstanceReadReplicaRequest(BuilderImpl builder) {
        super(builder);
        this.dbInstanceIdentifier = builder.dbInstanceIdentifier;
        this.sourceDBInstanceIdentifier = builder.sourceDBInstanceIdentifier;
        this.dbInstanceClass = builder.dbInstanceClass;
        this.availabilityZone = builder.availabilityZone;
        this.port = builder.port;
        this.multiAZ = builder.multiAZ;
        this.autoMinorVersionUpgrade = builder.autoMinorVersionUpgrade;
        this.iops = builder.iops;
        this.optionGroupName = builder.optionGroupName;
        this.dbParameterGroupName = builder.dbParameterGroupName;
        this.publiclyAccessible = builder.publiclyAccessible;
        this.tags = builder.tags;
        this.dbSubnetGroupName = builder.dbSubnetGroupName;
        this.vpcSecurityGroupIds = builder.vpcSecurityGroupIds;
        this.storageType = builder.storageType;
        this.copyTagsToSnapshot = builder.copyTagsToSnapshot;
        this.monitoringInterval = builder.monitoringInterval;
        this.monitoringRoleArn = builder.monitoringRoleArn;
        this.kmsKeyId = builder.kmsKeyId;
        this.preSignedUrl = builder.preSignedUrl;
        this.enableIAMDatabaseAuthentication = builder.enableIAMDatabaseAuthentication;
        this.enablePerformanceInsights = builder.enablePerformanceInsights;
        this.performanceInsightsKMSKeyId = builder.performanceInsightsKMSKeyId;
        this.performanceInsightsRetentionPeriod = builder.performanceInsightsRetentionPeriod;
        this.enableCloudwatchLogsExports = builder.enableCloudwatchLogsExports;
        this.processorFeatures = builder.processorFeatures;
        this.useDefaultProcessorFeatures = builder.useDefaultProcessorFeatures;
        this.deletionProtection = builder.deletionProtection;
        this.domain = builder.domain;
        this.domainIAMRoleName = builder.domainIAMRoleName;
        this.domainFqdn = builder.domainFqdn;
        this.domainOu = builder.domainOu;
        this.domainAuthSecretArn = builder.domainAuthSecretArn;
        this.domainDnsIps = builder.domainDnsIps;
        this.replicaMode = builder.replicaMode;
        this.maxAllocatedStorage = builder.maxAllocatedStorage;
        this.customIamInstanceProfile = builder.customIamInstanceProfile;
        this.networkType = builder.networkType;
        this.storageThroughput = builder.storageThroughput;
        this.enableCustomerOwnedIp = builder.enableCustomerOwnedIp;
        this.allocatedStorage = builder.allocatedStorage;
        this.sourceDBClusterIdentifier = builder.sourceDBClusterIdentifier;
        this.dedicatedLogVolume = builder.dedicatedLogVolume;
        this.upgradeStorageConfig = builder.upgradeStorageConfig;
        this.caCertificateIdentifier = builder.caCertificateIdentifier;
        this.sourceRegion = builder.sourceRegion;
    }

    /**
     * 

* The DB instance identifier of the read replica. This identifier is the unique key that identifies a DB instance. * This parameter is stored as a lowercase string. *

* * @return The DB instance identifier of the read replica. This identifier is the unique key that identifies a DB * instance. This parameter is stored as a lowercase string. */ public final String dbInstanceIdentifier() { return dbInstanceIdentifier; } /** *

* The identifier of the DB instance that will act as the source for the read replica. Each DB instance can have up * to 15 read replicas, with the exception of Oracle and SQL Server, which can have up to five. *

*

* Constraints: *

*
    *
  • *

    * Must be the identifier of an existing Db2, MariaDB, MySQL, Oracle, PostgreSQL, or SQL Server DB instance. *

    *
  • *
  • *

    * Can't be specified if the SourceDBClusterIdentifier parameter is also specified. *

    *
  • *
  • *

    * For the limitations of Oracle read replicas, see Version and licensing considerations for RDS for Oracle replicas in the Amazon RDS User Guide. *

    *
  • *
  • *

    * For the limitations of SQL Server read replicas, see Read replica limitations with SQL Server in the Amazon RDS User Guide. *

    *
  • *
  • *

    * The specified DB instance must have automatic backups enabled, that is, its backup retention period must be * greater than 0. *

    *
  • *
  • *

    * If the source DB instance is in the same Amazon Web Services Region as the read replica, specify a valid DB * instance identifier. *

    *
  • *
  • *

    * If the source DB instance is in a different Amazon Web Services Region from the read replica, specify a valid DB * instance ARN. For more information, see Constructing an ARN for Amazon RDS in the Amazon RDS User Guide. This doesn't apply to SQL Server or * RDS Custom, which don't support cross-Region replicas. *

    *
  • *
* * @return The identifier of the DB instance that will act as the source for the read replica. Each DB instance can * have up to 15 read replicas, with the exception of Oracle and SQL Server, which can have up to five.

*

* Constraints: *

*
    *
  • *

    * Must be the identifier of an existing Db2, MariaDB, MySQL, Oracle, PostgreSQL, or SQL Server DB instance. *

    *
  • *
  • *

    * Can't be specified if the SourceDBClusterIdentifier parameter is also specified. *

    *
  • *
  • *

    * For the limitations of Oracle read replicas, see Version and licensing considerations for RDS for Oracle replicas in the Amazon RDS User * Guide. *

    *
  • *
  • *

    * For the limitations of SQL Server read replicas, see Read replica limitations with SQL Server in the Amazon RDS User Guide. *

    *
  • *
  • *

    * The specified DB instance must have automatic backups enabled, that is, its backup retention period must * be greater than 0. *

    *
  • *
  • *

    * If the source DB instance is in the same Amazon Web Services Region as the read replica, specify a valid * DB instance identifier. *

    *
  • *
  • *

    * If the source DB instance is in a different Amazon Web Services Region from the read replica, specify a * valid DB instance ARN. For more information, see Constructing an ARN for Amazon RDS in the Amazon RDS User Guide. This doesn't apply to SQL * Server or RDS Custom, which don't support cross-Region replicas. *

    *
  • */ public final String sourceDBInstanceIdentifier() { return sourceDBInstanceIdentifier; } /** *

    * The compute and memory capacity of the read replica, for example db.m4.large. Not all DB instance classes are * available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance * classes, and availability for your engine, see DB Instance Class * in the Amazon RDS User Guide. *

    *

    * Default: Inherits the value from the source DB instance. *

    * * @return The compute and memory capacity of the read replica, for example db.m4.large. Not all DB instance classes * are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB * instance classes, and availability for your engine, see DB Instance * Class in the Amazon RDS User Guide.

    *

    * Default: Inherits the value from the source DB instance. */ public final String dbInstanceClass() { return dbInstanceClass; } /** *

    * The Availability Zone (AZ) where the read replica will be created. *

    *

    * Default: A random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region. *

    *

    * Example: us-east-1d *

    * * @return The Availability Zone (AZ) where the read replica will be created.

    *

    * Default: A random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region. *

    *

    * Example: us-east-1d */ public final String availabilityZone() { return availabilityZone; } /** *

    * The port number that the DB instance uses for connections. *

    *

    * Valid Values: 1150-65535 *

    *

    * Default: Inherits the value from the source DB instance. *

    * * @return The port number that the DB instance uses for connections.

    *

    * Valid Values: 1150-65535 *

    *

    * Default: Inherits the value from the source DB instance. */ public final Integer port() { return port; } /** *

    * Specifies whether the read replica is in a Multi-AZ deployment. *

    *

    * You can create a read replica as a Multi-AZ DB instance. RDS creates a standby of your replica in another * Availability Zone for failover support for the replica. Creating your read replica as a Multi-AZ DB instance is * independent of whether the source is a Multi-AZ DB instance or a Multi-AZ DB cluster. *

    *

    * This setting doesn't apply to RDS Custom DB instances. *

    * * @return Specifies whether the read replica is in a Multi-AZ deployment.

    *

    * You can create a read replica as a Multi-AZ DB instance. RDS creates a standby of your replica in another * Availability Zone for failover support for the replica. Creating your read replica as a Multi-AZ DB * instance is independent of whether the source is a Multi-AZ DB instance or a Multi-AZ DB cluster. *

    *

    * This setting doesn't apply to RDS Custom DB instances. */ public final Boolean multiAZ() { return multiAZ; } /** *

    * Specifies whether to automatically apply minor engine upgrades to the read replica during the maintenance window. *

    *

    * This setting doesn't apply to RDS Custom DB instances. *

    *

    * Default: Inherits the value from the source DB instance. *

    * * @return Specifies whether to automatically apply minor engine upgrades to the read replica during the maintenance * window.

    *

    * This setting doesn't apply to RDS Custom DB instances. *

    *

    * Default: Inherits the value from the source DB instance. */ public final Boolean autoMinorVersionUpgrade() { return autoMinorVersionUpgrade; } /** *

    * The amount of Provisioned IOPS (input/output operations per second) to initially allocate for the DB instance. *

    * * @return The amount of Provisioned IOPS (input/output operations per second) to initially allocate for the DB * instance. */ public final Integer iops() { return iops; } /** *

    * The option group to associate the DB instance with. If not specified, RDS uses the option group associated with * the source DB instance or cluster. *

    * *

    * For SQL Server, you must use the option group associated with the source. *

    *
    *

    * This setting doesn't apply to RDS Custom DB instances. *

    * * @return The option group to associate the DB instance with. If not specified, RDS uses the option group * associated with the source DB instance or cluster.

    *

    * For SQL Server, you must use the option group associated with the source. *

    *
    *

    * This setting doesn't apply to RDS Custom DB instances. */ public final String optionGroupName() { return optionGroupName; } /** *

    * The name of the DB parameter group to associate with this read replica DB instance. *

    *

    * For Single-AZ or Multi-AZ DB instance read replica instances, if you don't specify a value for * DBParameterGroupName, then Amazon RDS uses the DBParameterGroup of the source DB * instance for a same Region read replica, or the default DBParameterGroup for the specified DB engine * for a cross-Region read replica. *

    *

    * For Multi-AZ DB cluster same Region read replica instances, if you don't specify a value for * DBParameterGroupName, then Amazon RDS uses the default DBParameterGroup. *

    *

    * Specifying a parameter group for this operation is only supported for MySQL DB instances for cross-Region read * replicas, for Multi-AZ DB cluster read replica instances, and for Oracle DB instances. It isn't supported for * MySQL DB instances for same Region read replicas or for RDS Custom. *

    *

    * Constraints: *

    *
      *
    • *

      * Must be 1 to 255 letters, numbers, or hyphens. *

      *
    • *
    • *

      * First character must be a letter. *

      *
    • *
    • *

      * Can't end with a hyphen or contain two consecutive hyphens. *

      *
    • *
    * * @return The name of the DB parameter group to associate with this read replica DB instance.

    *

    * For Single-AZ or Multi-AZ DB instance read replica instances, if you don't specify a value for * DBParameterGroupName, then Amazon RDS uses the DBParameterGroup of the source * DB instance for a same Region read replica, or the default DBParameterGroup for the * specified DB engine for a cross-Region read replica. *

    *

    * For Multi-AZ DB cluster same Region read replica instances, if you don't specify a value for * DBParameterGroupName, then Amazon RDS uses the default DBParameterGroup. *

    *

    * Specifying a parameter group for this operation is only supported for MySQL DB instances for cross-Region * read replicas, for Multi-AZ DB cluster read replica instances, and for Oracle DB instances. It isn't * supported for MySQL DB instances for same Region read replicas or for RDS Custom. *

    *

    * Constraints: *

    *
      *
    • *

      * Must be 1 to 255 letters, numbers, or hyphens. *

      *
    • *
    • *

      * First character must be a letter. *

      *
    • *
    • *

      * Can't end with a hyphen or contain two consecutive hyphens. *

      *
    • */ public final String dbParameterGroupName() { return dbParameterGroupName; } /** *

      * Specifies whether the DB instance is publicly accessible. *

      *

      * When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP * address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from * outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. * That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it. *

      *

      * When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a * private IP address. *

      *

      * For more information, see CreateDBInstance. *

      * * @return Specifies whether the DB instance is publicly accessible.

      *

      * When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private * IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address * from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security * group it uses. That public access isn't permitted if the security group assigned to the DB cluster * doesn't permit it. *

      *

      * When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that * resolves to a private IP address. *

      *

      * For more information, see CreateDBInstance. */ public final Boolean publiclyAccessible() { return publiclyAccessible; } /** * For responses, this returns true if the service returned a value for the Tags property. This DOES NOT check that * the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). This is useful * because the SDK will never return a null collection or map, but you may need to differentiate between the service * returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true * if a value for the property was specified in the request builder, and false if a value was not specified. */ public final boolean hasTags() { return tags != null && !(tags instanceof SdkAutoConstructList); } /** * Returns the value of the Tags property for this object. *

      * Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

      *

      * This method will never return null. If you would like to know whether the service returned this field (so that * you can differentiate between null and empty), you can use the {@link #hasTags} method. *

      * * @return The value of the Tags property for this object. */ public final List tags() { return tags; } /** *

      * A DB subnet group for the DB instance. The new DB instance is created in the VPC associated with the DB subnet * group. If no DB subnet group is specified, then the new DB instance isn't created in a VPC. *

      *

      * Constraints: *

      *
        *
      • *

        * If supplied, must match the name of an existing DB subnet group. *

        *
      • *
      • *

        * The specified DB subnet group must be in the same Amazon Web Services Region in which the operation is running. *

        *
      • *
      • *

        * All read replicas in one Amazon Web Services Region that are created from the same source DB instance must * either: *

        *
          *
        • *

          * Specify DB subnet groups from the same VPC. All these read replicas are created in the same VPC. *

          *
        • *
        • *

          * Not specify a DB subnet group. All these read replicas are created outside of any VPC. *

          *
        • *
        *
      • *
      *

      * Example: mydbsubnetgroup *

      * * @return A DB subnet group for the DB instance. The new DB instance is created in the VPC associated with the DB * subnet group. If no DB subnet group is specified, then the new DB instance isn't created in a VPC.

      *

      * Constraints: *

      *
        *
      • *

        * If supplied, must match the name of an existing DB subnet group. *

        *
      • *
      • *

        * The specified DB subnet group must be in the same Amazon Web Services Region in which the operation is * running. *

        *
      • *
      • *

        * All read replicas in one Amazon Web Services Region that are created from the same source DB instance * must either: *

        *
          *
        • *

          * Specify DB subnet groups from the same VPC. All these read replicas are created in the same VPC. *

          *
        • *
        • *

          * Not specify a DB subnet group. All these read replicas are created outside of any VPC. *

          *
        • *
        *
      • *
      *

      * Example: mydbsubnetgroup */ public final String dbSubnetGroupName() { return dbSubnetGroupName; } /** * For responses, this returns true if the service returned a value for the VpcSecurityGroupIds property. This DOES * NOT check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). * This is useful because the SDK will never return a null collection or map, but you may need to differentiate * between the service returning nothing (or null) and the service returning an empty collection or map. For * requests, this returns true if a value for the property was specified in the request builder, and false if a * value was not specified. */ public final boolean hasVpcSecurityGroupIds() { return vpcSecurityGroupIds != null && !(vpcSecurityGroupIds instanceof SdkAutoConstructList); } /** *

      * A list of Amazon EC2 VPC security groups to associate with the read replica. *

      *

      * This setting doesn't apply to RDS Custom DB instances. *

      *

      * Default: The default EC2 VPC security group for the DB subnet group's VPC. *

      *

      * Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

      *

      * This method will never return null. If you would like to know whether the service returned this field (so that * you can differentiate between null and empty), you can use the {@link #hasVpcSecurityGroupIds} method. *

      * * @return A list of Amazon EC2 VPC security groups to associate with the read replica.

      *

      * This setting doesn't apply to RDS Custom DB instances. *

      *

      * Default: The default EC2 VPC security group for the DB subnet group's VPC. */ public final List vpcSecurityGroupIds() { return vpcSecurityGroupIds; } /** *

      * The storage type to associate with the read replica. *

      *

      * If you specify io1, io2, or gp3, you must also include a value for the * Iops parameter. *

      *

      * Valid Values: gp2 | gp3 | io1 | io2 | standard *

      *

      * Default: io1 if the Iops parameter is specified. Otherwise, gp2. *

      * * @return The storage type to associate with the read replica.

      *

      * If you specify io1, io2, or gp3, you must also include a value for * the Iops parameter. *

      *

      * Valid Values: gp2 | gp3 | io1 | io2 | standard *

      *

      * Default: io1 if the Iops parameter is specified. Otherwise, gp2. */ public final String storageType() { return storageType; } /** *

      * Specifies whether to copy all tags from the read replica to snapshots of the read replica. By default, tags * aren't copied. *

      * * @return Specifies whether to copy all tags from the read replica to snapshots of the read replica. By default, * tags aren't copied. */ public final Boolean copyTagsToSnapshot() { return copyTagsToSnapshot; } /** *

      * The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the read replica. To * disable collection of Enhanced Monitoring metrics, specify 0. The default is 0. *

      *

      * If MonitoringRoleArn is specified, then you must set MonitoringInterval to a value * other than 0. *

      *

      * This setting doesn't apply to RDS Custom DB instances. *

      *

      * Valid Values: 0, 1, 5, 10, 15, 30, 60 *

      *

      * Default: 0 *

      * * @return The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the read * replica. To disable collection of Enhanced Monitoring metrics, specify 0. The default is * 0.

      *

      * If MonitoringRoleArn is specified, then you must set MonitoringInterval to a * value other than 0. *

      *

      * This setting doesn't apply to RDS Custom DB instances. *

      *

      * Valid Values: 0, 1, 5, 10, 15, 30, 60 *

      *

      * Default: 0 */ public final Integer monitoringInterval() { return monitoringInterval; } /** *

      * The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For * example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, go * to To * create an IAM role for Amazon RDS Enhanced Monitoring in the Amazon RDS User Guide. *

      *

      * If MonitoringInterval is set to a value other than 0, then you must supply a * MonitoringRoleArn value. *

      *

      * This setting doesn't apply to RDS Custom DB instances. *

      * * @return The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. * For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a * monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring in the Amazon RDS User Guide.

      *

      * If MonitoringInterval is set to a value other than 0, then you must supply a * MonitoringRoleArn value. *

      *

      * This setting doesn't apply to RDS Custom DB instances. */ public final String monitoringRoleArn() { return monitoringRoleArn; } /** *

      * The Amazon Web Services KMS key identifier for an encrypted read replica. *

      *

      * The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. *

      *

      * If you create an encrypted read replica in the same Amazon Web Services Region as the source DB instance or * Multi-AZ DB cluster, don't specify a value for this parameter. A read replica in the same Amazon Web Services * Region is always encrypted with the same KMS key as the source DB instance or cluster. *

      *

      * If you create an encrypted read replica in a different Amazon Web Services Region, then you must specify a KMS * key identifier for the destination Amazon Web Services Region. KMS keys are specific to the Amazon Web Services * Region that they are created in, and you can't use KMS keys from one Amazon Web Services Region in another Amazon * Web Services Region. *

      *

      * You can't create an encrypted read replica from an unencrypted DB instance or Multi-AZ DB cluster. *

      *

      * This setting doesn't apply to RDS Custom, which uses the same KMS key as the primary replica. *

      * * @return The Amazon Web Services KMS key identifier for an encrypted read replica.

      *

      * The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS * key. *

      *

      * If you create an encrypted read replica in the same Amazon Web Services Region as the source DB instance * or Multi-AZ DB cluster, don't specify a value for this parameter. A read replica in the same Amazon Web * Services Region is always encrypted with the same KMS key as the source DB instance or cluster. *

      *

      * If you create an encrypted read replica in a different Amazon Web Services Region, then you must specify * a KMS key identifier for the destination Amazon Web Services Region. KMS keys are specific to the Amazon * Web Services Region that they are created in, and you can't use KMS keys from one Amazon Web Services * Region in another Amazon Web Services Region. *

      *

      * You can't create an encrypted read replica from an unencrypted DB instance or Multi-AZ DB cluster. *

      *

      * This setting doesn't apply to RDS Custom, which uses the same KMS key as the primary replica. */ public final String kmsKeyId() { return kmsKeyId; } /** *

      * When you are creating a read replica from one Amazon Web Services GovCloud (US) Region to another or from one * China Amazon Web Services Region to another, the URL that contains a Signature Version 4 signed request for the * CreateDBInstanceReadReplica API operation in the source Amazon Web Services Region that contains the * source DB instance. *

      *

      * This setting applies only to Amazon Web Services GovCloud (US) Regions and China Amazon Web Services Regions. * It's ignored in other Amazon Web Services Regions. *

      *

      * This setting applies only when replicating from a source DB instance. Source DB clusters aren't supported * in Amazon Web Services GovCloud (US) Regions and China Amazon Web Services Regions. *

      *

      * You must specify this parameter when you create an encrypted read replica from another Amazon Web Services Region * by using the Amazon RDS API. Don't specify PreSignedUrl when you are creating an encrypted read * replica in the same Amazon Web Services Region. *

      *

      * The presigned URL must be a valid request for the CreateDBInstanceReadReplica API operation that can * run in the source Amazon Web Services Region that contains the encrypted source DB instance. The presigned URL * request must contain the following parameter values: *

      *
        *
      • *

        * DestinationRegion - The Amazon Web Services Region that the encrypted read replica is created in. * This Amazon Web Services Region is the same one where the CreateDBInstanceReadReplica operation is * called that contains this presigned URL. *

        *

        * For example, if you create an encrypted DB instance in the us-west-1 Amazon Web Services Region, from a source DB * instance in the us-east-2 Amazon Web Services Region, then you call the CreateDBInstanceReadReplica * operation in the us-east-1 Amazon Web Services Region and provide a presigned URL that contains a call to the * CreateDBInstanceReadReplica operation in the us-west-2 Amazon Web Services Region. For this example, * the DestinationRegion in the presigned URL must be set to the us-east-1 Amazon Web Services Region. *

        *
      • *
      • *

        * KmsKeyId - The KMS key identifier for the key to use to encrypt the read replica in the destination * Amazon Web Services Region. This is the same identifier for both the CreateDBInstanceReadReplica * operation that is called in the destination Amazon Web Services Region, and the operation contained in the * presigned URL. *

        *
      • *
      • *

        * SourceDBInstanceIdentifier - The DB instance identifier for the encrypted DB instance to be * replicated. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services * Region. For example, if you are creating an encrypted read replica from a DB instance in the us-west-2 Amazon Web * Services Region, then your SourceDBInstanceIdentifier looks like the following example: * arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-20161115. *

        *
      • *
      *

      * To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: * Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing * Process. *

      * *

      * If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or * --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying * SourceRegion autogenerates a presigned URL that is a valid request for the operation that can run in * the source Amazon Web Services Region. *

      *
      *

      * This setting doesn't apply to RDS Custom DB instances. *

      * * @return When you are creating a read replica from one Amazon Web Services GovCloud (US) Region to another or from * one China Amazon Web Services Region to another, the URL that contains a Signature Version 4 signed * request for the CreateDBInstanceReadReplica API operation in the source Amazon Web Services * Region that contains the source DB instance.

      *

      * This setting applies only to Amazon Web Services GovCloud (US) Regions and China Amazon Web Services * Regions. It's ignored in other Amazon Web Services Regions. *

      *

      * This setting applies only when replicating from a source DB instance. Source DB clusters aren't * supported in Amazon Web Services GovCloud (US) Regions and China Amazon Web Services Regions. *

      *

      * You must specify this parameter when you create an encrypted read replica from another Amazon Web * Services Region by using the Amazon RDS API. Don't specify PreSignedUrl when you are * creating an encrypted read replica in the same Amazon Web Services Region. *

      *

      * The presigned URL must be a valid request for the CreateDBInstanceReadReplica API operation * that can run in the source Amazon Web Services Region that contains the encrypted source DB instance. The * presigned URL request must contain the following parameter values: *

      *
        *
      • *

        * DestinationRegion - The Amazon Web Services Region that the encrypted read replica is * created in. This Amazon Web Services Region is the same one where the * CreateDBInstanceReadReplica operation is called that contains this presigned URL. *

        *

        * For example, if you create an encrypted DB instance in the us-west-1 Amazon Web Services Region, from a * source DB instance in the us-east-2 Amazon Web Services Region, then you call the * CreateDBInstanceReadReplica operation in the us-east-1 Amazon Web Services Region and * provide a presigned URL that contains a call to the CreateDBInstanceReadReplica operation in * the us-west-2 Amazon Web Services Region. For this example, the DestinationRegion in the * presigned URL must be set to the us-east-1 Amazon Web Services Region. *

        *
      • *
      • *

        * KmsKeyId - The KMS key identifier for the key to use to encrypt the read replica in the * destination Amazon Web Services Region. This is the same identifier for both the * CreateDBInstanceReadReplica operation that is called in the destination Amazon Web Services * Region, and the operation contained in the presigned URL. *

        *
      • *
      • *

        * SourceDBInstanceIdentifier - The DB instance identifier for the encrypted DB instance to be * replicated. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web * Services Region. For example, if you are creating an encrypted read replica from a DB instance in the * us-west-2 Amazon Web Services Region, then your SourceDBInstanceIdentifier looks like the * following example: arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-20161115. *

        *
      • *
      *

      * To learn how to generate a Signature Version 4 signed request, see Authenticating * Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing * Process. *

      * *

      * If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion * (or --source-region for the CLI) instead of specifying PreSignedUrl manually. * Specifying SourceRegion autogenerates a presigned URL that is a valid request for the * operation that can run in the source Amazon Web Services Region. *

      *
      *

      * This setting doesn't apply to RDS Custom DB instances. */ public final String preSignedUrl() { return preSignedUrl; } /** *

      * Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to * database accounts. By default, mapping isn't enabled. *

      *

      * For more information about IAM database authentication, see IAM Database * Authentication for MySQL and PostgreSQL in the Amazon RDS User Guide. *

      *

      * This setting doesn't apply to RDS Custom DB instances. *

      * * @return Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts * to database accounts. By default, mapping isn't enabled.

      *

      * For more information about IAM database authentication, see IAM Database * Authentication for MySQL and PostgreSQL in the Amazon RDS User Guide. *

      *

      * This setting doesn't apply to RDS Custom DB instances. */ public final Boolean enableIAMDatabaseAuthentication() { return enableIAMDatabaseAuthentication; } /** *

      * Specifies whether to enable Performance Insights for the read replica. *

      *

      * For more information, see Using Amazon Performance * Insights in the Amazon RDS User Guide. *

      *

      * This setting doesn't apply to RDS Custom DB instances. *

      * * @return Specifies whether to enable Performance Insights for the read replica.

      *

      * For more information, see Using Amazon * Performance Insights in the Amazon RDS User Guide. *

      *

      * This setting doesn't apply to RDS Custom DB instances. */ public final Boolean enablePerformanceInsights() { return enablePerformanceInsights; } /** *

      * The Amazon Web Services KMS key identifier for encryption of Performance Insights data. *

      *

      * The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. *

      *

      * If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS uses your default KMS * key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a * different default KMS key for each Amazon Web Services Region. *

      *

      * This setting doesn't apply to RDS Custom DB instances. *

      * * @return The Amazon Web Services KMS key identifier for encryption of Performance Insights data.

      *

      * The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS * key. *

      *

      * If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS uses your * default KMS key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web * Services account has a different default KMS key for each Amazon Web Services Region. *

      *

      * This setting doesn't apply to RDS Custom DB instances. */ public final String performanceInsightsKMSKeyId() { return performanceInsightsKMSKeyId; } /** *

      * The number of days to retain Performance Insights data. *

      *

      * This setting doesn't apply to RDS Custom DB instances. *

      *

      * Valid Values: *

      *
        *
      • *

        * 7 *

        *
      • *
      • *

        * month * 31, where month is a number of months from 1-23. Examples: 93 (3 months * 31), * 341 (11 months * 31), 589 (19 months * 31) *

        *
      • *
      • *

        * 731 *

        *
      • *
      *

      * Default: 7 days *

      *

      * If you specify a retention period that isn't valid, such as 94, Amazon RDS returns an error. *

      * * @return The number of days to retain Performance Insights data.

      *

      * This setting doesn't apply to RDS Custom DB instances. *

      *

      * Valid Values: *

      *
        *
      • *

        * 7 *

        *
      • *
      • *

        * month * 31, where month is a number of months from 1-23. Examples: 93 (3 * months * 31), 341 (11 months * 31), 589 (19 months * 31) *

        *
      • *
      • *

        * 731 *

        *
      • *
      *

      * Default: 7 days *

      *

      * If you specify a retention period that isn't valid, such as 94, Amazon RDS returns an error. */ public final Integer performanceInsightsRetentionPeriod() { return performanceInsightsRetentionPeriod; } /** * For responses, this returns true if the service returned a value for the EnableCloudwatchLogsExports property. * This DOES NOT check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the * property). This is useful because the SDK will never return a null collection or map, but you may need to * differentiate between the service returning nothing (or null) and the service returning an empty collection or * map. For requests, this returns true if a value for the property was specified in the request builder, and false * if a value was not specified. */ public final boolean hasEnableCloudwatchLogsExports() { return enableCloudwatchLogsExports != null && !(enableCloudwatchLogsExports instanceof SdkAutoConstructList); } /** *

      * The list of logs that the new DB instance is to export to CloudWatch Logs. The values in the list depend on the * DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide. *

      *

      * This setting doesn't apply to RDS Custom DB instances. *

      *

      * Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

      *

      * This method will never return null. If you would like to know whether the service returned this field (so that * you can differentiate between null and empty), you can use the {@link #hasEnableCloudwatchLogsExports} method. *

      * * @return The list of logs that the new DB instance is to export to CloudWatch Logs. The values in the list depend * on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.

      *

      * This setting doesn't apply to RDS Custom DB instances. */ public final List enableCloudwatchLogsExports() { return enableCloudwatchLogsExports; } /** * For responses, this returns true if the service returned a value for the ProcessorFeatures property. This DOES * NOT check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). * This is useful because the SDK will never return a null collection or map, but you may need to differentiate * between the service returning nothing (or null) and the service returning an empty collection or map. For * requests, this returns true if a value for the property was specified in the request builder, and false if a * value was not specified. */ public final boolean hasProcessorFeatures() { return processorFeatures != null && !(processorFeatures instanceof SdkAutoConstructList); } /** *

      * The number of CPU cores and the number of threads per core for the DB instance class of the DB instance. *

      *

      * This setting doesn't apply to RDS Custom DB instances. *

      *

      * Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

      *

      * This method will never return null. If you would like to know whether the service returned this field (so that * you can differentiate between null and empty), you can use the {@link #hasProcessorFeatures} method. *

      * * @return The number of CPU cores and the number of threads per core for the DB instance class of the DB * instance.

      *

      * This setting doesn't apply to RDS Custom DB instances. */ public final List processorFeatures() { return processorFeatures; } /** *

      * Specifies whether the DB instance class of the DB instance uses its default processor features. *

      *

      * This setting doesn't apply to RDS Custom DB instances. *

      * * @return Specifies whether the DB instance class of the DB instance uses its default processor features.

      *

      * This setting doesn't apply to RDS Custom DB instances. */ public final Boolean useDefaultProcessorFeatures() { return useDefaultProcessorFeatures; } /** *

      * Specifies whether to enable deletion protection for the DB instance. The database can't be deleted when deletion * protection is enabled. By default, deletion protection isn't enabled. For more information, see Deleting a DB * Instance. *

      * * @return Specifies whether to enable deletion protection for the DB instance. The database can't be deleted when * deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see * Deleting a DB * Instance. */ public final Boolean deletionProtection() { return deletionProtection; } /** *

      * The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, * Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. *

      *

      * For more information, see Kerberos * Authentication in the Amazon RDS User Guide. *

      *

      * This setting doesn't apply to RDS Custom DB instances. *

      * * @return The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL * Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.

      *

      * For more information, see Kerberos * Authentication in the Amazon RDS User Guide. *

      *

      * This setting doesn't apply to RDS Custom DB instances. */ public final String domain() { return domain; } /** *

      * The name of the IAM role to use when making API calls to the Directory Service. *

      *

      * This setting doesn't apply to RDS Custom DB instances. *

      * * @return The name of the IAM role to use when making API calls to the Directory Service.

      *

      * This setting doesn't apply to RDS Custom DB instances. */ public final String domainIAMRoleName() { return domainIAMRoleName; } /** *

      * The fully qualified domain name (FQDN) of an Active Directory domain. *

      *

      * Constraints: *

      *
        *
      • *

        * Can't be longer than 64 characters. *

        *
      • *
      *

      * Example: mymanagedADtest.mymanagedAD.mydomain *

      * * @return The fully qualified domain name (FQDN) of an Active Directory domain.

      *

      * Constraints: *

      *
        *
      • *

        * Can't be longer than 64 characters. *

        *
      • *
      *

      * Example: mymanagedADtest.mymanagedAD.mydomain */ public final String domainFqdn() { return domainFqdn; } /** *

      * The Active Directory organizational unit for your DB instance to join. *

      *

      * Constraints: *

      *
        *
      • *

        * Must be in the distinguished name format. *

        *
      • *
      • *

        * Can't be longer than 64 characters. *

        *
      • *
      *

      * Example: OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain *

      * * @return The Active Directory organizational unit for your DB instance to join.

      *

      * Constraints: *

      *
        *
      • *

        * Must be in the distinguished name format. *

        *
      • *
      • *

        * Can't be longer than 64 characters. *

        *
      • *
      *

      * Example: OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain */ public final String domainOu() { return domainOu; } /** *

      * The ARN for the Secrets Manager secret with the credentials for the user joining the domain. *

      *

      * Example: arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456 *

      * * @return The ARN for the Secrets Manager secret with the credentials for the user joining the domain.

      *

      * Example: * arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456 */ public final String domainAuthSecretArn() { return domainAuthSecretArn; } /** * For responses, this returns true if the service returned a value for the DomainDnsIps property. This DOES NOT * check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). * This is useful because the SDK will never return a null collection or map, but you may need to differentiate * between the service returning nothing (or null) and the service returning an empty collection or map. For * requests, this returns true if a value for the property was specified in the request builder, and false if a * value was not specified. */ public final boolean hasDomainDnsIps() { return domainDnsIps != null && !(domainDnsIps instanceof SdkAutoConstructList); } /** *

      * The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers. *

      *

      * Constraints: *

      *
        *
      • *

        * Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of the * primary domain controller for both entries in the list. *

        *
      • *
      *

      * Example: 123.124.125.126,234.235.236.237 *

      *

      * Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

      *

      * This method will never return null. If you would like to know whether the service returned this field (so that * you can differentiate between null and empty), you can use the {@link #hasDomainDnsIps} method. *

      * * @return The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.

      *

      * Constraints: *

      *
        *
      • *

        * Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of * the primary domain controller for both entries in the list. *

        *
      • *
      *

      * Example: 123.124.125.126,234.235.236.237 */ public final List domainDnsIps() { return domainDnsIps; } /** *

      * The open mode of the replica database: mounted or read-only. *

      * *

      * This parameter is only supported for Oracle DB instances. *

      *
      *

      * Mounted DB replicas are included in Oracle Database Enterprise Edition. The main use case for mounted replicas is * cross-Region disaster recovery. The primary database doesn't use Active Data Guard to transmit information to the * mounted replica. Because it doesn't accept user connections, a mounted replica can't serve a read-only workload. *

      *

      * You can create a combination of mounted and read-only DB replicas for the same primary DB instance. For more * information, see Working with Oracle Read * Replicas for Amazon RDS in the Amazon RDS User Guide. *

      *

      * For RDS Custom, you must specify this parameter and set it to mounted. The value won't be set by * default. After replica creation, you can manage the open mode manually. *

      *

      * If the service returns an enum value that is not available in the current SDK version, {@link #replicaMode} will * return {@link ReplicaMode#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from * {@link #replicaModeAsString}. *

      * * @return The open mode of the replica database: mounted or read-only.

      *

      * This parameter is only supported for Oracle DB instances. *

      *
      *

      * Mounted DB replicas are included in Oracle Database Enterprise Edition. The main use case for mounted * replicas is cross-Region disaster recovery. The primary database doesn't use Active Data Guard to * transmit information to the mounted replica. Because it doesn't accept user connections, a mounted * replica can't serve a read-only workload. *

      *

      * You can create a combination of mounted and read-only DB replicas for the same primary DB instance. For * more information, see Working with * Oracle Read Replicas for Amazon RDS in the Amazon RDS User Guide. *

      *

      * For RDS Custom, you must specify this parameter and set it to mounted. The value won't be * set by default. After replica creation, you can manage the open mode manually. * @see ReplicaMode */ public final ReplicaMode replicaMode() { return ReplicaMode.fromValue(replicaMode); } /** *

      * The open mode of the replica database: mounted or read-only. *

      * *

      * This parameter is only supported for Oracle DB instances. *

      *
      *

      * Mounted DB replicas are included in Oracle Database Enterprise Edition. The main use case for mounted replicas is * cross-Region disaster recovery. The primary database doesn't use Active Data Guard to transmit information to the * mounted replica. Because it doesn't accept user connections, a mounted replica can't serve a read-only workload. *

      *

      * You can create a combination of mounted and read-only DB replicas for the same primary DB instance. For more * information, see Working with Oracle Read * Replicas for Amazon RDS in the Amazon RDS User Guide. *

      *

      * For RDS Custom, you must specify this parameter and set it to mounted. The value won't be set by * default. After replica creation, you can manage the open mode manually. *

      *

      * If the service returns an enum value that is not available in the current SDK version, {@link #replicaMode} will * return {@link ReplicaMode#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from * {@link #replicaModeAsString}. *

      * * @return The open mode of the replica database: mounted or read-only.

      *

      * This parameter is only supported for Oracle DB instances. *

      *
      *

      * Mounted DB replicas are included in Oracle Database Enterprise Edition. The main use case for mounted * replicas is cross-Region disaster recovery. The primary database doesn't use Active Data Guard to * transmit information to the mounted replica. Because it doesn't accept user connections, a mounted * replica can't serve a read-only workload. *

      *

      * You can create a combination of mounted and read-only DB replicas for the same primary DB instance. For * more information, see Working with * Oracle Read Replicas for Amazon RDS in the Amazon RDS User Guide. *

      *

      * For RDS Custom, you must specify this parameter and set it to mounted. The value won't be * set by default. After replica creation, you can manage the open mode manually. * @see ReplicaMode */ public final String replicaModeAsString() { return replicaMode; } /** *

      * The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB instance. *

      *

      * For more information about this setting, including limitations that apply to it, see * Managing capacity automatically with Amazon RDS storage autoscaling in the Amazon RDS User Guide. *

      * * @return The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB * instance.

      *

      * For more information about this setting, including limitations that apply to it, see Managing capacity automatically with Amazon RDS storage autoscaling in the Amazon RDS User * Guide. */ public final Integer maxAllocatedStorage() { return maxAllocatedStorage; } /** *

      * The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The * instance profile must meet the following requirements: *

      *
        *
      • *

        * The profile must exist in your account. *

        *
      • *
      • *

        * The profile must have an IAM role that Amazon EC2 has permissions to assume. *

        *
      • *
      • *

        * The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom. *

        *
      • *
      *

      * For the list of permissions required for the IAM role, see * Configure IAM and your VPC in the Amazon RDS User Guide. *

      *

      * This setting is required for RDS Custom DB instances. *

      * * @return The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The * instance profile must meet the following requirements:

      *
        *
      • *

        * The profile must exist in your account. *

        *
      • *
      • *

        * The profile must have an IAM role that Amazon EC2 has permissions to assume. *

        *
      • *
      • *

        * The instance profile name and the associated IAM role name must start with the prefix * AWSRDSCustom. *

        *
      • *
      *

      * For the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide. *

      *

      * This setting is required for RDS Custom DB instances. */ public final String customIamInstanceProfile() { return customIamInstanceProfile; } /** *

      * The network type of the DB instance. *

      *

      * Valid Values: *

      *
        *
      • *

        * IPV4 *

        *
      • *
      • *

        * DUAL *

        *
      • *
      *

      * The network type is determined by the DBSubnetGroup specified for read replica. A * DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols ( * DUAL). *

      *

      * For more information, see Working * with a DB instance in a VPC in the Amazon RDS User Guide. *

      * * @return The network type of the DB instance.

      *

      * Valid Values: *

      *
        *
      • *

        * IPV4 *

        *
      • *
      • *

        * DUAL *

        *
      • *
      *

      * The network type is determined by the DBSubnetGroup specified for read replica. A * DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols ( * DUAL). *

      *

      * For more information, see * Working with a DB instance in a VPC in the Amazon RDS User Guide. */ public final String networkType() { return networkType; } /** *

      * Specifies the storage throughput value for the read replica. *

      *

      * This setting doesn't apply to RDS Custom or Amazon Aurora DB instances. *

      * * @return Specifies the storage throughput value for the read replica.

      *

      * This setting doesn't apply to RDS Custom or Amazon Aurora DB instances. */ public final Integer storageThroughput() { return storageThroughput; } /** *

      * Specifies whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts read replica. *

      *

      * A CoIP provides local or external connectivity to resources in your Outpost subnets through your * on-premises network. For some use cases, a CoIP can provide lower latency for connections to the read replica * from outside of its virtual private cloud (VPC) on your local network. *

      *

      * For more information about RDS on Outposts, see Working with Amazon RDS on * Amazon Web Services Outposts in the Amazon RDS User Guide. *

      *

      * For more information about CoIPs, see Customer-owned IP * addresses in the Amazon Web Services Outposts User Guide. *

      * * @return Specifies whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts read replica.

      *

      * A CoIP provides local or external connectivity to resources in your Outpost subnets through your * on-premises network. For some use cases, a CoIP can provide lower latency for connections to the read * replica from outside of its virtual private cloud (VPC) on your local network. *

      *

      * For more information about RDS on Outposts, see Working with Amazon * RDS on Amazon Web Services Outposts in the Amazon RDS User Guide. *

      *

      * For more information about CoIPs, see Customer-owned IP * addresses in the Amazon Web Services Outposts User Guide. */ public final Boolean enableCustomerOwnedIp() { return enableCustomerOwnedIp; } /** *

      * The amount of storage (in gibibytes) to allocate initially for the read replica. Follow the allocation rules * specified in CreateDBInstance. *

      * *

      * Be sure to allocate enough storage for your read replica so that the create operation can succeed. You can also * allocate additional storage for future growth. *

      *
      * * @return The amount of storage (in gibibytes) to allocate initially for the read replica. Follow the allocation * rules specified in CreateDBInstance.

      *

      * Be sure to allocate enough storage for your read replica so that the create operation can succeed. You * can also allocate additional storage for future growth. *

      */ public final Integer allocatedStorage() { return allocatedStorage; } /** *

      * The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB cluster can * have up to 15 read replicas. *

      *

      * Constraints: *

      *
        *
      • *

        * Must be the identifier of an existing Multi-AZ DB cluster. *

        *
      • *
      • *

        * Can't be specified if the SourceDBInstanceIdentifier parameter is also specified. *

        *
      • *
      • *

        * The specified DB cluster must have automatic backups enabled, that is, its backup retention period must be * greater than 0. *

        *
      • *
      • *

        * The source DB cluster must be in the same Amazon Web Services Region as the read replica. Cross-Region * replication isn't supported. *

        *
      • *
      * * @return The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB * cluster can have up to 15 read replicas.

      *

      * Constraints: *

      *
        *
      • *

        * Must be the identifier of an existing Multi-AZ DB cluster. *

        *
      • *
      • *

        * Can't be specified if the SourceDBInstanceIdentifier parameter is also specified. *

        *
      • *
      • *

        * The specified DB cluster must have automatic backups enabled, that is, its backup retention period must * be greater than 0. *

        *
      • *
      • *

        * The source DB cluster must be in the same Amazon Web Services Region as the read replica. Cross-Region * replication isn't supported. *

        *
      • */ public final String sourceDBClusterIdentifier() { return sourceDBClusterIdentifier; } /** *

        * Indicates whether the DB instance has a dedicated log volume (DLV) enabled. *

        * * @return Indicates whether the DB instance has a dedicated log volume (DLV) enabled. */ public final Boolean dedicatedLogVolume() { return dedicatedLogVolume; } /** *

        * Whether to upgrade the storage file system configuration on the read replica. This option migrates the read * replica from the old storage file system layout to the preferred layout. *

        * * @return Whether to upgrade the storage file system configuration on the read replica. This option migrates the * read replica from the old storage file system layout to the preferred layout. */ public final Boolean upgradeStorageConfig() { return upgradeStorageConfig; } /** *

        * The CA certificate identifier to use for the read replica's server certificate. *

        *

        * This setting doesn't apply to RDS Custom DB instances. *

        *

        * For more information, see Using SSL/TLS to encrypt a * connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to * encrypt a connection to a DB cluster in the Amazon Aurora User Guide. *

        * * @return The CA certificate identifier to use for the read replica's server certificate.

        *

        * This setting doesn't apply to RDS Custom DB instances. *

        *

        * For more information, see Using SSL/TLS to * encrypt a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS * to encrypt a connection to a DB cluster in the Amazon Aurora User Guide. */ public final String caCertificateIdentifier() { return caCertificateIdentifier; } /** * If PreSignedUrl is not specified, this is the region where the source snapshot is located. A PreSignedUrl will be * generated automatically by the SDK. * * @return If PreSignedUrl is not specified, this is the region where the source snapshot is located. A PreSignedUrl * will be generated automatically by the SDK. */ public final String sourceRegion() { return sourceRegion; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public final int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + super.hashCode(); hashCode = 31 * hashCode + Objects.hashCode(dbInstanceIdentifier()); hashCode = 31 * hashCode + Objects.hashCode(sourceDBInstanceIdentifier()); hashCode = 31 * hashCode + Objects.hashCode(dbInstanceClass()); hashCode = 31 * hashCode + Objects.hashCode(availabilityZone()); hashCode = 31 * hashCode + Objects.hashCode(port()); hashCode = 31 * hashCode + Objects.hashCode(multiAZ()); hashCode = 31 * hashCode + Objects.hashCode(autoMinorVersionUpgrade()); hashCode = 31 * hashCode + Objects.hashCode(iops()); hashCode = 31 * hashCode + Objects.hashCode(optionGroupName()); hashCode = 31 * hashCode + Objects.hashCode(dbParameterGroupName()); hashCode = 31 * hashCode + Objects.hashCode(publiclyAccessible()); hashCode = 31 * hashCode + Objects.hashCode(hasTags() ? tags() : null); hashCode = 31 * hashCode + Objects.hashCode(dbSubnetGroupName()); hashCode = 31 * hashCode + Objects.hashCode(hasVpcSecurityGroupIds() ? vpcSecurityGroupIds() : null); hashCode = 31 * hashCode + Objects.hashCode(storageType()); hashCode = 31 * hashCode + Objects.hashCode(copyTagsToSnapshot()); hashCode = 31 * hashCode + Objects.hashCode(monitoringInterval()); hashCode = 31 * hashCode + Objects.hashCode(monitoringRoleArn()); hashCode = 31 * hashCode + Objects.hashCode(kmsKeyId()); hashCode = 31 * hashCode + Objects.hashCode(preSignedUrl()); hashCode = 31 * hashCode + Objects.hashCode(enableIAMDatabaseAuthentication()); hashCode = 31 * hashCode + Objects.hashCode(enablePerformanceInsights()); hashCode = 31 * hashCode + Objects.hashCode(performanceInsightsKMSKeyId()); hashCode = 31 * hashCode + Objects.hashCode(performanceInsightsRetentionPeriod()); hashCode = 31 * hashCode + Objects.hashCode(hasEnableCloudwatchLogsExports() ? enableCloudwatchLogsExports() : null); hashCode = 31 * hashCode + Objects.hashCode(hasProcessorFeatures() ? processorFeatures() : null); hashCode = 31 * hashCode + Objects.hashCode(useDefaultProcessorFeatures()); hashCode = 31 * hashCode + Objects.hashCode(deletionProtection()); hashCode = 31 * hashCode + Objects.hashCode(domain()); hashCode = 31 * hashCode + Objects.hashCode(domainIAMRoleName()); hashCode = 31 * hashCode + Objects.hashCode(domainFqdn()); hashCode = 31 * hashCode + Objects.hashCode(domainOu()); hashCode = 31 * hashCode + Objects.hashCode(domainAuthSecretArn()); hashCode = 31 * hashCode + Objects.hashCode(hasDomainDnsIps() ? domainDnsIps() : null); hashCode = 31 * hashCode + Objects.hashCode(replicaModeAsString()); hashCode = 31 * hashCode + Objects.hashCode(maxAllocatedStorage()); hashCode = 31 * hashCode + Objects.hashCode(customIamInstanceProfile()); hashCode = 31 * hashCode + Objects.hashCode(networkType()); hashCode = 31 * hashCode + Objects.hashCode(storageThroughput()); hashCode = 31 * hashCode + Objects.hashCode(enableCustomerOwnedIp()); hashCode = 31 * hashCode + Objects.hashCode(allocatedStorage()); hashCode = 31 * hashCode + Objects.hashCode(sourceDBClusterIdentifier()); hashCode = 31 * hashCode + Objects.hashCode(dedicatedLogVolume()); hashCode = 31 * hashCode + Objects.hashCode(upgradeStorageConfig()); hashCode = 31 * hashCode + Objects.hashCode(caCertificateIdentifier()); hashCode = 31 * hashCode + Objects.hashCode(sourceRegion()); 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 CreateDbInstanceReadReplicaRequest)) { return false; } CreateDbInstanceReadReplicaRequest other = (CreateDbInstanceReadReplicaRequest) obj; return Objects.equals(dbInstanceIdentifier(), other.dbInstanceIdentifier()) && Objects.equals(sourceDBInstanceIdentifier(), other.sourceDBInstanceIdentifier()) && Objects.equals(dbInstanceClass(), other.dbInstanceClass()) && Objects.equals(availabilityZone(), other.availabilityZone()) && Objects.equals(port(), other.port()) && Objects.equals(multiAZ(), other.multiAZ()) && Objects.equals(autoMinorVersionUpgrade(), other.autoMinorVersionUpgrade()) && Objects.equals(iops(), other.iops()) && Objects.equals(optionGroupName(), other.optionGroupName()) && Objects.equals(dbParameterGroupName(), other.dbParameterGroupName()) && Objects.equals(publiclyAccessible(), other.publiclyAccessible()) && hasTags() == other.hasTags() && Objects.equals(tags(), other.tags()) && Objects.equals(dbSubnetGroupName(), other.dbSubnetGroupName()) && hasVpcSecurityGroupIds() == other.hasVpcSecurityGroupIds() && Objects.equals(vpcSecurityGroupIds(), other.vpcSecurityGroupIds()) && Objects.equals(storageType(), other.storageType()) && Objects.equals(copyTagsToSnapshot(), other.copyTagsToSnapshot()) && Objects.equals(monitoringInterval(), other.monitoringInterval()) && Objects.equals(monitoringRoleArn(), other.monitoringRoleArn()) && Objects.equals(kmsKeyId(), other.kmsKeyId()) && Objects.equals(preSignedUrl(), other.preSignedUrl()) && Objects.equals(enableIAMDatabaseAuthentication(), other.enableIAMDatabaseAuthentication()) && Objects.equals(enablePerformanceInsights(), other.enablePerformanceInsights()) && Objects.equals(performanceInsightsKMSKeyId(), other.performanceInsightsKMSKeyId()) && Objects.equals(performanceInsightsRetentionPeriod(), other.performanceInsightsRetentionPeriod()) && hasEnableCloudwatchLogsExports() == other.hasEnableCloudwatchLogsExports() && Objects.equals(enableCloudwatchLogsExports(), other.enableCloudwatchLogsExports()) && hasProcessorFeatures() == other.hasProcessorFeatures() && Objects.equals(processorFeatures(), other.processorFeatures()) && Objects.equals(useDefaultProcessorFeatures(), other.useDefaultProcessorFeatures()) && Objects.equals(deletionProtection(), other.deletionProtection()) && Objects.equals(domain(), other.domain()) && Objects.equals(domainIAMRoleName(), other.domainIAMRoleName()) && Objects.equals(domainFqdn(), other.domainFqdn()) && Objects.equals(domainOu(), other.domainOu()) && Objects.equals(domainAuthSecretArn(), other.domainAuthSecretArn()) && hasDomainDnsIps() == other.hasDomainDnsIps() && Objects.equals(domainDnsIps(), other.domainDnsIps()) && Objects.equals(replicaModeAsString(), other.replicaModeAsString()) && Objects.equals(maxAllocatedStorage(), other.maxAllocatedStorage()) && Objects.equals(customIamInstanceProfile(), other.customIamInstanceProfile()) && Objects.equals(networkType(), other.networkType()) && Objects.equals(storageThroughput(), other.storageThroughput()) && Objects.equals(enableCustomerOwnedIp(), other.enableCustomerOwnedIp()) && Objects.equals(allocatedStorage(), other.allocatedStorage()) && Objects.equals(sourceDBClusterIdentifier(), other.sourceDBClusterIdentifier()) && Objects.equals(dedicatedLogVolume(), other.dedicatedLogVolume()) && Objects.equals(upgradeStorageConfig(), other.upgradeStorageConfig()) && Objects.equals(caCertificateIdentifier(), other.caCertificateIdentifier()) && Objects.equals(sourceRegion(), other.sourceRegion()); } /** * 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("CreateDbInstanceReadReplicaRequest").add("DBInstanceIdentifier", dbInstanceIdentifier()) .add("SourceDBInstanceIdentifier", sourceDBInstanceIdentifier()).add("DBInstanceClass", dbInstanceClass()) .add("AvailabilityZone", availabilityZone()).add("Port", port()).add("MultiAZ", multiAZ()) .add("AutoMinorVersionUpgrade", autoMinorVersionUpgrade()).add("Iops", iops()) .add("OptionGroupName", optionGroupName()).add("DBParameterGroupName", dbParameterGroupName()) .add("PubliclyAccessible", publiclyAccessible()).add("Tags", hasTags() ? tags() : null) .add("DBSubnetGroupName", dbSubnetGroupName()) .add("VpcSecurityGroupIds", hasVpcSecurityGroupIds() ? vpcSecurityGroupIds() : null) .add("StorageType", storageType()).add("CopyTagsToSnapshot", copyTagsToSnapshot()) .add("MonitoringInterval", monitoringInterval()).add("MonitoringRoleArn", monitoringRoleArn()) .add("KmsKeyId", kmsKeyId()).add("PreSignedUrl", preSignedUrl()) .add("EnableIAMDatabaseAuthentication", enableIAMDatabaseAuthentication()) .add("EnablePerformanceInsights", enablePerformanceInsights()) .add("PerformanceInsightsKMSKeyId", performanceInsightsKMSKeyId()) .add("PerformanceInsightsRetentionPeriod", performanceInsightsRetentionPeriod()) .add("EnableCloudwatchLogsExports", hasEnableCloudwatchLogsExports() ? enableCloudwatchLogsExports() : null) .add("ProcessorFeatures", hasProcessorFeatures() ? processorFeatures() : null) .add("UseDefaultProcessorFeatures", useDefaultProcessorFeatures()) .add("DeletionProtection", deletionProtection()).add("Domain", domain()) .add("DomainIAMRoleName", domainIAMRoleName()).add("DomainFqdn", domainFqdn()).add("DomainOu", domainOu()) .add("DomainAuthSecretArn", domainAuthSecretArn()).add("DomainDnsIps", hasDomainDnsIps() ? domainDnsIps() : null) .add("ReplicaMode", replicaModeAsString()).add("MaxAllocatedStorage", maxAllocatedStorage()) .add("CustomIamInstanceProfile", customIamInstanceProfile()).add("NetworkType", networkType()) .add("StorageThroughput", storageThroughput()).add("EnableCustomerOwnedIp", enableCustomerOwnedIp()) .add("AllocatedStorage", allocatedStorage()).add("SourceDBClusterIdentifier", sourceDBClusterIdentifier()) .add("DedicatedLogVolume", dedicatedLogVolume()).add("UpgradeStorageConfig", upgradeStorageConfig()) .add("CACertificateIdentifier", caCertificateIdentifier()).add("SourceRegion", sourceRegion()).build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "DBInstanceIdentifier": return Optional.ofNullable(clazz.cast(dbInstanceIdentifier())); case "SourceDBInstanceIdentifier": return Optional.ofNullable(clazz.cast(sourceDBInstanceIdentifier())); case "DBInstanceClass": return Optional.ofNullable(clazz.cast(dbInstanceClass())); case "AvailabilityZone": return Optional.ofNullable(clazz.cast(availabilityZone())); case "Port": return Optional.ofNullable(clazz.cast(port())); case "MultiAZ": return Optional.ofNullable(clazz.cast(multiAZ())); case "AutoMinorVersionUpgrade": return Optional.ofNullable(clazz.cast(autoMinorVersionUpgrade())); case "Iops": return Optional.ofNullable(clazz.cast(iops())); case "OptionGroupName": return Optional.ofNullable(clazz.cast(optionGroupName())); case "DBParameterGroupName": return Optional.ofNullable(clazz.cast(dbParameterGroupName())); case "PubliclyAccessible": return Optional.ofNullable(clazz.cast(publiclyAccessible())); case "Tags": return Optional.ofNullable(clazz.cast(tags())); case "DBSubnetGroupName": return Optional.ofNullable(clazz.cast(dbSubnetGroupName())); case "VpcSecurityGroupIds": return Optional.ofNullable(clazz.cast(vpcSecurityGroupIds())); case "StorageType": return Optional.ofNullable(clazz.cast(storageType())); case "CopyTagsToSnapshot": return Optional.ofNullable(clazz.cast(copyTagsToSnapshot())); case "MonitoringInterval": return Optional.ofNullable(clazz.cast(monitoringInterval())); case "MonitoringRoleArn": return Optional.ofNullable(clazz.cast(monitoringRoleArn())); case "KmsKeyId": return Optional.ofNullable(clazz.cast(kmsKeyId())); case "PreSignedUrl": return Optional.ofNullable(clazz.cast(preSignedUrl())); case "EnableIAMDatabaseAuthentication": return Optional.ofNullable(clazz.cast(enableIAMDatabaseAuthentication())); case "EnablePerformanceInsights": return Optional.ofNullable(clazz.cast(enablePerformanceInsights())); case "PerformanceInsightsKMSKeyId": return Optional.ofNullable(clazz.cast(performanceInsightsKMSKeyId())); case "PerformanceInsightsRetentionPeriod": return Optional.ofNullable(clazz.cast(performanceInsightsRetentionPeriod())); case "EnableCloudwatchLogsExports": return Optional.ofNullable(clazz.cast(enableCloudwatchLogsExports())); case "ProcessorFeatures": return Optional.ofNullable(clazz.cast(processorFeatures())); case "UseDefaultProcessorFeatures": return Optional.ofNullable(clazz.cast(useDefaultProcessorFeatures())); case "DeletionProtection": return Optional.ofNullable(clazz.cast(deletionProtection())); case "Domain": return Optional.ofNullable(clazz.cast(domain())); case "DomainIAMRoleName": return Optional.ofNullable(clazz.cast(domainIAMRoleName())); case "DomainFqdn": return Optional.ofNullable(clazz.cast(domainFqdn())); case "DomainOu": return Optional.ofNullable(clazz.cast(domainOu())); case "DomainAuthSecretArn": return Optional.ofNullable(clazz.cast(domainAuthSecretArn())); case "DomainDnsIps": return Optional.ofNullable(clazz.cast(domainDnsIps())); case "ReplicaMode": return Optional.ofNullable(clazz.cast(replicaModeAsString())); case "MaxAllocatedStorage": return Optional.ofNullable(clazz.cast(maxAllocatedStorage())); case "CustomIamInstanceProfile": return Optional.ofNullable(clazz.cast(customIamInstanceProfile())); case "NetworkType": return Optional.ofNullable(clazz.cast(networkType())); case "StorageThroughput": return Optional.ofNullable(clazz.cast(storageThroughput())); case "EnableCustomerOwnedIp": return Optional.ofNullable(clazz.cast(enableCustomerOwnedIp())); case "AllocatedStorage": return Optional.ofNullable(clazz.cast(allocatedStorage())); case "SourceDBClusterIdentifier": return Optional.ofNullable(clazz.cast(sourceDBClusterIdentifier())); case "DedicatedLogVolume": return Optional.ofNullable(clazz.cast(dedicatedLogVolume())); case "UpgradeStorageConfig": return Optional.ofNullable(clazz.cast(upgradeStorageConfig())); case "CACertificateIdentifier": return Optional.ofNullable(clazz.cast(caCertificateIdentifier())); case "SourceRegion": return Optional.ofNullable(clazz.cast(sourceRegion())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((CreateDbInstanceReadReplicaRequest) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends RdsRequest.Builder, SdkPojo, CopyableBuilder { /** *

        * The DB instance identifier of the read replica. This identifier is the unique key that identifies a DB * instance. This parameter is stored as a lowercase string. *

        * * @param dbInstanceIdentifier * The DB instance identifier of the read replica. This identifier is the unique key that identifies a DB * instance. This parameter is stored as a lowercase string. * @return Returns a reference to this object so that method calls can be chained together. */ Builder dbInstanceIdentifier(String dbInstanceIdentifier); /** *

        * The identifier of the DB instance that will act as the source for the read replica. Each DB instance can have * up to 15 read replicas, with the exception of Oracle and SQL Server, which can have up to five. *

        *

        * Constraints: *

        *
          *
        • *

          * Must be the identifier of an existing Db2, MariaDB, MySQL, Oracle, PostgreSQL, or SQL Server DB instance. *

          *
        • *
        • *

          * Can't be specified if the SourceDBClusterIdentifier parameter is also specified. *

          *
        • *
        • *

          * For the limitations of Oracle read replicas, see Version and licensing considerations for RDS for Oracle replicas in the Amazon RDS User Guide. *

          *
        • *
        • *

          * For the limitations of SQL Server read replicas, see Read replica limitations with SQL Server in the Amazon RDS User Guide. *

          *
        • *
        • *

          * The specified DB instance must have automatic backups enabled, that is, its backup retention period must be * greater than 0. *

          *
        • *
        • *

          * If the source DB instance is in the same Amazon Web Services Region as the read replica, specify a valid DB * instance identifier. *

          *
        • *
        • *

          * If the source DB instance is in a different Amazon Web Services Region from the read replica, specify a valid * DB instance ARN. For more information, see Constructing an ARN for Amazon RDS in the Amazon RDS User Guide. This doesn't apply to SQL Server * or RDS Custom, which don't support cross-Region replicas. *

          *
        • *
        * * @param sourceDBInstanceIdentifier * The identifier of the DB instance that will act as the source for the read replica. Each DB instance * can have up to 15 read replicas, with the exception of Oracle and SQL Server, which can have up to * five.

        *

        * Constraints: *

        *
          *
        • *

          * Must be the identifier of an existing Db2, MariaDB, MySQL, Oracle, PostgreSQL, or SQL Server DB * instance. *

          *
        • *
        • *

          * Can't be specified if the SourceDBClusterIdentifier parameter is also specified. *

          *
        • *
        • *

          * For the limitations of Oracle read replicas, see Version and licensing considerations for RDS for Oracle replicas in the Amazon RDS User * Guide. *

          *
        • *
        • *

          * For the limitations of SQL Server read replicas, see Read replica limitations with SQL Server in the Amazon RDS User Guide. *

          *
        • *
        • *

          * The specified DB instance must have automatic backups enabled, that is, its backup retention period * must be greater than 0. *

          *
        • *
        • *

          * If the source DB instance is in the same Amazon Web Services Region as the read replica, specify a * valid DB instance identifier. *

          *
        • *
        • *

          * If the source DB instance is in a different Amazon Web Services Region from the read replica, specify * a valid DB instance ARN. For more information, see Constructing an ARN for Amazon RDS in the Amazon RDS User Guide. This doesn't apply to SQL * Server or RDS Custom, which don't support cross-Region replicas. *

          *
        • * @return Returns a reference to this object so that method calls can be chained together. */ Builder sourceDBInstanceIdentifier(String sourceDBInstanceIdentifier); /** *

          * The compute and memory capacity of the read replica, for example db.m4.large. Not all DB instance classes are * available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance * classes, and availability for your engine, see DB Instance * Class in the Amazon RDS User Guide. *

          *

          * Default: Inherits the value from the source DB instance. *

          * * @param dbInstanceClass * The compute and memory capacity of the read replica, for example db.m4.large. Not all DB instance * classes are available in all Amazon Web Services Regions, or for all database engines. For the full * list of DB instance classes, and availability for your engine, see DB * Instance Class in the Amazon RDS User Guide.

          *

          * Default: Inherits the value from the source DB instance. * @return Returns a reference to this object so that method calls can be chained together. */ Builder dbInstanceClass(String dbInstanceClass); /** *

          * The Availability Zone (AZ) where the read replica will be created. *

          *

          * Default: A random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region. *

          *

          * Example: us-east-1d *

          * * @param availabilityZone * The Availability Zone (AZ) where the read replica will be created.

          *

          * Default: A random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region. *

          *

          * Example: us-east-1d * @return Returns a reference to this object so that method calls can be chained together. */ Builder availabilityZone(String availabilityZone); /** *

          * The port number that the DB instance uses for connections. *

          *

          * Valid Values: 1150-65535 *

          *

          * Default: Inherits the value from the source DB instance. *

          * * @param port * The port number that the DB instance uses for connections.

          *

          * Valid Values: 1150-65535 *

          *

          * Default: Inherits the value from the source DB instance. * @return Returns a reference to this object so that method calls can be chained together. */ Builder port(Integer port); /** *

          * Specifies whether the read replica is in a Multi-AZ deployment. *

          *

          * You can create a read replica as a Multi-AZ DB instance. RDS creates a standby of your replica in another * Availability Zone for failover support for the replica. Creating your read replica as a Multi-AZ DB instance * is independent of whether the source is a Multi-AZ DB instance or a Multi-AZ DB cluster. *

          *

          * This setting doesn't apply to RDS Custom DB instances. *

          * * @param multiAZ * Specifies whether the read replica is in a Multi-AZ deployment.

          *

          * You can create a read replica as a Multi-AZ DB instance. RDS creates a standby of your replica in * another Availability Zone for failover support for the replica. Creating your read replica as a * Multi-AZ DB instance is independent of whether the source is a Multi-AZ DB instance or a Multi-AZ DB * cluster. *

          *

          * This setting doesn't apply to RDS Custom DB instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder multiAZ(Boolean multiAZ); /** *

          * Specifies whether to automatically apply minor engine upgrades to the read replica during the maintenance * window. *

          *

          * This setting doesn't apply to RDS Custom DB instances. *

          *

          * Default: Inherits the value from the source DB instance. *

          * * @param autoMinorVersionUpgrade * Specifies whether to automatically apply minor engine upgrades to the read replica during the * maintenance window.

          *

          * This setting doesn't apply to RDS Custom DB instances. *

          *

          * Default: Inherits the value from the source DB instance. * @return Returns a reference to this object so that method calls can be chained together. */ Builder autoMinorVersionUpgrade(Boolean autoMinorVersionUpgrade); /** *

          * The amount of Provisioned IOPS (input/output operations per second) to initially allocate for the DB * instance. *

          * * @param iops * The amount of Provisioned IOPS (input/output operations per second) to initially allocate for the DB * instance. * @return Returns a reference to this object so that method calls can be chained together. */ Builder iops(Integer iops); /** *

          * The option group to associate the DB instance with. If not specified, RDS uses the option group associated * with the source DB instance or cluster. *

          * *

          * For SQL Server, you must use the option group associated with the source. *

          *
          *

          * This setting doesn't apply to RDS Custom DB instances. *

          * * @param optionGroupName * The option group to associate the DB instance with. If not specified, RDS uses the option group * associated with the source DB instance or cluster.

          *

          * For SQL Server, you must use the option group associated with the source. *

          *
          *

          * This setting doesn't apply to RDS Custom DB instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder optionGroupName(String optionGroupName); /** *

          * The name of the DB parameter group to associate with this read replica DB instance. *

          *

          * For Single-AZ or Multi-AZ DB instance read replica instances, if you don't specify a value for * DBParameterGroupName, then Amazon RDS uses the DBParameterGroup of the source DB * instance for a same Region read replica, or the default DBParameterGroup for the specified DB * engine for a cross-Region read replica. *

          *

          * For Multi-AZ DB cluster same Region read replica instances, if you don't specify a value for * DBParameterGroupName, then Amazon RDS uses the default DBParameterGroup. *

          *

          * Specifying a parameter group for this operation is only supported for MySQL DB instances for cross-Region * read replicas, for Multi-AZ DB cluster read replica instances, and for Oracle DB instances. It isn't * supported for MySQL DB instances for same Region read replicas or for RDS Custom. *

          *

          * Constraints: *

          *
            *
          • *

            * Must be 1 to 255 letters, numbers, or hyphens. *

            *
          • *
          • *

            * First character must be a letter. *

            *
          • *
          • *

            * Can't end with a hyphen or contain two consecutive hyphens. *

            *
          • *
          * * @param dbParameterGroupName * The name of the DB parameter group to associate with this read replica DB instance.

          *

          * For Single-AZ or Multi-AZ DB instance read replica instances, if you don't specify a value for * DBParameterGroupName, then Amazon RDS uses the DBParameterGroup of the * source DB instance for a same Region read replica, or the default DBParameterGroup for * the specified DB engine for a cross-Region read replica. *

          *

          * For Multi-AZ DB cluster same Region read replica instances, if you don't specify a value for * DBParameterGroupName, then Amazon RDS uses the default DBParameterGroup. *

          *

          * Specifying a parameter group for this operation is only supported for MySQL DB instances for * cross-Region read replicas, for Multi-AZ DB cluster read replica instances, and for Oracle DB * instances. It isn't supported for MySQL DB instances for same Region read replicas or for RDS Custom. *

          *

          * Constraints: *

          *
            *
          • *

            * Must be 1 to 255 letters, numbers, or hyphens. *

            *
          • *
          • *

            * First character must be a letter. *

            *
          • *
          • *

            * Can't 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 dbParameterGroupName(String dbParameterGroupName); /** *

            * Specifies whether the DB instance is publicly accessible. *

            *

            * When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP * address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from * outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it * uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it. *

            *

            * When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves * to a private IP address. *

            *

            * For more information, see CreateDBInstance. *

            * * @param publiclyAccessible * Specifies whether the DB instance is publicly accessible.

            *

            * When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the * private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public * IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by * the security group it uses. That public access isn't permitted if the security group assigned to the * DB cluster doesn't permit it. *

            *

            * When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that * resolves to a private IP address. *

            *

            * For more information, see CreateDBInstance. * @return Returns a reference to this object so that method calls can be chained together. */ Builder publiclyAccessible(Boolean publiclyAccessible); /** * Sets the value of the Tags property for this object. * * @param tags * The new value for the Tags property for this object. * @return Returns a reference to this object so that method calls can be chained together. */ Builder tags(Collection tags); /** * Sets the value of the Tags property for this object. * * @param tags * The new value for the Tags property for this object. * @return Returns a reference to this object so that method calls can be chained together. */ Builder tags(Tag... tags); /** * Sets the value of the Tags property for this object. * * This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.rds.model.Tag.Builder} avoiding the need to create one manually via * {@link software.amazon.awssdk.services.rds.model.Tag#builder()}. * *

            * When the {@link Consumer} completes, {@link software.amazon.awssdk.services.rds.model.Tag.Builder#build()} is * called immediately and its result is passed to {@link #tags(List)}. * * @param tags * a consumer that will call methods on {@link software.amazon.awssdk.services.rds.model.Tag.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #tags(java.util.Collection) */ Builder tags(Consumer... tags); /** *

            * A DB subnet group for the DB instance. The new DB instance is created in the VPC associated with the DB * subnet group. If no DB subnet group is specified, then the new DB instance isn't created in a VPC. *

            *

            * Constraints: *

            *
              *
            • *

              * If supplied, must match the name of an existing DB subnet group. *

              *
            • *
            • *

              * The specified DB subnet group must be in the same Amazon Web Services Region in which the operation is * running. *

              *
            • *
            • *

              * All read replicas in one Amazon Web Services Region that are created from the same source DB instance must * either: *

              *
                *
              • *

                * Specify DB subnet groups from the same VPC. All these read replicas are created in the same VPC. *

                *
              • *
              • *

                * Not specify a DB subnet group. All these read replicas are created outside of any VPC. *

                *
              • *
              *
            • *
            *

            * Example: mydbsubnetgroup *

            * * @param dbSubnetGroupName * A DB subnet group for the DB instance. The new DB instance is created in the VPC associated with the * DB subnet group. If no DB subnet group is specified, then the new DB instance isn't created in a * VPC.

            *

            * Constraints: *

            *
              *
            • *

              * If supplied, must match the name of an existing DB subnet group. *

              *
            • *
            • *

              * The specified DB subnet group must be in the same Amazon Web Services Region in which the operation is * running. *

              *
            • *
            • *

              * All read replicas in one Amazon Web Services Region that are created from the same source DB instance * must either: *

              *
                *
              • *

                * Specify DB subnet groups from the same VPC. All these read replicas are created in the same VPC. *

                *
              • *
              • *

                * Not specify a DB subnet group. All these read replicas are created outside of any VPC. *

                *
              • *
              *
            • *
            *

            * Example: mydbsubnetgroup * @return Returns a reference to this object so that method calls can be chained together. */ Builder dbSubnetGroupName(String dbSubnetGroupName); /** *

            * A list of Amazon EC2 VPC security groups to associate with the read replica. *

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            *

            * Default: The default EC2 VPC security group for the DB subnet group's VPC. *

            * * @param vpcSecurityGroupIds * A list of Amazon EC2 VPC security groups to associate with the read replica.

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            *

            * Default: The default EC2 VPC security group for the DB subnet group's VPC. * @return Returns a reference to this object so that method calls can be chained together. */ Builder vpcSecurityGroupIds(Collection vpcSecurityGroupIds); /** *

            * A list of Amazon EC2 VPC security groups to associate with the read replica. *

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            *

            * Default: The default EC2 VPC security group for the DB subnet group's VPC. *

            * * @param vpcSecurityGroupIds * A list of Amazon EC2 VPC security groups to associate with the read replica.

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            *

            * Default: The default EC2 VPC security group for the DB subnet group's VPC. * @return Returns a reference to this object so that method calls can be chained together. */ Builder vpcSecurityGroupIds(String... vpcSecurityGroupIds); /** *

            * The storage type to associate with the read replica. *

            *

            * If you specify io1, io2, or gp3, you must also include a value for the * Iops parameter. *

            *

            * Valid Values: gp2 | gp3 | io1 | io2 | standard *

            *

            * Default: io1 if the Iops parameter is specified. Otherwise, gp2. *

            * * @param storageType * The storage type to associate with the read replica.

            *

            * If you specify io1, io2, or gp3, you must also include a value * for the Iops parameter. *

            *

            * Valid Values: gp2 | gp3 | io1 | io2 | standard *

            *

            * Default: io1 if the Iops parameter is specified. Otherwise, gp2. * @return Returns a reference to this object so that method calls can be chained together. */ Builder storageType(String storageType); /** *

            * Specifies whether to copy all tags from the read replica to snapshots of the read replica. By default, tags * aren't copied. *

            * * @param copyTagsToSnapshot * Specifies whether to copy all tags from the read replica to snapshots of the read replica. By default, * tags aren't copied. * @return Returns a reference to this object so that method calls can be chained together. */ Builder copyTagsToSnapshot(Boolean copyTagsToSnapshot); /** *

            * The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the read replica. * To disable collection of Enhanced Monitoring metrics, specify 0. The default is 0. *

            *

            * If MonitoringRoleArn is specified, then you must set MonitoringInterval to a value * other than 0. *

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            *

            * Valid Values: 0, 1, 5, 10, 15, 30, 60 *

            *

            * Default: 0 *

            * * @param monitoringInterval * The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the read * replica. To disable collection of Enhanced Monitoring metrics, specify 0. The default is * 0.

            *

            * If MonitoringRoleArn is specified, then you must set MonitoringInterval to a * value other than 0. *

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            *

            * Valid Values: 0, 1, 5, 10, 15, 30, 60 *

            *

            * Default: 0 * @return Returns a reference to this object so that method calls can be chained together. */ Builder monitoringInterval(Integer monitoringInterval); /** *

            * The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For * example, arn:aws:iam:123456789012:role/emaccess. For information on creating a monitoring role, * go to To * create an IAM role for Amazon RDS Enhanced Monitoring in the Amazon RDS User Guide. *

            *

            * If MonitoringInterval is set to a value other than 0, then you must supply a * MonitoringRoleArn value. *

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            * * @param monitoringRoleArn * The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch * Logs. For example, arn:aws:iam:123456789012:role/emaccess. For information on creating a * monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring in the Amazon RDS User Guide.

            *

            * If MonitoringInterval is set to a value other than 0, then you must supply a * MonitoringRoleArn value. *

            *

            * This setting doesn't apply to RDS Custom DB instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder monitoringRoleArn(String monitoringRoleArn); /** *

            * The Amazon Web Services KMS key identifier for an encrypted read replica. *

            *

            * The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. *

            *

            * If you create an encrypted read replica in the same Amazon Web Services Region as the source DB instance or * Multi-AZ DB cluster, don't specify a value for this parameter. A read replica in the same Amazon Web Services * Region is always encrypted with the same KMS key as the source DB instance or cluster. *

            *

            * If you create an encrypted read replica in a different Amazon Web Services Region, then you must specify a * KMS key identifier for the destination Amazon Web Services Region. KMS keys are specific to the Amazon Web * Services Region that they are created in, and you can't use KMS keys from one Amazon Web Services Region in * another Amazon Web Services Region. *

            *

            * You can't create an encrypted read replica from an unencrypted DB instance or Multi-AZ DB cluster. *

            *

            * This setting doesn't apply to RDS Custom, which uses the same KMS key as the primary replica. *

            * * @param kmsKeyId * The Amazon Web Services KMS key identifier for an encrypted read replica.

            *

            * The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the * KMS key. *

            *

            * If you create an encrypted read replica in the same Amazon Web Services Region as the source DB * instance or Multi-AZ DB cluster, don't specify a value for this parameter. A read replica in the same * Amazon Web Services Region is always encrypted with the same KMS key as the source DB instance or * cluster. *

            *

            * If you create an encrypted read replica in a different Amazon Web Services Region, then you must * specify a KMS key identifier for the destination Amazon Web Services Region. KMS keys are specific to * the Amazon Web Services Region that they are created in, and you can't use KMS keys from one Amazon * Web Services Region in another Amazon Web Services Region. *

            *

            * You can't create an encrypted read replica from an unencrypted DB instance or Multi-AZ DB cluster. *

            *

            * This setting doesn't apply to RDS Custom, which uses the same KMS key as the primary replica. * @return Returns a reference to this object so that method calls can be chained together. */ Builder kmsKeyId(String kmsKeyId); /** *

            * When you are creating a read replica from one Amazon Web Services GovCloud (US) Region to another or from one * China Amazon Web Services Region to another, the URL that contains a Signature Version 4 signed request for * the CreateDBInstanceReadReplica API operation in the source Amazon Web Services Region that * contains the source DB instance. *

            *

            * This setting applies only to Amazon Web Services GovCloud (US) Regions and China Amazon Web Services Regions. * It's ignored in other Amazon Web Services Regions. *

            *

            * This setting applies only when replicating from a source DB instance. Source DB clusters aren't * supported in Amazon Web Services GovCloud (US) Regions and China Amazon Web Services Regions. *

            *

            * You must specify this parameter when you create an encrypted read replica from another Amazon Web Services * Region by using the Amazon RDS API. Don't specify PreSignedUrl when you are creating an * encrypted read replica in the same Amazon Web Services Region. *

            *

            * The presigned URL must be a valid request for the CreateDBInstanceReadReplica API operation that * can run in the source Amazon Web Services Region that contains the encrypted source DB instance. The * presigned URL request must contain the following parameter values: *

            *
              *
            • *

              * DestinationRegion - The Amazon Web Services Region that the encrypted read replica is created * in. This Amazon Web Services Region is the same one where the CreateDBInstanceReadReplica * operation is called that contains this presigned URL. *

              *

              * For example, if you create an encrypted DB instance in the us-west-1 Amazon Web Services Region, from a * source DB instance in the us-east-2 Amazon Web Services Region, then you call the * CreateDBInstanceReadReplica operation in the us-east-1 Amazon Web Services Region and provide a * presigned URL that contains a call to the CreateDBInstanceReadReplica operation in the us-west-2 * Amazon Web Services Region. For this example, the DestinationRegion in the presigned URL must be * set to the us-east-1 Amazon Web Services Region. *

              *
            • *
            • *

              * KmsKeyId - The KMS key identifier for the key to use to encrypt the read replica in the * destination Amazon Web Services Region. This is the same identifier for both the * CreateDBInstanceReadReplica operation that is called in the destination Amazon Web Services * Region, and the operation contained in the presigned URL. *

              *
            • *
            • *

              * SourceDBInstanceIdentifier - The DB instance identifier for the encrypted DB instance to be * replicated. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web * Services Region. For example, if you are creating an encrypted read replica from a DB instance in the * us-west-2 Amazon Web Services Region, then your SourceDBInstanceIdentifier looks like the * following example: arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-20161115. *

              *
            • *
            *

            * To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: * Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing * Process. *

            * *

            * If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or * --source-region for the CLI) instead of specifying PreSignedUrl manually. * Specifying SourceRegion autogenerates a presigned URL that is a valid request for the operation * that can run in the source Amazon Web Services Region. *

            *
            *

            * This setting doesn't apply to RDS Custom DB instances. *

            * * @param preSignedUrl * When you are creating a read replica from one Amazon Web Services GovCloud (US) Region to another or * from one China Amazon Web Services Region to another, the URL that contains a Signature Version 4 * signed request for the CreateDBInstanceReadReplica API operation in the source Amazon Web * Services Region that contains the source DB instance.

            *

            * This setting applies only to Amazon Web Services GovCloud (US) Regions and China Amazon Web Services * Regions. It's ignored in other Amazon Web Services Regions. *

            *

            * This setting applies only when replicating from a source DB instance. Source DB clusters aren't * supported in Amazon Web Services GovCloud (US) Regions and China Amazon Web Services Regions. *

            *

            * You must specify this parameter when you create an encrypted read replica from another Amazon Web * Services Region by using the Amazon RDS API. Don't specify PreSignedUrl when you are * creating an encrypted read replica in the same Amazon Web Services Region. *

            *

            * The presigned URL must be a valid request for the CreateDBInstanceReadReplica API * operation that can run in the source Amazon Web Services Region that contains the encrypted source DB * instance. The presigned URL request must contain the following parameter values: *

            *
              *
            • *

              * DestinationRegion - The Amazon Web Services Region that the encrypted read replica is * created in. This Amazon Web Services Region is the same one where the * CreateDBInstanceReadReplica operation is called that contains this presigned URL. *

              *

              * For example, if you create an encrypted DB instance in the us-west-1 Amazon Web Services Region, from * a source DB instance in the us-east-2 Amazon Web Services Region, then you call the * CreateDBInstanceReadReplica operation in the us-east-1 Amazon Web Services Region and * provide a presigned URL that contains a call to the CreateDBInstanceReadReplica operation * in the us-west-2 Amazon Web Services Region. For this example, the DestinationRegion in * the presigned URL must be set to the us-east-1 Amazon Web Services Region. *

              *
            • *
            • *

              * KmsKeyId - The KMS key identifier for the key to use to encrypt the read replica in the * destination Amazon Web Services Region. This is the same identifier for both the * CreateDBInstanceReadReplica operation that is called in the destination Amazon Web * Services Region, and the operation contained in the presigned URL. *

              *
            • *
            • *

              * SourceDBInstanceIdentifier - The DB instance identifier for the encrypted DB instance to * be replicated. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon * Web Services Region. For example, if you are creating an encrypted read replica from a DB instance in * the us-west-2 Amazon Web Services Region, then your SourceDBInstanceIdentifier looks like * the following example: * arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-20161115. *

              *
            • *
            *

            * To learn how to generate a Signature Version 4 signed request, see Authenticating * Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 * Signing Process. *

            * *

            * If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion * (or --source-region for the CLI) instead of specifying PreSignedUrl * manually. Specifying SourceRegion autogenerates a presigned URL that is a valid request * for the operation that can run in the source Amazon Web Services Region. *

            *
            *

            * This setting doesn't apply to RDS Custom DB instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder preSignedUrl(String preSignedUrl); /** *

            * Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to * database accounts. By default, mapping isn't enabled. *

            *

            * For more information about IAM database authentication, see IAM Database * Authentication for MySQL and PostgreSQL in the Amazon RDS User Guide. *

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            * * @param enableIAMDatabaseAuthentication * Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) * accounts to database accounts. By default, mapping isn't enabled.

            *

            * For more information about IAM database authentication, see IAM * Database Authentication for MySQL and PostgreSQL in the Amazon RDS User Guide. *

            *

            * This setting doesn't apply to RDS Custom DB instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder enableIAMDatabaseAuthentication(Boolean enableIAMDatabaseAuthentication); /** *

            * Specifies whether to enable Performance Insights for the read replica. *

            *

            * For more information, see Using Amazon Performance * Insights in the Amazon RDS User Guide. *

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            * * @param enablePerformanceInsights * Specifies whether to enable Performance Insights for the read replica.

            *

            * For more information, see Using Amazon * Performance Insights in the Amazon RDS User Guide. *

            *

            * This setting doesn't apply to RDS Custom DB instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder enablePerformanceInsights(Boolean enablePerformanceInsights); /** *

            * The Amazon Web Services KMS key identifier for encryption of Performance Insights data. *

            *

            * The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. *

            *

            * If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS uses your default * KMS key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account * has a different default KMS key for each Amazon Web Services Region. *

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            * * @param performanceInsightsKMSKeyId * The Amazon Web Services KMS key identifier for encryption of Performance Insights data.

            *

            * The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the * KMS key. *

            *

            * If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS uses your * default KMS key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web * Services account has a different default KMS key for each Amazon Web Services Region. *

            *

            * This setting doesn't apply to RDS Custom DB instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder performanceInsightsKMSKeyId(String performanceInsightsKMSKeyId); /** *

            * The number of days to retain Performance Insights data. *

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            *

            * Valid Values: *

            *
              *
            • *

              * 7 *

              *
            • *
            • *

              * month * 31, where month is a number of months from 1-23. Examples: 93 (3 months * * 31), 341 (11 months * 31), 589 (19 months * 31) *

              *
            • *
            • *

              * 731 *

              *
            • *
            *

            * Default: 7 days *

            *

            * If you specify a retention period that isn't valid, such as 94, Amazon RDS returns an error. *

            * * @param performanceInsightsRetentionPeriod * The number of days to retain Performance Insights data.

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            *

            * Valid Values: *

            *
              *
            • *

              * 7 *

              *
            • *
            • *

              * month * 31, where month is a number of months from 1-23. Examples: 93 (3 * months * 31), 341 (11 months * 31), 589 (19 months * 31) *

              *
            • *
            • *

              * 731 *

              *
            • *
            *

            * Default: 7 days *

            *

            * If you specify a retention period that isn't valid, such as 94, Amazon RDS returns an * error. * @return Returns a reference to this object so that method calls can be chained together. */ Builder performanceInsightsRetentionPeriod(Integer performanceInsightsRetentionPeriod); /** *

            * The list of logs that the new DB instance is to export to CloudWatch Logs. The values in the list depend on * the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide. *

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            * * @param enableCloudwatchLogsExports * The list of logs that the new DB instance is to export to CloudWatch Logs. The values in the list * depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.

            *

            * This setting doesn't apply to RDS Custom DB instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder enableCloudwatchLogsExports(Collection enableCloudwatchLogsExports); /** *

            * The list of logs that the new DB instance is to export to CloudWatch Logs. The values in the list depend on * the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide. *

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            * * @param enableCloudwatchLogsExports * The list of logs that the new DB instance is to export to CloudWatch Logs. The values in the list * depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.

            *

            * This setting doesn't apply to RDS Custom DB instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder enableCloudwatchLogsExports(String... enableCloudwatchLogsExports); /** *

            * The number of CPU cores and the number of threads per core for the DB instance class of the DB instance. *

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            * * @param processorFeatures * The number of CPU cores and the number of threads per core for the DB instance class of the DB * instance.

            *

            * This setting doesn't apply to RDS Custom DB instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder processorFeatures(Collection processorFeatures); /** *

            * The number of CPU cores and the number of threads per core for the DB instance class of the DB instance. *

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            * * @param processorFeatures * The number of CPU cores and the number of threads per core for the DB instance class of the DB * instance.

            *

            * This setting doesn't apply to RDS Custom DB instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder processorFeatures(ProcessorFeature... processorFeatures); /** *

            * The number of CPU cores and the number of threads per core for the DB instance class of the DB instance. *

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            * This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.rds.model.ProcessorFeature.Builder} avoiding the need to create one * manually via {@link software.amazon.awssdk.services.rds.model.ProcessorFeature#builder()}. * *

            * When the {@link Consumer} completes, * {@link software.amazon.awssdk.services.rds.model.ProcessorFeature.Builder#build()} is called immediately and * its result is passed to {@link #processorFeatures(List)}. * * @param processorFeatures * a consumer that will call methods on * {@link software.amazon.awssdk.services.rds.model.ProcessorFeature.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #processorFeatures(java.util.Collection) */ Builder processorFeatures(Consumer... processorFeatures); /** *

            * Specifies whether the DB instance class of the DB instance uses its default processor features. *

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            * * @param useDefaultProcessorFeatures * Specifies whether the DB instance class of the DB instance uses its default processor features.

            *

            * This setting doesn't apply to RDS Custom DB instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder useDefaultProcessorFeatures(Boolean useDefaultProcessorFeatures); /** *

            * Specifies whether to enable deletion protection for the DB instance. The database can't be deleted when * deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see Deleting a DB * Instance. *

            * * @param deletionProtection * Specifies whether to enable deletion protection for the DB instance. The database can't be deleted * when deletion protection is enabled. By default, deletion protection isn't enabled. For more * information, see Deleting a DB * Instance. * @return Returns a reference to this object so that method calls can be chained together. */ Builder deletionProtection(Boolean deletionProtection); /** *

            * The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, * Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. *

            *

            * For more information, see Kerberos * Authentication in the Amazon RDS User Guide. *

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            * * @param domain * The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL * Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.

            *

            * For more information, see Kerberos * Authentication in the Amazon RDS User Guide. *

            *

            * This setting doesn't apply to RDS Custom DB instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder domain(String domain); /** *

            * The name of the IAM role to use when making API calls to the Directory Service. *

            *

            * This setting doesn't apply to RDS Custom DB instances. *

            * * @param domainIAMRoleName * The name of the IAM role to use when making API calls to the Directory Service.

            *

            * This setting doesn't apply to RDS Custom DB instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder domainIAMRoleName(String domainIAMRoleName); /** *

            * The fully qualified domain name (FQDN) of an Active Directory domain. *

            *

            * Constraints: *

            *
              *
            • *

              * Can't be longer than 64 characters. *

              *
            • *
            *

            * Example: mymanagedADtest.mymanagedAD.mydomain *

            * * @param domainFqdn * The fully qualified domain name (FQDN) of an Active Directory domain.

            *

            * Constraints: *

            *
              *
            • *

              * Can't be longer than 64 characters. *

              *
            • *
            *

            * Example: mymanagedADtest.mymanagedAD.mydomain * @return Returns a reference to this object so that method calls can be chained together. */ Builder domainFqdn(String domainFqdn); /** *

            * The Active Directory organizational unit for your DB instance to join. *

            *

            * Constraints: *

            *
              *
            • *

              * Must be in the distinguished name format. *

              *
            • *
            • *

              * Can't be longer than 64 characters. *

              *
            • *
            *

            * Example: OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain *

            * * @param domainOu * The Active Directory organizational unit for your DB instance to join.

            *

            * Constraints: *

            *
              *
            • *

              * Must be in the distinguished name format. *

              *
            • *
            • *

              * Can't be longer than 64 characters. *

              *
            • *
            *

            * Example: OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain * @return Returns a reference to this object so that method calls can be chained together. */ Builder domainOu(String domainOu); /** *

            * The ARN for the Secrets Manager secret with the credentials for the user joining the domain. *

            *

            * Example: arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456 *

            * * @param domainAuthSecretArn * The ARN for the Secrets Manager secret with the credentials for the user joining the domain.

            *

            * Example: * arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456 * @return Returns a reference to this object so that method calls can be chained together. */ Builder domainAuthSecretArn(String domainAuthSecretArn); /** *

            * The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers. *

            *

            * Constraints: *

            *
              *
            • *

              * Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of the * primary domain controller for both entries in the list. *

              *
            • *
            *

            * Example: 123.124.125.126,234.235.236.237 *

            * * @param domainDnsIps * The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.

            *

            * Constraints: *

            *
              *
            • *

              * Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of * the primary domain controller for both entries in the list. *

              *
            • *
            *

            * Example: 123.124.125.126,234.235.236.237 * @return Returns a reference to this object so that method calls can be chained together. */ Builder domainDnsIps(Collection domainDnsIps); /** *

            * The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers. *

            *

            * Constraints: *

            *
              *
            • *

              * Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of the * primary domain controller for both entries in the list. *

              *
            • *
            *

            * Example: 123.124.125.126,234.235.236.237 *

            * * @param domainDnsIps * The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.

            *

            * Constraints: *

            *
              *
            • *

              * Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of * the primary domain controller for both entries in the list. *

              *
            • *
            *

            * Example: 123.124.125.126,234.235.236.237 * @return Returns a reference to this object so that method calls can be chained together. */ Builder domainDnsIps(String... domainDnsIps); /** *

            * The open mode of the replica database: mounted or read-only. *

            * *

            * This parameter is only supported for Oracle DB instances. *

            *
            *

            * Mounted DB replicas are included in Oracle Database Enterprise Edition. The main use case for mounted * replicas is cross-Region disaster recovery. The primary database doesn't use Active Data Guard to transmit * information to the mounted replica. Because it doesn't accept user connections, a mounted replica can't serve * a read-only workload. *

            *

            * You can create a combination of mounted and read-only DB replicas for the same primary DB instance. For more * information, see Working with Oracle * Read Replicas for Amazon RDS in the Amazon RDS User Guide. *

            *

            * For RDS Custom, you must specify this parameter and set it to mounted. The value won't be set by * default. After replica creation, you can manage the open mode manually. *

            * * @param replicaMode * The open mode of the replica database: mounted or read-only.

            *

            * This parameter is only supported for Oracle DB instances. *

            *
            *

            * Mounted DB replicas are included in Oracle Database Enterprise Edition. The main use case for mounted * replicas is cross-Region disaster recovery. The primary database doesn't use Active Data Guard to * transmit information to the mounted replica. Because it doesn't accept user connections, a mounted * replica can't serve a read-only workload. *

            *

            * You can create a combination of mounted and read-only DB replicas for the same primary DB instance. * For more information, see Working with * Oracle Read Replicas for Amazon RDS in the Amazon RDS User Guide. *

            *

            * For RDS Custom, you must specify this parameter and set it to mounted. The value won't be * set by default. After replica creation, you can manage the open mode manually. * @see ReplicaMode * @return Returns a reference to this object so that method calls can be chained together. * @see ReplicaMode */ Builder replicaMode(String replicaMode); /** *

            * The open mode of the replica database: mounted or read-only. *

            * *

            * This parameter is only supported for Oracle DB instances. *

            *
            *

            * Mounted DB replicas are included in Oracle Database Enterprise Edition. The main use case for mounted * replicas is cross-Region disaster recovery. The primary database doesn't use Active Data Guard to transmit * information to the mounted replica. Because it doesn't accept user connections, a mounted replica can't serve * a read-only workload. *

            *

            * You can create a combination of mounted and read-only DB replicas for the same primary DB instance. For more * information, see Working with Oracle * Read Replicas for Amazon RDS in the Amazon RDS User Guide. *

            *

            * For RDS Custom, you must specify this parameter and set it to mounted. The value won't be set by * default. After replica creation, you can manage the open mode manually. *

            * * @param replicaMode * The open mode of the replica database: mounted or read-only.

            *

            * This parameter is only supported for Oracle DB instances. *

            *
            *

            * Mounted DB replicas are included in Oracle Database Enterprise Edition. The main use case for mounted * replicas is cross-Region disaster recovery. The primary database doesn't use Active Data Guard to * transmit information to the mounted replica. Because it doesn't accept user connections, a mounted * replica can't serve a read-only workload. *

            *

            * You can create a combination of mounted and read-only DB replicas for the same primary DB instance. * For more information, see Working with * Oracle Read Replicas for Amazon RDS in the Amazon RDS User Guide. *

            *

            * For RDS Custom, you must specify this parameter and set it to mounted. The value won't be * set by default. After replica creation, you can manage the open mode manually. * @see ReplicaMode * @return Returns a reference to this object so that method calls can be chained together. * @see ReplicaMode */ Builder replicaMode(ReplicaMode replicaMode); /** *

            * The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB * instance. *

            *

            * For more information about this setting, including limitations that apply to it, see * Managing capacity automatically with Amazon RDS storage autoscaling in the Amazon RDS User Guide. *

            * * @param maxAllocatedStorage * The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB * instance.

            *

            * For more information about this setting, including limitations that apply to it, see Managing capacity automatically with Amazon RDS storage autoscaling in the Amazon RDS User * Guide. * @return Returns a reference to this object so that method calls can be chained together. */ Builder maxAllocatedStorage(Integer maxAllocatedStorage); /** *

            * The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The * instance profile must meet the following requirements: *

            *
              *
            • *

              * The profile must exist in your account. *

              *
            • *
            • *

              * The profile must have an IAM role that Amazon EC2 has permissions to assume. *

              *
            • *
            • *

              * The instance profile name and the associated IAM role name must start with the prefix * AWSRDSCustom. *

              *
            • *
            *

            * For the list of permissions required for the IAM role, see * Configure IAM and your VPC in the Amazon RDS User Guide. *

            *

            * This setting is required for RDS Custom DB instances. *

            * * @param customIamInstanceProfile * The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. * The instance profile must meet the following requirements:

            *
              *
            • *

              * The profile must exist in your account. *

              *
            • *
            • *

              * The profile must have an IAM role that Amazon EC2 has permissions to assume. *

              *
            • *
            • *

              * The instance profile name and the associated IAM role name must start with the prefix * AWSRDSCustom. *

              *
            • *
            *

            * For the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide. *

            *

            * This setting is required for RDS Custom DB instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder customIamInstanceProfile(String customIamInstanceProfile); /** *

            * The network type of the DB instance. *

            *

            * Valid Values: *

            *
              *
            • *

              * IPV4 *

              *
            • *
            • *

              * DUAL *

              *
            • *
            *

            * The network type is determined by the DBSubnetGroup specified for read replica. A * DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols ( * DUAL). *

            *

            * For more information, see * Working with a DB instance in a VPC in the Amazon RDS User Guide. *

            * * @param networkType * The network type of the DB instance.

            *

            * Valid Values: *

            *
              *
            • *

              * IPV4 *

              *
            • *
            • *

              * DUAL *

              *
            • *
            *

            * The network type is determined by the DBSubnetGroup specified for read replica. A * DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols ( * DUAL). *

            *

            * For more information, see * Working with a DB instance in a VPC in the Amazon RDS User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ Builder networkType(String networkType); /** *

            * Specifies the storage throughput value for the read replica. *

            *

            * This setting doesn't apply to RDS Custom or Amazon Aurora DB instances. *

            * * @param storageThroughput * Specifies the storage throughput value for the read replica.

            *

            * This setting doesn't apply to RDS Custom or Amazon Aurora DB instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder storageThroughput(Integer storageThroughput); /** *

            * Specifies whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts read replica. *

            *

            * A CoIP provides local or external connectivity to resources in your Outpost subnets through your * on-premises network. For some use cases, a CoIP can provide lower latency for connections to the read replica * from outside of its virtual private cloud (VPC) on your local network. *

            *

            * For more information about RDS on Outposts, see Working with Amazon RDS on * Amazon Web Services Outposts in the Amazon RDS User Guide. *

            *

            * For more information about CoIPs, see Customer-owned IP * addresses in the Amazon Web Services Outposts User Guide. *

            * * @param enableCustomerOwnedIp * Specifies whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts read * replica.

            *

            * A CoIP provides local or external connectivity to resources in your Outpost subnets through * your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the * read replica from outside of its virtual private cloud (VPC) on your local network. *

            *

            * For more information about RDS on Outposts, see Working with Amazon * RDS on Amazon Web Services Outposts in the Amazon RDS User Guide. *

            *

            * For more information about CoIPs, see Customer-owned * IP addresses in the Amazon Web Services Outposts User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ Builder enableCustomerOwnedIp(Boolean enableCustomerOwnedIp); /** *

            * The amount of storage (in gibibytes) to allocate initially for the read replica. Follow the allocation rules * specified in CreateDBInstance. *

            * *

            * Be sure to allocate enough storage for your read replica so that the create operation can succeed. You can * also allocate additional storage for future growth. *

            *
            * * @param allocatedStorage * The amount of storage (in gibibytes) to allocate initially for the read replica. Follow the allocation * rules specified in CreateDBInstance.

            *

            * Be sure to allocate enough storage for your read replica so that the create operation can succeed. You * can also allocate additional storage for future growth. *

            * @return Returns a reference to this object so that method calls can be chained together. */ Builder allocatedStorage(Integer allocatedStorage); /** *

            * The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB cluster * can have up to 15 read replicas. *

            *

            * Constraints: *

            *
              *
            • *

              * Must be the identifier of an existing Multi-AZ DB cluster. *

              *
            • *
            • *

              * Can't be specified if the SourceDBInstanceIdentifier parameter is also specified. *

              *
            • *
            • *

              * The specified DB cluster must have automatic backups enabled, that is, its backup retention period must be * greater than 0. *

              *
            • *
            • *

              * The source DB cluster must be in the same Amazon Web Services Region as the read replica. Cross-Region * replication isn't supported. *

              *
            • *
            * * @param sourceDBClusterIdentifier * The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB * cluster can have up to 15 read replicas.

            *

            * Constraints: *

            *
              *
            • *

              * Must be the identifier of an existing Multi-AZ DB cluster. *

              *
            • *
            • *

              * Can't be specified if the SourceDBInstanceIdentifier parameter is also specified. *

              *
            • *
            • *

              * The specified DB cluster must have automatic backups enabled, that is, its backup retention period * must be greater than 0. *

              *
            • *
            • *

              * The source DB cluster must be in the same Amazon Web Services Region as the read replica. Cross-Region * replication isn't supported. *

              *
            • * @return Returns a reference to this object so that method calls can be chained together. */ Builder sourceDBClusterIdentifier(String sourceDBClusterIdentifier); /** *

              * Indicates whether the DB instance has a dedicated log volume (DLV) enabled. *

              * * @param dedicatedLogVolume * Indicates whether the DB instance has a dedicated log volume (DLV) enabled. * @return Returns a reference to this object so that method calls can be chained together. */ Builder dedicatedLogVolume(Boolean dedicatedLogVolume); /** *

              * Whether to upgrade the storage file system configuration on the read replica. This option migrates the read * replica from the old storage file system layout to the preferred layout. *

              * * @param upgradeStorageConfig * Whether to upgrade the storage file system configuration on the read replica. This option migrates the * read replica from the old storage file system layout to the preferred layout. * @return Returns a reference to this object so that method calls can be chained together. */ Builder upgradeStorageConfig(Boolean upgradeStorageConfig); /** *

              * The CA certificate identifier to use for the read replica's server certificate. *

              *

              * This setting doesn't apply to RDS Custom DB instances. *

              *

              * For more information, see Using SSL/TLS to encrypt * a connection to a DB instance in the Amazon RDS User Guide and Using SSL/TLS to * encrypt a connection to a DB cluster in the Amazon Aurora User Guide. *

              * * @param caCertificateIdentifier * The CA certificate identifier to use for the read replica's server certificate.

              *

              * This setting doesn't apply to RDS Custom DB instances. *

              *

              * For more information, see Using SSL/TLS to * encrypt a connection to a DB instance in the Amazon RDS User Guide and Using * SSL/TLS to encrypt a connection to a DB cluster in the Amazon Aurora User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ Builder caCertificateIdentifier(String caCertificateIdentifier); /** * If PreSignedUrl is not specified, this is the region where the source snapshot is located. A PreSignedUrl * will be generated automatically by the SDK. * * @param sourceRegion * If PreSignedUrl is not specified, this is the region where the source snapshot is located. A * PreSignedUrl will be generated automatically by the SDK. * @return Returns a reference to this object so that method calls can be chained together. */ Builder sourceRegion(String sourceRegion); @Override Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration); @Override Builder overrideConfiguration(Consumer builderConsumer); } static final class BuilderImpl extends RdsRequest.BuilderImpl implements Builder { private String dbInstanceIdentifier; private String sourceDBInstanceIdentifier; private String dbInstanceClass; private String availabilityZone; private Integer port; private Boolean multiAZ; private Boolean autoMinorVersionUpgrade; private Integer iops; private String optionGroupName; private String dbParameterGroupName; private Boolean publiclyAccessible; private List tags = DefaultSdkAutoConstructList.getInstance(); private String dbSubnetGroupName; private List vpcSecurityGroupIds = DefaultSdkAutoConstructList.getInstance(); private String storageType; private Boolean copyTagsToSnapshot; private Integer monitoringInterval; private String monitoringRoleArn; private String kmsKeyId; private String preSignedUrl; private Boolean enableIAMDatabaseAuthentication; private Boolean enablePerformanceInsights; private String performanceInsightsKMSKeyId; private Integer performanceInsightsRetentionPeriod; private List enableCloudwatchLogsExports = DefaultSdkAutoConstructList.getInstance(); private List processorFeatures = DefaultSdkAutoConstructList.getInstance(); private Boolean useDefaultProcessorFeatures; private Boolean deletionProtection; private String domain; private String domainIAMRoleName; private String domainFqdn; private String domainOu; private String domainAuthSecretArn; private List domainDnsIps = DefaultSdkAutoConstructList.getInstance(); private String replicaMode; private Integer maxAllocatedStorage; private String customIamInstanceProfile; private String networkType; private Integer storageThroughput; private Boolean enableCustomerOwnedIp; private Integer allocatedStorage; private String sourceDBClusterIdentifier; private Boolean dedicatedLogVolume; private Boolean upgradeStorageConfig; private String caCertificateIdentifier; private String sourceRegion; private BuilderImpl() { } private BuilderImpl(CreateDbInstanceReadReplicaRequest model) { super(model); dbInstanceIdentifier(model.dbInstanceIdentifier); sourceDBInstanceIdentifier(model.sourceDBInstanceIdentifier); dbInstanceClass(model.dbInstanceClass); availabilityZone(model.availabilityZone); port(model.port); multiAZ(model.multiAZ); autoMinorVersionUpgrade(model.autoMinorVersionUpgrade); iops(model.iops); optionGroupName(model.optionGroupName); dbParameterGroupName(model.dbParameterGroupName); publiclyAccessible(model.publiclyAccessible); tags(model.tags); dbSubnetGroupName(model.dbSubnetGroupName); vpcSecurityGroupIds(model.vpcSecurityGroupIds); storageType(model.storageType); copyTagsToSnapshot(model.copyTagsToSnapshot); monitoringInterval(model.monitoringInterval); monitoringRoleArn(model.monitoringRoleArn); kmsKeyId(model.kmsKeyId); preSignedUrl(model.preSignedUrl); enableIAMDatabaseAuthentication(model.enableIAMDatabaseAuthentication); enablePerformanceInsights(model.enablePerformanceInsights); performanceInsightsKMSKeyId(model.performanceInsightsKMSKeyId); performanceInsightsRetentionPeriod(model.performanceInsightsRetentionPeriod); enableCloudwatchLogsExports(model.enableCloudwatchLogsExports); processorFeatures(model.processorFeatures); useDefaultProcessorFeatures(model.useDefaultProcessorFeatures); deletionProtection(model.deletionProtection); domain(model.domain); domainIAMRoleName(model.domainIAMRoleName); domainFqdn(model.domainFqdn); domainOu(model.domainOu); domainAuthSecretArn(model.domainAuthSecretArn); domainDnsIps(model.domainDnsIps); replicaMode(model.replicaMode); maxAllocatedStorage(model.maxAllocatedStorage); customIamInstanceProfile(model.customIamInstanceProfile); networkType(model.networkType); storageThroughput(model.storageThroughput); enableCustomerOwnedIp(model.enableCustomerOwnedIp); allocatedStorage(model.allocatedStorage); sourceDBClusterIdentifier(model.sourceDBClusterIdentifier); dedicatedLogVolume(model.dedicatedLogVolume); upgradeStorageConfig(model.upgradeStorageConfig); caCertificateIdentifier(model.caCertificateIdentifier); sourceRegion(model.sourceRegion); } public final String getDbInstanceIdentifier() { return dbInstanceIdentifier; } public final void setDbInstanceIdentifier(String dbInstanceIdentifier) { this.dbInstanceIdentifier = dbInstanceIdentifier; } @Override public final Builder dbInstanceIdentifier(String dbInstanceIdentifier) { this.dbInstanceIdentifier = dbInstanceIdentifier; return this; } public final String getSourceDBInstanceIdentifier() { return sourceDBInstanceIdentifier; } public final void setSourceDBInstanceIdentifier(String sourceDBInstanceIdentifier) { this.sourceDBInstanceIdentifier = sourceDBInstanceIdentifier; } @Override public final Builder sourceDBInstanceIdentifier(String sourceDBInstanceIdentifier) { this.sourceDBInstanceIdentifier = sourceDBInstanceIdentifier; return this; } public final String getDbInstanceClass() { return dbInstanceClass; } public final void setDbInstanceClass(String dbInstanceClass) { this.dbInstanceClass = dbInstanceClass; } @Override public final Builder dbInstanceClass(String dbInstanceClass) { this.dbInstanceClass = dbInstanceClass; return this; } public final String getAvailabilityZone() { return availabilityZone; } public final void setAvailabilityZone(String availabilityZone) { this.availabilityZone = availabilityZone; } @Override public final Builder availabilityZone(String availabilityZone) { this.availabilityZone = availabilityZone; return this; } public final Integer getPort() { return port; } public final void setPort(Integer port) { this.port = port; } @Override public final Builder port(Integer port) { this.port = port; return this; } public final Boolean getMultiAZ() { return multiAZ; } public final void setMultiAZ(Boolean multiAZ) { this.multiAZ = multiAZ; } @Override public final Builder multiAZ(Boolean multiAZ) { this.multiAZ = multiAZ; return this; } public final Boolean getAutoMinorVersionUpgrade() { return autoMinorVersionUpgrade; } public final void setAutoMinorVersionUpgrade(Boolean autoMinorVersionUpgrade) { this.autoMinorVersionUpgrade = autoMinorVersionUpgrade; } @Override public final Builder autoMinorVersionUpgrade(Boolean autoMinorVersionUpgrade) { this.autoMinorVersionUpgrade = autoMinorVersionUpgrade; return this; } public final Integer getIops() { return iops; } public final void setIops(Integer iops) { this.iops = iops; } @Override public final Builder iops(Integer iops) { this.iops = iops; return this; } public final String getOptionGroupName() { return optionGroupName; } public final void setOptionGroupName(String optionGroupName) { this.optionGroupName = optionGroupName; } @Override public final Builder optionGroupName(String optionGroupName) { this.optionGroupName = optionGroupName; return this; } public final String getDbParameterGroupName() { return dbParameterGroupName; } public final void setDbParameterGroupName(String dbParameterGroupName) { this.dbParameterGroupName = dbParameterGroupName; } @Override public final Builder dbParameterGroupName(String dbParameterGroupName) { this.dbParameterGroupName = dbParameterGroupName; return this; } public final Boolean getPubliclyAccessible() { return publiclyAccessible; } public final void setPubliclyAccessible(Boolean publiclyAccessible) { this.publiclyAccessible = publiclyAccessible; } @Override public final Builder publiclyAccessible(Boolean publiclyAccessible) { this.publiclyAccessible = publiclyAccessible; return this; } public final List getTags() { List result = TagListCopier.copyToBuilder(this.tags); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setTags(Collection tags) { this.tags = TagListCopier.copyFromBuilder(tags); } @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 String getDbSubnetGroupName() { return dbSubnetGroupName; } public final void setDbSubnetGroupName(String dbSubnetGroupName) { this.dbSubnetGroupName = dbSubnetGroupName; } @Override public final Builder dbSubnetGroupName(String dbSubnetGroupName) { this.dbSubnetGroupName = dbSubnetGroupName; return this; } public final Collection getVpcSecurityGroupIds() { if (vpcSecurityGroupIds instanceof SdkAutoConstructList) { return null; } return vpcSecurityGroupIds; } public final void setVpcSecurityGroupIds(Collection vpcSecurityGroupIds) { this.vpcSecurityGroupIds = VpcSecurityGroupIdListCopier.copy(vpcSecurityGroupIds); } @Override public final Builder vpcSecurityGroupIds(Collection vpcSecurityGroupIds) { this.vpcSecurityGroupIds = VpcSecurityGroupIdListCopier.copy(vpcSecurityGroupIds); return this; } @Override @SafeVarargs public final Builder vpcSecurityGroupIds(String... vpcSecurityGroupIds) { vpcSecurityGroupIds(Arrays.asList(vpcSecurityGroupIds)); return this; } public final String getStorageType() { return storageType; } public final void setStorageType(String storageType) { this.storageType = storageType; } @Override public final Builder storageType(String storageType) { this.storageType = storageType; return this; } public final Boolean getCopyTagsToSnapshot() { return copyTagsToSnapshot; } public final void setCopyTagsToSnapshot(Boolean copyTagsToSnapshot) { this.copyTagsToSnapshot = copyTagsToSnapshot; } @Override public final Builder copyTagsToSnapshot(Boolean copyTagsToSnapshot) { this.copyTagsToSnapshot = copyTagsToSnapshot; return this; } public final Integer getMonitoringInterval() { return monitoringInterval; } public final void setMonitoringInterval(Integer monitoringInterval) { this.monitoringInterval = monitoringInterval; } @Override public final Builder monitoringInterval(Integer monitoringInterval) { this.monitoringInterval = monitoringInterval; return this; } public final String getMonitoringRoleArn() { return monitoringRoleArn; } public final void setMonitoringRoleArn(String monitoringRoleArn) { this.monitoringRoleArn = monitoringRoleArn; } @Override public final Builder monitoringRoleArn(String monitoringRoleArn) { this.monitoringRoleArn = monitoringRoleArn; return this; } public final String getKmsKeyId() { return kmsKeyId; } public final void setKmsKeyId(String kmsKeyId) { this.kmsKeyId = kmsKeyId; } @Override public final Builder kmsKeyId(String kmsKeyId) { this.kmsKeyId = kmsKeyId; return this; } public final String getPreSignedUrl() { return preSignedUrl; } public final void setPreSignedUrl(String preSignedUrl) { this.preSignedUrl = preSignedUrl; } @Override public final Builder preSignedUrl(String preSignedUrl) { this.preSignedUrl = preSignedUrl; return this; } public final Boolean getEnableIAMDatabaseAuthentication() { return enableIAMDatabaseAuthentication; } public final void setEnableIAMDatabaseAuthentication(Boolean enableIAMDatabaseAuthentication) { this.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication; } @Override public final Builder enableIAMDatabaseAuthentication(Boolean enableIAMDatabaseAuthentication) { this.enableIAMDatabaseAuthentication = enableIAMDatabaseAuthentication; return this; } public final Boolean getEnablePerformanceInsights() { return enablePerformanceInsights; } public final void setEnablePerformanceInsights(Boolean enablePerformanceInsights) { this.enablePerformanceInsights = enablePerformanceInsights; } @Override public final Builder enablePerformanceInsights(Boolean enablePerformanceInsights) { this.enablePerformanceInsights = enablePerformanceInsights; return this; } public final String getPerformanceInsightsKMSKeyId() { return performanceInsightsKMSKeyId; } public final void setPerformanceInsightsKMSKeyId(String performanceInsightsKMSKeyId) { this.performanceInsightsKMSKeyId = performanceInsightsKMSKeyId; } @Override public final Builder performanceInsightsKMSKeyId(String performanceInsightsKMSKeyId) { this.performanceInsightsKMSKeyId = performanceInsightsKMSKeyId; return this; } public final Integer getPerformanceInsightsRetentionPeriod() { return performanceInsightsRetentionPeriod; } public final void setPerformanceInsightsRetentionPeriod(Integer performanceInsightsRetentionPeriod) { this.performanceInsightsRetentionPeriod = performanceInsightsRetentionPeriod; } @Override public final Builder performanceInsightsRetentionPeriod(Integer performanceInsightsRetentionPeriod) { this.performanceInsightsRetentionPeriod = performanceInsightsRetentionPeriod; return this; } public final Collection getEnableCloudwatchLogsExports() { if (enableCloudwatchLogsExports instanceof SdkAutoConstructList) { return null; } return enableCloudwatchLogsExports; } public final void setEnableCloudwatchLogsExports(Collection enableCloudwatchLogsExports) { this.enableCloudwatchLogsExports = LogTypeListCopier.copy(enableCloudwatchLogsExports); } @Override public final Builder enableCloudwatchLogsExports(Collection enableCloudwatchLogsExports) { this.enableCloudwatchLogsExports = LogTypeListCopier.copy(enableCloudwatchLogsExports); return this; } @Override @SafeVarargs public final Builder enableCloudwatchLogsExports(String... enableCloudwatchLogsExports) { enableCloudwatchLogsExports(Arrays.asList(enableCloudwatchLogsExports)); return this; } public final List getProcessorFeatures() { List result = ProcessorFeatureListCopier.copyToBuilder(this.processorFeatures); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setProcessorFeatures(Collection processorFeatures) { this.processorFeatures = ProcessorFeatureListCopier.copyFromBuilder(processorFeatures); } @Override public final Builder processorFeatures(Collection processorFeatures) { this.processorFeatures = ProcessorFeatureListCopier.copy(processorFeatures); return this; } @Override @SafeVarargs public final Builder processorFeatures(ProcessorFeature... processorFeatures) { processorFeatures(Arrays.asList(processorFeatures)); return this; } @Override @SafeVarargs public final Builder processorFeatures(Consumer... processorFeatures) { processorFeatures(Stream.of(processorFeatures).map(c -> ProcessorFeature.builder().applyMutation(c).build()) .collect(Collectors.toList())); return this; } public final Boolean getUseDefaultProcessorFeatures() { return useDefaultProcessorFeatures; } public final void setUseDefaultProcessorFeatures(Boolean useDefaultProcessorFeatures) { this.useDefaultProcessorFeatures = useDefaultProcessorFeatures; } @Override public final Builder useDefaultProcessorFeatures(Boolean useDefaultProcessorFeatures) { this.useDefaultProcessorFeatures = useDefaultProcessorFeatures; return this; } public final Boolean getDeletionProtection() { return deletionProtection; } public final void setDeletionProtection(Boolean deletionProtection) { this.deletionProtection = deletionProtection; } @Override public final Builder deletionProtection(Boolean deletionProtection) { this.deletionProtection = deletionProtection; return this; } public final String getDomain() { return domain; } public final void setDomain(String domain) { this.domain = domain; } @Override public final Builder domain(String domain) { this.domain = domain; return this; } public final String getDomainIAMRoleName() { return domainIAMRoleName; } public final void setDomainIAMRoleName(String domainIAMRoleName) { this.domainIAMRoleName = domainIAMRoleName; } @Override public final Builder domainIAMRoleName(String domainIAMRoleName) { this.domainIAMRoleName = domainIAMRoleName; return this; } public final String getDomainFqdn() { return domainFqdn; } public final void setDomainFqdn(String domainFqdn) { this.domainFqdn = domainFqdn; } @Override public final Builder domainFqdn(String domainFqdn) { this.domainFqdn = domainFqdn; return this; } public final String getDomainOu() { return domainOu; } public final void setDomainOu(String domainOu) { this.domainOu = domainOu; } @Override public final Builder domainOu(String domainOu) { this.domainOu = domainOu; return this; } public final String getDomainAuthSecretArn() { return domainAuthSecretArn; } public final void setDomainAuthSecretArn(String domainAuthSecretArn) { this.domainAuthSecretArn = domainAuthSecretArn; } @Override public final Builder domainAuthSecretArn(String domainAuthSecretArn) { this.domainAuthSecretArn = domainAuthSecretArn; return this; } public final Collection getDomainDnsIps() { if (domainDnsIps instanceof SdkAutoConstructList) { return null; } return domainDnsIps; } public final void setDomainDnsIps(Collection domainDnsIps) { this.domainDnsIps = StringListCopier.copy(domainDnsIps); } @Override public final Builder domainDnsIps(Collection domainDnsIps) { this.domainDnsIps = StringListCopier.copy(domainDnsIps); return this; } @Override @SafeVarargs public final Builder domainDnsIps(String... domainDnsIps) { domainDnsIps(Arrays.asList(domainDnsIps)); return this; } public final String getReplicaMode() { return replicaMode; } public final void setReplicaMode(String replicaMode) { this.replicaMode = replicaMode; } @Override public final Builder replicaMode(String replicaMode) { this.replicaMode = replicaMode; return this; } @Override public final Builder replicaMode(ReplicaMode replicaMode) { this.replicaMode(replicaMode == null ? null : replicaMode.toString()); return this; } public final Integer getMaxAllocatedStorage() { return maxAllocatedStorage; } public final void setMaxAllocatedStorage(Integer maxAllocatedStorage) { this.maxAllocatedStorage = maxAllocatedStorage; } @Override public final Builder maxAllocatedStorage(Integer maxAllocatedStorage) { this.maxAllocatedStorage = maxAllocatedStorage; return this; } public final String getCustomIamInstanceProfile() { return customIamInstanceProfile; } public final void setCustomIamInstanceProfile(String customIamInstanceProfile) { this.customIamInstanceProfile = customIamInstanceProfile; } @Override public final Builder customIamInstanceProfile(String customIamInstanceProfile) { this.customIamInstanceProfile = customIamInstanceProfile; return this; } public final String getNetworkType() { return networkType; } public final void setNetworkType(String networkType) { this.networkType = networkType; } @Override public final Builder networkType(String networkType) { this.networkType = networkType; return this; } public final Integer getStorageThroughput() { return storageThroughput; } public final void setStorageThroughput(Integer storageThroughput) { this.storageThroughput = storageThroughput; } @Override public final Builder storageThroughput(Integer storageThroughput) { this.storageThroughput = storageThroughput; return this; } public final Boolean getEnableCustomerOwnedIp() { return enableCustomerOwnedIp; } public final void setEnableCustomerOwnedIp(Boolean enableCustomerOwnedIp) { this.enableCustomerOwnedIp = enableCustomerOwnedIp; } @Override public final Builder enableCustomerOwnedIp(Boolean enableCustomerOwnedIp) { this.enableCustomerOwnedIp = enableCustomerOwnedIp; return this; } public final Integer getAllocatedStorage() { return allocatedStorage; } public final void setAllocatedStorage(Integer allocatedStorage) { this.allocatedStorage = allocatedStorage; } @Override public final Builder allocatedStorage(Integer allocatedStorage) { this.allocatedStorage = allocatedStorage; return this; } public final String getSourceDBClusterIdentifier() { return sourceDBClusterIdentifier; } public final void setSourceDBClusterIdentifier(String sourceDBClusterIdentifier) { this.sourceDBClusterIdentifier = sourceDBClusterIdentifier; } @Override public final Builder sourceDBClusterIdentifier(String sourceDBClusterIdentifier) { this.sourceDBClusterIdentifier = sourceDBClusterIdentifier; return this; } public final Boolean getDedicatedLogVolume() { return dedicatedLogVolume; } public final void setDedicatedLogVolume(Boolean dedicatedLogVolume) { this.dedicatedLogVolume = dedicatedLogVolume; } @Override public final Builder dedicatedLogVolume(Boolean dedicatedLogVolume) { this.dedicatedLogVolume = dedicatedLogVolume; return this; } public final Boolean getUpgradeStorageConfig() { return upgradeStorageConfig; } public final void setUpgradeStorageConfig(Boolean upgradeStorageConfig) { this.upgradeStorageConfig = upgradeStorageConfig; } @Override public final Builder upgradeStorageConfig(Boolean upgradeStorageConfig) { this.upgradeStorageConfig = upgradeStorageConfig; return this; } public final String getCaCertificateIdentifier() { return caCertificateIdentifier; } public final void setCaCertificateIdentifier(String caCertificateIdentifier) { this.caCertificateIdentifier = caCertificateIdentifier; } @Override public final Builder caCertificateIdentifier(String caCertificateIdentifier) { this.caCertificateIdentifier = caCertificateIdentifier; return this; } public final String getSourceRegion() { return sourceRegion; } public final void setSourceRegion(String sourceRegion) { this.sourceRegion = sourceRegion; } @Override public final Builder sourceRegion(String sourceRegion) { this.sourceRegion = sourceRegion; return this; } @Override public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) { super.overrideConfiguration(overrideConfiguration); return this; } @Override public Builder overrideConfiguration(Consumer builderConsumer) { super.overrideConfiguration(builderConsumer); return this; } @Override public CreateDbInstanceReadReplicaRequest build() { return new CreateDbInstanceReadReplicaRequest(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy