import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types" ; import { AddTagsToResourceCommand , AddTagsToResourceCommandInput , AddTagsToResourceCommandOutput , } from "./commands/AddTagsToResourceCommand" ; import { AuthorizeCacheSecurityGroupIngressCommand , AuthorizeCacheSecurityGroupIngressCommandInput , AuthorizeCacheSecurityGroupIngressCommandOutput , } from "./commands/AuthorizeCacheSecurityGroupIngressCommand" ; import { BatchApplyUpdateActionCommand , BatchApplyUpdateActionCommandInput , BatchApplyUpdateActionCommandOutput , } from "./commands/BatchApplyUpdateActionCommand" ; import { BatchStopUpdateActionCommand , BatchStopUpdateActionCommandInput , BatchStopUpdateActionCommandOutput , } from "./commands/BatchStopUpdateActionCommand" ; import { CompleteMigrationCommand , CompleteMigrationCommandInput , CompleteMigrationCommandOutput , } from "./commands/CompleteMigrationCommand" ; import { CopySnapshotCommand , CopySnapshotCommandInput , CopySnapshotCommandOutput , } from "./commands/CopySnapshotCommand" ; import { CreateCacheClusterCommand , CreateCacheClusterCommandInput , CreateCacheClusterCommandOutput , } from "./commands/CreateCacheClusterCommand" ; import { CreateCacheParameterGroupCommand , CreateCacheParameterGroupCommandInput , CreateCacheParameterGroupCommandOutput , } from "./commands/CreateCacheParameterGroupCommand" ; import { CreateCacheSecurityGroupCommand , CreateCacheSecurityGroupCommandInput , CreateCacheSecurityGroupCommandOutput , } from "./commands/CreateCacheSecurityGroupCommand" ; import { CreateCacheSubnetGroupCommand , CreateCacheSubnetGroupCommandInput , CreateCacheSubnetGroupCommandOutput , } from "./commands/CreateCacheSubnetGroupCommand" ; import { CreateGlobalReplicationGroupCommand , CreateGlobalReplicationGroupCommandInput , CreateGlobalReplicationGroupCommandOutput , } from "./commands/CreateGlobalReplicationGroupCommand" ; import { CreateReplicationGroupCommand , CreateReplicationGroupCommandInput , CreateReplicationGroupCommandOutput , } from "./commands/CreateReplicationGroupCommand" ; import { CreateSnapshotCommand , CreateSnapshotCommandInput , CreateSnapshotCommandOutput , } from "./commands/CreateSnapshotCommand" ; import { CreateUserCommand , CreateUserCommandInput , CreateUserCommandOutput } from "./commands/CreateUserCommand" ; import { CreateUserGroupCommand , CreateUserGroupCommandInput , CreateUserGroupCommandOutput , } from "./commands/CreateUserGroupCommand" ; import { DecreaseNodeGroupsInGlobalReplicationGroupCommand , DecreaseNodeGroupsInGlobalReplicationGroupCommandInput , DecreaseNodeGroupsInGlobalReplicationGroupCommandOutput , } from "./commands/DecreaseNodeGroupsInGlobalReplicationGroupCommand" ; import { DecreaseReplicaCountCommand , DecreaseReplicaCountCommandInput , DecreaseReplicaCountCommandOutput , } from "./commands/DecreaseReplicaCountCommand" ; import { DeleteCacheClusterCommand , DeleteCacheClusterCommandInput , DeleteCacheClusterCommandOutput , } from "./commands/DeleteCacheClusterCommand" ; import { DeleteCacheParameterGroupCommand , DeleteCacheParameterGroupCommandInput , DeleteCacheParameterGroupCommandOutput , } from "./commands/DeleteCacheParameterGroupCommand" ; import { DeleteCacheSecurityGroupCommand , DeleteCacheSecurityGroupCommandInput , DeleteCacheSecurityGroupCommandOutput , } from "./commands/DeleteCacheSecurityGroupCommand" ; import { DeleteCacheSubnetGroupCommand , DeleteCacheSubnetGroupCommandInput , DeleteCacheSubnetGroupCommandOutput , } from "./commands/DeleteCacheSubnetGroupCommand" ; import { DeleteGlobalReplicationGroupCommand , DeleteGlobalReplicationGroupCommandInput , DeleteGlobalReplicationGroupCommandOutput , } from "./commands/DeleteGlobalReplicationGroupCommand" ; import { DeleteReplicationGroupCommand , DeleteReplicationGroupCommandInput , DeleteReplicationGroupCommandOutput , } from "./commands/DeleteReplicationGroupCommand" ; import { DeleteSnapshotCommand , DeleteSnapshotCommandInput , DeleteSnapshotCommandOutput , } from "./commands/DeleteSnapshotCommand" ; import { DeleteUserCommand , DeleteUserCommandInput , DeleteUserCommandOutput } from "./commands/DeleteUserCommand" ; import { DeleteUserGroupCommand , DeleteUserGroupCommandInput , DeleteUserGroupCommandOutput , } from "./commands/DeleteUserGroupCommand" ; import { DescribeCacheClustersCommand , DescribeCacheClustersCommandInput , DescribeCacheClustersCommandOutput , } from "./commands/DescribeCacheClustersCommand" ; import { DescribeCacheEngineVersionsCommand , DescribeCacheEngineVersionsCommandInput , DescribeCacheEngineVersionsCommandOutput , } from "./commands/DescribeCacheEngineVersionsCommand" ; import { DescribeCacheParameterGroupsCommand , DescribeCacheParameterGroupsCommandInput , DescribeCacheParameterGroupsCommandOutput , } from "./commands/DescribeCacheParameterGroupsCommand" ; import { DescribeCacheParametersCommand , DescribeCacheParametersCommandInput , DescribeCacheParametersCommandOutput , } from "./commands/DescribeCacheParametersCommand" ; import { DescribeCacheSecurityGroupsCommand , DescribeCacheSecurityGroupsCommandInput , DescribeCacheSecurityGroupsCommandOutput , } from "./commands/DescribeCacheSecurityGroupsCommand" ; import { DescribeCacheSubnetGroupsCommand , DescribeCacheSubnetGroupsCommandInput , DescribeCacheSubnetGroupsCommandOutput , } from "./commands/DescribeCacheSubnetGroupsCommand" ; import { DescribeEngineDefaultParametersCommand , DescribeEngineDefaultParametersCommandInput , DescribeEngineDefaultParametersCommandOutput , } from "./commands/DescribeEngineDefaultParametersCommand" ; import { DescribeEventsCommand , DescribeEventsCommandInput , DescribeEventsCommandOutput , } from "./commands/DescribeEventsCommand" ; import { DescribeGlobalReplicationGroupsCommand , DescribeGlobalReplicationGroupsCommandInput , DescribeGlobalReplicationGroupsCommandOutput , } from "./commands/DescribeGlobalReplicationGroupsCommand" ; import { DescribeReplicationGroupsCommand , DescribeReplicationGroupsCommandInput , DescribeReplicationGroupsCommandOutput , } from "./commands/DescribeReplicationGroupsCommand" ; import { DescribeReservedCacheNodesCommand , DescribeReservedCacheNodesCommandInput , DescribeReservedCacheNodesCommandOutput , } from "./commands/DescribeReservedCacheNodesCommand" ; import { DescribeReservedCacheNodesOfferingsCommand , DescribeReservedCacheNodesOfferingsCommandInput , DescribeReservedCacheNodesOfferingsCommandOutput , } from "./commands/DescribeReservedCacheNodesOfferingsCommand" ; import { DescribeServiceUpdatesCommand , DescribeServiceUpdatesCommandInput , DescribeServiceUpdatesCommandOutput , } from "./commands/DescribeServiceUpdatesCommand" ; import { DescribeSnapshotsCommand , DescribeSnapshotsCommandInput , DescribeSnapshotsCommandOutput , } from "./commands/DescribeSnapshotsCommand" ; import { DescribeUpdateActionsCommand , DescribeUpdateActionsCommandInput , DescribeUpdateActionsCommandOutput , } from "./commands/DescribeUpdateActionsCommand" ; import { DescribeUserGroupsCommand , DescribeUserGroupsCommandInput , DescribeUserGroupsCommandOutput , } from "./commands/DescribeUserGroupsCommand" ; import { DescribeUsersCommand , DescribeUsersCommandInput , DescribeUsersCommandOutput , } from "./commands/DescribeUsersCommand" ; import { DisassociateGlobalReplicationGroupCommand , DisassociateGlobalReplicationGroupCommandInput , DisassociateGlobalReplicationGroupCommandOutput , } from "./commands/DisassociateGlobalReplicationGroupCommand" ; import { FailoverGlobalReplicationGroupCommand , FailoverGlobalReplicationGroupCommandInput , FailoverGlobalReplicationGroupCommandOutput , } from "./commands/FailoverGlobalReplicationGroupCommand" ; import { IncreaseNodeGroupsInGlobalReplicationGroupCommand , IncreaseNodeGroupsInGlobalReplicationGroupCommandInput , IncreaseNodeGroupsInGlobalReplicationGroupCommandOutput , } from "./commands/IncreaseNodeGroupsInGlobalReplicationGroupCommand" ; import { IncreaseReplicaCountCommand , IncreaseReplicaCountCommandInput , IncreaseReplicaCountCommandOutput , } from "./commands/IncreaseReplicaCountCommand" ; import { ListAllowedNodeTypeModificationsCommand , ListAllowedNodeTypeModificationsCommandInput , ListAllowedNodeTypeModificationsCommandOutput , } from "./commands/ListAllowedNodeTypeModificationsCommand" ; import { ListTagsForResourceCommand , ListTagsForResourceCommandInput , ListTagsForResourceCommandOutput , } from "./commands/ListTagsForResourceCommand" ; import { ModifyCacheClusterCommand , ModifyCacheClusterCommandInput , ModifyCacheClusterCommandOutput , } from "./commands/ModifyCacheClusterCommand" ; import { ModifyCacheParameterGroupCommand , ModifyCacheParameterGroupCommandInput , ModifyCacheParameterGroupCommandOutput , } from "./commands/ModifyCacheParameterGroupCommand" ; import { ModifyCacheSubnetGroupCommand , ModifyCacheSubnetGroupCommandInput , ModifyCacheSubnetGroupCommandOutput , } from "./commands/ModifyCacheSubnetGroupCommand" ; import { ModifyGlobalReplicationGroupCommand , ModifyGlobalReplicationGroupCommandInput , ModifyGlobalReplicationGroupCommandOutput , } from "./commands/ModifyGlobalReplicationGroupCommand" ; import { ModifyReplicationGroupCommand , ModifyReplicationGroupCommandInput , ModifyReplicationGroupCommandOutput , } from "./commands/ModifyReplicationGroupCommand" ; import { ModifyReplicationGroupShardConfigurationCommand , ModifyReplicationGroupShardConfigurationCommandInput , ModifyReplicationGroupShardConfigurationCommandOutput , } from "./commands/ModifyReplicationGroupShardConfigurationCommand" ; import { ModifyUserCommand , ModifyUserCommandInput , ModifyUserCommandOutput } from "./commands/ModifyUserCommand" ; import { ModifyUserGroupCommand , ModifyUserGroupCommandInput , ModifyUserGroupCommandOutput , } from "./commands/ModifyUserGroupCommand" ; import { PurchaseReservedCacheNodesOfferingCommand , PurchaseReservedCacheNodesOfferingCommandInput , PurchaseReservedCacheNodesOfferingCommandOutput , } from "./commands/PurchaseReservedCacheNodesOfferingCommand" ; import { RebalanceSlotsInGlobalReplicationGroupCommand , RebalanceSlotsInGlobalReplicationGroupCommandInput , RebalanceSlotsInGlobalReplicationGroupCommandOutput , } from "./commands/RebalanceSlotsInGlobalReplicationGroupCommand" ; import { RebootCacheClusterCommand , RebootCacheClusterCommandInput , RebootCacheClusterCommandOutput , } from "./commands/RebootCacheClusterCommand" ; import { RemoveTagsFromResourceCommand , RemoveTagsFromResourceCommandInput , RemoveTagsFromResourceCommandOutput , } from "./commands/RemoveTagsFromResourceCommand" ; import { ResetCacheParameterGroupCommand , ResetCacheParameterGroupCommandInput , ResetCacheParameterGroupCommandOutput , } from "./commands/ResetCacheParameterGroupCommand" ; import { RevokeCacheSecurityGroupIngressCommand , RevokeCacheSecurityGroupIngressCommandInput , RevokeCacheSecurityGroupIngressCommandOutput , } from "./commands/RevokeCacheSecurityGroupIngressCommand" ; import { StartMigrationCommand , StartMigrationCommandInput , StartMigrationCommandOutput , } from "./commands/StartMigrationCommand" ; import { TestFailoverCommand , TestFailoverCommandInput , TestFailoverCommandOutput , } from "./commands/TestFailoverCommand" ; import { ElastiCacheClient } from "./ElastiCacheClient" ; /**
 * <fullname>Amazon ElastiCache</fullname>
 *         <p>Amazon ElastiCache is a web service that makes it easier to set up, operate,
 *             and scale a distributed cache in the cloud.</p>
 *         <p>With ElastiCache, customers get all of the benefits of a high-performance,
 *             in-memory cache with less of the administrative burden involved in launching and managing a distributed cache.
 *             The service makes setup, scaling,
 *             and cluster failure handling much simpler than in a self-managed cache deployment.</p>
 *         <p>In addition, through integration with Amazon CloudWatch,
 *             customers get enhanced visibility into the key performance statistics
 *             associated with their cache and can receive alarms if a part of their cache runs hot.</p>
 */ export class ElastiCache extends ElastiCacheClient { /**
     * <p>A  tag is a key-value pair where the key and value are case-sensitive.
     *             You can use tags to categorize and track all your ElastiCache resources, with the exception of global replication group. When you add or remove tags on replication groups, those actions will be replicated to all nodes in the replication group.
     *           For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/IAM.ResourceLevelPermissions.html">Resource-level permissions</a>.</p>
     *         <p>
     *             For example, you can use cost-allocation tags to your ElastiCache resources,
     *             Amazon generates a cost allocation report as a comma-separated value (CSV) file
     *             with your usage and costs aggregated by your tags.
     *             You can apply tags that represent business categories (such as cost centers, application names, or owners)
     *             to organize your costs across multiple services.</p>
     *             <p>For more information,
     *             see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Tagging.html">Using Cost Allocation Tags in Amazon ElastiCache</a>
     *             in the <i>ElastiCache User Guide</i>.</p>
     */ public addTagsToResource ( args , options ? ) ; public addTagsToResource ( args , cb ) ; public addTagsToResource ( args , options , cb ) ; public addTagsToResource ( args , optionsOrCb ? , cb ? ) { const command = new AddTagsToResourceCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Allows network ingress to a cache
     *             security group. Applications using ElastiCache must be running on Amazon EC2, and Amazon EC2
     *             security groups are used as the authorization mechanism.</p>
     *         <note>
     *             <p>You cannot authorize ingress from an Amazon EC2 security group in one region to an
     *             ElastiCache cluster in another region.</p>
     *          </note>
     */ public authorizeCacheSecurityGroupIngress ( args , options ? ) ; public authorizeCacheSecurityGroupIngress ( args , cb ) ; public authorizeCacheSecurityGroupIngress ( args , options , cb ) ; public authorizeCacheSecurityGroupIngress ( args , optionsOrCb ? , cb ? ) { const command = new AuthorizeCacheSecurityGroupIngressCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Apply the service update. For more information on service updates and applying them, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/applying-updates.html">Applying Service Updates</a>.</p>
     */ public batchApplyUpdateAction ( args , options ? ) ; public batchApplyUpdateAction ( args , cb ) ; public batchApplyUpdateAction ( args , options , cb ) ; public batchApplyUpdateAction ( args , optionsOrCb ? , cb ? ) { const command = new BatchApplyUpdateActionCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Stop the service update. For more information on service updates and stopping them, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/stopping-self-service-updates.html">Stopping Service Updates</a>.</p>
     */ public batchStopUpdateAction ( args , options ? ) ; public batchStopUpdateAction ( args , cb ) ; public batchStopUpdateAction ( args , options , cb ) ; public batchStopUpdateAction ( args , optionsOrCb ? , cb ? ) { const command = new BatchStopUpdateActionCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Complete the migration of data.</p>
     */ public completeMigration ( args , options ? ) ; public completeMigration ( args , cb ) ; public completeMigration ( args , options , cb ) ; public completeMigration ( args , optionsOrCb ? , cb ? ) { const command = new CompleteMigrationCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Makes a copy of an existing snapshot.</p>
     *
     *         <note>
     *             <p>This operation is valid for Redis only.</p>
     *          </note>
     *
     *         <important>
     *             <p>Users or groups that have permissions to use the <code>CopySnapshot</code> operation
     *                 can create their own Amazon S3 buckets and copy snapshots to it.
     *                 To control access to your snapshots, use an IAM policy to control who has the ability to use
     *                 the <code>CopySnapshot</code> operation.
     *                 For more information about using IAM to control the use of ElastiCache operations, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html">Exporting Snapshots</a>
     *                 and <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/IAM.html">Authentication & Access Control</a>.</p>
     *          </important>
     *
     *         <p>You could receive the following error messages.</p>
     *         <p class="title">
     *             <b>Error Messages</b>
     *          </p>
     *          <ul>
     *             <li>
     *                 <p>
     *                   <b>Error Message:</b>
     *                     The S3 bucket %s is outside of the region.</p>
     *                 <p>
     *                   <b>Solution:</b>
     *                     Create an Amazon S3 bucket in the same region as your snapshot.
     *                     For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-create-s3-bucket">Step 1: Create an Amazon S3 Bucket</a> in the ElastiCache User Guide.</p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <b>Error Message:</b>
     *                     The S3 bucket %s does not exist.</p>
     *                 <p>
     *                   <b>Solution:</b>
     *                     Create an Amazon S3 bucket in the same region as your snapshot.
     *                     For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-create-s3-bucket">Step 1: Create an Amazon S3 Bucket</a> in the ElastiCache User Guide.</p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <b>Error Message:</b>
     *                     The S3 bucket %s is not owned by the authenticated user.</p>
     *                 <p>
     *                   <b>Solution:</b>
     *                     Create an Amazon S3 bucket in the same region as your snapshot.
     *                     For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-create-s3-bucket">Step 1: Create an Amazon S3 Bucket</a> in the ElastiCache User Guide.</p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <b>Error Message:</b>
     *                     The authenticated user does not have sufficient permissions to perform the desired activity.</p>
     *                 <p>
     *                   <b>Solution:</b>
     *                     Contact your system administrator to get the needed permissions.</p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <b>Error Message:</b>
     *                     The S3 bucket %s already contains an object with key %s.</p>
     *                 <p>
     *                   <b>Solution:</b>
     *                     Give the <code>TargetSnapshotName</code> a new and unique value.
     *                     If exporting a snapshot,
     *                     you could alternatively create a new Amazon S3 bucket
     *                     and use this same value for <code>TargetSnapshotName</code>.</p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <b>Error Message: </b>
     *                     ElastiCache has not been granted READ permissions %s on the S3 Bucket.</p>
     *                 <p>
     *                   <b>Solution:</b>
     *                     Add List and Read permissions on the bucket.
     *                 For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-grant-access">Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket</a> in the ElastiCache User Guide.</p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <b>Error Message: </b>
     *                     ElastiCache has not been granted WRITE permissions %s on the S3 Bucket.</p>
     *                 <p>
     *                   <b>Solution:</b>
     *                     Add Upload/Delete permissions on the bucket.
     *                     For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-grant-access">Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket</a> in the ElastiCache User Guide.</p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <b>Error Message: </b>
     *                     ElastiCache has not been granted READ_ACP permissions %s on the S3 Bucket.</p>
     *                 <p>
     *                   <b>Solution:</b>
     *                     Add View Permissions on the bucket.
     *                 For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-grant-access">Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket</a> in the ElastiCache User Guide.</p>
     *             </li>
     *          </ul>
     */ public copySnapshot ( args , options ? ) ; public copySnapshot ( args , cb ) ; public copySnapshot ( args , options , cb ) ; public copySnapshot ( args , optionsOrCb ? , cb ? ) { const command = new CopySnapshotCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Creates a cluster. All nodes in the
     *             cluster run the same protocol-compliant cache engine software, either Memcached
     *             or Redis.</p>
     *         <p>This operation is not supported for Redis (cluster mode enabled) clusters.</p>
     */ public createCacheCluster ( args , options ? ) ; public createCacheCluster ( args , cb ) ; public createCacheCluster ( args , options , cb ) ; public createCacheCluster ( args , optionsOrCb ? , cb ? ) { const command = new CreateCacheClusterCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Creates a new Amazon ElastiCache cache parameter group. An ElastiCache
     *             cache parameter group is a collection of parameters and their values that are applied to all of the nodes
     *             in any cluster or replication group using the CacheParameterGroup.</p>
     *         <p>A newly created CacheParameterGroup is an exact duplicate of the default parameter group
     *             for the CacheParameterGroupFamily. To customize the newly created CacheParameterGroup you can
     *             change the values of specific parameters. For more information, see:</p>
     *         <ul>
     *             <li>
     *                 <p>
     *                   <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheParameterGroup.html">ModifyCacheParameterGroup</a> in the ElastiCache API Reference.</p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ParameterGroups.html">Parameters and Parameter Groups</a> in the ElastiCache User Guide.</p>
     *             </li>
     *          </ul>
     */ public createCacheParameterGroup ( args , options ? ) ; public createCacheParameterGroup ( args , cb ) ; public createCacheParameterGroup ( args , options , cb ) ; public createCacheParameterGroup ( args , optionsOrCb ? , cb ? ) { const command = new CreateCacheParameterGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Creates a new cache security group. Use a
     *             cache security group to control access to one or more clusters.</p>
     *         <p>Cache security groups are only used when you are creating a cluster outside of an Amazon
     *             Virtual Private Cloud (Amazon VPC). If you are creating a cluster inside of a VPC, use a cache
     *             subnet group instead. For more information,
     *             see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSubnetGroup.html">CreateCacheSubnetGroup</a>.</p>
     */ public createCacheSecurityGroup ( args , options ? ) ; public createCacheSecurityGroup ( args , cb ) ; public createCacheSecurityGroup ( args , options , cb ) ; public createCacheSecurityGroup ( args , optionsOrCb ? , cb ? ) { const command = new CreateCacheSecurityGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Creates a new cache subnet group.</p>
     *         <p>Use this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud (Amazon VPC).</p>
     */ public createCacheSubnetGroup ( args , options ? ) ; public createCacheSubnetGroup ( args , cb ) ; public createCacheSubnetGroup ( args , options , cb ) ; public createCacheSubnetGroup ( args , optionsOrCb ? , cb ? ) { const command = new CreateCacheSubnetGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Global Datastore for Redis offers fully managed, fast,
     *             reliable and secure cross-region replication.
     *             Using Global Datastore for Redis, you can create cross-region
     *             read replica clusters for ElastiCache for Redis to enable low-latency reads
     *             and disaster recovery across regions. For more information,
     *
     *             see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastore.html">Replication Across Regions Using Global Datastore</a>. </p>
     *
     *          <ul>
     *             <li>
     *                <p>The <b>GlobalReplicationGroupIdSuffix</b> is the name of the Global datastore.</p>
     *             </li>
     *             <li>
     *                <p>The <b>PrimaryReplicationGroupId</b> represents the name of the primary cluster that accepts writes and will replicate updates to the secondary cluster.</p>
     *             </li>
     *          </ul>
     */ public createGlobalReplicationGroup ( args , options ? ) ; public createGlobalReplicationGroup ( args , cb ) ; public createGlobalReplicationGroup ( args , options , cb ) ; public createGlobalReplicationGroup ( args , optionsOrCb ? , cb ? ) { const command = new CreateGlobalReplicationGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Creates a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group.</p>
     *         <p>This API can be used to create a standalone regional replication group or a secondary replication group associated with a Global datastore.</p>
     *         <p>A Redis (cluster mode disabled) replication group is a collection of clusters,
     *             where one of the clusters is a read/write primary and the others are read-only replicas.
     *             Writes to the primary are asynchronously propagated to the replicas.</p>
     *         <p>A Redis cluster-mode enabled cluster is comprised of from 1 to 90 shards (API/CLI: node groups).
     *             Each shard has a primary node and up to 5 read-only replica nodes. The configuration can range from 90 shards and 0 replicas to 15 shards and 5 replicas, which is the maximum number or replicas allowed.
     *
     *         </p>
     *         <p>The node or shard limit can be increased to a maximum of 500 per cluster if the Redis engine version is 5.0.6 or higher. For example, you can choose to configure a 500 node cluster that ranges between
     *             83 shards (one primary and 5 replicas per shard) and 500 shards (single primary and no replicas). Make sure there are enough available IP addresses to accommodate the increase.
     *             Common pitfalls include the subnets in the subnet group have too small a CIDR range or the subnets are shared and heavily used by other clusters. For more information, see
     *             <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.Creating.html">Creating a Subnet Group</a>. For versions below 5.0.6,
     *             the limit is 250 per cluster.</p>
     *         <p>To request a limit increase, see
     *             <a href="https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html">Amazon Service Limits</a>
     *             and choose the limit type <b>Nodes per cluster per instance type</b>. </p>
     *         <p>When a Redis (cluster mode disabled) replication group has been successfully created,
     *             you can add one or more read replicas to it, up to a total of 5 read replicas.
     *             If you need to increase or decrease the number of node groups (console: shards),
     *             you can avail yourself of ElastiCache for Redis' scaling. For more information,
     *             see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Scaling.html">Scaling ElastiCache for Redis Clusters</a> in the <i>ElastiCache User Guide</i>.</p>
     *
     *
     *         <note>
     *             <p>This operation is valid for Redis only.</p>
     *          </note>
     */ public createReplicationGroup ( args , options ? ) ; public createReplicationGroup ( args , cb ) ; public createReplicationGroup ( args , options , cb ) ; public createReplicationGroup ( args , optionsOrCb ? , cb ? ) { const command = new CreateReplicationGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Creates a copy of an entire cluster or replication group at a
     *             specific moment in time.</p>
     *
     *         <note>
     *             <p>This operation is valid for Redis only.</p>
     *          </note>
     */ public createSnapshot ( args , options ? ) ; public createSnapshot ( args , cb ) ; public createSnapshot ( args , options , cb ) ; public createSnapshot ( args , optionsOrCb ? , cb ? ) { const command = new CreateSnapshotCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>For Redis engine version 6.0 onwards: Creates a Redis user. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html">Using Role Based Access Control (RBAC)</a>.</p>
     */ public createUser ( args , options ? ) ; public createUser ( args , cb ) ; public createUser ( args , options , cb ) ; public createUser ( args , optionsOrCb ? , cb ? ) { const command = new CreateUserCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>For Redis engine version 6.0 onwards: Creates a Redis user group. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html">Using Role Based Access Control (RBAC)</a>
     *          </p>
     */ public createUserGroup ( args , options ? ) ; public createUserGroup ( args , cb ) ; public createUserGroup ( args , options , cb ) ; public createUserGroup ( args , optionsOrCb ? , cb ? ) { const command = new CreateUserGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Decreases the number of node groups in a Global datastore</p>
     */ public decreaseNodeGroupsInGlobalReplicationGroup ( args , options ? ) ; public decreaseNodeGroupsInGlobalReplicationGroup ( args , cb ) ; public decreaseNodeGroupsInGlobalReplicationGroup ( args , options , cb ) ; public decreaseNodeGroupsInGlobalReplicationGroup ( args , optionsOrCb ? , cb ? ) { const command = new DecreaseNodeGroupsInGlobalReplicationGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Dynamically decreases the number of replicas in a Redis (cluster mode disabled) replication group or the number of
     *             replica nodes in one or more node groups (shards) of a Redis (cluster mode enabled) replication group. This operation
     *             is performed with no cluster down time.</p>
     */ public decreaseReplicaCount ( args , options ? ) ; public decreaseReplicaCount ( args , cb ) ; public decreaseReplicaCount ( args , options , cb ) ; public decreaseReplicaCount ( args , optionsOrCb ? , cb ? ) { const command = new DecreaseReplicaCountCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Deletes a previously provisioned cluster.
     *                 <code>DeleteCacheCluster</code> deletes all associated cache nodes, node endpoints and the
     *             cluster itself. When you receive a successful response from this operation,
     *             Amazon ElastiCache immediately begins deleting the cluster; you cannot cancel or revert
     *             this operation.</p>
     *         <p>This operation is not valid for:</p>
     *         <ul>
     *             <li>
     *                 <p>Redis (cluster mode enabled) clusters</p>
     *             </li>
     *             <li>
     *                 <p>Redis (cluster mode disabled) clusters</p>
     *             </li>
     *             <li>
     *
     *                 <p>A cluster that is the last read replica of a replication group</p>
     *             </li>
     *             <li>
     *                 <p>A cluster that is the primary node of a replication group</p>
     *             </li>
     *             <li>
     *                 <p>A node group (shard) that has Multi-AZ mode enabled</p>
     *             </li>
     *             <li>
     *                 <p>A cluster from a Redis (cluster mode enabled) replication group</p>
     *             </li>
     *             <li>
     *                 <p>A cluster that is not in the <code>available</code> state</p>
     *             </li>
     *          </ul>
     */ public deleteCacheCluster ( args , options ? ) ; public deleteCacheCluster ( args , cb ) ; public deleteCacheCluster ( args , options , cb ) ; public deleteCacheCluster ( args , optionsOrCb ? , cb ? ) { const command = new DeleteCacheClusterCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Deletes the specified cache parameter
     *             group. You cannot delete a cache parameter group if it is associated with any cache
     *             clusters. You cannot delete the default cache parameter groups in your account.</p>
     */ public deleteCacheParameterGroup ( args , options ? ) ; public deleteCacheParameterGroup ( args , cb ) ; public deleteCacheParameterGroup ( args , options , cb ) ; public deleteCacheParameterGroup ( args , optionsOrCb ? , cb ? ) { const command = new DeleteCacheParameterGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Deletes a cache security group.</p>
     *         <note>
     *             <p>You cannot delete a cache security group if it is associated with any clusters.</p>
     *          </note>
     */ public deleteCacheSecurityGroup ( args , options ? ) ; public deleteCacheSecurityGroup ( args , cb ) ; public deleteCacheSecurityGroup ( args , options , cb ) ; public deleteCacheSecurityGroup ( args , optionsOrCb ? , cb ? ) { const command = new DeleteCacheSecurityGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Deletes a cache subnet group.</p>
     *         <note>
     *             <p>You cannot delete a default cache subnet group or one that is associated with any clusters.</p>
     *          </note>
     */ public deleteCacheSubnetGroup ( args , options ? ) ; public deleteCacheSubnetGroup ( args , cb ) ; public deleteCacheSubnetGroup ( args , options , cb ) ; public deleteCacheSubnetGroup ( args , optionsOrCb ? , cb ? ) { const command = new DeleteCacheSubnetGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Deleting a Global datastore is a two-step process: </p>
     *             <ul>
     *             <li>
     *                <p>First, you must <a>DisassociateGlobalReplicationGroup</a> to remove the secondary clusters in the Global datastore.</p>
     *             </li>
     *             <li>
     *                <p>Once the Global datastore contains only the primary cluster, you can use the <code>DeleteGlobalReplicationGroup</code> API to delete the Global datastore while retainining the primary cluster using <code>RetainPrimaryReplicationGroup=true</code>.</p>
     *             </li>
     *          </ul>
     *
     *
     *           <p>Since the Global Datastore has only a primary cluster, you can delete the Global Datastore
     *              while retaining the primary by setting <code>RetainPrimaryReplicationGroup=true</code>. The primary cluster is never deleted when deleting a
     *           Global Datastore. It can only be deleted when it no longer is associated with any Global Datastore.</p>
     *
     *         <p>When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the selected resources;
     *             you cannot cancel or revert this operation.</p>
     */ public deleteGlobalReplicationGroup ( args , options ? ) ; public deleteGlobalReplicationGroup ( args , cb ) ; public deleteGlobalReplicationGroup ( args , options , cb ) ; public deleteGlobalReplicationGroup ( args , optionsOrCb ? , cb ? ) { const command = new DeleteGlobalReplicationGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Deletes an existing replication group.
     *             By default, this operation deletes the entire replication group, including the primary/primaries and all of the read replicas.
     *             If the replication group has only one primary,
     *             you can optionally delete only the read replicas, while retaining the primary by setting <code>RetainPrimaryCluster=true</code>.</p>
     *         <p>When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the selected resources;
     *             you cannot cancel or revert this operation.</p>
     *         <note>
     *             <p>This operation is valid for Redis only.</p>
     *          </note>
     */ public deleteReplicationGroup ( args , options ? ) ; public deleteReplicationGroup ( args , cb ) ; public deleteReplicationGroup ( args , options , cb ) ; public deleteReplicationGroup ( args , optionsOrCb ? , cb ? ) { const command = new DeleteReplicationGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Deletes an existing snapshot. When you receive a
     *             successful response from this operation, ElastiCache immediately begins deleting the snapshot;
     *             you cannot cancel or revert this operation.</p>
     *
     *         <note>
     *             <p>This operation is valid for Redis only.</p>
     *          </note>
     */ public deleteSnapshot ( args , options ? ) ; public deleteSnapshot ( args , cb ) ; public deleteSnapshot ( args , options , cb ) ; public deleteSnapshot ( args , optionsOrCb ? , cb ? ) { const command = new DeleteSnapshotCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>For Redis engine version 6.0 onwards: Deletes a user. The user will be removed from all user groups and in turn removed from all replication groups. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html">Using Role Based Access Control (RBAC)</a>. </p>
     */ public deleteUser ( args , options ? ) ; public deleteUser ( args , cb ) ; public deleteUser ( args , options , cb ) ; public deleteUser ( args , optionsOrCb ? , cb ? ) { const command = new DeleteUserCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>For Redis engine version 6.0 onwards: Deletes a user group. The user group must first be disassociated from the replication group before it can be deleted. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html">Using Role Based Access Control (RBAC)</a>. </p>
     */ public deleteUserGroup ( args , options ? ) ; public deleteUserGroup ( args , cb ) ; public deleteUserGroup ( args , options , cb ) ; public deleteUserGroup ( args , optionsOrCb ? , cb ? ) { const command = new DeleteUserGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Returns information about all provisioned
     *             clusters if no cluster identifier is specified, or about a specific cache
     *             cluster if a cluster identifier is supplied.</p>
     *         <p>By default, abbreviated information about the clusters is returned. You can
     *             use the optional <i>ShowCacheNodeInfo</i> flag to retrieve detailed information about the
     *             cache nodes associated with the clusters. These details include the DNS address
     *             and port for the cache node endpoint.</p>
     *         <p>If the cluster is in the <i>creating</i> state, only cluster-level information is displayed
     *             until all of the nodes are successfully provisioned.</p>
     *         <p>If the cluster is in the <i>deleting</i> state, only cluster-level information is displayed.</p>
     *         <p>If cache nodes are currently being added to the cluster, node endpoint information
     *             and creation time for the additional nodes are not displayed until they are
     *             completely provisioned. When the cluster state is <i>available</i>, the cluster is
     *             ready for use.</p>
     *         <p>If cache nodes are currently being removed from the cluster, no endpoint information
     *             for the removed nodes is displayed.</p>
     */ public describeCacheClusters ( args , options ? ) ; public describeCacheClusters ( args , cb ) ; public describeCacheClusters ( args , options , cb ) ; public describeCacheClusters ( args , optionsOrCb ? , cb ? ) { const command = new DescribeCacheClustersCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Returns a list of the available cache
     *             engines and their versions.</p>
     */ public describeCacheEngineVersions ( args , options ? ) ; public describeCacheEngineVersions ( args , cb ) ; public describeCacheEngineVersions ( args , options , cb ) ; public describeCacheEngineVersions ( args , optionsOrCb ? , cb ? ) { const command = new DescribeCacheEngineVersionsCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Returns a list of cache parameter group
     *             descriptions. If a cache parameter group name is specified, the list contains only
     *             the descriptions for that group.</p>
     */ public describeCacheParameterGroups ( args , options ? ) ; public describeCacheParameterGroups ( args , cb ) ; public describeCacheParameterGroups ( args , options , cb ) ; public describeCacheParameterGroups ( args , optionsOrCb ? , cb ? ) { const command = new DescribeCacheParameterGroupsCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Returns the detailed parameter list for a
     *             particular cache parameter group.</p>
     */ public describeCacheParameters ( args , options ? ) ; public describeCacheParameters ( args , cb ) ; public describeCacheParameters ( args , options , cb ) ; public describeCacheParameters ( args , optionsOrCb ? , cb ? ) { const command = new DescribeCacheParametersCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Returns a list of cache security group
     *             descriptions. If a cache security group name is specified, the list contains only
     *             the description of that group. This applicable only when you have ElastiCache in Classic setup
     *         </p>
     */ public describeCacheSecurityGroups ( args , options ? ) ; public describeCacheSecurityGroups ( args , cb ) ; public describeCacheSecurityGroups ( args , options , cb ) ; public describeCacheSecurityGroups ( args , optionsOrCb ? , cb ? ) { const command = new DescribeCacheSecurityGroupsCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Returns a list of cache subnet group
     *             descriptions. If a subnet group name is specified, the list  contains only the
     *             description of that group. This is applicable only when you have ElastiCache in VPC setup. All ElastiCache clusters now launch in VPC by default.
     *         </p>
     */ public describeCacheSubnetGroups ( args , options ? ) ; public describeCacheSubnetGroups ( args , cb ) ; public describeCacheSubnetGroups ( args , options , cb ) ; public describeCacheSubnetGroups ( args , optionsOrCb ? , cb ? ) { const command = new DescribeCacheSubnetGroupsCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Returns the default engine and
     *             system parameter information for the specified cache engine.</p>
     */ public describeEngineDefaultParameters ( args , options ? ) ; public describeEngineDefaultParameters ( args , cb ) ; public describeEngineDefaultParameters ( args , options , cb ) ; public describeEngineDefaultParameters ( args , optionsOrCb ? , cb ? ) { const command = new DescribeEngineDefaultParametersCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Returns events related to clusters, cache
     *             security groups, and cache parameter groups. You can obtain events specific to a
     *             particular cluster, cache security group, or cache parameter group by providing
     *             the name as a parameter.</p>
     *         <p>By default, only the events occurring within the last hour are returned;
     *             however, you can retrieve up to 14 days' worth of events if necessary.</p>
     */ public describeEvents ( args , options ? ) ; public describeEvents ( args , cb ) ; public describeEvents ( args , options , cb ) ; public describeEvents ( args , optionsOrCb ? , cb ? ) { const command = new DescribeEventsCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Returns information about a particular global replication group. If no identifier is specified, returns information about all Global datastores. </p>
     */ public describeGlobalReplicationGroups ( args , options ? ) ; public describeGlobalReplicationGroups ( args , cb ) ; public describeGlobalReplicationGroups ( args , options , cb ) ; public describeGlobalReplicationGroups ( args , optionsOrCb ? , cb ? ) { const command = new DescribeGlobalReplicationGroupsCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Returns information about a particular
     *             replication group. If no identifier is specified, <code>DescribeReplicationGroups</code>
     *             returns information about all replication groups.</p>
     *         <note>
     *             <p>This operation is valid for Redis only.</p>
     *          </note>
     */ public describeReplicationGroups ( args , options ? ) ; public describeReplicationGroups ( args , cb ) ; public describeReplicationGroups ( args , options , cb ) ; public describeReplicationGroups ( args , optionsOrCb ? , cb ? ) { const command = new DescribeReplicationGroupsCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Returns information about reserved cache
     *             nodes for this account, or about a specified reserved cache node.</p>
     */ public describeReservedCacheNodes ( args , options ? ) ; public describeReservedCacheNodes ( args , cb ) ; public describeReservedCacheNodes ( args , options , cb ) ; public describeReservedCacheNodes ( args , optionsOrCb ? , cb ? ) { const command = new DescribeReservedCacheNodesCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Lists available reserved cache
     *             node offerings.</p>
     */ public describeReservedCacheNodesOfferings ( args , options ? ) ; public describeReservedCacheNodesOfferings ( args , cb ) ; public describeReservedCacheNodesOfferings ( args , options , cb ) ; public describeReservedCacheNodesOfferings ( args , optionsOrCb ? , cb ? ) { const command = new DescribeReservedCacheNodesOfferingsCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Returns details of the service updates</p>
     */ public describeServiceUpdates ( args , options ? ) ; public describeServiceUpdates ( args , cb ) ; public describeServiceUpdates ( args , options , cb ) ; public describeServiceUpdates ( args , optionsOrCb ? , cb ? ) { const command = new DescribeServiceUpdatesCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Returns information about cluster or replication group snapshots.
     *             By default, <code>DescribeSnapshots</code> lists all of your snapshots; it can optionally
     *             describe a single snapshot, or just the snapshots associated with a particular cache
     *             cluster.</p>
     *
     *         <note>
     *             <p>This operation is valid for Redis only.</p>
     *          </note>
     */ public describeSnapshots ( args , options ? ) ; public describeSnapshots ( args , cb ) ; public describeSnapshots ( args , options , cb ) ; public describeSnapshots ( args , optionsOrCb ? , cb ? ) { const command = new DescribeSnapshotsCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Returns details of the update actions </p>
     */ public describeUpdateActions ( args , options ? ) ; public describeUpdateActions ( args , cb ) ; public describeUpdateActions ( args , options , cb ) ; public describeUpdateActions ( args , optionsOrCb ? , cb ? ) { const command = new DescribeUpdateActionsCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Returns a list of user groups.</p>
     */ public describeUserGroups ( args , options ? ) ; public describeUserGroups ( args , cb ) ; public describeUserGroups ( args , options , cb ) ; public describeUserGroups ( args , optionsOrCb ? , cb ? ) { const command = new DescribeUserGroupsCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Returns a list of users.</p>
     */ public describeUsers ( args , options ? ) ; public describeUsers ( args , cb ) ; public describeUsers ( args , options , cb ) ; public describeUsers ( args , optionsOrCb ? , cb ? ) { const command = new DescribeUsersCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Remove a secondary cluster from the Global datastore using the Global datastore name. The secondary cluster will no longer receive updates from the primary cluster, but will remain as a standalone cluster in that Amazon region.</p>
     */ public disassociateGlobalReplicationGroup ( args , options ? ) ; public disassociateGlobalReplicationGroup ( args , cb ) ; public disassociateGlobalReplicationGroup ( args , options , cb ) ; public disassociateGlobalReplicationGroup ( args , optionsOrCb ? , cb ? ) { const command = new DisassociateGlobalReplicationGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Used to failover the primary region to a selected secondary region. The selected secondary region will become primary, and all other clusters will become secondary.</p>
     */ public failoverGlobalReplicationGroup ( args , options ? ) ; public failoverGlobalReplicationGroup ( args , cb ) ; public failoverGlobalReplicationGroup ( args , options , cb ) ; public failoverGlobalReplicationGroup ( args , optionsOrCb ? , cb ? ) { const command = new FailoverGlobalReplicationGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Increase the number of node groups in the Global datastore</p>
     */ public increaseNodeGroupsInGlobalReplicationGroup ( args , options ? ) ; public increaseNodeGroupsInGlobalReplicationGroup ( args , cb ) ; public increaseNodeGroupsInGlobalReplicationGroup ( args , options , cb ) ; public increaseNodeGroupsInGlobalReplicationGroup ( args , optionsOrCb ? , cb ? ) { const command = new IncreaseNodeGroupsInGlobalReplicationGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Dynamically increases the number of replicas in a Redis (cluster mode disabled) replication group or the number of
     *             replica nodes in one or more node groups (shards) of a Redis (cluster mode enabled) replication group. This operation
     *             is performed with no cluster down time.</p>
     */ public increaseReplicaCount ( args , options ? ) ; public increaseReplicaCount ( args , cb ) ; public increaseReplicaCount ( args , options , cb ) ; public increaseReplicaCount ( args , optionsOrCb ? , cb ? ) { const command = new IncreaseReplicaCountCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Lists all available node types that you
     *             can scale your Redis cluster's or replication group's current node type.</p>
     *
     *         <p>When you use the <code>ModifyCacheCluster</code> or <code>ModifyReplicationGroup</code> operations to
     *             scale your cluster or replication group, the value of the <code>CacheNodeType</code> parameter
     *             must be one of the node types returned by this operation.</p>
     */ public listAllowedNodeTypeModifications ( args , options ? ) ; public listAllowedNodeTypeModifications ( args , cb ) ; public listAllowedNodeTypeModifications ( args , options , cb ) ; public listAllowedNodeTypeModifications ( args , optionsOrCb ? , cb ? ) { const command = new ListAllowedNodeTypeModificationsCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Lists all tags currently on a  named resource.</p>
     *          <p>    A  tag is a key-value pair where the key and value are case-sensitive.
     *             You can use tags to categorize and track all your ElastiCache resources, with the exception of global replication group. When you add or remove tags on replication groups, those actions will be replicated to all nodes in the replication group.
     *      For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/IAM.ResourceLevelPermissions.html">Resource-level permissions</a>.</p>
     *
     *         <p>If the cluster is not in the <i>available</i> state, <code>ListTagsForResource</code>
     *             returns an error.</p>
     */ public listTagsForResource ( args , options ? ) ; public listTagsForResource ( args , cb ) ; public listTagsForResource ( args , options , cb ) ; public listTagsForResource ( args , optionsOrCb ? , cb ? ) { const command = new ListTagsForResourceCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Modifies the settings for a cluster. You
     *             can use this operation to change one or more cluster configuration parameters by
     *             specifying the parameters and the new values.</p>
     */ public modifyCacheCluster ( args , options ? ) ; public modifyCacheCluster ( args , cb ) ; public modifyCacheCluster ( args , options , cb ) ; public modifyCacheCluster ( args , optionsOrCb ? , cb ? ) { const command = new ModifyCacheClusterCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Modifies the parameters of a cache
     *             parameter group. You can modify up to 20 parameters in a single request by submitting a
     *             list parameter name and value pairs.</p>
     */ public modifyCacheParameterGroup ( args , options ? ) ; public modifyCacheParameterGroup ( args , cb ) ; public modifyCacheParameterGroup ( args , options , cb ) ; public modifyCacheParameterGroup ( args , optionsOrCb ? , cb ? ) { const command = new ModifyCacheParameterGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Modifies an existing cache subnet group.</p>
     */ public modifyCacheSubnetGroup ( args , options ? ) ; public modifyCacheSubnetGroup ( args , cb ) ; public modifyCacheSubnetGroup ( args , options , cb ) ; public modifyCacheSubnetGroup ( args , optionsOrCb ? , cb ? ) { const command = new ModifyCacheSubnetGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Modifies the settings for a Global datastore.</p>
     */ public modifyGlobalReplicationGroup ( args , options ? ) ; public modifyGlobalReplicationGroup ( args , cb ) ; public modifyGlobalReplicationGroup ( args , options , cb ) ; public modifyGlobalReplicationGroup ( args , optionsOrCb ? , cb ? ) { const command = new ModifyGlobalReplicationGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Modifies the settings for a replication group.</p>
     *
     *         <ul>
     *             <li>
     *                 <p>
     *                   <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/scaling-redis-cluster-mode-enabled.html">Scaling for Amazon ElastiCache for Redis (cluster mode enabled)</a>
     *                     in the ElastiCache User Guide</p>
     *             </li>
     *             <li>
     *                 <p>
     *                   <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroupShardConfiguration.html">ModifyReplicationGroupShardConfiguration</a>
     *                     in the ElastiCache API Reference</p>
     *             </li>
     *          </ul>
     *         <note>
     *             <p>This operation is valid for Redis only.</p>
     *          </note>
     */ public modifyReplicationGroup ( args , options ? ) ; public modifyReplicationGroup ( args , cb ) ; public modifyReplicationGroup ( args , options , cb ) ; public modifyReplicationGroup ( args , optionsOrCb ? , cb ? ) { const command = new ModifyReplicationGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Modifies a replication group's shards (node groups) by allowing you to
     *             add shards, remove shards, or rebalance the keyspaces among existing shards.</p>
     */ public modifyReplicationGroupShardConfiguration ( args , options ? ) ; public modifyReplicationGroupShardConfiguration ( args , cb ) ; public modifyReplicationGroupShardConfiguration ( args , options , cb ) ; public modifyReplicationGroupShardConfiguration ( args , optionsOrCb ? , cb ? ) { const command = new ModifyReplicationGroupShardConfigurationCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Changes user password(s) and/or access string.</p>
     */ public modifyUser ( args , options ? ) ; public modifyUser ( args , cb ) ; public modifyUser ( args , options , cb ) ; public modifyUser ( args , optionsOrCb ? , cb ? ) { const command = new ModifyUserCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Changes the list of users that belong to the user group.</p>
     */ public modifyUserGroup ( args , options ? ) ; public modifyUserGroup ( args , cb ) ; public modifyUserGroup ( args , options , cb ) ; public modifyUserGroup ( args , optionsOrCb ? , cb ? ) { const command = new ModifyUserGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Allows you to purchase a reserved
     *             cache node offering. Reserved nodes are not eligible for cancellation and are non-refundable. For more information,
     *             see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/reserved-nodes.html">Managing Costs with Reserved Nodes</a> for Redis or
     *             <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/reserved-nodes.html">Managing Costs with Reserved Nodes</a> for Memcached.</p>
     */ public purchaseReservedCacheNodesOffering ( args , options ? ) ; public purchaseReservedCacheNodesOffering ( args , cb ) ; public purchaseReservedCacheNodesOffering ( args , options , cb ) ; public purchaseReservedCacheNodesOffering ( args , optionsOrCb ? , cb ? ) { const command = new PurchaseReservedCacheNodesOfferingCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Redistribute slots to ensure uniform distribution across existing shards in the cluster.</p>
     */ public rebalanceSlotsInGlobalReplicationGroup ( args , options ? ) ; public rebalanceSlotsInGlobalReplicationGroup ( args , cb ) ; public rebalanceSlotsInGlobalReplicationGroup ( args , options , cb ) ; public rebalanceSlotsInGlobalReplicationGroup ( args , optionsOrCb ? , cb ? ) { const command = new RebalanceSlotsInGlobalReplicationGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Reboots some, or all, of the cache nodes
     *             within a provisioned cluster. This operation applies any modified cache parameter
     *             groups to the cluster. The reboot operation takes place as soon as possible, and
     *             results in a momentary outage to the cluster. During the reboot, the cluster
     *             status is set to REBOOTING.</p>
     *         <p>The reboot causes the contents of the cache (for each cache node being rebooted) to be lost.</p>
     *         <p>When the reboot is complete, a cluster event is created.</p>
     *
     *         <p>Rebooting a cluster is currently supported on Memcached and Redis (cluster mode disabled) clusters.
     *             Rebooting is not supported on Redis (cluster mode enabled) clusters.</p>
     *
     *         <p>If you make changes to parameters that require a Redis (cluster mode enabled) cluster reboot for the changes to be applied,
     *             see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.Rebooting.html">Rebooting a Cluster</a> for an alternate process.</p>
     */ public rebootCacheCluster ( args , options ? ) ; public rebootCacheCluster ( args , cb ) ; public rebootCacheCluster ( args , options , cb ) ; public rebootCacheCluster ( args , optionsOrCb ? , cb ? ) { const command = new RebootCacheClusterCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Removes the tags identified by the <code>TagKeys</code>
     *             list from the named resource. A  tag is a key-value pair where the key and value are case-sensitive.
     *             You can use tags to categorize and track all your ElastiCache resources, with the exception of global replication group. When you add or remove tags on replication groups, those actions will be replicated to all nodes in the replication group.
     *         For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/IAM.ResourceLevelPermissions.html">Resource-level permissions</a>.</p>
     */ public removeTagsFromResource ( args , options ? ) ; public removeTagsFromResource ( args , cb ) ; public removeTagsFromResource ( args , options , cb ) ; public removeTagsFromResource ( args , optionsOrCb ? , cb ? ) { const command = new RemoveTagsFromResourceCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Modifies the parameters of a cache
     *             parameter group to the engine or system default value. You can reset specific parameters
     *             by submitting a list of parameter names. To reset the entire cache parameter group,
     *             specify the <code>ResetAllParameters</code> and <code>CacheParameterGroupName</code> parameters.</p>
     */ public resetCacheParameterGroup ( args , options ? ) ; public resetCacheParameterGroup ( args , cb ) ; public resetCacheParameterGroup ( args , options , cb ) ; public resetCacheParameterGroup ( args , optionsOrCb ? , cb ? ) { const command = new ResetCacheParameterGroupCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Revokes ingress from a cache security group.
     *             Use this operation to disallow access from an Amazon EC2 security group
     *             that had been previously authorized.</p>
     */ public revokeCacheSecurityGroupIngress ( args , options ? ) ; public revokeCacheSecurityGroupIngress ( args , cb ) ; public revokeCacheSecurityGroupIngress ( args , options , cb ) ; public revokeCacheSecurityGroupIngress ( args , optionsOrCb ? , cb ? ) { const command = new RevokeCacheSecurityGroupIngressCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Start the migration of data.</p>
     */ public startMigration ( args , options ? ) ; public startMigration ( args , cb ) ; public startMigration ( args , options , cb ) ; public startMigration ( args , optionsOrCb ? , cb ? ) { const command = new StartMigrationCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Represents the input of a <code>TestFailover</code> operation which test automatic failover on
     *             a specified node group (called shard in the console) in a replication group (called cluster in the console).</p>
     *          <p>This API is designed for testing the behavior of your application in case of ElastiCache failover. It is not designed to be an operational tool
     *            for initiating a failover to overcome a problem you may have with the cluster. Moreover, in certain conditions such as large-scale operational events, Amazon may block this API. </p>
     *         <p class="title">
     *             <b>Note the following</b>
     *          </p>
     *          <ul>
     *             <li>
     *                 <p>A customer can use this operation to test automatic failover on up to 5 shards (called node groups in the ElastiCache API and Amazon CLI)
     *                     in any rolling 24-hour period.</p>
     *             </li>
     *             <li>
     *                 <p>If calling this operation on shards in different clusters (called replication groups in the API and CLI), the calls can be made concurrently.</p>
     *                 <p> </p>
     *             </li>
     *             <li>
     *                 <p>If calling this operation multiple times on different shards in the same Redis (cluster mode enabled) replication group,
     *                     the first node replacement must complete before a subsequent call can be made.</p>
     *             </li>
     *             <li>
     *                 <p>To determine whether the node replacement is complete you can check Events using the Amazon ElastiCache console,
     *                     the Amazon CLI, or the ElastiCache API.
     *                     Look for the following automatic failover related events, listed here in order of occurrance:</p>
     *                 <ol>
     *                   <li>
     *                         <p>Replication group message: <code>Test Failover API called for node group <node-group-id></code>
     *                      </p>
     *                   </li>
     *                   <li>
     *                         <p>Cache cluster message: <code>Failover from primary node <primary-node-id> to replica node <node-id> completed</code>
     *                      </p>
     *                   </li>
     *                   <li>
     *                         <p>Replication group message: <code>Failover from primary node <primary-node-id> to replica node <node-id> completed</code>
     *                      </p>
     *                   </li>
     *                   <li>
     *                         <p>Cache cluster message: <code>Recovering cache nodes <node-id></code>
     *                      </p>
     *                   </li>
     *                   <li>
     *                         <p>Cache cluster message: <code>Finished recovery for cache nodes <node-id></code>
     *                      </p>
     *                   </li>
     *                </ol>
     *
     *                 <p>For more information see:</p>
     *                 <ul>
     *                   <li>
     *                         <p>
     *                         <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ECEvents.Viewing.html">Viewing ElastiCache Events</a>
     *                             in the <i>ElastiCache User Guide</i>
     *                      </p>
     *                   </li>
     *                   <li>
     *                         <p>
     *                         <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeEvents.html">DescribeEvents</a> in the ElastiCache API Reference</p>
     *                   </li>
     *                </ul>
     *             </li>
     *          </ul>
     *
     *         <p>Also see, <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html#auto-failover-test">Testing Multi-AZ </a> in the <i>ElastiCache User Guide</i>.</p>
     */ public testFailover ( args , options ? ) ; public testFailover ( args , cb ) ; public testFailover ( args , options , cb ) ; public testFailover ( args , optionsOrCb ? , cb ? ) { const command = new TestFailoverCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } }