import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * A single Redis item in List or Get Operation.
 *
 * Uses Azure REST API version 2024-11-01.
 *
 * Other available API versions: 2015-08-01, 2016-04-01, 2017-02-01, 2017-10-01, 2018-03-01, 2019-07-01, 2020-06-01, 2020-12-01, 2021-06-01, 2022-05-01, 2022-06-01, 2023-04-01, 2023-05-01-preview, 2023-08-01, 2024-03-01, 2024-04-01-preview. These can be accessed by generating a local SDK package using the CLI command `pulumi package add azure-native redis [ApiVersion]`. See the [version guide](../../../version-guide/#accessing-any-api-version-via-local-packages) for details.
 */
export declare class Redis extends pulumi.CustomResource {
    /**
     * Get an existing Redis resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): Redis;
    /**
     * Returns true if the given object is an instance of Redis.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Redis;
    /**
     * The keys of the Redis cache - not set if this object is not the response to Create or Update redis cache
     */
    readonly accessKeys: pulumi.Output<outputs.redis.RedisAccessKeysResponse>;
    /**
     * The Azure API version of the resource.
     */
    readonly azureApiVersion: pulumi.Output<string>;
    /**
     * Authentication to Redis through access keys is disabled when set as true. Default value is false.
     */
    readonly disableAccessKeyAuthentication: pulumi.Output<boolean | undefined>;
    /**
     * Specifies whether the non-ssl Redis server port (6379) is enabled.
     */
    readonly enableNonSslPort: pulumi.Output<boolean | undefined>;
    /**
     * Redis host name.
     */
    readonly hostName: pulumi.Output<string>;
    /**
     * The managed service identities assigned to this resource.
     */
    readonly identity: pulumi.Output<outputs.redis.ManagedServiceIdentityResponse | undefined>;
    /**
     * List of the Redis instances associated with the cache
     */
    readonly instances: pulumi.Output<outputs.redis.RedisInstanceDetailsResponse[]>;
    /**
     * List of the linked servers associated with the cache
     */
    readonly linkedServers: pulumi.Output<outputs.redis.RedisLinkedServerResponse[]>;
    /**
     * The geo-location where the resource lives
     */
    readonly location: pulumi.Output<string>;
    /**
     * Optional: requires clients to use a specified TLS version (or higher) to connect (e,g, '1.0', '1.1', '1.2')
     */
    readonly minimumTlsVersion: pulumi.Output<string | undefined>;
    /**
     * The name of the resource
     */
    readonly name: pulumi.Output<string>;
    /**
     * Redis non-SSL port.
     */
    readonly port: pulumi.Output<number>;
    /**
     * List of private endpoint connection associated with the specified redis cache
     */
    readonly privateEndpointConnections: pulumi.Output<outputs.redis.PrivateEndpointConnectionResponse[]>;
    /**
     * Redis instance provisioning status.
     */
    readonly provisioningState: pulumi.Output<string>;
    /**
     * 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.
     */
    readonly publicNetworkAccess: pulumi.Output<string | undefined>;
    /**
     * All Redis Settings. Few possible keys: rdb-backup-enabled,rdb-storage-connection-string,rdb-backup-frequency,maxmemory-delta, maxmemory-policy,notify-keyspace-events, aof-backup-enabled, aof-storage-connection-string-0, aof-storage-connection-string-1 etc.
     */
    readonly redisConfiguration: pulumi.Output<outputs.redis.RedisCommonPropertiesRedisConfigurationResponse | undefined>;
    /**
     * 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'.
     */
    readonly redisVersion: pulumi.Output<string | undefined>;
    /**
     * The number of replicas to be created per primary.
     */
    readonly replicasPerMaster: pulumi.Output<number | undefined>;
    /**
     * The number of replicas to be created per primary.
     */
    readonly replicasPerPrimary: pulumi.Output<number | undefined>;
    /**
     * The number of shards to be created on a Premium Cluster Cache.
     */
    readonly shardCount: pulumi.Output<number | undefined>;
    /**
     * The SKU of the Redis cache to deploy.
     */
    readonly sku: pulumi.Output<outputs.redis.SkuResponse>;
    /**
     * Redis SSL port.
     */
    readonly sslPort: pulumi.Output<number>;
    /**
     * Static IP address. Optionally, may be specified when deploying a Redis cache inside an existing Azure Virtual Network; auto assigned by default.
     */
    readonly staticIP: pulumi.Output<string | undefined>;
    /**
     * 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
     */
    readonly subnetId: pulumi.Output<string | undefined>;
    /**
     * Azure Resource Manager metadata containing createdBy and modifiedBy information.
     */
    readonly systemData: pulumi.Output<outputs.redis.SystemDataResponse>;
    /**
     * Resource tags.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * A dictionary of tenant settings
     */
    readonly tenantSettings: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
     */
    readonly type: pulumi.Output<string>;
    /**
     * Optional: Specifies the update channel for the monthly Redis updates your Redis Cache will receive. Caches using 'Preview' update channel get latest Redis updates at least 4 weeks ahead of 'Stable' channel caches. Default value is 'Stable'.
     */
    readonly updateChannel: pulumi.Output<string | undefined>;
    /**
     * Optional: Specifies how availability zones are allocated to the Redis cache. 'Automatic' enables zone redundancy and Azure will automatically select zones based on regional availability and capacity. 'UserDefined' will select availability zones passed in by you using the 'zones' parameter. 'NoZones' will produce a non-zonal cache. If 'zonalAllocationPolicy' is not passed, it will be set to 'UserDefined' when zones are passed in, otherwise, it will be set to 'Automatic' in regions where zones are supported and 'NoZones' in regions where zones are not supported.
     */
    readonly zonalAllocationPolicy: pulumi.Output<string | undefined>;
    /**
     * The availability zones.
     */
    readonly zones: pulumi.Output<string[] | undefined>;
    /**
     * Create a Redis resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: RedisArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a Redis resource.
 */
export interface RedisArgs {
    /**
     * Authentication to Redis through access keys is disabled when set as true. Default value is false.
     */
    disableAccessKeyAuthentication?: pulumi.Input<boolean>;
    /**
     * Specifies whether the non-ssl Redis server port (6379) is enabled.
     */
    enableNonSslPort?: pulumi.Input<boolean>;
    /**
     * The identity of the resource.
     */
    identity?: pulumi.Input<inputs.redis.ManagedServiceIdentityArgs>;
    /**
     * The geo-location where the resource lives
     */
    location?: pulumi.Input<string>;
    /**
     * Optional: requires clients to use a specified TLS version (or higher) to connect (e,g, '1.0', '1.1', '1.2')
     */
    minimumTlsVersion?: pulumi.Input<string | enums.redis.TlsVersion>;
    /**
     * The name of the RedisResource
     */
    name?: pulumi.Input<string>;
    /**
     * 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.
     */
    publicNetworkAccess?: pulumi.Input<string | enums.redis.PublicNetworkAccess>;
    /**
     * All Redis Settings. Few possible keys: rdb-backup-enabled,rdb-storage-connection-string,rdb-backup-frequency,maxmemory-delta, maxmemory-policy,notify-keyspace-events, aof-backup-enabled, aof-storage-connection-string-0, aof-storage-connection-string-1 etc.
     */
    redisConfiguration?: pulumi.Input<inputs.redis.RedisCommonPropertiesRedisConfigurationArgs>;
    /**
     * 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'.
     */
    redisVersion?: pulumi.Input<string>;
    /**
     * The number of replicas to be created per primary.
     */
    replicasPerMaster?: pulumi.Input<number>;
    /**
     * The number of replicas to be created per primary.
     */
    replicasPerPrimary?: pulumi.Input<number>;
    /**
     * The name of the resource group. The name is case insensitive.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * The number of shards to be created on a Premium Cluster Cache.
     */
    shardCount?: pulumi.Input<number>;
    /**
     * The SKU of the Redis cache to deploy.
     */
    sku: pulumi.Input<inputs.redis.SkuArgs>;
    /**
     * Static IP address. Optionally, may be specified when deploying a Redis cache inside an existing Azure Virtual Network; auto assigned by default.
     */
    staticIP?: pulumi.Input<string>;
    /**
     * 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
     */
    subnetId?: pulumi.Input<string>;
    /**
     * Resource tags.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * A dictionary of tenant settings
     */
    tenantSettings?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * Optional: Specifies the update channel for the monthly Redis updates your Redis Cache will receive. Caches using 'Preview' update channel get latest Redis updates at least 4 weeks ahead of 'Stable' channel caches. Default value is 'Stable'.
     */
    updateChannel?: pulumi.Input<string | enums.redis.UpdateChannel>;
    /**
     * Optional: Specifies how availability zones are allocated to the Redis cache. 'Automatic' enables zone redundancy and Azure will automatically select zones based on regional availability and capacity. 'UserDefined' will select availability zones passed in by you using the 'zones' parameter. 'NoZones' will produce a non-zonal cache. If 'zonalAllocationPolicy' is not passed, it will be set to 'UserDefined' when zones are passed in, otherwise, it will be set to 'Automatic' in regions where zones are supported and 'NoZones' in regions where zones are not supported.
     */
    zonalAllocationPolicy?: pulumi.Input<string | enums.redis.ZonalAllocationPolicy>;
    /**
     * A list of availability zones denoting where the resource needs to come from.
     */
    zones?: pulumi.Input<pulumi.Input<string>[]>;
}
