class AWS::SQS::ReceivedSNSMessage

Represents message published from an {SNS::Topic} to an {SQS::Queue}.

Public Class Methods

new(body, options = {}) click to toggle source

@param [String] body The SQS message body

from a message published by SNS.

@param [Hash] options

# File lib/aws/sqs/received_sns_message.rb, line 28
def initialize body, options = {}
  @body = body
  super
end

Public Instance Methods

body() click to toggle source

@return Returns the decoded message as was published.

# File lib/aws/sqs/received_sns_message.rb, line 41
def body
  to_h[:body]
end
message_id() click to toggle source

@return [String] Returns the unique id of the SNS message.

# File lib/aws/sqs/received_sns_message.rb, line 78
def message_id
  to_h[:message_id]
end
message_type() click to toggle source

@return [String] Returns the message type.

# File lib/aws/sqs/received_sns_message.rb, line 57
def message_type
  to_h[:message_type]
end
published_at() click to toggle source

@return [Time] Returns the time the message was published at by SNS.

by SNS.
# File lib/aws/sqs/received_sns_message.rb, line 73
def published_at
  to_h[:published_at]
end
raw_message() click to toggle source

@return [String] Returns the JSON hash (as a string) as was

published by SNS.  See {#body} to get the decoded message
or {#to_h} to get the decoded JSON hash as a ruby hash.
# File lib/aws/sqs/received_sns_message.rb, line 36
def raw_message
  @body
end
signature() click to toggle source

@return [String] Returns the calculated signature for the message.

# File lib/aws/sqs/received_sns_message.rb, line 62
def signature
  to_h[:signature]
end
signature_version() click to toggle source

@return [String] Returns the signature version.

# File lib/aws/sqs/received_sns_message.rb, line 67
def signature_version
  to_h[:signature_version]
end
signing_cert_url() click to toggle source

@return [String] Returns the url for the signing cert.

# File lib/aws/sqs/received_sns_message.rb, line 83
def signing_cert_url
  to_h[:signing_cert_url]
end
to_h() click to toggle source

@return [Hash] Returns the decoded message as a hash.

# File lib/aws/sqs/received_sns_message.rb, line 94
def to_h
  data = JSON.parse(@body)
  {
    :body => data['Message'],
    :topic_arn => data['TopicArn'],
    :message_type => data['Type'],
    :signature => data['Signature'],
    :signature_version => data['SignatureVersion'],
    :published_at => Time.parse(data['Timestamp']),
    :message_id => data['MessageId'],
    :signing_cert_url => data['SigningCertURL'],
    :unsubscribe_url => data['UnsubscribeURL'],
  }
end
topic() click to toggle source

@return [SNS::Topic] Returns the topic that published this message.

# File lib/aws/sqs/received_sns_message.rb, line 52
def topic
  SNS::Topic.new(topic_arn, :config => config)
end
topic_arn() click to toggle source

@return [String] Returns the ARN for the topic that published this

message.
# File lib/aws/sqs/received_sns_message.rb, line 47
def topic_arn
  to_h[:topic_arn]
end
unsubscribe_url() click to toggle source

@return [String] Returns the url you can request to unsubscribe message

from this queue.
# File lib/aws/sqs/received_sns_message.rb, line 89
def unsubscribe_url
  to_h[:unsubscribe_url]
end