Class: Aws::Client

Inherits:
Seahorse::Client::Base show all
Includes:
ClientStubs, ClientWaiters
Defined in:
lib/aws-sdk-core/client.rb

Overview

Base class for all Aws service clients.

Constant Summary collapse

DEFAULT_PLUGINS =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

[
  'Seahorse::Client::Plugins::ContentLength',
  'Aws::Plugins::Logging',
  'Aws::Plugins::ParamConverter',
  'Aws::Plugins::ParamValidator',
  'Aws::Plugins::UserAgent',
  'Aws::Plugins::RetryErrors',
  'Aws::Plugins::GlobalConfiguration',
  'Aws::Plugins::RegionalEndpoint',
  'Aws::Plugins::RequestSigner',
  'Aws::Plugins::ResponsePaging',
  'Aws::Plugins::StubResponses',
]
PROTOCOL_PLUGINS =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Hash.new(DEFAULT_PLUGINS).merge({
  'json'      => DEFAULT_PLUGINS + %w(Aws::Plugins::Protocols::JsonRpc),
  'rest-json' => DEFAULT_PLUGINS + %w(Aws::Plugins::Protocols::RestJson),
  'rest-xml'  => DEFAULT_PLUGINS + %w(Aws::Plugins::Protocols::RestXml),
  'query'     => DEFAULT_PLUGINS + %w(Aws::Plugins::Protocols::Query),
  'ec2'       => DEFAULT_PLUGINS + %w(Aws::Plugins::Protocols::EC2),
})

Class Attribute Summary collapse

Attributes inherited from Seahorse::Client::Base

#config, #handlers

Class Method Summary collapse

Methods included from ClientWaiters

included, #wait_until, #waiter_names

Methods included from ClientStubs

#next_stub, #setup_stubbing, #stub_data, #stub_responses

Methods inherited from Seahorse::Client::Base

add_plugin, api, #build_request, clear_plugins, #initialize, #inspect, new, #operation, #operation_names, plugins, remove_plugin, set_api, set_plugins

Methods included from Seahorse::Client::HandlerBuilder

#handle, #handle_request, #handle_response, #handler_for, #new_handler

Constructor Details

This class inherits a constructor from Seahorse::Client::Base

Class Attribute Details

.identifierSymbol

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Symbol)


36
37
38
# File 'lib/aws-sdk-core/client.rb', line 36

def identifier
  @identifier
end

Class Method Details

.define(svc_name, options) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/aws-sdk-core/client.rb', line 39

def define(svc_name, options)
  client_class = Class.new(self)
  client_class.identifier = svc_name.downcase.to_sym
  client_class.set_api(Api::Builder.build(options[:api], options))
  client_class.set_waiters(options[:waiters])

  protocol = client_class.api.['protocol']
  PROTOCOL_PLUGINS[protocol].each do |plugin|
    client_class.add_plugin(plugin)
  end

  Api::Customizations.apply_plugins(client_class)

  client_class
end