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

com.pulumi.azure.cosmosdb.inputs.PostgresqlClusterState Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Microsoft Azure cloud resources, based on the Terraform azurerm provider. We recommend using the [Azure Native provider](https://github.com/pulumi/pulumi-azure-native) to provision Azure infrastructure. Azure Native provides complete coverage of Azure resources and same-day access to new resources and resource updates.

There is a newer version: 6.10.0-alpha.1731737215
Show newest version
// *** 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.azure.cosmosdb.inputs;

import com.pulumi.azure.cosmosdb.inputs.PostgresqlClusterMaintenanceWindowArgs;
import com.pulumi.azure.cosmosdb.inputs.PostgresqlClusterServerArgs;
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.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final PostgresqlClusterState Empty = new PostgresqlClusterState();

    /**
     * The password of the administrator login. This is required when `source_resource_id` is not set.
     * 
     */
    @Import(name="administratorLoginPassword")
    private @Nullable Output administratorLoginPassword;

    /**
     * @return The password of the administrator login. This is required when `source_resource_id` is not set.
     * 
     */
    public Optional> administratorLoginPassword() {
        return Optional.ofNullable(this.administratorLoginPassword);
    }

    /**
     * The citus extension version on the Azure Cosmos DB for PostgreSQL Cluster. Possible values are `8.3`, `9.0`, `9.1`, `9.2`, `9.3`, `9.4`, `9.5`, `10.0`, `10.1`, `10.2`, `11.0`, `11.1`, `11.2`, `11.3` and `12.1`.
     * 
     */
    @Import(name="citusVersion")
    private @Nullable Output citusVersion;

    /**
     * @return The citus extension version on the Azure Cosmos DB for PostgreSQL Cluster. Possible values are `8.3`, `9.0`, `9.1`, `9.2`, `9.3`, `9.4`, `9.5`, `10.0`, `10.1`, `10.2`, `11.0`, `11.1`, `11.2`, `11.3` and `12.1`.
     * 
     */
    public Optional> citusVersion() {
        return Optional.ofNullable(this.citusVersion);
    }

    /**
     * Is public access enabled on coordinator? Defaults to `true`.
     * 
     */
    @Import(name="coordinatorPublicIpAccessEnabled")
    private @Nullable Output coordinatorPublicIpAccessEnabled;

    /**
     * @return Is public access enabled on coordinator? Defaults to `true`.
     * 
     */
    public Optional> coordinatorPublicIpAccessEnabled() {
        return Optional.ofNullable(this.coordinatorPublicIpAccessEnabled);
    }

    /**
     * The edition of the coordinator server. Possible values are `BurstableGeneralPurpose`, `BurstableMemoryOptimized`, `GeneralPurpose` and `MemoryOptimized`. Defaults to `GeneralPurpose`.
     * 
     */
    @Import(name="coordinatorServerEdition")
    private @Nullable Output coordinatorServerEdition;

    /**
     * @return The edition of the coordinator server. Possible values are `BurstableGeneralPurpose`, `BurstableMemoryOptimized`, `GeneralPurpose` and `MemoryOptimized`. Defaults to `GeneralPurpose`.
     * 
     */
    public Optional> coordinatorServerEdition() {
        return Optional.ofNullable(this.coordinatorServerEdition);
    }

    /**
     * The coordinator storage allowed for the Azure Cosmos DB for PostgreSQL Cluster. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4194304`, `8388608`, `16777216`, and `33554432`.
     * 
     * > **NOTE:** More information on [the types of compute resources available for CosmosDB can be found in the product documentation](https://learn.microsoft.com/azure/cosmos-db/postgresql/resources-compute)
     * 
     */
    @Import(name="coordinatorStorageQuotaInMb")
    private @Nullable Output coordinatorStorageQuotaInMb;

    /**
     * @return The coordinator storage allowed for the Azure Cosmos DB for PostgreSQL Cluster. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4194304`, `8388608`, `16777216`, and `33554432`.
     * 
     * > **NOTE:** More information on [the types of compute resources available for CosmosDB can be found in the product documentation](https://learn.microsoft.com/azure/cosmos-db/postgresql/resources-compute)
     * 
     */
    public Optional> coordinatorStorageQuotaInMb() {
        return Optional.ofNullable(this.coordinatorStorageQuotaInMb);
    }

    /**
     * The coordinator vCore count for the Azure Cosmos DB for PostgreSQL Cluster. Possible values are `1`, `2`, `4`, `8`, `16`, `32`, `64` and `96`.
     * 
     */
    @Import(name="coordinatorVcoreCount")
    private @Nullable Output coordinatorVcoreCount;

    /**
     * @return The coordinator vCore count for the Azure Cosmos DB for PostgreSQL Cluster. Possible values are `1`, `2`, `4`, `8`, `16`, `32`, `64` and `96`.
     * 
     */
    public Optional> coordinatorVcoreCount() {
        return Optional.ofNullable(this.coordinatorVcoreCount);
    }

    /**
     * The earliest restore point time (ISO8601 format) for the Azure Cosmos DB for PostgreSQL Cluster.
     * 
     */
    @Import(name="earliestRestoreTime")
    private @Nullable Output earliestRestoreTime;

    /**
     * @return The earliest restore point time (ISO8601 format) for the Azure Cosmos DB for PostgreSQL Cluster.
     * 
     */
    public Optional> earliestRestoreTime() {
        return Optional.ofNullable(this.earliestRestoreTime);
    }

    /**
     * Is high availability enabled for the Azure Cosmos DB for PostgreSQL cluster? Defaults to `false`.
     * 
     */
    @Import(name="haEnabled")
    private @Nullable Output haEnabled;

    /**
     * @return Is high availability enabled for the Azure Cosmos DB for PostgreSQL cluster? Defaults to `false`.
     * 
     */
    public Optional> haEnabled() {
        return Optional.ofNullable(this.haEnabled);
    }

    /**
     * The Azure Region where the Azure Cosmos DB for PostgreSQL Cluster should exist. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The Azure Region where the Azure Cosmos DB for PostgreSQL Cluster should exist. Changing this forces a new resource to be created.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * A `maintenance_window` block as defined below.
     * 
     */
    @Import(name="maintenanceWindow")
    private @Nullable Output maintenanceWindow;

    /**
     * @return A `maintenance_window` block as defined below.
     * 
     */
    public Optional> maintenanceWindow() {
        return Optional.ofNullable(this.maintenanceWindow);
    }

    /**
     * The name which should be used for this Azure Cosmos DB for PostgreSQL Cluster. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return The name which should be used for this Azure Cosmos DB for PostgreSQL Cluster. Changing this forces a new resource to be created.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * The worker node count of the Azure Cosmos DB for PostgreSQL Cluster. Possible value is between `0` and `20` except `1`.
     * 
     */
    @Import(name="nodeCount")
    private @Nullable Output nodeCount;

    /**
     * @return The worker node count of the Azure Cosmos DB for PostgreSQL Cluster. Possible value is between `0` and `20` except `1`.
     * 
     */
    public Optional> nodeCount() {
        return Optional.ofNullable(this.nodeCount);
    }

    /**
     * Is public access enabled on worker nodes. Defaults to `false`.
     * 
     */
    @Import(name="nodePublicIpAccessEnabled")
    private @Nullable Output nodePublicIpAccessEnabled;

    /**
     * @return Is public access enabled on worker nodes. Defaults to `false`.
     * 
     */
    public Optional> nodePublicIpAccessEnabled() {
        return Optional.ofNullable(this.nodePublicIpAccessEnabled);
    }

    /**
     * The edition of the node server. Possible values are `BurstableGeneralPurpose`, `BurstableMemoryOptimized`, `GeneralPurpose` and `MemoryOptimized`. Defaults to `MemoryOptimized`.
     * 
     */
    @Import(name="nodeServerEdition")
    private @Nullable Output nodeServerEdition;

    /**
     * @return The edition of the node server. Possible values are `BurstableGeneralPurpose`, `BurstableMemoryOptimized`, `GeneralPurpose` and `MemoryOptimized`. Defaults to `MemoryOptimized`.
     * 
     */
    public Optional> nodeServerEdition() {
        return Optional.ofNullable(this.nodeServerEdition);
    }

    /**
     * The storage quota in MB on each worker node. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4194304`, `8388608` and `16777216`.
     * 
     */
    @Import(name="nodeStorageQuotaInMb")
    private @Nullable Output nodeStorageQuotaInMb;

    /**
     * @return The storage quota in MB on each worker node. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4194304`, `8388608` and `16777216`.
     * 
     */
    public Optional> nodeStorageQuotaInMb() {
        return Optional.ofNullable(this.nodeStorageQuotaInMb);
    }

    /**
     * The vCores count on each worker node. Possible values are `1`, `2`, `4`, `8`, `16`, `32`, `64`, `96` and `104`.
     * 
     */
    @Import(name="nodeVcores")
    private @Nullable Output nodeVcores;

    /**
     * @return The vCores count on each worker node. Possible values are `1`, `2`, `4`, `8`, `16`, `32`, `64`, `96` and `104`.
     * 
     */
    public Optional> nodeVcores() {
        return Optional.ofNullable(this.nodeVcores);
    }

    /**
     * The date and time in UTC (ISO8601 format) for the Azure Cosmos DB for PostgreSQL cluster restore. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="pointInTimeInUtc")
    private @Nullable Output pointInTimeInUtc;

    /**
     * @return The date and time in UTC (ISO8601 format) for the Azure Cosmos DB for PostgreSQL cluster restore. Changing this forces a new resource to be created.
     * 
     */
    public Optional> pointInTimeInUtc() {
        return Optional.ofNullable(this.pointInTimeInUtc);
    }

    /**
     * The preferred primary availability zone for the Azure Cosmos DB for PostgreSQL cluster.
     * 
     */
    @Import(name="preferredPrimaryZone")
    private @Nullable Output preferredPrimaryZone;

    /**
     * @return The preferred primary availability zone for the Azure Cosmos DB for PostgreSQL cluster.
     * 
     */
    public Optional> preferredPrimaryZone() {
        return Optional.ofNullable(this.preferredPrimaryZone);
    }

    /**
     * The name of the Resource Group where the Azure Cosmos DB for PostgreSQL Cluster should exist. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="resourceGroupName")
    private @Nullable Output resourceGroupName;

    /**
     * @return The name of the Resource Group where the Azure Cosmos DB for PostgreSQL Cluster should exist. Changing this forces a new resource to be created.
     * 
     */
    public Optional> resourceGroupName() {
        return Optional.ofNullable(this.resourceGroupName);
    }

    /**
     * A `servers` block as defined below.
     * 
     */
    @Import(name="servers")
    private @Nullable Output> servers;

    /**
     * @return A `servers` block as defined below.
     * 
     */
    public Optional>> servers() {
        return Optional.ofNullable(this.servers);
    }

    /**
     * Is shards on coordinator enabled for the Azure Cosmos DB for PostgreSQL cluster.
     * 
     */
    @Import(name="shardsOnCoordinatorEnabled")
    private @Nullable Output shardsOnCoordinatorEnabled;

    /**
     * @return Is shards on coordinator enabled for the Azure Cosmos DB for PostgreSQL cluster.
     * 
     */
    public Optional> shardsOnCoordinatorEnabled() {
        return Optional.ofNullable(this.shardsOnCoordinatorEnabled);
    }

    /**
     * The Azure region of the source Azure Cosmos DB for PostgreSQL cluster for read replica clusters. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="sourceLocation")
    private @Nullable Output sourceLocation;

    /**
     * @return The Azure region of the source Azure Cosmos DB for PostgreSQL cluster for read replica clusters. Changing this forces a new resource to be created.
     * 
     */
    public Optional> sourceLocation() {
        return Optional.ofNullable(this.sourceLocation);
    }

    /**
     * The resource ID of the source Azure Cosmos DB for PostgreSQL cluster for read replica clusters. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="sourceResourceId")
    private @Nullable Output sourceResourceId;

    /**
     * @return The resource ID of the source Azure Cosmos DB for PostgreSQL cluster for read replica clusters. Changing this forces a new resource to be created.
     * 
     */
    public Optional> sourceResourceId() {
        return Optional.ofNullable(this.sourceResourceId);
    }

    /**
     * The major PostgreSQL version on the Azure Cosmos DB for PostgreSQL cluster. Possible values are `11`, `12`, `13`, `14`, `15` and `16`.
     * 
     */
    @Import(name="sqlVersion")
    private @Nullable Output sqlVersion;

    /**
     * @return The major PostgreSQL version on the Azure Cosmos DB for PostgreSQL cluster. Possible values are `11`, `12`, `13`, `14`, `15` and `16`.
     * 
     */
    public Optional> sqlVersion() {
        return Optional.ofNullable(this.sqlVersion);
    }

    /**
     * A mapping of tags which should be assigned to the Azure Cosmos DB for PostgreSQL Cluster.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return A mapping of tags which should be assigned to the Azure Cosmos DB for PostgreSQL Cluster.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    private PostgresqlClusterState() {}

    private PostgresqlClusterState(PostgresqlClusterState $) {
        this.administratorLoginPassword = $.administratorLoginPassword;
        this.citusVersion = $.citusVersion;
        this.coordinatorPublicIpAccessEnabled = $.coordinatorPublicIpAccessEnabled;
        this.coordinatorServerEdition = $.coordinatorServerEdition;
        this.coordinatorStorageQuotaInMb = $.coordinatorStorageQuotaInMb;
        this.coordinatorVcoreCount = $.coordinatorVcoreCount;
        this.earliestRestoreTime = $.earliestRestoreTime;
        this.haEnabled = $.haEnabled;
        this.location = $.location;
        this.maintenanceWindow = $.maintenanceWindow;
        this.name = $.name;
        this.nodeCount = $.nodeCount;
        this.nodePublicIpAccessEnabled = $.nodePublicIpAccessEnabled;
        this.nodeServerEdition = $.nodeServerEdition;
        this.nodeStorageQuotaInMb = $.nodeStorageQuotaInMb;
        this.nodeVcores = $.nodeVcores;
        this.pointInTimeInUtc = $.pointInTimeInUtc;
        this.preferredPrimaryZone = $.preferredPrimaryZone;
        this.resourceGroupName = $.resourceGroupName;
        this.servers = $.servers;
        this.shardsOnCoordinatorEnabled = $.shardsOnCoordinatorEnabled;
        this.sourceLocation = $.sourceLocation;
        this.sourceResourceId = $.sourceResourceId;
        this.sqlVersion = $.sqlVersion;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private PostgresqlClusterState $;

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

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

        /**
         * @param administratorLoginPassword The password of the administrator login. This is required when `source_resource_id` is not set.
         * 
         * @return builder
         * 
         */
        public Builder administratorLoginPassword(@Nullable Output administratorLoginPassword) {
            $.administratorLoginPassword = administratorLoginPassword;
            return this;
        }

        /**
         * @param administratorLoginPassword The password of the administrator login. This is required when `source_resource_id` is not set.
         * 
         * @return builder
         * 
         */
        public Builder administratorLoginPassword(String administratorLoginPassword) {
            return administratorLoginPassword(Output.of(administratorLoginPassword));
        }

        /**
         * @param citusVersion The citus extension version on the Azure Cosmos DB for PostgreSQL Cluster. Possible values are `8.3`, `9.0`, `9.1`, `9.2`, `9.3`, `9.4`, `9.5`, `10.0`, `10.1`, `10.2`, `11.0`, `11.1`, `11.2`, `11.3` and `12.1`.
         * 
         * @return builder
         * 
         */
        public Builder citusVersion(@Nullable Output citusVersion) {
            $.citusVersion = citusVersion;
            return this;
        }

        /**
         * @param citusVersion The citus extension version on the Azure Cosmos DB for PostgreSQL Cluster. Possible values are `8.3`, `9.0`, `9.1`, `9.2`, `9.3`, `9.4`, `9.5`, `10.0`, `10.1`, `10.2`, `11.0`, `11.1`, `11.2`, `11.3` and `12.1`.
         * 
         * @return builder
         * 
         */
        public Builder citusVersion(String citusVersion) {
            return citusVersion(Output.of(citusVersion));
        }

        /**
         * @param coordinatorPublicIpAccessEnabled Is public access enabled on coordinator? Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder coordinatorPublicIpAccessEnabled(@Nullable Output coordinatorPublicIpAccessEnabled) {
            $.coordinatorPublicIpAccessEnabled = coordinatorPublicIpAccessEnabled;
            return this;
        }

        /**
         * @param coordinatorPublicIpAccessEnabled Is public access enabled on coordinator? Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder coordinatorPublicIpAccessEnabled(Boolean coordinatorPublicIpAccessEnabled) {
            return coordinatorPublicIpAccessEnabled(Output.of(coordinatorPublicIpAccessEnabled));
        }

        /**
         * @param coordinatorServerEdition The edition of the coordinator server. Possible values are `BurstableGeneralPurpose`, `BurstableMemoryOptimized`, `GeneralPurpose` and `MemoryOptimized`. Defaults to `GeneralPurpose`.
         * 
         * @return builder
         * 
         */
        public Builder coordinatorServerEdition(@Nullable Output coordinatorServerEdition) {
            $.coordinatorServerEdition = coordinatorServerEdition;
            return this;
        }

        /**
         * @param coordinatorServerEdition The edition of the coordinator server. Possible values are `BurstableGeneralPurpose`, `BurstableMemoryOptimized`, `GeneralPurpose` and `MemoryOptimized`. Defaults to `GeneralPurpose`.
         * 
         * @return builder
         * 
         */
        public Builder coordinatorServerEdition(String coordinatorServerEdition) {
            return coordinatorServerEdition(Output.of(coordinatorServerEdition));
        }

        /**
         * @param coordinatorStorageQuotaInMb The coordinator storage allowed for the Azure Cosmos DB for PostgreSQL Cluster. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4194304`, `8388608`, `16777216`, and `33554432`.
         * 
         * > **NOTE:** More information on [the types of compute resources available for CosmosDB can be found in the product documentation](https://learn.microsoft.com/azure/cosmos-db/postgresql/resources-compute)
         * 
         * @return builder
         * 
         */
        public Builder coordinatorStorageQuotaInMb(@Nullable Output coordinatorStorageQuotaInMb) {
            $.coordinatorStorageQuotaInMb = coordinatorStorageQuotaInMb;
            return this;
        }

        /**
         * @param coordinatorStorageQuotaInMb The coordinator storage allowed for the Azure Cosmos DB for PostgreSQL Cluster. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4194304`, `8388608`, `16777216`, and `33554432`.
         * 
         * > **NOTE:** More information on [the types of compute resources available for CosmosDB can be found in the product documentation](https://learn.microsoft.com/azure/cosmos-db/postgresql/resources-compute)
         * 
         * @return builder
         * 
         */
        public Builder coordinatorStorageQuotaInMb(Integer coordinatorStorageQuotaInMb) {
            return coordinatorStorageQuotaInMb(Output.of(coordinatorStorageQuotaInMb));
        }

        /**
         * @param coordinatorVcoreCount The coordinator vCore count for the Azure Cosmos DB for PostgreSQL Cluster. Possible values are `1`, `2`, `4`, `8`, `16`, `32`, `64` and `96`.
         * 
         * @return builder
         * 
         */
        public Builder coordinatorVcoreCount(@Nullable Output coordinatorVcoreCount) {
            $.coordinatorVcoreCount = coordinatorVcoreCount;
            return this;
        }

        /**
         * @param coordinatorVcoreCount The coordinator vCore count for the Azure Cosmos DB for PostgreSQL Cluster. Possible values are `1`, `2`, `4`, `8`, `16`, `32`, `64` and `96`.
         * 
         * @return builder
         * 
         */
        public Builder coordinatorVcoreCount(Integer coordinatorVcoreCount) {
            return coordinatorVcoreCount(Output.of(coordinatorVcoreCount));
        }

        /**
         * @param earliestRestoreTime The earliest restore point time (ISO8601 format) for the Azure Cosmos DB for PostgreSQL Cluster.
         * 
         * @return builder
         * 
         */
        public Builder earliestRestoreTime(@Nullable Output earliestRestoreTime) {
            $.earliestRestoreTime = earliestRestoreTime;
            return this;
        }

        /**
         * @param earliestRestoreTime The earliest restore point time (ISO8601 format) for the Azure Cosmos DB for PostgreSQL Cluster.
         * 
         * @return builder
         * 
         */
        public Builder earliestRestoreTime(String earliestRestoreTime) {
            return earliestRestoreTime(Output.of(earliestRestoreTime));
        }

        /**
         * @param haEnabled Is high availability enabled for the Azure Cosmos DB for PostgreSQL cluster? Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder haEnabled(@Nullable Output haEnabled) {
            $.haEnabled = haEnabled;
            return this;
        }

        /**
         * @param haEnabled Is high availability enabled for the Azure Cosmos DB for PostgreSQL cluster? Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder haEnabled(Boolean haEnabled) {
            return haEnabled(Output.of(haEnabled));
        }

        /**
         * @param location The Azure Region where the Azure Cosmos DB for PostgreSQL Cluster should exist. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The Azure Region where the Azure Cosmos DB for PostgreSQL Cluster should exist. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param maintenanceWindow A `maintenance_window` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder maintenanceWindow(@Nullable Output maintenanceWindow) {
            $.maintenanceWindow = maintenanceWindow;
            return this;
        }

        /**
         * @param maintenanceWindow A `maintenance_window` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder maintenanceWindow(PostgresqlClusterMaintenanceWindowArgs maintenanceWindow) {
            return maintenanceWindow(Output.of(maintenanceWindow));
        }

        /**
         * @param name The name which should be used for this Azure Cosmos DB for PostgreSQL Cluster. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name which should be used for this Azure Cosmos DB for PostgreSQL Cluster. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param nodeCount The worker node count of the Azure Cosmos DB for PostgreSQL Cluster. Possible value is between `0` and `20` except `1`.
         * 
         * @return builder
         * 
         */
        public Builder nodeCount(@Nullable Output nodeCount) {
            $.nodeCount = nodeCount;
            return this;
        }

        /**
         * @param nodeCount The worker node count of the Azure Cosmos DB for PostgreSQL Cluster. Possible value is between `0` and `20` except `1`.
         * 
         * @return builder
         * 
         */
        public Builder nodeCount(Integer nodeCount) {
            return nodeCount(Output.of(nodeCount));
        }

        /**
         * @param nodePublicIpAccessEnabled Is public access enabled on worker nodes. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder nodePublicIpAccessEnabled(@Nullable Output nodePublicIpAccessEnabled) {
            $.nodePublicIpAccessEnabled = nodePublicIpAccessEnabled;
            return this;
        }

        /**
         * @param nodePublicIpAccessEnabled Is public access enabled on worker nodes. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder nodePublicIpAccessEnabled(Boolean nodePublicIpAccessEnabled) {
            return nodePublicIpAccessEnabled(Output.of(nodePublicIpAccessEnabled));
        }

        /**
         * @param nodeServerEdition The edition of the node server. Possible values are `BurstableGeneralPurpose`, `BurstableMemoryOptimized`, `GeneralPurpose` and `MemoryOptimized`. Defaults to `MemoryOptimized`.
         * 
         * @return builder
         * 
         */
        public Builder nodeServerEdition(@Nullable Output nodeServerEdition) {
            $.nodeServerEdition = nodeServerEdition;
            return this;
        }

        /**
         * @param nodeServerEdition The edition of the node server. Possible values are `BurstableGeneralPurpose`, `BurstableMemoryOptimized`, `GeneralPurpose` and `MemoryOptimized`. Defaults to `MemoryOptimized`.
         * 
         * @return builder
         * 
         */
        public Builder nodeServerEdition(String nodeServerEdition) {
            return nodeServerEdition(Output.of(nodeServerEdition));
        }

        /**
         * @param nodeStorageQuotaInMb The storage quota in MB on each worker node. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4194304`, `8388608` and `16777216`.
         * 
         * @return builder
         * 
         */
        public Builder nodeStorageQuotaInMb(@Nullable Output nodeStorageQuotaInMb) {
            $.nodeStorageQuotaInMb = nodeStorageQuotaInMb;
            return this;
        }

        /**
         * @param nodeStorageQuotaInMb The storage quota in MB on each worker node. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4194304`, `8388608` and `16777216`.
         * 
         * @return builder
         * 
         */
        public Builder nodeStorageQuotaInMb(Integer nodeStorageQuotaInMb) {
            return nodeStorageQuotaInMb(Output.of(nodeStorageQuotaInMb));
        }

        /**
         * @param nodeVcores The vCores count on each worker node. Possible values are `1`, `2`, `4`, `8`, `16`, `32`, `64`, `96` and `104`.
         * 
         * @return builder
         * 
         */
        public Builder nodeVcores(@Nullable Output nodeVcores) {
            $.nodeVcores = nodeVcores;
            return this;
        }

        /**
         * @param nodeVcores The vCores count on each worker node. Possible values are `1`, `2`, `4`, `8`, `16`, `32`, `64`, `96` and `104`.
         * 
         * @return builder
         * 
         */
        public Builder nodeVcores(Integer nodeVcores) {
            return nodeVcores(Output.of(nodeVcores));
        }

        /**
         * @param pointInTimeInUtc The date and time in UTC (ISO8601 format) for the Azure Cosmos DB for PostgreSQL cluster restore. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder pointInTimeInUtc(@Nullable Output pointInTimeInUtc) {
            $.pointInTimeInUtc = pointInTimeInUtc;
            return this;
        }

        /**
         * @param pointInTimeInUtc The date and time in UTC (ISO8601 format) for the Azure Cosmos DB for PostgreSQL cluster restore. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder pointInTimeInUtc(String pointInTimeInUtc) {
            return pointInTimeInUtc(Output.of(pointInTimeInUtc));
        }

        /**
         * @param preferredPrimaryZone The preferred primary availability zone for the Azure Cosmos DB for PostgreSQL cluster.
         * 
         * @return builder
         * 
         */
        public Builder preferredPrimaryZone(@Nullable Output preferredPrimaryZone) {
            $.preferredPrimaryZone = preferredPrimaryZone;
            return this;
        }

        /**
         * @param preferredPrimaryZone The preferred primary availability zone for the Azure Cosmos DB for PostgreSQL cluster.
         * 
         * @return builder
         * 
         */
        public Builder preferredPrimaryZone(String preferredPrimaryZone) {
            return preferredPrimaryZone(Output.of(preferredPrimaryZone));
        }

        /**
         * @param resourceGroupName The name of the Resource Group where the Azure Cosmos DB for PostgreSQL Cluster should exist. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(@Nullable Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the Resource Group where the Azure Cosmos DB for PostgreSQL Cluster should exist. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param servers A `servers` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder servers(@Nullable Output> servers) {
            $.servers = servers;
            return this;
        }

        /**
         * @param servers A `servers` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder servers(List servers) {
            return servers(Output.of(servers));
        }

        /**
         * @param servers A `servers` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder servers(PostgresqlClusterServerArgs... servers) {
            return servers(List.of(servers));
        }

        /**
         * @param shardsOnCoordinatorEnabled Is shards on coordinator enabled for the Azure Cosmos DB for PostgreSQL cluster.
         * 
         * @return builder
         * 
         */
        public Builder shardsOnCoordinatorEnabled(@Nullable Output shardsOnCoordinatorEnabled) {
            $.shardsOnCoordinatorEnabled = shardsOnCoordinatorEnabled;
            return this;
        }

        /**
         * @param shardsOnCoordinatorEnabled Is shards on coordinator enabled for the Azure Cosmos DB for PostgreSQL cluster.
         * 
         * @return builder
         * 
         */
        public Builder shardsOnCoordinatorEnabled(Boolean shardsOnCoordinatorEnabled) {
            return shardsOnCoordinatorEnabled(Output.of(shardsOnCoordinatorEnabled));
        }

        /**
         * @param sourceLocation The Azure region of the source Azure Cosmos DB for PostgreSQL cluster for read replica clusters. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder sourceLocation(@Nullable Output sourceLocation) {
            $.sourceLocation = sourceLocation;
            return this;
        }

        /**
         * @param sourceLocation The Azure region of the source Azure Cosmos DB for PostgreSQL cluster for read replica clusters. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder sourceLocation(String sourceLocation) {
            return sourceLocation(Output.of(sourceLocation));
        }

        /**
         * @param sourceResourceId The resource ID of the source Azure Cosmos DB for PostgreSQL cluster for read replica clusters. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder sourceResourceId(@Nullable Output sourceResourceId) {
            $.sourceResourceId = sourceResourceId;
            return this;
        }

        /**
         * @param sourceResourceId The resource ID of the source Azure Cosmos DB for PostgreSQL cluster for read replica clusters. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder sourceResourceId(String sourceResourceId) {
            return sourceResourceId(Output.of(sourceResourceId));
        }

        /**
         * @param sqlVersion The major PostgreSQL version on the Azure Cosmos DB for PostgreSQL cluster. Possible values are `11`, `12`, `13`, `14`, `15` and `16`.
         * 
         * @return builder
         * 
         */
        public Builder sqlVersion(@Nullable Output sqlVersion) {
            $.sqlVersion = sqlVersion;
            return this;
        }

        /**
         * @param sqlVersion The major PostgreSQL version on the Azure Cosmos DB for PostgreSQL cluster. Possible values are `11`, `12`, `13`, `14`, `15` and `16`.
         * 
         * @return builder
         * 
         */
        public Builder sqlVersion(String sqlVersion) {
            return sqlVersion(Output.of(sqlVersion));
        }

        /**
         * @param tags A mapping of tags which should be assigned to the Azure Cosmos DB for PostgreSQL Cluster.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags A mapping of tags which should be assigned to the Azure Cosmos DB for PostgreSQL Cluster.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        public PostgresqlClusterState build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy