/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include namespace Aws { namespace ElastiCache { /** * Amazon ElastiCache

Amazon ElastiCache is a web service * that makes it easier to set up, operate, and scale a distributed cache in the * cloud.

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.

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.

*/ class AWS_ELASTICACHE_API ElastiCacheClient : public Aws::Client::AWSXMLClient, public Aws::Client::ClientWithAsyncTemplateMethods { public: typedef Aws::Client::AWSXMLClient BASECLASS; static const char* SERVICE_NAME; static const char* ALLOCATION_TAG; typedef ElastiCacheClientConfiguration ClientConfigurationType; typedef ElastiCacheEndpointProvider EndpointProviderType; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ ElastiCacheClient(const Aws::ElastiCache::ElastiCacheClientConfiguration& clientConfiguration = Aws::ElastiCache::ElastiCacheClientConfiguration(), std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG)); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ ElastiCacheClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::ElastiCache::ElastiCacheClientConfiguration& clientConfiguration = Aws::ElastiCache::ElastiCacheClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ ElastiCacheClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::ElastiCache::ElastiCacheClientConfiguration& clientConfiguration = Aws::ElastiCache::ElastiCacheClientConfiguration()); /* Legacy constructors due deprecation */ /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ ElastiCacheClient(const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ ElastiCacheClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ ElastiCacheClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~ElastiCacheClient(); /** * Converts any request object to a presigned URL with the GET method, using region for the signer and a timeout of 15 minutes. */ Aws::String ConvertRequestToPresignedUrl(const Aws::AmazonSerializableWebServiceRequest& requestToConvert, const char* region) const; /** *

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 Resource-level * permissions.

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.

For more information, see Using * Cost Allocation Tags in Amazon ElastiCache in the ElastiCache User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::AddTagsToResourceOutcome AddTagsToResource(const Model::AddTagsToResourceRequest& request) const; /** * A Callable wrapper for AddTagsToResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::AddTagsToResourceOutcomeCallable AddTagsToResourceCallable(const AddTagsToResourceRequestT& request) const { return SubmitCallable(&ElastiCacheClient::AddTagsToResource, request); } /** * An Async wrapper for AddTagsToResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void AddTagsToResourceAsync(const AddTagsToResourceRequestT& request, const AddTagsToResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::AddTagsToResource, request, handler, context); } /** *

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.

You cannot authorize ingress * from an Amazon EC2 security group in one region to an ElastiCache cluster in * another region.

See Also:

AWS * API Reference

*/ virtual Model::AuthorizeCacheSecurityGroupIngressOutcome AuthorizeCacheSecurityGroupIngress(const Model::AuthorizeCacheSecurityGroupIngressRequest& request) const; /** * A Callable wrapper for AuthorizeCacheSecurityGroupIngress that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::AuthorizeCacheSecurityGroupIngressOutcomeCallable AuthorizeCacheSecurityGroupIngressCallable(const AuthorizeCacheSecurityGroupIngressRequestT& request) const { return SubmitCallable(&ElastiCacheClient::AuthorizeCacheSecurityGroupIngress, request); } /** * An Async wrapper for AuthorizeCacheSecurityGroupIngress that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void AuthorizeCacheSecurityGroupIngressAsync(const AuthorizeCacheSecurityGroupIngressRequestT& request, const AuthorizeCacheSecurityGroupIngressResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::AuthorizeCacheSecurityGroupIngress, request, handler, context); } /** *

Apply the service update. For more information on service updates and * applying them, see Applying * Service Updates.

See Also:

AWS * API Reference

*/ virtual Model::BatchApplyUpdateActionOutcome BatchApplyUpdateAction(const Model::BatchApplyUpdateActionRequest& request) const; /** * A Callable wrapper for BatchApplyUpdateAction that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchApplyUpdateActionOutcomeCallable BatchApplyUpdateActionCallable(const BatchApplyUpdateActionRequestT& request) const { return SubmitCallable(&ElastiCacheClient::BatchApplyUpdateAction, request); } /** * An Async wrapper for BatchApplyUpdateAction that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchApplyUpdateActionAsync(const BatchApplyUpdateActionRequestT& request, const BatchApplyUpdateActionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::BatchApplyUpdateAction, request, handler, context); } /** *

Stop the service update. For more information on service updates and stopping * them, see Stopping * Service Updates.

See Also:

AWS * API Reference

*/ virtual Model::BatchStopUpdateActionOutcome BatchStopUpdateAction(const Model::BatchStopUpdateActionRequest& request) const; /** * A Callable wrapper for BatchStopUpdateAction that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchStopUpdateActionOutcomeCallable BatchStopUpdateActionCallable(const BatchStopUpdateActionRequestT& request) const { return SubmitCallable(&ElastiCacheClient::BatchStopUpdateAction, request); } /** * An Async wrapper for BatchStopUpdateAction that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchStopUpdateActionAsync(const BatchStopUpdateActionRequestT& request, const BatchStopUpdateActionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::BatchStopUpdateAction, request, handler, context); } /** *

Complete the migration of data.

See Also:

AWS * API Reference

*/ virtual Model::CompleteMigrationOutcome CompleteMigration(const Model::CompleteMigrationRequest& request) const; /** * A Callable wrapper for CompleteMigration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CompleteMigrationOutcomeCallable CompleteMigrationCallable(const CompleteMigrationRequestT& request) const { return SubmitCallable(&ElastiCacheClient::CompleteMigration, request); } /** * An Async wrapper for CompleteMigration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CompleteMigrationAsync(const CompleteMigrationRequestT& request, const CompleteMigrationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::CompleteMigration, request, handler, context); } /** *

Makes a copy of an existing snapshot.

This operation is valid * for Redis only.

Users or groups that have permissions * to use the CopySnapshot 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 CopySnapshot * operation. For more information about using IAM to control the use of * ElastiCache operations, see Exporting * Snapshots and Authentication * & Access Control.

You could receive the following * error messages.

Error Messages

  • * Error Message: The S3 bucket %s is outside of the region.

    * Solution: Create an Amazon S3 bucket in the same region as your snapshot. * For more information, see Step * 1: Create an Amazon S3 Bucket in the ElastiCache User Guide.

  • *

    Error Message: The S3 bucket %s does not exist.

    * Solution: Create an Amazon S3 bucket in the same region as your snapshot. * For more information, see Step * 1: Create an Amazon S3 Bucket in the ElastiCache User Guide.

  • *

    Error Message: The S3 bucket %s is not owned by the authenticated * user.

    Solution: Create an Amazon S3 bucket in the same region as * your snapshot. For more information, see Step * 1: Create an Amazon S3 Bucket in the ElastiCache User Guide.

  • *

    Error Message: The authenticated user does not have sufficient * permissions to perform the desired activity.

    Solution: Contact * your system administrator to get the needed permissions.

  • * Error Message: The S3 bucket %s already contains an object with key * %s.

    Solution: Give the TargetSnapshotName a new and * unique value. If exporting a snapshot, you could alternatively create a new * Amazon S3 bucket and use this same value for * TargetSnapshotName.

  • Error Message: * ElastiCache has not been granted READ permissions %s on the S3 Bucket.

    * Solution: Add List and Read permissions on the bucket. For more * information, see Step * 2: Grant ElastiCache Access to Your Amazon S3 Bucket in the ElastiCache User * Guide.

  • Error Message: ElastiCache has not been * granted WRITE permissions %s on the S3 Bucket.

    Solution: Add * Upload/Delete permissions on the bucket. For more information, see Step * 2: Grant ElastiCache Access to Your Amazon S3 Bucket in the ElastiCache User * Guide.

  • Error Message: ElastiCache has not been * granted READ_ACP permissions %s on the S3 Bucket.

    Solution: Add * View Permissions on the bucket. For more information, see Step * 2: Grant ElastiCache Access to Your Amazon S3 Bucket in the ElastiCache User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::CopySnapshotOutcome CopySnapshot(const Model::CopySnapshotRequest& request) const; /** * A Callable wrapper for CopySnapshot that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CopySnapshotOutcomeCallable CopySnapshotCallable(const CopySnapshotRequestT& request) const { return SubmitCallable(&ElastiCacheClient::CopySnapshot, request); } /** * An Async wrapper for CopySnapshot that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CopySnapshotAsync(const CopySnapshotRequestT& request, const CopySnapshotResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::CopySnapshot, request, handler, context); } /** *

Creates a cluster. All nodes in the cluster run the same protocol-compliant * cache engine software, either Memcached or Redis.

This operation is not * supported for Redis (cluster mode enabled) clusters.

See Also:

* AWS * API Reference

*/ virtual Model::CreateCacheClusterOutcome CreateCacheCluster(const Model::CreateCacheClusterRequest& request) const; /** * A Callable wrapper for CreateCacheCluster that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateCacheClusterOutcomeCallable CreateCacheClusterCallable(const CreateCacheClusterRequestT& request) const { return SubmitCallable(&ElastiCacheClient::CreateCacheCluster, request); } /** * An Async wrapper for CreateCacheCluster that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateCacheClusterAsync(const CreateCacheClusterRequestT& request, const CreateCacheClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::CreateCacheCluster, request, handler, context); } /** *

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.

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:

See Also:

AWS * API Reference

*/ virtual Model::CreateCacheParameterGroupOutcome CreateCacheParameterGroup(const Model::CreateCacheParameterGroupRequest& request) const; /** * A Callable wrapper for CreateCacheParameterGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateCacheParameterGroupOutcomeCallable CreateCacheParameterGroupCallable(const CreateCacheParameterGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::CreateCacheParameterGroup, request); } /** * An Async wrapper for CreateCacheParameterGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateCacheParameterGroupAsync(const CreateCacheParameterGroupRequestT& request, const CreateCacheParameterGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::CreateCacheParameterGroup, request, handler, context); } /** *

Creates a new cache security group. Use a cache security group to control * access to one or more clusters.

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 CreateCacheSubnetGroup.

See * Also:

AWS * API Reference

*/ virtual Model::CreateCacheSecurityGroupOutcome CreateCacheSecurityGroup(const Model::CreateCacheSecurityGroupRequest& request) const; /** * A Callable wrapper for CreateCacheSecurityGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateCacheSecurityGroupOutcomeCallable CreateCacheSecurityGroupCallable(const CreateCacheSecurityGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::CreateCacheSecurityGroup, request); } /** * An Async wrapper for CreateCacheSecurityGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateCacheSecurityGroupAsync(const CreateCacheSecurityGroupRequestT& request, const CreateCacheSecurityGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::CreateCacheSecurityGroup, request, handler, context); } /** *

Creates a new cache subnet group.

Use this parameter only when you are * creating a cluster in an Amazon Virtual Private Cloud (Amazon * VPC).

See Also:

AWS * API Reference

*/ virtual Model::CreateCacheSubnetGroupOutcome CreateCacheSubnetGroup(const Model::CreateCacheSubnetGroupRequest& request) const; /** * A Callable wrapper for CreateCacheSubnetGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateCacheSubnetGroupOutcomeCallable CreateCacheSubnetGroupCallable(const CreateCacheSubnetGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::CreateCacheSubnetGroup, request); } /** * An Async wrapper for CreateCacheSubnetGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateCacheSubnetGroupAsync(const CreateCacheSubnetGroupRequestT& request, const CreateCacheSubnetGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::CreateCacheSubnetGroup, request, handler, context); } /** *

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 Replication * Across Regions Using Global Datastore.

  • The * GlobalReplicationGroupIdSuffix is the name of the Global datastore.

    *
  • The PrimaryReplicationGroupId represents the name of the * primary cluster that accepts writes and will replicate updates to the secondary * cluster.

See Also:

AWS * API Reference

*/ virtual Model::CreateGlobalReplicationGroupOutcome CreateGlobalReplicationGroup(const Model::CreateGlobalReplicationGroupRequest& request) const; /** * A Callable wrapper for CreateGlobalReplicationGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateGlobalReplicationGroupOutcomeCallable CreateGlobalReplicationGroupCallable(const CreateGlobalReplicationGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::CreateGlobalReplicationGroup, request); } /** * An Async wrapper for CreateGlobalReplicationGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateGlobalReplicationGroupAsync(const CreateGlobalReplicationGroupRequestT& request, const CreateGlobalReplicationGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::CreateGlobalReplicationGroup, request, handler, context); } /** *

Creates a Redis (cluster mode disabled) or a Redis (cluster mode enabled) * replication group.

This API can be used to create a standalone regional * replication group or a secondary replication group associated with a Global * datastore.

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.

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.

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 Creating * a Subnet Group. For versions below 5.0.6, the limit is 250 per cluster.

*

To request a limit increase, see Amazon * Service Limits and choose the limit type Nodes per cluster per instance * type.

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 Scaling * ElastiCache for Redis Clusters in the ElastiCache User Guide.

*

This operation is valid for Redis only.

See * Also:

AWS * API Reference

*/ virtual Model::CreateReplicationGroupOutcome CreateReplicationGroup(const Model::CreateReplicationGroupRequest& request) const; /** * A Callable wrapper for CreateReplicationGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateReplicationGroupOutcomeCallable CreateReplicationGroupCallable(const CreateReplicationGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::CreateReplicationGroup, request); } /** * An Async wrapper for CreateReplicationGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateReplicationGroupAsync(const CreateReplicationGroupRequestT& request, const CreateReplicationGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::CreateReplicationGroup, request, handler, context); } /** *

Creates a copy of an entire cluster or replication group at a specific moment * in time.

This operation is valid for Redis only.

*

See Also:

AWS * API Reference

*/ virtual Model::CreateSnapshotOutcome CreateSnapshot(const Model::CreateSnapshotRequest& request) const; /** * A Callable wrapper for CreateSnapshot that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateSnapshotOutcomeCallable CreateSnapshotCallable(const CreateSnapshotRequestT& request) const { return SubmitCallable(&ElastiCacheClient::CreateSnapshot, request); } /** * An Async wrapper for CreateSnapshot that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateSnapshotAsync(const CreateSnapshotRequestT& request, const CreateSnapshotResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::CreateSnapshot, request, handler, context); } /** *

For Redis engine version 6.0 onwards: Creates a Redis user. For more * information, see Using * Role Based Access Control (RBAC).

See Also:

AWS * API Reference

*/ virtual Model::CreateUserOutcome CreateUser(const Model::CreateUserRequest& request) const; /** * A Callable wrapper for CreateUser that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateUserOutcomeCallable CreateUserCallable(const CreateUserRequestT& request) const { return SubmitCallable(&ElastiCacheClient::CreateUser, request); } /** * An Async wrapper for CreateUser that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateUserAsync(const CreateUserRequestT& request, const CreateUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::CreateUser, request, handler, context); } /** *

For Redis engine version 6.0 onwards: Creates a Redis user group. For more * information, see Using * Role Based Access Control (RBAC)

See Also:

AWS * API Reference

*/ virtual Model::CreateUserGroupOutcome CreateUserGroup(const Model::CreateUserGroupRequest& request) const; /** * A Callable wrapper for CreateUserGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateUserGroupOutcomeCallable CreateUserGroupCallable(const CreateUserGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::CreateUserGroup, request); } /** * An Async wrapper for CreateUserGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateUserGroupAsync(const CreateUserGroupRequestT& request, const CreateUserGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::CreateUserGroup, request, handler, context); } /** *

Decreases the number of node groups in a Global datastore

See * Also:

AWS * API Reference

*/ virtual Model::DecreaseNodeGroupsInGlobalReplicationGroupOutcome DecreaseNodeGroupsInGlobalReplicationGroup(const Model::DecreaseNodeGroupsInGlobalReplicationGroupRequest& request) const; /** * A Callable wrapper for DecreaseNodeGroupsInGlobalReplicationGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DecreaseNodeGroupsInGlobalReplicationGroupOutcomeCallable DecreaseNodeGroupsInGlobalReplicationGroupCallable(const DecreaseNodeGroupsInGlobalReplicationGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DecreaseNodeGroupsInGlobalReplicationGroup, request); } /** * An Async wrapper for DecreaseNodeGroupsInGlobalReplicationGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DecreaseNodeGroupsInGlobalReplicationGroupAsync(const DecreaseNodeGroupsInGlobalReplicationGroupRequestT& request, const DecreaseNodeGroupsInGlobalReplicationGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DecreaseNodeGroupsInGlobalReplicationGroup, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DecreaseReplicaCountOutcome DecreaseReplicaCount(const Model::DecreaseReplicaCountRequest& request) const; /** * A Callable wrapper for DecreaseReplicaCount that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DecreaseReplicaCountOutcomeCallable DecreaseReplicaCountCallable(const DecreaseReplicaCountRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DecreaseReplicaCount, request); } /** * An Async wrapper for DecreaseReplicaCount that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DecreaseReplicaCountAsync(const DecreaseReplicaCountRequestT& request, const DecreaseReplicaCountResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DecreaseReplicaCount, request, handler, context); } /** *

Deletes a previously provisioned cluster. DeleteCacheCluster * 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.

This operation is not valid for:

  • Redis * (cluster mode enabled) clusters

  • Redis (cluster mode disabled) * clusters

  • A cluster that is the last read replica of a * replication group

  • A cluster that is the primary node of a * replication group

  • A node group (shard) that has Multi-AZ mode * enabled

  • A cluster from a Redis (cluster mode enabled) * replication group

  • A cluster that is not in the * available state

See Also:

AWS * API Reference

*/ virtual Model::DeleteCacheClusterOutcome DeleteCacheCluster(const Model::DeleteCacheClusterRequest& request) const; /** * A Callable wrapper for DeleteCacheCluster that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteCacheClusterOutcomeCallable DeleteCacheClusterCallable(const DeleteCacheClusterRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DeleteCacheCluster, request); } /** * An Async wrapper for DeleteCacheCluster that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteCacheClusterAsync(const DeleteCacheClusterRequestT& request, const DeleteCacheClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DeleteCacheCluster, request, handler, context); } /** *

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.

See Also:

* AWS * API Reference

*/ virtual Model::DeleteCacheParameterGroupOutcome DeleteCacheParameterGroup(const Model::DeleteCacheParameterGroupRequest& request) const; /** * A Callable wrapper for DeleteCacheParameterGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteCacheParameterGroupOutcomeCallable DeleteCacheParameterGroupCallable(const DeleteCacheParameterGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DeleteCacheParameterGroup, request); } /** * An Async wrapper for DeleteCacheParameterGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteCacheParameterGroupAsync(const DeleteCacheParameterGroupRequestT& request, const DeleteCacheParameterGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DeleteCacheParameterGroup, request, handler, context); } /** *

Deletes a cache security group.

You cannot delete a cache * security group if it is associated with any clusters.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteCacheSecurityGroupOutcome DeleteCacheSecurityGroup(const Model::DeleteCacheSecurityGroupRequest& request) const; /** * A Callable wrapper for DeleteCacheSecurityGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteCacheSecurityGroupOutcomeCallable DeleteCacheSecurityGroupCallable(const DeleteCacheSecurityGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DeleteCacheSecurityGroup, request); } /** * An Async wrapper for DeleteCacheSecurityGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteCacheSecurityGroupAsync(const DeleteCacheSecurityGroupRequestT& request, const DeleteCacheSecurityGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DeleteCacheSecurityGroup, request, handler, context); } /** *

Deletes a cache subnet group.

You cannot delete a default cache * subnet group or one that is associated with any clusters.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteCacheSubnetGroupOutcome DeleteCacheSubnetGroup(const Model::DeleteCacheSubnetGroupRequest& request) const; /** * A Callable wrapper for DeleteCacheSubnetGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteCacheSubnetGroupOutcomeCallable DeleteCacheSubnetGroupCallable(const DeleteCacheSubnetGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DeleteCacheSubnetGroup, request); } /** * An Async wrapper for DeleteCacheSubnetGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteCacheSubnetGroupAsync(const DeleteCacheSubnetGroupRequestT& request, const DeleteCacheSubnetGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DeleteCacheSubnetGroup, request, handler, context); } /** *

Deleting a Global datastore is a two-step process:

  • First, * you must DisassociateGlobalReplicationGroup to remove the secondary * clusters in the Global datastore.

  • Once the Global datastore * contains only the primary cluster, you can use the * DeleteGlobalReplicationGroup API to delete the Global datastore * while retainining the primary cluster using * RetainPrimaryReplicationGroup=true.

Since the * Global Datastore has only a primary cluster, you can delete the Global Datastore * while retaining the primary by setting * RetainPrimaryReplicationGroup=true. 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.

When you receive a * successful response from this operation, Amazon ElastiCache immediately begins * deleting the selected resources; you cannot cancel or revert this * operation.

See Also:

AWS * API Reference

*/ virtual Model::DeleteGlobalReplicationGroupOutcome DeleteGlobalReplicationGroup(const Model::DeleteGlobalReplicationGroupRequest& request) const; /** * A Callable wrapper for DeleteGlobalReplicationGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteGlobalReplicationGroupOutcomeCallable DeleteGlobalReplicationGroupCallable(const DeleteGlobalReplicationGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DeleteGlobalReplicationGroup, request); } /** * An Async wrapper for DeleteGlobalReplicationGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteGlobalReplicationGroupAsync(const DeleteGlobalReplicationGroupRequestT& request, const DeleteGlobalReplicationGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DeleteGlobalReplicationGroup, request, handler, context); } /** *

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 * RetainPrimaryCluster=true.

When you receive a successful * response from this operation, Amazon ElastiCache immediately begins deleting the * selected resources; you cannot cancel or revert this operation.

*

This operation is valid for Redis only.

See Also:

AWS * API Reference

*/ virtual Model::DeleteReplicationGroupOutcome DeleteReplicationGroup(const Model::DeleteReplicationGroupRequest& request) const; /** * A Callable wrapper for DeleteReplicationGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteReplicationGroupOutcomeCallable DeleteReplicationGroupCallable(const DeleteReplicationGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DeleteReplicationGroup, request); } /** * An Async wrapper for DeleteReplicationGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteReplicationGroupAsync(const DeleteReplicationGroupRequestT& request, const DeleteReplicationGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DeleteReplicationGroup, request, handler, context); } /** *

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.

This operation is valid for Redis * only.

See Also:

AWS * API Reference

*/ virtual Model::DeleteSnapshotOutcome DeleteSnapshot(const Model::DeleteSnapshotRequest& request) const; /** * A Callable wrapper for DeleteSnapshot that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteSnapshotOutcomeCallable DeleteSnapshotCallable(const DeleteSnapshotRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DeleteSnapshot, request); } /** * An Async wrapper for DeleteSnapshot that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteSnapshotAsync(const DeleteSnapshotRequestT& request, const DeleteSnapshotResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DeleteSnapshot, request, handler, context); } /** *

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 Using * Role Based Access Control (RBAC).

See Also:

AWS * API Reference

*/ virtual Model::DeleteUserOutcome DeleteUser(const Model::DeleteUserRequest& request) const; /** * A Callable wrapper for DeleteUser that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteUserOutcomeCallable DeleteUserCallable(const DeleteUserRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DeleteUser, request); } /** * An Async wrapper for DeleteUser that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteUserAsync(const DeleteUserRequestT& request, const DeleteUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DeleteUser, request, handler, context); } /** *

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 Using * Role Based Access Control (RBAC).

See Also:

AWS * API Reference

*/ virtual Model::DeleteUserGroupOutcome DeleteUserGroup(const Model::DeleteUserGroupRequest& request) const; /** * A Callable wrapper for DeleteUserGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteUserGroupOutcomeCallable DeleteUserGroupCallable(const DeleteUserGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DeleteUserGroup, request); } /** * An Async wrapper for DeleteUserGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteUserGroupAsync(const DeleteUserGroupRequestT& request, const DeleteUserGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DeleteUserGroup, request, handler, context); } /** *

Returns information about all provisioned clusters if no cluster identifier * is specified, or about a specific cache cluster if a cluster identifier is * supplied.

By default, abbreviated information about the clusters is * returned. You can use the optional ShowCacheNodeInfo 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.

If * the cluster is in the creating state, only cluster-level information is * displayed until all of the nodes are successfully provisioned.

If the * cluster is in the deleting state, only cluster-level information is * displayed.

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 * available, the cluster is ready for use.

If cache nodes are * currently being removed from the cluster, no endpoint information for the * removed nodes is displayed.

See Also:

AWS * API Reference

*/ virtual Model::DescribeCacheClustersOutcome DescribeCacheClusters(const Model::DescribeCacheClustersRequest& request) const; /** * A Callable wrapper for DescribeCacheClusters that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeCacheClustersOutcomeCallable DescribeCacheClustersCallable(const DescribeCacheClustersRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DescribeCacheClusters, request); } /** * An Async wrapper for DescribeCacheClusters that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeCacheClustersAsync(const DescribeCacheClustersRequestT& request, const DescribeCacheClustersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DescribeCacheClusters, request, handler, context); } /** *

Returns a list of the available cache engines and their * versions.

See Also:

AWS * API Reference

*/ virtual Model::DescribeCacheEngineVersionsOutcome DescribeCacheEngineVersions(const Model::DescribeCacheEngineVersionsRequest& request) const; /** * A Callable wrapper for DescribeCacheEngineVersions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeCacheEngineVersionsOutcomeCallable DescribeCacheEngineVersionsCallable(const DescribeCacheEngineVersionsRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DescribeCacheEngineVersions, request); } /** * An Async wrapper for DescribeCacheEngineVersions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeCacheEngineVersionsAsync(const DescribeCacheEngineVersionsRequestT& request, const DescribeCacheEngineVersionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DescribeCacheEngineVersions, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DescribeCacheParameterGroupsOutcome DescribeCacheParameterGroups(const Model::DescribeCacheParameterGroupsRequest& request) const; /** * A Callable wrapper for DescribeCacheParameterGroups that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeCacheParameterGroupsOutcomeCallable DescribeCacheParameterGroupsCallable(const DescribeCacheParameterGroupsRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DescribeCacheParameterGroups, request); } /** * An Async wrapper for DescribeCacheParameterGroups that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeCacheParameterGroupsAsync(const DescribeCacheParameterGroupsRequestT& request, const DescribeCacheParameterGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DescribeCacheParameterGroups, request, handler, context); } /** *

Returns the detailed parameter list for a particular cache parameter * group.

See Also:

AWS * API Reference

*/ virtual Model::DescribeCacheParametersOutcome DescribeCacheParameters(const Model::DescribeCacheParametersRequest& request) const; /** * A Callable wrapper for DescribeCacheParameters that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeCacheParametersOutcomeCallable DescribeCacheParametersCallable(const DescribeCacheParametersRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DescribeCacheParameters, request); } /** * An Async wrapper for DescribeCacheParameters that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeCacheParametersAsync(const DescribeCacheParametersRequestT& request, const DescribeCacheParametersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DescribeCacheParameters, request, handler, context); } /** *

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

See * Also:

AWS * API Reference

*/ virtual Model::DescribeCacheSecurityGroupsOutcome DescribeCacheSecurityGroups(const Model::DescribeCacheSecurityGroupsRequest& request) const; /** * A Callable wrapper for DescribeCacheSecurityGroups that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeCacheSecurityGroupsOutcomeCallable DescribeCacheSecurityGroupsCallable(const DescribeCacheSecurityGroupsRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DescribeCacheSecurityGroups, request); } /** * An Async wrapper for DescribeCacheSecurityGroups that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeCacheSecurityGroupsAsync(const DescribeCacheSecurityGroupsRequestT& request, const DescribeCacheSecurityGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DescribeCacheSecurityGroups, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DescribeCacheSubnetGroupsOutcome DescribeCacheSubnetGroups(const Model::DescribeCacheSubnetGroupsRequest& request) const; /** * A Callable wrapper for DescribeCacheSubnetGroups that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeCacheSubnetGroupsOutcomeCallable DescribeCacheSubnetGroupsCallable(const DescribeCacheSubnetGroupsRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DescribeCacheSubnetGroups, request); } /** * An Async wrapper for DescribeCacheSubnetGroups that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeCacheSubnetGroupsAsync(const DescribeCacheSubnetGroupsRequestT& request, const DescribeCacheSubnetGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DescribeCacheSubnetGroups, request, handler, context); } /** *

Returns the default engine and system parameter information for the specified * cache engine.

See Also:

AWS * API Reference

*/ virtual Model::DescribeEngineDefaultParametersOutcome DescribeEngineDefaultParameters(const Model::DescribeEngineDefaultParametersRequest& request) const; /** * A Callable wrapper for DescribeEngineDefaultParameters that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeEngineDefaultParametersOutcomeCallable DescribeEngineDefaultParametersCallable(const DescribeEngineDefaultParametersRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DescribeEngineDefaultParameters, request); } /** * An Async wrapper for DescribeEngineDefaultParameters that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeEngineDefaultParametersAsync(const DescribeEngineDefaultParametersRequestT& request, const DescribeEngineDefaultParametersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DescribeEngineDefaultParameters, request, handler, context); } /** *

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.

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.

See Also:

AWS * API Reference

*/ virtual Model::DescribeEventsOutcome DescribeEvents(const Model::DescribeEventsRequest& request) const; /** * A Callable wrapper for DescribeEvents that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeEventsOutcomeCallable DescribeEventsCallable(const DescribeEventsRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DescribeEvents, request); } /** * An Async wrapper for DescribeEvents that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeEventsAsync(const DescribeEventsRequestT& request, const DescribeEventsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DescribeEvents, request, handler, context); } /** *

Returns information about a particular global replication group. If no * identifier is specified, returns information about all Global datastores. *

See Also:

AWS * API Reference

*/ virtual Model::DescribeGlobalReplicationGroupsOutcome DescribeGlobalReplicationGroups(const Model::DescribeGlobalReplicationGroupsRequest& request) const; /** * A Callable wrapper for DescribeGlobalReplicationGroups that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeGlobalReplicationGroupsOutcomeCallable DescribeGlobalReplicationGroupsCallable(const DescribeGlobalReplicationGroupsRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DescribeGlobalReplicationGroups, request); } /** * An Async wrapper for DescribeGlobalReplicationGroups that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeGlobalReplicationGroupsAsync(const DescribeGlobalReplicationGroupsRequestT& request, const DescribeGlobalReplicationGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DescribeGlobalReplicationGroups, request, handler, context); } /** *

Returns information about a particular replication group. If no identifier is * specified, DescribeReplicationGroups returns information about all * replication groups.

This operation is valid for Redis only.

*

See Also:

AWS * API Reference

*/ virtual Model::DescribeReplicationGroupsOutcome DescribeReplicationGroups(const Model::DescribeReplicationGroupsRequest& request) const; /** * A Callable wrapper for DescribeReplicationGroups that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeReplicationGroupsOutcomeCallable DescribeReplicationGroupsCallable(const DescribeReplicationGroupsRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DescribeReplicationGroups, request); } /** * An Async wrapper for DescribeReplicationGroups that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeReplicationGroupsAsync(const DescribeReplicationGroupsRequestT& request, const DescribeReplicationGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DescribeReplicationGroups, request, handler, context); } /** *

Returns information about reserved cache nodes for this account, or about a * specified reserved cache node.

See Also:

AWS * API Reference

*/ virtual Model::DescribeReservedCacheNodesOutcome DescribeReservedCacheNodes(const Model::DescribeReservedCacheNodesRequest& request) const; /** * A Callable wrapper for DescribeReservedCacheNodes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeReservedCacheNodesOutcomeCallable DescribeReservedCacheNodesCallable(const DescribeReservedCacheNodesRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DescribeReservedCacheNodes, request); } /** * An Async wrapper for DescribeReservedCacheNodes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeReservedCacheNodesAsync(const DescribeReservedCacheNodesRequestT& request, const DescribeReservedCacheNodesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DescribeReservedCacheNodes, request, handler, context); } /** *

Lists available reserved cache node offerings.

See Also:

AWS * API Reference

*/ virtual Model::DescribeReservedCacheNodesOfferingsOutcome DescribeReservedCacheNodesOfferings(const Model::DescribeReservedCacheNodesOfferingsRequest& request) const; /** * A Callable wrapper for DescribeReservedCacheNodesOfferings that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeReservedCacheNodesOfferingsOutcomeCallable DescribeReservedCacheNodesOfferingsCallable(const DescribeReservedCacheNodesOfferingsRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DescribeReservedCacheNodesOfferings, request); } /** * An Async wrapper for DescribeReservedCacheNodesOfferings that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeReservedCacheNodesOfferingsAsync(const DescribeReservedCacheNodesOfferingsRequestT& request, const DescribeReservedCacheNodesOfferingsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DescribeReservedCacheNodesOfferings, request, handler, context); } /** *

Returns details of the service updates

See Also:

AWS * API Reference

*/ virtual Model::DescribeServiceUpdatesOutcome DescribeServiceUpdates(const Model::DescribeServiceUpdatesRequest& request) const; /** * A Callable wrapper for DescribeServiceUpdates that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeServiceUpdatesOutcomeCallable DescribeServiceUpdatesCallable(const DescribeServiceUpdatesRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DescribeServiceUpdates, request); } /** * An Async wrapper for DescribeServiceUpdates that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeServiceUpdatesAsync(const DescribeServiceUpdatesRequestT& request, const DescribeServiceUpdatesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DescribeServiceUpdates, request, handler, context); } /** *

Returns information about cluster or replication group snapshots. By default, * DescribeSnapshots lists all of your snapshots; it can optionally * describe a single snapshot, or just the snapshots associated with a particular * cache cluster.

This operation is valid for Redis only.

*

See Also:

AWS * API Reference

*/ virtual Model::DescribeSnapshotsOutcome DescribeSnapshots(const Model::DescribeSnapshotsRequest& request) const; /** * A Callable wrapper for DescribeSnapshots that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeSnapshotsOutcomeCallable DescribeSnapshotsCallable(const DescribeSnapshotsRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DescribeSnapshots, request); } /** * An Async wrapper for DescribeSnapshots that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeSnapshotsAsync(const DescribeSnapshotsRequestT& request, const DescribeSnapshotsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DescribeSnapshots, request, handler, context); } /** *

Returns details of the update actions

See Also:

AWS * API Reference

*/ virtual Model::DescribeUpdateActionsOutcome DescribeUpdateActions(const Model::DescribeUpdateActionsRequest& request) const; /** * A Callable wrapper for DescribeUpdateActions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeUpdateActionsOutcomeCallable DescribeUpdateActionsCallable(const DescribeUpdateActionsRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DescribeUpdateActions, request); } /** * An Async wrapper for DescribeUpdateActions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeUpdateActionsAsync(const DescribeUpdateActionsRequestT& request, const DescribeUpdateActionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DescribeUpdateActions, request, handler, context); } /** *

Returns a list of user groups.

See Also:

AWS * API Reference

*/ virtual Model::DescribeUserGroupsOutcome DescribeUserGroups(const Model::DescribeUserGroupsRequest& request) const; /** * A Callable wrapper for DescribeUserGroups that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeUserGroupsOutcomeCallable DescribeUserGroupsCallable(const DescribeUserGroupsRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DescribeUserGroups, request); } /** * An Async wrapper for DescribeUserGroups that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeUserGroupsAsync(const DescribeUserGroupsRequestT& request, const DescribeUserGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DescribeUserGroups, request, handler, context); } /** *

Returns a list of users.

See Also:

AWS * API Reference

*/ virtual Model::DescribeUsersOutcome DescribeUsers(const Model::DescribeUsersRequest& request) const; /** * A Callable wrapper for DescribeUsers that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeUsersOutcomeCallable DescribeUsersCallable(const DescribeUsersRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DescribeUsers, request); } /** * An Async wrapper for DescribeUsers that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeUsersAsync(const DescribeUsersRequestT& request, const DescribeUsersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DescribeUsers, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DisassociateGlobalReplicationGroupOutcome DisassociateGlobalReplicationGroup(const Model::DisassociateGlobalReplicationGroupRequest& request) const; /** * A Callable wrapper for DisassociateGlobalReplicationGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DisassociateGlobalReplicationGroupOutcomeCallable DisassociateGlobalReplicationGroupCallable(const DisassociateGlobalReplicationGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::DisassociateGlobalReplicationGroup, request); } /** * An Async wrapper for DisassociateGlobalReplicationGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DisassociateGlobalReplicationGroupAsync(const DisassociateGlobalReplicationGroupRequestT& request, const DisassociateGlobalReplicationGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::DisassociateGlobalReplicationGroup, request, handler, context); } /** *

Used to failover the primary region to a secondary region. The secondary * region will become primary, and all other clusters will become * secondary.

See Also:

AWS * API Reference

*/ virtual Model::FailoverGlobalReplicationGroupOutcome FailoverGlobalReplicationGroup(const Model::FailoverGlobalReplicationGroupRequest& request) const; /** * A Callable wrapper for FailoverGlobalReplicationGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::FailoverGlobalReplicationGroupOutcomeCallable FailoverGlobalReplicationGroupCallable(const FailoverGlobalReplicationGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::FailoverGlobalReplicationGroup, request); } /** * An Async wrapper for FailoverGlobalReplicationGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void FailoverGlobalReplicationGroupAsync(const FailoverGlobalReplicationGroupRequestT& request, const FailoverGlobalReplicationGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::FailoverGlobalReplicationGroup, request, handler, context); } /** *

Increase the number of node groups in the Global datastore

See * Also:

AWS * API Reference

*/ virtual Model::IncreaseNodeGroupsInGlobalReplicationGroupOutcome IncreaseNodeGroupsInGlobalReplicationGroup(const Model::IncreaseNodeGroupsInGlobalReplicationGroupRequest& request) const; /** * A Callable wrapper for IncreaseNodeGroupsInGlobalReplicationGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::IncreaseNodeGroupsInGlobalReplicationGroupOutcomeCallable IncreaseNodeGroupsInGlobalReplicationGroupCallable(const IncreaseNodeGroupsInGlobalReplicationGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::IncreaseNodeGroupsInGlobalReplicationGroup, request); } /** * An Async wrapper for IncreaseNodeGroupsInGlobalReplicationGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void IncreaseNodeGroupsInGlobalReplicationGroupAsync(const IncreaseNodeGroupsInGlobalReplicationGroupRequestT& request, const IncreaseNodeGroupsInGlobalReplicationGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::IncreaseNodeGroupsInGlobalReplicationGroup, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::IncreaseReplicaCountOutcome IncreaseReplicaCount(const Model::IncreaseReplicaCountRequest& request) const; /** * A Callable wrapper for IncreaseReplicaCount that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::IncreaseReplicaCountOutcomeCallable IncreaseReplicaCountCallable(const IncreaseReplicaCountRequestT& request) const { return SubmitCallable(&ElastiCacheClient::IncreaseReplicaCount, request); } /** * An Async wrapper for IncreaseReplicaCount that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void IncreaseReplicaCountAsync(const IncreaseReplicaCountRequestT& request, const IncreaseReplicaCountResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::IncreaseReplicaCount, request, handler, context); } /** *

Lists all available node types that you can scale your Redis cluster's or * replication group's current node type.

When you use the * ModifyCacheCluster or ModifyReplicationGroup * operations to scale your cluster or replication group, the value of the * CacheNodeType parameter must be one of the node types returned by * this operation.

See Also:

AWS * API Reference

*/ virtual Model::ListAllowedNodeTypeModificationsOutcome ListAllowedNodeTypeModifications(const Model::ListAllowedNodeTypeModificationsRequest& request) const; /** * A Callable wrapper for ListAllowedNodeTypeModifications that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListAllowedNodeTypeModificationsOutcomeCallable ListAllowedNodeTypeModificationsCallable(const ListAllowedNodeTypeModificationsRequestT& request) const { return SubmitCallable(&ElastiCacheClient::ListAllowedNodeTypeModifications, request); } /** * An Async wrapper for ListAllowedNodeTypeModifications that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListAllowedNodeTypeModificationsAsync(const ListAllowedNodeTypeModificationsRequestT& request, const ListAllowedNodeTypeModificationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::ListAllowedNodeTypeModifications, request, handler, context); } /** *

Lists all tags currently on a 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 Resource-level * permissions.

If the cluster is not in the available state, * ListTagsForResource returns an error.

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** * A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const { return SubmitCallable(&ElastiCacheClient::ListTagsForResource, request); } /** * An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::ListTagsForResource, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::ModifyCacheClusterOutcome ModifyCacheCluster(const Model::ModifyCacheClusterRequest& request) const; /** * A Callable wrapper for ModifyCacheCluster that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ModifyCacheClusterOutcomeCallable ModifyCacheClusterCallable(const ModifyCacheClusterRequestT& request) const { return SubmitCallable(&ElastiCacheClient::ModifyCacheCluster, request); } /** * An Async wrapper for ModifyCacheCluster that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ModifyCacheClusterAsync(const ModifyCacheClusterRequestT& request, const ModifyCacheClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::ModifyCacheCluster, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::ModifyCacheParameterGroupOutcome ModifyCacheParameterGroup(const Model::ModifyCacheParameterGroupRequest& request) const; /** * A Callable wrapper for ModifyCacheParameterGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ModifyCacheParameterGroupOutcomeCallable ModifyCacheParameterGroupCallable(const ModifyCacheParameterGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::ModifyCacheParameterGroup, request); } /** * An Async wrapper for ModifyCacheParameterGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ModifyCacheParameterGroupAsync(const ModifyCacheParameterGroupRequestT& request, const ModifyCacheParameterGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::ModifyCacheParameterGroup, request, handler, context); } /** *

Modifies an existing cache subnet group.

See Also:

AWS * API Reference

*/ virtual Model::ModifyCacheSubnetGroupOutcome ModifyCacheSubnetGroup(const Model::ModifyCacheSubnetGroupRequest& request) const; /** * A Callable wrapper for ModifyCacheSubnetGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ModifyCacheSubnetGroupOutcomeCallable ModifyCacheSubnetGroupCallable(const ModifyCacheSubnetGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::ModifyCacheSubnetGroup, request); } /** * An Async wrapper for ModifyCacheSubnetGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ModifyCacheSubnetGroupAsync(const ModifyCacheSubnetGroupRequestT& request, const ModifyCacheSubnetGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::ModifyCacheSubnetGroup, request, handler, context); } /** *

Modifies the settings for a Global datastore.

See Also:

AWS * API Reference

*/ virtual Model::ModifyGlobalReplicationGroupOutcome ModifyGlobalReplicationGroup(const Model::ModifyGlobalReplicationGroupRequest& request) const; /** * A Callable wrapper for ModifyGlobalReplicationGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ModifyGlobalReplicationGroupOutcomeCallable ModifyGlobalReplicationGroupCallable(const ModifyGlobalReplicationGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::ModifyGlobalReplicationGroup, request); } /** * An Async wrapper for ModifyGlobalReplicationGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ModifyGlobalReplicationGroupAsync(const ModifyGlobalReplicationGroupRequestT& request, const ModifyGlobalReplicationGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::ModifyGlobalReplicationGroup, request, handler, context); } /** *

Modifies the settings for a replication group.

This operation is * valid for Redis only.

See Also:

AWS * API Reference

*/ virtual Model::ModifyReplicationGroupOutcome ModifyReplicationGroup(const Model::ModifyReplicationGroupRequest& request) const; /** * A Callable wrapper for ModifyReplicationGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ModifyReplicationGroupOutcomeCallable ModifyReplicationGroupCallable(const ModifyReplicationGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::ModifyReplicationGroup, request); } /** * An Async wrapper for ModifyReplicationGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ModifyReplicationGroupAsync(const ModifyReplicationGroupRequestT& request, const ModifyReplicationGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::ModifyReplicationGroup, request, handler, context); } /** *

Modifies a replication group's shards (node groups) by allowing you to add * shards, remove shards, or rebalance the keyspaces among existing * shards.

See Also:

AWS * API Reference

*/ virtual Model::ModifyReplicationGroupShardConfigurationOutcome ModifyReplicationGroupShardConfiguration(const Model::ModifyReplicationGroupShardConfigurationRequest& request) const; /** * A Callable wrapper for ModifyReplicationGroupShardConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ModifyReplicationGroupShardConfigurationOutcomeCallable ModifyReplicationGroupShardConfigurationCallable(const ModifyReplicationGroupShardConfigurationRequestT& request) const { return SubmitCallable(&ElastiCacheClient::ModifyReplicationGroupShardConfiguration, request); } /** * An Async wrapper for ModifyReplicationGroupShardConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ModifyReplicationGroupShardConfigurationAsync(const ModifyReplicationGroupShardConfigurationRequestT& request, const ModifyReplicationGroupShardConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::ModifyReplicationGroupShardConfiguration, request, handler, context); } /** *

Changes user password(s) and/or access string.

See Also:

AWS * API Reference

*/ virtual Model::ModifyUserOutcome ModifyUser(const Model::ModifyUserRequest& request) const; /** * A Callable wrapper for ModifyUser that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ModifyUserOutcomeCallable ModifyUserCallable(const ModifyUserRequestT& request) const { return SubmitCallable(&ElastiCacheClient::ModifyUser, request); } /** * An Async wrapper for ModifyUser that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ModifyUserAsync(const ModifyUserRequestT& request, const ModifyUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::ModifyUser, request, handler, context); } /** *

Changes the list of users that belong to the user group.

See * Also:

AWS * API Reference

*/ virtual Model::ModifyUserGroupOutcome ModifyUserGroup(const Model::ModifyUserGroupRequest& request) const; /** * A Callable wrapper for ModifyUserGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ModifyUserGroupOutcomeCallable ModifyUserGroupCallable(const ModifyUserGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::ModifyUserGroup, request); } /** * An Async wrapper for ModifyUserGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ModifyUserGroupAsync(const ModifyUserGroupRequestT& request, const ModifyUserGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::ModifyUserGroup, request, handler, context); } /** *

Allows you to purchase a reserved cache node offering. Reserved nodes are not * eligible for cancellation and are non-refundable. For more information, see Managing * Costs with Reserved Nodes for Redis or Managing * Costs with Reserved Nodes for Memcached.

See Also:

AWS * API Reference

*/ virtual Model::PurchaseReservedCacheNodesOfferingOutcome PurchaseReservedCacheNodesOffering(const Model::PurchaseReservedCacheNodesOfferingRequest& request) const; /** * A Callable wrapper for PurchaseReservedCacheNodesOffering that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PurchaseReservedCacheNodesOfferingOutcomeCallable PurchaseReservedCacheNodesOfferingCallable(const PurchaseReservedCacheNodesOfferingRequestT& request) const { return SubmitCallable(&ElastiCacheClient::PurchaseReservedCacheNodesOffering, request); } /** * An Async wrapper for PurchaseReservedCacheNodesOffering that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PurchaseReservedCacheNodesOfferingAsync(const PurchaseReservedCacheNodesOfferingRequestT& request, const PurchaseReservedCacheNodesOfferingResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::PurchaseReservedCacheNodesOffering, request, handler, context); } /** *

Redistribute slots to ensure uniform distribution across existing shards in * the cluster.

See Also:

AWS * API Reference

*/ virtual Model::RebalanceSlotsInGlobalReplicationGroupOutcome RebalanceSlotsInGlobalReplicationGroup(const Model::RebalanceSlotsInGlobalReplicationGroupRequest& request) const; /** * A Callable wrapper for RebalanceSlotsInGlobalReplicationGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RebalanceSlotsInGlobalReplicationGroupOutcomeCallable RebalanceSlotsInGlobalReplicationGroupCallable(const RebalanceSlotsInGlobalReplicationGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::RebalanceSlotsInGlobalReplicationGroup, request); } /** * An Async wrapper for RebalanceSlotsInGlobalReplicationGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RebalanceSlotsInGlobalReplicationGroupAsync(const RebalanceSlotsInGlobalReplicationGroupRequestT& request, const RebalanceSlotsInGlobalReplicationGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::RebalanceSlotsInGlobalReplicationGroup, request, handler, context); } /** *

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.

*

The reboot causes the contents of the cache (for each cache node being * rebooted) to be lost.

When the reboot is complete, a cluster event is * created.

Rebooting a cluster is currently supported on Memcached and * Redis (cluster mode disabled) clusters. Rebooting is not supported on Redis * (cluster mode enabled) clusters.

If you make changes to parameters that * require a Redis (cluster mode enabled) cluster reboot for the changes to be * applied, see Rebooting * a Cluster for an alternate process.

See Also:

AWS * API Reference

*/ virtual Model::RebootCacheClusterOutcome RebootCacheCluster(const Model::RebootCacheClusterRequest& request) const; /** * A Callable wrapper for RebootCacheCluster that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RebootCacheClusterOutcomeCallable RebootCacheClusterCallable(const RebootCacheClusterRequestT& request) const { return SubmitCallable(&ElastiCacheClient::RebootCacheCluster, request); } /** * An Async wrapper for RebootCacheCluster that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RebootCacheClusterAsync(const RebootCacheClusterRequestT& request, const RebootCacheClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::RebootCacheCluster, request, handler, context); } /** *

Removes the tags identified by the TagKeys 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 Resource-level * permissions.

See Also:

AWS * API Reference

*/ virtual Model::RemoveTagsFromResourceOutcome RemoveTagsFromResource(const Model::RemoveTagsFromResourceRequest& request) const; /** * A Callable wrapper for RemoveTagsFromResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RemoveTagsFromResourceOutcomeCallable RemoveTagsFromResourceCallable(const RemoveTagsFromResourceRequestT& request) const { return SubmitCallable(&ElastiCacheClient::RemoveTagsFromResource, request); } /** * An Async wrapper for RemoveTagsFromResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RemoveTagsFromResourceAsync(const RemoveTagsFromResourceRequestT& request, const RemoveTagsFromResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::RemoveTagsFromResource, request, handler, context); } /** *

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 * ResetAllParameters and CacheParameterGroupName * parameters.

See Also:

AWS * API Reference

*/ virtual Model::ResetCacheParameterGroupOutcome ResetCacheParameterGroup(const Model::ResetCacheParameterGroupRequest& request) const; /** * A Callable wrapper for ResetCacheParameterGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ResetCacheParameterGroupOutcomeCallable ResetCacheParameterGroupCallable(const ResetCacheParameterGroupRequestT& request) const { return SubmitCallable(&ElastiCacheClient::ResetCacheParameterGroup, request); } /** * An Async wrapper for ResetCacheParameterGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ResetCacheParameterGroupAsync(const ResetCacheParameterGroupRequestT& request, const ResetCacheParameterGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::ResetCacheParameterGroup, request, handler, context); } /** *

Revokes ingress from a cache security group. Use this operation to disallow * access from an Amazon EC2 security group that had been previously * authorized.

See Also:

AWS * API Reference

*/ virtual Model::RevokeCacheSecurityGroupIngressOutcome RevokeCacheSecurityGroupIngress(const Model::RevokeCacheSecurityGroupIngressRequest& request) const; /** * A Callable wrapper for RevokeCacheSecurityGroupIngress that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RevokeCacheSecurityGroupIngressOutcomeCallable RevokeCacheSecurityGroupIngressCallable(const RevokeCacheSecurityGroupIngressRequestT& request) const { return SubmitCallable(&ElastiCacheClient::RevokeCacheSecurityGroupIngress, request); } /** * An Async wrapper for RevokeCacheSecurityGroupIngress that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RevokeCacheSecurityGroupIngressAsync(const RevokeCacheSecurityGroupIngressRequestT& request, const RevokeCacheSecurityGroupIngressResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::RevokeCacheSecurityGroupIngress, request, handler, context); } /** *

Start the migration of data.

See Also:

AWS * API Reference

*/ virtual Model::StartMigrationOutcome StartMigration(const Model::StartMigrationRequest& request) const; /** * A Callable wrapper for StartMigration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartMigrationOutcomeCallable StartMigrationCallable(const StartMigrationRequestT& request) const { return SubmitCallable(&ElastiCacheClient::StartMigration, request); } /** * An Async wrapper for StartMigration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartMigrationAsync(const StartMigrationRequestT& request, const StartMigrationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::StartMigration, request, handler, context); } /** *

Represents the input of a TestFailover operation which test * automatic failover on a specified node group (called shard in the console) in a * replication group (called cluster in the console).

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.

Note the following

  • 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.

  • *
  • If calling this operation on shards in different clusters (called * replication groups in the API and CLI), the calls can be made concurrently.

    *

  • 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.

  • *
  • 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:

    1. Replication group message: Test * Failover API called for node group <node-group-id>

    2. *

      Cache cluster message: Failover from primary node * <primary-node-id> to replica node <node-id> completed

      *
    3. Replication group message: Failover from primary node * <primary-node-id> to replica node <node-id> completed

      *
    4. Cache cluster message: Recovering cache nodes * <node-id>

    5. Cache cluster message: Finished * recovery for cache nodes <node-id>

    For more * information see:

Also see, Testing * Multi-AZ in the ElastiCache User Guide.

See Also:

* AWS * API Reference

*/ virtual Model::TestFailoverOutcome TestFailover(const Model::TestFailoverRequest& request) const; /** * A Callable wrapper for TestFailover that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TestFailoverOutcomeCallable TestFailoverCallable(const TestFailoverRequestT& request) const { return SubmitCallable(&ElastiCacheClient::TestFailover, request); } /** * An Async wrapper for TestFailover that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TestFailoverAsync(const TestFailoverRequestT& request, const TestFailoverResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ElastiCacheClient::TestFailover, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const ElastiCacheClientConfiguration& clientConfiguration); ElastiCacheClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace ElastiCache } // namespace Aws