class AWS::SNS::Subscription
Represents a subscription of a single endpoint to an SNS topic. To create a subscription, use the {Topic#subscribe} method. Depending on the endpoint type, you may also need to use {Topic#confirm_subscription}.
Attributes
@return [String] The ARN of the subscription.
@return [String] The endpoint. This can be an HTTP or HTTPS URL, an e-mail address, or a queue ARN.
@return [String] The protocol. Possible values:
* `:http` * `:https` * `:email` * `:email_json` * `:sqs`
Public Class Methods
@api private
# File lib/aws/sns/subscription.rb, line 27 def initialize(arn, opts = {}) @arn = arn @topic_arn = opts[:topic_arn] @endpoint = opts[:endpoint] @protocol = opts[:protocol] @owner_id = opts[:owner_id] super end
Public Instance Methods
@return [Boolean] Returns true if the subscription confirmation
request was authenticated.
# File lib/aws/sns/subscription.rb, line 76 def confirmation_authenticated? return true if @authenticated if authenticated = get_attributes['ConfirmationWasAuthenticated'] @authenticated = true else false end end
You can get the parsed JSON hash from {#delivery_policy}. @return [nil,String] Returns the delivery policy JSON string.
# File lib/aws/sns/subscription.rb, line 90 def delivery_policy_json get_attributes['DeliveryPolicy'] end
You can get the parsed JSON hash from {#effective_delivery_policy}. @return [nil,String] Returns the effective delivery policy JSON string.
# File lib/aws/sns/subscription.rb, line 96 def effective_delivery_policy_json get_attributes['EffectiveDeliveryPolicy'] end
@return [Boolean] Returns true if the subscriptions have the same
resource ARN.
# File lib/aws/sns/subscription.rb, line 138 def eql? other other.kind_of?(Subscription) and other.arn == arn end
@note This method requests the entire list of subscriptions
for the topic (if known) or the account (if the topic is not known). It can be expensive if the number of subscriptions is high.
@return [Boolean] Returns true if the subscription exists.
# File lib/aws/sns/subscription.rb, line 122 def exists? begin get_attributes true rescue Errors::NotFound, Errors::InvalidParameter false end end
@api private
# File lib/aws/sns/subscription.rb, line 132 def inspect "<#{self.class} arn:#{arn}>" end
@return [String] The AWS account ID of the subscription owner.
# File lib/aws/sns/subscription.rb, line 53 def owner_id @owner_id ||= get_attributes['Owner'] end
@return [Boolean] Returns true if the subscriptions has raw message delivery enabled.
# File lib/aws/sns/subscription.rb, line 101 def raw_message_delivery raw_value = get_attributes['RawMessageDelivery'] raw_value.downcase == 'true' end
@param [Boolean] raw_delivery Whether to enable or disable raw message delivery.
# File lib/aws/sns/subscription.rb, line 107 def raw_message_delivery= raw_delivery value = if raw_delivery 'true' else 'false' end update_subscription_attribute('RawMessageDelivery', value) end
@return [Topic]
# File lib/aws/sns/subscription.rb, line 63 def topic Topic.new(topic_arn, :config => config) end
@return [String]
# File lib/aws/sns/subscription.rb, line 58 def topic_arn @topic_arn ||= get_attributes['TopicArn'] end
Deletes this subscription. @return [nil]
# File lib/aws/sns/subscription.rb, line 69 def unsubscribe client.unsubscribe(:subscription_arn => arn) nil end
Protected Instance Methods
# File lib/aws/sns/subscription.rb, line 158 def get_attributes client.get_subscription_attributes(:subscription_arn => arn).attributes end
# File lib/aws/sns/subscription.rb, line 153 def update_delivery_policy policy_json update_subscription_attribute('DeliveryPolicy', policy_json) end
# File lib/aws/sns/subscription.rb, line 144 def update_subscription_attribute name, value client_opts = {} client_opts[:subscription_arn] = arn client_opts[:attribute_name] = name client_opts[:attribute_value] = value client.set_subscription_attributes(client_opts) end