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

com.pulumi.azurenative.cache.RedisArgs Maven / Gradle / Ivy

There is a newer version: 2.78.0
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.azurenative.cache;

import com.pulumi.azurenative.cache.enums.PublicNetworkAccess;
import com.pulumi.azurenative.cache.enums.TlsVersion;
import com.pulumi.azurenative.cache.inputs.ManagedServiceIdentityArgs;
import com.pulumi.azurenative.cache.inputs.RedisCommonPropertiesRedisConfigurationArgs;
import com.pulumi.azurenative.cache.inputs.SkuArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
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 RedisArgs extends com.pulumi.resources.ResourceArgs {

    public static final RedisArgs Empty = new RedisArgs();

    /**
     * Specifies whether the non-ssl Redis server port (6379) is enabled.
     * 
     */
    @Import(name="enableNonSslPort")
    private @Nullable Output enableNonSslPort;

    /**
     * @return Specifies whether the non-ssl Redis server port (6379) is enabled.
     * 
     */
    public Optional> enableNonSslPort() {
        return Optional.ofNullable(this.enableNonSslPort);
    }

    /**
     * The identity of the resource.
     * 
     */
    @Import(name="identity")
    private @Nullable Output identity;

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

    /**
     * The geo-location where the resource lives
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The geo-location where the resource lives
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Optional: requires clients to use a specified TLS version (or higher) to connect (e,g, '1.0', '1.1', '1.2')
     * 
     */
    @Import(name="minimumTlsVersion")
    private @Nullable Output> minimumTlsVersion;

    /**
     * @return Optional: requires clients to use a specified TLS version (or higher) to connect (e,g, '1.0', '1.1', '1.2')
     * 
     */
    public Optional>> minimumTlsVersion() {
        return Optional.ofNullable(this.minimumTlsVersion);
    }

    /**
     * The name of the Redis cache.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return The name of the Redis cache.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * Whether or not public endpoint access is allowed for this cache.  Value is optional, but if passed in, must be 'Enabled' or 'Disabled'. If 'Disabled', private endpoints are the exclusive access method. Default value is 'Enabled'. Note: This setting is important for caches with private endpoints. It has *no effect* on caches that are joined to, or injected into, a virtual network subnet.
     * 
     */
    @Import(name="publicNetworkAccess")
    private @Nullable Output> publicNetworkAccess;

    /**
     * @return Whether or not public endpoint access is allowed for this cache.  Value is optional, but if passed in, must be 'Enabled' or 'Disabled'. If 'Disabled', private endpoints are the exclusive access method. Default value is 'Enabled'. Note: This setting is important for caches with private endpoints. It has *no effect* on caches that are joined to, or injected into, a virtual network subnet.
     * 
     */
    public Optional>> publicNetworkAccess() {
        return Optional.ofNullable(this.publicNetworkAccess);
    }

    /**
     * All Redis Settings. Few possible keys: rdb-backup-enabled,rdb-storage-connection-string,rdb-backup-frequency,maxmemory-delta,maxmemory-policy,notify-keyspace-events,maxmemory-samples,slowlog-log-slower-than,slowlog-max-len,list-max-ziplist-entries,list-max-ziplist-value,hash-max-ziplist-entries,hash-max-ziplist-value,set-max-intset-entries,zset-max-ziplist-entries,zset-max-ziplist-value etc.
     * 
     */
    @Import(name="redisConfiguration")
    private @Nullable Output redisConfiguration;

    /**
     * @return All Redis Settings. Few possible keys: rdb-backup-enabled,rdb-storage-connection-string,rdb-backup-frequency,maxmemory-delta,maxmemory-policy,notify-keyspace-events,maxmemory-samples,slowlog-log-slower-than,slowlog-max-len,list-max-ziplist-entries,list-max-ziplist-value,hash-max-ziplist-entries,hash-max-ziplist-value,set-max-intset-entries,zset-max-ziplist-entries,zset-max-ziplist-value etc.
     * 
     */
    public Optional> redisConfiguration() {
        return Optional.ofNullable(this.redisConfiguration);
    }

    /**
     * Redis version. This should be in the form 'major[.minor]' (only 'major' is required) or the value 'latest' which refers to the latest stable Redis version that is available. Supported versions: 4.0, 6.0 (latest). Default value is 'latest'.
     * 
     */
    @Import(name="redisVersion")
    private @Nullable Output redisVersion;

    /**
     * @return Redis version. This should be in the form 'major[.minor]' (only 'major' is required) or the value 'latest' which refers to the latest stable Redis version that is available. Supported versions: 4.0, 6.0 (latest). Default value is 'latest'.
     * 
     */
    public Optional> redisVersion() {
        return Optional.ofNullable(this.redisVersion);
    }

    /**
     * The number of replicas to be created per primary.
     * 
     */
    @Import(name="replicasPerMaster")
    private @Nullable Output replicasPerMaster;

    /**
     * @return The number of replicas to be created per primary.
     * 
     */
    public Optional> replicasPerMaster() {
        return Optional.ofNullable(this.replicasPerMaster);
    }

    /**
     * The number of replicas to be created per primary.
     * 
     */
    @Import(name="replicasPerPrimary")
    private @Nullable Output replicasPerPrimary;

    /**
     * @return The number of replicas to be created per primary.
     * 
     */
    public Optional> replicasPerPrimary() {
        return Optional.ofNullable(this.replicasPerPrimary);
    }

    /**
     * The name of the resource group.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * The number of shards to be created on a Premium Cluster Cache.
     * 
     */
    @Import(name="shardCount")
    private @Nullable Output shardCount;

    /**
     * @return The number of shards to be created on a Premium Cluster Cache.
     * 
     */
    public Optional> shardCount() {
        return Optional.ofNullable(this.shardCount);
    }

    /**
     * The SKU of the Redis cache to deploy.
     * 
     */
    @Import(name="sku", required=true)
    private Output sku;

    /**
     * @return The SKU of the Redis cache to deploy.
     * 
     */
    public Output sku() {
        return this.sku;
    }

    /**
     * Static IP address. Optionally, may be specified when deploying a Redis cache inside an existing Azure Virtual Network; auto assigned by default.
     * 
     */
    @Import(name="staticIP")
    private @Nullable Output staticIP;

    /**
     * @return Static IP address. Optionally, may be specified when deploying a Redis cache inside an existing Azure Virtual Network; auto assigned by default.
     * 
     */
    public Optional> staticIP() {
        return Optional.ofNullable(this.staticIP);
    }

    /**
     * The full resource ID of a subnet in a virtual network to deploy the Redis cache in. Example format: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/Microsoft.{Network|ClassicNetwork}/VirtualNetworks/vnet1/subnets/subnet1
     * 
     */
    @Import(name="subnetId")
    private @Nullable Output subnetId;

    /**
     * @return The full resource ID of a subnet in a virtual network to deploy the Redis cache in. Example format: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/Microsoft.{Network|ClassicNetwork}/VirtualNetworks/vnet1/subnets/subnet1
     * 
     */
    public Optional> subnetId() {
        return Optional.ofNullable(this.subnetId);
    }

    /**
     * Resource tags.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Resource tags.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * A dictionary of tenant settings
     * 
     */
    @Import(name="tenantSettings")
    private @Nullable Output> tenantSettings;

    /**
     * @return A dictionary of tenant settings
     * 
     */
    public Optional>> tenantSettings() {
        return Optional.ofNullable(this.tenantSettings);
    }

    /**
     * A list of availability zones denoting where the resource needs to come from.
     * 
     */
    @Import(name="zones")
    private @Nullable Output> zones;

    /**
     * @return A list of availability zones denoting where the resource needs to come from.
     * 
     */
    public Optional>> zones() {
        return Optional.ofNullable(this.zones);
    }

    private RedisArgs() {}

    private RedisArgs(RedisArgs $) {
        this.enableNonSslPort = $.enableNonSslPort;
        this.identity = $.identity;
        this.location = $.location;
        this.minimumTlsVersion = $.minimumTlsVersion;
        this.name = $.name;
        this.publicNetworkAccess = $.publicNetworkAccess;
        this.redisConfiguration = $.redisConfiguration;
        this.redisVersion = $.redisVersion;
        this.replicasPerMaster = $.replicasPerMaster;
        this.replicasPerPrimary = $.replicasPerPrimary;
        this.resourceGroupName = $.resourceGroupName;
        this.shardCount = $.shardCount;
        this.sku = $.sku;
        this.staticIP = $.staticIP;
        this.subnetId = $.subnetId;
        this.tags = $.tags;
        this.tenantSettings = $.tenantSettings;
        this.zones = $.zones;
    }

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

    public static final class Builder {
        private RedisArgs $;

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

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

        /**
         * @param enableNonSslPort Specifies whether the non-ssl Redis server port (6379) is enabled.
         * 
         * @return builder
         * 
         */
        public Builder enableNonSslPort(@Nullable Output enableNonSslPort) {
            $.enableNonSslPort = enableNonSslPort;
            return this;
        }

        /**
         * @param enableNonSslPort Specifies whether the non-ssl Redis server port (6379) is enabled.
         * 
         * @return builder
         * 
         */
        public Builder enableNonSslPort(Boolean enableNonSslPort) {
            return enableNonSslPort(Output.of(enableNonSslPort));
        }

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

        /**
         * @param identity The identity of the resource.
         * 
         * @return builder
         * 
         */
        public Builder identity(ManagedServiceIdentityArgs identity) {
            return identity(Output.of(identity));
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param minimumTlsVersion Optional: requires clients to use a specified TLS version (or higher) to connect (e,g, '1.0', '1.1', '1.2')
         * 
         * @return builder
         * 
         */
        public Builder minimumTlsVersion(@Nullable Output> minimumTlsVersion) {
            $.minimumTlsVersion = minimumTlsVersion;
            return this;
        }

        /**
         * @param minimumTlsVersion Optional: requires clients to use a specified TLS version (or higher) to connect (e,g, '1.0', '1.1', '1.2')
         * 
         * @return builder
         * 
         */
        public Builder minimumTlsVersion(Either minimumTlsVersion) {
            return minimumTlsVersion(Output.of(minimumTlsVersion));
        }

        /**
         * @param minimumTlsVersion Optional: requires clients to use a specified TLS version (or higher) to connect (e,g, '1.0', '1.1', '1.2')
         * 
         * @return builder
         * 
         */
        public Builder minimumTlsVersion(String minimumTlsVersion) {
            return minimumTlsVersion(Either.ofLeft(minimumTlsVersion));
        }

        /**
         * @param minimumTlsVersion Optional: requires clients to use a specified TLS version (or higher) to connect (e,g, '1.0', '1.1', '1.2')
         * 
         * @return builder
         * 
         */
        public Builder minimumTlsVersion(TlsVersion minimumTlsVersion) {
            return minimumTlsVersion(Either.ofRight(minimumTlsVersion));
        }

        /**
         * @param name The name of the Redis cache.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name of the Redis cache.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param publicNetworkAccess Whether or not public endpoint access is allowed for this cache.  Value is optional, but if passed in, must be 'Enabled' or 'Disabled'. If 'Disabled', private endpoints are the exclusive access method. Default value is 'Enabled'. Note: This setting is important for caches with private endpoints. It has *no effect* on caches that are joined to, or injected into, a virtual network subnet.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(@Nullable Output> publicNetworkAccess) {
            $.publicNetworkAccess = publicNetworkAccess;
            return this;
        }

        /**
         * @param publicNetworkAccess Whether or not public endpoint access is allowed for this cache.  Value is optional, but if passed in, must be 'Enabled' or 'Disabled'. If 'Disabled', private endpoints are the exclusive access method. Default value is 'Enabled'. Note: This setting is important for caches with private endpoints. It has *no effect* on caches that are joined to, or injected into, a virtual network subnet.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(Either publicNetworkAccess) {
            return publicNetworkAccess(Output.of(publicNetworkAccess));
        }

        /**
         * @param publicNetworkAccess Whether or not public endpoint access is allowed for this cache.  Value is optional, but if passed in, must be 'Enabled' or 'Disabled'. If 'Disabled', private endpoints are the exclusive access method. Default value is 'Enabled'. Note: This setting is important for caches with private endpoints. It has *no effect* on caches that are joined to, or injected into, a virtual network subnet.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(String publicNetworkAccess) {
            return publicNetworkAccess(Either.ofLeft(publicNetworkAccess));
        }

        /**
         * @param publicNetworkAccess Whether or not public endpoint access is allowed for this cache.  Value is optional, but if passed in, must be 'Enabled' or 'Disabled'. If 'Disabled', private endpoints are the exclusive access method. Default value is 'Enabled'. Note: This setting is important for caches with private endpoints. It has *no effect* on caches that are joined to, or injected into, a virtual network subnet.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
            return publicNetworkAccess(Either.ofRight(publicNetworkAccess));
        }

        /**
         * @param redisConfiguration All Redis Settings. Few possible keys: rdb-backup-enabled,rdb-storage-connection-string,rdb-backup-frequency,maxmemory-delta,maxmemory-policy,notify-keyspace-events,maxmemory-samples,slowlog-log-slower-than,slowlog-max-len,list-max-ziplist-entries,list-max-ziplist-value,hash-max-ziplist-entries,hash-max-ziplist-value,set-max-intset-entries,zset-max-ziplist-entries,zset-max-ziplist-value etc.
         * 
         * @return builder
         * 
         */
        public Builder redisConfiguration(@Nullable Output redisConfiguration) {
            $.redisConfiguration = redisConfiguration;
            return this;
        }

        /**
         * @param redisConfiguration All Redis Settings. Few possible keys: rdb-backup-enabled,rdb-storage-connection-string,rdb-backup-frequency,maxmemory-delta,maxmemory-policy,notify-keyspace-events,maxmemory-samples,slowlog-log-slower-than,slowlog-max-len,list-max-ziplist-entries,list-max-ziplist-value,hash-max-ziplist-entries,hash-max-ziplist-value,set-max-intset-entries,zset-max-ziplist-entries,zset-max-ziplist-value etc.
         * 
         * @return builder
         * 
         */
        public Builder redisConfiguration(RedisCommonPropertiesRedisConfigurationArgs redisConfiguration) {
            return redisConfiguration(Output.of(redisConfiguration));
        }

        /**
         * @param redisVersion Redis version. This should be in the form 'major[.minor]' (only 'major' is required) or the value 'latest' which refers to the latest stable Redis version that is available. Supported versions: 4.0, 6.0 (latest). Default value is 'latest'.
         * 
         * @return builder
         * 
         */
        public Builder redisVersion(@Nullable Output redisVersion) {
            $.redisVersion = redisVersion;
            return this;
        }

        /**
         * @param redisVersion Redis version. This should be in the form 'major[.minor]' (only 'major' is required) or the value 'latest' which refers to the latest stable Redis version that is available. Supported versions: 4.0, 6.0 (latest). Default value is 'latest'.
         * 
         * @return builder
         * 
         */
        public Builder redisVersion(String redisVersion) {
            return redisVersion(Output.of(redisVersion));
        }

        /**
         * @param replicasPerMaster The number of replicas to be created per primary.
         * 
         * @return builder
         * 
         */
        public Builder replicasPerMaster(@Nullable Output replicasPerMaster) {
            $.replicasPerMaster = replicasPerMaster;
            return this;
        }

        /**
         * @param replicasPerMaster The number of replicas to be created per primary.
         * 
         * @return builder
         * 
         */
        public Builder replicasPerMaster(Integer replicasPerMaster) {
            return replicasPerMaster(Output.of(replicasPerMaster));
        }

        /**
         * @param replicasPerPrimary The number of replicas to be created per primary.
         * 
         * @return builder
         * 
         */
        public Builder replicasPerPrimary(@Nullable Output replicasPerPrimary) {
            $.replicasPerPrimary = replicasPerPrimary;
            return this;
        }

        /**
         * @param replicasPerPrimary The number of replicas to be created per primary.
         * 
         * @return builder
         * 
         */
        public Builder replicasPerPrimary(Integer replicasPerPrimary) {
            return replicasPerPrimary(Output.of(replicasPerPrimary));
        }

        /**
         * @param resourceGroupName The name of the resource group.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param shardCount The number of shards to be created on a Premium Cluster Cache.
         * 
         * @return builder
         * 
         */
        public Builder shardCount(@Nullable Output shardCount) {
            $.shardCount = shardCount;
            return this;
        }

        /**
         * @param shardCount The number of shards to be created on a Premium Cluster Cache.
         * 
         * @return builder
         * 
         */
        public Builder shardCount(Integer shardCount) {
            return shardCount(Output.of(shardCount));
        }

        /**
         * @param sku The SKU of the Redis cache to deploy.
         * 
         * @return builder
         * 
         */
        public Builder sku(Output sku) {
            $.sku = sku;
            return this;
        }

        /**
         * @param sku The SKU of the Redis cache to deploy.
         * 
         * @return builder
         * 
         */
        public Builder sku(SkuArgs sku) {
            return sku(Output.of(sku));
        }

        /**
         * @param staticIP Static IP address. Optionally, may be specified when deploying a Redis cache inside an existing Azure Virtual Network; auto assigned by default.
         * 
         * @return builder
         * 
         */
        public Builder staticIP(@Nullable Output staticIP) {
            $.staticIP = staticIP;
            return this;
        }

        /**
         * @param staticIP Static IP address. Optionally, may be specified when deploying a Redis cache inside an existing Azure Virtual Network; auto assigned by default.
         * 
         * @return builder
         * 
         */
        public Builder staticIP(String staticIP) {
            return staticIP(Output.of(staticIP));
        }

        /**
         * @param subnetId The full resource ID of a subnet in a virtual network to deploy the Redis cache in. Example format: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/Microsoft.{Network|ClassicNetwork}/VirtualNetworks/vnet1/subnets/subnet1
         * 
         * @return builder
         * 
         */
        public Builder subnetId(@Nullable Output subnetId) {
            $.subnetId = subnetId;
            return this;
        }

        /**
         * @param subnetId The full resource ID of a subnet in a virtual network to deploy the Redis cache in. Example format: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/Microsoft.{Network|ClassicNetwork}/VirtualNetworks/vnet1/subnets/subnet1
         * 
         * @return builder
         * 
         */
        public Builder subnetId(String subnetId) {
            return subnetId(Output.of(subnetId));
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param tenantSettings A dictionary of tenant settings
         * 
         * @return builder
         * 
         */
        public Builder tenantSettings(@Nullable Output> tenantSettings) {
            $.tenantSettings = tenantSettings;
            return this;
        }

        /**
         * @param tenantSettings A dictionary of tenant settings
         * 
         * @return builder
         * 
         */
        public Builder tenantSettings(Map tenantSettings) {
            return tenantSettings(Output.of(tenantSettings));
        }

        /**
         * @param zones A list of availability zones denoting where the resource needs to come from.
         * 
         * @return builder
         * 
         */
        public Builder zones(@Nullable Output> zones) {
            $.zones = zones;
            return this;
        }

        /**
         * @param zones A list of availability zones denoting where the resource needs to come from.
         * 
         * @return builder
         * 
         */
        public Builder zones(List zones) {
            return zones(Output.of(zones));
        }

        /**
         * @param zones A list of availability zones denoting where the resource needs to come from.
         * 
         * @return builder
         * 
         */
        public Builder zones(String... zones) {
            return zones(List.of(zones));
        }

        public RedisArgs build() {
            $.enableNonSslPort = Codegen.booleanProp("enableNonSslPort").output().arg($.enableNonSslPort).def(false).getNullable();
            $.publicNetworkAccess = Codegen.stringProp("publicNetworkAccess").left(PublicNetworkAccess.class).output().arg($.publicNetworkAccess).def("Enabled").getNullable();
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("RedisArgs", "resourceGroupName");
            }
            if ($.sku == null) {
                throw new MissingRequiredPropertyException("RedisArgs", "sku");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy