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

com.pulumi.googlenative.sqladmin.v1beta4.InstanceArgs 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.googlenative.sqladmin.v1beta4;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.googlenative.sqladmin.v1beta4.enums.InstanceBackendType;
import com.pulumi.googlenative.sqladmin.v1beta4.enums.InstanceDatabaseVersion;
import com.pulumi.googlenative.sqladmin.v1beta4.enums.InstanceInstanceType;
import com.pulumi.googlenative.sqladmin.v1beta4.enums.InstanceState;
import com.pulumi.googlenative.sqladmin.v1beta4.enums.InstanceSuspensionReasonItem;
import com.pulumi.googlenative.sqladmin.v1beta4.inputs.DiskEncryptionConfigurationArgs;
import com.pulumi.googlenative.sqladmin.v1beta4.inputs.DiskEncryptionStatusArgs;
import com.pulumi.googlenative.sqladmin.v1beta4.inputs.InstanceFailoverReplicaArgs;
import com.pulumi.googlenative.sqladmin.v1beta4.inputs.IpMappingArgs;
import com.pulumi.googlenative.sqladmin.v1beta4.inputs.OnPremisesConfigurationArgs;
import com.pulumi.googlenative.sqladmin.v1beta4.inputs.ReplicaConfigurationArgs;
import com.pulumi.googlenative.sqladmin.v1beta4.inputs.SettingsArgs;
import com.pulumi.googlenative.sqladmin.v1beta4.inputs.SqlOutOfDiskReportArgs;
import com.pulumi.googlenative.sqladmin.v1beta4.inputs.SqlScheduledMaintenanceArgs;
import com.pulumi.googlenative.sqladmin.v1beta4.inputs.SslCertArgs;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class InstanceArgs extends com.pulumi.resources.ResourceArgs {

    public static final InstanceArgs Empty = new InstanceArgs();

    /**
     * The backend type. `SECOND_GEN`: Cloud SQL database instance. `EXTERNAL`: A database server that is not managed by Google. This property is read-only; use the `tier` property in the `settings` object to determine the database type.
     * 
     */
    @Import(name="backendType")
    private @Nullable Output backendType;

    /**
     * @return The backend type. `SECOND_GEN`: Cloud SQL database instance. `EXTERNAL`: A database server that is not managed by Google. This property is read-only; use the `tier` property in the `settings` object to determine the database type.
     * 
     */
    public Optional> backendType() {
        return Optional.ofNullable(this.backendType);
    }

    /**
     * Connection name of the Cloud SQL instance used in connection strings.
     * 
     */
    @Import(name="connectionName")
    private @Nullable Output connectionName;

    /**
     * @return Connection name of the Cloud SQL instance used in connection strings.
     * 
     */
    public Optional> connectionName() {
        return Optional.ofNullable(this.connectionName);
    }

    /**
     * The current disk usage of the instance in bytes. This property has been deprecated. Use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see [this announcement](https://groups.google.com/d/msg/google-cloud-sql-announce/I_7-F9EBhT0/BtvFtdFeAgAJ) for details.
     * 
     */
    @Import(name="currentDiskSize")
    private @Nullable Output currentDiskSize;

    /**
     * @return The current disk usage of the instance in bytes. This property has been deprecated. Use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see [this announcement](https://groups.google.com/d/msg/google-cloud-sql-announce/I_7-F9EBhT0/BtvFtdFeAgAJ) for details.
     * 
     */
    public Optional> currentDiskSize() {
        return Optional.ofNullable(this.currentDiskSize);
    }

    /**
     * The database engine type and version. The `databaseVersion` field cannot be changed after instance creation.
     * 
     */
    @Import(name="databaseVersion")
    private @Nullable Output databaseVersion;

    /**
     * @return The database engine type and version. The `databaseVersion` field cannot be changed after instance creation.
     * 
     */
    public Optional> databaseVersion() {
        return Optional.ofNullable(this.databaseVersion);
    }

    /**
     * Disk encryption configuration specific to an instance.
     * 
     */
    @Import(name="diskEncryptionConfiguration")
    private @Nullable Output diskEncryptionConfiguration;

    /**
     * @return Disk encryption configuration specific to an instance.
     * 
     */
    public Optional> diskEncryptionConfiguration() {
        return Optional.ofNullable(this.diskEncryptionConfiguration);
    }

    /**
     * Disk encryption status specific to an instance.
     * 
     */
    @Import(name="diskEncryptionStatus")
    private @Nullable Output diskEncryptionStatus;

    /**
     * @return Disk encryption status specific to an instance.
     * 
     */
    public Optional> diskEncryptionStatus() {
        return Optional.ofNullable(this.diskEncryptionStatus);
    }

    /**
     * This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead.
     * 
     * @deprecated
     * This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead.
     * 
     */
    @Deprecated /* This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead. */
    @Import(name="etag")
    private @Nullable Output etag;

    /**
     * @return This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead.
     * 
     * @deprecated
     * This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead.
     * 
     */
    @Deprecated /* This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead. */
    public Optional> etag() {
        return Optional.ofNullable(this.etag);
    }

    /**
     * The name and status of the failover replica.
     * 
     */
    @Import(name="failoverReplica")
    private @Nullable Output failoverReplica;

    /**
     * @return The name and status of the failover replica.
     * 
     */
    public Optional> failoverReplica() {
        return Optional.ofNullable(this.failoverReplica);
    }

    /**
     * The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone. WARNING: Changing this might restart the instance.
     * 
     */
    @Import(name="gceZone")
    private @Nullable Output gceZone;

    /**
     * @return The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone. WARNING: Changing this might restart the instance.
     * 
     */
    public Optional> gceZone() {
        return Optional.ofNullable(this.gceZone);
    }

    /**
     * The instance type.
     * 
     */
    @Import(name="instanceType")
    private @Nullable Output instanceType;

    /**
     * @return The instance type.
     * 
     */
    public Optional> instanceType() {
        return Optional.ofNullable(this.instanceType);
    }

    /**
     * The assigned IP addresses for the instance.
     * 
     */
    @Import(name="ipAddresses")
    private @Nullable Output> ipAddresses;

    /**
     * @return The assigned IP addresses for the instance.
     * 
     */
    public Optional>> ipAddresses() {
        return Optional.ofNullable(this.ipAddresses);
    }

    /**
     * The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
     * 
     * @deprecated
     * The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
     * 
     */
    @Deprecated /* The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances. */
    @Import(name="ipv6Address")
    private @Nullable Output ipv6Address;

    /**
     * @return The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
     * 
     * @deprecated
     * The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
     * 
     */
    @Deprecated /* The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances. */
    public Optional> ipv6Address() {
        return Optional.ofNullable(this.ipv6Address);
    }

    /**
     * This is always `sql#instance`.
     * 
     */
    @Import(name="kind")
    private @Nullable Output kind;

    /**
     * @return This is always `sql#instance`.
     * 
     */
    public Optional> kind() {
        return Optional.ofNullable(this.kind);
    }

    /**
     * The current software version on the instance.
     * 
     */
    @Import(name="maintenanceVersion")
    private @Nullable Output maintenanceVersion;

    /**
     * @return The current software version on the instance.
     * 
     */
    public Optional> maintenanceVersion() {
        return Optional.ofNullable(this.maintenanceVersion);
    }

    /**
     * The name of the instance which will act as primary in the replication setup.
     * 
     */
    @Import(name="masterInstanceName")
    private @Nullable Output masterInstanceName;

    /**
     * @return The name of the instance which will act as primary in the replication setup.
     * 
     */
    public Optional> masterInstanceName() {
        return Optional.ofNullable(this.masterInstanceName);
    }

    /**
     * The maximum disk size of the instance in bytes.
     * 
     */
    @Import(name="maxDiskSize")
    private @Nullable Output maxDiskSize;

    /**
     * @return The maximum disk size of the instance in bytes.
     * 
     */
    public Optional> maxDiskSize() {
        return Optional.ofNullable(this.maxDiskSize);
    }

    /**
     * Name of the Cloud SQL instance. This does not include the project ID.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Name of the Cloud SQL instance. This does not include the project ID.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * Configuration specific to on-premises instances.
     * 
     */
    @Import(name="onPremisesConfiguration")
    private @Nullable Output onPremisesConfiguration;

    /**
     * @return Configuration specific to on-premises instances.
     * 
     */
    public Optional> onPremisesConfiguration() {
        return Optional.ofNullable(this.onPremisesConfiguration);
    }

    /**
     * This field represents the report generated by the proactive database wellness job for OutOfDisk issues. * Writers: * the proactive database wellness job for OOD. * Readers: * the proactive database wellness job
     * 
     */
    @Import(name="outOfDiskReport")
    private @Nullable Output outOfDiskReport;

    /**
     * @return This field represents the report generated by the proactive database wellness job for OutOfDisk issues. * Writers: * the proactive database wellness job for OOD. * Readers: * the proactive database wellness job
     * 
     */
    public Optional> outOfDiskReport() {
        return Optional.ofNullable(this.outOfDiskReport);
    }

    /**
     * The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
     * 
     */
    @Import(name="project")
    private @Nullable Output project;

    /**
     * @return The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
     * 
     */
    public Optional> project() {
        return Optional.ofNullable(this.project);
    }

    /**
     * The geographical region. Can be: * `us-central` (`FIRST_GEN` instances only) * `us-central1` (`SECOND_GEN` instances only) * `asia-east1` or `europe-west1`. Defaults to `us-central` or `us-central1` depending on the instance type. The region cannot be changed after instance creation.
     * 
     */
    @Import(name="region")
    private @Nullable Output region;

    /**
     * @return The geographical region. Can be: * `us-central` (`FIRST_GEN` instances only) * `us-central1` (`SECOND_GEN` instances only) * `asia-east1` or `europe-west1`. Defaults to `us-central` or `us-central1` depending on the instance type. The region cannot be changed after instance creation.
     * 
     */
    public Optional> region() {
        return Optional.ofNullable(this.region);
    }

    /**
     * Configuration specific to failover replicas and read replicas.
     * 
     */
    @Import(name="replicaConfiguration")
    private @Nullable Output replicaConfiguration;

    /**
     * @return Configuration specific to failover replicas and read replicas.
     * 
     */
    public Optional> replicaConfiguration() {
        return Optional.ofNullable(this.replicaConfiguration);
    }

    /**
     * The replicas of the instance.
     * 
     */
    @Import(name="replicaNames")
    private @Nullable Output> replicaNames;

    /**
     * @return The replicas of the instance.
     * 
     */
    public Optional>> replicaNames() {
        return Optional.ofNullable(this.replicaNames);
    }

    /**
     * Initial root password. Use only on creation. You must set root passwords before you can connect to PostgreSQL instances.
     * 
     */
    @Import(name="rootPassword")
    private @Nullable Output rootPassword;

    /**
     * @return Initial root password. Use only on creation. You must set root passwords before you can connect to PostgreSQL instances.
     * 
     */
    public Optional> rootPassword() {
        return Optional.ofNullable(this.rootPassword);
    }

    /**
     * The status indicating if instance satisfiesPzs. Reserved for future use.
     * 
     */
    @Import(name="satisfiesPzs")
    private @Nullable Output satisfiesPzs;

    /**
     * @return The status indicating if instance satisfiesPzs. Reserved for future use.
     * 
     */
    public Optional> satisfiesPzs() {
        return Optional.ofNullable(this.satisfiesPzs);
    }

    /**
     * The start time of any upcoming scheduled maintenance for this instance.
     * 
     */
    @Import(name="scheduledMaintenance")
    private @Nullable Output scheduledMaintenance;

    /**
     * @return The start time of any upcoming scheduled maintenance for this instance.
     * 
     */
    public Optional> scheduledMaintenance() {
        return Optional.ofNullable(this.scheduledMaintenance);
    }

    /**
     * The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone.
     * 
     */
    @Import(name="secondaryGceZone")
    private @Nullable Output secondaryGceZone;

    /**
     * @return The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone.
     * 
     */
    public Optional> secondaryGceZone() {
        return Optional.ofNullable(this.secondaryGceZone);
    }

    /**
     * The URI of this resource.
     * 
     */
    @Import(name="selfLink")
    private @Nullable Output selfLink;

    /**
     * @return The URI of this resource.
     * 
     */
    public Optional> selfLink() {
        return Optional.ofNullable(this.selfLink);
    }

    /**
     * SSL configuration.
     * 
     */
    @Import(name="serverCaCert")
    private @Nullable Output serverCaCert;

    /**
     * @return SSL configuration.
     * 
     */
    public Optional> serverCaCert() {
        return Optional.ofNullable(this.serverCaCert);
    }

    /**
     * The service account email address assigned to the instance. \This property is read-only.
     * 
     */
    @Import(name="serviceAccountEmailAddress")
    private @Nullable Output serviceAccountEmailAddress;

    /**
     * @return The service account email address assigned to the instance. \This property is read-only.
     * 
     */
    public Optional> serviceAccountEmailAddress() {
        return Optional.ofNullable(this.serviceAccountEmailAddress);
    }

    /**
     * The user settings.
     * 
     */
    @Import(name="settings")
    private @Nullable Output settings;

    /**
     * @return The user settings.
     * 
     */
    public Optional> settings() {
        return Optional.ofNullable(this.settings);
    }

    /**
     * The current serving state of the Cloud SQL instance.
     * 
     */
    @Import(name="state")
    private @Nullable Output state;

    /**
     * @return The current serving state of the Cloud SQL instance.
     * 
     */
    public Optional> state() {
        return Optional.ofNullable(this.state);
    }

    /**
     * If the instance state is SUSPENDED, the reason for the suspension.
     * 
     */
    @Import(name="suspensionReason")
    private @Nullable Output> suspensionReason;

    /**
     * @return If the instance state is SUSPENDED, the reason for the suspension.
     * 
     */
    public Optional>> suspensionReason() {
        return Optional.ofNullable(this.suspensionReason);
    }

    private InstanceArgs() {}

    private InstanceArgs(InstanceArgs $) {
        this.backendType = $.backendType;
        this.connectionName = $.connectionName;
        this.currentDiskSize = $.currentDiskSize;
        this.databaseVersion = $.databaseVersion;
        this.diskEncryptionConfiguration = $.diskEncryptionConfiguration;
        this.diskEncryptionStatus = $.diskEncryptionStatus;
        this.etag = $.etag;
        this.failoverReplica = $.failoverReplica;
        this.gceZone = $.gceZone;
        this.instanceType = $.instanceType;
        this.ipAddresses = $.ipAddresses;
        this.ipv6Address = $.ipv6Address;
        this.kind = $.kind;
        this.maintenanceVersion = $.maintenanceVersion;
        this.masterInstanceName = $.masterInstanceName;
        this.maxDiskSize = $.maxDiskSize;
        this.name = $.name;
        this.onPremisesConfiguration = $.onPremisesConfiguration;
        this.outOfDiskReport = $.outOfDiskReport;
        this.project = $.project;
        this.region = $.region;
        this.replicaConfiguration = $.replicaConfiguration;
        this.replicaNames = $.replicaNames;
        this.rootPassword = $.rootPassword;
        this.satisfiesPzs = $.satisfiesPzs;
        this.scheduledMaintenance = $.scheduledMaintenance;
        this.secondaryGceZone = $.secondaryGceZone;
        this.selfLink = $.selfLink;
        this.serverCaCert = $.serverCaCert;
        this.serviceAccountEmailAddress = $.serviceAccountEmailAddress;
        this.settings = $.settings;
        this.state = $.state;
        this.suspensionReason = $.suspensionReason;
    }

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

    public static final class Builder {
        private InstanceArgs $;

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

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

        /**
         * @param backendType The backend type. `SECOND_GEN`: Cloud SQL database instance. `EXTERNAL`: A database server that is not managed by Google. This property is read-only; use the `tier` property in the `settings` object to determine the database type.
         * 
         * @return builder
         * 
         */
        public Builder backendType(@Nullable Output backendType) {
            $.backendType = backendType;
            return this;
        }

        /**
         * @param backendType The backend type. `SECOND_GEN`: Cloud SQL database instance. `EXTERNAL`: A database server that is not managed by Google. This property is read-only; use the `tier` property in the `settings` object to determine the database type.
         * 
         * @return builder
         * 
         */
        public Builder backendType(InstanceBackendType backendType) {
            return backendType(Output.of(backendType));
        }

        /**
         * @param connectionName Connection name of the Cloud SQL instance used in connection strings.
         * 
         * @return builder
         * 
         */
        public Builder connectionName(@Nullable Output connectionName) {
            $.connectionName = connectionName;
            return this;
        }

        /**
         * @param connectionName Connection name of the Cloud SQL instance used in connection strings.
         * 
         * @return builder
         * 
         */
        public Builder connectionName(String connectionName) {
            return connectionName(Output.of(connectionName));
        }

        /**
         * @param currentDiskSize The current disk usage of the instance in bytes. This property has been deprecated. Use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see [this announcement](https://groups.google.com/d/msg/google-cloud-sql-announce/I_7-F9EBhT0/BtvFtdFeAgAJ) for details.
         * 
         * @return builder
         * 
         */
        public Builder currentDiskSize(@Nullable Output currentDiskSize) {
            $.currentDiskSize = currentDiskSize;
            return this;
        }

        /**
         * @param currentDiskSize The current disk usage of the instance in bytes. This property has been deprecated. Use the "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud Monitoring API instead. Please see [this announcement](https://groups.google.com/d/msg/google-cloud-sql-announce/I_7-F9EBhT0/BtvFtdFeAgAJ) for details.
         * 
         * @return builder
         * 
         */
        public Builder currentDiskSize(String currentDiskSize) {
            return currentDiskSize(Output.of(currentDiskSize));
        }

        /**
         * @param databaseVersion The database engine type and version. The `databaseVersion` field cannot be changed after instance creation.
         * 
         * @return builder
         * 
         */
        public Builder databaseVersion(@Nullable Output databaseVersion) {
            $.databaseVersion = databaseVersion;
            return this;
        }

        /**
         * @param databaseVersion The database engine type and version. The `databaseVersion` field cannot be changed after instance creation.
         * 
         * @return builder
         * 
         */
        public Builder databaseVersion(InstanceDatabaseVersion databaseVersion) {
            return databaseVersion(Output.of(databaseVersion));
        }

        /**
         * @param diskEncryptionConfiguration Disk encryption configuration specific to an instance.
         * 
         * @return builder
         * 
         */
        public Builder diskEncryptionConfiguration(@Nullable Output diskEncryptionConfiguration) {
            $.diskEncryptionConfiguration = diskEncryptionConfiguration;
            return this;
        }

        /**
         * @param diskEncryptionConfiguration Disk encryption configuration specific to an instance.
         * 
         * @return builder
         * 
         */
        public Builder diskEncryptionConfiguration(DiskEncryptionConfigurationArgs diskEncryptionConfiguration) {
            return diskEncryptionConfiguration(Output.of(diskEncryptionConfiguration));
        }

        /**
         * @param diskEncryptionStatus Disk encryption status specific to an instance.
         * 
         * @return builder
         * 
         */
        public Builder diskEncryptionStatus(@Nullable Output diskEncryptionStatus) {
            $.diskEncryptionStatus = diskEncryptionStatus;
            return this;
        }

        /**
         * @param diskEncryptionStatus Disk encryption status specific to an instance.
         * 
         * @return builder
         * 
         */
        public Builder diskEncryptionStatus(DiskEncryptionStatusArgs diskEncryptionStatus) {
            return diskEncryptionStatus(Output.of(diskEncryptionStatus));
        }

        /**
         * @param etag This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead.
         * 
         * @return builder
         * 
         * @deprecated
         * This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead.
         * 
         */
        @Deprecated /* This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead. */
        public Builder etag(@Nullable Output etag) {
            $.etag = etag;
            return this;
        }

        /**
         * @param etag This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead.
         * 
         * @return builder
         * 
         * @deprecated
         * This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead.
         * 
         */
        @Deprecated /* This field is deprecated and will be removed from a future version of the API. Use the `settings.settingsVersion` field instead. */
        public Builder etag(String etag) {
            return etag(Output.of(etag));
        }

        /**
         * @param failoverReplica The name and status of the failover replica.
         * 
         * @return builder
         * 
         */
        public Builder failoverReplica(@Nullable Output failoverReplica) {
            $.failoverReplica = failoverReplica;
            return this;
        }

        /**
         * @param failoverReplica The name and status of the failover replica.
         * 
         * @return builder
         * 
         */
        public Builder failoverReplica(InstanceFailoverReplicaArgs failoverReplica) {
            return failoverReplica(Output.of(failoverReplica));
        }

        /**
         * @param gceZone The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone. WARNING: Changing this might restart the instance.
         * 
         * @return builder
         * 
         */
        public Builder gceZone(@Nullable Output gceZone) {
            $.gceZone = gceZone;
            return this;
        }

        /**
         * @param gceZone The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone. WARNING: Changing this might restart the instance.
         * 
         * @return builder
         * 
         */
        public Builder gceZone(String gceZone) {
            return gceZone(Output.of(gceZone));
        }

        /**
         * @param instanceType The instance type.
         * 
         * @return builder
         * 
         */
        public Builder instanceType(@Nullable Output instanceType) {
            $.instanceType = instanceType;
            return this;
        }

        /**
         * @param instanceType The instance type.
         * 
         * @return builder
         * 
         */
        public Builder instanceType(InstanceInstanceType instanceType) {
            return instanceType(Output.of(instanceType));
        }

        /**
         * @param ipAddresses The assigned IP addresses for the instance.
         * 
         * @return builder
         * 
         */
        public Builder ipAddresses(@Nullable Output> ipAddresses) {
            $.ipAddresses = ipAddresses;
            return this;
        }

        /**
         * @param ipAddresses The assigned IP addresses for the instance.
         * 
         * @return builder
         * 
         */
        public Builder ipAddresses(List ipAddresses) {
            return ipAddresses(Output.of(ipAddresses));
        }

        /**
         * @param ipAddresses The assigned IP addresses for the instance.
         * 
         * @return builder
         * 
         */
        public Builder ipAddresses(IpMappingArgs... ipAddresses) {
            return ipAddresses(List.of(ipAddresses));
        }

        /**
         * @param ipv6Address The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
         * 
         * @return builder
         * 
         * @deprecated
         * The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
         * 
         */
        @Deprecated /* The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances. */
        public Builder ipv6Address(@Nullable Output ipv6Address) {
            $.ipv6Address = ipv6Address;
            return this;
        }

        /**
         * @param ipv6Address The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
         * 
         * @return builder
         * 
         * @deprecated
         * The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
         * 
         */
        @Deprecated /* The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances. */
        public Builder ipv6Address(String ipv6Address) {
            return ipv6Address(Output.of(ipv6Address));
        }

        /**
         * @param kind This is always `sql#instance`.
         * 
         * @return builder
         * 
         */
        public Builder kind(@Nullable Output kind) {
            $.kind = kind;
            return this;
        }

        /**
         * @param kind This is always `sql#instance`.
         * 
         * @return builder
         * 
         */
        public Builder kind(String kind) {
            return kind(Output.of(kind));
        }

        /**
         * @param maintenanceVersion The current software version on the instance.
         * 
         * @return builder
         * 
         */
        public Builder maintenanceVersion(@Nullable Output maintenanceVersion) {
            $.maintenanceVersion = maintenanceVersion;
            return this;
        }

        /**
         * @param maintenanceVersion The current software version on the instance.
         * 
         * @return builder
         * 
         */
        public Builder maintenanceVersion(String maintenanceVersion) {
            return maintenanceVersion(Output.of(maintenanceVersion));
        }

        /**
         * @param masterInstanceName The name of the instance which will act as primary in the replication setup.
         * 
         * @return builder
         * 
         */
        public Builder masterInstanceName(@Nullable Output masterInstanceName) {
            $.masterInstanceName = masterInstanceName;
            return this;
        }

        /**
         * @param masterInstanceName The name of the instance which will act as primary in the replication setup.
         * 
         * @return builder
         * 
         */
        public Builder masterInstanceName(String masterInstanceName) {
            return masterInstanceName(Output.of(masterInstanceName));
        }

        /**
         * @param maxDiskSize The maximum disk size of the instance in bytes.
         * 
         * @return builder
         * 
         */
        public Builder maxDiskSize(@Nullable Output maxDiskSize) {
            $.maxDiskSize = maxDiskSize;
            return this;
        }

        /**
         * @param maxDiskSize The maximum disk size of the instance in bytes.
         * 
         * @return builder
         * 
         */
        public Builder maxDiskSize(String maxDiskSize) {
            return maxDiskSize(Output.of(maxDiskSize));
        }

        /**
         * @param name Name of the Cloud SQL instance. This does not include the project ID.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Name of the Cloud SQL instance. This does not include the project ID.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param onPremisesConfiguration Configuration specific to on-premises instances.
         * 
         * @return builder
         * 
         */
        public Builder onPremisesConfiguration(@Nullable Output onPremisesConfiguration) {
            $.onPremisesConfiguration = onPremisesConfiguration;
            return this;
        }

        /**
         * @param onPremisesConfiguration Configuration specific to on-premises instances.
         * 
         * @return builder
         * 
         */
        public Builder onPremisesConfiguration(OnPremisesConfigurationArgs onPremisesConfiguration) {
            return onPremisesConfiguration(Output.of(onPremisesConfiguration));
        }

        /**
         * @param outOfDiskReport This field represents the report generated by the proactive database wellness job for OutOfDisk issues. * Writers: * the proactive database wellness job for OOD. * Readers: * the proactive database wellness job
         * 
         * @return builder
         * 
         */
        public Builder outOfDiskReport(@Nullable Output outOfDiskReport) {
            $.outOfDiskReport = outOfDiskReport;
            return this;
        }

        /**
         * @param outOfDiskReport This field represents the report generated by the proactive database wellness job for OutOfDisk issues. * Writers: * the proactive database wellness job for OOD. * Readers: * the proactive database wellness job
         * 
         * @return builder
         * 
         */
        public Builder outOfDiskReport(SqlOutOfDiskReportArgs outOfDiskReport) {
            return outOfDiskReport(Output.of(outOfDiskReport));
        }

        /**
         * @param project The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
         * 
         * @return builder
         * 
         */
        public Builder project(@Nullable Output project) {
            $.project = project;
            return this;
        }

        /**
         * @param project The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
         * 
         * @return builder
         * 
         */
        public Builder project(String project) {
            return project(Output.of(project));
        }

        /**
         * @param region The geographical region. Can be: * `us-central` (`FIRST_GEN` instances only) * `us-central1` (`SECOND_GEN` instances only) * `asia-east1` or `europe-west1`. Defaults to `us-central` or `us-central1` depending on the instance type. The region cannot be changed after instance creation.
         * 
         * @return builder
         * 
         */
        public Builder region(@Nullable Output region) {
            $.region = region;
            return this;
        }

        /**
         * @param region The geographical region. Can be: * `us-central` (`FIRST_GEN` instances only) * `us-central1` (`SECOND_GEN` instances only) * `asia-east1` or `europe-west1`. Defaults to `us-central` or `us-central1` depending on the instance type. The region cannot be changed after instance creation.
         * 
         * @return builder
         * 
         */
        public Builder region(String region) {
            return region(Output.of(region));
        }

        /**
         * @param replicaConfiguration Configuration specific to failover replicas and read replicas.
         * 
         * @return builder
         * 
         */
        public Builder replicaConfiguration(@Nullable Output replicaConfiguration) {
            $.replicaConfiguration = replicaConfiguration;
            return this;
        }

        /**
         * @param replicaConfiguration Configuration specific to failover replicas and read replicas.
         * 
         * @return builder
         * 
         */
        public Builder replicaConfiguration(ReplicaConfigurationArgs replicaConfiguration) {
            return replicaConfiguration(Output.of(replicaConfiguration));
        }

        /**
         * @param replicaNames The replicas of the instance.
         * 
         * @return builder
         * 
         */
        public Builder replicaNames(@Nullable Output> replicaNames) {
            $.replicaNames = replicaNames;
            return this;
        }

        /**
         * @param replicaNames The replicas of the instance.
         * 
         * @return builder
         * 
         */
        public Builder replicaNames(List replicaNames) {
            return replicaNames(Output.of(replicaNames));
        }

        /**
         * @param replicaNames The replicas of the instance.
         * 
         * @return builder
         * 
         */
        public Builder replicaNames(String... replicaNames) {
            return replicaNames(List.of(replicaNames));
        }

        /**
         * @param rootPassword Initial root password. Use only on creation. You must set root passwords before you can connect to PostgreSQL instances.
         * 
         * @return builder
         * 
         */
        public Builder rootPassword(@Nullable Output rootPassword) {
            $.rootPassword = rootPassword;
            return this;
        }

        /**
         * @param rootPassword Initial root password. Use only on creation. You must set root passwords before you can connect to PostgreSQL instances.
         * 
         * @return builder
         * 
         */
        public Builder rootPassword(String rootPassword) {
            return rootPassword(Output.of(rootPassword));
        }

        /**
         * @param satisfiesPzs The status indicating if instance satisfiesPzs. Reserved for future use.
         * 
         * @return builder
         * 
         */
        public Builder satisfiesPzs(@Nullable Output satisfiesPzs) {
            $.satisfiesPzs = satisfiesPzs;
            return this;
        }

        /**
         * @param satisfiesPzs The status indicating if instance satisfiesPzs. Reserved for future use.
         * 
         * @return builder
         * 
         */
        public Builder satisfiesPzs(Boolean satisfiesPzs) {
            return satisfiesPzs(Output.of(satisfiesPzs));
        }

        /**
         * @param scheduledMaintenance The start time of any upcoming scheduled maintenance for this instance.
         * 
         * @return builder
         * 
         */
        public Builder scheduledMaintenance(@Nullable Output scheduledMaintenance) {
            $.scheduledMaintenance = scheduledMaintenance;
            return this;
        }

        /**
         * @param scheduledMaintenance The start time of any upcoming scheduled maintenance for this instance.
         * 
         * @return builder
         * 
         */
        public Builder scheduledMaintenance(SqlScheduledMaintenanceArgs scheduledMaintenance) {
            return scheduledMaintenance(Output.of(scheduledMaintenance));
        }

        /**
         * @param secondaryGceZone The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone.
         * 
         * @return builder
         * 
         */
        public Builder secondaryGceZone(@Nullable Output secondaryGceZone) {
            $.secondaryGceZone = secondaryGceZone;
            return this;
        }

        /**
         * @param secondaryGceZone The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone.
         * 
         * @return builder
         * 
         */
        public Builder secondaryGceZone(String secondaryGceZone) {
            return secondaryGceZone(Output.of(secondaryGceZone));
        }

        /**
         * @param selfLink The URI of this resource.
         * 
         * @return builder
         * 
         */
        public Builder selfLink(@Nullable Output selfLink) {
            $.selfLink = selfLink;
            return this;
        }

        /**
         * @param selfLink The URI of this resource.
         * 
         * @return builder
         * 
         */
        public Builder selfLink(String selfLink) {
            return selfLink(Output.of(selfLink));
        }

        /**
         * @param serverCaCert SSL configuration.
         * 
         * @return builder
         * 
         */
        public Builder serverCaCert(@Nullable Output serverCaCert) {
            $.serverCaCert = serverCaCert;
            return this;
        }

        /**
         * @param serverCaCert SSL configuration.
         * 
         * @return builder
         * 
         */
        public Builder serverCaCert(SslCertArgs serverCaCert) {
            return serverCaCert(Output.of(serverCaCert));
        }

        /**
         * @param serviceAccountEmailAddress The service account email address assigned to the instance. \This property is read-only.
         * 
         * @return builder
         * 
         */
        public Builder serviceAccountEmailAddress(@Nullable Output serviceAccountEmailAddress) {
            $.serviceAccountEmailAddress = serviceAccountEmailAddress;
            return this;
        }

        /**
         * @param serviceAccountEmailAddress The service account email address assigned to the instance. \This property is read-only.
         * 
         * @return builder
         * 
         */
        public Builder serviceAccountEmailAddress(String serviceAccountEmailAddress) {
            return serviceAccountEmailAddress(Output.of(serviceAccountEmailAddress));
        }

        /**
         * @param settings The user settings.
         * 
         * @return builder
         * 
         */
        public Builder settings(@Nullable Output settings) {
            $.settings = settings;
            return this;
        }

        /**
         * @param settings The user settings.
         * 
         * @return builder
         * 
         */
        public Builder settings(SettingsArgs settings) {
            return settings(Output.of(settings));
        }

        /**
         * @param state The current serving state of the Cloud SQL instance.
         * 
         * @return builder
         * 
         */
        public Builder state(@Nullable Output state) {
            $.state = state;
            return this;
        }

        /**
         * @param state The current serving state of the Cloud SQL instance.
         * 
         * @return builder
         * 
         */
        public Builder state(InstanceState state) {
            return state(Output.of(state));
        }

        /**
         * @param suspensionReason If the instance state is SUSPENDED, the reason for the suspension.
         * 
         * @return builder
         * 
         */
        public Builder suspensionReason(@Nullable Output> suspensionReason) {
            $.suspensionReason = suspensionReason;
            return this;
        }

        /**
         * @param suspensionReason If the instance state is SUSPENDED, the reason for the suspension.
         * 
         * @return builder
         * 
         */
        public Builder suspensionReason(List suspensionReason) {
            return suspensionReason(Output.of(suspensionReason));
        }

        /**
         * @param suspensionReason If the instance state is SUSPENDED, the reason for the suspension.
         * 
         * @return builder
         * 
         */
        public Builder suspensionReason(InstanceSuspensionReasonItem... suspensionReason) {
            return suspensionReason(List.of(suspensionReason));
        }

        public InstanceArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy