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_plugins(client_class)
def apply_plugins(client_class) protocol = client_class.api.metadata['protocol'] plugin = case protocol when 'ec2' then Aws::Plugins::Protocols::EC2 when 'query' then Aws::Plugins::Protocols::Query when 'json' then Aws::Plugins::Protocols::JsonRpc when 'rest-json' then Aws::Plugins::Protocols::RestJson when 'rest-xml' then Aws::Plugins::Protocols::RestXml end client_class.add_plugin(plugin) if plugin 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 plugins(prefix, options)
def plugins(prefix, options) @plugins[prefix] = { add: options[:add] || [], remove: options[:remove] || [], } end