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

com.pulumi.azurenative.awsconnector.inputs.AwsDatabaseMigrationServiceReplicationInstancePropertiesArgs Maven / Gradle / Ivy

// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azurenative.awsconnector.inputs;

import com.pulumi.azurenative.awsconnector.inputs.ReplicationPendingModifiedValuesArgs;
import com.pulumi.azurenative.awsconnector.inputs.ReplicationSubnetGroupArgs;
import com.pulumi.azurenative.awsconnector.inputs.VpcSecurityGroupMembershipArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Definition of awsDatabaseMigrationServiceReplicationInstance
 * 
 */
public final class AwsDatabaseMigrationServiceReplicationInstancePropertiesArgs extends com.pulumi.resources.ResourceArgs {

    public static final AwsDatabaseMigrationServiceReplicationInstancePropertiesArgs Empty = new AwsDatabaseMigrationServiceReplicationInstancePropertiesArgs();

    /**
     * <p>The amount of storage (in gigabytes) that is allocated for the replication instance.</p>
     * 
     */
    @Import(name="allocatedStorage")
    private @Nullable Output allocatedStorage;

    /**
     * @return <p>The amount of storage (in gigabytes) that is allocated for the replication instance.</p>
     * 
     */
    public Optional> allocatedStorage() {
        return Optional.ofNullable(this.allocatedStorage);
    }

    /**
     * <p>Boolean value indicating if minor version upgrades will be automatically applied to the instance.</p>
     * 
     */
    @Import(name="autoMinorVersionUpgrade")
    private @Nullable Output autoMinorVersionUpgrade;

    /**
     * @return <p>Boolean value indicating if minor version upgrades will be automatically applied to the instance.</p>
     * 
     */
    public Optional> autoMinorVersionUpgrade() {
        return Optional.ofNullable(this.autoMinorVersionUpgrade);
    }

    /**
     * <p>The Availability Zone for the instance.</p>
     * 
     */
    @Import(name="availabilityZone")
    private @Nullable Output availabilityZone;

    /**
     * @return <p>The Availability Zone for the instance.</p>
     * 
     */
    public Optional> availabilityZone() {
        return Optional.ofNullable(this.availabilityZone);
    }

    /**
     * <p>The DNS name servers supported for the replication instance to access your on-premise source or target database.</p>
     * 
     */
    @Import(name="dnsNameServers")
    private @Nullable Output dnsNameServers;

    /**
     * @return <p>The DNS name servers supported for the replication instance to access your on-premise source or target database.</p>
     * 
     */
    public Optional> dnsNameServers() {
        return Optional.ofNullable(this.dnsNameServers);
    }

    /**
     * <p>The engine version number of the replication instance.</p> <p>If an engine version number is not specified when a replication instance is created, the default is the latest engine version available.</p> <p>When modifying a major engine version of an instance, also set <code>AllowMajorVersionUpgrade</code> to <code>true</code>.</p>
     * 
     */
    @Import(name="engineVersion")
    private @Nullable Output engineVersion;

    /**
     * @return <p>The engine version number of the replication instance.</p> <p>If an engine version number is not specified when a replication instance is created, the default is the latest engine version available.</p> <p>When modifying a major engine version of an instance, also set <code>AllowMajorVersionUpgrade</code> to <code>true</code>.</p>
     * 
     */
    public Optional> engineVersion() {
        return Optional.ofNullable(this.engineVersion);
    }

    /**
     * <p> The expiration date of the free replication instance that is part of the Free DMS program. </p>
     * 
     */
    @Import(name="freeUntil")
    private @Nullable Output freeUntil;

    /**
     * @return <p> The expiration date of the free replication instance that is part of the Free DMS program. </p>
     * 
     */
    public Optional> freeUntil() {
        return Optional.ofNullable(this.freeUntil);
    }

    /**
     * <p>The time the replication instance was created.</p>
     * 
     */
    @Import(name="instanceCreateTime")
    private @Nullable Output instanceCreateTime;

    /**
     * @return <p>The time the replication instance was created.</p>
     * 
     */
    public Optional> instanceCreateTime() {
        return Optional.ofNullable(this.instanceCreateTime);
    }

    /**
     * <p>An KMS key identifier that is used to encrypt the data on the replication instance.</p> <p>If you don't specify a value for the <code>KmsKeyId</code> parameter, then DMS uses your default encryption key.</p> <p>KMS creates the default encryption key for your Amazon Web Services account. Your Amazon Web Services account has a different default encryption key for each Amazon Web Services Region.</p>
     * 
     */
    @Import(name="kmsKeyId")
    private @Nullable Output kmsKeyId;

