class Aws::ParamValidator

def structure(ref, values, errors, context)

def structure(ref, values, errors, context)
  # ensure the value is hash like
  return unless correct_type?(ref, values, errors, context)
  shape = ref.shape
  # ensure required members are present
  if @validate_required
    shape.required.each do |member_name|
      if values[member_name].nil?
        param = "#{context}[#{member_name.inspect}]"
        errors << "missing required parameter #{param}"
      end
    end
  end
  # validate non-nil members
  values.each_pair do |name, value|
    unless value.nil?
      if shape.member?(name)
        member_ref = shape.member(name)
        shape(member_ref, value, errors, context + "[#{name.inspect}]")
      else
        errors << "unexpected value at #{context}[#{name.inspect}]"
      end
    end
  end
end