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

com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient Maven / Gradle / Ivy

Go to download

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

There is a newer version: 1.9.19
Show newest version
/*
 * Copyright 2010-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.simpleemail;

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.simpleemail.model.*;
import com.amazonaws.services.simpleemail.model.transform.*;

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

* Amazon Simple Email Service *

* This is the API Reference for Amazon Simple Email Service (Amazon SES). This * documentation is intended to be used in conjunction with the Amazon SES Developer Guide. *

* *

* For a list of Amazon SES endpoints to use in service requests, see Regions and Amazon SES in the Amazon SES Developer Guide. *

*
*/ @ThreadSafe public class AmazonSimpleEmailServiceClient extends AmazonWebServiceClient implements AmazonSimpleEmailService { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory .getLog(AmazonSimpleEmailService.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "ses"; /** * 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 SES. 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 AmazonSimpleEmailServiceClient() { this(new DefaultAWSCredentialsProviderChain(), configFactory .getConfig()); } /** * Constructs a new client to invoke service methods on Amazon SES. 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 SES (ex: proxy settings, retry counts, etc.). * * @see DefaultAWSCredentialsProviderChain */ public AmazonSimpleEmailServiceClient( ClientConfiguration clientConfiguration) { this(new DefaultAWSCredentialsProviderChain(), clientConfiguration); } /** * Constructs a new client to invoke service methods on Amazon SES 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 AmazonSimpleEmailServiceClient(AWSCredentials awsCredentials) { this(awsCredentials, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Amazon SES 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 SES (ex: proxy settings, retry counts, etc.). */ public AmazonSimpleEmailServiceClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) { super(clientConfiguration); this.awsCredentialsProvider = new StaticCredentialsProvider( awsCredentials); init(); } /** * Constructs a new client to invoke service methods on Amazon SES 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 AmazonSimpleEmailServiceClient( AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Amazon SES 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 SES (ex: proxy settings, retry counts, etc.). */ public AmazonSimpleEmailServiceClient( AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, null); } /** * Constructs a new client to invoke service methods on Amazon SES 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 SES (ex: proxy settings, retry counts, etc.). * @param requestMetricCollector * optional request metric collector */ public AmazonSimpleEmailServiceClient( AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) { super(clientConfiguration, requestMetricCollector); this.awsCredentialsProvider = awsCredentialsProvider; init(); } /** * Constructs a new client to invoke service methods on Amazon SES 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. */ AmazonSimpleEmailServiceClient(AwsSyncClientParams clientParams) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); init(); } private void init() { exceptionUnmarshallers .add(new InvalidS3ConfigurationExceptionUnmarshaller()); exceptionUnmarshallers.add(new MessageRejectedExceptionUnmarshaller()); exceptionUnmarshallers.add(new RuleDoesNotExistExceptionUnmarshaller()); exceptionUnmarshallers .add(new RuleSetDoesNotExistExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidSnsTopicExceptionUnmarshaller()); exceptionUnmarshallers.add(new LimitExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidLambdaFunctionExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidPolicyExceptionUnmarshaller()); exceptionUnmarshallers.add(new AlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers.add(new CannotDeleteExceptionUnmarshaller()); exceptionUnmarshallers .add(new MailFromDomainNotVerifiedExceptionUnmarshaller()); exceptionUnmarshallers .add(new StandardErrorUnmarshaller( com.amazonaws.services.simpleemail.model.AmazonSimpleEmailServiceException.class)); setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly this.setEndpoint("https://email.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s .addAll(chainFactory .newRequestHandlerChain("/com/amazonaws/services/simpleemail/request.handlers")); requestHandler2s .addAll(chainFactory .newRequestHandler2Chain("/com/amazonaws/services/simpleemail/request.handler2s")); } /** *

* Creates a receipt rule set by cloning an existing one. All receipt rules * and configurations are copied to the new receipt rule set and are * completely independent of the source rule set. *

*

* For information about setting up rule sets, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param cloneReceiptRuleSetRequest * Represents a request to create a receipt rule set by cloning an * existing one. You use receipt rule sets to receive email with * Amazon SES. For more information, see the Amazon SES Developer Guide. * @return Result of the CloneReceiptRuleSet operation returned by the * service. * @throws RuleSetDoesNotExistException * Indicates that the provided receipt rule set does not exist. * @throws AlreadyExistsException * Indicates that a resource could not be created due to a naming * conflict. * @throws LimitExceededException * Indicates that a resource could not be created due to service * limits. For a list of Amazon SES limits, see the Amazon SES Developer Guide. * @sample AmazonSimpleEmailService.CloneReceiptRuleSet */ @Override public CloneReceiptRuleSetResult cloneReceiptRuleSet( CloneReceiptRuleSetRequest cloneReceiptRuleSetRequest) { ExecutionContext executionContext = createExecutionContext(cloneReceiptRuleSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CloneReceiptRuleSetRequestMarshaller() .marshall(super .beforeMarshalling(cloneReceiptRuleSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CloneReceiptRuleSetResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new IP address filter. *

*

* For information about setting up IP address filters, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param createReceiptFilterRequest * Represents a request to create a new IP address filter. You use IP * address filters when you receive email with Amazon SES. For more * information, see the Amazon SES Developer Guide. * @return Result of the CreateReceiptFilter operation returned by the * service. * @throws LimitExceededException * Indicates that a resource could not be created due to service * limits. For a list of Amazon SES limits, see the Amazon SES Developer Guide. * @throws AlreadyExistsException * Indicates that a resource could not be created due to a naming * conflict. * @sample AmazonSimpleEmailService.CreateReceiptFilter */ @Override public CreateReceiptFilterResult createReceiptFilter( CreateReceiptFilterRequest createReceiptFilterRequest) { ExecutionContext executionContext = createExecutionContext(createReceiptFilterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateReceiptFilterRequestMarshaller() .marshall(super .beforeMarshalling(createReceiptFilterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CreateReceiptFilterResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a receipt rule. *

*

* For information about setting up receipt rules, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param createReceiptRuleRequest * Represents a request to create a receipt rule. You use receipt * rules to receive email with Amazon SES. For more information, see * the Amazon SES Developer Guide. * @return Result of the CreateReceiptRule operation returned by the * service. * @throws InvalidSnsTopicException * Indicates that the provided Amazon SNS topic is invalid, or that * Amazon SES could not publish to the topic, possibly due to * permissions issues. For information about giving permissions, see * the Amazon SES Developer Guide. * @throws InvalidS3ConfigurationException * Indicates that the provided Amazon S3 bucket or AWS KMS * encryption key is invalid, or that Amazon SES could not publish * to the bucket, possibly due to permissions issues. For * information about giving permissions, see the Amazon SES Developer Guide. * @throws InvalidLambdaFunctionException * Indicates that the provided AWS Lambda function is invalid, or * that Amazon SES could not execute the provided function, possibly * due to permissions issues. For information about giving * permissions, see the Amazon SES Developer Guide. * @throws AlreadyExistsException * Indicates that a resource could not be created due to a naming * conflict. * @throws RuleDoesNotExistException * Indicates that the provided receipt rule does not exist. * @throws RuleSetDoesNotExistException * Indicates that the provided receipt rule set does not exist. * @throws LimitExceededException * Indicates that a resource could not be created due to service * limits. For a list of Amazon SES limits, see the Amazon SES Developer Guide. * @sample AmazonSimpleEmailService.CreateReceiptRule */ @Override public CreateReceiptRuleResult createReceiptRule( CreateReceiptRuleRequest createReceiptRuleRequest) { ExecutionContext executionContext = createExecutionContext(createReceiptRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateReceiptRuleRequestMarshaller() .marshall(super .beforeMarshalling(createReceiptRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CreateReceiptRuleResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an empty receipt rule set. *

*

* For information about setting up receipt rule sets, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param createReceiptRuleSetRequest * Represents a request to create an empty receipt rule set. You use * receipt rule sets to receive email with Amazon SES. For more * information, see the Amazon SES Developer Guide. * @return Result of the CreateReceiptRuleSet operation returned by the * service. * @throws AlreadyExistsException * Indicates that a resource could not be created due to a naming * conflict. * @throws LimitExceededException * Indicates that a resource could not be created due to service * limits. For a list of Amazon SES limits, see the Amazon SES Developer Guide. * @sample AmazonSimpleEmailService.CreateReceiptRuleSet */ @Override public CreateReceiptRuleSetResult createReceiptRuleSet( CreateReceiptRuleSetRequest createReceiptRuleSetRequest) { ExecutionContext executionContext = createExecutionContext(createReceiptRuleSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateReceiptRuleSetRequestMarshaller() .marshall(super .beforeMarshalling(createReceiptRuleSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new CreateReceiptRuleSetResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified identity (an email address or a domain) from the * list of verified identities. *

*

* This action is throttled at one request per second. *

* * @param deleteIdentityRequest * Represents a request to delete one of your Amazon SES identities * (an email address or domain). * @return Result of the DeleteIdentity operation returned by the service. * @sample AmazonSimpleEmailService.DeleteIdentity */ @Override public DeleteIdentityResult deleteIdentity( DeleteIdentityRequest deleteIdentityRequest) { ExecutionContext executionContext = createExecutionContext(deleteIdentityRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteIdentityRequestMarshaller().marshall(super .beforeMarshalling(deleteIdentityRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteIdentityResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified sending authorization policy for the given identity * (an email address or a domain). This API returns successfully even if a * policy with the specified name does not exist. *

* *

* This API is for the identity owner only. If you have not verified the * identity, this API will return an error. *

*
*

* Sending authorization is a feature that enables an identity owner to * authorize other senders to use its identities. For information about * using sending authorization, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param deleteIdentityPolicyRequest * Represents a request to delete a sending authorization policy for * an identity. Sending authorization is an Amazon SES feature that * enables you to authorize other senders to use your identities. For * information, see the Amazon SES Developer Guide. * @return Result of the DeleteIdentityPolicy operation returned by the * service. * @sample AmazonSimpleEmailService.DeleteIdentityPolicy */ @Override public DeleteIdentityPolicyResult deleteIdentityPolicy( DeleteIdentityPolicyRequest deleteIdentityPolicyRequest) { ExecutionContext executionContext = createExecutionContext(deleteIdentityPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteIdentityPolicyRequestMarshaller() .marshall(super .beforeMarshalling(deleteIdentityPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteIdentityPolicyResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified IP address filter. *

*

* For information about managing IP address filters, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param deleteReceiptFilterRequest * Represents a request to delete an IP address filter. You use IP * address filters when you receive email with Amazon SES. For more * information, see the Amazon SES Developer Guide. * @return Result of the DeleteReceiptFilter operation returned by the * service. * @sample AmazonSimpleEmailService.DeleteReceiptFilter */ @Override public DeleteReceiptFilterResult deleteReceiptFilter( DeleteReceiptFilterRequest deleteReceiptFilterRequest) { ExecutionContext executionContext = createExecutionContext(deleteReceiptFilterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteReceiptFilterRequestMarshaller() .marshall(super .beforeMarshalling(deleteReceiptFilterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteReceiptFilterResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified receipt rule. *

*

* For information about managing receipt rules, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param deleteReceiptRuleRequest * Represents a request to delete a receipt rule. You use receipt * rules to receive email with Amazon SES. For more information, see * the Amazon SES Developer Guide. * @return Result of the DeleteReceiptRule operation returned by the * service. * @throws RuleSetDoesNotExistException * Indicates that the provided receipt rule set does not exist. * @sample AmazonSimpleEmailService.DeleteReceiptRule */ @Override public DeleteReceiptRuleResult deleteReceiptRule( DeleteReceiptRuleRequest deleteReceiptRuleRequest) { ExecutionContext executionContext = createExecutionContext(deleteReceiptRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteReceiptRuleRequestMarshaller() .marshall(super .beforeMarshalling(deleteReceiptRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteReceiptRuleResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified receipt rule set and all of the receipt rules it * contains. *

* *

* The currently active rule set cannot be deleted. *

*
*

* For information about managing receipt rule sets, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param deleteReceiptRuleSetRequest * Represents a request to delete a receipt rule set and all of the * receipt rules it contains. You use receipt rule sets to receive * email with Amazon SES. For more information, see the Amazon SES Developer Guide. * @return Result of the DeleteReceiptRuleSet operation returned by the * service. * @throws CannotDeleteException * Indicates that the delete operation could not be completed. * @sample AmazonSimpleEmailService.DeleteReceiptRuleSet */ @Override public DeleteReceiptRuleSetResult deleteReceiptRuleSet( DeleteReceiptRuleSetRequest deleteReceiptRuleSetRequest) { ExecutionContext executionContext = createExecutionContext(deleteReceiptRuleSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteReceiptRuleSetRequestMarshaller() .marshall(super .beforeMarshalling(deleteReceiptRuleSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteReceiptRuleSetResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified email address from the list of verified addresses. *

* *

* The DeleteVerifiedEmailAddress action is deprecated as of the May 15, * 2012 release of Domain Verification. The DeleteIdentity action is now * preferred. *

*
*

* This action is throttled at one request per second. *

* * @param deleteVerifiedEmailAddressRequest * Represents a request to delete an email address from the list of * email addresses you have attempted to verify under your AWS * account. * @return Result of the DeleteVerifiedEmailAddress operation returned by * the service. * @sample AmazonSimpleEmailService.DeleteVerifiedEmailAddress */ @Override public DeleteVerifiedEmailAddressResult deleteVerifiedEmailAddress( DeleteVerifiedEmailAddressRequest deleteVerifiedEmailAddressRequest) { ExecutionContext executionContext = createExecutionContext(deleteVerifiedEmailAddressRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteVerifiedEmailAddressRequestMarshaller() .marshall(super .beforeMarshalling(deleteVerifiedEmailAddressRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteVerifiedEmailAddressResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the metadata and receipt rules for the receipt rule set that is * currently active. *

*

* For information about setting up receipt rule sets, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param describeActiveReceiptRuleSetRequest * Represents a request to return the metadata and receipt rules for * the receipt rule set that is currently active. You use receipt * rule sets to receive email with Amazon SES. For more information, * see the Amazon SES Developer Guide. * @return Result of the DescribeActiveReceiptRuleSet operation returned by * the service. * @sample AmazonSimpleEmailService.DescribeActiveReceiptRuleSet */ @Override public DescribeActiveReceiptRuleSetResult describeActiveReceiptRuleSet( DescribeActiveReceiptRuleSetRequest describeActiveReceiptRuleSetRequest) { ExecutionContext executionContext = createExecutionContext(describeActiveReceiptRuleSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeActiveReceiptRuleSetRequestMarshaller() .marshall(super .beforeMarshalling(describeActiveReceiptRuleSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeActiveReceiptRuleSetResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the details of the specified receipt rule. *

*

* For information about setting up receipt rules, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param describeReceiptRuleRequest * Represents a request to return the details of a receipt rule. You * use receipt rules to receive email with Amazon SES. For more * information, see the Amazon SES Developer Guide. * @return Result of the DescribeReceiptRule operation returned by the * service. * @throws RuleDoesNotExistException * Indicates that the provided receipt rule does not exist. * @throws RuleSetDoesNotExistException * Indicates that the provided receipt rule set does not exist. * @sample AmazonSimpleEmailService.DescribeReceiptRule */ @Override public DescribeReceiptRuleResult describeReceiptRule( DescribeReceiptRuleRequest describeReceiptRuleRequest) { ExecutionContext executionContext = createExecutionContext(describeReceiptRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeReceiptRuleRequestMarshaller() .marshall(super .beforeMarshalling(describeReceiptRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeReceiptRuleResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the details of the specified receipt rule set. *

*

* For information about managing receipt rule sets, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param describeReceiptRuleSetRequest * Represents a request to return the details of a receipt rule set. * You use receipt rule sets to receive email with Amazon SES. For * more information, see the Amazon SES Developer Guide. * @return Result of the DescribeReceiptRuleSet operation returned by the * service. * @throws RuleSetDoesNotExistException * Indicates that the provided receipt rule set does not exist. * @sample AmazonSimpleEmailService.DescribeReceiptRuleSet */ @Override public DescribeReceiptRuleSetResult describeReceiptRuleSet( DescribeReceiptRuleSetRequest describeReceiptRuleSetRequest) { ExecutionContext executionContext = createExecutionContext(describeReceiptRuleSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeReceiptRuleSetRequestMarshaller() .marshall(super .beforeMarshalling(describeReceiptRuleSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeReceiptRuleSetResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the current status of Easy DKIM signing for an entity. For domain * name identities, this action also returns the DKIM tokens that are * required for Easy DKIM signing, and whether Amazon SES has successfully * verified that these tokens have been published. *

*

* This action takes a list of identities as input and returns the following * information for each: *

*
    *
  • *

    * Whether Easy DKIM signing is enabled or disabled. *

    *
  • *
  • *

    * A set of DKIM tokens that represent the identity. If the identity is an * email address, the tokens represent the domain of that address. *

    *
  • *
  • *

    * Whether Amazon SES has successfully verified the DKIM tokens published in * the domain's DNS. This information is only returned for domain name * identities, not for email addresses. *

    *
  • *
*

* This action is throttled at one request per second and can only get DKIM * attributes for up to 100 identities at a time. *

*

* For more information about creating DNS records using DKIM tokens, go to * the Amazon SES Developer Guide. *

* * @param getIdentityDkimAttributesRequest * Represents a request for the status of Amazon SES Easy DKIM * signing for an identity. For domain identities, this request also * returns the DKIM tokens that are required for Easy DKIM signing, * and whether Amazon SES successfully verified that these tokens * were published. For more information about Easy DKIM, see the Amazon SES Developer Guide. * @return Result of the GetIdentityDkimAttributes operation returned by the * service. * @sample AmazonSimpleEmailService.GetIdentityDkimAttributes */ @Override public GetIdentityDkimAttributesResult getIdentityDkimAttributes( GetIdentityDkimAttributesRequest getIdentityDkimAttributesRequest) { ExecutionContext executionContext = createExecutionContext(getIdentityDkimAttributesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetIdentityDkimAttributesRequestMarshaller() .marshall(super .beforeMarshalling(getIdentityDkimAttributesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetIdentityDkimAttributesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the custom MAIL FROM attributes for a list of identities (email * addresses and/or domains). *

*

* This action is throttled at one request per second and can only get * custom MAIL FROM attributes for up to 100 identities at a time. *

* * @param getIdentityMailFromDomainAttributesRequest * Represents a request to return the Amazon SES custom MAIL FROM * attributes for a list of identities. For information about using a * custom MAIL FROM domain, see the Amazon SES Developer Guide. * @return Result of the GetIdentityMailFromDomainAttributes operation * returned by the service. * @sample AmazonSimpleEmailService.GetIdentityMailFromDomainAttributes */ @Override public GetIdentityMailFromDomainAttributesResult getIdentityMailFromDomainAttributes( GetIdentityMailFromDomainAttributesRequest getIdentityMailFromDomainAttributesRequest) { ExecutionContext executionContext = createExecutionContext(getIdentityMailFromDomainAttributesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetIdentityMailFromDomainAttributesRequestMarshaller() .marshall(super .beforeMarshalling(getIdentityMailFromDomainAttributesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetIdentityMailFromDomainAttributesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Given a list of verified identities (email addresses and/or domains), * returns a structure describing identity notification attributes. *

*

* This action is throttled at one request per second and can only get * notification attributes for up to 100 identities at a time. *

*

* For more information about using notifications with Amazon SES, see the * Amazon SES Developer Guide. *

* * @param getIdentityNotificationAttributesRequest * Represents a request to return the notification attributes for a * list of identities you verified with Amazon SES. For information * about Amazon SES notifications, see the Amazon SES Developer Guide. * @return Result of the GetIdentityNotificationAttributes operation * returned by the service. * @sample AmazonSimpleEmailService.GetIdentityNotificationAttributes */ @Override public GetIdentityNotificationAttributesResult getIdentityNotificationAttributes( GetIdentityNotificationAttributesRequest getIdentityNotificationAttributesRequest) { ExecutionContext executionContext = createExecutionContext(getIdentityNotificationAttributesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetIdentityNotificationAttributesRequestMarshaller() .marshall(super .beforeMarshalling(getIdentityNotificationAttributesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetIdentityNotificationAttributesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the requested sending authorization policies for the given * identity (an email address or a domain). The policies are returned as a * map of policy names to policy contents. You can retrieve a maximum of 20 * policies at a time. *

* *

* This API is for the identity owner only. If you have not verified the * identity, this API will return an error. *

*
*

* Sending authorization is a feature that enables an identity owner to * authorize other senders to use its identities. For information about * using sending authorization, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param getIdentityPoliciesRequest * Represents a request to return the requested sending authorization * policies for an identity. Sending authorization is an Amazon SES * feature that enables you to authorize other senders to use your * identities. For information, see the Amazon SES Developer Guide. * @return Result of the GetIdentityPolicies operation returned by the * service. * @sample AmazonSimpleEmailService.GetIdentityPolicies */ @Override public GetIdentityPoliciesResult getIdentityPolicies( GetIdentityPoliciesRequest getIdentityPoliciesRequest) { ExecutionContext executionContext = createExecutionContext(getIdentityPoliciesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetIdentityPoliciesRequestMarshaller() .marshall(super .beforeMarshalling(getIdentityPoliciesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetIdentityPoliciesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Given a list of identities (email addresses and/or domains), returns the * verification status and (for domain identities) the verification token * for each identity. *

*

* This action is throttled at one request per second and can only get * verification attributes for up to 100 identities at a time. *

* * @param getIdentityVerificationAttributesRequest * Represents a request to return the Amazon SES verification status * of a list of identities. For domain identities, this request also * returns the verification token. For information about verifying * identities with Amazon SES, see the Amazon SES Developer Guide. * @return Result of the GetIdentityVerificationAttributes operation * returned by the service. * @sample AmazonSimpleEmailService.GetIdentityVerificationAttributes */ @Override public GetIdentityVerificationAttributesResult getIdentityVerificationAttributes( GetIdentityVerificationAttributesRequest getIdentityVerificationAttributesRequest) { ExecutionContext executionContext = createExecutionContext(getIdentityVerificationAttributesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetIdentityVerificationAttributesRequestMarshaller() .marshall(super .beforeMarshalling(getIdentityVerificationAttributesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetIdentityVerificationAttributesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the user's current sending limits. *

*

* This action is throttled at one request per second. *

* * @param getSendQuotaRequest * @return Result of the GetSendQuota operation returned by the service. * @sample AmazonSimpleEmailService.GetSendQuota */ @Override public GetSendQuotaResult getSendQuota( GetSendQuotaRequest getSendQuotaRequest) { ExecutionContext executionContext = createExecutionContext(getSendQuotaRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetSendQuotaRequestMarshaller().marshall(super .beforeMarshalling(getSendQuotaRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetSendQuotaResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public GetSendQuotaResult getSendQuota() { return getSendQuota(new GetSendQuotaRequest()); } /** *

* Returns the user's sending statistics. The result is a list of data * points, representing the last two weeks of sending activity. *

*

* Each data point in the list contains statistics for a 15-minute interval. *

*

* This action is throttled at one request per second. *

* * @param getSendStatisticsRequest * @return Result of the GetSendStatistics operation returned by the * service. * @sample AmazonSimpleEmailService.GetSendStatistics */ @Override public GetSendStatisticsResult getSendStatistics( GetSendStatisticsRequest getSendStatisticsRequest) { ExecutionContext executionContext = createExecutionContext(getSendStatisticsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetSendStatisticsRequestMarshaller() .marshall(super .beforeMarshalling(getSendStatisticsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new GetSendStatisticsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public GetSendStatisticsResult getSendStatistics() { return getSendStatistics(new GetSendStatisticsRequest()); } /** *

* Returns a list containing all of the identities (email addresses and * domains) for your AWS account, regardless of verification status. *

*

* This action is throttled at one request per second. *

* * @param listIdentitiesRequest * Represents a request to return a list of all identities (email * addresses and domains) that you have attempted to verify under * your AWS account, regardless of verification status. * @return Result of the ListIdentities operation returned by the service. * @sample AmazonSimpleEmailService.ListIdentities */ @Override public ListIdentitiesResult listIdentities( ListIdentitiesRequest listIdentitiesRequest) { ExecutionContext executionContext = createExecutionContext(listIdentitiesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListIdentitiesRequestMarshaller().marshall(super .beforeMarshalling(listIdentitiesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListIdentitiesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public ListIdentitiesResult listIdentities() { return listIdentities(new ListIdentitiesRequest()); } /** *

* Returns a list of sending authorization policies that are attached to the * given identity (an email address or a domain). This API returns only a * list. If you want the actual policy content, you can use * GetIdentityPolicies. *

* *

* This API is for the identity owner only. If you have not verified the * identity, this API will return an error. *

*
*

* Sending authorization is a feature that enables an identity owner to * authorize other senders to use its identities. For information about * using sending authorization, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param listIdentityPoliciesRequest * Represents a request to return a list of sending authorization * policies that are attached to an identity. Sending authorization * is an Amazon SES feature that enables you to authorize other * senders to use your identities. For information, see the Amazon SES Developer Guide. * @return Result of the ListIdentityPolicies operation returned by the * service. * @sample AmazonSimpleEmailService.ListIdentityPolicies */ @Override public ListIdentityPoliciesResult listIdentityPolicies( ListIdentityPoliciesRequest listIdentityPoliciesRequest) { ExecutionContext executionContext = createExecutionContext(listIdentityPoliciesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListIdentityPoliciesRequestMarshaller() .marshall(super .beforeMarshalling(listIdentityPoliciesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListIdentityPoliciesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists the IP address filters associated with your AWS account. *

*

* For information about managing IP address filters, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param listReceiptFiltersRequest * : Represents a request to list the IP address filters that exist * under your AWS account. You use IP address filters when you * receive email with Amazon SES. For more information, see the Amazon SES Developer Guide. * @return Result of the ListReceiptFilters operation returned by the * service. * @sample AmazonSimpleEmailService.ListReceiptFilters */ @Override public ListReceiptFiltersResult listReceiptFilters( ListReceiptFiltersRequest listReceiptFiltersRequest) { ExecutionContext executionContext = createExecutionContext(listReceiptFiltersRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListReceiptFiltersRequestMarshaller() .marshall(super .beforeMarshalling(listReceiptFiltersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListReceiptFiltersResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists the receipt rule sets that exist under your AWS account. If there * are additional receipt rule sets to be retrieved, you will receive a * NextToken that you can provide to the next call to * ListReceiptRuleSets to retrieve the additional entries. *

*

* For information about managing receipt rule sets, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param listReceiptRuleSetsRequest * Represents a request to list the receipt rule sets that exist * under your AWS account. You use receipt rule sets to receive email * with Amazon SES. For more information, see the Amazon SES Developer Guide. * @return Result of the ListReceiptRuleSets operation returned by the * service. * @sample AmazonSimpleEmailService.ListReceiptRuleSets */ @Override public ListReceiptRuleSetsResult listReceiptRuleSets( ListReceiptRuleSetsRequest listReceiptRuleSetsRequest) { ExecutionContext executionContext = createExecutionContext(listReceiptRuleSetsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListReceiptRuleSetsRequestMarshaller() .marshall(super .beforeMarshalling(listReceiptRuleSetsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListReceiptRuleSetsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list containing all of the email addresses that have been * verified. *

* *

* The ListVerifiedEmailAddresses action is deprecated as of the May 15, * 2012 release of Domain Verification. The ListIdentities action is now * preferred. *

*
*

* This action is throttled at one request per second. *

* * @param listVerifiedEmailAddressesRequest * @return Result of the ListVerifiedEmailAddresses operation returned by * the service. * @sample AmazonSimpleEmailService.ListVerifiedEmailAddresses */ @Override public ListVerifiedEmailAddressesResult listVerifiedEmailAddresses( ListVerifiedEmailAddressesRequest listVerifiedEmailAddressesRequest) { ExecutionContext executionContext = createExecutionContext(listVerifiedEmailAddressesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListVerifiedEmailAddressesRequestMarshaller() .marshall(super .beforeMarshalling(listVerifiedEmailAddressesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListVerifiedEmailAddressesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public ListVerifiedEmailAddressesResult listVerifiedEmailAddresses() { return listVerifiedEmailAddresses(new ListVerifiedEmailAddressesRequest()); } /** *

* Adds or updates a sending authorization policy for the specified identity * (an email address or a domain). *

* *

* This API is for the identity owner only. If you have not verified the * identity, this API will return an error. *

*
*

* Sending authorization is a feature that enables an identity owner to * authorize other senders to use its identities. For information about * using sending authorization, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param putIdentityPolicyRequest * Represents a request to add or update a sending authorization * policy for an identity. Sending authorization is an Amazon SES * feature that enables you to authorize other senders to use your * identities. For information, see the Amazon SES Developer Guide. * @return Result of the PutIdentityPolicy operation returned by the * service. * @throws InvalidPolicyException * Indicates that the provided policy is invalid. Check the error * stack for more information about what caused the error. * @sample AmazonSimpleEmailService.PutIdentityPolicy */ @Override public PutIdentityPolicyResult putIdentityPolicy( PutIdentityPolicyRequest putIdentityPolicyRequest) { ExecutionContext executionContext = createExecutionContext(putIdentityPolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutIdentityPolicyRequestMarshaller() .marshall(super .beforeMarshalling(putIdentityPolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new PutIdentityPolicyResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Reorders the receipt rules within a receipt rule set. *

* *

* All of the rules in the rule set must be represented in this request. * That is, this API will return an error if the reorder request doesn't * explicitly position all of the rules. *

*
*

* For information about managing receipt rule sets, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param reorderReceiptRuleSetRequest * Represents a request to reorder the receipt rules within a receipt * rule set. You use receipt rule sets to receive email with Amazon * SES. For more information, see the Amazon SES Developer Guide. * @return Result of the ReorderReceiptRuleSet operation returned by the * service. * @throws RuleSetDoesNotExistException * Indicates that the provided receipt rule set does not exist. * @throws RuleDoesNotExistException * Indicates that the provided receipt rule does not exist. * @sample AmazonSimpleEmailService.ReorderReceiptRuleSet */ @Override public ReorderReceiptRuleSetResult reorderReceiptRuleSet( ReorderReceiptRuleSetRequest reorderReceiptRuleSetRequest) { ExecutionContext executionContext = createExecutionContext(reorderReceiptRuleSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ReorderReceiptRuleSetRequestMarshaller() .marshall(super .beforeMarshalling(reorderReceiptRuleSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ReorderReceiptRuleSetResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Generates and sends a bounce message to the sender of an email you * received through Amazon SES. You can only use this API on an email up to * 24 hours after you receive it. *

* *

* You cannot use this API to send generic bounces for mail that was not * received by Amazon SES. *

*
*

* For information about receiving email through Amazon SES, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param sendBounceRequest * Represents a request to send a bounce message to the sender of an * email you received through Amazon SES. * @return Result of the SendBounce operation returned by the service. * @throws MessageRejectedException * Indicates that the action failed, and the message could not be * sent. Check the error stack for more information about what * caused the error. * @sample AmazonSimpleEmailService.SendBounce */ @Override public SendBounceResult sendBounce(SendBounceRequest sendBounceRequest) { ExecutionContext executionContext = createExecutionContext(sendBounceRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SendBounceRequestMarshaller().marshall(super .beforeMarshalling(sendBounceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new SendBounceResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Composes an email message based on input data, and then immediately * queues the message for sending. *

*

* There are several important points to know about SendEmail: *

*
    *
  • *

    * You can only send email from verified email addresses and domains; * otherwise, you will get an "Email address not verified" error. If your * account is still in the Amazon SES sandbox, you must also verify every * recipient email address except for the recipients provided by the Amazon * SES mailbox simulator. For more information, go to the Amazon SES Developer Guide. *

    *
  • *
  • *

    * The total size of the message cannot exceed 10 MB. This includes any * attachments that are part of the message. *

    *
  • *
  • *

    * Amazon SES has a limit on the total number of recipients per message. The * combined number of To:, CC: and BCC: email addresses cannot exceed 50. If * you need to send an email message to a larger audience, you can divide * your recipient list into groups of 50 or fewer, and then call Amazon SES * repeatedly to send the message to each group. *

    *
  • *
  • *

    * For every message that you send, the total number of recipients (To:, CC: * and BCC:) is counted against your sending quota - the maximum number of * emails you can send in a 24-hour period. For information about your * sending quota, go to the Amazon SES Developer Guide. *

    *
  • *
* * @param sendEmailRequest * Represents a request to send a single formatted email using Amazon * SES. For more information, see the Amazon SES Developer Guide. * @return Result of the SendEmail operation returned by the service. * @throws MessageRejectedException * Indicates that the action failed, and the message could not be * sent. Check the error stack for more information about what * caused the error. * @throws MailFromDomainNotVerifiedException * Indicates that the message could not be sent because Amazon SES * could not read the MX record required to use the specified MAIL * FROM domain. For information about editing the custom MAIL FROM * domain settings for an identity, see the Amazon SES Developer Guide. * @sample AmazonSimpleEmailService.SendEmail */ @Override public SendEmailResult sendEmail(SendEmailRequest sendEmailRequest) { ExecutionContext executionContext = createExecutionContext(sendEmailRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SendEmailRequestMarshaller().marshall(super .beforeMarshalling(sendEmailRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new SendEmailResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Sends an email message, with header and content specified by the client. * The SendRawEmail action is useful for sending multipart MIME * emails. The raw text of the message must comply with Internet email * standards; otherwise, the message cannot be sent. *

*

* There are several important points to know about * SendRawEmail: *

*
    *
  • *

    * You can only send email from verified email addresses and domains; * otherwise, you will get an "Email address not verified" error. If your * account is still in the Amazon SES sandbox, you must also verify every * recipient email address except for the recipients provided by the Amazon * SES mailbox simulator. For more information, go to the Amazon SES Developer Guide. *

    *
  • *
  • *

    * The total size of the message cannot exceed 10 MB. This includes any * attachments that are part of the message. *

    *
  • *
  • *

    * Amazon SES has a limit on the total number of recipients per message. The * combined number of To:, CC: and BCC: email addresses cannot exceed 50. If * you need to send an email message to a larger audience, you can divide * your recipient list into groups of 50 or fewer, and then call Amazon SES * repeatedly to send the message to each group. *

    *
  • *
  • *

    * The To:, CC:, and BCC: headers in the raw message can contain a group * list. Note that each recipient in a group list counts towards the * 50-recipient limit. *

    *
  • *
  • *

    * For every message that you send, the total number of recipients (To:, CC: * and BCC:) is counted against your sending quota - the maximum number of * emails you can send in a 24-hour period. For information about your * sending quota, go to the Amazon SES Developer Guide. *

    *
  • *
  • *

    * If you are using sending authorization to send on behalf of another user, * SendRawEmail enables you to specify the cross-account * identity for the email's "Source," "From," and "Return-Path" parameters * in one of two ways: you can pass optional parameters * SourceArn, FromArn, and/or * ReturnPathArn to the API, or you can include the following * X-headers in the header of your raw email: *

    *
      *
    • *

      * X-SES-SOURCE-ARN *

      *
    • *
    • *

      * X-SES-FROM-ARN *

      *
    • *
    • *

      * X-SES-RETURN-PATH-ARN *

      *
    • *
    * *

    * Do not include these X-headers in the DKIM signature, because they are * removed by Amazon SES before sending the email. *

    *
    *

    * For the most common sending authorization use case, we recommend that you * specify the SourceIdentityArn and do not specify either the * FromIdentityArn or ReturnPathIdentityArn. (The * same note applies to the corresponding X-headers.) If you only specify * the SourceIdentityArn, Amazon SES will simply set the "From" * address and the "Return Path" address to the identity specified in * SourceIdentityArn. For more information about sending * authorization, see the Amazon SES Developer Guide. *

    *
  • *
* * @param sendRawEmailRequest * Represents a request to send a single raw email using Amazon SES. * For more information, see the Amazon SES Developer Guide. * @return Result of the SendRawEmail operation returned by the service. * @throws MessageRejectedException * Indicates that the action failed, and the message could not be * sent. Check the error stack for more information about what * caused the error. * @throws MailFromDomainNotVerifiedException * Indicates that the message could not be sent because Amazon SES * could not read the MX record required to use the specified MAIL * FROM domain. For information about editing the custom MAIL FROM * domain settings for an identity, see the Amazon SES Developer Guide. * @sample AmazonSimpleEmailService.SendRawEmail */ @Override public SendRawEmailResult sendRawEmail( SendRawEmailRequest sendRawEmailRequest) { ExecutionContext executionContext = createExecutionContext(sendRawEmailRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SendRawEmailRequestMarshaller().marshall(super .beforeMarshalling(sendRawEmailRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new SendRawEmailResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Sets the specified receipt rule set as the active receipt rule set. *

* *

* To disable your email-receiving through Amazon SES completely, you can * call this API with RuleSetName set to null. *

*
*

* For information about managing receipt rule sets, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param setActiveReceiptRuleSetRequest * Represents a request to set a receipt rule set as the active * receipt rule set. You use receipt rule sets to receive email with * Amazon SES. For more information, see the Amazon SES Developer Guide. * @return Result of the SetActiveReceiptRuleSet operation returned by the * service. * @throws RuleSetDoesNotExistException * Indicates that the provided receipt rule set does not exist. * @sample AmazonSimpleEmailService.SetActiveReceiptRuleSet */ @Override public SetActiveReceiptRuleSetResult setActiveReceiptRuleSet( SetActiveReceiptRuleSetRequest setActiveReceiptRuleSetRequest) { ExecutionContext executionContext = createExecutionContext(setActiveReceiptRuleSetRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SetActiveReceiptRuleSetRequestMarshaller() .marshall(super .beforeMarshalling(setActiveReceiptRuleSetRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new SetActiveReceiptRuleSetResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Enables or disables Easy DKIM signing of email sent from an identity: *

*
    *
  • *

    * If Easy DKIM signing is enabled for a domain name identity (e.g., * example.com), then Amazon SES will DKIM-sign all email sent * by addresses under that domain name (e.g., [email protected] * ). *

    *
  • *
  • *

    * If Easy DKIM signing is enabled for an email address, then Amazon SES * will DKIM-sign all email sent by that email address. *

    *
  • *
*

* For email addresses (e.g., [email protected]), you can only * enable Easy DKIM signing if the corresponding domain (e.g., * example.com) has been set up for Easy DKIM using the AWS * Console or the VerifyDomainDkim action. *

*

* This action is throttled at one request per second. *

*

* For more information about Easy DKIM signing, go to the Amazon SES Developer Guide. *

* * @param setIdentityDkimEnabledRequest * Represents a request to enable or disable Amazon SES Easy DKIM * signing for an identity. For more information about setting up * Easy DKIM, see the Amazon SES Developer Guide. * @return Result of the SetIdentityDkimEnabled operation returned by the * service. * @sample AmazonSimpleEmailService.SetIdentityDkimEnabled */ @Override public SetIdentityDkimEnabledResult setIdentityDkimEnabled( SetIdentityDkimEnabledRequest setIdentityDkimEnabledRequest) { ExecutionContext executionContext = createExecutionContext(setIdentityDkimEnabledRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SetIdentityDkimEnabledRequestMarshaller() .marshall(super .beforeMarshalling(setIdentityDkimEnabledRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new SetIdentityDkimEnabledResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Given an identity (an email address or a domain), enables or disables * whether Amazon SES forwards bounce and complaint notifications as email. * Feedback forwarding can only be disabled when Amazon Simple Notification * Service (Amazon SNS) topics are specified for both bounces and * complaints. *

* *

* Feedback forwarding does not apply to delivery notifications. Delivery * notifications are only available through Amazon SNS. *

*
*

* This action is throttled at one request per second. *

*

* For more information about using notifications with Amazon SES, see the * Amazon SES Developer Guide. *

* * @param setIdentityFeedbackForwardingEnabledRequest * Represents a request to enable or disable whether Amazon SES * forwards you bounce and complaint notifications through email. For * information about email feedback forwarding, see the Amazon SES Developer Guide. * @return Result of the SetIdentityFeedbackForwardingEnabled operation * returned by the service. * @sample AmazonSimpleEmailService.SetIdentityFeedbackForwardingEnabled */ @Override public SetIdentityFeedbackForwardingEnabledResult setIdentityFeedbackForwardingEnabled( SetIdentityFeedbackForwardingEnabledRequest setIdentityFeedbackForwardingEnabledRequest) { ExecutionContext executionContext = createExecutionContext(setIdentityFeedbackForwardingEnabledRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SetIdentityFeedbackForwardingEnabledRequestMarshaller() .marshall(super .beforeMarshalling(setIdentityFeedbackForwardingEnabledRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new SetIdentityFeedbackForwardingEnabledResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Given an identity (an email address or a domain), sets whether Amazon SES * includes the original email headers in the Amazon Simple Notification * Service (Amazon SNS) notifications of a specified type. *

*

* This action is throttled at one request per second. *

*

* For more information about using notifications with Amazon SES, see the * Amazon SES Developer Guide. *

* * @param setIdentityHeadersInNotificationsEnabledRequest * Represents a request to set whether Amazon SES includes the * original email headers in the Amazon SNS notifications of a * specified type. For information about notifications, see the Amazon SES Developer Guide. * @return Result of the SetIdentityHeadersInNotificationsEnabled operation * returned by the service. * @sample AmazonSimpleEmailService.SetIdentityHeadersInNotificationsEnabled */ @Override public SetIdentityHeadersInNotificationsEnabledResult setIdentityHeadersInNotificationsEnabled( SetIdentityHeadersInNotificationsEnabledRequest setIdentityHeadersInNotificationsEnabledRequest) { ExecutionContext executionContext = createExecutionContext(setIdentityHeadersInNotificationsEnabledRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SetIdentityHeadersInNotificationsEnabledRequestMarshaller() .marshall(super .beforeMarshalling(setIdentityHeadersInNotificationsEnabledRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new SetIdentityHeadersInNotificationsEnabledResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Enables or disables the custom MAIL FROM domain setup for a verified * identity (an email address or a domain). *

* *

* To send emails using the specified MAIL FROM domain, you must add an MX * record to your MAIL FROM domain's DNS settings. If you want your emails * to pass Sender Policy Framework (SPF) checks, you must also add or update * an SPF record. For more information, see the Amazon SES Developer Guide. *

*
*

* This action is throttled at one request per second. *

* * @param setIdentityMailFromDomainRequest * Represents a request to enable or disable the Amazon SES custom * MAIL FROM domain setup for a verified identity. For information * about using a custom MAIL FROM domain, see the Amazon SES Developer Guide. * @return Result of the SetIdentityMailFromDomain operation returned by the * service. * @sample AmazonSimpleEmailService.SetIdentityMailFromDomain */ @Override public SetIdentityMailFromDomainResult setIdentityMailFromDomain( SetIdentityMailFromDomainRequest setIdentityMailFromDomainRequest) { ExecutionContext executionContext = createExecutionContext(setIdentityMailFromDomainRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SetIdentityMailFromDomainRequestMarshaller() .marshall(super .beforeMarshalling(setIdentityMailFromDomainRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new SetIdentityMailFromDomainResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Given an identity (an email address or a domain), sets the Amazon Simple * Notification Service (Amazon SNS) topic to which Amazon SES will publish * bounce, complaint, and/or delivery notifications for emails sent with * that identity as the Source. *

* *

* Unless feedback forwarding is enabled, you must specify Amazon SNS topics * for bounce and complaint notifications. For more information, see * SetIdentityFeedbackForwardingEnabled. *

*
*

* This action is throttled at one request per second. *

*

* For more information about feedback notification, see the Amazon SES Developer Guide. *

* * @param setIdentityNotificationTopicRequest * Represents a request to specify the Amazon SNS topic to which * Amazon SES will publish bounce, complaint, or delivery * notifications for emails sent with that identity as the Source. * For information about Amazon SES notifications, see the Amazon SES Developer Guide. * @return Result of the SetIdentityNotificationTopic operation returned by * the service. * @sample AmazonSimpleEmailService.SetIdentityNotificationTopic */ @Override public SetIdentityNotificationTopicResult setIdentityNotificationTopic( SetIdentityNotificationTopicRequest setIdentityNotificationTopicRequest) { ExecutionContext executionContext = createExecutionContext(setIdentityNotificationTopicRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SetIdentityNotificationTopicRequestMarshaller() .marshall(super .beforeMarshalling(setIdentityNotificationTopicRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new SetIdentityNotificationTopicResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Sets the position of the specified receipt rule in the receipt rule set. *

*

* For information about managing receipt rules, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param setReceiptRulePositionRequest * Represents a request to set the position of a receipt rule in a * receipt rule set. You use receipt rule sets to receive email with * Amazon SES. For more information, see the Amazon SES Developer Guide. * @return Result of the SetReceiptRulePosition operation returned by the * service. * @throws RuleSetDoesNotExistException * Indicates that the provided receipt rule set does not exist. * @throws RuleDoesNotExistException * Indicates that the provided receipt rule does not exist. * @sample AmazonSimpleEmailService.SetReceiptRulePosition */ @Override public SetReceiptRulePositionResult setReceiptRulePosition( SetReceiptRulePositionRequest setReceiptRulePositionRequest) { ExecutionContext executionContext = createExecutionContext(setReceiptRulePositionRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SetReceiptRulePositionRequestMarshaller() .marshall(super .beforeMarshalling(setReceiptRulePositionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new SetReceiptRulePositionResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates a receipt rule. *

*

* For information about managing receipt rules, see the Amazon SES Developer Guide. *

*

* This action is throttled at one request per second. *

* * @param updateReceiptRuleRequest * Represents a request to update a receipt rule. You use receipt * rules to receive email with Amazon SES. For more information, see * the Amazon SES Developer Guide. * @return Result of the UpdateReceiptRule operation returned by the * service. * @throws InvalidSnsTopicException * Indicates that the provided Amazon SNS topic is invalid, or that * Amazon SES could not publish to the topic, possibly due to * permissions issues. For information about giving permissions, see * the Amazon SES Developer Guide. * @throws InvalidS3ConfigurationException * Indicates that the provided Amazon S3 bucket or AWS KMS * encryption key is invalid, or that Amazon SES could not publish * to the bucket, possibly due to permissions issues. For * information about giving permissions, see the Amazon SES Developer Guide. * @throws InvalidLambdaFunctionException * Indicates that the provided AWS Lambda function is invalid, or * that Amazon SES could not execute the provided function, possibly * due to permissions issues. For information about giving * permissions, see the Amazon SES Developer Guide. * @throws RuleSetDoesNotExistException * Indicates that the provided receipt rule set does not exist. * @throws RuleDoesNotExistException * Indicates that the provided receipt rule does not exist. * @throws LimitExceededException * Indicates that a resource could not be created due to service * limits. For a list of Amazon SES limits, see the Amazon SES Developer Guide. * @sample AmazonSimpleEmailService.UpdateReceiptRule */ @Override public UpdateReceiptRuleResult updateReceiptRule( UpdateReceiptRuleRequest updateReceiptRuleRequest) { ExecutionContext executionContext = createExecutionContext(updateReceiptRuleRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateReceiptRuleRequestMarshaller() .marshall(super .beforeMarshalling(updateReceiptRuleRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new UpdateReceiptRuleResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a set of DKIM tokens for a domain. DKIM tokens are * character strings that represent your domain's identity. Using these * tokens, you will need to create DNS CNAME records that point to DKIM * public keys hosted by Amazon SES. Amazon Web Services will eventually * detect that you have updated your DNS records; this detection process may * take up to 72 hours. Upon successful detection, Amazon SES will be able * to DKIM-sign email originating from that domain. *

*

* This action is throttled at one request per second. *

*

* To enable or disable Easy DKIM signing for a domain, use the * SetIdentityDkimEnabled action. *

*

* For more information about creating DNS records using DKIM tokens, go to * the Amazon SES Developer Guide. *

* * @param verifyDomainDkimRequest * Represents a request to generate the CNAME records needed to set * up Easy DKIM with Amazon SES. For more information about setting * up Easy DKIM, see the Amazon SES Developer Guide. * @return Result of the VerifyDomainDkim operation returned by the service. * @sample AmazonSimpleEmailService.VerifyDomainDkim */ @Override public VerifyDomainDkimResult verifyDomainDkim( VerifyDomainDkimRequest verifyDomainDkimRequest) { ExecutionContext executionContext = createExecutionContext(verifyDomainDkimRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new VerifyDomainDkimRequestMarshaller() .marshall(super .beforeMarshalling(verifyDomainDkimRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new VerifyDomainDkimResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Verifies a domain. *

*

* This action is throttled at one request per second. *

* * @param verifyDomainIdentityRequest * Represents a request to begin Amazon SES domain verification and * to generate the TXT records that you must publish to the DNS * server of your domain to complete the verification. For * information about domain verification, see the Amazon SES Developer Guide. * @return Result of the VerifyDomainIdentity operation returned by the * service. * @sample AmazonSimpleEmailService.VerifyDomainIdentity */ @Override public VerifyDomainIdentityResult verifyDomainIdentity( VerifyDomainIdentityRequest verifyDomainIdentityRequest) { ExecutionContext executionContext = createExecutionContext(verifyDomainIdentityRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new VerifyDomainIdentityRequestMarshaller() .marshall(super .beforeMarshalling(verifyDomainIdentityRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new VerifyDomainIdentityResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Verifies an email address. This action causes a confirmation email * message to be sent to the specified address. *

* *

* The VerifyEmailAddress action is deprecated as of the May 15, 2012 * release of Domain Verification. The VerifyEmailIdentity action is now * preferred. *

*
*

* This action is throttled at one request per second. *

* * @param verifyEmailAddressRequest * Represents a request to begin email address verification with * Amazon SES. For information about email address verification, see * the Amazon SES Developer Guide. * @return Result of the VerifyEmailAddress operation returned by the * service. * @sample AmazonSimpleEmailService.VerifyEmailAddress */ @Override public VerifyEmailAddressResult verifyEmailAddress( VerifyEmailAddressRequest verifyEmailAddressRequest) { ExecutionContext executionContext = createExecutionContext(verifyEmailAddressRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new VerifyEmailAddressRequestMarshaller() .marshall(super .beforeMarshalling(verifyEmailAddressRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new VerifyEmailAddressResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Verifies an email address. This action causes a confirmation email * message to be sent to the specified address. *

*

* This action is throttled at one request per second. *

* * @param verifyEmailIdentityRequest * Represents a request to begin email address verification with * Amazon SES. For information about email address verification, see * the Amazon SES Developer Guide. * @return Result of the VerifyEmailIdentity operation returned by the * service. * @sample AmazonSimpleEmailService.VerifyEmailIdentity */ @Override public VerifyEmailIdentityResult verifyEmailIdentity( VerifyEmailIdentityRequest verifyEmailIdentityRequest) { ExecutionContext executionContext = createExecutionContext(verifyEmailIdentityRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new VerifyEmailIdentityRequestMarshaller() .marshall(super .beforeMarshalling(verifyEmailIdentityRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new VerifyEmailIdentityResultStaxUnmarshaller()); 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