module Aws::Api::Docstrings

def self.apply(client_class, path)

def self.apply(client_class, path)
  api = client_class.api.definition
  docs = File.open(path, 'r', encoding: 'UTF-8') { |f| f.read }
  docs = MultiJson.load(docs)
  api['documentation'] = docs['service']
  docs['operations'].each do |operation, doc|
    api['operations'][operation]['documentation'] = doc
  end
  docs['shapes'].each do |shape_name, shape|
    api['shapes'][shape_name]['documentation'] = shape['base']
    shape['refs'].each do |ref,doc|
      if doc.nil?
        doc = shape['base']
      end
      target_shape_name, member = ref.split('$')
      target_shape = api['shapes'][target_shape_name]
      case target_shape['type']
      when 'structure' then target_shape['members'][member]['documentation'] = doc
      when 'list' then target_shape[member]['documentation'] = doc
      when 'map' then target_shape[member]['documentation'] = doc
      else raise 'not handled'
      end
    end
  end
  client_class.set_api(Seahorse::Model::Api.new(api))
end