Sha256: 2cd8363794fc95b0b6b574061c37174b86131e74db416889520ed4046f350d79

Contents?: true

Size: 933 Bytes

Versions: 1

Compression:

Stored size: 933 Bytes

Contents

module Aws

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

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

      # @return [Paging::Provider]
      # @api private
      attr_accessor :paginators

      # @api private
      def define(svc_name, options)
        client_class = Class.new(self)
        client_class.identifier = svc_name.downcase.to_sym
        client_class.set_api(load_api(options[:api]))
        Api::ServiceCustomizations.apply(client_class)
        client_class
      end

      private

      def load_api(api)
        case api
        when Seahorse::Model::Api then api
        when Hash then Seahorse::Model::Api.new(api)
        when String then Seahorse::Model::Api.new(Aws.load_json(api))
        else
          raise ArgumentError, "expected :api to be an Api, Hash or String"
        end
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aws-sdk-core-2.0.0.rc15 lib/aws/client.rb