class Aws::Rest::Request::QuerystringBuilder

def build_part(shape_ref, param_value)

def build_part(shape_ref, param_value)
  case shape_ref.shape
  # supported scalar types
  when StringShape, BooleanShape, FloatShape, IntegerShape, StringShape
    param_name = shape_ref.location_name
    "#{param_name}=#{escape(param_value.to_s)}"
  when TimestampShape
    param_name = shape_ref.location_name
    "#{param_name}=#{escape(timestamp(shape_ref, param_value))}"
  when MapShape
    if StringShape === shape_ref.shape.value.shape
      query_map_of_string(param_value)
    elsif ListShape === shape_ref.shape.value.shape
      query_map_of_string_list(param_value)
    else
      msg = "only map of string and string list supported"
      raise NotImplementedError, msg
    end
  when ListShape
    if StringShape === shape_ref.shape.member.shape
      list_of_strings(shape_ref.location_name, param_value)
    else
      msg = "Only list of strings supported, got "\
            "#{shape_ref.shape.member.shape.class.name}"
      raise NotImplementedError, msg
    end
  else
    raise NotImplementedError
  end
end