Sha256: 535fdb2e18c85b670cb4c9fa1d256c901dbc5870a97f9346e2f3890d06fb3131

Contents?: true

Size: 1.89 KB

Versions: 268

Compression:

Stored size: 1.89 KB

Contents

module Aws
  # Base class for all {Aws} service clients.
  class Client < Seahorse::Client::Base

    # @api private
    DEFAULT_PLUGINS = [
      'Seahorse::Client::Plugins::ContentLength',
      'Aws::Plugins::Logging',
      'Aws::Plugins::ParamConverter',
      'Aws::Plugins::ParamValidator',
      'Aws::Plugins::UserAgent',
      'Aws::Plugins::HelpfulSocketErrors',
      'Aws::Plugins::RetryErrors',
      'Aws::Plugins::GlobalConfiguration',
      'Aws::Plugins::RegionalEndpoint',
      'Aws::Plugins::RequestSigner',
      'Aws::Plugins::ResponsePaging',
      'Aws::Plugins::StubResponses',
      'Aws::Plugins::IdempotencyToken',
      'Aws::Plugins::JsonvalueConverter',
      'Aws::Plugins::EndpointDiscovery',
      'Aws::Plugins::EndpointPattern'
    ]

    # @api private
    PROTOCOL_PLUGINS = 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),
    })

    include ClientStubs
    include ClientWaiters

    class << self

      # @return [Symbol]
      # @api private
      attr_accessor :identifier

      # @api private
      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.metadata['protocol']
        PROTOCOL_PLUGINS[protocol].each do |plugin|
          client_class.add_plugin(plugin)
        end

        Api::Customizations.apply_plugins(client_class)

        client_class
      end

    end
  end
end

Version data entries

268 entries across 268 versions & 1 rubygems

Version Path
aws-sdk-core-2.11.444 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.443 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.442 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.441 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.440 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.439 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.438 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.437 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.436 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.435 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.434 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.433 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.432 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.431 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.430 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.429 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.428 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.427 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.426 lib/aws-sdk-core/client.rb
aws-sdk-core-2.11.425 lib/aws-sdk-core/client.rb