class Aws::Rest::Response::Headers

def cast_value(ref, value)

def cast_value(ref, value)
  value = extract_json_trait(value) if ref['jsonvalue']
  case ref.shape
  when StringShape then value.to_s
  when IntegerShape then value.to_i
  when FloatShape then Util.deserialize_number(value)
  when BooleanShape then value == 'true'
  when ListShape then
    case ref.shape.member.shape
    when StringShape then HeaderListParser.parse_string_list(value)
    when TimestampShape then HeaderListParser.parse_timestamp_list(value, ref.shape.member)
    else value.split(', ').map { |v| cast_value(ref.shape.member, v) }
    end
  when TimestampShape
    if value =~ /^\d+(\.\d*)/
      Time.at(value.to_f)
    elsif value =~ /^\d+$/
      Time.at(value.to_i)
    else
      begin
        Time.parse(value)
      rescue
        nil
      end
    end
  else raise "unsupported shape #{ref.shape.class}"
  end
end