/* * Copyright 2010-2020 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.model; import java.io.Serializable; import com.amazonaws.AmazonWebServiceRequest; /** *

* Composes an email message and immediately queues it for sending. In order to * send email using the SendEmail operation, your message must meet * the following requirements: *

* * *

* For every message that you send, the total number of recipients (including * each recipient in the To:, CC: and BCC: fields) is counted against the * maximum number of emails you can send in a 24-hour period (your sending * quota). For more information about sending quotas in Amazon SES, see Managing Your Amazon SES Sending Limits in the Amazon SES Developer * Guide. *

*
*/ public class SendEmailRequest extends AmazonWebServiceRequest implements Serializable { /** *

* The email address that is sending the email. This email address must be * either individually verified with Amazon SES, or from a domain that has * been verified with Amazon SES. For information about verifying * identities, see the Amazon SES Developer Guide. *

*

* If you are sending on behalf of another user and have been permitted to * do so by a sending authorization policy, then you must also specify the * SourceArn parameter. For more information about sending * authorization, see the Amazon SES Developer Guide. *

* *

* Amazon SES does not support the SMTPUTF8 extension, as described in RFC6531. For this reason, * the local part of a source email address (the part of the email * address that precedes the @ sign) may only contain 7-bit ASCII * characters. If the domain part of an address (the part after * the @ sign) contains non-ASCII characters, they must be encoded using * Punycode, as described in RFC3492. The sender * name (also known as the friendly name) may contain non-ASCII * characters. These characters must be encoded using MIME encoded-word * syntax, as described in RFC * 2047. MIME encoded-word syntax uses the following form: * =?charset?encoding?encoded-text?=. *

*
*/ private String source; /** *

* The destination for this email, composed of To:, CC:, and BCC: fields. *

*/ private Destination destination; /** *

* The message to be sent. *

*/ private Message message; /** *

* The reply-to email address(es) for the message. If the recipient replies * to the message, each reply-to address will receive the reply. *

*/ private java.util.List replyToAddresses = new java.util.ArrayList(); /** *

* The email address that bounces and complaints will be forwarded to when * feedback forwarding is enabled. If the message cannot be delivered to the * recipient, then an error message will be returned from the recipient's * ISP; this message will then be forwarded to the email address specified * by the ReturnPath parameter. The ReturnPath * parameter is never overwritten. This email address must be either * individually verified with Amazon SES, or from a domain that has been * verified with Amazon SES. *

*/ private String returnPath; /** *

* This parameter is used only for sending authorization. It is the ARN of * the identity that is associated with the sending authorization policy * that permits you to send for the email address specified in the * Source parameter. *

*

* For example, if the owner of example.com (which has ARN * arn:aws:ses:us-east-1:123456789012:identity/example.com) * attaches a policy to it that authorizes you to send from * user@example.com, then you would specify the * SourceArn to be * arn:aws:ses:us-east-1:123456789012:identity/example.com, and * the Source to be user@example.com. *

*

* For more information about sending authorization, see the Amazon SES Developer Guide. *

*/ private String sourceArn; /** *

* This parameter is used only for sending authorization. It is the ARN of * the identity that is associated with the sending authorization policy * that permits you to use the email address specified in the * ReturnPath parameter. *

*

* For example, if the owner of example.com (which has ARN * arn:aws:ses:us-east-1:123456789012:identity/example.com) * attaches a policy to it that authorizes you to use * feedback@example.com, then you would specify the * ReturnPathArn to be * arn:aws:ses:us-east-1:123456789012:identity/example.com, and * the ReturnPath to be feedback@example.com. *

*

* For more information about sending authorization, see the Amazon SES Developer Guide. *

*/ private String returnPathArn; /** *

* A list of tags, in the form of name/value pairs, to apply to an email * that you send using SendEmail. Tags correspond to * characteristics of the email that you define, so that you can publish * email sending events. *

*/ private java.util.List tags = new java.util.ArrayList(); /** *

* The name of the configuration set to use when you send an email using * SendEmail. *

*/ private String configurationSetName; /** * Default constructor for SendEmailRequest object. Callers should use the * setter or fluent setter (with...) methods to initialize any additional * object members. */ public SendEmailRequest() { } /** * Constructs a new SendEmailRequest object. Callers should use the setter * or fluent setter (with...) methods to initialize any additional object * members. * * @param source

* The email address that is sending the email. This email * address must be either individually verified with Amazon SES, * or from a domain that has been verified with Amazon SES. For * information about verifying identities, see the Amazon SES Developer Guide. *

*

* If you are sending on behalf of another user and have been * permitted to do so by a sending authorization policy, then you * must also specify the SourceArn parameter. For * more information about sending authorization, see the Amazon SES Developer Guide. *

* *

* Amazon SES does not support the SMTPUTF8 extension, as * described in RFC6531. For * this reason, the local part of a source email address * (the part of the email address that precedes the @ sign) may * only contain 7-bit * ASCII characters. If the domain part of an address * (the part after the @ sign) contains non-ASCII characters, * they must be encoded using Punycode, as described in RFC3492. * The sender name (also known as the friendly name) may * contain non-ASCII characters. These characters must be encoded * using MIME encoded-word syntax, as described in RFC 2047. MIME * encoded-word syntax uses the following form: * =?charset?encoding?encoded-text?=. *

*
* @param destination

* The destination for this email, composed of To:, CC:, and BCC: * fields. *

* @param message

* The message to be sent. *

*/ public SendEmailRequest(String source, Destination destination, Message message) { setSource(source); setDestination(destination); setMessage(message); } /** *

* The email address that is sending the email. This email address must be * either individually verified with Amazon SES, or from a domain that has * been verified with Amazon SES. For information about verifying * identities, see the Amazon SES Developer Guide. *

*

* If you are sending on behalf of another user and have been permitted to * do so by a sending authorization policy, then you must also specify the * SourceArn parameter. For more information about sending * authorization, see the Amazon SES Developer Guide. *

* *

* Amazon SES does not support the SMTPUTF8 extension, as described in RFC6531. For this reason, * the local part of a source email address (the part of the email * address that precedes the @ sign) may only contain 7-bit ASCII * characters. If the domain part of an address (the part after * the @ sign) contains non-ASCII characters, they must be encoded using * Punycode, as described in RFC3492. The sender * name (also known as the friendly name) may contain non-ASCII * characters. These characters must be encoded using MIME encoded-word * syntax, as described in RFC * 2047. MIME encoded-word syntax uses the following form: * =?charset?encoding?encoded-text?=. *

*
* * @return

* The email address that is sending the email. This email address * must be either individually verified with Amazon SES, or from a * domain that has been verified with Amazon SES. For information * about verifying identities, see the Amazon SES Developer Guide. *

*

* If you are sending on behalf of another user and have been * permitted to do so by a sending authorization policy, then you * must also specify the SourceArn parameter. For more * information about sending authorization, see the Amazon SES Developer Guide. *

* *

* Amazon SES does not support the SMTPUTF8 extension, as described * in RFC6531. For * this reason, the local part of a source email address (the * part of the email address that precedes the @ sign) may only * contain 7-bit ASCII characters. If the domain part of an * address (the part after the @ sign) contains non-ASCII * characters, they must be encoded using Punycode, as described in * RFC3492. * The sender name (also known as the friendly name) may * contain non-ASCII characters. These characters must be encoded * using MIME encoded-word syntax, as described in RFC 2047. MIME * encoded-word syntax uses the following form: * =?charset?encoding?encoded-text?=. *

*
*/ public String getSource() { return source; } /** *

* The email address that is sending the email. This email address must be * either individually verified with Amazon SES, or from a domain that has * been verified with Amazon SES. For information about verifying * identities, see the Amazon SES Developer Guide. *

*

* If you are sending on behalf of another user and have been permitted to * do so by a sending authorization policy, then you must also specify the * SourceArn parameter. For more information about sending * authorization, see the Amazon SES Developer Guide. *

* *

* Amazon SES does not support the SMTPUTF8 extension, as described in RFC6531. For this reason, * the local part of a source email address (the part of the email * address that precedes the @ sign) may only contain 7-bit ASCII * characters. If the domain part of an address (the part after * the @ sign) contains non-ASCII characters, they must be encoded using * Punycode, as described in RFC3492. The sender * name (also known as the friendly name) may contain non-ASCII * characters. These characters must be encoded using MIME encoded-word * syntax, as described in RFC * 2047. MIME encoded-word syntax uses the following form: * =?charset?encoding?encoded-text?=. *

*
* * @param source

* The email address that is sending the email. This email * address must be either individually verified with Amazon SES, * or from a domain that has been verified with Amazon SES. For * information about verifying identities, see the Amazon SES Developer Guide. *

*

* If you are sending on behalf of another user and have been * permitted to do so by a sending authorization policy, then you * must also specify the SourceArn parameter. For * more information about sending authorization, see the Amazon SES Developer Guide. *

* *

* Amazon SES does not support the SMTPUTF8 extension, as * described in RFC6531. For * this reason, the local part of a source email address * (the part of the email address that precedes the @ sign) may * only contain 7-bit * ASCII characters. If the domain part of an address * (the part after the @ sign) contains non-ASCII characters, * they must be encoded using Punycode, as described in RFC3492. * The sender name (also known as the friendly name) may * contain non-ASCII characters. These characters must be encoded * using MIME encoded-word syntax, as described in RFC 2047. MIME * encoded-word syntax uses the following form: * =?charset?encoding?encoded-text?=. *

*
*/ public void setSource(String source) { this.source = source; } /** *

* The email address that is sending the email. This email address must be * either individually verified with Amazon SES, or from a domain that has * been verified with Amazon SES. For information about verifying * identities, see the Amazon SES Developer Guide. *

*

* If you are sending on behalf of another user and have been permitted to * do so by a sending authorization policy, then you must also specify the * SourceArn parameter. For more information about sending * authorization, see the Amazon SES Developer Guide. *

* *

* Amazon SES does not support the SMTPUTF8 extension, as described in RFC6531. For this reason, * the local part of a source email address (the part of the email * address that precedes the @ sign) may only contain 7-bit ASCII * characters. If the domain part of an address (the part after * the @ sign) contains non-ASCII characters, they must be encoded using * Punycode, as described in RFC3492. The sender * name (also known as the friendly name) may contain non-ASCII * characters. These characters must be encoded using MIME encoded-word * syntax, as described in RFC * 2047. MIME encoded-word syntax uses the following form: * =?charset?encoding?encoded-text?=. *

*
*

* Returns a reference to this object so that method calls can be chained * together. * * @param source

* The email address that is sending the email. This email * address must be either individually verified with Amazon SES, * or from a domain that has been verified with Amazon SES. For * information about verifying identities, see the Amazon SES Developer Guide. *

*

* If you are sending on behalf of another user and have been * permitted to do so by a sending authorization policy, then you * must also specify the SourceArn parameter. For * more information about sending authorization, see the Amazon SES Developer Guide. *

* *

* Amazon SES does not support the SMTPUTF8 extension, as * described in RFC6531. For * this reason, the local part of a source email address * (the part of the email address that precedes the @ sign) may * only contain 7-bit * ASCII characters. If the domain part of an address * (the part after the @ sign) contains non-ASCII characters, * they must be encoded using Punycode, as described in RFC3492. * The sender name (also known as the friendly name) may * contain non-ASCII characters. These characters must be encoded * using MIME encoded-word syntax, as described in RFC 2047. MIME * encoded-word syntax uses the following form: * =?charset?encoding?encoded-text?=. *

*
* @return A reference to this updated object so that method calls can be * chained together. */ public SendEmailRequest withSource(String source) { this.source = source; return this; } /** *

* The destination for this email, composed of To:, CC:, and BCC: fields. *

* * @return

* The destination for this email, composed of To:, CC:, and BCC: * fields. *

*/ public Destination getDestination() { return destination; } /** *

* The destination for this email, composed of To:, CC:, and BCC: fields. *

* * @param destination

* The destination for this email, composed of To:, CC:, and BCC: * fields. *

*/ public void setDestination(Destination destination) { this.destination = destination; } /** *

* The destination for this email, composed of To:, CC:, and BCC: fields. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param destination

* The destination for this email, composed of To:, CC:, and BCC: * fields. *

* @return A reference to this updated object so that method calls can be * chained together. */ public SendEmailRequest withDestination(Destination destination) { this.destination = destination; return this; } /** *

* The message to be sent. *

* * @return

* The message to be sent. *

*/ public Message getMessage() { return message; } /** *

* The message to be sent. *

* * @param message

* The message to be sent. *

*/ public void setMessage(Message message) { this.message = message; } /** *

* The message to be sent. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param message

* The message to be sent. *

* @return A reference to this updated object so that method calls can be * chained together. */ public SendEmailRequest withMessage(Message message) { this.message = message; return this; } /** *

* The reply-to email address(es) for the message. If the recipient replies * to the message, each reply-to address will receive the reply. *

* * @return

* The reply-to email address(es) for the message. If the recipient * replies to the message, each reply-to address will receive the * reply. *

*/ public java.util.List getReplyToAddresses() { return replyToAddresses; } /** *

* The reply-to email address(es) for the message. If the recipient replies * to the message, each reply-to address will receive the reply. *

* * @param replyToAddresses

* The reply-to email address(es) for the message. If the * recipient replies to the message, each reply-to address will * receive the reply. *

*/ public void setReplyToAddresses(java.util.Collection replyToAddresses) { if (replyToAddresses == null) { this.replyToAddresses = null; return; } this.replyToAddresses = new java.util.ArrayList(replyToAddresses); } /** *

* The reply-to email address(es) for the message. If the recipient replies * to the message, each reply-to address will receive the reply. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param replyToAddresses

* The reply-to email address(es) for the message. If the * recipient replies to the message, each reply-to address will * receive the reply. *

* @return A reference to this updated object so that method calls can be * chained together. */ public SendEmailRequest withReplyToAddresses(String... replyToAddresses) { if (getReplyToAddresses() == null) { this.replyToAddresses = new java.util.ArrayList(replyToAddresses.length); } for (String value : replyToAddresses) { this.replyToAddresses.add(value); } return this; } /** *

* The reply-to email address(es) for the message. If the recipient replies * to the message, each reply-to address will receive the reply. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param replyToAddresses

* The reply-to email address(es) for the message. If the * recipient replies to the message, each reply-to address will * receive the reply. *

* @return A reference to this updated object so that method calls can be * chained together. */ public SendEmailRequest withReplyToAddresses(java.util.Collection replyToAddresses) { setReplyToAddresses(replyToAddresses); return this; } /** *

* The email address that bounces and complaints will be forwarded to when * feedback forwarding is enabled. If the message cannot be delivered to the * recipient, then an error message will be returned from the recipient's * ISP; this message will then be forwarded to the email address specified * by the ReturnPath parameter. The ReturnPath * parameter is never overwritten. This email address must be either * individually verified with Amazon SES, or from a domain that has been * verified with Amazon SES. *

* * @return

* The email address that bounces and complaints will be forwarded * to when feedback forwarding is enabled. If the message cannot be * delivered to the recipient, then an error message will be * returned from the recipient's ISP; this message will then be * forwarded to the email address specified by the * ReturnPath parameter. The ReturnPath * parameter is never overwritten. This email address must be either * individually verified with Amazon SES, or from a domain that has * been verified with Amazon SES. *

*/ public String getReturnPath() { return returnPath; } /** *

* The email address that bounces and complaints will be forwarded to when * feedback forwarding is enabled. If the message cannot be delivered to the * recipient, then an error message will be returned from the recipient's * ISP; this message will then be forwarded to the email address specified * by the ReturnPath parameter. The ReturnPath * parameter is never overwritten. This email address must be either * individually verified with Amazon SES, or from a domain that has been * verified with Amazon SES. *

* * @param returnPath

* The email address that bounces and complaints will be * forwarded to when feedback forwarding is enabled. If the * message cannot be delivered to the recipient, then an error * message will be returned from the recipient's ISP; this * message will then be forwarded to the email address specified * by the ReturnPath parameter. The * ReturnPath parameter is never overwritten. This * email address must be either individually verified with Amazon * SES, or from a domain that has been verified with Amazon SES. *

*/ public void setReturnPath(String returnPath) { this.returnPath = returnPath; } /** *

* The email address that bounces and complaints will be forwarded to when * feedback forwarding is enabled. If the message cannot be delivered to the * recipient, then an error message will be returned from the recipient's * ISP; this message will then be forwarded to the email address specified * by the ReturnPath parameter. The ReturnPath * parameter is never overwritten. This email address must be either * individually verified with Amazon SES, or from a domain that has been * verified with Amazon SES. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param returnPath

* The email address that bounces and complaints will be * forwarded to when feedback forwarding is enabled. If the * message cannot be delivered to the recipient, then an error * message will be returned from the recipient's ISP; this * message will then be forwarded to the email address specified * by the ReturnPath parameter. The * ReturnPath parameter is never overwritten. This * email address must be either individually verified with Amazon * SES, or from a domain that has been verified with Amazon SES. *

* @return A reference to this updated object so that method calls can be * chained together. */ public SendEmailRequest withReturnPath(String returnPath) { this.returnPath = returnPath; return this; } /** *

* This parameter is used only for sending authorization. It is the ARN of * the identity that is associated with the sending authorization policy * that permits you to send for the email address specified in the * Source parameter. *

*

* For example, if the owner of example.com (which has ARN * arn:aws:ses:us-east-1:123456789012:identity/example.com) * attaches a policy to it that authorizes you to send from * user@example.com, then you would specify the * SourceArn to be * arn:aws:ses:us-east-1:123456789012:identity/example.com, and * the Source to be user@example.com. *

*

* For more information about sending authorization, see the Amazon SES Developer Guide. *

* * @return

* This parameter is used only for sending authorization. It is the * ARN of the identity that is associated with the sending * authorization policy that permits you to send for the email * address specified in the Source parameter. *

*

* For example, if the owner of example.com (which has * ARN * arn:aws:ses:us-east-1:123456789012:identity/example.com * ) attaches a policy to it that authorizes you to send from * user@example.com, then you would specify the * SourceArn to be * arn:aws:ses:us-east-1:123456789012:identity/example.com * , and the Source to be user@example.com * . *

*

* For more information about sending authorization, see the Amazon SES Developer Guide. *

*/ public String getSourceArn() { return sourceArn; } /** *

* This parameter is used only for sending authorization. It is the ARN of * the identity that is associated with the sending authorization policy * that permits you to send for the email address specified in the * Source parameter. *

*

* For example, if the owner of example.com (which has ARN * arn:aws:ses:us-east-1:123456789012:identity/example.com) * attaches a policy to it that authorizes you to send from * user@example.com, then you would specify the * SourceArn to be * arn:aws:ses:us-east-1:123456789012:identity/example.com, and * the Source to be user@example.com. *

*

* For more information about sending authorization, see the Amazon SES Developer Guide. *

* * @param sourceArn

* This parameter is used only for sending authorization. It is * the ARN of the identity that is associated with the sending * authorization policy that permits you to send for the email * address specified in the Source parameter. *

*

* For example, if the owner of example.com (which * has ARN * arn:aws:ses:us-east-1:123456789012:identity/example.com * ) attaches a policy to it that authorizes you to send from * user@example.com, then you would specify the * SourceArn to be * arn:aws:ses:us-east-1:123456789012:identity/example.com * , and the Source to be * user@example.com. *

*

* For more information about sending authorization, see the Amazon SES Developer Guide. *

*/ public void setSourceArn(String sourceArn) { this.sourceArn = sourceArn; } /** *

* This parameter is used only for sending authorization. It is the ARN of * the identity that is associated with the sending authorization policy * that permits you to send for the email address specified in the * Source parameter. *

*

* For example, if the owner of example.com (which has ARN * arn:aws:ses:us-east-1:123456789012:identity/example.com) * attaches a policy to it that authorizes you to send from * user@example.com, then you would specify the * SourceArn to be * arn:aws:ses:us-east-1:123456789012:identity/example.com, and * the Source to be user@example.com. *

*

* For more information about sending authorization, see the Amazon SES Developer Guide. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param sourceArn

* This parameter is used only for sending authorization. It is * the ARN of the identity that is associated with the sending * authorization policy that permits you to send for the email * address specified in the Source parameter. *

*

* For example, if the owner of example.com (which * has ARN * arn:aws:ses:us-east-1:123456789012:identity/example.com * ) attaches a policy to it that authorizes you to send from * user@example.com, then you would specify the * SourceArn to be * arn:aws:ses:us-east-1:123456789012:identity/example.com * , and the Source to be * user@example.com. *

*

* For more information about sending authorization, see the Amazon SES Developer Guide. *

* @return A reference to this updated object so that method calls can be * chained together. */ public SendEmailRequest withSourceArn(String sourceArn) { this.sourceArn = sourceArn; return this; } /** *

* This parameter is used only for sending authorization. It is the ARN of * the identity that is associated with the sending authorization policy * that permits you to use the email address specified in the * ReturnPath parameter. *

*

* For example, if the owner of example.com (which has ARN * arn:aws:ses:us-east-1:123456789012:identity/example.com) * attaches a policy to it that authorizes you to use * feedback@example.com, then you would specify the * ReturnPathArn to be * arn:aws:ses:us-east-1:123456789012:identity/example.com, and * the ReturnPath to be feedback@example.com. *

*

* For more information about sending authorization, see the Amazon SES Developer Guide. *

* * @return

* This parameter is used only for sending authorization. It is the * ARN of the identity that is associated with the sending * authorization policy that permits you to use the email address * specified in the ReturnPath parameter. *

*

* For example, if the owner of example.com (which has * ARN * arn:aws:ses:us-east-1:123456789012:identity/example.com * ) attaches a policy to it that authorizes you to use * feedback@example.com, then you would specify the * ReturnPathArn to be * arn:aws:ses:us-east-1:123456789012:identity/example.com * , and the ReturnPath to be * feedback@example.com. *

*

* For more information about sending authorization, see the Amazon SES Developer Guide. *

*/ public String getReturnPathArn() { return returnPathArn; } /** *

* This parameter is used only for sending authorization. It is the ARN of * the identity that is associated with the sending authorization policy * that permits you to use the email address specified in the * ReturnPath parameter. *

*

* For example, if the owner of example.com (which has ARN * arn:aws:ses:us-east-1:123456789012:identity/example.com) * attaches a policy to it that authorizes you to use * feedback@example.com, then you would specify the * ReturnPathArn to be * arn:aws:ses:us-east-1:123456789012:identity/example.com, and * the ReturnPath to be feedback@example.com. *

*

* For more information about sending authorization, see the Amazon SES Developer Guide. *

* * @param returnPathArn

* This parameter is used only for sending authorization. It is * the ARN of the identity that is associated with the sending * authorization policy that permits you to use the email address * specified in the ReturnPath parameter. *

*

* For example, if the owner of example.com (which * has ARN * arn:aws:ses:us-east-1:123456789012:identity/example.com * ) attaches a policy to it that authorizes you to use * feedback@example.com, then you would specify the * ReturnPathArn to be * arn:aws:ses:us-east-1:123456789012:identity/example.com * , and the ReturnPath to be * feedback@example.com. *

*

* For more information about sending authorization, see the Amazon SES Developer Guide. *

*/ public void setReturnPathArn(String returnPathArn) { this.returnPathArn = returnPathArn; } /** *

* This parameter is used only for sending authorization. It is the ARN of * the identity that is associated with the sending authorization policy * that permits you to use the email address specified in the * ReturnPath parameter. *

*

* For example, if the owner of example.com (which has ARN * arn:aws:ses:us-east-1:123456789012:identity/example.com) * attaches a policy to it that authorizes you to use * feedback@example.com, then you would specify the * ReturnPathArn to be * arn:aws:ses:us-east-1:123456789012:identity/example.com, and * the ReturnPath to be feedback@example.com. *

*

* For more information about sending authorization, see the Amazon SES Developer Guide. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param returnPathArn

* This parameter is used only for sending authorization. It is * the ARN of the identity that is associated with the sending * authorization policy that permits you to use the email address * specified in the ReturnPath parameter. *

*

* For example, if the owner of example.com (which * has ARN * arn:aws:ses:us-east-1:123456789012:identity/example.com * ) attaches a policy to it that authorizes you to use * feedback@example.com, then you would specify the * ReturnPathArn to be * arn:aws:ses:us-east-1:123456789012:identity/example.com * , and the ReturnPath to be * feedback@example.com. *

*

* For more information about sending authorization, see the Amazon SES Developer Guide. *

* @return A reference to this updated object so that method calls can be * chained together. */ public SendEmailRequest withReturnPathArn(String returnPathArn) { this.returnPathArn = returnPathArn; return this; } /** *

* A list of tags, in the form of name/value pairs, to apply to an email * that you send using SendEmail. Tags correspond to * characteristics of the email that you define, so that you can publish * email sending events. *

* * @return

* A list of tags, in the form of name/value pairs, to apply to an * email that you send using SendEmail. Tags correspond * to characteristics of the email that you define, so that you can * publish email sending events. *

*/ public java.util.List getTags() { return tags; } /** *

* A list of tags, in the form of name/value pairs, to apply to an email * that you send using SendEmail. Tags correspond to * characteristics of the email that you define, so that you can publish * email sending events. *

* * @param tags

* A list of tags, in the form of name/value pairs, to apply to * an email that you send using SendEmail. Tags * correspond to characteristics of the email that you define, so * that you can publish email sending events. *

*/ public void setTags(java.util.Collection tags) { if (tags == null) { this.tags = null; return; } this.tags = new java.util.ArrayList(tags); } /** *

* A list of tags, in the form of name/value pairs, to apply to an email * that you send using SendEmail. Tags correspond to * characteristics of the email that you define, so that you can publish * email sending events. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param tags

* A list of tags, in the form of name/value pairs, to apply to * an email that you send using SendEmail. Tags * correspond to characteristics of the email that you define, so * that you can publish email sending events. *

* @return A reference to this updated object so that method calls can be * chained together. */ public SendEmailRequest withTags(MessageTag... tags) { if (getTags() == null) { this.tags = new java.util.ArrayList(tags.length); } for (MessageTag value : tags) { this.tags.add(value); } return this; } /** *

* A list of tags, in the form of name/value pairs, to apply to an email * that you send using SendEmail. Tags correspond to * characteristics of the email that you define, so that you can publish * email sending events. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param tags

* A list of tags, in the form of name/value pairs, to apply to * an email that you send using SendEmail. Tags * correspond to characteristics of the email that you define, so * that you can publish email sending events. *

* @return A reference to this updated object so that method calls can be * chained together. */ public SendEmailRequest withTags(java.util.Collection tags) { setTags(tags); return this; } /** *

* The name of the configuration set to use when you send an email using * SendEmail. *

* * @return

* The name of the configuration set to use when you send an email * using SendEmail. *

*/ public String getConfigurationSetName() { return configurationSetName; } /** *

* The name of the configuration set to use when you send an email using * SendEmail. *

* * @param configurationSetName

* The name of the configuration set to use when you send an * email using SendEmail. *

*/ public void setConfigurationSetName(String configurationSetName) { this.configurationSetName = configurationSetName; } /** *

* The name of the configuration set to use when you send an email using * SendEmail. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param configurationSetName

* The name of the configuration set to use when you send an * email using SendEmail. *

* @return A reference to this updated object so that method calls can be * chained together. */ public SendEmailRequest withConfigurationSetName(String configurationSetName) { this.configurationSetName = configurationSetName; return this; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getSource() != null) sb.append("Source: " + getSource() + ","); if (getDestination() != null) sb.append("Destination: " + getDestination() + ","); if (getMessage() != null) sb.append("Message: " + getMessage() + ","); if (getReplyToAddresses() != null) sb.append("ReplyToAddresses: " + getReplyToAddresses() + ","); if (getReturnPath() != null) sb.append("ReturnPath: " + getReturnPath() + ","); if (getSourceArn() != null) sb.append("SourceArn: " + getSourceArn() + ","); if (getReturnPathArn() != null) sb.append("ReturnPathArn: " + getReturnPathArn() + ","); if (getTags() != null) sb.append("Tags: " + getTags() + ","); if (getConfigurationSetName() != null) sb.append("ConfigurationSetName: " + getConfigurationSetName()); sb.append("}"); return sb.toString(); } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getSource() == null) ? 0 : getSource().hashCode()); hashCode = prime * hashCode + ((getDestination() == null) ? 0 : getDestination().hashCode()); hashCode = prime * hashCode + ((getMessage() == null) ? 0 : getMessage().hashCode()); hashCode = prime * hashCode + ((getReplyToAddresses() == null) ? 0 : getReplyToAddresses().hashCode()); hashCode = prime * hashCode + ((getReturnPath() == null) ? 0 : getReturnPath().hashCode()); hashCode = prime * hashCode + ((getSourceArn() == null) ? 0 : getSourceArn().hashCode()); hashCode = prime * hashCode + ((getReturnPathArn() == null) ? 0 : getReturnPathArn().hashCode()); hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode()); hashCode = prime * hashCode + ((getConfigurationSetName() == null) ? 0 : getConfigurationSetName().hashCode()); return hashCode; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof SendEmailRequest == false) return false; SendEmailRequest other = (SendEmailRequest) obj; if (other.getSource() == null ^ this.getSource() == null) return false; if (other.getSource() != null && other.getSource().equals(this.getSource()) == false) return false; if (other.getDestination() == null ^ this.getDestination() == null) return false; if (other.getDestination() != null && other.getDestination().equals(this.getDestination()) == false) return false; if (other.getMessage() == null ^ this.getMessage() == null) return false; if (other.getMessage() != null && other.getMessage().equals(this.getMessage()) == false) return false; if (other.getReplyToAddresses() == null ^ this.getReplyToAddresses() == null) return false; if (other.getReplyToAddresses() != null && other.getReplyToAddresses().equals(this.getReplyToAddresses()) == false) return false; if (other.getReturnPath() == null ^ this.getReturnPath() == null) return false; if (other.getReturnPath() != null && other.getReturnPath().equals(this.getReturnPath()) == false) return false; if (other.getSourceArn() == null ^ this.getSourceArn() == null) return false; if (other.getSourceArn() != null && other.getSourceArn().equals(this.getSourceArn()) == false) return false; if (other.getReturnPathArn() == null ^ this.getReturnPathArn() == null) return false; if (other.getReturnPathArn() != null && other.getReturnPathArn().equals(this.getReturnPathArn()) == false) return false; if (other.getTags() == null ^ this.getTags() == null) return false; if (other.getTags() != null && other.getTags().equals(this.getTags()) == false) return false; if (other.getConfigurationSetName() == null ^ this.getConfigurationSetName() == null) return false; if (other.getConfigurationSetName() != null && other.getConfigurationSetName().equals(this.getConfigurationSetName()) == false) return false; return true; } }