    /**
     * @return <p>An KMS key identifier that is used to encrypt the data on the replication instance.</p> <p>If you don't specify a value for the <code>KmsKeyId</code> parameter, then DMS uses your default encryption key.</p> <p>KMS creates the default encryption key for your Amazon Web Services account. Your Amazon Web Services account has a different default encryption key for each Amazon Web Services Region.</p>
     * 
     */
    public Optional> kmsKeyId() {
        return Optional.ofNullable(this.kmsKeyId);
    }

    /**
     * <p> Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>. </p>
     * 
     */
    @Import(name="multiAZ")
    private @Nullable Output multiAZ;

    /**
     * @return <p> Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>. </p>
     * 
     */
    public Optional> multiAZ() {
        return Optional.ofNullable(this.multiAZ);
    }

    /**
     * <p>The type of IP address protocol used by a replication instance, such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. IPv6 only is not yet supported.</p>
     * 
     */
    @Import(name="networkType")
    private @Nullable Output networkType;

    /**
     * @return <p>The type of IP address protocol used by a replication instance, such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. IPv6 only is not yet supported.</p>
     * 
     */
    public Optional> networkType() {
        return Optional.ofNullable(this.networkType);
    }

    /**
     * <p>The pending modification values.</p>
     * 
     */
    @Import(name="pendingModifiedValues")
    private @Nullable Output pendingModifiedValues;

    /**
     * @return <p>The pending modification values.</p>
     * 
     */
    public Optional> pendingModifiedValues() {
        return Optional.ofNullable(this.pendingModifiedValues);
    }

    /**
     * <p>The maintenance window times for the replication instance. Any pending upgrades to the replication instance are performed during this time.</p>
     * 
     */
    @Import(name="preferredMaintenanceWindow")
    private @Nullable Output preferredMaintenanceWindow;

    /**
     * @return <p>The maintenance window times for the replication instance. Any pending upgrades to the replication instance are performed during this time.</p>
     * 
     */
    public Optional> preferredMaintenanceWindow() {
        return Optional.ofNullable(this.preferredMaintenanceWindow);
    }

    /**
     * <p> Specifies the accessibility options for the replication instance. A value of <code>true</code> represents an instance with a public IP address. A value of <code>false</code> represents an instance with a private IP address. The default value is <code>true</code>. </p>
     * 
     */
    @Import(name="publiclyAccessible")
    private @Nullable Output publiclyAccessible;

    /**
     * @return <p> Specifies the accessibility options for the replication instance. A value of <code>true</code> represents an instance with a public IP address. A value of <code>false</code> represents an instance with a private IP address. The default value is <code>true</code>. </p>
     * 
     */
    public Optional> publiclyAccessible() {
        return Optional.ofNullable(this.publiclyAccessible);
    }

    /**
     * <p>The Amazon Resource Name (ARN) of the replication instance.</p>
     * 
     */
    @Import(name="replicationInstanceArn")
    private @Nullable Output replicationInstanceArn;

    /**
     * @return <p>The Amazon Resource Name (ARN) of the replication instance.</p>
     * 
     */
    public Optional> replicationInstanceArn() {
        return Optional.ofNullable(this.replicationInstanceArn);
    }

    /**
     * <p>The compute and memory capacity of the replication instance as defined for the specified replication instance class. It is a required parameter, although a default value is pre-selected in the DMS console.</p> <p>For more information on the settings and capacities for the available replication instance classes, see <a href='https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth'> Selecting the right DMS replication instance for your migration</a>. </p>
     * 
     */
    @Import(name="replicationInstanceClass")
    private @Nullable Output replicationInstanceClass;

    /**
     * @return <p>The compute and memory capacity of the replication instance as defined for the specified replication instance class. It is a required parameter, although a default value is pre-selected in the DMS console.</p> <p>For more information on the settings and capacities for the available replication instance classes, see <a href='https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth'> Selecting the right DMS replication instance for your migration</a>. </p>
     * 
     */
    public Optional> replicationInstanceClass() {
        return Optional.ofNullable(this.replicationInstanceClass);
    }

    /**
     * <p>The replication instance identifier is a required parameter. This parameter is stored as a lowercase string.</p> <p>Constraints:</p> <ul> <li> <p>Must contain 1-63 alphanumeric characters or hyphens.</p> </li> <li> <p>First character must be a letter.</p> </li> <li> <p>Cannot end with a hyphen or contain two consecutive hyphens.</p> </li> </ul> <p>Example: <code>myrepinstance</code> </p>
     * 
     */
    @Import(name="replicationInstanceIdentifier")
    private @Nullable Output replicationInstanceIdentifier;

