class Aws::Rest::Request::Headers

def apply(http_req, params)

Parameters:
  • params (Hash) --
  • http_req (Seahorse::Client::Http::Request) --
def apply(http_req, params)
  @rules.shape.members.each do |name, ref|
    value = params[name]
    next if value.nil?
    case ref.location
    when 'header' then apply_header_value(http_req.headers, ref, value)
    when 'headers' then apply_header_map(http_req.headers, ref, value)
    end
  end
end

def apply_header_map(headers, ref, values)

def apply_header_map(headers, ref, values)
  prefix = ref.location_name || ''
  values.each_pair do |name, value|
    headers["#{prefix}#{name}"] = value.to_s
  end
end

def apply_header_value(headers, ref, value)

def apply_header_value(headers, ref, value)
  value = apply_json_trait(value) if ref['jsonvalue']
  headers[ref.location_name] =
    case ref.shape
    when TimestampShape then value.utc.httpdate
    else value.to_s
    end
end

def apply_json_trait(value)

causing potential issues in headers
base64 encodes value to aviod weird characters
With complex headers value in json syntax,
def apply_json_trait(value)
  Base64.strict_encode64(value)
end

def initialize(rules)

Parameters:
  • rules (Seahorse::Model::ShapeRef) --
def initialize(rules)
  @rules = rules
end