class Aws::Plugins::JsonvalueConverter::Handler

@api private

def call(context)

def call(context)
  context.operation.input.shape.members.each do |m, ref|
    convert_jsonvalue(m, ref, context.params, 'params')
  end
  @handler.call(context)
end

def convert_jsonvalue(m, ref, params, context)

def convert_jsonvalue(m, ref, params, context)
  return if params.nil? || !params.key?(m)
  if ref['jsonvalue']
    params[m] = serialize_jsonvalue(params[m], "#{context}[#{m}]")
  else
    case ref.shape
    when Seahorse::Model::Shapes::StructureShape
      ref.shape.members.each do |member_m, ref|
        convert_jsonvalue(member_m, ref, params[m], "#{context}[#{m}]")
      end
    when Seahorse::Model::Shapes::ListShape
      if ref.shape.member['jsonvalue']
        params[m] = params[m].each_with_index.map do |v, i|
          serialize_jsonvalue(v, "#{context}[#{m}][#{i}]")
        end
      end
    when Seahorse::Model::Shapes::MapShape
      if ref.shape.value['jsonvalue']
        params[m].each do |k, v|
          params[m][k] = serialize_jsonvalue(v, "#{context}[#{m}][#{k}]")
        end
      end
    end
  end
end

def serialize_jsonvalue(v, context)

def serialize_jsonvalue(v, context)
  unless v.respond_to?(:to_json)
    raise ArgumentError, "The value of #{context} is not JSON serializable."
  end
  v.to_json
end