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

com.amazonaws.services.redshift.AmazonRedshiftClient Maven / Gradle / Ivy

Go to download

The AWS SDK for Java with support for OSGi. The AWS SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).

There is a newer version: 1.11.60
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.redshift;

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.AmazonServiceException;

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

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

* Amazon Redshift Overview *

* This is an interface reference for Amazon Redshift. It contains documentation * for one of the programming or command line interfaces you can use to manage * Amazon Redshift clusters. Note that Amazon Redshift is asynchronous, which * means that some interfaces may require techniques, such as polling or * asynchronous callback handlers, to determine when a command has been applied. * In this reference, the parameter descriptions indicate whether a change is * applied immediately, on the next instance reboot, or during the next * maintenance window. For a summary of the Amazon Redshift cluster management * interfaces, go to Using the Amazon Redshift Management Interfaces . *

*

* Amazon Redshift manages all the work of setting up, operating, and scaling a * data warehouse: provisioning capacity, monitoring and backing up the cluster, * and applying patches and upgrades to the Amazon Redshift engine. You can * focus on using your data to acquire new insights for your business and * customers. *

*

* If you are a first-time user of Amazon Redshift, we recommend that you begin * by reading the The Amazon Redshift Getting Started Guide *

*

* If you are a database developer, the Amazon * Redshift Database Developer Guide explains how to design, build, query, * and maintain the databases that make up your data warehouse. *

