module AWS

def api_versions

Returns:
  • (Hash) -

Other tags:
    Api: - private
def api_versions
  @versions ||= begin
    # get a list of support services/apis from disk
    versions = {}
    pattern = File.join(File.dirname(__FILE__), 'api_config', '*.yml')
    Dir.glob(pattern).each do |path|
      matches = path.match(/(\w+)-(\d{4}-\d{2}-\d{2})/)
      svc = SERVICES[$1].full_name
      versions[svc] ||= []
      versions[svc] << $2
    end
    # s3 does not have an API configuration, so we have to add it manually
    versions[SERVICES['S3'].full_name] = ['2006-03-01']
    # sort the services alphabetically
    versions.keys.sort_by(&:downcase).inject({}) do |hash,svc|
      hash[svc] = versions[svc]
      hash
    end
  end
end

def config options = {}

Returns:
  • (Core::Configuration) - Returns the new configuration.

Options Hash: (**options)
  • :sqs_verify_checksums (Boolean) --
  • :verify_response_body_content_length (Boolean) --
  • :user_agent_prefix (String) -- A string prefix to
  • :use_ssl (Boolean) -- When `true`, all requests
  • :stub_requests (Boolean) -- When `true` requests
  • :ssl_verify_peer (Boolean) -- When `true`
  • :ssl_ca_path (String) --
  • :ssl_ca_file (String) -- The path to a CA cert bundle in
  • :credential_provider (CredentialProviders::Provider) --
  • :simple_db_consistent_reads (Boolean) -- Determines
  • :s3_encryption_materials_location (Symbol) --
  • :s3_encryption_key (OpenSSL::PKey::RSA, String) --
  • :s3_server_side_encryption (Symbol) -- The
  • :s3_multipart_min_part_size (Integer) -- The
  • :s3_multipart_threshold (Integer) -- When
  • :s3_multipart_max_parts (Integer) -- The maximum
  • :s3_force_path_style (Boolean) -- When
  • :proxy_uri (String, URI, nil) -- The URI of the proxy
  • :max_retries (Integer) -- The maximum number of times
  • :log_formatter (Object) -- The log formatter is responsible
  • :log_level (Symbol) -- The level log messages are
  • :logger (Logger, nil) -- A logger to send
  • :http_wire_trace (Boolean) -- When `true`, the
  • :http_read_timeout (Integer) -- The number of seconds
  • :http_open_timeout (Integer) -- The number of seconds
  • :http_idle_timeout (Integer) -- The number of seconds
  • :http_handler (Object) --
  • :http_continue_threshold (Integer, false) -- If a request
  • :http_continue_timeout (Float) -- The number of
  • :dynamo_db_retry_throughput_errors (Boolean) -- When
  • :dynamo_db_big_decimals (Boolean) -- When `true`,
  • :region (String) -- The default AWS region.
  • :session_token (String, nil) -- AWS secret token
  • :secret_access_key (String) -- AWS secret access
  • :access_key_id (String) -- AWS access key id

Parameters:
  • options (Hash) --

Other tags:
    Note: - Changing the global configuration does not affect objects
def config options = {}
  @@config ||= Core::Configuration.new
  @@config = @@config.with(options) unless options.empty?
  @@config
end

def eager_autoload! klass_or_module = AWS, visited = Set.new

Returns:
  • (void) -
def eager_autoload! klass_or_module = AWS, visited = Set.new
  klass_or_module.constants.each do |const_name|
    path = klass_or_module.autoload?(const_name)
    require(path) if path
    const = klass_or_module.const_get(const_name)
    if const.is_a?(Module)
      unless visited.include?(const)
        visited << const
        eager_autoload!(const, visited)
      end
    end
  end
end

def memoize

Other tags:
    Note: - Memoization is currently only supported for APIs which
def memoize
  return yield if memoizing?
  begin
    start_memoizing
    yield if block_given?
  ensure
    stop_memoizing
  end
end

def memoizing?

Returns:
  • (Boolean) - True if memoization is enabled for the current

Other tags:
    Note: - Memoization is currently only supported for APIs which
def memoizing?
  !Thread.current[:aws_memoization].nil?
end

def patch_net_http_100_continue!

responses while waiting for a 100-continue.
Patches Net::HTTP, fixing a bug in how it handles non 100-continue
def patch_net_http_100_continue!
  require 'aws/core/http/patch'
  AWS::Core::Http.patch_net_http_100_continue!
  nil
end

def regions

Returns:
  • (Core::RegionCollection) -

Other tags:
    Example: Enumerating all regions -
    Example: Getting a region by name -
def regions
  Core::RegionCollection.new
end

def reset_memoization

Other tags:
    Note: - Memoization is currently only supported for APIs which
def reset_memoization
  Thread.current[:aws_memoization] = {}
end

def resource_cache

Other tags:
    Api: - private
def resource_cache
  if memoizing?
    Thread.current[:aws_memoization][:resource_cache] ||=
      Core::ResourceCache.new
  end
end

def response_cache

Other tags:
    Api: - private
def response_cache
  if memoizing?
    Thread.current[:aws_memoization][:response_cache] ||=
      Core::ResponseCache.new
  end
end

def start_memoizing

Other tags:
    Note: - Memoization is currently only supported for APIs which
def start_memoizing
  Thread.current[:aws_memoization] ||= {}
  nil
end

def stop_memoizing

Other tags:
    Note: - Memoization is currently only supported for APIs which
def stop_memoizing
  Thread.current[:aws_memoization] = nil
end

def stub!

Returns:
  • (nil) -
def stub!
  config(:stub_requests => true)
  nil
end