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

com.amazonaws.services.elasticache.AmazonElastiCacheClient Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon ElastiCache module holds the client classes that are used for communicating with Amazon ElastiCache Service

There is a newer version: 1.12.780
Show newest version
/*
 * Copyright 2011-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not
 * use this file except in compliance with the License. A copy of the License is
 * located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.services.elasticache;

import org.w3c.dom.*;

import java.net.*;
import java.util.*;
import java.util.Map.Entry;

import org.apache.commons.logging.*;

import com.amazonaws.*;
import com.amazonaws.auth.*;
import com.amazonaws.handlers.*;
import com.amazonaws.http.*;
import com.amazonaws.internal.*;
import com.amazonaws.internal.auth.*;
import com.amazonaws.metrics.*;
import com.amazonaws.regions.*;
import com.amazonaws.transform.*;
import com.amazonaws.util.*;
import com.amazonaws.protocol.json.*;
import com.amazonaws.util.AWSRequestMetrics.Field;
import com.amazonaws.annotation.ThreadSafe;
import com.amazonaws.client.AwsSyncClientParams;
import com.amazonaws.services.elasticache.waiters.AmazonElastiCacheWaiters;

import com.amazonaws.AmazonServiceException;

import com.amazonaws.services.elasticache.model.*;
import com.amazonaws.services.elasticache.model.transform.*;

/**
 * Client for accessing Amazon ElastiCache. All service calls made using this
 * client are blocking, and will not return until the service call completes.
 * 

* 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 gain all of the benefits of a high-performance, * in-memory cache with far less of the administrative burden of 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. *

*/ @ThreadSafe public class AmazonElastiCacheClient extends AmazonWebServiceClient implements AmazonElastiCache { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AmazonElastiCache.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "elasticache"; private volatile AmazonElastiCacheWaiters waiters; /** * Client configuration factory providing ClientConfigurations tailored to * this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); /** * List of exception unmarshallers for all modeled exceptions */ protected final List> exceptionUnmarshallers = new ArrayList>(); /** * Constructs a new client to invoke service methods on Amazon ElastiCache. * A credentials provider chain will be used that searches for credentials * in this order: *
    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Instance profile credentials delivered through the Amazon EC2 * metadata service
  • *
* *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @see DefaultAWSCredentialsProviderChain */ public AmazonElastiCacheClient() { this(new DefaultAWSCredentialsProviderChain(), configFactory .getConfig()); } /** * Constructs a new client to invoke service methods on Amazon ElastiCache. * A credentials provider chain will be used that searches for credentials * in this order: *

    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Instance profile credentials delivered through the Amazon EC2 * metadata service
  • *
* *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param clientConfiguration * The client configuration options controlling how this client * connects to Amazon ElastiCache (ex: proxy settings, retry counts, * etc.). * * @see DefaultAWSCredentialsProviderChain */ public AmazonElastiCacheClient(ClientConfiguration clientConfiguration) { this(new DefaultAWSCredentialsProviderChain(), clientConfiguration); } /** * Constructs a new client to invoke service methods on Amazon ElastiCache * using the specified AWS account credentials. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when * authenticating with AWS services. */ public AmazonElastiCacheClient(AWSCredentials awsCredentials) { this(awsCredentials, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Amazon ElastiCache * using the specified AWS account credentials and client configuration * options. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when * authenticating with AWS services. * @param clientConfiguration * The client configuration options controlling how this client * connects to Amazon ElastiCache (ex: proxy settings, retry counts, * etc.). */ public AmazonElastiCacheClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) { super(clientConfiguration); this.awsCredentialsProvider = new StaticCredentialsProvider( awsCredentials); init(); } /** * Constructs a new client to invoke service methods on Amazon ElastiCache * using the specified AWS account credentials provider. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. */ public AmazonElastiCacheClient(AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Amazon ElastiCache * using the specified AWS account credentials provider and client * configuration options. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @param clientConfiguration * The client configuration options controlling how this client * connects to Amazon ElastiCache (ex: proxy settings, retry counts, * etc.). */ public AmazonElastiCacheClient( AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, null); } /** * Constructs a new client to invoke service methods on Amazon ElastiCache * using the specified AWS account credentials provider, client * configuration options, and request metric collector. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @param clientConfiguration * The client configuration options controlling how this client * connects to Amazon ElastiCache (ex: proxy settings, retry counts, * etc.). * @param requestMetricCollector * optional request metric collector */ public AmazonElastiCacheClient( AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) { super(clientConfiguration, requestMetricCollector); this.awsCredentialsProvider = awsCredentialsProvider; init(); } /** * Constructs a new client to invoke service methods on Amazon ElastiCache * using the specified parameters. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param clientParams * Object providing client parameters. */ AmazonElastiCacheClient(AwsSyncClientParams clientParams) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); init(); } private void init() { exceptionUnmarshallers .add(new ReservedCacheNodeAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new CacheSubnetGroupNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new CacheClusterNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new SubnetInUseExceptionUnmarshaller()); exceptionUnmarshallers .add(new CacheClusterAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidParameterValueExceptionUnmarshaller()); exceptionUnmarshallers .add(new CacheSecurityGroupAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new SnapshotAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidReplicationGroupStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidCacheSecurityGroupStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new CacheSecurityGroupQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new SnapshotQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new CacheParameterGroupQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new ReservedCacheNodesOfferingNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new CacheParameterGroupAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new NodeQuotaForCustomerExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new CacheParameterGroupNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new TagNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new ClusterQuotaForCustomerExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new NodeQuotaForClusterExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidCacheClusterStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidVPCNetworkStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new CacheSubnetQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new SnapshotFeatureNotSupportedExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidSnapshotStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new CacheSubnetGroupAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new CacheSubnetGroupQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new ReplicationGroupAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new InsufficientCacheClusterCapacityExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidParameterCombinationExceptionUnmarshaller()); exceptionUnmarshallers .add(new ReservedCacheNodeNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new SnapshotNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new CacheSubnetGroupInUseExceptionUnmarshaller()); exceptionUnmarshallers .add(new CacheSecurityGroupNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidCacheParameterGroupStateExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidARNExceptionUnmarshaller()); exceptionUnmarshallers .add(new TagQuotaPerResourceExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new ReplicationGroupNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidSubnetExceptionUnmarshaller()); exceptionUnmarshallers .add(new AuthorizationAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new ReservedCacheNodeQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new AuthorizationNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new StandardErrorUnmarshaller( com.amazonaws.services.elasticache.model.AmazonElastiCacheException.class)); setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly this.setEndpoint("elasticache.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s .addAll(chainFactory .newRequestHandlerChain("/com/amazonaws/services/elasticache/request.handlers")); requestHandler2s .addAll(chainFactory .newRequestHandler2Chain("/com/amazonaws/services/elasticache/request.handler2s")); } /** *

* The AddTagsToResource action adds up to 10 cost allocation tags to * the named resource. A cost allocation tag is a key-value pair * where the key and value are case-sensitive. Cost allocation tags can be * used to categorize and track your AWS costs. *

*

* When you apply tags to your ElastiCache resources, AWS 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. *

* * @param addTagsToResourceRequest * Represents the input of an AddTagsToResource action. * @return Result of the AddTagsToResource operation returned by the * service. * @throws CacheClusterNotFoundException * The requested cache cluster ID does not refer to an existing * cache cluster. * @throws SnapshotNotFoundException * The requested snapshot name does not refer to an existing * snapshot. * @throws TagQuotaPerResourceExceededException * The request cannot be processed because it would cause the * resource to have more than the allowed number of tags. The * maximum number of tags permitted on a resource is 10. * @throws InvalidARNException * The requested Amazon Resource Name (ARN) does not refer to an * existing resource. * @sample AmazonElastiCache.AddTagsToResource */ @Override public AddTagsToResourceResult addTagsToResource( AddTagsToResourceRequest addTagsToResourceRequest) { ExecutionContext executionContext = createExecutionContext(addTagsToResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AddTagsToResourceRequestMarshaller() .marshall(super .beforeMarshalling(addTagsToResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new AddTagsToResourceResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The AuthorizeCacheSecurityGroupIngress action 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. *

*
* * @param authorizeCacheSecurityGroupIngressRequest * Represents the input of an * AuthorizeCacheSecurityGroupIngress action. * @return Result of the AuthorizeCacheSecurityGroupIngress operation * returned by the service. * @throws CacheSecurityGroupNotFoundException * The requested cache security group name does not refer to an * existing cache security group. * @throws InvalidCacheSecurityGroupStateException * The current state of the cache security group does not allow * deletion. * @throws AuthorizationAlreadyExistsException * The specified Amazon EC2 security group is already authorized for * the specified cache security group. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.AuthorizeCacheSecurityGroupIngress */ @Override public CacheSecurityGroup authorizeCacheSecurityGroupIngress( AuthorizeCacheSecurityGroupIngressRequest authorizeCacheSecurityGroupIngressRequest) { ExecutionContext executionContext = createExecutionContext(authorizeCacheSecurityGroupIngressRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AuthorizeCacheSecurityGroupIngressRequestMarshaller() .marshall(super .beforeMarshalling(authorizeCacheSecurityGroupIngressRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CacheSecurityGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The CopySnapshot action makes a copy of an existing snapshot. *

* *

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

*
*

* Erorr Message: *

*
    *
  • *

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

    *
  • *
* * @param copySnapshotRequest * Represents the input of a CopySnapshotMessage action. * @return Result of the CopySnapshot operation returned by the service. * @throws SnapshotAlreadyExistsException * You already have a snapshot with the given name. * @throws SnapshotNotFoundException * The requested snapshot name does not refer to an existing * snapshot. * @throws SnapshotQuotaExceededException * The request cannot be processed because it would exceed the * maximum number of snapshots. * @throws InvalidSnapshotStateException * The current state of the snapshot does not allow the requested * action to occur. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.CopySnapshot */ @Override public Snapshot copySnapshot(CopySnapshotRequest copySnapshotRequest) { ExecutionContext executionContext = createExecutionContext(copySnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CopySnapshotRequestMarshaller().marshall(super .beforeMarshalling(copySnapshotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new SnapshotStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

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

* * @param createCacheClusterRequest * Represents the input of a CreateCacheCluster action. * @return Result of the CreateCacheCluster operation returned by the * service. * @throws ReplicationGroupNotFoundException * The specified replication group does not exist. * @throws InvalidReplicationGroupStateException * The requested replication group is not in the available * state. * @throws CacheClusterAlreadyExistsException * You already have a cache cluster with the given identifier. * @throws InsufficientCacheClusterCapacityException * The requested cache node type is not available in the specified * Availability Zone. * @throws CacheSecurityGroupNotFoundException * The requested cache security group name does not refer to an * existing cache security group. * @throws CacheSubnetGroupNotFoundException * The requested cache subnet group name does not refer to an * existing cache subnet group. * @throws ClusterQuotaForCustomerExceededException * The request cannot be processed because it would exceed the * allowed number of cache clusters per customer. * @throws NodeQuotaForClusterExceededException * The request cannot be processed because it would exceed the * allowed number of cache nodes in a single cache cluster. * @throws NodeQuotaForCustomerExceededException * The request cannot be processed because it would exceed the * allowed number of cache nodes per customer. * @throws CacheParameterGroupNotFoundException * The requested cache parameter group name does not refer to an * existing cache parameter group. * @throws InvalidVPCNetworkStateException * The VPC network is in an invalid state. * @throws TagQuotaPerResourceExceededException * The request cannot be processed because it would cause the * resource to have more than the allowed number of tags. The * maximum number of tags permitted on a resource is 10. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.CreateCacheCluster */ @Override public CacheCluster createCacheCluster( CreateCacheClusterRequest createCacheClusterRequest) { ExecutionContext executionContext = createExecutionContext(createCacheClusterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateCacheClusterRequestMarshaller() .marshall(super .beforeMarshalling(createCacheClusterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CacheClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The CreateCacheParameterGroup action creates a new cache parameter * group. A cache parameter group is a collection of parameters that you * apply to all of the nodes in a cache cluster. *

* * @param createCacheParameterGroupRequest * Represents the input of a CreateCacheParameterGroup action. * @return Result of the CreateCacheParameterGroup operation returned by the * service. * @throws CacheParameterGroupQuotaExceededException * The request cannot be processed because it would exceed the * maximum number of cache security groups. * @throws CacheParameterGroupAlreadyExistsException * A cache parameter group with the requested name already exists. * @throws InvalidCacheParameterGroupStateException * The current state of the cache parameter group does not allow the * requested action to occur. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.CreateCacheParameterGroup */ @Override public CacheParameterGroup createCacheParameterGroup( CreateCacheParameterGroupRequest createCacheParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(createCacheParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateCacheParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(createCacheParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CacheParameterGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The CreateCacheSecurityGroup action creates a new cache security * group. Use a cache security group to control access to one or more cache * clusters. *

*

* Cache security groups are only used when you are creating a cache cluster * outside of an Amazon Virtual Private Cloud (VPC). If you are creating a * cache cluster inside of a VPC, use a cache subnet group instead. For more * information, see CreateCacheSubnetGroup. *

* * @param createCacheSecurityGroupRequest * Represents the input of a CreateCacheSecurityGroup action. * @return Result of the CreateCacheSecurityGroup operation returned by the * service. * @throws CacheSecurityGroupAlreadyExistsException * A cache security group with the specified name already exists. * @throws CacheSecurityGroupQuotaExceededException * The request cannot be processed because it would exceed the * allowed number of cache security groups. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.CreateCacheSecurityGroup */ @Override public CacheSecurityGroup createCacheSecurityGroup( CreateCacheSecurityGroupRequest createCacheSecurityGroupRequest) { ExecutionContext executionContext = createExecutionContext(createCacheSecurityGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateCacheSecurityGroupRequestMarshaller() .marshall(super .beforeMarshalling(createCacheSecurityGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CacheSecurityGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The CreateCacheSubnetGroup action creates a new cache subnet * group. *

*

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

* * @param createCacheSubnetGroupRequest * Represents the input of a CreateCacheSubnetGroup action. * @return Result of the CreateCacheSubnetGroup operation returned by the * service. * @throws CacheSubnetGroupAlreadyExistsException * The requested cache subnet group name is already in use by an * existing cache subnet group. * @throws CacheSubnetGroupQuotaExceededException * The request cannot be processed because it would exceed the * allowed number of cache subnet groups. * @throws CacheSubnetQuotaExceededException * The request cannot be processed because it would exceed the * allowed number of subnets in a cache subnet group. * @throws InvalidSubnetException * An invalid subnet identifier was specified. * @sample AmazonElastiCache.CreateCacheSubnetGroup */ @Override public CacheSubnetGroup createCacheSubnetGroup( CreateCacheSubnetGroupRequest createCacheSubnetGroupRequest) { ExecutionContext executionContext = createExecutionContext(createCacheSubnetGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateCacheSubnetGroupRequestMarshaller() .marshall(super .beforeMarshalling(createCacheSubnetGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CacheSubnetGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The CreateReplicationGroup action creates a replication group. A * replication group is a collection of cache clusters, where one of the * cache clusters is a read/write primary and the others are read-only * replicas. Writes to the primary are automatically propagated to the * replicas. *

*

* When you create a replication group, you must specify an existing cache * cluster that is in the primary role. When the replication group has been * successfully created, you can add one or more read replica replicas to * it, up to a total of five read replicas. *

* *

* This action is valid only for Redis. *

*
* * @param createReplicationGroupRequest * Represents the input of a CreateReplicationGroup action. * @return Result of the CreateReplicationGroup operation returned by the * service. * @throws CacheClusterNotFoundException * The requested cache cluster ID does not refer to an existing * cache cluster. * @throws InvalidCacheClusterStateException * The requested cache cluster is not in the available state. * @throws ReplicationGroupAlreadyExistsException * The specified replication group already exists. * @throws InsufficientCacheClusterCapacityException * The requested cache node type is not available in the specified * Availability Zone. * @throws CacheSecurityGroupNotFoundException * The requested cache security group name does not refer to an * existing cache security group. * @throws CacheSubnetGroupNotFoundException * The requested cache subnet group name does not refer to an * existing cache subnet group. * @throws ClusterQuotaForCustomerExceededException * The request cannot be processed because it would exceed the * allowed number of cache clusters per customer. * @throws NodeQuotaForClusterExceededException * The request cannot be processed because it would exceed the * allowed number of cache nodes in a single cache cluster. * @throws NodeQuotaForCustomerExceededException * The request cannot be processed because it would exceed the * allowed number of cache nodes per customer. * @throws CacheParameterGroupNotFoundException * The requested cache parameter group name does not refer to an * existing cache parameter group. * @throws InvalidVPCNetworkStateException * The VPC network is in an invalid state. * @throws TagQuotaPerResourceExceededException * The request cannot be processed because it would cause the * resource to have more than the allowed number of tags. The * maximum number of tags permitted on a resource is 10. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.CreateReplicationGroup */ @Override public ReplicationGroup createReplicationGroup( CreateReplicationGroupRequest createReplicationGroupRequest) { ExecutionContext executionContext = createExecutionContext(createReplicationGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateReplicationGroupRequestMarshaller() .marshall(super .beforeMarshalling(createReplicationGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ReplicationGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The CreateSnapshot action creates a copy of an entire cache * cluster at a specific moment in time. *

* * @param createSnapshotRequest * Represents the input of a CreateSnapshot action. * @return Result of the CreateSnapshot operation returned by the service. * @throws SnapshotAlreadyExistsException * You already have a snapshot with the given name. * @throws CacheClusterNotFoundException * The requested cache cluster ID does not refer to an existing * cache cluster. * @throws InvalidCacheClusterStateException * The requested cache cluster is not in the available state. * @throws SnapshotQuotaExceededException * The request cannot be processed because it would exceed the * maximum number of snapshots. * @throws SnapshotFeatureNotSupportedException * You attempted one of the following actions:

*
    *
  • *

    * Creating a snapshot of a Redis cache cluster running on a * t1.micro cache node. *

    *
  • *
  • *

    * Creating a snapshot of a cache cluster that is running Memcached * rather than Redis. *

    *
  • *
*

* Neither of these are supported by ElastiCache. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @sample AmazonElastiCache.CreateSnapshot */ @Override public Snapshot createSnapshot(CreateSnapshotRequest createSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(createSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateSnapshotRequestMarshaller().marshall(super .beforeMarshalling(createSnapshotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new SnapshotStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The DeleteCacheCluster action deletes a previously provisioned * cache cluster. DeleteCacheCluster deletes all associated cache * nodes, node endpoints and the cache cluster itself. When you receive a * successful response from this action, Amazon ElastiCache immediately * begins deleting the cache cluster; you cannot cancel or revert this * action. *

*

* This API cannot be used to delete a cache cluster that is the last read * replica of a replication group that has Multi-AZ mode enabled. *

* * @param deleteCacheClusterRequest * Represents the input of a DeleteCacheCluster action. * @return Result of the DeleteCacheCluster operation returned by the * service. * @throws CacheClusterNotFoundException * The requested cache cluster ID does not refer to an existing * cache cluster. * @throws InvalidCacheClusterStateException * The requested cache cluster is not in the available state. * @throws SnapshotAlreadyExistsException * You already have a snapshot with the given name. * @throws SnapshotFeatureNotSupportedException * You attempted one of the following actions:

*
    *
  • *

    * Creating a snapshot of a Redis cache cluster running on a * t1.micro cache node. *

    *
  • *
  • *

    * Creating a snapshot of a cache cluster that is running Memcached * rather than Redis. *

    *
  • *
*

* Neither of these are supported by ElastiCache. * @throws SnapshotQuotaExceededException * The request cannot be processed because it would exceed the * maximum number of snapshots. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.DeleteCacheCluster */ @Override public CacheCluster deleteCacheCluster( DeleteCacheClusterRequest deleteCacheClusterRequest) { ExecutionContext executionContext = createExecutionContext(deleteCacheClusterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteCacheClusterRequestMarshaller() .marshall(super .beforeMarshalling(deleteCacheClusterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CacheClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The DeleteCacheParameterGroup action deletes the specified cache * parameter group. You cannot delete a cache parameter group if it is * associated with any cache clusters. *

* * @param deleteCacheParameterGroupRequest * Represents the input of a DeleteCacheParameterGroup action. * @return Result of the DeleteCacheParameterGroup operation returned by the * service. * @throws InvalidCacheParameterGroupStateException * The current state of the cache parameter group does not allow the * requested action to occur. * @throws CacheParameterGroupNotFoundException * The requested cache parameter group name does not refer to an * existing cache parameter group. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.DeleteCacheParameterGroup */ @Override public DeleteCacheParameterGroupResult deleteCacheParameterGroup( DeleteCacheParameterGroupRequest deleteCacheParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteCacheParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteCacheParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(deleteCacheParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteCacheParameterGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The DeleteCacheSecurityGroup action deletes a cache security * group. *

* *

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

*
* * @param deleteCacheSecurityGroupRequest * Represents the input of a DeleteCacheSecurityGroup action. * @return Result of the DeleteCacheSecurityGroup operation returned by the * service. * @throws InvalidCacheSecurityGroupStateException * The current state of the cache security group does not allow * deletion. * @throws CacheSecurityGroupNotFoundException * The requested cache security group name does not refer to an * existing cache security group. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.DeleteCacheSecurityGroup */ @Override public DeleteCacheSecurityGroupResult deleteCacheSecurityGroup( DeleteCacheSecurityGroupRequest deleteCacheSecurityGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteCacheSecurityGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteCacheSecurityGroupRequestMarshaller() .marshall(super .beforeMarshalling(deleteCacheSecurityGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteCacheSecurityGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The DeleteCacheSubnetGroup action deletes a cache subnet group. *

* *

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

*
* * @param deleteCacheSubnetGroupRequest * Represents the input of a DeleteCacheSubnetGroup action. * @return Result of the DeleteCacheSubnetGroup operation returned by the * service. * @throws CacheSubnetGroupInUseException * The requested cache subnet group is currently in use. * @throws CacheSubnetGroupNotFoundException * The requested cache subnet group name does not refer to an * existing cache subnet group. * @sample AmazonElastiCache.DeleteCacheSubnetGroup */ @Override public DeleteCacheSubnetGroupResult deleteCacheSubnetGroup( DeleteCacheSubnetGroupRequest deleteCacheSubnetGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteCacheSubnetGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteCacheSubnetGroupRequestMarshaller() .marshall(super .beforeMarshalling(deleteCacheSubnetGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteCacheSubnetGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The DeleteReplicationGroup action deletes an existing replication * group. By default, this action deletes the entire replication group, * including the primary cluster and all of the read replicas. You can * optionally delete only the read replicas, while retaining the primary * cluster. *

*

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

* * @param deleteReplicationGroupRequest * Represents the input of a DeleteReplicationGroup action. * @return Result of the DeleteReplicationGroup operation returned by the * service. * @throws ReplicationGroupNotFoundException * The specified replication group does not exist. * @throws InvalidReplicationGroupStateException * The requested replication group is not in the available * state. * @throws SnapshotAlreadyExistsException * You already have a snapshot with the given name. * @throws SnapshotFeatureNotSupportedException * You attempted one of the following actions:

*
    *
  • *

    * Creating a snapshot of a Redis cache cluster running on a * t1.micro cache node. *

    *
  • *
  • *

    * Creating a snapshot of a cache cluster that is running Memcached * rather than Redis. *

    *
  • *
*

* Neither of these are supported by ElastiCache. * @throws SnapshotQuotaExceededException * The request cannot be processed because it would exceed the * maximum number of snapshots. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.DeleteReplicationGroup */ @Override public ReplicationGroup deleteReplicationGroup( DeleteReplicationGroupRequest deleteReplicationGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteReplicationGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteReplicationGroupRequestMarshaller() .marshall(super .beforeMarshalling(deleteReplicationGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ReplicationGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The DeleteSnapshot action deletes an existing snapshot. When you * receive a successful response from this action, ElastiCache immediately * begins deleting the snapshot; you cannot cancel or revert this action. *

* * @param deleteSnapshotRequest * Represents the input of a DeleteSnapshot action. * @return Result of the DeleteSnapshot operation returned by the service. * @throws SnapshotNotFoundException * The requested snapshot name does not refer to an existing * snapshot. * @throws InvalidSnapshotStateException * The current state of the snapshot does not allow the requested * action to occur. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.DeleteSnapshot */ @Override public Snapshot deleteSnapshot(DeleteSnapshotRequest deleteSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(deleteSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteSnapshotRequestMarshaller().marshall(super .beforeMarshalling(deleteSnapshotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new SnapshotStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The DescribeCacheClusters action returns information about all * provisioned cache clusters if no cache cluster identifier is specified, * or about a specific cache cluster if a cache cluster identifier is * supplied. *

*

* By default, abbreviated information about the cache clusters(s) will be * returned. You can use the optional ShowDetails flag to retrieve * detailed information about the cache nodes associated with the cache * 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 * will be displayed until all of the nodes are successfully provisioned. *

*

* If the cluster is in the DELETING state, only cluster level information * will be displayed. *

*

* If cache nodes are currently being added to the cache cluster, node * endpoint information and creation time for the additional nodes will not * be displayed until they are completely provisioned. When the cache * cluster state is available, the cluster is ready for use. *

*

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

* * @param describeCacheClustersRequest * Represents the input of a DescribeCacheClusters action. * @return Result of the DescribeCacheClusters operation returned by the * service. * @throws CacheClusterNotFoundException * The requested cache cluster ID does not refer to an existing * cache cluster. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.DescribeCacheClusters */ @Override public DescribeCacheClustersResult describeCacheClusters( DescribeCacheClustersRequest describeCacheClustersRequest) { ExecutionContext executionContext = createExecutionContext(describeCacheClustersRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeCacheClustersRequestMarshaller() .marshall(super .beforeMarshalling(describeCacheClustersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeCacheClustersResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeCacheClustersResult describeCacheClusters() { return describeCacheClusters(new DescribeCacheClustersRequest()); } /** *

* The DescribeCacheEngineVersions action returns a list of the * available cache engines and their versions. *

* * @param describeCacheEngineVersionsRequest * Represents the input of a DescribeCacheEngineVersions * action. * @return Result of the DescribeCacheEngineVersions operation returned by * the service. * @sample AmazonElastiCache.DescribeCacheEngineVersions */ @Override public DescribeCacheEngineVersionsResult describeCacheEngineVersions( DescribeCacheEngineVersionsRequest describeCacheEngineVersionsRequest) { ExecutionContext executionContext = createExecutionContext(describeCacheEngineVersionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeCacheEngineVersionsRequestMarshaller() .marshall(super .beforeMarshalling(describeCacheEngineVersionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeCacheEngineVersionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeCacheEngineVersionsResult describeCacheEngineVersions() { return describeCacheEngineVersions(new DescribeCacheEngineVersionsRequest()); } /** *

* The DescribeCacheParameterGroups action returns a list of cache * parameter group descriptions. If a cache parameter group name is * specified, the list will contain only the descriptions for that group. *

* * @param describeCacheParameterGroupsRequest * Represents the input of a DescribeCacheParameterGroups * action. * @return Result of the DescribeCacheParameterGroups operation returned by * the service. * @throws CacheParameterGroupNotFoundException * The requested cache parameter group name does not refer to an * existing cache parameter group. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.DescribeCacheParameterGroups */ @Override public DescribeCacheParameterGroupsResult describeCacheParameterGroups( DescribeCacheParameterGroupsRequest describeCacheParameterGroupsRequest) { ExecutionContext executionContext = createExecutionContext(describeCacheParameterGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeCacheParameterGroupsRequestMarshaller() .marshall(super .beforeMarshalling(describeCacheParameterGroupsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeCacheParameterGroupsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeCacheParameterGroupsResult describeCacheParameterGroups() { return describeCacheParameterGroups(new DescribeCacheParameterGroupsRequest()); } /** *

* The DescribeCacheParameters action returns the detailed parameter * list for a particular cache parameter group. *

* * @param describeCacheParametersRequest * Represents the input of a DescribeCacheParameters action. * @return Result of the DescribeCacheParameters operation returned by the * service. * @throws CacheParameterGroupNotFoundException * The requested cache parameter group name does not refer to an * existing cache parameter group. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.DescribeCacheParameters */ @Override public DescribeCacheParametersResult describeCacheParameters( DescribeCacheParametersRequest describeCacheParametersRequest) { ExecutionContext executionContext = createExecutionContext(describeCacheParametersRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeCacheParametersRequestMarshaller() .marshall(super .beforeMarshalling(describeCacheParametersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeCacheParametersResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The DescribeCacheSecurityGroups action returns a list of cache * security group descriptions. If a cache security group name is specified, * the list will contain only the description of that group. *

* * @param describeCacheSecurityGroupsRequest * Represents the input of a DescribeCacheSecurityGroups * action. * @return Result of the DescribeCacheSecurityGroups operation returned by * the service. * @throws CacheSecurityGroupNotFoundException * The requested cache security group name does not refer to an * existing cache security group. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.DescribeCacheSecurityGroups */ @Override public DescribeCacheSecurityGroupsResult describeCacheSecurityGroups( DescribeCacheSecurityGroupsRequest describeCacheSecurityGroupsRequest) { ExecutionContext executionContext = createExecutionContext(describeCacheSecurityGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeCacheSecurityGroupsRequestMarshaller() .marshall(super .beforeMarshalling(describeCacheSecurityGroupsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeCacheSecurityGroupsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeCacheSecurityGroupsResult describeCacheSecurityGroups() { return describeCacheSecurityGroups(new DescribeCacheSecurityGroupsRequest()); } /** *

* The DescribeCacheSubnetGroups action returns a list of cache * subnet group descriptions. If a subnet group name is specified, the list * will contain only the description of that group. *

* * @param describeCacheSubnetGroupsRequest * Represents the input of a DescribeCacheSubnetGroups action. * @return Result of the DescribeCacheSubnetGroups operation returned by the * service. * @throws CacheSubnetGroupNotFoundException * The requested cache subnet group name does not refer to an * existing cache subnet group. * @sample AmazonElastiCache.DescribeCacheSubnetGroups */ @Override public DescribeCacheSubnetGroupsResult describeCacheSubnetGroups( DescribeCacheSubnetGroupsRequest describeCacheSubnetGroupsRequest) { ExecutionContext executionContext = createExecutionContext(describeCacheSubnetGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeCacheSubnetGroupsRequestMarshaller() .marshall(super .beforeMarshalling(describeCacheSubnetGroupsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeCacheSubnetGroupsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeCacheSubnetGroupsResult describeCacheSubnetGroups() { return describeCacheSubnetGroups(new DescribeCacheSubnetGroupsRequest()); } /** *

* The DescribeEngineDefaultParameters action returns the default * engine and system parameter information for the specified cache engine. *

* * @param describeEngineDefaultParametersRequest * Represents the input of a DescribeEngineDefaultParameters * action. * @return Result of the DescribeEngineDefaultParameters operation returned * by the service. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.DescribeEngineDefaultParameters */ @Override public EngineDefaults describeEngineDefaultParameters( DescribeEngineDefaultParametersRequest describeEngineDefaultParametersRequest) { ExecutionContext executionContext = createExecutionContext(describeEngineDefaultParametersRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeEngineDefaultParametersRequestMarshaller() .marshall(super .beforeMarshalling(describeEngineDefaultParametersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new EngineDefaultsStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The DescribeEvents action returns events related to cache * clusters, cache security groups, and cache parameter groups. You can * obtain events specific to a particular cache 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. *

* * @param describeEventsRequest * Represents the input of a DescribeEvents action. * @return Result of the DescribeEvents operation returned by the service. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.DescribeEvents */ @Override public DescribeEventsResult describeEvents( DescribeEventsRequest describeEventsRequest) { ExecutionContext executionContext = createExecutionContext(describeEventsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeEventsRequestMarshaller().marshall(super .beforeMarshalling(describeEventsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeEventsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeEventsResult describeEvents() { return describeEvents(new DescribeEventsRequest()); } /** *

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

* * @param describeReplicationGroupsRequest * Represents the input of a DescribeReplicationGroups action. * @return Result of the DescribeReplicationGroups operation returned by the * service. * @throws ReplicationGroupNotFoundException * The specified replication group does not exist. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.DescribeReplicationGroups */ @Override public DescribeReplicationGroupsResult describeReplicationGroups( DescribeReplicationGroupsRequest describeReplicationGroupsRequest) { ExecutionContext executionContext = createExecutionContext(describeReplicationGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeReplicationGroupsRequestMarshaller() .marshall(super .beforeMarshalling(describeReplicationGroupsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeReplicationGroupsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeReplicationGroupsResult describeReplicationGroups() { return describeReplicationGroups(new DescribeReplicationGroupsRequest()); } /** *

* The DescribeReservedCacheNodes action returns information about * reserved cache nodes for this account, or about a specified reserved * cache node. *

* * @param describeReservedCacheNodesRequest * Represents the input of a DescribeReservedCacheNodes * action. * @return Result of the DescribeReservedCacheNodes operation returned by * the service. * @throws ReservedCacheNodeNotFoundException * The requested reserved cache node was not found. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.DescribeReservedCacheNodes */ @Override public DescribeReservedCacheNodesResult describeReservedCacheNodes( DescribeReservedCacheNodesRequest describeReservedCacheNodesRequest) { ExecutionContext executionContext = createExecutionContext(describeReservedCacheNodesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeReservedCacheNodesRequestMarshaller() .marshall(super .beforeMarshalling(describeReservedCacheNodesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeReservedCacheNodesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeReservedCacheNodesResult describeReservedCacheNodes() { return describeReservedCacheNodes(new DescribeReservedCacheNodesRequest()); } /** *

* The DescribeReservedCacheNodesOfferings action lists available * reserved cache node offerings. *

* * @param describeReservedCacheNodesOfferingsRequest * Represents the input of a * DescribeReservedCacheNodesOfferings action. * @return Result of the DescribeReservedCacheNodesOfferings operation * returned by the service. * @throws ReservedCacheNodesOfferingNotFoundException * The requested cache node offering does not exist. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.DescribeReservedCacheNodesOfferings */ @Override public DescribeReservedCacheNodesOfferingsResult describeReservedCacheNodesOfferings( DescribeReservedCacheNodesOfferingsRequest describeReservedCacheNodesOfferingsRequest) { ExecutionContext executionContext = createExecutionContext(describeReservedCacheNodesOfferingsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeReservedCacheNodesOfferingsRequestMarshaller() .marshall(super .beforeMarshalling(describeReservedCacheNodesOfferingsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeReservedCacheNodesOfferingsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeReservedCacheNodesOfferingsResult describeReservedCacheNodesOfferings() { return describeReservedCacheNodesOfferings(new DescribeReservedCacheNodesOfferingsRequest()); } /** *

* The DescribeSnapshots action returns information about cache * cluster 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. *

* * @param describeSnapshotsRequest * Represents the input of a DescribeSnapshotsMessage action. * @return Result of the DescribeSnapshots operation returned by the * service. * @throws CacheClusterNotFoundException * The requested cache cluster ID does not refer to an existing * cache cluster. * @throws SnapshotNotFoundException * The requested snapshot name does not refer to an existing * snapshot. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.DescribeSnapshots */ @Override public DescribeSnapshotsResult describeSnapshots( DescribeSnapshotsRequest describeSnapshotsRequest) { ExecutionContext executionContext = createExecutionContext(describeSnapshotsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeSnapshotsRequestMarshaller() .marshall(super .beforeMarshalling(describeSnapshotsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeSnapshotsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeSnapshotsResult describeSnapshots() { return describeSnapshots(new DescribeSnapshotsRequest()); } /** *

* The ListAllowedNodeTypeModifications action lists all * available node types that you can scale your Redis cluster's or * replication group's current node type up to. *

*

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

* * @param listAllowedNodeTypeModificationsRequest * The input parameters for the * ListAllowedNodeTypeModifications action. * @return Result of the ListAllowedNodeTypeModifications operation returned * by the service. * @throws CacheClusterNotFoundException * The requested cache cluster ID does not refer to an existing * cache cluster. * @throws ReplicationGroupNotFoundException * The specified replication group does not exist. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @sample AmazonElastiCache.ListAllowedNodeTypeModifications */ @Override public ListAllowedNodeTypeModificationsResult listAllowedNodeTypeModifications( ListAllowedNodeTypeModificationsRequest listAllowedNodeTypeModificationsRequest) { ExecutionContext executionContext = createExecutionContext(listAllowedNodeTypeModificationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListAllowedNodeTypeModificationsRequestMarshaller() .marshall(super .beforeMarshalling(listAllowedNodeTypeModificationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListAllowedNodeTypeModificationsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public ListAllowedNodeTypeModificationsResult listAllowedNodeTypeModifications() { return listAllowedNodeTypeModifications(new ListAllowedNodeTypeModificationsRequest()); } /** *

* The ListTagsForResource action lists all cost allocation tags * currently on the named resource. A cost allocation tag is a * key-value pair where the key is case-sensitive and the value is optional. * Cost allocation tags can be used to categorize and track your AWS costs. *

*

* You can have a maximum of 10 cost allocation tags on an ElastiCache * resource. For more information, see Using Cost Allocation Tags in Amazon ElastiCache. *

* * @param listTagsForResourceRequest * The input parameters for the ListTagsForResource action. * @return Result of the ListTagsForResource operation returned by the * service. * @throws CacheClusterNotFoundException * The requested cache cluster ID does not refer to an existing * cache cluster. * @throws SnapshotNotFoundException * The requested snapshot name does not refer to an existing * snapshot. * @throws InvalidARNException * The requested Amazon Resource Name (ARN) does not refer to an * existing resource. * @sample AmazonElastiCache.ListTagsForResource */ @Override public ListTagsForResourceResult listTagsForResource( ListTagsForResourceRequest listTagsForResourceRequest) { ExecutionContext executionContext = createExecutionContext(listTagsForResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListTagsForResourceRequestMarshaller() .marshall(super .beforeMarshalling(listTagsForResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListTagsForResourceResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The ModifyCacheCluster action modifies the settings for a cache * cluster. You can use this action to change one or more cluster * configuration parameters by specifying the parameters and the new values. *

* * @param modifyCacheClusterRequest * Represents the input of a ModifyCacheCluster action. * @return Result of the ModifyCacheCluster operation returned by the * service. * @throws InvalidCacheClusterStateException * The requested cache cluster is not in the available state. * @throws InvalidCacheSecurityGroupStateException * The current state of the cache security group does not allow * deletion. * @throws InsufficientCacheClusterCapacityException * The requested cache node type is not available in the specified * Availability Zone. * @throws CacheClusterNotFoundException * The requested cache cluster ID does not refer to an existing * cache cluster. * @throws NodeQuotaForClusterExceededException * The request cannot be processed because it would exceed the * allowed number of cache nodes in a single cache cluster. * @throws NodeQuotaForCustomerExceededException * The request cannot be processed because it would exceed the * allowed number of cache nodes per customer. * @throws CacheSecurityGroupNotFoundException * The requested cache security group name does not refer to an * existing cache security group. * @throws CacheParameterGroupNotFoundException * The requested cache parameter group name does not refer to an * existing cache parameter group. * @throws InvalidVPCNetworkStateException * The VPC network is in an invalid state. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.ModifyCacheCluster */ @Override public CacheCluster modifyCacheCluster( ModifyCacheClusterRequest modifyCacheClusterRequest) { ExecutionContext executionContext = createExecutionContext(modifyCacheClusterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyCacheClusterRequestMarshaller() .marshall(super .beforeMarshalling(modifyCacheClusterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CacheClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The ModifyCacheParameterGroup action 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. *

* * @param modifyCacheParameterGroupRequest * Represents the input of a ModifyCacheParameterGroup action. * @return Result of the ModifyCacheParameterGroup operation returned by the * service. * @throws CacheParameterGroupNotFoundException * The requested cache parameter group name does not refer to an * existing cache parameter group. * @throws InvalidCacheParameterGroupStateException * The current state of the cache parameter group does not allow the * requested action to occur. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.ModifyCacheParameterGroup */ @Override public ModifyCacheParameterGroupResult modifyCacheParameterGroup( ModifyCacheParameterGroupRequest modifyCacheParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(modifyCacheParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyCacheParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(modifyCacheParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ModifyCacheParameterGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The ModifyCacheSubnetGroup action modifies an existing cache * subnet group. *

* * @param modifyCacheSubnetGroupRequest * Represents the input of a ModifyCacheSubnetGroup action. * @return Result of the ModifyCacheSubnetGroup operation returned by the * service. * @throws CacheSubnetGroupNotFoundException * The requested cache subnet group name does not refer to an * existing cache subnet group. * @throws CacheSubnetQuotaExceededException * The request cannot be processed because it would exceed the * allowed number of subnets in a cache subnet group. * @throws SubnetInUseException * The requested subnet is being used by another cache subnet group. * @throws InvalidSubnetException * An invalid subnet identifier was specified. * @sample AmazonElastiCache.ModifyCacheSubnetGroup */ @Override public CacheSubnetGroup modifyCacheSubnetGroup( ModifyCacheSubnetGroupRequest modifyCacheSubnetGroupRequest) { ExecutionContext executionContext = createExecutionContext(modifyCacheSubnetGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyCacheSubnetGroupRequestMarshaller() .marshall(super .beforeMarshalling(modifyCacheSubnetGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CacheSubnetGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The ModifyReplicationGroup action modifies the settings for a * replication group. *

* * @param modifyReplicationGroupRequest * Represents the input of a ModifyReplicationGroups action. * @return Result of the ModifyReplicationGroup operation returned by the * service. * @throws ReplicationGroupNotFoundException * The specified replication group does not exist. * @throws InvalidReplicationGroupStateException * The requested replication group is not in the available * state. * @throws InvalidCacheClusterStateException * The requested cache cluster is not in the available state. * @throws InvalidCacheSecurityGroupStateException * The current state of the cache security group does not allow * deletion. * @throws InsufficientCacheClusterCapacityException * The requested cache node type is not available in the specified * Availability Zone. * @throws CacheClusterNotFoundException * The requested cache cluster ID does not refer to an existing * cache cluster. * @throws NodeQuotaForClusterExceededException * The request cannot be processed because it would exceed the * allowed number of cache nodes in a single cache cluster. * @throws NodeQuotaForCustomerExceededException * The request cannot be processed because it would exceed the * allowed number of cache nodes per customer. * @throws CacheSecurityGroupNotFoundException * The requested cache security group name does not refer to an * existing cache security group. * @throws CacheParameterGroupNotFoundException * The requested cache parameter group name does not refer to an * existing cache parameter group. * @throws InvalidVPCNetworkStateException * The VPC network is in an invalid state. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.ModifyReplicationGroup */ @Override public ReplicationGroup modifyReplicationGroup( ModifyReplicationGroupRequest modifyReplicationGroupRequest) { ExecutionContext executionContext = createExecutionContext(modifyReplicationGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyReplicationGroupRequestMarshaller() .marshall(super .beforeMarshalling(modifyReplicationGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ReplicationGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The PurchaseReservedCacheNodesOffering action allows you to * purchase a reserved cache node offering. *

* * @param purchaseReservedCacheNodesOfferingRequest * Represents the input of a * PurchaseReservedCacheNodesOffering action. * @return Result of the PurchaseReservedCacheNodesOffering operation * returned by the service. * @throws ReservedCacheNodesOfferingNotFoundException * The requested cache node offering does not exist. * @throws ReservedCacheNodeAlreadyExistsException * You already have a reservation with the given identifier. * @throws ReservedCacheNodeQuotaExceededException * The request cannot be processed because it would exceed the * user's cache node quota. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.PurchaseReservedCacheNodesOffering */ @Override public ReservedCacheNode purchaseReservedCacheNodesOffering( PurchaseReservedCacheNodesOfferingRequest purchaseReservedCacheNodesOfferingRequest) { ExecutionContext executionContext = createExecutionContext(purchaseReservedCacheNodesOfferingRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PurchaseReservedCacheNodesOfferingRequestMarshaller() .marshall(super .beforeMarshalling(purchaseReservedCacheNodesOfferingRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ReservedCacheNodeStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The RebootCacheCluster action reboots some, or all, of the cache * nodes within a provisioned cache cluster. This API will apply any * modified cache parameter groups to the cache cluster. The reboot action * takes place as soon as possible, and results in a momentary outage to the * cache cluster. During the reboot, the cache 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 cache cluster event is created. *

* * @param rebootCacheClusterRequest * Represents the input of a RebootCacheCluster action. * @return Result of the RebootCacheCluster operation returned by the * service. * @throws InvalidCacheClusterStateException * The requested cache cluster is not in the available state. * @throws CacheClusterNotFoundException * The requested cache cluster ID does not refer to an existing * cache cluster. * @sample AmazonElastiCache.RebootCacheCluster */ @Override public CacheCluster rebootCacheCluster( RebootCacheClusterRequest rebootCacheClusterRequest) { ExecutionContext executionContext = createExecutionContext(rebootCacheClusterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RebootCacheClusterRequestMarshaller() .marshall(super .beforeMarshalling(rebootCacheClusterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CacheClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The RemoveTagsFromResource action removes the tags identified by * the TagKeys list from the named resource. *

* * @param removeTagsFromResourceRequest * Represents the input of a RemoveTagsFromResource action. * @return Result of the RemoveTagsFromResource operation returned by the * service. * @throws CacheClusterNotFoundException * The requested cache cluster ID does not refer to an existing * cache cluster. * @throws SnapshotNotFoundException * The requested snapshot name does not refer to an existing * snapshot. * @throws InvalidARNException * The requested Amazon Resource Name (ARN) does not refer to an * existing resource. * @throws TagNotFoundException * The requested tag was not found on this resource. * @sample AmazonElastiCache.RemoveTagsFromResource */ @Override public RemoveTagsFromResourceResult removeTagsFromResource( RemoveTagsFromResourceRequest removeTagsFromResourceRequest) { ExecutionContext executionContext = createExecutionContext(removeTagsFromResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RemoveTagsFromResourceRequestMarshaller() .marshall(super .beforeMarshalling(removeTagsFromResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new RemoveTagsFromResourceResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The ResetCacheParameterGroup action 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. *

* * @param resetCacheParameterGroupRequest * Represents the input of a ResetCacheParameterGroup action. * @return Result of the ResetCacheParameterGroup operation returned by the * service. * @throws InvalidCacheParameterGroupStateException * The current state of the cache parameter group does not allow the * requested action to occur. * @throws CacheParameterGroupNotFoundException * The requested cache parameter group name does not refer to an * existing cache parameter group. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.ResetCacheParameterGroup */ @Override public ResetCacheParameterGroupResult resetCacheParameterGroup( ResetCacheParameterGroupRequest resetCacheParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(resetCacheParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ResetCacheParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(resetCacheParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ResetCacheParameterGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The RevokeCacheSecurityGroupIngress action revokes ingress from a * cache security group. Use this action to disallow access from an Amazon * EC2 security group that had been previously authorized. *

* * @param revokeCacheSecurityGroupIngressRequest * Represents the input of a RevokeCacheSecurityGroupIngress * action. * @return Result of the RevokeCacheSecurityGroupIngress operation returned * by the service. * @throws CacheSecurityGroupNotFoundException * The requested cache security group name does not refer to an * existing cache security group. * @throws AuthorizationNotFoundException * The specified Amazon EC2 security group is not authorized for the * specified cache security group. * @throws InvalidCacheSecurityGroupStateException * The current state of the cache security group does not allow * deletion. * @throws InvalidParameterValueException * The value for a parameter is invalid. * @throws InvalidParameterCombinationException * Two or more incompatible parameters were specified. * @sample AmazonElastiCache.RevokeCacheSecurityGroupIngress */ @Override public CacheSecurityGroup revokeCacheSecurityGroupIngress( RevokeCacheSecurityGroupIngressRequest revokeCacheSecurityGroupIngressRequest) { ExecutionContext executionContext = createExecutionContext(revokeCacheSecurityGroupIngressRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RevokeCacheSecurityGroupIngressRequestMarshaller() .marshall(super .beforeMarshalling(revokeCacheSecurityGroupIngressRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CacheSecurityGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * Returns additional metadata for a previously executed successful, * request, typically used for debugging issues where a service isn't acting * as expected. This data isn't considered part of the result data returned * by an operation, so it's available through this separate, diagnostic * interface. *

* Response metadata is only cached for a limited period of time, so if you * need to access this extra diagnostic information for an executed request, * you should use this method to retrieve it as soon as possible after * executing the request. * * @param request * The originally executed request * * @return The response metadata for the specified request, or null if none * is available. */ public ResponseMetadata getCachedResponseMetadata( AmazonWebServiceRequest request) { return client.getResponseMetadataForRequest(request); } /** * Normal invoke with authentication. Credentials are required and may be * overriden at the request level. **/ private Response invoke( Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { executionContext.setCredentialsProvider(CredentialUtils .getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider)); return doInvoke(request, responseHandler, executionContext); } /** * Invoke with no authentication. Credentials are not required and any * credentials set on the client or request will be ignored for this * operation. **/ private Response anonymousInvoke( Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return doInvoke(request, responseHandler, executionContext); } /** * Invoke the request using the http client. Assumes credentials (or lack * thereof) have been configured in the ExecutionContext beforehand. **/ private Response doInvoke( Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { request.setEndpoint(endpoint); request.setTimeOffset(timeOffset); DefaultErrorResponseHandler errorResponseHandler = new DefaultErrorResponseHandler( exceptionUnmarshallers); return client.execute(request, responseHandler, errorResponseHandler, executionContext); } public AmazonElastiCacheWaiters waiters() { if (waiters == null) { synchronized (this) { if (waiters == null) { waiters = new AmazonElastiCacheWaiters(this); } } } return waiters; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy