module Aws::Api::Customizations

def api(prefix, &block)

def api(prefix, &block)
  @apis[prefix] = block
end

def apply_api_customizations(api)

def apply_api_customizations(api)
  metadata = api['metadata'] || {}
  prefix = metadata['endpointPrefix']
  @apis[prefix].call(api) if @apis[prefix]
end

def apply_doc_customizations(api, docs)

def apply_doc_customizations(api, docs)
  prefix = api.metadata['endpointPrefix']
  @docs[prefix].call(docs) if @docs[prefix]
end

def apply_plugins(client_class)

def apply_plugins(client_class)
  prefix = client_class.api.metadata['endpointPrefix']
  if @plugins[prefix]
    @plugins[prefix][:add].each { |p| client_class.add_plugin(p) }
    @plugins[prefix][:remove].each { |p| client_class.remove_plugin(p) }
  end
end

def doc(prefix, &block)

def doc(prefix, &block)
  @docs[prefix] = block
end

def plugins(prefix, options)

def plugins(prefix, options)
  @plugins[prefix] = {
    add: options[:add] || [],
    remove: options[:remove] || [],
  }
end