Sha256: 0230fa535ff0a0d7e6f7b44d19c5e5bd735ae3515dac76a0fca7f61c42597470

Contents?: true

Size: 1.18 KB

Versions: 7

Compression:

Stored size: 1.18 KB

Contents

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

    # @api private
    DEFAULT_PLUGINS = [
      'Seahorse::Client::Plugins::Logging',
      'Seahorse::Client::Plugins::ContentLength',
      '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',
    ]

    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])
        DEFAULT_PLUGINS.each do |plugin|
          client_class.add_plugin(plugin)
        end
        Api::Customizations.apply_plugins(client_class)
        client_class
      end

    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
aws-sdk-core-2.1.7 lib/aws-sdk-core/client.rb
aws-sdk-core-2.1.5 lib/aws-sdk-core/client.rb
aws-sdk-core-2.1.4 lib/aws-sdk-core/client.rb
aws-sdk-core-2.1.3 lib/aws-sdk-core/client.rb
aws-sdk-core-2.1.2 lib/aws-sdk-core/client.rb
aws-sdk-core-2.1.1 lib/aws-sdk-core/client.rb
aws-sdk-core-2.1.0 lib/aws-sdk-core/client.rb