/* * 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; /** *

* Represents the notification attributes of an identity, including whether an * identity has Amazon Simple Notification Service (Amazon SNS) topics set for * bounce, complaint, and/or delivery notifications, and whether feedback * forwarding is enabled for bounce and complaint notifications. *

*/ public class IdentityNotificationAttributes implements Serializable { /** *

* The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES * will publish bounce notifications. *

*/ private String bounceTopic; /** *

* The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES * will publish complaint notifications. *

*/ private String complaintTopic; /** *

* The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES * will publish delivery notifications. *

*/ private String deliveryTopic; /** *

* Describes whether Amazon SES will forward bounce and complaint * notifications as email. true indicates that Amazon SES will * forward bounce and complaint notifications as email, while * false indicates that bounce and complaint notifications will * be published only to the specified bounce and complaint Amazon SNS * topics. *

*/ private Boolean forwardingEnabled; /** *

* Describes whether Amazon SES includes the original email headers in * Amazon SNS notifications of type Bounce. A value of * true specifies that Amazon SES will include headers in * bounce notifications, and a value of false specifies that * Amazon SES will not include headers in bounce notifications. *

*/ private Boolean headersInBounceNotificationsEnabled; /** *

* Describes whether Amazon SES includes the original email headers in * Amazon SNS notifications of type Complaint. A value of * true specifies that Amazon SES will include headers in * complaint notifications, and a value of false specifies that * Amazon SES will not include headers in complaint notifications. *

*/ private Boolean headersInComplaintNotificationsEnabled; /** *

* Describes whether Amazon SES includes the original email headers in * Amazon SNS notifications of type Delivery. A value of * true specifies that Amazon SES will include headers in * delivery notifications, and a value of false specifies that * Amazon SES will not include headers in delivery notifications. *

*/ private Boolean headersInDeliveryNotificationsEnabled; /** *

* The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES * will publish bounce notifications. *

* * @return

* The Amazon Resource Name (ARN) of the Amazon SNS topic where * Amazon SES will publish bounce notifications. *

*/ public String getBounceTopic() { return bounceTopic; } /** *

* The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES * will publish bounce notifications. *

* * @param bounceTopic

* The Amazon Resource Name (ARN) of the Amazon SNS topic where * Amazon SES will publish bounce notifications. *

*/ public void setBounceTopic(String bounceTopic) { this.bounceTopic = bounceTopic; } /** *

* The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES * will publish bounce notifications. *

*

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

* The Amazon Resource Name (ARN) of the Amazon SNS topic where * Amazon SES will publish bounce notifications. *

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

* The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES * will publish complaint notifications. *

* * @return

* The Amazon Resource Name (ARN) of the Amazon SNS topic where * Amazon SES will publish complaint notifications. *

*/ public String getComplaintTopic() { return complaintTopic; } /** *

* The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES * will publish complaint notifications. *

* * @param complaintTopic

* The Amazon Resource Name (ARN) of the Amazon SNS topic where * Amazon SES will publish complaint notifications. *

*/ public void setComplaintTopic(String complaintTopic) { this.complaintTopic = complaintTopic; } /** *

* The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES * will publish complaint notifications. *

*

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

* The Amazon Resource Name (ARN) of the Amazon SNS topic where * Amazon SES will publish complaint notifications. *

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

* The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES * will publish delivery notifications. *

* * @return

* The Amazon Resource Name (ARN) of the Amazon SNS topic where * Amazon SES will publish delivery notifications. *

*/ public String getDeliveryTopic() { return deliveryTopic; } /** *

* The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES * will publish delivery notifications. *

* * @param deliveryTopic

* The Amazon Resource Name (ARN) of the Amazon SNS topic where * Amazon SES will publish delivery notifications. *

*/ public void setDeliveryTopic(String deliveryTopic) { this.deliveryTopic = deliveryTopic; } /** *

* The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES * will publish delivery notifications. *

*

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

* The Amazon Resource Name (ARN) of the Amazon SNS topic where * Amazon SES will publish delivery notifications. *

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

* Describes whether Amazon SES will forward bounce and complaint * notifications as email. true indicates that Amazon SES will * forward bounce and complaint notifications as email, while * false indicates that bounce and complaint notifications will * be published only to the specified bounce and complaint Amazon SNS * topics. *

* * @return

* Describes whether Amazon SES will forward bounce and complaint * notifications as email. true indicates that Amazon * SES will forward bounce and complaint notifications as email, * while false indicates that bounce and complaint * notifications will be published only to the specified bounce and * complaint Amazon SNS topics. *

*/ public Boolean isForwardingEnabled() { return forwardingEnabled; } /** *

* Describes whether Amazon SES will forward bounce and complaint * notifications as email. true indicates that Amazon SES will * forward bounce and complaint notifications as email, while * false indicates that bounce and complaint notifications will * be published only to the specified bounce and complaint Amazon SNS * topics. *

* * @return

* Describes whether Amazon SES will forward bounce and complaint * notifications as email. true indicates that Amazon * SES will forward bounce and complaint notifications as email, * while false indicates that bounce and complaint * notifications will be published only to the specified bounce and * complaint Amazon SNS topics. *

*/ public Boolean getForwardingEnabled() { return forwardingEnabled; } /** *

* Describes whether Amazon SES will forward bounce and complaint * notifications as email. true indicates that Amazon SES will * forward bounce and complaint notifications as email, while * false indicates that bounce and complaint notifications will * be published only to the specified bounce and complaint Amazon SNS * topics. *

* * @param forwardingEnabled

* Describes whether Amazon SES will forward bounce and complaint * notifications as email. true indicates that * Amazon SES will forward bounce and complaint notifications as * email, while false indicates that bounce and * complaint notifications will be published only to the * specified bounce and complaint Amazon SNS topics. *

*/ public void setForwardingEnabled(Boolean forwardingEnabled) { this.forwardingEnabled = forwardingEnabled; } /** *

* Describes whether Amazon SES will forward bounce and complaint * notifications as email. true indicates that Amazon SES will * forward bounce and complaint notifications as email, while * false indicates that bounce and complaint notifications will * be published only to the specified bounce and complaint Amazon SNS * topics. *

*

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

* Describes whether Amazon SES will forward bounce and complaint * notifications as email. true indicates that * Amazon SES will forward bounce and complaint notifications as * email, while false indicates that bounce and * complaint notifications will be published only to the * specified bounce and complaint Amazon SNS topics. *

* @return A reference to this updated object so that method calls can be * chained together. */ public IdentityNotificationAttributes withForwardingEnabled(Boolean forwardingEnabled) { this.forwardingEnabled = forwardingEnabled; return this; } /** *

* Describes whether Amazon SES includes the original email headers in * Amazon SNS notifications of type Bounce. A value of * true specifies that Amazon SES will include headers in * bounce notifications, and a value of false specifies that * Amazon SES will not include headers in bounce notifications. *

* * @return

* Describes whether Amazon SES includes the original email headers * in Amazon SNS notifications of type Bounce. A value * of true specifies that Amazon SES will include * headers in bounce notifications, and a value of * false specifies that Amazon SES will not include * headers in bounce notifications. *

*/ public Boolean isHeadersInBounceNotificationsEnabled() { return headersInBounceNotificationsEnabled; } /** *

* Describes whether Amazon SES includes the original email headers in * Amazon SNS notifications of type Bounce. A value of * true specifies that Amazon SES will include headers in * bounce notifications, and a value of false specifies that * Amazon SES will not include headers in bounce notifications. *

* * @return

* Describes whether Amazon SES includes the original email headers * in Amazon SNS notifications of type Bounce. A value * of true specifies that Amazon SES will include * headers in bounce notifications, and a value of * false specifies that Amazon SES will not include * headers in bounce notifications. *

*/ public Boolean getHeadersInBounceNotificationsEnabled() { return headersInBounceNotificationsEnabled; } /** *

* Describes whether Amazon SES includes the original email headers in * Amazon SNS notifications of type Bounce. A value of * true specifies that Amazon SES will include headers in * bounce notifications, and a value of false specifies that * Amazon SES will not include headers in bounce notifications. *

* * @param headersInBounceNotificationsEnabled

* Describes whether Amazon SES includes the original email * headers in Amazon SNS notifications of type * Bounce. A value of true specifies * that Amazon SES will include headers in bounce notifications, * and a value of false specifies that Amazon SES * will not include headers in bounce notifications. *

*/ public void setHeadersInBounceNotificationsEnabled(Boolean headersInBounceNotificationsEnabled) { this.headersInBounceNotificationsEnabled = headersInBounceNotificationsEnabled; } /** *

* Describes whether Amazon SES includes the original email headers in * Amazon SNS notifications of type Bounce. A value of * true specifies that Amazon SES will include headers in * bounce notifications, and a value of false specifies that * Amazon SES will not include headers in bounce notifications. *

*

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

* Describes whether Amazon SES includes the original email * headers in Amazon SNS notifications of type * Bounce. A value of true specifies * that Amazon SES will include headers in bounce notifications, * and a value of false specifies that Amazon SES * will not include headers in bounce notifications. *

* @return A reference to this updated object so that method calls can be * chained together. */ public IdentityNotificationAttributes withHeadersInBounceNotificationsEnabled( Boolean headersInBounceNotificationsEnabled) { this.headersInBounceNotificationsEnabled = headersInBounceNotificationsEnabled; return this; } /** *

* Describes whether Amazon SES includes the original email headers in * Amazon SNS notifications of type Complaint. A value of * true specifies that Amazon SES will include headers in * complaint notifications, and a value of false specifies that * Amazon SES will not include headers in complaint notifications. *

* * @return

* Describes whether Amazon SES includes the original email headers * in Amazon SNS notifications of type Complaint. A * value of true specifies that Amazon SES will include * headers in complaint notifications, and a value of * false specifies that Amazon SES will not include * headers in complaint notifications. *

*/ public Boolean isHeadersInComplaintNotificationsEnabled() { return headersInComplaintNotificationsEnabled; } /** *

* Describes whether Amazon SES includes the original email headers in * Amazon SNS notifications of type Complaint. A value of * true specifies that Amazon SES will include headers in * complaint notifications, and a value of false specifies that * Amazon SES will not include headers in complaint notifications. *

* * @return

* Describes whether Amazon SES includes the original email headers * in Amazon SNS notifications of type Complaint. A * value of true specifies that Amazon SES will include * headers in complaint notifications, and a value of * false specifies that Amazon SES will not include * headers in complaint notifications. *

*/ public Boolean getHeadersInComplaintNotificationsEnabled() { return headersInComplaintNotificationsEnabled; } /** *

* Describes whether Amazon SES includes the original email headers in * Amazon SNS notifications of type Complaint. A value of * true specifies that Amazon SES will include headers in * complaint notifications, and a value of false specifies that * Amazon SES will not include headers in complaint notifications. *

* * @param headersInComplaintNotificationsEnabled

* Describes whether Amazon SES includes the original email * headers in Amazon SNS notifications of type * Complaint. A value of true specifies * that Amazon SES will include headers in complaint * notifications, and a value of false specifies * that Amazon SES will not include headers in complaint * notifications. *

*/ public void setHeadersInComplaintNotificationsEnabled( Boolean headersInComplaintNotificationsEnabled) { this.headersInComplaintNotificationsEnabled = headersInComplaintNotificationsEnabled; } /** *

* Describes whether Amazon SES includes the original email headers in * Amazon SNS notifications of type Complaint. A value of * true specifies that Amazon SES will include headers in * complaint notifications, and a value of false specifies that * Amazon SES will not include headers in complaint notifications. *

*

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

* Describes whether Amazon SES includes the original email * headers in Amazon SNS notifications of type * Complaint. A value of true specifies * that Amazon SES will include headers in complaint * notifications, and a value of false specifies * that Amazon SES will not include headers in complaint * notifications. *

* @return A reference to this updated object so that method calls can be * chained together. */ public IdentityNotificationAttributes withHeadersInComplaintNotificationsEnabled( Boolean headersInComplaintNotificationsEnabled) { this.headersInComplaintNotificationsEnabled = headersInComplaintNotificationsEnabled; return this; } /** *

* Describes whether Amazon SES includes the original email headers in * Amazon SNS notifications of type Delivery. A value of * true specifies that Amazon SES will include headers in * delivery notifications, and a value of false specifies that * Amazon SES will not include headers in delivery notifications. *

* * @return

* Describes whether Amazon SES includes the original email headers * in Amazon SNS notifications of type Delivery. A * value of true specifies that Amazon SES will include * headers in delivery notifications, and a value of * false specifies that Amazon SES will not include * headers in delivery notifications. *

*/ public Boolean isHeadersInDeliveryNotificationsEnabled() { return headersInDeliveryNotificationsEnabled; } /** *

* Describes whether Amazon SES includes the original email headers in * Amazon SNS notifications of type Delivery. A value of * true specifies that Amazon SES will include headers in * delivery notifications, and a value of false specifies that * Amazon SES will not include headers in delivery notifications. *

* * @return

* Describes whether Amazon SES includes the original email headers * in Amazon SNS notifications of type Delivery. A * value of true specifies that Amazon SES will include * headers in delivery notifications, and a value of * false specifies that Amazon SES will not include * headers in delivery notifications. *

*/ public Boolean getHeadersInDeliveryNotificationsEnabled() { return headersInDeliveryNotificationsEnabled; } /** *

* Describes whether Amazon SES includes the original email headers in * Amazon SNS notifications of type Delivery. A value of * true specifies that Amazon SES will include headers in * delivery notifications, and a value of false specifies that * Amazon SES will not include headers in delivery notifications. *

* * @param headersInDeliveryNotificationsEnabled

* Describes whether Amazon SES includes the original email * headers in Amazon SNS notifications of type * Delivery. A value of true specifies * that Amazon SES will include headers in delivery * notifications, and a value of false specifies * that Amazon SES will not include headers in delivery * notifications. *

*/ public void setHeadersInDeliveryNotificationsEnabled( Boolean headersInDeliveryNotificationsEnabled) { this.headersInDeliveryNotificationsEnabled = headersInDeliveryNotificationsEnabled; } /** *

* Describes whether Amazon SES includes the original email headers in * Amazon SNS notifications of type Delivery. A value of * true specifies that Amazon SES will include headers in * delivery notifications, and a value of false specifies that * Amazon SES will not include headers in delivery notifications. *

*

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

* Describes whether Amazon SES includes the original email * headers in Amazon SNS notifications of type * Delivery. A value of true specifies * that Amazon SES will include headers in delivery * notifications, and a value of false specifies * that Amazon SES will not include headers in delivery * notifications. *

* @return A reference to this updated object so that method calls can be * chained together. */ public IdentityNotificationAttributes withHeadersInDeliveryNotificationsEnabled( Boolean headersInDeliveryNotificationsEnabled) { this.headersInDeliveryNotificationsEnabled = headersInDeliveryNotificationsEnabled; 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 (getBounceTopic() != null) sb.append("BounceTopic: " + getBounceTopic() + ","); if (getComplaintTopic() != null) sb.append("ComplaintTopic: " + getComplaintTopic() + ","); if (getDeliveryTopic() != null) sb.append("DeliveryTopic: " + getDeliveryTopic() + ","); if (getForwardingEnabled() != null) sb.append("ForwardingEnabled: " + getForwardingEnabled() + ","); if (getHeadersInBounceNotificationsEnabled() != null) sb.append("HeadersInBounceNotificationsEnabled: " + getHeadersInBounceNotificationsEnabled() + ","); if (getHeadersInComplaintNotificationsEnabled() != null) sb.append("HeadersInComplaintNotificationsEnabled: " + getHeadersInComplaintNotificationsEnabled() + ","); if (getHeadersInDeliveryNotificationsEnabled() != null) sb.append("HeadersInDeliveryNotificationsEnabled: " + getHeadersInDeliveryNotificationsEnabled()); sb.append("}"); return sb.toString(); } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getBounceTopic() == null) ? 0 : getBounceTopic().hashCode()); hashCode = prime * hashCode + ((getComplaintTopic() == null) ? 0 : getComplaintTopic().hashCode()); hashCode = prime * hashCode + ((getDeliveryTopic() == null) ? 0 : getDeliveryTopic().hashCode()); hashCode = prime * hashCode + ((getForwardingEnabled() == null) ? 0 : getForwardingEnabled().hashCode()); hashCode = prime * hashCode + ((getHeadersInBounceNotificationsEnabled() == null) ? 0 : getHeadersInBounceNotificationsEnabled().hashCode()); hashCode = prime * hashCode + ((getHeadersInComplaintNotificationsEnabled() == null) ? 0 : getHeadersInComplaintNotificationsEnabled().hashCode()); hashCode = prime * hashCode + ((getHeadersInDeliveryNotificationsEnabled() == null) ? 0 : getHeadersInDeliveryNotificationsEnabled().hashCode()); return hashCode; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof IdentityNotificationAttributes == false) return false; IdentityNotificationAttributes other = (IdentityNotificationAttributes) obj; if (other.getBounceTopic() == null ^ this.getBounceTopic() == null) return false; if (other.getBounceTopic() != null && other.getBounceTopic().equals(this.getBounceTopic()) == false) return false; if (other.getComplaintTopic() == null ^ this.getComplaintTopic() == null) return false; if (other.getComplaintTopic() != null && other.getComplaintTopic().equals(this.getComplaintTopic()) == false) return false; if (other.getDeliveryTopic() == null ^ this.getDeliveryTopic() == null) return false; if (other.getDeliveryTopic() != null && other.getDeliveryTopic().equals(this.getDeliveryTopic()) == false) return false; if (other.getForwardingEnabled() == null ^ this.getForwardingEnabled() == null) return false; if (other.getForwardingEnabled() != null && other.getForwardingEnabled().equals(this.getForwardingEnabled()) == false) return false; if (other.getHeadersInBounceNotificationsEnabled() == null ^ this.getHeadersInBounceNotificationsEnabled() == null) return false; if (other.getHeadersInBounceNotificationsEnabled() != null && other.getHeadersInBounceNotificationsEnabled().equals( this.getHeadersInBounceNotificationsEnabled()) == false) return false; if (other.getHeadersInComplaintNotificationsEnabled() == null ^ this.getHeadersInComplaintNotificationsEnabled() == null) return false; if (other.getHeadersInComplaintNotificationsEnabled() != null && other.getHeadersInComplaintNotificationsEnabled().equals( this.getHeadersInComplaintNotificationsEnabled()) == false) return false; if (other.getHeadersInDeliveryNotificationsEnabled() == null ^ this.getHeadersInDeliveryNotificationsEnabled() == null) return false; if (other.getHeadersInDeliveryNotificationsEnabled() != null && other.getHeadersInDeliveryNotificationsEnabled().equals( this.getHeadersInDeliveryNotificationsEnabled()) == false) return false; return true; } }