1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
|
# frozen_string_literal: true
require 'aws-partitions'
require 'seahorse'
require 'jmespath'
require_relative 'aws-sdk-core/deprecations'
# credential providers
require_relative 'aws-sdk-core/credential_provider'
require_relative 'aws-sdk-core/refreshing_credentials'
require_relative 'aws-sdk-core/assume_role_credentials'
require_relative 'aws-sdk-core/assume_role_web_identity_credentials'
require_relative 'aws-sdk-core/credentials'
require_relative 'aws-sdk-core/credential_provider_chain'
require_relative 'aws-sdk-core/ecs_credentials'
require_relative 'aws-sdk-core/instance_profile_credentials'
require_relative 'aws-sdk-core/shared_credentials'
require_relative 'aws-sdk-core/process_credentials'
# client modules
require_relative 'aws-sdk-core/client_stubs'
require_relative 'aws-sdk-core/async_client_stubs'
require_relative 'aws-sdk-core/eager_loader'
require_relative 'aws-sdk-core/errors'
require_relative 'aws-sdk-core/pageable_response'
require_relative 'aws-sdk-core/pager'
require_relative 'aws-sdk-core/param_converter'
require_relative 'aws-sdk-core/param_validator'
require_relative 'aws-sdk-core/shared_config'
require_relative 'aws-sdk-core/structure'
require_relative 'aws-sdk-core/type_builder'
require_relative 'aws-sdk-core/util'
# resource classes
require_relative 'aws-sdk-core/resources/collection'
# logging
require_relative 'aws-sdk-core/log/formatter'
require_relative 'aws-sdk-core/log/param_filter'
require_relative 'aws-sdk-core/log/param_formatter'
# stubbing
require_relative 'aws-sdk-core/stubbing/empty_stub'
require_relative 'aws-sdk-core/stubbing/data_applicator'
require_relative 'aws-sdk-core/stubbing/stub_data'
require_relative 'aws-sdk-core/stubbing/xml_error'
# stubbing protocols
require_relative 'aws-sdk-core/stubbing/protocols/ec2'
require_relative 'aws-sdk-core/stubbing/protocols/json'
require_relative 'aws-sdk-core/stubbing/protocols/query'
require_relative 'aws-sdk-core/stubbing/protocols/rest'
require_relative 'aws-sdk-core/stubbing/protocols/rest_json'
require_relative 'aws-sdk-core/stubbing/protocols/rest_xml'
require_relative 'aws-sdk-core/stubbing/protocols/api_gateway'
# protocols
require_relative 'aws-sdk-core/rest'
require_relative 'aws-sdk-core/xml'
require_relative 'aws-sdk-core/json'
# event stream
require_relative 'aws-sdk-core/binary'
require_relative 'aws-sdk-core/event_emitter'
# endpoint discovery
require_relative 'aws-sdk-core/endpoint_cache'
# client metrics
require_relative 'aws-sdk-core/client_side_monitoring/request_metrics'
require_relative 'aws-sdk-core/client_side_monitoring/publisher'
# arn
require_relative 'aws-sdk-core/arn'
require_relative 'aws-sdk-core/arn_parser'
# aws-sdk-sts is vendored to support Aws::AssumeRoleCredentials
require 'aws-sdk-sts'
module Aws
CORE_GEM_VERSION = File.read(File.expand_path('../../VERSION', __FILE__)).strip
@config = {}
class << self
# @api private
def shared_config
enabled = ENV["AWS_SDK_CONFIG_OPT_OUT"] ? false : true
@shared_config ||= SharedConfig.new(config_enabled: enabled)
end
# @return [Hash] Returns a hash of default configuration options shared
# by all constructed clients.
attr_reader :config
# @param [Hash] config
def config=(config)
if Hash === config
@config = config
else
raise ArgumentError, 'configuration object must be a hash'
end
end
# @see (Aws::Partitions.partition)
def partition(partition_name)
Aws::Partitions.partition(partition_name)
end
# @see (Aws::Partitions.partitions)
def partitions
Aws::Partitions.partitions
end
# The SDK ships with a ca certificate bundle to use when verifying SSL
# peer certificates. By default, this cert bundle is *NOT* used. The
# SDK will rely on the default cert available to OpenSSL. This ensures
# the cert provided by your OS is used.
#
# For cases where the default cert is unavailable, e.g. Windows, you
# can call this method.
#
# Aws.use_bundled_cert!
#
# @return [String] Returns the path to the bundled cert.
def use_bundled_cert!
config.delete(:ssl_ca_directory)
config.delete(:ssl_ca_store)
config[:ssl_ca_bundle] = File.expand_path(File.join(
File.dirname(__FILE__),
'..',
'ca-bundle.crt'
))
end
# Close any long-lived connections maintained by the SDK's internal
# connection pool.
#
# Applications that rely heavily on the `fork()` system call on POSIX systems
# should call this method in the child process directly after fork to ensure
# there are no race conditions between the parent
# process and its children
# for the pooled TCP connections.
#
# Child processes that make multi-threaded calls to the SDK should block on
# this call before beginning work.
#
# @return [nil]
def empty_connection_pools!
Seahorse::Client::NetHttp::ConnectionPool.pools.each do |pool|
pool.empty!
end
end
# @api private
def eager_autoload!(*args)
msg = 'Aws.eager_autoload is no longer needed, usage of '\
'autoload has been replaced with require statements'
warn(msg)
end
end
end
|