/* * Copyright 2010-2023 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.sns.model; import java.io.Serializable; import com.amazonaws.AmazonWebServiceRequest; /** *
* Allows a subscription owner to set an attribute of the subscription to a new * value. *
*/ public class SetSubscriptionAttributesRequest extends AmazonWebServiceRequest implements Serializable { /** ** The ARN of the subscription to modify. *
*/ private String subscriptionArn; /** ** A map of attributes with their corresponding values. *
** The following lists the names, descriptions, and values of the special * request parameters that this action uses: *
*
* DeliveryPolicy
– The policy that defines how Amazon SNS
* retries failed deliveries to HTTP/S endpoints.
*
* FilterPolicy
– The simple JSON object that lets your
* subscriber receive only a subset of messages, rather than receiving every
* message published to the topic.
*
* FilterPolicyScope
– This attribute lets you choose the
* filtering scope by using one of the following string value types:
*
* MessageAttributes
(default) – The filter is applied on the
* message attributes.
*
* MessageBody
– The filter is applied on the message body.
*
* RawMessageDelivery
– When set to true
, enables
* raw message delivery to Amazon SQS or HTTP/S endpoints. This eliminates
* the need for the endpoints to process JSON formatting, which is otherwise
* created for Amazon SNS metadata.
*
* RedrivePolicy
– When specified, sends undeliverable messages
* to the specified Amazon SQS dead-letter queue. Messages that can't be
* delivered due to client errors (for example, when the subscribed endpoint
* is unreachable) or server errors (for example, when the service that
* powers the subscribed endpoint becomes unavailable) are held in the
* dead-letter queue for further analysis or reprocessing.
*
* The following attribute applies only to Amazon Kinesis Data Firehose * delivery stream subscriptions: *
*
* SubscriptionRoleArn
– The ARN of the IAM role that has the
* following:
*
* Permission to write to the Kinesis Data Firehose delivery stream *
** Amazon SNS listed as a trusted entity *
** Specifying a valid ARN for this attribute is required for Kinesis Data * Firehose delivery stream subscriptions. For more information, see Fanout to Kinesis Data Firehose delivery streams in the Amazon * SNS Developer Guide. *
** The new value for the attribute in JSON format. *
*/ private String attributeValue; /** * Default constructor for SetSubscriptionAttributesRequest object. Callers * should use the setter or fluent setter (with...) methods to initialize * any additional object members. */ public SetSubscriptionAttributesRequest() { } /** * Constructs a new SetSubscriptionAttributesRequest object. Callers should * use the setter or fluent setter (with...) methods to initialize any * additional object members. * * @param subscriptionArn* The ARN of the subscription to modify. *
* @param attributeName* A map of attributes with their corresponding values. *
** The following lists the names, descriptions, and values of the * special request parameters that this action uses: *
*
* DeliveryPolicy
– The policy that defines how
* Amazon SNS retries failed deliveries to HTTP/S endpoints.
*
* FilterPolicy
– The simple JSON object that lets
* your subscriber receive only a subset of messages, rather than
* receiving every message published to the topic.
*
* FilterPolicyScope
– This attribute lets you
* choose the filtering scope by using one of the following
* string value types:
*
* MessageAttributes
(default) – The filter is
* applied on the message attributes.
*
* MessageBody
– The filter is applied on the
* message body.
*
* RawMessageDelivery
– When set to
* true
, enables raw message delivery to Amazon SQS
* or HTTP/S endpoints. This eliminates the need for the
* endpoints to process JSON formatting, which is otherwise
* created for Amazon SNS metadata.
*
* RedrivePolicy
– When specified, sends
* undeliverable messages to the specified Amazon SQS dead-letter
* queue. Messages that can't be delivered due to client errors
* (for example, when the subscribed endpoint is unreachable) or
* server errors (for example, when the service that powers the
* subscribed endpoint becomes unavailable) are held in the
* dead-letter queue for further analysis or reprocessing.
*
* The following attribute applies only to Amazon Kinesis Data * Firehose delivery stream subscriptions: *
*
* SubscriptionRoleArn
– The ARN of the IAM role
* that has the following:
*
* Permission to write to the Kinesis Data Firehose delivery * stream *
** Amazon SNS listed as a trusted entity *
** Specifying a valid ARN for this attribute is required for * Kinesis Data Firehose delivery stream subscriptions. For more * information, see Fanout to Kinesis Data Firehose delivery streams in the * Amazon SNS Developer Guide. *
** The new value for the attribute in JSON format. *
*/ public SetSubscriptionAttributesRequest(String subscriptionArn, String attributeName, String attributeValue) { setSubscriptionArn(subscriptionArn); setAttributeName(attributeName); setAttributeValue(attributeValue); } /** ** The ARN of the subscription to modify. *
* * @return* The ARN of the subscription to modify. *
*/ public String getSubscriptionArn() { return subscriptionArn; } /** ** The ARN of the subscription to modify. *
* * @param subscriptionArn* The ARN of the subscription to modify. *
*/ public void setSubscriptionArn(String subscriptionArn) { this.subscriptionArn = subscriptionArn; } /** ** The ARN of the subscription to modify. *
** Returns a reference to this object so that method calls can be chained * together. * * @param subscriptionArn
* The ARN of the subscription to modify. *
* @return A reference to this updated object so that method calls can be * chained together. */ public SetSubscriptionAttributesRequest withSubscriptionArn(String subscriptionArn) { this.subscriptionArn = subscriptionArn; return this; } /** ** A map of attributes with their corresponding values. *
** The following lists the names, descriptions, and values of the special * request parameters that this action uses: *
*
* DeliveryPolicy
– The policy that defines how Amazon SNS
* retries failed deliveries to HTTP/S endpoints.
*
* FilterPolicy
– The simple JSON object that lets your
* subscriber receive only a subset of messages, rather than receiving every
* message published to the topic.
*
* FilterPolicyScope
– This attribute lets you choose the
* filtering scope by using one of the following string value types:
*
* MessageAttributes
(default) – The filter is applied on the
* message attributes.
*
* MessageBody
– The filter is applied on the message body.
*
* RawMessageDelivery
– When set to true
, enables
* raw message delivery to Amazon SQS or HTTP/S endpoints. This eliminates
* the need for the endpoints to process JSON formatting, which is otherwise
* created for Amazon SNS metadata.
*
* RedrivePolicy
– When specified, sends undeliverable messages
* to the specified Amazon SQS dead-letter queue. Messages that can't be
* delivered due to client errors (for example, when the subscribed endpoint
* is unreachable) or server errors (for example, when the service that
* powers the subscribed endpoint becomes unavailable) are held in the
* dead-letter queue for further analysis or reprocessing.
*
* The following attribute applies only to Amazon Kinesis Data Firehose * delivery stream subscriptions: *
*
* SubscriptionRoleArn
– The ARN of the IAM role that has the
* following:
*
* Permission to write to the Kinesis Data Firehose delivery stream *
** Amazon SNS listed as a trusted entity *
** Specifying a valid ARN for this attribute is required for Kinesis Data * Firehose delivery stream subscriptions. For more information, see Fanout to Kinesis Data Firehose delivery streams in the Amazon * SNS Developer Guide. *
** A map of attributes with their corresponding values. *
** The following lists the names, descriptions, and values of the * special request parameters that this action uses: *
*
* DeliveryPolicy
– The policy that defines how Amazon
* SNS retries failed deliveries to HTTP/S endpoints.
*
* FilterPolicy
– The simple JSON object that lets your
* subscriber receive only a subset of messages, rather than
* receiving every message published to the topic.
*
* FilterPolicyScope
– This attribute lets you choose
* the filtering scope by using one of the following string value
* types:
*
* MessageAttributes
(default) – The filter is applied
* on the message attributes.
*
* MessageBody
– The filter is applied on the message
* body.
*
* RawMessageDelivery
– When set to true
,
* enables raw message delivery to Amazon SQS or HTTP/S endpoints.
* This eliminates the need for the endpoints to process JSON
* formatting, which is otherwise created for Amazon SNS metadata.
*
* RedrivePolicy
– When specified, sends undeliverable
* messages to the specified Amazon SQS dead-letter queue. Messages
* that can't be delivered due to client errors (for example, when
* the subscribed endpoint is unreachable) or server errors (for
* example, when the service that powers the subscribed endpoint
* becomes unavailable) are held in the dead-letter queue for
* further analysis or reprocessing.
*
* The following attribute applies only to Amazon Kinesis Data * Firehose delivery stream subscriptions: *
*
* SubscriptionRoleArn
– The ARN of the IAM role that
* has the following:
*
* Permission to write to the Kinesis Data Firehose delivery stream *
** Amazon SNS listed as a trusted entity *
** Specifying a valid ARN for this attribute is required for Kinesis * Data Firehose delivery stream subscriptions. For more * information, see Fanout to Kinesis Data Firehose delivery streams in the * Amazon SNS Developer Guide. *
** A map of attributes with their corresponding values. *
** The following lists the names, descriptions, and values of the special * request parameters that this action uses: *
*
* DeliveryPolicy
– The policy that defines how Amazon SNS
* retries failed deliveries to HTTP/S endpoints.
*
* FilterPolicy
– The simple JSON object that lets your
* subscriber receive only a subset of messages, rather than receiving every
* message published to the topic.
*
* FilterPolicyScope
– This attribute lets you choose the
* filtering scope by using one of the following string value types:
*
* MessageAttributes
(default) – The filter is applied on the
* message attributes.
*
* MessageBody
– The filter is applied on the message body.
*
* RawMessageDelivery
– When set to true
, enables
* raw message delivery to Amazon SQS or HTTP/S endpoints. This eliminates
* the need for the endpoints to process JSON formatting, which is otherwise
* created for Amazon SNS metadata.
*
* RedrivePolicy
– When specified, sends undeliverable messages
* to the specified Amazon SQS dead-letter queue. Messages that can't be
* delivered due to client errors (for example, when the subscribed endpoint
* is unreachable) or server errors (for example, when the service that
* powers the subscribed endpoint becomes unavailable) are held in the
* dead-letter queue for further analysis or reprocessing.
*
* The following attribute applies only to Amazon Kinesis Data Firehose * delivery stream subscriptions: *
*
* SubscriptionRoleArn
– The ARN of the IAM role that has the
* following:
*
* Permission to write to the Kinesis Data Firehose delivery stream *
** Amazon SNS listed as a trusted entity *
** Specifying a valid ARN for this attribute is required for Kinesis Data * Firehose delivery stream subscriptions. For more information, see Fanout to Kinesis Data Firehose delivery streams in the Amazon * SNS Developer Guide. *
** A map of attributes with their corresponding values. *
** The following lists the names, descriptions, and values of the * special request parameters that this action uses: *
*
* DeliveryPolicy
– The policy that defines how
* Amazon SNS retries failed deliveries to HTTP/S endpoints.
*
* FilterPolicy
– The simple JSON object that lets
* your subscriber receive only a subset of messages, rather than
* receiving every message published to the topic.
*
* FilterPolicyScope
– This attribute lets you
* choose the filtering scope by using one of the following
* string value types:
*
* MessageAttributes
(default) – The filter is
* applied on the message attributes.
*
* MessageBody
– The filter is applied on the
* message body.
*
* RawMessageDelivery
– When set to
* true
, enables raw message delivery to Amazon SQS
* or HTTP/S endpoints. This eliminates the need for the
* endpoints to process JSON formatting, which is otherwise
* created for Amazon SNS metadata.
*
* RedrivePolicy
– When specified, sends
* undeliverable messages to the specified Amazon SQS dead-letter
* queue. Messages that can't be delivered due to client errors
* (for example, when the subscribed endpoint is unreachable) or
* server errors (for example, when the service that powers the
* subscribed endpoint becomes unavailable) are held in the
* dead-letter queue for further analysis or reprocessing.
*
* The following attribute applies only to Amazon Kinesis Data * Firehose delivery stream subscriptions: *
*
* SubscriptionRoleArn
– The ARN of the IAM role
* that has the following:
*
* Permission to write to the Kinesis Data Firehose delivery * stream *
** Amazon SNS listed as a trusted entity *
** Specifying a valid ARN for this attribute is required for * Kinesis Data Firehose delivery stream subscriptions. For more * information, see Fanout to Kinesis Data Firehose delivery streams in the * Amazon SNS Developer Guide. *
** A map of attributes with their corresponding values. *
** The following lists the names, descriptions, and values of the special * request parameters that this action uses: *
*
* DeliveryPolicy
– The policy that defines how Amazon SNS
* retries failed deliveries to HTTP/S endpoints.
*
* FilterPolicy
– The simple JSON object that lets your
* subscriber receive only a subset of messages, rather than receiving every
* message published to the topic.
*
* FilterPolicyScope
– This attribute lets you choose the
* filtering scope by using one of the following string value types:
*
* MessageAttributes
(default) – The filter is applied on the
* message attributes.
*
* MessageBody
– The filter is applied on the message body.
*
* RawMessageDelivery
– When set to true
, enables
* raw message delivery to Amazon SQS or HTTP/S endpoints. This eliminates
* the need for the endpoints to process JSON formatting, which is otherwise
* created for Amazon SNS metadata.
*
* RedrivePolicy
– When specified, sends undeliverable messages
* to the specified Amazon SQS dead-letter queue. Messages that can't be
* delivered due to client errors (for example, when the subscribed endpoint
* is unreachable) or server errors (for example, when the service that
* powers the subscribed endpoint becomes unavailable) are held in the
* dead-letter queue for further analysis or reprocessing.
*
* The following attribute applies only to Amazon Kinesis Data Firehose * delivery stream subscriptions: *
*
* SubscriptionRoleArn
– The ARN of the IAM role that has the
* following:
*
* Permission to write to the Kinesis Data Firehose delivery stream *
** Amazon SNS listed as a trusted entity *
** Specifying a valid ARN for this attribute is required for Kinesis Data * Firehose delivery stream subscriptions. For more information, see Fanout to Kinesis Data Firehose delivery streams in the Amazon * SNS Developer Guide. *
** Returns a reference to this object so that method calls can be chained * together. * * @param attributeName
* A map of attributes with their corresponding values. *
** The following lists the names, descriptions, and values of the * special request parameters that this action uses: *
*
* DeliveryPolicy
– The policy that defines how
* Amazon SNS retries failed deliveries to HTTP/S endpoints.
*
* FilterPolicy
– The simple JSON object that lets
* your subscriber receive only a subset of messages, rather than
* receiving every message published to the topic.
*
* FilterPolicyScope
– This attribute lets you
* choose the filtering scope by using one of the following
* string value types:
*
* MessageAttributes
(default) – The filter is
* applied on the message attributes.
*
* MessageBody
– The filter is applied on the
* message body.
*
* RawMessageDelivery
– When set to
* true
, enables raw message delivery to Amazon SQS
* or HTTP/S endpoints. This eliminates the need for the
* endpoints to process JSON formatting, which is otherwise
* created for Amazon SNS metadata.
*
* RedrivePolicy
– When specified, sends
* undeliverable messages to the specified Amazon SQS dead-letter
* queue. Messages that can't be delivered due to client errors
* (for example, when the subscribed endpoint is unreachable) or
* server errors (for example, when the service that powers the
* subscribed endpoint becomes unavailable) are held in the
* dead-letter queue for further analysis or reprocessing.
*
* The following attribute applies only to Amazon Kinesis Data * Firehose delivery stream subscriptions: *
*
* SubscriptionRoleArn
– The ARN of the IAM role
* that has the following:
*
* Permission to write to the Kinesis Data Firehose delivery * stream *
** Amazon SNS listed as a trusted entity *
** Specifying a valid ARN for this attribute is required for * Kinesis Data Firehose delivery stream subscriptions. For more * information, see Fanout to Kinesis Data Firehose delivery streams in the * Amazon SNS Developer Guide. *
** The new value for the attribute in JSON format. *
* * @return* The new value for the attribute in JSON format. *
*/ public String getAttributeValue() { return attributeValue; } /** ** The new value for the attribute in JSON format. *
* * @param attributeValue* The new value for the attribute in JSON format. *
*/ public void setAttributeValue(String attributeValue) { this.attributeValue = attributeValue; } /** ** The new value for the attribute in JSON format. *
** Returns a reference to this object so that method calls can be chained * together. * * @param attributeValue
* The new value for the attribute in JSON format. *
* @return A reference to this updated object so that method calls can be * chained together. */ public SetSubscriptionAttributesRequest withAttributeValue(String attributeValue) { this.attributeValue = attributeValue; 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 (getSubscriptionArn() != null) sb.append("SubscriptionArn: " + getSubscriptionArn() + ","); if (getAttributeName() != null) sb.append("AttributeName: " + getAttributeName() + ","); if (getAttributeValue() != null) sb.append("AttributeValue: " + getAttributeValue()); sb.append("}"); return sb.toString(); } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getSubscriptionArn() == null) ? 0 : getSubscriptionArn().hashCode()); hashCode = prime * hashCode + ((getAttributeName() == null) ? 0 : getAttributeName().hashCode()); hashCode = prime * hashCode + ((getAttributeValue() == null) ? 0 : getAttributeValue().hashCode()); return hashCode; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof SetSubscriptionAttributesRequest == false) return false; SetSubscriptionAttributesRequest other = (SetSubscriptionAttributesRequest) obj; if (other.getSubscriptionArn() == null ^ this.getSubscriptionArn() == null) return false; if (other.getSubscriptionArn() != null && other.getSubscriptionArn().equals(this.getSubscriptionArn()) == false) return false; if (other.getAttributeName() == null ^ this.getAttributeName() == null) return false; if (other.getAttributeName() != null && other.getAttributeName().equals(this.getAttributeName()) == false) return false; if (other.getAttributeValue() == null ^ this.getAttributeValue() == null) return false; if (other.getAttributeValue() != null && other.getAttributeValue().equals(this.getAttributeValue()) == false) return false; return true; } }