class SQS

Collect SQS resources

Public Instance Methods

collect() click to toggle source

Returns an array of resources.

# File lib/aws_recon/collectors/sqs.rb, line 10
def collect
  resources = []

  #
  # list_queues
  #
  @client.list_queues.each_with_index do |response, page|
    log(response.context.operation_name, page)

    response.queue_urls.each do |queue|
      log(response.context.operation_name, queue.downcase.split('/').last, page)

      # get_queue_attributes
      struct = OpenStruct.new(@client.get_queue_attributes({ queue_url: queue, attribute_names: ['All'] }).attributes.to_h)
      struct.type = 'queue'
      struct.arn = struct.QueueArn
      struct.policy = struct.Policy ? struct.delete_field('Policy').parse_policy : nil

      resources.push(struct.to_h)
    end
  end

  resources
end