class Aws::Rest::Request::Endpoint

def apply_querystring_params(uri, params)

def apply_querystring_params(uri, params)
  parts = []
  parts << @query_pattern if @query_pattern
  @rules.shape.members.each do |member_name, member|
    if member.location == 'querystring' && !params[member_name].nil?
      case member.shape
      # supported scalar types
      when StringShape, BooleanShape, FloatShape, IntegerShape, StringShape
        param_name = member.location_name
        param_value = params[member_name]
        parts << "#{param_name}=#{escape(param_value.to_s)}"
      # map of strings or map of string-list
      when MapShape
        if StringShape === member.shape.value.shape
          parts += query_map_of_string(params[member_name])
        elsif ListShape === member.shape.value.shape
          parts += query_map_of_string_list(params[member_name])
        else
          msg = "only map of string and string list supported"
          raise NotImplementedError, msg
        end
      when ListShape
        if StringShape === member.shape.member.shape
          parts += list_of_strings(member.location_name, params[member_name])
        else
          msg = "Only list of strings supported, got "
          msg << member.shape.member.shape.class.name
          raise NotImplementedError, msg
        end
      # unsupported querystring shape
      else
        raise NotImplementedError
      end
    end
  end
  uri.query = parts.empty? ? nil : parts.join('&')
end