class Aws::Xml::ErrorHandler

def error_data(context, code)

def error_data(context, code)
  data = EmptyStructure.new
  if error_rules = context.operation.errors
    error_rules.each do |rule|
      # for modeled shape with error trait
      # match `code` in the error trait before
      # match modeled shape name
      error_shape_code = rule.shape['error']['code'] if rule.shape['error']
      match = (code == error_shape_code || code == rule.shape.name)
      if match && rule.shape.members.any?
        data = Parser.new(rule).parse(context.http_response.body_contents)
      end
    end
  end
  data
rescue Xml::Parser::ParsingError
  EmptyStructure.new
end