class AWS::Core::Resource

def attributes_from_response resp

def attributes_from_response resp
  # check each provider for this request type to see if it
  # can find the resource and some of its attributes
  attributes = []
  self.class.attribute_providers_for(resp.request_type).each do |provider|
    attributes << provider.attributes_from_response(self, resp)
  end
  # drop out those that returned no attributesj
  attributes.compact!
  # stop here if nothing was found for this resource
  return nil if attributes.empty?
  # merge the attributes together into a single hash
  attributes = attributes.inject({}) {|hash,attribs| hash.merge(attribs) }
  # cache static attributes
  attributes.each_pair do |attr_name,value|
    if self.class.attributes[attr_name].static?
      static_attributes[attr_name] = value
    end
  end
  attributes
end