import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Resource type definition for AWS::ElastiCache::CacheCluster
 */
export declare class CacheCluster extends pulumi.CustomResource {
    /**
     * Get an existing CacheCluster 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): CacheCluster;
    /**
     * Returns true if the given object is an instance of CacheCluster.  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 CacheCluster;
    /**
     * If you are running Redis engine version 6.0 or later, set this parameter to yes if you want to opt-in to the next minor version upgrade campaign.
     */
    readonly autoMinorVersionUpgrade: pulumi.Output<boolean | undefined>;
    /**
     * Specifies whether the nodes in this Memcached cluster are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region.
     */
    readonly azMode: pulumi.Output<string | undefined>;
    /**
     * The compute and memory capacity of the nodes in the node group (shard).
     */
    readonly cacheNodeType: pulumi.Output<string>;
    /**
     * The name of the parameter group to associate with this cluster.
     */
    readonly cacheParameterGroupName: pulumi.Output<string | undefined>;
    /**
     * A list of security group names to associate with this cluster.
     */
    readonly cacheSecurityGroupNames: pulumi.Output<string[] | undefined>;
    /**
     * The name of the subnet group to be used for the cluster.
     */
    readonly cacheSubnetGroupName: pulumi.Output<string | undefined>;
    /**
     * A name for the cache cluster.
     */
    readonly clusterName: pulumi.Output<string | undefined>;
    /**
     * Specifies the ConfigurationEndpoint address and port
     */
    readonly configurationEndpoint: pulumi.Output<outputs.elasticache.CacheClusterEndpoint>;
    /**
     * The name of the cache engine to be used for this cluster.
     */
    readonly engine: pulumi.Output<string>;
    /**
     * The version number of the cache engine to be used for this cluster
     */
    readonly engineVersion: pulumi.Output<string | undefined>;
    /**
     * The Ip Discovery parameter for cachecluster.
     */
    readonly ipDiscovery: pulumi.Output<string | undefined>;
    /**
     * Specifies the destination, format and type of the logs
     */
    readonly logDeliveryConfigurations: pulumi.Output<outputs.elasticache.CacheClusterLogDeliveryConfigurationRequest[] | undefined>;
    /**
     * The network type parameter for cachecluster.
     */
    readonly networkType: pulumi.Output<string | undefined>;
    /**
     * The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.
     */
    readonly notificationTopicArn: pulumi.Output<string | undefined>;
    /**
     * The number of cache nodes that the cache cluster should have.
     */
    readonly numCacheNodes: pulumi.Output<number>;
    /**
     * The port number on which each of the cache nodes accepts connections.
     */
    readonly port: pulumi.Output<number | undefined>;
    /**
     * The EC2 Availability Zone in which the cluster is created.
     */
    readonly preferredAvailabilityZone: pulumi.Output<string | undefined>;
    /**
     * A list of the Availability Zones in which cache nodes are created. The order of the zones in the list is not important.
     */
    readonly preferredAvailabilityZones: pulumi.Output<string[] | undefined>;
    /**
     * Specifies the weekly time range during which maintenance on the cluster is performed.
     */
    readonly preferredMaintenanceWindow: pulumi.Output<string | undefined>;
    /**
     * Specifies the RedisEndPoint address and port
     */
    readonly redisEndpoint: pulumi.Output<outputs.elasticache.CacheClusterEndpoint>;
    /**
     * A single-element string list containing an Amazon Resource Name (ARN) that uniquely identifies a Redis RDB snapshot file stored in Amazon S3.
     */
    readonly snapshotArns: pulumi.Output<string[] | undefined>;
    /**
     * The name of a Redis snapshot from which to restore data into the new node group (shard).
     */
    readonly snapshotName: pulumi.Output<string | undefined>;
    /**
     * The number of days for which ElastiCache retains automatic snapshots before deleting them.
     */
    readonly snapshotRetentionLimit: pulumi.Output<number | undefined>;
    /**
     * The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard).
     */
    readonly snapshotWindow: pulumi.Output<string | undefined>;
    /**
     * A list of tags to be added to this resource.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * A flag that enables in-transit encryption when set to true. You cannot modify the value of TransitEncryptionEnabled after the cluster is created
     */
    readonly transitEncryptionEnabled: pulumi.Output<boolean | undefined>;
    /**
     * One or more VPC security groups associated with the cluster.
     */
    readonly vpcSecurityGroupIds: pulumi.Output<string[] | undefined>;
    /**
     * Create a CacheCluster 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: CacheClusterArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a CacheCluster resource.
 */
export interface CacheClusterArgs {
    /**
     * If you are running Redis engine version 6.0 or later, set this parameter to yes if you want to opt-in to the next minor version upgrade campaign.
     */
    autoMinorVersionUpgrade?: pulumi.Input<boolean>;
    /**
     * Specifies whether the nodes in this Memcached cluster are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region.
     */
    azMode?: pulumi.Input<string>;
    /**
     * The compute and memory capacity of the nodes in the node group (shard).
     */
    cacheNodeType: pulumi.Input<string>;
    /**
     * The name of the parameter group to associate with this cluster.
     */
    cacheParameterGroupName?: pulumi.Input<string>;
    /**
     * A list of security group names to associate with this cluster.
     */
    cacheSecurityGroupNames?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The name of the subnet group to be used for the cluster.
     */
    cacheSubnetGroupName?: pulumi.Input<string>;
    /**
     * A name for the cache cluster.
     */
    clusterName?: pulumi.Input<string>;
    /**
     * The name of the cache engine to be used for this cluster.
     */
    engine: pulumi.Input<string>;
    /**
     * The version number of the cache engine to be used for this cluster
     */
    engineVersion?: pulumi.Input<string>;
    /**
     * The Ip Discovery parameter for cachecluster.
     */
    ipDiscovery?: pulumi.Input<string>;
    /**
     * Specifies the destination, format and type of the logs
     */
    logDeliveryConfigurations?: pulumi.Input<pulumi.Input<inputs.elasticache.CacheClusterLogDeliveryConfigurationRequestArgs>[]>;
    /**
     * The network type parameter for cachecluster.
     */
    networkType?: pulumi.Input<string>;
    /**
     * The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.
     */
    notificationTopicArn?: pulumi.Input<string>;
    /**
     * The number of cache nodes that the cache cluster should have.
     */
    numCacheNodes: pulumi.Input<number>;
    /**
     * The port number on which each of the cache nodes accepts connections.
     */
    port?: pulumi.Input<number>;
    /**
     * The EC2 Availability Zone in which the cluster is created.
     */
    preferredAvailabilityZone?: pulumi.Input<string>;
    /**
     * A list of the Availability Zones in which cache nodes are created. The order of the zones in the list is not important.
     */
    preferredAvailabilityZones?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Specifies the weekly time range during which maintenance on the cluster is performed.
     */
    preferredMaintenanceWindow?: pulumi.Input<string>;
    /**
     * A single-element string list containing an Amazon Resource Name (ARN) that uniquely identifies a Redis RDB snapshot file stored in Amazon S3.
     */
    snapshotArns?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The name of a Redis snapshot from which to restore data into the new node group (shard).
     */
    snapshotName?: pulumi.Input<string>;
    /**
     * The number of days for which ElastiCache retains automatic snapshots before deleting them.
     */
    snapshotRetentionLimit?: pulumi.Input<number>;
    /**
     * The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard).
     */
    snapshotWindow?: pulumi.Input<string>;
    /**
     * A list of tags to be added to this resource.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
    /**
     * A flag that enables in-transit encryption when set to true. You cannot modify the value of TransitEncryptionEnabled after the cluster is created
     */
    transitEncryptionEnabled?: pulumi.Input<boolean>;
    /**
     * One or more VPC security groups associated with the cluster.
     */
    vpcSecurityGroupIds?: pulumi.Input<pulumi.Input<string>[]>;
}