    /**
     * @return <p>The replication instance identifier is a required parameter. This parameter is stored as a lowercase string.</p> <p>Constraints:</p> <ul> <li> <p>Must contain 1-63 alphanumeric characters or hyphens.</p> </li> <li> <p>First character must be a letter.</p> </li> <li> <p>Cannot end with a hyphen or contain two consecutive hyphens.</p> </li> </ul> <p>Example: <code>myrepinstance</code> </p>
     * 
     */
    public Optional> replicationInstanceIdentifier() {
        return Optional.ofNullable(this.replicationInstanceIdentifier);
    }

    /**
     * <p>One or more IPv6 addresses for the replication instance.</p>
     * 
     */
    @Import(name="replicationInstanceIpv6Addresses")
    private @Nullable Output> replicationInstanceIpv6Addresses;

    /**
     * @return <p>One or more IPv6 addresses for the replication instance.</p>
     * 
     */
    public Optional>> replicationInstanceIpv6Addresses() {
        return Optional.ofNullable(this.replicationInstanceIpv6Addresses);
    }

    /**
     * <p>The private IP address of the replication instance.</p>
     * 
     */
    @Import(name="replicationInstancePrivateIpAddress")
    private @Nullable Output replicationInstancePrivateIpAddress;

    /**
     * @return <p>The private IP address of the replication instance.</p>
     * 
     */
    public Optional> replicationInstancePrivateIpAddress() {
        return Optional.ofNullable(this.replicationInstancePrivateIpAddress);
    }

    /**
     * <p>One or more private IP addresses for the replication instance.</p>
     * 
     */
    @Import(name="replicationInstancePrivateIpAddresses")
    private @Nullable Output> replicationInstancePrivateIpAddresses;

    /**
     * @return <p>One or more private IP addresses for the replication instance.</p>
     * 
     */
    public Optional>> replicationInstancePrivateIpAddresses() {
        return Optional.ofNullable(this.replicationInstancePrivateIpAddresses);
    }

    /**
     * <p>The public IP address of the replication instance.</p>
     * 
     */
    @Import(name="replicationInstancePublicIpAddress")
    private @Nullable Output replicationInstancePublicIpAddress;

    /**
     * @return <p>The public IP address of the replication instance.</p>
     * 
     */
    public Optional> replicationInstancePublicIpAddress() {
        return Optional.ofNullable(this.replicationInstancePublicIpAddress);
    }

    /**
     * <p>One or more public IP addresses for the replication instance.</p>
     * 
     */
    @Import(name="replicationInstancePublicIpAddresses")
    private @Nullable Output> replicationInstancePublicIpAddresses;

    /**
     * @return <p>One or more public IP addresses for the replication instance.</p>
     * 
     */
    public Optional>> replicationInstancePublicIpAddresses() {
        return Optional.ofNullable(this.replicationInstancePublicIpAddresses);
    }

    /**
     * <p>The status of the replication instance. The possible return values include:</p> <ul> <li> <p> <code>'available'</code> </p> </li> <li> <p> <code>'creating'</code> </p> </li> <li> <p> <code>'deleted'</code> </p> </li> <li> <p> <code>'deleting'</code> </p> </li> <li> <p> <code>'failed'</code> </p> </li> <li> <p> <code>'modifying'</code> </p> </li> <li> <p> <code>'upgrading'</code> </p> </li> <li> <p> <code>'rebooting'</code> </p> </li> <li> <p> <code>'resetting-master-credentials'</code> </p> </li> <li> <p> <code>'storage-full'</code> </p> </li> <li> <p> <code>'incompatible-credentials'</code> </p> </li> <li> <p> <code>'incompatible-network'</code> </p> </li> <li> <p> <code>'maintenance'</code> </p> </li> </ul>
     * 
     */
    @Import(name="replicationInstanceStatus")
    private @Nullable Output replicationInstanceStatus;

    /**
     * @return <p>The status of the replication instance. The possible return values include:</p> <ul> <li> <p> <code>'available'</code> </p> </li> <li> <p> <code>'creating'</code> </p> </li> <li> <p> <code>'deleted'</code> </p> </li> <li> <p> <code>'deleting'</code> </p> </li> <li> <p> <code>'failed'</code> </p> </li> <li> <p> <code>'modifying'</code> </p> </li> <li> <p> <code>'upgrading'</code> </p> </li> <li> <p> <code>'rebooting'</code> </p> </li> <li> <p> <code>'resetting-master-credentials'</code> </p> </li> <li> <p> <code>'storage-full'</code> </p> </li> <li> <p> <code>'incompatible-credentials'</code> </p> </li> <li> <p> <code>'incompatible-network'</code> </p> </li> <li> <p> <code>'maintenance'</code> </p> </li> </ul>
     * 
     */
    public Optional> replicationInstanceStatus() {
        return Optional.ofNullable(this.replicationInstanceStatus);
    }

    /**
     * <p>The subnet group for the replication instance.</p>
     * 
     */
    @Import(name="replicationSubnetGroup")
    private @Nullable Output replicationSubnetGroup;

    /**
     * @return <p>The subnet group for the replication instance.</p>
     * 
     */
    public Optional> replicationSubnetGroup() {
        return Optional.ofNullable(this.replicationSubnetGroup);
    }

    /**
     * <p>The Availability Zone of the standby replication instance in a Multi-AZ deployment.</p>
     * 
     */
    @Import(name="secondaryAvailabilityZone")
    private @Nullable Output secondaryAvailabilityZone;

    /**
     * @return <p>The Availability Zone of the standby replication instance in a Multi-AZ deployment.</p>
     * 
     */
    public Optional> secondaryAvailabilityZone() {
        return Optional.ofNullable(this.secondaryAvailabilityZone);
    }

    /**
     * <p>The VPC security group for the instance.</p>
     * 
     */
    @Import(name="vpcSecurityGroups")
    private @Nullable Output> vpcSecurityGroups;

    /**
     * @return <p>The VPC security group for the instance.</p>
     * 
     */
    public Optional>> vpcSecurityGroups() {
        return Optional.ofNullable(this.vpcSecurityGroups);
    }

    private AwsDatabaseMigrationServiceReplicationInstancePropertiesArgs() {}

    private AwsDatabaseMigrationServiceReplicationInstancePropertiesArgs(AwsDatabaseMigrationServiceReplicationInstancePropertiesArgs $) {
        this.allocatedStorage = $.allocatedStorage;
        this.autoMinorVersionUpgrade = $.autoMinorVersionUpgrade;
        this.availabilityZone = $.availabilityZone;
        this.dnsNameServers = $.dnsNameServers;
        this.engineVersion = $.engineVersion;
        this.freeUntil = $.freeUntil;
        this.instanceCreateTime = $.instanceCreateTime;
        this.kmsKeyId = $.kmsKeyId;
        this.multiAZ = $.multiAZ;
        this.networkType = $.networkType;
        this.pendingModifiedValues = $.pendingModifiedValues;
        this.preferredMaintenanceWindow = $.preferredMaintenanceWindow;
        this.publiclyAccessible = $.publiclyAccessible;
        this.replicationInstanceArn = $.replicationInstanceArn;
        this.replicationInstanceClass = $.replicationInstanceClass;
        this.replicationInstanceIdentifier = $.replicationInstanceIdentifier;
        this.replicationInstanceIpv6Addresses = $.replicationInstanceIpv6Addresses;
        this.replicationInstancePrivateIpAddress = $.replicationInstancePrivateIpAddress;
        this.replicationInstancePrivateIpAddresses = $.replicationInstancePrivateIpAddresses;
        this.replicationInstancePublicIpAddress = $.replicationInstancePublicIpAddress;
        this.replicationInstancePublicIpAddresses = $.replicationInstancePublicIpAddresses;
        this.replicationInstanceStatus = $.replicationInstanceStatus;
        this.replicationSubnetGroup = $.replicationSubnetGroup;
        this.secondaryAvailabilityZone = $.secondaryAvailabilityZone;
        this.vpcSecurityGroups = $.vpcSecurityGroups;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(AwsDatabaseMigrationServiceReplicationInstancePropertiesArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private AwsDatabaseMigrationServiceReplicationInstancePropertiesArgs $;

        public Builder() {
            $ = new AwsDatabaseMigrationServiceReplicationInstancePropertiesArgs();
        }

        public Builder(AwsDatabaseMigrationServiceReplicationInstancePropertiesArgs defaults) {
            $ = new AwsDatabaseMigrationServiceReplicationInstancePropertiesArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param allocatedStorage <p>The amount of storage (in gigabytes) that is allocated for the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder allocatedStorage(@Nullable Output allocatedStorage) {
            $.allocatedStorage = allocatedStorage;
            return this;
        }

        /**
         * @param allocatedStorage <p>The amount of storage (in gigabytes) that is allocated for the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder allocatedStorage(Integer allocatedStorage) {
            return allocatedStorage(Output.of(allocatedStorage));
        }

        /**
         * @param autoMinorVersionUpgrade <p>Boolean value indicating if minor version upgrades will be automatically applied to the instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder autoMinorVersionUpgrade(@Nullable Output autoMinorVersionUpgrade) {
            $.autoMinorVersionUpgrade = autoMinorVersionUpgrade;
            return this;
        }

        /**
         * @param autoMinorVersionUpgrade <p>Boolean value indicating if minor version upgrades will be automatically applied to the instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder autoMinorVersionUpgrade(Boolean autoMinorVersionUpgrade) {
            return autoMinorVersionUpgrade(Output.of(autoMinorVersionUpgrade));
        }

        /**
         * @param availabilityZone <p>The Availability Zone for the instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder availabilityZone(@Nullable Output availabilityZone) {
            $.availabilityZone = availabilityZone;
            return this;
        }

        /**
         * @param availabilityZone <p>The Availability Zone for the instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder availabilityZone(String availabilityZone) {
            return availabilityZone(Output.of(availabilityZone));
        }

        /**
         * @param dnsNameServers <p>The DNS name servers supported for the replication instance to access your on-premise source or target database.</p>
         * 
         * @return builder
         * 
         */
        public Builder dnsNameServers(@Nullable Output dnsNameServers) {
            $.dnsNameServers = dnsNameServers;
            return this;
        }

        /**
         * @param dnsNameServers <p>The DNS name servers supported for the replication instance to access your on-premise source or target database.</p>
         * 
         * @return builder
         * 
         */
        public Builder dnsNameServers(String dnsNameServers) {
            return dnsNameServers(Output.of(dnsNameServers));
        }

        /**
         * @param engineVersion <p>The engine version number of the replication instance.</p> <p>If an engine version number is not specified when a replication instance is created, the default is the latest engine version available.</p> <p>When modifying a major engine version of an instance, also set <code>AllowMajorVersionUpgrade</code> to <code>true</code>.</p>
         * 
         * @return builder
         * 
         */
        public Builder engineVersion(@Nullable Output engineVersion) {
            $.engineVersion = engineVersion;
            return this;
        }

        /**
         * @param engineVersion <p>The engine version number of the replication instance.</p> <p>If an engine version number is not specified when a replication instance is created, the default is the latest engine version available.</p> <p>When modifying a major engine version of an instance, also set <code>AllowMajorVersionUpgrade</code> to <code>true</code>.</p>
         * 
         * @return builder
         * 
         */
        public Builder engineVersion(String engineVersion) {
            return engineVersion(Output.of(engineVersion));
        }

        /**
         * @param freeUntil <p> The expiration date of the free replication instance that is part of the Free DMS program. </p>
         * 
         * @return builder
         * 
         */
        public Builder freeUntil(@Nullable Output freeUntil) {
            $.freeUntil = freeUntil;
            return this;
        }

        /**
         * @param freeUntil <p> The expiration date of the free replication instance that is part of the Free DMS program. </p>
         * 
         * @return builder
         * 
         */
        public Builder freeUntil(String freeUntil) {
            return freeUntil(Output.of(freeUntil));
        }

        /**
         * @param instanceCreateTime <p>The time the replication instance was created.</p>
         * 
         * @return builder
         * 
         */
        public Builder instanceCreateTime(@Nullable Output instanceCreateTime) {
            $.instanceCreateTime = instanceCreateTime;
            return this;
        }

        /**
         * @param instanceCreateTime <p>The time the replication instance was created.</p>
         * 
         * @return builder
         * 
         */
        public Builder instanceCreateTime(String instanceCreateTime) {
            return instanceCreateTime(Output.of(instanceCreateTime));
        }

        /**
         * @param kmsKeyId <p>An KMS key identifier that is used to encrypt the data on the replication instance.</p> <p>If you don't specify a value for the <code>KmsKeyId</code> parameter, then DMS uses your default encryption key.</p> <p>KMS creates the default encryption key for your Amazon Web Services account. Your Amazon Web Services account has a different default encryption key for each Amazon Web Services Region.</p>
         * 
         * @return builder
         * 
         */
        public Builder kmsKeyId(@Nullable Output kmsKeyId) {
            $.kmsKeyId = kmsKeyId;
            return this;
        }

        /**
         * @param kmsKeyId <p>An KMS key identifier that is used to encrypt the data on the replication instance.</p> <p>If you don't specify a value for the <code>KmsKeyId</code> parameter, then DMS uses your default encryption key.</p> <p>KMS creates the default encryption key for your Amazon Web Services account. Your Amazon Web Services account has a different default encryption key for each Amazon Web Services Region.</p>
         * 
         * @return builder
         * 
         */
        public Builder kmsKeyId(String kmsKeyId) {
            return kmsKeyId(Output.of(kmsKeyId));
        }

        /**
         * @param multiAZ <p> Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>. </p>
         * 
         * @return builder
         * 
         */
        public Builder multiAZ(@Nullable Output multiAZ) {
            $.multiAZ = multiAZ;
            return this;
        }

        /**
         * @param multiAZ <p> Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>. </p>
         * 
         * @return builder
         * 
         */
        public Builder multiAZ(Boolean multiAZ) {
            return multiAZ(Output.of(multiAZ));
        }

        /**
         * @param networkType <p>The type of IP address protocol used by a replication instance, such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. IPv6 only is not yet supported.</p>
         * 
         * @return builder
         * 
         */
        public Builder networkType(@Nullable Output networkType) {
            $.networkType = networkType;
            return this;
        }

        /**
         * @param networkType <p>The type of IP address protocol used by a replication instance, such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. IPv6 only is not yet supported.</p>
         * 
         * @return builder
         * 
         */
        public Builder networkType(String networkType) {
            return networkType(Output.of(networkType));
        }

        /**
         * @param pendingModifiedValues <p>The pending modification values.</p>
         * 
         * @return builder
         * 
         */
        public Builder pendingModifiedValues(@Nullable Output pendingModifiedValues) {
            $.pendingModifiedValues = pendingModifiedValues;
            return this;
        }

        /**
         * @param pendingModifiedValues <p>The pending modification values.</p>
         * 
         * @return builder
         * 
         */
        public Builder pendingModifiedValues(ReplicationPendingModifiedValuesArgs pendingModifiedValues) {
            return pendingModifiedValues(Output.of(pendingModifiedValues));
        }

        /**
         * @param preferredMaintenanceWindow <p>The maintenance window times for the replication instance. Any pending upgrades to the replication instance are performed during this time.</p>
         * 
         * @return builder
         * 
         */
        public Builder preferredMaintenanceWindow(@Nullable Output preferredMaintenanceWindow) {
            $.preferredMaintenanceWindow = preferredMaintenanceWindow;
            return this;
        }

        /**
         * @param preferredMaintenanceWindow <p>The maintenance window times for the replication instance. Any pending upgrades to the replication instance are performed during this time.</p>
         * 
         * @return builder
         * 
         */
        public Builder preferredMaintenanceWindow(String preferredMaintenanceWindow) {
            return preferredMaintenanceWindow(Output.of(preferredMaintenanceWindow));
        }

        /**
         * @param publiclyAccessible <p> Specifies the accessibility options for the replication instance. A value of <code>true</code> represents an instance with a public IP address. A value of <code>false</code> represents an instance with a private IP address. The default value is <code>true</code>. </p>
         * 
         * @return builder
         * 
         */
        public Builder publiclyAccessible(@Nullable Output publiclyAccessible) {
            $.publiclyAccessible = publiclyAccessible;
            return this;
        }

        /**
         * @param publiclyAccessible <p> Specifies the accessibility options for the replication instance. A value of <code>true</code> represents an instance with a public IP address. A value of <code>false</code> represents an instance with a private IP address. The default value is <code>true</code>. </p>
         * 
         * @return builder
         * 
         */
        public Builder publiclyAccessible(Boolean publiclyAccessible) {
            return publiclyAccessible(Output.of(publiclyAccessible));
        }

        /**
         * @param replicationInstanceArn <p>The Amazon Resource Name (ARN) of the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstanceArn(@Nullable Output replicationInstanceArn) {
            $.replicationInstanceArn = replicationInstanceArn;
            return this;
        }

        /**
         * @param replicationInstanceArn <p>The Amazon Resource Name (ARN) of the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstanceArn(String replicationInstanceArn) {
            return replicationInstanceArn(Output.of(replicationInstanceArn));
        }

        /**
         * @param replicationInstanceClass <p>The compute and memory capacity of the replication instance as defined for the specified replication instance class. It is a required parameter, although a default value is pre-selected in the DMS console.</p> <p>For more information on the settings and capacities for the available replication instance classes, see <a href='https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth'> Selecting the right DMS replication instance for your migration</a>. </p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstanceClass(@Nullable Output replicationInstanceClass) {
            $.replicationInstanceClass = replicationInstanceClass;
            return this;
        }

        /**
         * @param replicationInstanceClass <p>The compute and memory capacity of the replication instance as defined for the specified replication instance class. It is a required parameter, although a default value is pre-selected in the DMS console.</p> <p>For more information on the settings and capacities for the available replication instance classes, see <a href='https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth'> Selecting the right DMS replication instance for your migration</a>. </p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstanceClass(String replicationInstanceClass) {
            return replicationInstanceClass(Output.of(replicationInstanceClass));
        }

        /**
         * @param replicationInstanceIdentifier <p>The replication instance identifier is a required parameter. This parameter is stored as a lowercase string.</p> <p>Constraints:</p> <ul> <li> <p>Must contain 1-63 alphanumeric characters or hyphens.</p> </li> <li> <p>First character must be a letter.</p> </li> <li> <p>Cannot end with a hyphen or contain two consecutive hyphens.</p> </li> </ul> <p>Example: <code>myrepinstance</code> </p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstanceIdentifier(@Nullable Output replicationInstanceIdentifier) {
            $.replicationInstanceIdentifier = replicationInstanceIdentifier;
            return this;
        }

        /**
         * @param replicationInstanceIdentifier <p>The replication instance identifier is a required parameter. This parameter is stored as a lowercase string.</p> <p>Constraints:</p> <ul> <li> <p>Must contain 1-63 alphanumeric characters or hyphens.</p> </li> <li> <p>First character must be a letter.</p> </li> <li> <p>Cannot end with a hyphen or contain two consecutive hyphens.</p> </li> </ul> <p>Example: <code>myrepinstance</code> </p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstanceIdentifier(String replicationInstanceIdentifier) {
            return replicationInstanceIdentifier(Output.of(replicationInstanceIdentifier));
        }

        /**
         * @param replicationInstanceIpv6Addresses <p>One or more IPv6 addresses for the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstanceIpv6Addresses(@Nullable Output> replicationInstanceIpv6Addresses) {
            $.replicationInstanceIpv6Addresses = replicationInstanceIpv6Addresses;
            return this;
        }

        /**
         * @param replicationInstanceIpv6Addresses <p>One or more IPv6 addresses for the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstanceIpv6Addresses(List replicationInstanceIpv6Addresses) {
            return replicationInstanceIpv6Addresses(Output.of(replicationInstanceIpv6Addresses));
        }

        /**
         * @param replicationInstanceIpv6Addresses <p>One or more IPv6 addresses for the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstanceIpv6Addresses(String... replicationInstanceIpv6Addresses) {
            return replicationInstanceIpv6Addresses(List.of(replicationInstanceIpv6Addresses));
        }

        /**
         * @param replicationInstancePrivateIpAddress <p>The private IP address of the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstancePrivateIpAddress(@Nullable Output replicationInstancePrivateIpAddress) {
            $.replicationInstancePrivateIpAddress = replicationInstancePrivateIpAddress;
            return this;
        }

        /**
         * @param replicationInstancePrivateIpAddress <p>The private IP address of the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstancePrivateIpAddress(String replicationInstancePrivateIpAddress) {
            return replicationInstancePrivateIpAddress(Output.of(replicationInstancePrivateIpAddress));
        }

        /**
         * @param replicationInstancePrivateIpAddresses <p>One or more private IP addresses for the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstancePrivateIpAddresses(@Nullable Output> replicationInstancePrivateIpAddresses) {
            $.replicationInstancePrivateIpAddresses = replicationInstancePrivateIpAddresses;
            return this;
        }

        /**
         * @param replicationInstancePrivateIpAddresses <p>One or more private IP addresses for the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstancePrivateIpAddresses(List replicationInstancePrivateIpAddresses) {
            return replicationInstancePrivateIpAddresses(Output.of(replicationInstancePrivateIpAddresses));
        }

        /**
         * @param replicationInstancePrivateIpAddresses <p>One or more private IP addresses for the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstancePrivateIpAddresses(String... replicationInstancePrivateIpAddresses) {
            return replicationInstancePrivateIpAddresses(List.of(replicationInstancePrivateIpAddresses));
        }

        /**
         * @param replicationInstancePublicIpAddress <p>The public IP address of the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstancePublicIpAddress(@Nullable Output replicationInstancePublicIpAddress) {
            $.replicationInstancePublicIpAddress = replicationInstancePublicIpAddress;
            return this;
        }

        /**
         * @param replicationInstancePublicIpAddress <p>The public IP address of the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstancePublicIpAddress(String replicationInstancePublicIpAddress) {
            return replicationInstancePublicIpAddress(Output.of(replicationInstancePublicIpAddress));
        }

        /**
         * @param replicationInstancePublicIpAddresses <p>One or more public IP addresses for the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstancePublicIpAddresses(@Nullable Output> replicationInstancePublicIpAddresses) {
            $.replicationInstancePublicIpAddresses = replicationInstancePublicIpAddresses;
            return this;
        }

        /**
         * @param replicationInstancePublicIpAddresses <p>One or more public IP addresses for the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstancePublicIpAddresses(List replicationInstancePublicIpAddresses) {
            return replicationInstancePublicIpAddresses(Output.of(replicationInstancePublicIpAddresses));
        }

        /**
         * @param replicationInstancePublicIpAddresses <p>One or more public IP addresses for the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstancePublicIpAddresses(String... replicationInstancePublicIpAddresses) {
            return replicationInstancePublicIpAddresses(List.of(replicationInstancePublicIpAddresses));
        }

        /**
         * @param replicationInstanceStatus <p>The status of the replication instance. The possible return values include:</p> <ul> <li> <p> <code>'available'</code> </p> </li> <li> <p> <code>'creating'</code> </p> </li> <li> <p> <code>'deleted'</code> </p> </li> <li> <p> <code>'deleting'</code> </p> </li> <li> <p> <code>'failed'</code> </p> </li> <li> <p> <code>'modifying'</code> </p> </li> <li> <p> <code>'upgrading'</code> </p> </li> <li> <p> <code>'rebooting'</code> </p> </li> <li> <p> <code>'resetting-master-credentials'</code> </p> </li> <li> <p> <code>'storage-full'</code> </p> </li> <li> <p> <code>'incompatible-credentials'</code> </p> </li> <li> <p> <code>'incompatible-network'</code> </p> </li> <li> <p> <code>'maintenance'</code> </p> </li> </ul>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstanceStatus(@Nullable Output replicationInstanceStatus) {
            $.replicationInstanceStatus = replicationInstanceStatus;
            return this;
        }

        /**
         * @param replicationInstanceStatus <p>The status of the replication instance. The possible return values include:</p> <ul> <li> <p> <code>'available'</code> </p> </li> <li> <p> <code>'creating'</code> </p> </li> <li> <p> <code>'deleted'</code> </p> </li> <li> <p> <code>'deleting'</code> </p> </li> <li> <p> <code>'failed'</code> </p> </li> <li> <p> <code>'modifying'</code> </p> </li> <li> <p> <code>'upgrading'</code> </p> </li> <li> <p> <code>'rebooting'</code> </p> </li> <li> <p> <code>'resetting-master-credentials'</code> </p> </li> <li> <p> <code>'storage-full'</code> </p> </li> <li> <p> <code>'incompatible-credentials'</code> </p> </li> <li> <p> <code>'incompatible-network'</code> </p> </li> <li> <p> <code>'maintenance'</code> </p> </li> </ul>
         * 
         * @return builder
         * 
         */
        public Builder replicationInstanceStatus(String replicationInstanceStatus) {
            return replicationInstanceStatus(Output.of(replicationInstanceStatus));
        }

        /**
         * @param replicationSubnetGroup <p>The subnet group for the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder replicationSubnetGroup(@Nullable Output replicationSubnetGroup) {
            $.replicationSubnetGroup = replicationSubnetGroup;
            return this;
        }

        /**
         * @param replicationSubnetGroup <p>The subnet group for the replication instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder replicationSubnetGroup(ReplicationSubnetGroupArgs replicationSubnetGroup) {
            return replicationSubnetGroup(Output.of(replicationSubnetGroup));
        }

        /**
         * @param secondaryAvailabilityZone <p>The Availability Zone of the standby replication instance in a Multi-AZ deployment.</p>
         * 
         * @return builder
         * 
         */
        public Builder secondaryAvailabilityZone(@Nullable Output secondaryAvailabilityZone) {
            $.secondaryAvailabilityZone = secondaryAvailabilityZone;
            return this;
        }

        /**
         * @param secondaryAvailabilityZone <p>The Availability Zone of the standby replication instance in a Multi-AZ deployment.</p>
         * 
         * @return builder
         * 
         */
        public Builder secondaryAvailabilityZone(String secondaryAvailabilityZone) {
            return secondaryAvailabilityZone(Output.of(secondaryAvailabilityZone));
        }

        /**
         * @param vpcSecurityGroups <p>The VPC security group for the instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder vpcSecurityGroups(@Nullable Output> vpcSecurityGroups) {
            $.vpcSecurityGroups = vpcSecurityGroups;
            return this;
        }

        /**
         * @param vpcSecurityGroups <p>The VPC security group for the instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder vpcSecurityGroups(List vpcSecurityGroups) {
            return vpcSecurityGroups(Output.of(vpcSecurityGroups));
        }

        /**
         * @param vpcSecurityGroups <p>The VPC security group for the instance.</p>
         * 
         * @return builder
         * 
         */
        public Builder vpcSecurityGroups(VpcSecurityGroupMembershipArgs... vpcSecurityGroups) {
            return vpcSecurityGroups(List.of(vpcSecurityGroups));
        }

        public AwsDatabaseMigrationServiceReplicationInstancePropertiesArgs build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy