Class: AWS::Core::Client
- Inherits:
-
Object
- Object
- AWS::Core::Client
- Defined in:
- lib/aws/core/client.rb,
lib/aws/core/client/query_xml.rb,
lib/aws/core/client/query_json.rb
Overview
Base client class for all of the Amazon AWS service clients.
Direct Known Subclasses
AutoScaling::Client, AWS::CloudFormation::Client, AWS::CloudWatch::Client, DynamoDB::Client, EC2::Client, ELB::Client, IAM::Client, S3::Client, SNS::Client, SQS::Client, STS::Client, SimpleDB::Client, SimpleEmailService::Client, SimpleWorkflow::Client
Defined Under Namespace
Instance Attribute Summary collapse
-
#config ⇒ Configuration
readonly
This clients configuration.
-
#http_read_timeout ⇒ Integer
readonly
The number of secords before requests made by this client should timeout if they have not received a response.
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Client
constructor
Creates a new low-level client.
- #operations ⇒ Object
-
#with_http_handler(handler = nil, &blk) ⇒ Core::Client
Returns a copy of the client with a different HTTP handler.
-
#with_options(options) ⇒ Client
Returns a new client with the passed configuration options merged with the current configuration options.
Constructor Details
#initialize(options = {}) ⇒ Client
Creates a new low-level client.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/aws/core/client.rb', line 36 def initialize = {} = .dup # so we don't modify the options passed in @service_ruby_name = self.class.service_ruby_name # translate these into service specific configuration options, # e.g. :endpoint into :s3_endpoint [:endpoint, :region, :port].each do |opt| if [opt] [:"#{service_ruby_name}_#{opt}"] = .delete(opt) end end @config = (.delete(:config) || AWS.config) @config = @config.with() @credential_provider = @config.credential_provider @http_handler = @config.http_handler @endpoint = config.send(:"#{service_ruby_name}_endpoint") @port = config.send(:"#{service_ruby_name}_port") @http_read_timeout = @config.http_read_timeout end |
Instance Attribute Details
#config ⇒ Configuration (readonly)
Returns This clients configuration.
62 63 64 |
# File 'lib/aws/core/client.rb', line 62 def config @config end |
#http_read_timeout ⇒ Integer (readonly)
Returns The number of secords before requests made by this client should timeout if they have not received a response.
80 81 82 |
# File 'lib/aws/core/client.rb', line 80 def http_read_timeout @http_read_timeout end |
Instance Method Details
#operations ⇒ Object
88 89 90 |
# File 'lib/aws/core/client.rb', line 88 def operations self.class.operations end |
#with_http_handler(handler = nil, &blk) ⇒ Core::Client
Returns a copy of the client with a different HTTP handler. You can pass an object like BuiltinHttpHandler or you can use a block; for example:
s3_with_logging = s3.with_http_handler do |request, response|
$stderr.puts request.inspect
super(request, response)
$stderr.puts response.inspect
end
The block executes in the context of an HttpHandler instance, and super
delegates to the HTTP handler used by this client. This provides an easy way to spy on requests and responses. See HttpHandler, HttpRequest, and HttpResponse for more details on how to implement a fully functional HTTP handler using a different HTTP library than the one that ships with Ruby.
113 114 115 116 |
# File 'lib/aws/core/client.rb', line 113 def with_http_handler(handler = nil, &blk) handler ||= Http::Handler.new(@http_handler, &blk) (:http_handler => handler) end |
#with_options(options) ⇒ Client
Returns a new client with the passed configuration options merged with the current configuration options.
no_retry_client = client.(:max_retries => 0)
126 127 128 |
# File 'lib/aws/core/client.rb', line 126 def with_config(config.with()) end |