*/ @ThreadSafe public class AmazonRedshiftClient extends AmazonWebServiceClient implements AmazonRedshift { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AmazonRedshift.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "redshift"; /** * 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 Redshift. 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 AmazonRedshiftClient() { this(new DefaultAWSCredentialsProviderChain(), configFactory .getConfig()); } /** * Constructs a new client to invoke service methods on Amazon Redshift. 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 Redshift (ex: proxy settings, retry counts, * etc.). * * @see DefaultAWSCredentialsProviderChain */ public AmazonRedshiftClient(ClientConfiguration clientConfiguration) { this(new DefaultAWSCredentialsProviderChain(), clientConfiguration); } /** * Constructs a new client to invoke service methods on Amazon Redshift * 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 AmazonRedshiftClient(AWSCredentials awsCredentials) { this(awsCredentials, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Amazon Redshift * 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 Redshift (ex: proxy settings, retry counts, * etc.). */ public AmazonRedshiftClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) { super(clientConfiguration); this.awsCredentialsProvider = new StaticCredentialsProvider( awsCredentials); init(); } /** * Constructs a new client to invoke service methods on Amazon Redshift * 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 AmazonRedshiftClient(AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Amazon Redshift * 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 Redshift (ex: proxy settings, retry counts, * etc.). */ public AmazonRedshiftClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, null); } /** * Constructs a new client to invoke service methods on Amazon Redshift * 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 Redshift (ex: proxy settings, retry counts, * etc.). * @param requestMetricCollector * optional request metric collector */ public AmazonRedshiftClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) { super(clientConfiguration, requestMetricCollector); this.awsCredentialsProvider = awsCredentialsProvider; init(); } /** * Constructs a new client to invoke service methods on Amazon Redshift * 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. */ AmazonRedshiftClient(AwsSyncClientParams clientParams) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); init(); } private void init() { exceptionUnmarshallers .add(new InvalidHsmConfigurationStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new SubscriptionEventIdNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidSubscriptionStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new SubscriptionSeverityNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new CopyToRegionDisabledExceptionUnmarshaller()); exceptionUnmarshallers .add(new SubscriptionCategoryNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidRestoreExceptionUnmarshaller()); exceptionUnmarshallers .add(new SnapshotCopyDisabledExceptionUnmarshaller()); exceptionUnmarshallers .add(new ClusterSubnetGroupQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers.add(new SNSInvalidTopicExceptionUnmarshaller()); exceptionUnmarshallers .add(new DependentServiceRequestThrottlingExceptionUnmarshaller()); exceptionUnmarshallers.add(new BucketNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new LimitExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidTableRestoreArgumentExceptionUnmarshaller()); exceptionUnmarshallers .add(new SnapshotCopyGrantAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new SnapshotCopyGrantQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new UnknownSnapshotCopyRegionExceptionUnmarshaller()); exceptionUnmarshallers .add(new TableRestoreNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new ClusterNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new ResourceNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new ClusterQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new HsmConfigurationQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new UnsupportedOperationExceptionUnmarshaller()); exceptionUnmarshallers .add(new SnapshotCopyGrantNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new HsmClientCertificateNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new SnapshotCopyAlreadyEnabledExceptionUnmarshaller()); exceptionUnmarshallers .add(new HsmConfigurationAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new SubscriptionNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidClusterStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new SubnetAlreadyInUseExceptionUnmarshaller()); exceptionUnmarshallers .add(new ClusterSubnetQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidClusterParameterGroupStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new ClusterSubnetGroupNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new SnapshotCopyAlreadyDisabledExceptionUnmarshaller()); exceptionUnmarshallers .add(new ClusterSecurityGroupNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new ClusterSnapshotQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidSubnetExceptionUnmarshaller()); exceptionUnmarshallers .add(new ClusterAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new HsmConfigurationNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new SNSNoAuthorizationExceptionUnmarshaller()); exceptionUnmarshallers .add(new NumberOfNodesPerClusterLimitExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new NumberOfNodesQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new ClusterSnapshotAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new ClusterSecurityGroupAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new AuthorizationQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new ReservedNodeOfferingNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new InProgressTableRestoreQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new AccessToSnapshotDeniedExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidElasticIpExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidSnapshotCopyGrantStateExceptionUnmarshaller()); exceptionUnmarshallers.add(new ResizeNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidHsmClientCertificateStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidClusterSubnetGroupStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new ClusterSnapshotNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidTagExceptionUnmarshaller()); exceptionUnmarshallers .add(new HsmClientCertificateAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new HsmClientCertificateQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidClusterSecurityGroupStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidVPCNetworkStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new SNSTopicArnNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new ReservedNodeQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new ClusterParameterGroupQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new UnauthorizedOperationExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidClusterSubnetStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new SubscriptionAlreadyExistExceptionUnmarshaller()); exceptionUnmarshallers .add(new ReservedNodeAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new ReservedNodeNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new IncompatibleOrderableOptionsExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidS3BucketNameExceptionUnmarshaller()); exceptionUnmarshallers .add(new UnsupportedOptionExceptionUnmarshaller()); exceptionUnmarshallers .add(new InsufficientClusterCapacityExceptionUnmarshaller()); exceptionUnmarshallers .add(new ClusterSubnetGroupAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers.add(new TagLimitExceededExceptionUnmarshaller()); exceptionUnmarshallers.add(new SourceNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new ClusterParameterGroupNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new ClusterSecurityGroupQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new EventSubscriptionQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new AuthorizationAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidClusterSnapshotStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new ClusterParameterGroupAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new InsufficientS3BucketPolicyExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidS3KeyPrefixExceptionUnmarshaller()); exceptionUnmarshallers .add(new AuthorizationNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new StandardErrorUnmarshaller( com.amazonaws.services.redshift.model.AmazonRedshiftException.class)); setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly this.setEndpoint("redshift.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s .addAll(chainFactory .newRequestHandlerChain("/com/amazonaws/services/redshift/request.handlers")); requestHandler2s .addAll(chainFactory .newRequestHandler2Chain("/com/amazonaws/services/redshift/request.handler2s")); } /** *

* Adds an inbound (ingress) rule to an Amazon Redshift security group. * Depending on whether the application accessing your cluster is running on * the Internet or an Amazon EC2 instance, you can authorize inbound access * to either a Classless Interdomain Routing (CIDR)/Internet Protocol (IP) * range or to an Amazon EC2 security group. You can add as many as 20 * ingress rules to an Amazon Redshift security group. *

*

* If you authorize access to an Amazon EC2 security group, specify * EC2SecurityGroupName and EC2SecurityGroupOwnerId. The * Amazon EC2 security group and Amazon Redshift cluster must be in the same * AWS region. *

*

* If you authorize access to a CIDR/IP address range, specify * CIDRIP. For an overview of CIDR blocks, see the Wikipedia article * on * Classless Inter-Domain Routing. *

*

* You must also associate the security group with a cluster so that clients * running on these IP addresses or the EC2 instance are authorized to * connect to the cluster. For information about managing security groups, * go to Working with Security Groups in the Amazon Redshift Cluster * Management Guide. *

* * @param authorizeClusterSecurityGroupIngressRequest * @return Result of the AuthorizeClusterSecurityGroupIngress operation * returned by the service. * @throws ClusterSecurityGroupNotFoundException * The cluster security group name does not refer to an existing * cluster security group. * @throws InvalidClusterSecurityGroupStateException * The state of the cluster security group is not * available. * @throws AuthorizationAlreadyExistsException * The specified CIDR block or EC2 security group is already * authorized for the specified cluster security group. * @throws AuthorizationQuotaExceededException * The authorization quota for the cluster security group has been * reached. * @sample AmazonRedshift.AuthorizeClusterSecurityGroupIngress */ @Override public ClusterSecurityGroup authorizeClusterSecurityGroupIngress( AuthorizeClusterSecurityGroupIngressRequest authorizeClusterSecurityGroupIngressRequest) { ExecutionContext executionContext = createExecutionContext(authorizeClusterSecurityGroupIngressRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AuthorizeClusterSecurityGroupIngressRequestMarshaller() .marshall(super .beforeMarshalling(authorizeClusterSecurityGroupIngressRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ClusterSecurityGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Authorizes the specified AWS customer account to restore the specified * snapshot. *

*

* For more information about working with snapshots, go to Amazon Redshift Snapshots in the Amazon Redshift Cluster * Management Guide. *

* * @param authorizeSnapshotAccessRequest * @return Result of the AuthorizeSnapshotAccess operation returned by the * service. * @throws ClusterSnapshotNotFoundException * The snapshot identifier does not refer to an existing cluster * snapshot. * @throws AuthorizationAlreadyExistsException * The specified CIDR block or EC2 security group is already * authorized for the specified cluster security group. * @throws AuthorizationQuotaExceededException * The authorization quota for the cluster security group has been * reached. * @throws DependentServiceRequestThrottlingException * The request cannot be completed because a dependent service is * throttling requests made by Amazon Redshift on your behalf. Wait * and retry the request. * @throws InvalidClusterSnapshotStateException * The specified cluster snapshot is not in the * available state, or other accounts are authorized to * access the snapshot. * @throws LimitExceededException * The encryption key has exceeded its grant limit in AWS KMS. * @sample AmazonRedshift.AuthorizeSnapshotAccess */ @Override public Snapshot authorizeSnapshotAccess( AuthorizeSnapshotAccessRequest authorizeSnapshotAccessRequest) { ExecutionContext executionContext = createExecutionContext(authorizeSnapshotAccessRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AuthorizeSnapshotAccessRequestMarshaller() .marshall(super .beforeMarshalling(authorizeSnapshotAccessRequest)); // 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); } } /** *

* Copies the specified automated cluster snapshot to a new manual cluster * snapshot. The source must be an automated snapshot and it must be in the * available state. *

*

* When you delete a cluster, Amazon Redshift deletes any automated * snapshots of the cluster. Also, when the retention period of the snapshot * expires, Amazon Redshift automatically deletes it. If you want to keep an * automated snapshot for a longer period, you can make a manual copy of the * snapshot. Manual snapshots are retained until you delete them. *

*

* For more information about working with snapshots, go to Amazon Redshift Snapshots in the Amazon Redshift Cluster * Management Guide. *

* * @param copyClusterSnapshotRequest * @return Result of the CopyClusterSnapshot operation returned by the * service. * @throws ClusterSnapshotAlreadyExistsException * The value specified as a snapshot identifier is already used by * an existing snapshot. * @throws ClusterSnapshotNotFoundException * The snapshot identifier does not refer to an existing cluster * snapshot. * @throws InvalidClusterSnapshotStateException * The specified cluster snapshot is not in the * available state, or other accounts are authorized to * access the snapshot. * @throws ClusterSnapshotQuotaExceededException * The request would result in the user exceeding the allowed number * of cluster snapshots. * @sample AmazonRedshift.CopyClusterSnapshot */ @Override public Snapshot copyClusterSnapshot( CopyClusterSnapshotRequest copyClusterSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(copyClusterSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CopyClusterSnapshotRequestMarshaller() .marshall(super .beforeMarshalling(copyClusterSnapshotRequest)); // 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); } } /** *

* Creates a new cluster. To create the cluster in virtual private cloud * (VPC), you must provide cluster subnet group name. If you don't provide a * cluster subnet group name or the cluster security group parameter, Amazon * Redshift creates a non-VPC cluster, it associates the default cluster * security group with the cluster. For more information about managing * clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster * Management Guide . *

* * @param createClusterRequest * @return Result of the CreateCluster operation returned by the service. * @throws ClusterAlreadyExistsException * The account already has a cluster with the given identifier. * @throws InsufficientClusterCapacityException * The number of nodes specified exceeds the allotted capacity of * the cluster. * @throws ClusterParameterGroupNotFoundException * The parameter group name does not refer to an existing parameter * group. * @throws ClusterSecurityGroupNotFoundException * The cluster security group name does not refer to an existing * cluster security group. * @throws ClusterQuotaExceededException * The request would exceed the allowed number of cluster instances * for this account. For information about increasing your quota, go * to Limits in Amazon Redshift in the Amazon Redshift Cluster * Management Guide. * @throws NumberOfNodesQuotaExceededException * The operation would exceed the number of nodes allotted to the * account. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster * Management Guide. * @throws NumberOfNodesPerClusterLimitExceededException * The operation would exceed the number of nodes allowed for a * cluster. * @throws ClusterSubnetGroupNotFoundException * The cluster subnet group name does not refer to an existing * cluster subnet group. * @throws InvalidVPCNetworkStateException * The cluster subnet group does not cover all Availability Zones. * @throws InvalidClusterSubnetGroupStateException * The cluster subnet group cannot be deleted because it is in use. * @throws InvalidSubnetException * The requested subnet is not valid, or not all of the subnets are * in the same VPC. * @throws UnauthorizedOperationException * Your account is not authorized to perform the requested * operation. * @throws HsmClientCertificateNotFoundException * There is no Amazon Redshift HSM client certificate with the * specified identifier. * @throws HsmConfigurationNotFoundException * There is no Amazon Redshift HSM configuration with the specified * identifier. * @throws InvalidElasticIpException * The Elastic IP (EIP) is invalid or cannot be found. * @throws TagLimitExceededException * The request exceeds the limit of 10 tags for the resource. * @throws InvalidTagException * The tag is invalid. * @throws LimitExceededException * The encryption key has exceeded its grant limit in AWS KMS. * @throws DependentServiceRequestThrottlingException * The request cannot be completed because a dependent service is * throttling requests made by Amazon Redshift on your behalf. Wait * and retry the request. * @sample AmazonRedshift.CreateCluster */ @Override public Cluster createCluster(CreateClusterRequest createClusterRequest) { ExecutionContext executionContext = createExecutionContext(createClusterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateClusterRequestMarshaller().marshall(super .beforeMarshalling(createClusterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an Amazon Redshift parameter group. *

*

* Creating parameter groups is independent of creating clusters. You can * associate a cluster with a parameter group when you create the cluster. * You can also associate an existing cluster with a parameter group after * the cluster is created by using ModifyCluster. *

*

* Parameters in the parameter group define specific behavior that applies * to the databases you create on the cluster. For more information about * parameters and parameter groups, go to Amazon Redshift Parameter Groups in the Amazon Redshift Cluster * Management Guide. *

* * @param createClusterParameterGroupRequest * @return Result of the CreateClusterParameterGroup operation returned by * the service. * @throws ClusterParameterGroupQuotaExceededException * The request would result in the user exceeding the allowed number * of cluster parameter groups. For information about increasing * your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster * Management Guide. * @throws ClusterParameterGroupAlreadyExistsException * A cluster parameter group with the same name already exists. * @throws TagLimitExceededException * The request exceeds the limit of 10 tags for the resource. * @throws InvalidTagException * The tag is invalid. * @sample AmazonRedshift.CreateClusterParameterGroup */ @Override public ClusterParameterGroup createClusterParameterGroup( CreateClusterParameterGroupRequest createClusterParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(createClusterParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateClusterParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(createClusterParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ClusterParameterGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new Amazon Redshift security group. You use security groups to * control access to non-VPC clusters. *

*

* For information about managing security groups, go to Amazon Redshift Cluster Security Groups in the Amazon Redshift * Cluster Management Guide. *

* * @param createClusterSecurityGroupRequest * @return Result of the CreateClusterSecurityGroup operation returned by * the service. * @throws ClusterSecurityGroupAlreadyExistsException * A cluster security group with the same name already exists. * @throws ClusterSecurityGroupQuotaExceededException * The request would result in the user exceeding the allowed number * of cluster security groups. For information about increasing your * quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster * Management Guide. * @throws TagLimitExceededException * The request exceeds the limit of 10 tags for the resource. * @throws InvalidTagException * The tag is invalid. * @sample AmazonRedshift.CreateClusterSecurityGroup */ @Override public ClusterSecurityGroup createClusterSecurityGroup( CreateClusterSecurityGroupRequest createClusterSecurityGroupRequest) { ExecutionContext executionContext = createExecutionContext(createClusterSecurityGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateClusterSecurityGroupRequestMarshaller() .marshall(super .beforeMarshalling(createClusterSecurityGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ClusterSecurityGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a manual snapshot of the specified cluster. The cluster must be * in the available state. *

*

* For more information about working with snapshots, go to Amazon Redshift Snapshots in the Amazon Redshift Cluster * Management Guide. *

* * @param createClusterSnapshotRequest * @return Result of the CreateClusterSnapshot operation returned by the * service. * @throws ClusterSnapshotAlreadyExistsException * The value specified as a snapshot identifier is already used by * an existing snapshot. * @throws InvalidClusterStateException * The specified cluster is not in the available state. * @throws ClusterNotFoundException * The ClusterIdentifier parameter does not refer to an * existing cluster. * @throws ClusterSnapshotQuotaExceededException * The request would result in the user exceeding the allowed number * of cluster snapshots. * @throws TagLimitExceededException * The request exceeds the limit of 10 tags for the resource. * @throws InvalidTagException * The tag is invalid. * @sample AmazonRedshift.CreateClusterSnapshot */ @Override public Snapshot createClusterSnapshot( CreateClusterSnapshotRequest createClusterSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(createClusterSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateClusterSnapshotRequestMarshaller() .marshall(super .beforeMarshalling(createClusterSnapshotRequest)); // 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); } } /** *

* Creates a new Amazon Redshift subnet group. You must provide a list of * one or more subnets in your existing Amazon Virtual Private Cloud (Amazon * VPC) when creating Amazon Redshift subnet group. *

*

* For information about subnet groups, go to Amazon Redshift Cluster Subnet Groups in the Amazon Redshift * Cluster Management Guide. *

* * @param createClusterSubnetGroupRequest * @return Result of the CreateClusterSubnetGroup operation returned by the * service. * @throws ClusterSubnetGroupAlreadyExistsException * A ClusterSubnetGroupName is already used by an existing * cluster subnet group. * @throws ClusterSubnetGroupQuotaExceededException * The request would result in user exceeding the allowed number of * cluster subnet groups. For information about increasing your * quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster * Management Guide. * @throws ClusterSubnetQuotaExceededException * The request would result in user exceeding the allowed number of * subnets in a cluster subnet groups. For information about * increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster * Management Guide. * @throws InvalidSubnetException * The requested subnet is not valid, or not all of the subnets are * in the same VPC. * @throws UnauthorizedOperationException * Your account is not authorized to perform the requested * operation. * @throws TagLimitExceededException * The request exceeds the limit of 10 tags for the resource. * @throws InvalidTagException * The tag is invalid. * @throws DependentServiceRequestThrottlingException * The request cannot be completed because a dependent service is * throttling requests made by Amazon Redshift on your behalf. Wait * and retry the request. * @sample AmazonRedshift.CreateClusterSubnetGroup */ @Override public ClusterSubnetGroup createClusterSubnetGroup( CreateClusterSubnetGroupRequest createClusterSubnetGroupRequest) { ExecutionContext executionContext = createExecutionContext(createClusterSubnetGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateClusterSubnetGroupRequestMarshaller() .marshall(super .beforeMarshalling(createClusterSubnetGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ClusterSubnetGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an Amazon Redshift event notification subscription. This action * requires an ARN (Amazon Resource Name) of an Amazon SNS topic created by * either the Amazon Redshift console, the Amazon SNS console, or the Amazon * SNS API. To obtain an ARN with Amazon SNS, you must create a topic in * Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS * console. *

*

* You can specify the source type, and lists of Amazon Redshift source IDs, * event categories, and event severities. Notifications will be sent for * all events you want that match those criteria. For example, you can * specify source type = cluster, source ID = my-cluster-1 and mycluster2, * event categories = Availability, Backup, and severity = ERROR. The * subscription will only send notifications for those ERROR events in the * Availability and Backup categories for the specified clusters. *

*

* If you specify both the source type and source IDs, such as source type = * cluster and source identifier = my-cluster-1, notifications will be sent * for all the cluster events for my-cluster-1. If you specify a source type * but do not specify a source identifier, you will receive notice of the * events for the objects of that type in your AWS account. If you do not * specify either the SourceType nor the SourceIdentifier, you will be * notified of events generated from all Amazon Redshift sources belonging * to your AWS account. You must specify a source type if you specify a * source ID. *

* * @param createEventSubscriptionRequest * @return Result of the CreateEventSubscription operation returned by the * service. * @throws EventSubscriptionQuotaExceededException * The request would exceed the allowed number of event * subscriptions for this account. For information about increasing * your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster * Management Guide. * @throws SubscriptionAlreadyExistException * There is already an existing event notification subscription with * the specified name. * @throws SNSInvalidTopicException * Amazon SNS has responded that there is a problem with the * specified Amazon SNS topic. * @throws SNSNoAuthorizationException * You do not have permission to publish to the specified Amazon SNS * topic. * @throws SNSTopicArnNotFoundException * An Amazon SNS topic with the specified Amazon Resource Name (ARN) * does not exist. * @throws SubscriptionEventIdNotFoundException * An Amazon Redshift event with the specified event ID does not * exist. * @throws SubscriptionCategoryNotFoundException * The value specified for the event category was not one of the * allowed values, or it specified a category that does not apply to * the specified source type. The allowed values are Configuration, * Management, Monitoring, and Security. * @throws SubscriptionSeverityNotFoundException * The value specified for the event severity was not one of the * allowed values, or it specified a severity that does not apply to * the specified source type. The allowed values are ERROR and INFO. * @throws SourceNotFoundException * The specified Amazon Redshift event source could not be found. * @throws TagLimitExceededException * The request exceeds the limit of 10 tags for the resource. * @throws InvalidTagException * The tag is invalid. * @sample AmazonRedshift.CreateEventSubscription */ @Override public EventSubscription createEventSubscription( CreateEventSubscriptionRequest createEventSubscriptionRequest) { ExecutionContext executionContext = createExecutionContext(createEventSubscriptionRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateEventSubscriptionRequestMarshaller() .marshall(super .beforeMarshalling(createEventSubscriptionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new EventSubscriptionStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an HSM client certificate that an Amazon Redshift cluster will * use to connect to the client's HSM in order to store and retrieve the * keys used to encrypt the cluster databases. *

*

* The command returns a public key, which you must store in the HSM. In * addition to creating the HSM certificate, you must create an Amazon * Redshift HSM configuration that provides a cluster the information needed * to store and use encryption keys in the HSM. For more information, go to * Hardware Security Modules in the Amazon Redshift Cluster Management * Guide. *

* * @param createHsmClientCertificateRequest * @return Result of the CreateHsmClientCertificate operation returned by * the service. * @throws HsmClientCertificateAlreadyExistsException * There is already an existing Amazon Redshift HSM client * certificate with the specified identifier. * @throws HsmClientCertificateQuotaExceededException * The quota for HSM client certificates has been reached. For * information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster * Management Guide. * @throws TagLimitExceededException * The request exceeds the limit of 10 tags for the resource. * @throws InvalidTagException * The tag is invalid. * @sample AmazonRedshift.CreateHsmClientCertificate */ @Override public HsmClientCertificate createHsmClientCertificate( CreateHsmClientCertificateRequest createHsmClientCertificateRequest) { ExecutionContext executionContext = createExecutionContext(createHsmClientCertificateRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateHsmClientCertificateRequestMarshaller() .marshall(super .beforeMarshalling(createHsmClientCertificateRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new HsmClientCertificateStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an HSM configuration that contains the information required by an * Amazon Redshift cluster to store and use database encryption keys in a * Hardware Security Module (HSM). After creating the HSM configuration, you * can specify it as a parameter when creating a cluster. The cluster will * then store its encryption keys in the HSM. *

*

* In addition to creating an HSM configuration, you must also create an HSM * client certificate. For more information, go to Hardware Security Modules in the Amazon Redshift Cluster Management * Guide. *

* * @param createHsmConfigurationRequest * @return Result of the CreateHsmConfiguration operation returned by the * service. * @throws HsmConfigurationAlreadyExistsException * There is already an existing Amazon Redshift HSM configuration * with the specified identifier. * @throws HsmConfigurationQuotaExceededException * The quota for HSM configurations has been reached. For * information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster * Management Guide. * @throws TagLimitExceededException * The request exceeds the limit of 10 tags for the resource. * @throws InvalidTagException * The tag is invalid. * @sample AmazonRedshift.CreateHsmConfiguration */ @Override public HsmConfiguration createHsmConfiguration( CreateHsmConfigurationRequest createHsmConfigurationRequest) { ExecutionContext executionContext = createExecutionContext(createHsmConfigurationRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateHsmConfigurationRequestMarshaller() .marshall(super .beforeMarshalling(createHsmConfigurationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new HsmConfigurationStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a snapshot copy grant that permits Amazon Redshift to use a * customer master key (CMK) from AWS Key Management Service (AWS KMS) to * encrypt copied snapshots in a destination region. *

*

* For more information about managing snapshot copy grants, go to Amazon Redshift Database Encryption in the Amazon Redshift * Cluster Management Guide. *

* * @param createSnapshotCopyGrantRequest * The result of the CreateSnapshotCopyGrant action. * @return Result of the CreateSnapshotCopyGrant operation returned by the * service. * @throws SnapshotCopyGrantAlreadyExistsException * The snapshot copy grant can't be created because a grant with the * same name already exists. * @throws SnapshotCopyGrantQuotaExceededException * The AWS account has exceeded the maximum number of snapshot copy * grants in this region. * @throws LimitExceededException * The encryption key has exceeded its grant limit in AWS KMS. * @throws TagLimitExceededException * The request exceeds the limit of 10 tags for the resource. * @throws InvalidTagException * The tag is invalid. * @throws DependentServiceRequestThrottlingException * The request cannot be completed because a dependent service is * throttling requests made by Amazon Redshift on your behalf. Wait * and retry the request. * @sample AmazonRedshift.CreateSnapshotCopyGrant */ @Override public SnapshotCopyGrant createSnapshotCopyGrant( CreateSnapshotCopyGrantRequest createSnapshotCopyGrantRequest) { ExecutionContext executionContext = createExecutionContext(createSnapshotCopyGrantRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateSnapshotCopyGrantRequestMarshaller() .marshall(super .beforeMarshalling(createSnapshotCopyGrantRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new SnapshotCopyGrantStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Adds one or more tags to a specified resource. *

*

* A resource can have up to 10 tags. If you try to create more than 10 tags * for a resource, you will receive an error and the attempt will fail. *

*

* If you specify a key that already exists for the resource, the value for * that key will be updated with the new value. *

* * @param createTagsRequest * Contains the output from the CreateTags action. * @return Result of the CreateTags operation returned by the service. * @throws TagLimitExceededException * The request exceeds the limit of 10 tags for the resource. * @throws ResourceNotFoundException * The resource could not be found. * @throws InvalidTagException * The tag is invalid. * @sample AmazonRedshift.CreateTags */ @Override public CreateTagsResult createTags(CreateTagsRequest createTagsRequest) { ExecutionContext executionContext = createExecutionContext(createTagsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateTagsRequestMarshaller().marshall(super .beforeMarshalling(createTagsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CreateTagsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a previously provisioned cluster. A successful response from the * web service indicates that the request was received correctly. Use * DescribeClusters to monitor the status of the deletion. The delete * operation cannot be canceled or reverted once submitted. For more * information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster * Management Guide . *

*

* If you want to shut down the cluster and retain it for future use, set * SkipFinalClusterSnapshot to false and specify a name * for FinalClusterSnapshotIdentifier. You can later restore this * snapshot to resume using the cluster. If a final cluster snapshot is * requested, the status of the cluster will be "final-snapshot" while the * snapshot is being taken, then it's "deleting" once Amazon Redshift begins * deleting the cluster. *

*

* For more information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster * Management Guide . *

* * @param deleteClusterRequest * @return Result of the DeleteCluster operation returned by the service. * @throws ClusterNotFoundException * The ClusterIdentifier parameter does not refer to an * existing cluster. * @throws InvalidClusterStateException * The specified cluster is not in the available state. * @throws ClusterSnapshotAlreadyExistsException * The value specified as a snapshot identifier is already used by * an existing snapshot. * @throws ClusterSnapshotQuotaExceededException * The request would result in the user exceeding the allowed number * of cluster snapshots. * @sample AmazonRedshift.DeleteCluster */ @Override public Cluster deleteCluster(DeleteClusterRequest deleteClusterRequest) { ExecutionContext executionContext = createExecutionContext(deleteClusterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteClusterRequestMarshaller().marshall(super .beforeMarshalling(deleteClusterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a specified Amazon Redshift parameter group. You cannot * delete a parameter group if it is associated with a cluster. *

* * @param deleteClusterParameterGroupRequest * @return Result of the DeleteClusterParameterGroup operation returned by * the service. * @throws InvalidClusterParameterGroupStateException * The cluster parameter group action can not be completed because * another task is in progress that involves the parameter group. * Wait a few moments and try the operation again. * @throws ClusterParameterGroupNotFoundException * The parameter group name does not refer to an existing parameter * group. * @sample AmazonRedshift.DeleteClusterParameterGroup */ @Override public DeleteClusterParameterGroupResult deleteClusterParameterGroup( DeleteClusterParameterGroupRequest deleteClusterParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteClusterParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteClusterParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(deleteClusterParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteClusterParameterGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes an Amazon Redshift security group. *

* You cannot delete a security group that is associated with any * clusters. You cannot delete the default security group. *

* For information about managing security groups, go to Amazon Redshift Cluster Security Groups in the Amazon Redshift * Cluster Management Guide. *

* * @param deleteClusterSecurityGroupRequest * @return Result of the DeleteClusterSecurityGroup operation returned by * the service. * @throws InvalidClusterSecurityGroupStateException * The state of the cluster security group is not * available. * @throws ClusterSecurityGroupNotFoundException * The cluster security group name does not refer to an existing * cluster security group. * @sample AmazonRedshift.DeleteClusterSecurityGroup */ @Override public DeleteClusterSecurityGroupResult deleteClusterSecurityGroup( DeleteClusterSecurityGroupRequest deleteClusterSecurityGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteClusterSecurityGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteClusterSecurityGroupRequestMarshaller() .marshall(super .beforeMarshalling(deleteClusterSecurityGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteClusterSecurityGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified manual snapshot. The snapshot must be in the * available state, with no other users authorized to access * the snapshot. *

*

* Unlike automated snapshots, manual snapshots are retained even after you * delete your cluster. Amazon Redshift does not delete your manual * snapshots. You must delete manual snapshot explicitly to avoid getting * charged. If other accounts are authorized to access the snapshot, you * must revoke all of the authorizations before you can delete the snapshot. *

* * @param deleteClusterSnapshotRequest * @return Result of the DeleteClusterSnapshot operation returned by the * service. * @throws InvalidClusterSnapshotStateException * The specified cluster snapshot is not in the * available state, or other accounts are authorized to * access the snapshot. * @throws ClusterSnapshotNotFoundException * The snapshot identifier does not refer to an existing cluster * snapshot. * @sample AmazonRedshift.DeleteClusterSnapshot */ @Override public Snapshot deleteClusterSnapshot( DeleteClusterSnapshotRequest deleteClusterSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(deleteClusterSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteClusterSnapshotRequestMarshaller() .marshall(super .beforeMarshalling(deleteClusterSnapshotRequest)); // 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); } } /** *

* Deletes the specified cluster subnet group. *

* * @param deleteClusterSubnetGroupRequest * @return Result of the DeleteClusterSubnetGroup operation returned by the * service. * @throws InvalidClusterSubnetGroupStateException * The cluster subnet group cannot be deleted because it is in use. * @throws InvalidClusterSubnetStateException * The state of the subnet is invalid. * @throws ClusterSubnetGroupNotFoundException * The cluster subnet group name does not refer to an existing * cluster subnet group. * @sample AmazonRedshift.DeleteClusterSubnetGroup */ @Override public DeleteClusterSubnetGroupResult deleteClusterSubnetGroup( DeleteClusterSubnetGroupRequest deleteClusterSubnetGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteClusterSubnetGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteClusterSubnetGroupRequestMarshaller() .marshall(super .beforeMarshalling(deleteClusterSubnetGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteClusterSubnetGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes an Amazon Redshift event notification subscription. *

* * @param deleteEventSubscriptionRequest * @return Result of the DeleteEventSubscription operation returned by the * service. * @throws SubscriptionNotFoundException * An Amazon Redshift event notification subscription with the * specified name does not exist. * @throws InvalidSubscriptionStateException * The subscription request is invalid because it is a duplicate * request. This subscription request is already in progress. * @sample AmazonRedshift.DeleteEventSubscription */ @Override public DeleteEventSubscriptionResult deleteEventSubscription( DeleteEventSubscriptionRequest deleteEventSubscriptionRequest) { ExecutionContext executionContext = createExecutionContext(deleteEventSubscriptionRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteEventSubscriptionRequestMarshaller() .marshall(super .beforeMarshalling(deleteEventSubscriptionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteEventSubscriptionResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified HSM client certificate. *

* * @param deleteHsmClientCertificateRequest * @return Result of the DeleteHsmClientCertificate operation returned by * the service. * @throws InvalidHsmClientCertificateStateException * The specified HSM client certificate is not in the * available state, or it is still in use by one or * more Amazon Redshift clusters. * @throws HsmClientCertificateNotFoundException * There is no Amazon Redshift HSM client certificate with the * specified identifier. * @sample AmazonRedshift.DeleteHsmClientCertificate */ @Override public DeleteHsmClientCertificateResult deleteHsmClientCertificate( DeleteHsmClientCertificateRequest deleteHsmClientCertificateRequest) { ExecutionContext executionContext = createExecutionContext(deleteHsmClientCertificateRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteHsmClientCertificateRequestMarshaller() .marshall(super .beforeMarshalling(deleteHsmClientCertificateRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteHsmClientCertificateResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified Amazon Redshift HSM configuration. *

* * @param deleteHsmConfigurationRequest * @return Result of the DeleteHsmConfiguration operation returned by the * service. * @throws InvalidHsmConfigurationStateException * The specified HSM configuration is not in the * available state, or it is still in use by one or * more Amazon Redshift clusters. * @throws HsmConfigurationNotFoundException * There is no Amazon Redshift HSM configuration with the specified * identifier. * @sample AmazonRedshift.DeleteHsmConfiguration */ @Override public DeleteHsmConfigurationResult deleteHsmConfiguration( DeleteHsmConfigurationRequest deleteHsmConfigurationRequest) { ExecutionContext executionContext = createExecutionContext(deleteHsmConfigurationRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteHsmConfigurationRequestMarshaller() .marshall(super .beforeMarshalling(deleteHsmConfigurationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteHsmConfigurationResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified snapshot copy grant. *

* * @param deleteSnapshotCopyGrantRequest * The result of the DeleteSnapshotCopyGrant action. * @return Result of the DeleteSnapshotCopyGrant operation returned by the * service. * @throws InvalidSnapshotCopyGrantStateException * The snapshot copy grant can't be deleted because it is used by * one or more clusters. * @throws SnapshotCopyGrantNotFoundException * The specified snapshot copy grant can't be found. Make sure that * the name is typed correctly and that the grant exists in the * destination region. * @sample AmazonRedshift.DeleteSnapshotCopyGrant */ @Override public DeleteSnapshotCopyGrantResult deleteSnapshotCopyGrant( DeleteSnapshotCopyGrantRequest deleteSnapshotCopyGrantRequest) { ExecutionContext executionContext = createExecutionContext(deleteSnapshotCopyGrantRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteSnapshotCopyGrantRequestMarshaller() .marshall(super .beforeMarshalling(deleteSnapshotCopyGrantRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteSnapshotCopyGrantResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a tag or tags from a resource. You must provide the ARN of the * resource from which you want to delete the tag or tags. *

* * @param deleteTagsRequest * Contains the output from the DeleteTags action. * @return Result of the DeleteTags operation returned by the service. * @throws ResourceNotFoundException * The resource could not be found. * @throws InvalidTagException * The tag is invalid. * @sample AmazonRedshift.DeleteTags */ @Override public DeleteTagsResult deleteTags(DeleteTagsRequest deleteTagsRequest) { ExecutionContext executionContext = createExecutionContext(deleteTagsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteTagsRequestMarshaller().marshall(super .beforeMarshalling(deleteTagsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteTagsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of Amazon Redshift parameter groups, including parameter * groups you created and the default parameter group. For each parameter * group, the response includes the parameter group name, description, and * parameter group family name. You can optionally specify a name to * retrieve the description of a specific parameter group. *

*

* For more information about parameters and parameter groups, go to Amazon Redshift Parameter Groups in the Amazon Redshift Cluster * Management Guide. *

*

* If you specify both tag keys and tag values in the same request, Amazon * Redshift returns all parameter groups that match any combination of the * specified keys and values. For example, if you have owner * and environment for tag keys, and admin and * test for tag values, all parameter groups that have any * combination of those values are returned. *

*

* If both tag keys and values are omitted from the request, parameter * groups are returned regardless of whether they have tag keys or values * associated with them. *

* * @param describeClusterParameterGroupsRequest * @return Result of the DescribeClusterParameterGroups operation returned * by the service. * @throws ClusterParameterGroupNotFoundException * The parameter group name does not refer to an existing parameter * group. * @throws InvalidTagException * The tag is invalid. * @sample AmazonRedshift.DescribeClusterParameterGroups */ @Override public DescribeClusterParameterGroupsResult describeClusterParameterGroups( DescribeClusterParameterGroupsRequest describeClusterParameterGroupsRequest) { ExecutionContext executionContext = createExecutionContext(describeClusterParameterGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeClusterParameterGroupsRequestMarshaller() .marshall(super .beforeMarshalling(describeClusterParameterGroupsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeClusterParameterGroupsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeClusterParameterGroupsResult describeClusterParameterGroups() { return describeClusterParameterGroups(new DescribeClusterParameterGroupsRequest()); } /** *

* Returns a detailed list of parameters contained within the specified * Amazon Redshift parameter group. For each parameter the response includes * information such as parameter name, description, data type, value, * whether the parameter value is modifiable, and so on. *

*

* You can specify source filter to retrieve parameters of only * specific type. For example, to retrieve parameters that were modified by * a user action such as from ModifyClusterParameterGroup, you can * specify source equal to user. *

*

* For more information about parameters and parameter groups, go to Amazon Redshift Parameter Groups in the Amazon Redshift Cluster * Management Guide. *

* * @param describeClusterParametersRequest * @return Result of the DescribeClusterParameters operation returned by the * service. * @throws ClusterParameterGroupNotFoundException * The parameter group name does not refer to an existing parameter * group. * @sample AmazonRedshift.DescribeClusterParameters */ @Override public DescribeClusterParametersResult describeClusterParameters( DescribeClusterParametersRequest describeClusterParametersRequest) { ExecutionContext executionContext = createExecutionContext(describeClusterParametersRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeClusterParametersRequestMarshaller() .marshall(super .beforeMarshalling(describeClusterParametersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeClusterParametersResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns information about Amazon Redshift security groups. If the name of * a security group is specified, the response will contain only information * about only that security group. *

*

* For information about managing security groups, go to Amazon Redshift Cluster Security Groups in the Amazon Redshift * Cluster Management Guide. *

*

* If you specify both tag keys and tag values in the same request, Amazon * Redshift returns all security groups that match any combination of the * specified keys and values. For example, if you have owner * and environment for tag keys, and admin and * test for tag values, all security groups that have any * combination of those values are returned. *

*

* If both tag keys and values are omitted from the request, security groups * are returned regardless of whether they have tag keys or values * associated with them. *

* * @param describeClusterSecurityGroupsRequest * @return Result of the DescribeClusterSecurityGroups operation returned by * the service. * @throws ClusterSecurityGroupNotFoundException * The cluster security group name does not refer to an existing * cluster security group. * @throws InvalidTagException * The tag is invalid. * @sample AmazonRedshift.DescribeClusterSecurityGroups */ @Override public DescribeClusterSecurityGroupsResult describeClusterSecurityGroups( DescribeClusterSecurityGroupsRequest describeClusterSecurityGroupsRequest) { ExecutionContext executionContext = createExecutionContext(describeClusterSecurityGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeClusterSecurityGroupsRequestMarshaller() .marshall(super .beforeMarshalling(describeClusterSecurityGroupsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeClusterSecurityGroupsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeClusterSecurityGroupsResult describeClusterSecurityGroups() { return describeClusterSecurityGroups(new DescribeClusterSecurityGroupsRequest()); } /** *

* Returns one or more snapshot objects, which contain metadata about your * cluster snapshots. By default, this operation returns information about * all snapshots of all clusters that are owned by you AWS customer account. * No information is returned for snapshots owned by inactive AWS customer * accounts. *

*

* If you specify both tag keys and tag values in the same request, Amazon * Redshift returns all snapshots that match any combination of the * specified keys and values. For example, if you have owner * and environment for tag keys, and admin and * test for tag values, all snapshots that have any combination * of those values are returned. Only snapshots that you own are returned in * the response; shared snapshots are not returned with the tag key and tag * value request parameters. *

*

* If both tag keys and values are omitted from the request, snapshots are * returned regardless of whether they have tag keys or values associated * with them. *

* * @param describeClusterSnapshotsRequest * @return Result of the DescribeClusterSnapshots operation returned by the * service. * @throws ClusterSnapshotNotFoundException * The snapshot identifier does not refer to an existing cluster * snapshot. * @throws InvalidTagException * The tag is invalid. * @sample AmazonRedshift.DescribeClusterSnapshots */ @Override public DescribeClusterSnapshotsResult describeClusterSnapshots( DescribeClusterSnapshotsRequest describeClusterSnapshotsRequest) { ExecutionContext executionContext = createExecutionContext(describeClusterSnapshotsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeClusterSnapshotsRequestMarshaller() .marshall(super .beforeMarshalling(describeClusterSnapshotsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeClusterSnapshotsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeClusterSnapshotsResult describeClusterSnapshots() { return describeClusterSnapshots(new DescribeClusterSnapshotsRequest()); } /** *

* Returns one or more cluster subnet group objects, which contain metadata * about your cluster subnet groups. By default, this operation returns * information about all cluster subnet groups that are defined in you AWS * account. *

*

* If you specify both tag keys and tag values in the same request, Amazon * Redshift returns all subnet groups that match any combination of the * specified keys and values. For example, if you have owner * and environment for tag keys, and admin and * test for tag values, all subnet groups that have any * combination of those values are returned. *

*

* If both tag keys and values are omitted from the request, subnet groups * are returned regardless of whether they have tag keys or values * associated with them. *

* * @param describeClusterSubnetGroupsRequest * @return Result of the DescribeClusterSubnetGroups operation returned by * the service. * @throws ClusterSubnetGroupNotFoundException * The cluster subnet group name does not refer to an existing * cluster subnet group. * @throws InvalidTagException * The tag is invalid. * @sample AmazonRedshift.DescribeClusterSubnetGroups */ @Override public DescribeClusterSubnetGroupsResult describeClusterSubnetGroups( DescribeClusterSubnetGroupsRequest describeClusterSubnetGroupsRequest) { ExecutionContext executionContext = createExecutionContext(describeClusterSubnetGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeClusterSubnetGroupsRequestMarshaller() .marshall(super .beforeMarshalling(describeClusterSubnetGroupsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeClusterSubnetGroupsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeClusterSubnetGroupsResult describeClusterSubnetGroups() { return describeClusterSubnetGroups(new DescribeClusterSubnetGroupsRequest()); } /** *

* Returns descriptions of the available Amazon Redshift cluster versions. * You can call this operation even before creating any clusters to learn * more about the Amazon Redshift versions. For more information about * managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster * Management Guide *

* * @param describeClusterVersionsRequest * @return Result of the DescribeClusterVersions operation returned by the * service. * @sample AmazonRedshift.DescribeClusterVersions */ @Override public DescribeClusterVersionsResult describeClusterVersions( DescribeClusterVersionsRequest describeClusterVersionsRequest) { ExecutionContext executionContext = createExecutionContext(describeClusterVersionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeClusterVersionsRequestMarshaller() .marshall(super .beforeMarshalling(describeClusterVersionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeClusterVersionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeClusterVersionsResult describeClusterVersions() { return describeClusterVersions(new DescribeClusterVersionsRequest()); } /** *

* Returns properties of provisioned clusters including general cluster * properties, cluster database properties, maintenance and backup * properties, and security and access properties. This operation supports * pagination. For more information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster * Management Guide . *

*

* If you specify both tag keys and tag values in the same request, Amazon * Redshift returns all clusters that match any combination of the specified * keys and values. For example, if you have owner and * environment for tag keys, and admin and * test for tag values, all clusters that have any combination * of those values are returned. *

*

* If both tag keys and values are omitted from the request, clusters are * returned regardless of whether they have tag keys or values associated * with them. *

* * @param describeClustersRequest * @return Result of the DescribeClusters operation returned by the service. * @throws ClusterNotFoundException * The ClusterIdentifier parameter does not refer to an * existing cluster. * @throws InvalidTagException * The tag is invalid. * @sample AmazonRedshift.DescribeClusters */ @Override public DescribeClustersResult describeClusters( DescribeClustersRequest describeClustersRequest) { ExecutionContext executionContext = createExecutionContext(describeClustersRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeClustersRequestMarshaller() .marshall(super .beforeMarshalling(describeClustersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeClustersResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeClustersResult describeClusters() { return describeClusters(new DescribeClustersRequest()); } /** *

* Returns a list of parameter settings for the specified parameter group * family. *

*

* For more information about parameters and parameter groups, go to Amazon Redshift Parameter Groups in the Amazon Redshift Cluster * Management Guide. *

* * @param describeDefaultClusterParametersRequest * @return Result of the DescribeDefaultClusterParameters operation returned * by the service. * @sample AmazonRedshift.DescribeDefaultClusterParameters */ @Override public DefaultClusterParameters describeDefaultClusterParameters( DescribeDefaultClusterParametersRequest describeDefaultClusterParametersRequest) { ExecutionContext executionContext = createExecutionContext(describeDefaultClusterParametersRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDefaultClusterParametersRequestMarshaller() .marshall(super .beforeMarshalling(describeDefaultClusterParametersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DefaultClusterParametersStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Displays a list of event categories for all event source types, or for a * specified source type. For a list of the event categories and source * types, go to Amazon Redshift Event Notifications. *

* * @param describeEventCategoriesRequest * @return Result of the DescribeEventCategories operation returned by the * service. * @sample AmazonRedshift.DescribeEventCategories */ @Override public DescribeEventCategoriesResult describeEventCategories( DescribeEventCategoriesRequest describeEventCategoriesRequest) { ExecutionContext executionContext = createExecutionContext(describeEventCategoriesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeEventCategoriesRequestMarshaller() .marshall(super .beforeMarshalling(describeEventCategoriesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeEventCategoriesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeEventCategoriesResult describeEventCategories() { return describeEventCategories(new DescribeEventCategoriesRequest()); } /** *

* Lists descriptions of all the Amazon Redshift event notifications * subscription for a customer account. If you specify a subscription name, * lists the description for that subscription. *

* * @param describeEventSubscriptionsRequest * @return Result of the DescribeEventSubscriptions operation returned by * the service. * @throws SubscriptionNotFoundException * An Amazon Redshift event notification subscription with the * specified name does not exist. * @sample AmazonRedshift.DescribeEventSubscriptions */ @Override public DescribeEventSubscriptionsResult describeEventSubscriptions( DescribeEventSubscriptionsRequest describeEventSubscriptionsRequest) { ExecutionContext executionContext = createExecutionContext(describeEventSubscriptionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeEventSubscriptionsRequestMarshaller() .marshall(super .beforeMarshalling(describeEventSubscriptionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeEventSubscriptionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeEventSubscriptionsResult describeEventSubscriptions() { return describeEventSubscriptions(new DescribeEventSubscriptionsRequest()); } /** *

* Returns events related to clusters, security groups, snapshots, and * parameter groups for the past 14 days. Events specific to a particular * cluster, security group, snapshot or parameter group can be obtained by * providing the name as a parameter. By default, the past hour of events * are returned. *

* * @param describeEventsRequest * @return Result of the DescribeEvents operation returned by the service. * @sample AmazonRedshift.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()); } /** *

* Returns information about the specified HSM client certificate. If no * certificate ID is specified, returns information about all the HSM * certificates owned by your AWS customer account. *

*

* If you specify both tag keys and tag values in the same request, Amazon * Redshift returns all HSM client certificates that match any combination * of the specified keys and values. For example, if you have * owner and environment for tag keys, and * admin and test for tag values, all HSM client * certificates that have any combination of those values are returned. *

*

* If both tag keys and values are omitted from the request, HSM client * certificates are returned regardless of whether they have tag keys or * values associated with them. *

* * @param describeHsmClientCertificatesRequest * @return Result of the DescribeHsmClientCertificates operation returned by * the service. * @throws HsmClientCertificateNotFoundException * There is no Amazon Redshift HSM client certificate with the * specified identifier. * @throws InvalidTagException * The tag is invalid. * @sample AmazonRedshift.DescribeHsmClientCertificates */ @Override public DescribeHsmClientCertificatesResult describeHsmClientCertificates( DescribeHsmClientCertificatesRequest describeHsmClientCertificatesRequest) { ExecutionContext executionContext = createExecutionContext(describeHsmClientCertificatesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeHsmClientCertificatesRequestMarshaller() .marshall(super .beforeMarshalling(describeHsmClientCertificatesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeHsmClientCertificatesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeHsmClientCertificatesResult describeHsmClientCertificates() { return describeHsmClientCertificates(new DescribeHsmClientCertificatesRequest()); } /** *

* Returns information about the specified Amazon Redshift HSM * configuration. If no configuration ID is specified, returns information * about all the HSM configurations owned by your AWS customer account. *

*

* If you specify both tag keys and tag values in the same request, Amazon * Redshift returns all HSM connections that match any combination of the * specified keys and values. For example, if you have owner * and environment for tag keys, and admin and * test for tag values, all HSM connections that have any * combination of those values are returned. *

*

* If both tag keys and values are omitted from the request, HSM connections * are returned regardless of whether they have tag keys or values * associated with them. *

* * @param describeHsmConfigurationsRequest * @return Result of the DescribeHsmConfigurations operation returned by the * service. * @throws HsmConfigurationNotFoundException * There is no Amazon Redshift HSM configuration with the specified * identifier. * @throws InvalidTagException * The tag is invalid. * @sample AmazonRedshift.DescribeHsmConfigurations */ @Override public DescribeHsmConfigurationsResult describeHsmConfigurations( DescribeHsmConfigurationsRequest describeHsmConfigurationsRequest) { ExecutionContext executionContext = createExecutionContext(describeHsmConfigurationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeHsmConfigurationsRequestMarshaller() .marshall(super .beforeMarshalling(describeHsmConfigurationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeHsmConfigurationsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeHsmConfigurationsResult describeHsmConfigurations() { return describeHsmConfigurations(new DescribeHsmConfigurationsRequest()); } /** *

* Describes whether information, such as queries and connection attempts, * is being logged for the specified Amazon Redshift cluster. *

* * @param describeLoggingStatusRequest * @return Result of the DescribeLoggingStatus operation returned by the * service. * @throws ClusterNotFoundException * The ClusterIdentifier parameter does not refer to an * existing cluster. * @sample AmazonRedshift.DescribeLoggingStatus */ @Override public DescribeLoggingStatusResult describeLoggingStatus( DescribeLoggingStatusRequest describeLoggingStatusRequest) { ExecutionContext executionContext = createExecutionContext(describeLoggingStatusRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeLoggingStatusRequestMarshaller() .marshall(super .beforeMarshalling(describeLoggingStatusRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeLoggingStatusResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of orderable cluster options. Before you create a new * cluster you can use this operation to find what options are available, * such as the EC2 Availability Zones (AZ) in the specific AWS region that * you can specify, and the node types you can request. The node types * differ by available storage, memory, CPU and price. With the cost * involved you might want to obtain a list of cluster options in the * specific region and specify values when creating a cluster. For more * information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster * Management Guide *

* * @param describeOrderableClusterOptionsRequest * @return Result of the DescribeOrderableClusterOptions operation returned * by the service. * @sample AmazonRedshift.DescribeOrderableClusterOptions */ @Override public DescribeOrderableClusterOptionsResult describeOrderableClusterOptions( DescribeOrderableClusterOptionsRequest describeOrderableClusterOptionsRequest) { ExecutionContext executionContext = createExecutionContext(describeOrderableClusterOptionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeOrderableClusterOptionsRequestMarshaller() .marshall(super .beforeMarshalling(describeOrderableClusterOptionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeOrderableClusterOptionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeOrderableClusterOptionsResult describeOrderableClusterOptions() { return describeOrderableClusterOptions(new DescribeOrderableClusterOptionsRequest()); } /** *

* Returns a list of the available reserved node offerings by Amazon * Redshift with their descriptions including the node type, the fixed and * recurring costs of reserving the node and duration the node will be * reserved for you. These descriptions help you determine which reserve * node offering you want to purchase. You then use the unique offering ID * in you call to PurchaseReservedNodeOffering to reserve one or more * nodes for your Amazon Redshift cluster. *

*

* For more information about reserved node offerings, go to Purchasing Reserved Nodes in the Amazon Redshift Cluster * Management Guide. *

* * @param describeReservedNodeOfferingsRequest * @return Result of the DescribeReservedNodeOfferings operation returned by * the service. * @throws ReservedNodeOfferingNotFoundException * Specified offering does not exist. * @throws UnsupportedOperationException * The requested operation isn't supported. * @sample AmazonRedshift.DescribeReservedNodeOfferings */ @Override public DescribeReservedNodeOfferingsResult describeReservedNodeOfferings( DescribeReservedNodeOfferingsRequest describeReservedNodeOfferingsRequest) { ExecutionContext executionContext = createExecutionContext(describeReservedNodeOfferingsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeReservedNodeOfferingsRequestMarshaller() .marshall(super .beforeMarshalling(describeReservedNodeOfferingsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeReservedNodeOfferingsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeReservedNodeOfferingsResult describeReservedNodeOfferings() { return describeReservedNodeOfferings(new DescribeReservedNodeOfferingsRequest()); } /** *

* Returns the descriptions of the reserved nodes. *

* * @param describeReservedNodesRequest * @return Result of the DescribeReservedNodes operation returned by the * service. * @throws ReservedNodeNotFoundException * The specified reserved compute node not found. * @sample AmazonRedshift.DescribeReservedNodes */ @Override public DescribeReservedNodesResult describeReservedNodes( DescribeReservedNodesRequest describeReservedNodesRequest) { ExecutionContext executionContext = createExecutionContext(describeReservedNodesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeReservedNodesRequestMarshaller() .marshall(super .beforeMarshalling(describeReservedNodesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeReservedNodesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeReservedNodesResult describeReservedNodes() { return describeReservedNodes(new DescribeReservedNodesRequest()); } /** *

* Returns information about the last resize operation for the specified * cluster. If no resize operation has ever been initiated for the specified * cluster, a HTTP 404 error is returned. If a resize operation * was initiated and completed, the status of the resize remains as * SUCCEEDED until the next resize. *

*

* A resize operation can be requested using ModifyCluster and * specifying a different number or type of nodes for the cluster. *

* * @param describeResizeRequest * @return Result of the DescribeResize operation returned by the service. * @throws ClusterNotFoundException * The ClusterIdentifier parameter does not refer to an * existing cluster. * @throws ResizeNotFoundException * A resize operation for the specified cluster is not found. * @sample AmazonRedshift.DescribeResize */ @Override public DescribeResizeResult describeResize( DescribeResizeRequest describeResizeRequest) { ExecutionContext executionContext = createExecutionContext(describeResizeRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeResizeRequestMarshaller().marshall(super .beforeMarshalling(describeResizeRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeResizeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of snapshot copy grants owned by the AWS account in the * destination region. *

*

* For more information about managing snapshot copy grants, go to Amazon Redshift Database Encryption in the Amazon Redshift * Cluster Management Guide. *

* * @param describeSnapshotCopyGrantsRequest * The result of the DescribeSnapshotCopyGrants action. * @return Result of the DescribeSnapshotCopyGrants operation returned by * the service. * @throws SnapshotCopyGrantNotFoundException * The specified snapshot copy grant can't be found. Make sure that * the name is typed correctly and that the grant exists in the * destination region. * @throws InvalidTagException * The tag is invalid. * @sample AmazonRedshift.DescribeSnapshotCopyGrants */ @Override public DescribeSnapshotCopyGrantsResult describeSnapshotCopyGrants( DescribeSnapshotCopyGrantsRequest describeSnapshotCopyGrantsRequest) { ExecutionContext executionContext = createExecutionContext(describeSnapshotCopyGrantsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeSnapshotCopyGrantsRequestMarshaller() .marshall(super .beforeMarshalling(describeSnapshotCopyGrantsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeSnapshotCopyGrantsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeSnapshotCopyGrantsResult describeSnapshotCopyGrants() { return describeSnapshotCopyGrants(new DescribeSnapshotCopyGrantsRequest()); } /** *

* Lists the status of one or more table restore requests made using the * RestoreTableFromClusterSnapshot API action. If you don't specify a * value for the TableRestoreRequestId parameter, then * DescribeTableRestoreStatus returns the status of all table * restore requests ordered by the date and time of the request in ascending * order. Otherwise DescribeTableRestoreStatus returns the * status of the table specified by TableRestoreRequestId. *

* * @param describeTableRestoreStatusRequest * @return Result of the DescribeTableRestoreStatus operation returned by * the service. * @throws TableRestoreNotFoundException * The specified TableRestoreRequestId value was not * found. * @throws ClusterNotFoundException * The ClusterIdentifier parameter does not refer to an * existing cluster. * @sample AmazonRedshift.DescribeTableRestoreStatus */ @Override public DescribeTableRestoreStatusResult describeTableRestoreStatus( DescribeTableRestoreStatusRequest describeTableRestoreStatusRequest) { ExecutionContext executionContext = createExecutionContext(describeTableRestoreStatusRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeTableRestoreStatusRequestMarshaller() .marshall(super .beforeMarshalling(describeTableRestoreStatusRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeTableRestoreStatusResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeTableRestoreStatusResult describeTableRestoreStatus() { return describeTableRestoreStatus(new DescribeTableRestoreStatusRequest()); } /** *

* Returns a list of tags. You can return tags from a specific resource by * specifying an ARN, or you can return all tags for a given type of * resource, such as clusters, snapshots, and so on. *

*

* The following are limitations for DescribeTags: *

    *
  • You cannot specify an ARN and a resource-type value together in the * same request.
  • *
  • You cannot use the MaxRecords and Marker * parameters together with the ARN parameter.
  • *
  • The MaxRecords parameter can be a range from 10 to 50 * results to return in a request.
  • *
*

*

* If you specify both tag keys and tag values in the same request, Amazon * Redshift returns all resources that match any combination of the * specified keys and values. For example, if you have owner * and environment for tag keys, and admin and * test for tag values, all resources that have any combination * of those values are returned. *

*

* If both tag keys and values are omitted from the request, resources are * returned regardless of whether they have tag keys or values associated * with them. *

* * @param describeTagsRequest * @return Result of the DescribeTags operation returned by the service. * @throws ResourceNotFoundException * The resource could not be found. * @throws InvalidTagException * The tag is invalid. * @sample AmazonRedshift.DescribeTags */ @Override public DescribeTagsResult describeTags( DescribeTagsRequest describeTagsRequest) { ExecutionContext executionContext = createExecutionContext(describeTagsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeTagsRequestMarshaller().marshall(super .beforeMarshalling(describeTagsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeTagsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeTagsResult describeTags() { return describeTags(new DescribeTagsRequest()); } /** *

* Stops logging information, such as queries and connection attempts, for * the specified Amazon Redshift cluster. *

* * @param disableLoggingRequest * @return Result of the DisableLogging operation returned by the service. * @throws ClusterNotFoundException * The ClusterIdentifier parameter does not refer to an * existing cluster. * @sample AmazonRedshift.DisableLogging */ @Override public DisableLoggingResult disableLogging( DisableLoggingRequest disableLoggingRequest) { ExecutionContext executionContext = createExecutionContext(disableLoggingRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisableLoggingRequestMarshaller().marshall(super .beforeMarshalling(disableLoggingRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DisableLoggingResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Disables the automatic copying of snapshots from one region to another * region for a specified cluster. *

*

* If your cluster and its snapshots are encrypted using a customer master * key (CMK) from AWS KMS, use DeleteSnapshotCopyGrant to delete the * grant that grants Amazon Redshift permission to the CMK in the * destination region. *

* * @param disableSnapshotCopyRequest * @return Result of the DisableSnapshotCopy operation returned by the * service. * @throws ClusterNotFoundException * The ClusterIdentifier parameter does not refer to an * existing cluster. * @throws SnapshotCopyAlreadyDisabledException * The cluster already has cross-region snapshot copy disabled. * @throws InvalidClusterStateException * The specified cluster is not in the available state. * @throws UnauthorizedOperationException * Your account is not authorized to perform the requested * operation. * @sample AmazonRedshift.DisableSnapshotCopy */ @Override public Cluster disableSnapshotCopy( DisableSnapshotCopyRequest disableSnapshotCopyRequest) { ExecutionContext executionContext = createExecutionContext(disableSnapshotCopyRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisableSnapshotCopyRequestMarshaller() .marshall(super .beforeMarshalling(disableSnapshotCopyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Starts logging information, such as queries and connection attempts, for * the specified Amazon Redshift cluster. *

* * @param enableLoggingRequest * @return Result of the EnableLogging operation returned by the service. * @throws ClusterNotFoundException * The ClusterIdentifier parameter does not refer to an * existing cluster. * @throws BucketNotFoundException * Could not find the specified S3 bucket. * @throws InsufficientS3BucketPolicyException * The cluster does not have read bucket or put object permissions * on the S3 bucket specified when enabling logging. * @throws InvalidS3KeyPrefixException * The string specified for the logging S3 key prefix does not * comply with the documented constraints. * @throws InvalidS3BucketNameException * The S3 bucket name is invalid. For more information about naming * rules, go to Bucket Restrictions and Limitations in the Amazon Simple * Storage Service (S3) Developer Guide. * @sample AmazonRedshift.EnableLogging */ @Override public EnableLoggingResult enableLogging( EnableLoggingRequest enableLoggingRequest) { ExecutionContext executionContext = createExecutionContext(enableLoggingRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new EnableLoggingRequestMarshaller().marshall(super .beforeMarshalling(enableLoggingRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new EnableLoggingResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Enables the automatic copy of snapshots from one region to another region * for a specified cluster. *

* * @param enableSnapshotCopyRequest * @return Result of the EnableSnapshotCopy operation returned by the * service. * @throws IncompatibleOrderableOptionsException * The specified options are incompatible. * @throws InvalidClusterStateException * The specified cluster is not in the available state. * @throws ClusterNotFoundException * The ClusterIdentifier parameter does not refer to an * existing cluster. * @throws CopyToRegionDisabledException * Cross-region snapshot copy was temporarily disabled. Try your * request again. * @throws SnapshotCopyAlreadyEnabledException * The cluster already has cross-region snapshot copy enabled. * @throws UnknownSnapshotCopyRegionException * The specified region is incorrect or does not exist. * @throws UnauthorizedOperationException * Your account is not authorized to perform the requested * operation. * @throws SnapshotCopyGrantNotFoundException * The specified snapshot copy grant can't be found. Make sure that * the name is typed correctly and that the grant exists in the * destination region. * @throws LimitExceededException * The encryption key has exceeded its grant limit in AWS KMS. * @throws DependentServiceRequestThrottlingException * The request cannot be completed because a dependent service is * throttling requests made by Amazon Redshift on your behalf. Wait * and retry the request. * @sample AmazonRedshift.EnableSnapshotCopy */ @Override public Cluster enableSnapshotCopy( EnableSnapshotCopyRequest enableSnapshotCopyRequest) { ExecutionContext executionContext = createExecutionContext(enableSnapshotCopyRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new EnableSnapshotCopyRequestMarshaller() .marshall(super .beforeMarshalling(enableSnapshotCopyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies the settings for a cluster. For example, you can add another * security or parameter group, update the preferred maintenance window, or * change the master user password. Resetting a cluster password or * modifying the security groups associated with a cluster do not need a * reboot. However, modifying a parameter group requires a reboot for * parameters to take effect. For more information about managing clusters, * go to Amazon Redshift Clusters in the Amazon Redshift Cluster * Management Guide . *

*

* You can also change node type and the number of nodes to scale up or down * the cluster. When resizing a cluster, you must specify both the number of * nodes and the node type even if one of the parameters does not change. *

* * @param modifyClusterRequest * @return Result of the ModifyCluster operation returned by the service. * @throws InvalidClusterStateException * The specified cluster is not in the available state. * @throws InvalidClusterSecurityGroupStateException * The state of the cluster security group is not * available. * @throws ClusterNotFoundException * The ClusterIdentifier parameter does not refer to an * existing cluster. * @throws NumberOfNodesQuotaExceededException * The operation would exceed the number of nodes allotted to the * account. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster * Management Guide. * @throws ClusterSecurityGroupNotFoundException * The cluster security group name does not refer to an existing * cluster security group. * @throws ClusterParameterGroupNotFoundException * The parameter group name does not refer to an existing parameter * group. * @throws InsufficientClusterCapacityException * The number of nodes specified exceeds the allotted capacity of * the cluster. * @throws UnsupportedOptionException * A request option was specified that is not supported. * @throws UnauthorizedOperationException * Your account is not authorized to perform the requested * operation. * @throws HsmClientCertificateNotFoundException * There is no Amazon Redshift HSM client certificate with the * specified identifier. * @throws HsmConfigurationNotFoundException * There is no Amazon Redshift HSM configuration with the specified * identifier. * @throws ClusterAlreadyExistsException * The account already has a cluster with the given identifier. * @throws LimitExceededException * The encryption key has exceeded its grant limit in AWS KMS. * @throws DependentServiceRequestThrottlingException * The request cannot be completed because a dependent service is * throttling requests made by Amazon Redshift on your behalf. Wait * and retry the request. * @throws InvalidElasticIpException * The Elastic IP (EIP) is invalid or cannot be found. * @sample AmazonRedshift.ModifyCluster */ @Override public Cluster modifyCluster(ModifyClusterRequest modifyClusterRequest) { ExecutionContext executionContext = createExecutionContext(modifyClusterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyClusterRequestMarshaller().marshall(super .beforeMarshalling(modifyClusterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies the list of AWS Identity and Access Management (IAM) roles that * can be used by the cluster to access other AWS services. *

*

* A cluster can have up to 10 IAM roles associated at any time. *

* * @param modifyClusterIamRolesRequest * @return Result of the ModifyClusterIamRoles operation returned by the * service. * @throws InvalidClusterStateException * The specified cluster is not in the available state. * @throws ClusterNotFoundException * The ClusterIdentifier parameter does not refer to an * existing cluster. * @sample AmazonRedshift.ModifyClusterIamRoles */ @Override public Cluster modifyClusterIamRoles( ModifyClusterIamRolesRequest modifyClusterIamRolesRequest) { ExecutionContext executionContext = createExecutionContext(modifyClusterIamRolesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyClusterIamRolesRequestMarshaller() .marshall(super .beforeMarshalling(modifyClusterIamRolesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies the parameters of a parameter group. *

*

* For more information about parameters and parameter groups, go to Amazon Redshift Parameter Groups in the Amazon Redshift Cluster * Management Guide. *

* * @param modifyClusterParameterGroupRequest * @return Result of the ModifyClusterParameterGroup operation returned by * the service. * @throws ClusterParameterGroupNotFoundException * The parameter group name does not refer to an existing parameter * group. * @throws InvalidClusterParameterGroupStateException * The cluster parameter group action can not be completed because * another task is in progress that involves the parameter group. * Wait a few moments and try the operation again. * @sample AmazonRedshift.ModifyClusterParameterGroup */ @Override public ModifyClusterParameterGroupResult modifyClusterParameterGroup( ModifyClusterParameterGroupRequest modifyClusterParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(modifyClusterParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyClusterParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(modifyClusterParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ModifyClusterParameterGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies a cluster subnet group to include the specified list of VPC * subnets. The operation replaces the existing list of subnets with the new * list of subnets. *

* * @param modifyClusterSubnetGroupRequest * @return Result of the ModifyClusterSubnetGroup operation returned by the * service. * @throws ClusterSubnetGroupNotFoundException * The cluster subnet group name does not refer to an existing * cluster subnet group. * @throws ClusterSubnetQuotaExceededException * The request would result in user exceeding the allowed number of * subnets in a cluster subnet groups. For information about * increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster * Management Guide. * @throws SubnetAlreadyInUseException * A specified subnet is already in use by another cluster. * @throws InvalidSubnetException * The requested subnet is not valid, or not all of the subnets are * in the same VPC. * @throws UnauthorizedOperationException * Your account is not authorized to perform the requested * operation. * @throws DependentServiceRequestThrottlingException * The request cannot be completed because a dependent service is * throttling requests made by Amazon Redshift on your behalf. Wait * and retry the request. * @sample AmazonRedshift.ModifyClusterSubnetGroup */ @Override public ClusterSubnetGroup modifyClusterSubnetGroup( ModifyClusterSubnetGroupRequest modifyClusterSubnetGroupRequest) { ExecutionContext executionContext = createExecutionContext(modifyClusterSubnetGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyClusterSubnetGroupRequestMarshaller() .marshall(super .beforeMarshalling(modifyClusterSubnetGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ClusterSubnetGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies an existing Amazon Redshift event notification subscription. *

* * @param modifyEventSubscriptionRequest * @return Result of the ModifyEventSubscription operation returned by the * service. * @throws SubscriptionNotFoundException * An Amazon Redshift event notification subscription with the * specified name does not exist. * @throws SNSInvalidTopicException * Amazon SNS has responded that there is a problem with the * specified Amazon SNS topic. * @throws SNSNoAuthorizationException * You do not have permission to publish to the specified Amazon SNS * topic. * @throws SNSTopicArnNotFoundException * An Amazon SNS topic with the specified Amazon Resource Name (ARN) * does not exist. * @throws SubscriptionEventIdNotFoundException * An Amazon Redshift event with the specified event ID does not * exist. * @throws SubscriptionCategoryNotFoundException * The value specified for the event category was not one of the * allowed values, or it specified a category that does not apply to * the specified source type. The allowed values are Configuration, * Management, Monitoring, and Security. * @throws SubscriptionSeverityNotFoundException * The value specified for the event severity was not one of the * allowed values, or it specified a severity that does not apply to * the specified source type. The allowed values are ERROR and INFO. * @throws SourceNotFoundException * The specified Amazon Redshift event source could not be found. * @throws InvalidSubscriptionStateException * The subscription request is invalid because it is a duplicate * request. This subscription request is already in progress. * @sample AmazonRedshift.ModifyEventSubscription */ @Override public EventSubscription modifyEventSubscription( ModifyEventSubscriptionRequest modifyEventSubscriptionRequest) { ExecutionContext executionContext = createExecutionContext(modifyEventSubscriptionRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyEventSubscriptionRequestMarshaller() .marshall(super .beforeMarshalling(modifyEventSubscriptionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new EventSubscriptionStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies the number of days to retain automated snapshots in the * destination region after they are copied from the source region. *

* * @param modifySnapshotCopyRetentionPeriodRequest * @return Result of the ModifySnapshotCopyRetentionPeriod operation * returned by the service. * @throws ClusterNotFoundException * The ClusterIdentifier parameter does not refer to an * existing cluster. * @throws SnapshotCopyDisabledException * Cross-region snapshot copy was temporarily disabled. Try your * request again. * @throws UnauthorizedOperationException * Your account is not authorized to perform the requested * operation. * @throws InvalidClusterStateException * The specified cluster is not in the available state. * @sample AmazonRedshift.ModifySnapshotCopyRetentionPeriod */ @Override public Cluster modifySnapshotCopyRetentionPeriod( ModifySnapshotCopyRetentionPeriodRequest modifySnapshotCopyRetentionPeriodRequest) { ExecutionContext executionContext = createExecutionContext(modifySnapshotCopyRetentionPeriodRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifySnapshotCopyRetentionPeriodRequestMarshaller() .marshall(super .beforeMarshalling(modifySnapshotCopyRetentionPeriodRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Allows you to purchase reserved nodes. Amazon Redshift offers a * predefined set of reserved node offerings. You can purchase one or more * of the offerings. You can call the DescribeReservedNodeOfferings * API to obtain the available reserved node offerings. You can call this * API by providing a specific reserved node offering and the number of * nodes you want to reserve. *

*

* For more information about reserved node offerings, go to Purchasing Reserved Nodes in the Amazon Redshift Cluster * Management Guide. *

* * @param purchaseReservedNodeOfferingRequest * @return Result of the PurchaseReservedNodeOffering operation returned by * the service. * @throws ReservedNodeOfferingNotFoundException * Specified offering does not exist. * @throws ReservedNodeAlreadyExistsException * User already has a reservation with the given identifier. * @throws ReservedNodeQuotaExceededException * Request would exceed the user's compute node quota. For * information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster * Management Guide. * @throws UnsupportedOperationException * The requested operation isn't supported. * @sample AmazonRedshift.PurchaseReservedNodeOffering */ @Override public ReservedNode purchaseReservedNodeOffering( PurchaseReservedNodeOfferingRequest purchaseReservedNodeOfferingRequest) { ExecutionContext executionContext = createExecutionContext(purchaseReservedNodeOfferingRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PurchaseReservedNodeOfferingRequestMarshaller() .marshall(super .beforeMarshalling(purchaseReservedNodeOfferingRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ReservedNodeStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Reboots a cluster. This action is taken as soon as possible. It results * in a momentary outage to the cluster, during which the cluster status is * set to rebooting. A cluster event is created when the reboot * is completed. Any pending cluster modifications (see * ModifyCluster) are applied at this reboot. For more information * about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster * Management Guide *

* * @param rebootClusterRequest * @return Result of the RebootCluster operation returned by the service. * @throws InvalidClusterStateException * The specified cluster is not in the available state. * @throws ClusterNotFoundException * The ClusterIdentifier parameter does not refer to an * existing cluster. * @sample AmazonRedshift.RebootCluster */ @Override public Cluster rebootCluster(RebootClusterRequest rebootClusterRequest) { ExecutionContext executionContext = createExecutionContext(rebootClusterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RebootClusterRequestMarshaller().marshall(super .beforeMarshalling(rebootClusterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Sets one or more parameters of the specified parameter group to their * default values and sets the source values of the parameters to * "engine-default". To reset the entire parameter group specify the * ResetAllParameters parameter. For parameter changes to take effect * you must reboot any associated clusters. *

* * @param resetClusterParameterGroupRequest * @return Result of the ResetClusterParameterGroup operation returned by * the service. * @throws InvalidClusterParameterGroupStateException * The cluster parameter group action can not be completed because * another task is in progress that involves the parameter group. * Wait a few moments and try the operation again. * @throws ClusterParameterGroupNotFoundException * The parameter group name does not refer to an existing parameter * group. * @sample AmazonRedshift.ResetClusterParameterGroup */ @Override public ResetClusterParameterGroupResult resetClusterParameterGroup( ResetClusterParameterGroupRequest resetClusterParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(resetClusterParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ResetClusterParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(resetClusterParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ResetClusterParameterGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new cluster from a snapshot. By default, Amazon Redshift * creates the resulting cluster with the same configuration as the original * cluster from which the snapshot was created, except that the new cluster * is created with the default cluster security and parameter groups. After * Amazon Redshift creates the cluster, you can use the ModifyCluster * API to associate a different security group and different parameter group * with the restored cluster. If you are using a DS node type, you can also * choose to change to another DS node type of the same size during restore. *

*

* If you restore a cluster into a VPC, you must provide a cluster subnet * group where you want the cluster restored. *

*

* For more information about working with snapshots, go to Amazon Redshift Snapshots in the Amazon Redshift Cluster * Management Guide. *

* * @param restoreFromClusterSnapshotRequest * @return Result of the RestoreFromClusterSnapshot operation returned by * the service. * @throws AccessToSnapshotDeniedException * The owner of the specified snapshot has not authorized your * account to access the snapshot. * @throws ClusterAlreadyExistsException * The account already has a cluster with the given identifier. * @throws ClusterSnapshotNotFoundException * The snapshot identifier does not refer to an existing cluster * snapshot. * @throws ClusterQuotaExceededException * The request would exceed the allowed number of cluster instances * for this account. For information about increasing your quota, go * to Limits in Amazon Redshift in the Amazon Redshift Cluster * Management Guide. * @throws InsufficientClusterCapacityException * The number of nodes specified exceeds the allotted capacity of * the cluster. * @throws InvalidClusterSnapshotStateException * The specified cluster snapshot is not in the * available state, or other accounts are authorized to * access the snapshot. * @throws InvalidRestoreException * The restore is invalid. * @throws NumberOfNodesQuotaExceededException * The operation would exceed the number of nodes allotted to the * account. For information about increasing your quota, go to Limits in Amazon Redshift in the Amazon Redshift Cluster * Management Guide. * @throws NumberOfNodesPerClusterLimitExceededException * The operation would exceed the number of nodes allowed for a * cluster. * @throws InvalidVPCNetworkStateException * The cluster subnet group does not cover all Availability Zones. * @throws InvalidClusterSubnetGroupStateException * The cluster subnet group cannot be deleted because it is in use. * @throws InvalidSubnetException * The requested subnet is not valid, or not all of the subnets are * in the same VPC. * @throws ClusterSubnetGroupNotFoundException * The cluster subnet group name does not refer to an existing * cluster subnet group. * @throws UnauthorizedOperationException * Your account is not authorized to perform the requested * operation. * @throws HsmClientCertificateNotFoundException * There is no Amazon Redshift HSM client certificate with the * specified identifier. * @throws HsmConfigurationNotFoundException * There is no Amazon Redshift HSM configuration with the specified * identifier. * @throws InvalidElasticIpException * The Elastic IP (EIP) is invalid or cannot be found. * @throws ClusterParameterGroupNotFoundException * The parameter group name does not refer to an existing parameter * group. * @throws ClusterSecurityGroupNotFoundException * The cluster security group name does not refer to an existing * cluster security group. * @throws LimitExceededException * The encryption key has exceeded its grant limit in AWS KMS. * @throws DependentServiceRequestThrottlingException * The request cannot be completed because a dependent service is * throttling requests made by Amazon Redshift on your behalf. Wait * and retry the request. * @sample AmazonRedshift.RestoreFromClusterSnapshot */ @Override public Cluster restoreFromClusterSnapshot( RestoreFromClusterSnapshotRequest restoreFromClusterSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(restoreFromClusterSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RestoreFromClusterSnapshotRequestMarshaller() .marshall(super .beforeMarshalling(restoreFromClusterSnapshotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new table from a table in an Amazon Redshift cluster snapshot. * You must create the new table within the Amazon Redshift cluster that the * snapshot was taken from. *

*

* You cannot use RestoreTableFromClusterSnapshot to restore a * table with the same name as an existing table in an Amazon Redshift * cluster. That is, you cannot overwrite an existing table in a cluster * with a restored table. If you want to replace your original table with a * new, restored table, then rename or drop your original table before you * call RestoreTableFromClusterSnapshot. When you have renamed * your original table, then you can pass the original name of the table as * the NewTableName parameter value in the call to * RestoreTableFromClusterSnapshot. This way, you can replace * the original table with the table created from the snapshot. *

* * @param restoreTableFromClusterSnapshotRequest * @return Result of the RestoreTableFromClusterSnapshot operation returned * by the service. * @throws ClusterSnapshotNotFoundException * The snapshot identifier does not refer to an existing cluster * snapshot. * @throws InProgressTableRestoreQuotaExceededException * You have exceeded the allowed number of table restore requests. * Wait for your current table restore requests to complete before * making a new request. * @throws InvalidClusterSnapshotStateException * The specified cluster snapshot is not in the * available state, or other accounts are authorized to * access the snapshot. * @throws InvalidTableRestoreArgumentException * The value specified for the sourceDatabaseName, * sourceSchemaName, or sourceTableName * parameter, or a combination of these, doesn't exist in the * snapshot. * @throws ClusterNotFoundException * The ClusterIdentifier parameter does not refer to an * existing cluster. * @throws InvalidClusterStateException * The specified cluster is not in the available state. * @throws UnsupportedOperationException * The requested operation isn't supported. * @sample AmazonRedshift.RestoreTableFromClusterSnapshot */ @Override public TableRestoreStatus restoreTableFromClusterSnapshot( RestoreTableFromClusterSnapshotRequest restoreTableFromClusterSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(restoreTableFromClusterSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RestoreTableFromClusterSnapshotRequestMarshaller() .marshall(super .beforeMarshalling(restoreTableFromClusterSnapshotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new TableRestoreStatusStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Revokes an ingress rule in an Amazon Redshift security group for a * previously authorized IP range or Amazon EC2 security group. To add an * ingress rule, see AuthorizeClusterSecurityGroupIngress. For * information about managing security groups, go to Amazon Redshift Cluster Security Groups in the Amazon Redshift * Cluster Management Guide. *

* * @param revokeClusterSecurityGroupIngressRequest * @return Result of the RevokeClusterSecurityGroupIngress operation * returned by the service. * @throws ClusterSecurityGroupNotFoundException * The cluster security group name does not refer to an existing * cluster security group. * @throws AuthorizationNotFoundException * The specified CIDR IP range or EC2 security group is not * authorized for the specified cluster security group. * @throws InvalidClusterSecurityGroupStateException * The state of the cluster security group is not * available. * @sample AmazonRedshift.RevokeClusterSecurityGroupIngress */ @Override public ClusterSecurityGroup revokeClusterSecurityGroupIngress( RevokeClusterSecurityGroupIngressRequest revokeClusterSecurityGroupIngressRequest) { ExecutionContext executionContext = createExecutionContext(revokeClusterSecurityGroupIngressRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RevokeClusterSecurityGroupIngressRequestMarshaller() .marshall(super .beforeMarshalling(revokeClusterSecurityGroupIngressRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ClusterSecurityGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Removes the ability of the specified AWS customer account to restore the * specified snapshot. If the account is currently restoring the snapshot, * the restore will run to completion. *

*

* For more information about working with snapshots, go to Amazon Redshift Snapshots in the Amazon Redshift Cluster * Management Guide. *

* * @param revokeSnapshotAccessRequest * @return Result of the RevokeSnapshotAccess operation returned by the * service. * @throws AccessToSnapshotDeniedException * The owner of the specified snapshot has not authorized your * account to access the snapshot. * @throws AuthorizationNotFoundException * The specified CIDR IP range or EC2 security group is not * authorized for the specified cluster security group. * @throws ClusterSnapshotNotFoundException * The snapshot identifier does not refer to an existing cluster * snapshot. * @sample AmazonRedshift.RevokeSnapshotAccess */ @Override public Snapshot revokeSnapshotAccess( RevokeSnapshotAccessRequest revokeSnapshotAccessRequest) { ExecutionContext executionContext = createExecutionContext(revokeSnapshotAccessRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RevokeSnapshotAccessRequestMarshaller() .marshall(super .beforeMarshalling(revokeSnapshotAccessRequest)); // 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); } } /** *

* Rotates the encryption keys for a cluster. *

* * @param rotateEncryptionKeyRequest * @return Result of the RotateEncryptionKey operation returned by the * service. * @throws ClusterNotFoundException * The ClusterIdentifier parameter does not refer to an * existing cluster. * @throws InvalidClusterStateException * The specified cluster is not in the available state. * @throws DependentServiceRequestThrottlingException * The request cannot be completed because a dependent service is * throttling requests made by Amazon Redshift on your behalf. Wait * and retry the request. * @sample AmazonRedshift.RotateEncryptionKey */ @Override public Cluster rotateEncryptionKey( RotateEncryptionKeyRequest rotateEncryptionKeyRequest) { ExecutionContext executionContext = createExecutionContext(rotateEncryptionKeyRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RotateEncryptionKeyRequestMarshaller() .marshall(super .beforeMarshalling(rotateEncryptionKeyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ClusterStaxUnmarshaller()); 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); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy