class Aws::SQS::Message
Public Class Methods
@overload def initialize(queue_url
, receipt_handle
, options = {})
@param [String] queue_url @param [String] receipt_handle @option options [Client] :client
@overload def initialize(options = {})
@option options [required, String] :queue_url @option options [required, String] :receipt_handle @option options [Client] :client
# File lib/aws-sdk-sqs/message.rb, line 24 def initialize(*args) options = Hash === args.last ? args.pop.dup : {} @queue_url = extract_queue_url(args, options) @receipt_handle = extract_receipt_handle(args, options) @data = options.delete(:data) @client = options.delete(:client) || Client.new(options) @waiter_block_warned = false end
Public Instance Methods
A map of the attributes requested in ` ReceiveMessage ` to their respective values. Supported attributes:
-
`ApproximateReceiveCount`
-
`ApproximateFirstReceiveTimestamp`
-
`MessageDeduplicationId`
-
`MessageGroupId`
-
`SenderId`
-
`SentTimestamp`
-
`SequenceNumber`
`ApproximateFirstReceiveTimestamp` and `SentTimestamp` are each returned as an integer representing the [epoch time] in milliseconds.
[1]: en.wikipedia.org/wiki/Unix_time @return [Hash<String,String>]
# File lib/aws-sdk-sqs/message.rb, line 89 def attributes data[:attributes] end
The message's contents (not URL-encoded). @return [String]
# File lib/aws-sdk-sqs/message.rb, line 60 def body data[:body] end
@example Request syntax with placeholder values
message.change_visibility({ visibility_timeout: 1, # required })
@param [Hash] options ({}) @option options [required, Integer] :visibility_timeout
The new value for the message's visibility timeout (in seconds). Values range: `0` to `43200`. Maximum: 12 hours.
@return [EmptyStructure]
# File lib/aws-sdk-sqs/message.rb, line 160 def change_visibility(options = {}) options = options.merge( queue_url: @queue_url, receipt_handle: @receipt_handle ) resp = @client.change_message_visibility(options) resp.data end
@return [Client]
# File lib/aws-sdk-sqs/message.rb, line 121 def client @client end
@raise [NotImplementedError] Raises when {#data_loaded?} is `false`. @return [Types::Message]
Returns the data for this {Message}.
# File lib/aws-sdk-sqs/message.rb, line 136 def data load unless @data @data end
@return [Boolean]
Returns `true` if this resource is loaded. Accessing attributes or {#data} on an unloaded resource will trigger a call to {#load}.
# File lib/aws-sdk-sqs/message.rb, line 144 def data_loaded? !!@data end
@example Request syntax with placeholder values
message.delete()
@param [Hash] options ({}) @return [EmptyStructure]
# File lib/aws-sdk-sqs/message.rb, line 174 def delete(options = {}) options = options.merge( queue_url: @queue_url, receipt_handle: @receipt_handle ) resp = @client.delete_message(options) resp.data end
@deprecated @api private
# File lib/aws-sdk-sqs/message.rb, line 195 def identifiers { queue_url: @queue_url, receipt_handle: @receipt_handle } end
@raise [NotImplementedError] @api private
# File lib/aws-sdk-sqs/message.rb, line 127 def load msg = "#load is not implemented, data only available via enumeration" raise NotImplementedError, msg end
An MD5 digest of the non-URL-encoded message body string. @return [String]
# File lib/aws-sdk-sqs/message.rb, line 54 def md5_of_body data[:md5_of_body] end
An MD5 digest of the non-URL-encoded message attribute string. You can use this attribute to verify that Amazon SQS
received the message correctly. Amazon SQS
URL-decodes the message before creating the MD5 digest. For information about MD5, see [RFC1321].
[1]: www.ietf.org/rfc/rfc1321.txt @return [String]
# File lib/aws-sdk-sqs/message.rb, line 102 def md5_of_message_attributes data[:md5_of_message_attributes] end
Each message attribute consists of a `Name`, `Type`, and `Value`. For more information, see [Amazon SQS
message attributes] in the *Amazon SQS
Developer Guide*.
[1]: docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes @return [Hash<String,Types::MessageAttributeValue>]
# File lib/aws-sdk-sqs/message.rb, line 114 def message_attributes data[:message_attributes] end
A unique identifier for the message. A `MessageId`is considered unique across all accounts for an extended period of time. @return [String]
# File lib/aws-sdk-sqs/message.rb, line 48 def message_id data[:message_id] end
@return [Queue]
# File lib/aws-sdk-sqs/message.rb, line 186 def queue Queue.new( url: @queue_url, client: @client ) end
@return [String]
# File lib/aws-sdk-sqs/message.rb, line 36 def queue_url @queue_url end
@return [String]
# File lib/aws-sdk-sqs/message.rb, line 41 def receipt_handle @receipt_handle end
Private Instance Methods
# File lib/aws-sdk-sqs/message.rb, line 205 def extract_queue_url(args, options) value = args[0] || options.delete(:queue_url) case value when String then value when nil then raise ArgumentError, "missing required option :queue_url" else msg = "expected :queue_url to be a String, got #{value.class}" raise ArgumentError, msg end end
# File lib/aws-sdk-sqs/message.rb, line 216 def extract_receipt_handle(args, options) value = args[1] || options.delete(:receipt_handle) case value when String then value when nil then raise ArgumentError, "missing required option :receipt_handle" else msg = "expected :receipt_handle to be a String, got #{value.class}" raise ArgumentError, msg end end