aws-sdk-core 2.0.0.rc16 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/bin/aws.rb +10 -0
  3. data/lib/aws-sdk-core.rb +288 -1
  4. data/lib/{aws → aws-sdk-core}/api/customizer.rb +0 -0
  5. data/lib/{aws → aws-sdk-core}/api/docstrings.rb +0 -0
  6. data/lib/{aws → aws-sdk-core}/api/documenter.rb +0 -0
  7. data/lib/{aws → aws-sdk-core}/api/operation_documenter.rb +0 -0
  8. data/lib/{aws → aws-sdk-core}/api/operation_example.rb +0 -0
  9. data/lib/{aws → aws-sdk-core}/api/service_customizations.rb +0 -0
  10. data/lib/aws-sdk-core/autoscaling.rb +5 -0
  11. data/lib/{aws → aws-sdk-core}/client.rb +2 -2
  12. data/lib/aws-sdk-core/cloudformation.rb +5 -0
  13. data/lib/aws-sdk-core/cloudfront.rb +6 -0
  14. data/lib/aws-sdk-core/cloudsearch.rb +5 -0
  15. data/lib/aws-sdk-core/cloudsearchdomain.rb +4 -0
  16. data/lib/aws-sdk-core/cloudtrail.rb +5 -0
  17. data/lib/aws-sdk-core/cloudwatch.rb +5 -0
  18. data/lib/aws-sdk-core/cloudwatchlogs.rb +5 -0
  19. data/lib/aws-sdk-core/cognitoidentity.rb +4 -0
  20. data/lib/aws-sdk-core/cognitosync.rb +4 -0
  21. data/lib/{aws → aws-sdk-core}/credential_provider_chain.rb +0 -0
  22. data/lib/{aws → aws-sdk-core}/credentials.rb +0 -0
  23. data/lib/aws-sdk-core/datapipeline.rb +5 -0
  24. data/lib/aws-sdk-core/directconnect.rb +5 -0
  25. data/lib/aws-sdk-core/dynamodb.rb +12 -0
  26. data/lib/{aws → aws-sdk-core}/dynamodb/attribute_value.rb +0 -0
  27. data/lib/aws-sdk-core/ec2.rb +7 -0
  28. data/lib/aws-sdk-core/elasticache.rb +5 -0
  29. data/lib/aws-sdk-core/elasticbeanstalk.rb +5 -0
  30. data/lib/aws-sdk-core/elasticloadbalancing.rb +5 -0
  31. data/lib/aws-sdk-core/elastictranscoder.rb +5 -0
  32. data/lib/{aws → aws-sdk-core}/empty_structure.rb +0 -0
  33. data/lib/aws-sdk-core/emr.rb +5 -0
  34. data/lib/{aws → aws-sdk-core}/endpoint_provider.rb +0 -0
  35. data/lib/{aws → aws-sdk-core}/errors.rb +0 -0
  36. data/lib/aws-sdk-core/glacier.rb +7 -0
  37. data/lib/aws-sdk-core/iam.rb +6 -0
  38. data/lib/aws-sdk-core/importexport.rb +5 -0
  39. data/lib/{aws → aws-sdk-core}/instance_profile_credentials.rb +0 -0
  40. data/lib/{aws → aws-sdk-core}/json/builder.rb +0 -0
  41. data/lib/{aws → aws-sdk-core}/json/error_handler.rb +0 -0
  42. data/lib/{aws → aws-sdk-core}/json/parser.rb +0 -0
  43. data/lib/{aws → aws-sdk-core}/json/rest_handler.rb +0 -0
  44. data/lib/{aws → aws-sdk-core}/json/rpc_body_handler.rb +0 -0
  45. data/lib/{aws → aws-sdk-core}/json/rpc_headers_handler.rb +0 -0
  46. data/lib/{aws → aws-sdk-core}/json/simple_body_handler.rb +0 -0
  47. data/lib/aws-sdk-core/kinesis.rb +5 -0
  48. data/lib/aws-sdk-core/opsworks.rb +6 -0
  49. data/lib/{aws → aws-sdk-core}/pageable_response.rb +0 -0
  50. data/lib/{aws → aws-sdk-core}/paging/null_pager.rb +0 -0
  51. data/lib/{aws → aws-sdk-core}/paging/null_provider.rb +0 -0
  52. data/lib/{aws → aws-sdk-core}/paging/pager.rb +0 -0
  53. data/lib/{aws → aws-sdk-core}/paging/provider.rb +0 -0
  54. data/lib/{aws → aws-sdk-core}/plugins/csd_conditional_signing.rb +0 -0
  55. data/lib/{aws → aws-sdk-core}/plugins/dynamodb_extended_retries.rb +0 -0
  56. data/lib/{aws → aws-sdk-core}/plugins/dynamodb_simple_attributes.rb +0 -0
  57. data/lib/{aws → aws-sdk-core}/plugins/ec2_copy_encrypted_snapshot.rb +0 -0
  58. data/lib/{aws → aws-sdk-core}/plugins/glacier_account_id.rb +0 -0
  59. data/lib/{aws → aws-sdk-core}/plugins/glacier_api_version.rb +0 -0
  60. data/lib/{aws → aws-sdk-core}/plugins/glacier_checksums.rb +0 -0
  61. data/lib/{aws → aws-sdk-core}/plugins/global_configuration.rb +0 -0
  62. data/lib/{aws → aws-sdk-core}/plugins/protocols/ec2.rb +0 -0
  63. data/lib/{aws → aws-sdk-core}/plugins/protocols/json_rpc.rb +0 -0
  64. data/lib/{aws → aws-sdk-core}/plugins/protocols/query.rb +0 -0
  65. data/lib/{aws → aws-sdk-core}/plugins/protocols/rest_json.rb +0 -0
  66. data/lib/{aws → aws-sdk-core}/plugins/protocols/rest_xml.rb +0 -0
  67. data/lib/{aws → aws-sdk-core}/plugins/regional_endpoint.rb +0 -0
  68. data/lib/{aws → aws-sdk-core}/plugins/request_signer.rb +0 -0
  69. data/lib/{aws → aws-sdk-core}/plugins/response_paging.rb +0 -0
  70. data/lib/{aws → aws-sdk-core}/plugins/retry_errors.rb +0 -0
  71. data/lib/{aws → aws-sdk-core}/plugins/route_53_id_fix.rb +0 -0
  72. data/lib/{aws → aws-sdk-core}/plugins/s3_bucket_dns.rb +0 -0
  73. data/lib/{aws → aws-sdk-core}/plugins/s3_complete_multipart_upload_fix.rb +0 -0
  74. data/lib/{aws → aws-sdk-core}/plugins/s3_expect_100_continue.rb +0 -0
  75. data/lib/{aws → aws-sdk-core}/plugins/s3_get_bucket_location_fix.rb +0 -0
  76. data/lib/{aws → aws-sdk-core}/plugins/s3_location_constraint.rb +0 -0
  77. data/lib/{aws → aws-sdk-core}/plugins/s3_md5s.rb +0 -0
  78. data/lib/{aws → aws-sdk-core}/plugins/s3_redirects.rb +0 -0
  79. data/lib/{aws → aws-sdk-core}/plugins/s3_sse_cpk.rb +0 -0
  80. data/lib/{aws → aws-sdk-core}/plugins/s3_url_encoded_keys.rb +0 -0
  81. data/lib/{aws → aws-sdk-core}/plugins/sqs_queue_urls.rb +0 -0
  82. data/lib/{aws → aws-sdk-core}/plugins/swf_read_timeouts.rb +0 -0
  83. data/lib/{aws → aws-sdk-core}/plugins/user_agent.rb +0 -0
  84. data/lib/{aws → aws-sdk-core}/query/ec2_param_builder.rb +0 -0
  85. data/lib/{aws → aws-sdk-core}/query/handler.rb +0 -0
  86. data/lib/{aws → aws-sdk-core}/query/param.rb +0 -0
  87. data/lib/{aws → aws-sdk-core}/query/param_builder.rb +0 -0
  88. data/lib/{aws → aws-sdk-core}/query/param_list.rb +0 -0
  89. data/lib/aws-sdk-core/rds.rb +6 -0
  90. data/lib/aws-sdk-core/redshift.rb +6 -0
  91. data/lib/{aws → aws-sdk-core}/rest_body_handler.rb +0 -0
  92. data/lib/aws-sdk-core/route53.rb +5 -0
  93. data/lib/aws-sdk-core/route53domains.rb +4 -0
  94. data/lib/aws-sdk-core/s3.rb +13 -0
  95. data/lib/aws-sdk-core/s3/presigner.rb +64 -0
  96. data/lib/aws-sdk-core/service.rb +4 -0
  97. data/lib/aws-sdk-core/ses.rb +6 -0
  98. data/lib/{aws → aws-sdk-core}/shared_credentials.rb +0 -0
  99. data/lib/{aws → aws-sdk-core}/signers/base.rb +0 -0
  100. data/lib/{aws → aws-sdk-core}/signers/handler.rb +0 -0
  101. data/lib/{aws → aws-sdk-core}/signers/s3.rb +0 -0
  102. data/lib/{aws → aws-sdk-core}/signers/v2.rb +0 -0
  103. data/lib/{aws → aws-sdk-core}/signers/v3.rb +0 -0
  104. data/lib/{aws → aws-sdk-core}/signers/v4.rb +5 -4
  105. data/lib/aws-sdk-core/simpledb.rb +5 -0
  106. data/lib/aws-sdk-core/sns.rb +6 -0
  107. data/lib/aws-sdk-core/sqs.rb +6 -0
  108. data/lib/aws-sdk-core/storagegateway.rb +5 -0
  109. data/lib/{aws → aws-sdk-core}/structure.rb +0 -0
  110. data/lib/aws-sdk-core/sts.rb +4 -0
  111. data/lib/aws-sdk-core/support.rb +5 -0
  112. data/lib/aws-sdk-core/swf.rb +5 -0
  113. data/lib/{aws → aws-sdk-core}/tree_hash.rb +0 -0
  114. data/lib/aws-sdk-core/version.rb +3 -0
  115. data/lib/{aws → aws-sdk-core}/waiters/errors.rb +0 -0
  116. data/lib/{aws → aws-sdk-core}/waiters/null_provider.rb +0 -0
  117. data/lib/{aws → aws-sdk-core}/waiters/provider.rb +0 -0
  118. data/lib/{aws → aws-sdk-core}/waiters/waiter.rb +0 -0
  119. data/lib/{aws → aws-sdk-core}/xml/builder.rb +0 -0
  120. data/lib/{aws → aws-sdk-core}/xml/default_list.rb +0 -0
  121. data/lib/{aws → aws-sdk-core}/xml/error_handler.rb +0 -0
  122. data/lib/{aws → aws-sdk-core}/xml/parser.rb +0 -0
  123. data/lib/{aws → aws-sdk-core}/xml/rest_handler.rb +0 -0
  124. metadata +124 -87
  125. data/lib/aws.rb +0 -299
  126. data/lib/aws/service.rb +0 -26
  127. data/lib/aws/version.rb +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e2cb10570fad9a794ea61097fe83a2e514d77995
4
- data.tar.gz: 86a61776d023acb73a6ca91bda5cd5850abd6f47
3
+ metadata.gz: 5b3b84cd4e2518a49e376102c4710650ef8b1920
4
+ data.tar.gz: b98a49aff1188a76dbb0fd34b4222b54084bd9c8
5
5
  SHA512:
6
- metadata.gz: 0298876e4d100c3014aeb7666b63f19dc661054d5e51335c80c020435dd8036fe1c9c4af277bedf48203857a34bc6086b4b8f8a81dcfae293cc6a8c5b5065bef
7
- data.tar.gz: df443d15514a4b9e19e8d5c5196a5dc9534804e620c65dc3e4e86c01cb863a7a30e2f9d758bb0c2c3921b51e2ea589c38911acb324714cb9e36b75ff3fadff5c
6
+ metadata.gz: c511a83c482cc3bd0ab8ea5f995723ad988595c908b852fa91882d297ee057809c18f9b16d8d5463204d87c6830af529f013106cbfc5ce093ca149ab1466c354
7
+ data.tar.gz: 32c7df28e6958b8d6fdf12b741dd1180b36d9fe4f76a01dd4e190580dc6e8e41d1c19d56aaca2220bf31d8fbf58af70c3c0a87f7e22377f39fad214f25ce7baf
data/bin/aws.rb CHANGED
@@ -94,6 +94,16 @@ end
94
94
 
95
95
  require 'aws-sdk-core'
96
96
 
97
+ module Aws
98
+ class << self
99
+ SERVICE_MODULE_NAMES.each do |svc_name|
100
+ define_method(svc_name.downcase) do |options={}|
101
+ const_get(svc_name).const_get(:Client).new(options)
102
+ end
103
+ end
104
+ end
105
+ end
106
+
97
107
  begin
98
108
  # attempt to load aws-sdk-resources, checking first for source from
99
109
  # a relative path in the repo, otherwise will check for the installed gem
@@ -1,4 +1,5 @@
1
1
  require 'seahorse'
2
+ require 'multi_json'
2
3
 
3
4
  Seahorse::Util.irregular_inflections({
4
5
  'ARNs' => 'arns',
@@ -8,4 +9,290 @@ Seahorse::Util.irregular_inflections({
8
9
  'iSCSI' => 'iscsi',
9
10
  })
10
11
 
11
- require_relative 'aws'
12
+ module Aws
13
+
14
+ # @api private
15
+ GEM_ROOT = File.dirname(File.dirname(__FILE__))
16
+
17
+ # @api private
18
+ APIS_DIR = File.join(GEM_ROOT, 'apis')
19
+
20
+ # @api private
21
+ # services
22
+ SERVICE_MODULE_NAMES = %w(
23
+ AutoScaling
24
+ CloudFormation
25
+ CloudFront
26
+ CloudSearch
27
+ CloudSearchDomain
28
+ CloudTrail
29
+ CloudWatch
30
+ CloudWatchLogs
31
+ CognitoIdentity
32
+ CognitoSync
33
+ DataPipeline
34
+ DirectConnect
35
+ DynamoDB
36
+ EC2
37
+ ElastiCache
38
+ ElasticBeanstalk
39
+ ElasticLoadBalancing
40
+ ElasticTranscoder
41
+ EMR
42
+ Glacier
43
+ IAM
44
+ ImportExport
45
+ Kinesis
46
+ OpsWorks
47
+ RDS
48
+ Redshift
49
+ Route53
50
+ Route53Domains
51
+ S3
52
+ SES
53
+ SimpleDB
54
+ SNS
55
+ SQS
56
+ StorageGateway
57
+ STS
58
+ Support
59
+ SWF
60
+ )
61
+
62
+ @config = {}
63
+ @services = {}
64
+ @service_added_callbacks = []
65
+
66
+ SERVICE_MODULE_NAMES.each do |const_name|
67
+ autoload const_name, "aws-sdk-core/#{const_name.downcase}"
68
+ end
69
+
70
+ autoload :Client, 'aws-sdk-core/client'
71
+ autoload :CredentialProviderChain, 'aws-sdk-core/credential_provider_chain'
72
+ autoload :Credentials, 'aws-sdk-core/credentials'
73
+ autoload :EmptyStructure, 'aws-sdk-core/empty_structure'
74
+ autoload :EndpointProvider, 'aws-sdk-core/endpoint_provider'
75
+ autoload :Errors, 'aws-sdk-core/errors'
76
+ autoload :InstanceProfileCredentials, 'aws-sdk-core/instance_profile_credentials'
77
+ autoload :PageableResponse, 'aws-sdk-core/pageable_response'
78
+ autoload :RestBodyHandler, 'aws-sdk-core/rest_body_handler'
79
+ autoload :Service, 'aws-sdk-core/service'
80
+ autoload :SharedCredentials, 'aws-sdk-core/shared_credentials'
81
+ autoload :Structure, 'aws-sdk-core/structure'
82
+ autoload :TreeHash, 'aws-sdk-core/tree_hash'
83
+ autoload :VERSION, 'aws-sdk-core/version'
84
+
85
+ # @api private
86
+ module Api
87
+ autoload :Customizer, 'aws-sdk-core/api/customizer'
88
+ autoload :Documenter, 'aws-sdk-core/api/documenter'
89
+ autoload :Docstrings, 'aws-sdk-core/api/docstrings'
90
+ autoload :Manifest, 'aws-sdk-core/api/manifest'
91
+ autoload :ManifestBuilder, 'aws-sdk-core/api/manifest_builder'
92
+ autoload :OperationDocumenter, 'aws-sdk-core/api/operation_documenter'
93
+ autoload :OperationExample, 'aws-sdk-core/api/operation_example'
94
+ autoload :ServiceCustomizations, 'aws-sdk-core/api/service_customizations'
95
+ end
96
+
97
+ # @api private
98
+ module Json
99
+ autoload :Builder, 'aws-sdk-core/json/builder'
100
+ autoload :ErrorHandler, 'aws-sdk-core/json/error_handler'
101
+ autoload :Parser, 'aws-sdk-core/json/parser'
102
+ autoload :RestHandler, 'aws-sdk-core/json/rest_handler'
103
+ autoload :RpcBodyHandler, 'aws-sdk-core/json/rpc_body_handler'
104
+ autoload :RpcHeadersHandler, 'aws-sdk-core/json/rpc_headers_handler'
105
+ autoload :SimpleBodyHandler, 'aws-sdk-core/json/simple_body_handler'
106
+ end
107
+
108
+ # @api private
109
+ module Paging
110
+ autoload :NullPager, 'aws-sdk-core/paging/null_pager'
111
+ autoload :NullProvider, 'aws-sdk-core/paging/null_provider'
112
+ autoload :Pager, 'aws-sdk-core/paging/pager'
113
+ autoload :Provider, 'aws-sdk-core/paging/provider'
114
+ end
115
+
116
+ module Plugins
117
+ autoload :CSDConditionalSigning, 'aws-sdk-core/plugins/csd_conditional_signing'
118
+ autoload :DynamoDBExtendedRetries, 'aws-sdk-core/plugins/dynamodb_extended_retries'
119
+ autoload :DynamoDBSimpleAttributes, 'aws-sdk-core/plugins/dynamodb_simple_attributes'
120
+ autoload :EC2CopyEncryptedSnapshot, 'aws-sdk-core/plugins/ec2_copy_encrypted_snapshot'
121
+ autoload :GlacierAccountId, 'aws-sdk-core/plugins/glacier_account_id'
122
+ autoload :GlacierApiVersion, 'aws-sdk-core/plugins/glacier_api_version'
123
+ autoload :GlacierChecksums, 'aws-sdk-core/plugins/glacier_checksums'
124
+ autoload :GlobalConfiguration, 'aws-sdk-core/plugins/global_configuration'
125
+ autoload :RegionalEndpoint, 'aws-sdk-core/plugins/regional_endpoint'
126
+ autoload :ResponsePaging, 'aws-sdk-core/plugins/response_paging'
127
+ autoload :RequestSigner, 'aws-sdk-core/plugins/request_signer'
128
+ autoload :RetryErrors, 'aws-sdk-core/plugins/retry_errors'
129
+ autoload :Route53IdFix, 'aws-sdk-core/plugins/route_53_id_fix'
130
+ autoload :S3BucketDns, 'aws-sdk-core/plugins/s3_bucket_dns'
131
+ autoload :S3CompleteMultipartUploadFix, 'aws-sdk-core/plugins/s3_complete_multipart_upload_fix'
132
+ autoload :S3Expect100Continue, 'aws-sdk-core/plugins/s3_expect_100_continue'
133
+ autoload :S3GetBucketLocationFix, 'aws-sdk-core/plugins/s3_get_bucket_location_fix'
134
+ autoload :S3LocationConstraint, 'aws-sdk-core/plugins/s3_location_constraint'
135
+ autoload :S3Md5s, 'aws-sdk-core/plugins/s3_md5s'
136
+ autoload :S3Redirects, 'aws-sdk-core/plugins/s3_redirects'
137
+ autoload :S3SseCpk, 'aws-sdk-core/plugins/s3_sse_cpk'
138
+ autoload :S3UrlEncodedKeys, 'aws-sdk-core/plugins/s3_url_encoded_keys'
139
+ autoload :SQSQueueUrls, 'aws-sdk-core/plugins/sqs_queue_urls'
140
+ autoload :SWFReadTimeouts, 'aws-sdk-core/plugins/swf_read_timeouts'
141
+ autoload :UserAgent, 'aws-sdk-core/plugins/user_agent'
142
+
143
+ module Protocols
144
+ autoload :EC2, 'aws-sdk-core/plugins/protocols/ec2'
145
+ autoload :JsonRpc, 'aws-sdk-core/plugins/protocols/json_rpc'
146
+ autoload :Query, 'aws-sdk-core/plugins/protocols/query'
147
+ autoload :RestJson, 'aws-sdk-core/plugins/protocols/rest_json'
148
+ autoload :RestXml, 'aws-sdk-core/plugins/protocols/rest_xml'
149
+ end
150
+
151
+ end
152
+
153
+ # @api private
154
+ module Query
155
+ autoload :EC2ParamBuilder, 'aws-sdk-core/query/ec2_param_builder'
156
+ autoload :Handler, 'aws-sdk-core/query/handler'
157
+ autoload :Param, 'aws-sdk-core/query/param'
158
+ autoload :ParamBuilder, 'aws-sdk-core/query/param_builder'
159
+ autoload :ParamList, 'aws-sdk-core/query/param_list'
160
+ end
161
+
162
+ # @api private
163
+ module Signers
164
+ autoload :Base, 'aws-sdk-core/signers/base'
165
+ autoload :Handler, 'aws-sdk-core/signers/handler'
166
+ autoload :S3, 'aws-sdk-core/signers/s3'
167
+ autoload :V2, 'aws-sdk-core/signers/v2'
168
+ autoload :V3, 'aws-sdk-core/signers/v3'
169
+ autoload :V4, 'aws-sdk-core/signers/v4'
170
+ end
171
+
172
+ module Waiters
173
+ autoload :Errors, 'aws-sdk-core/waiters/errors'
174
+ autoload :NullProvider, 'aws-sdk-core/waiters/null_provider'
175
+ autoload :Provider, 'aws-sdk-core/waiters/provider'
176
+ autoload :Waiter, 'aws-sdk-core/waiters/waiter'
177
+ end
178
+
179
+ # @api private
180
+ module Xml
181
+ autoload :Builder, 'aws-sdk-core/xml/builder'
182
+ autoload :DefaultList, 'aws-sdk-core/xml/default_list'
183
+ autoload :ErrorHandler, 'aws-sdk-core/xml/error_handler'
184
+ autoload :Parser, 'aws-sdk-core/xml/parser'
185
+ autoload :RestHandler, 'aws-sdk-core/xml/rest_handler'
186
+ end
187
+
188
+ class << self
189
+
190
+ # @return [Hash] Returns a hash of default configuration options shared
191
+ # by all constructed clients.
192
+ attr_reader :config
193
+
194
+ # @param [Hash] config
195
+ def config=(config)
196
+ if Hash === config
197
+ @config = config
198
+ else
199
+ raise ArgumentError, 'configuration object must be a hash'
200
+ end
201
+ end
202
+
203
+ # Yields to the given block for each service that has already been
204
+ # defined via {add_service}. Also yields to the given block for
205
+ # each new service added after the callback is registered.
206
+ # @api private
207
+ def service_added(&block)
208
+ callback = Proc.new
209
+ @services.each do |svc_name, (svc_module, options)|
210
+ yield(svc_name, svc_module, options)
211
+ end
212
+ @service_added_callbacks << callback
213
+ end
214
+
215
+ # @api private
216
+ def load_json(path)
217
+ MultiJson.load(File.open(path, 'r', encoding: 'UTF-8') { |f| f.read })
218
+ end
219
+
220
+ # Registers a new service.
221
+ #
222
+ # Aws.add_service('SvcName',
223
+ # api: '/path/to/svc.api.json',
224
+ # paginators: '/path/to/svc.paginators.json',
225
+ # resources: '/path/to/svc.resources.json')
226
+ #
227
+ # Aws::SvcName::Client.new
228
+ # #=> #<Aws::SvcName::Client>
229
+ #
230
+ # @param [String] svc_name The name of the service. This will also be
231
+ # the namespace under {Aws}.
232
+ # @option options[required,String,Hash,Seahorse::Model::Api] :api
233
+ # @option options[String,Hash,Paging::Provider] :paginators
234
+ # @option options[String] :resources
235
+ # @yieldparam [String] svc_name
236
+ # @yieldparam [Module<Service>] svc_module
237
+ # @yieldparam [Hash<String,String>] svc_files
238
+ # @return [Module<Service>]
239
+ def add_service(svc_name, options = {})
240
+ svc_module = Module.new { extend Service }
241
+ const_set(svc_name, svc_module)
242
+ @services[svc_name] = [svc_module, options]
243
+ @service_added_callbacks.each do |callback|
244
+ callback.call(svc_name.to_s, *@services[svc_name])
245
+ end
246
+ svc_module
247
+ end
248
+
249
+ # @api private
250
+ def load_all_services
251
+ SERVICE_MODULE_NAMES.each do |const_name|
252
+ const_get(const_name)
253
+ end
254
+ end
255
+
256
+ end
257
+
258
+ # build service client classes
259
+ service_added do |name, svc_module, options|
260
+ svc_module.const_set(:Client, Client.define(name, options))
261
+ svc_module.const_set(:Errors, Module.new { extend Errors::DynamicErrors })
262
+ end
263
+
264
+ # build service paginators
265
+ service_added do |name, svc_module, options|
266
+ paginators = options[:paginators]
267
+ paginators = case paginators
268
+ when Paging::Provider then paginators
269
+ when Hash then Paging::Provider.new(paginators)
270
+ when String then Paging::Provider.new(Aws.load_json(paginators))
271
+ when nil then Paging::NullProvider.new
272
+ else raise ArgumentError, 'invalid :paginators option'
273
+ end
274
+ svc_module.const_get(:Client).paginators = paginators
275
+ end
276
+
277
+ # build service waiters
278
+ service_added do |name, svc_module, options|
279
+ waiters = options[:waiters]
280
+ waiters = case waiters
281
+ when Waiters::Provider then waiters
282
+ when Hash then Waiters::Provider.new(waiters)
283
+ when String then Waiters::Provider.new(Aws.load_json(waiters))
284
+ when nil then Waiters::NullProvider.new
285
+ else raise ArgumentError, 'invalid :waiters option'
286
+ end
287
+ if name == 'S3'
288
+ # temporary workaround for issue with S3 waiter definition
289
+ defs = waiters.instance_variable_get("@definitions")
290
+ defs[:bucket_exists]['ignore_errors'] = ['NotFound']
291
+ defs[:object_exists]['ignore_errors'] = ['NotFound']
292
+ defs[:bucket_not_exists]['success_value'] = 'NotFound'
293
+ defs[:object_not_exists]['success_value'] = 'NotFound'
294
+ end
295
+ svc_module.const_get(:Client).waiters = waiters
296
+ end
297
+
298
+ end
@@ -0,0 +1,5 @@
1
+ Aws.add_service(:AutoScaling, {
2
+ api: File.join(Aws::APIS_DIR, 'AutoScaling.api.json'),
3
+ docs: File.join(Aws::APIS_DIR, 'AutoScaling.docs.json'),
4
+ paginators: File.join(Aws::APIS_DIR, 'AutoScaling.paginators.json'),
5
+ })
@@ -111,8 +111,8 @@ module Aws
111
111
  when Seahorse::Model::Api then api
112
112
  when Hash then Seahorse::Model::Api.new(api)
113
113
  when String then Seahorse::Model::Api.new(Aws.load_json(api))
114
- else
115
- raise ArgumentError, "expected :api to be an Api, Hash or String"
114
+ when nil then Seahorse::Model::Api.new({})
115
+ else raise ArgumentError, "invalid api definition #{api}"
116
116
  end
117
117
  end
118
118
 
@@ -0,0 +1,5 @@
1
+ Aws.add_service(:CloudFormation, {
2
+ api: File.join(Aws::APIS_DIR, 'CloudFormation.api.json'),
3
+ docs: File.join(Aws::APIS_DIR, 'CloudFormation.docs.json'),
4
+ paginators: File.join(Aws::APIS_DIR, 'CloudFormation.paginators.json'),
5
+ })
@@ -0,0 +1,6 @@
1
+ Aws.add_service(:CloudFront, {
2
+ api: File.join(Aws::APIS_DIR, 'CloudFront.api.json'),
3
+ docs: File.join(Aws::APIS_DIR, 'CloudFront.docs.json'),
4
+ paginators: File.join(Aws::APIS_DIR, 'CloudFront.paginators.json'),
5
+ waiters: File.join(Aws::APIS_DIR, 'CloudFront.waiters.json'),
6
+ })
@@ -0,0 +1,5 @@
1
+ Aws.add_service(:CloudSearch, {
2
+ api: File.join(Aws::APIS_DIR, 'CloudSearch.api.json'),
3
+ docs: File.join(Aws::APIS_DIR, 'CloudSearch.docs.json'),
4
+ paginators: File.join(Aws::APIS_DIR, 'CloudSearch.paginators.json'),
5
+ })
@@ -0,0 +1,4 @@
1
+ Aws.add_service(:CloudSearchDomain, {
2
+ api: File.join(Aws::APIS_DIR, 'CloudSearchDomain.api.json'),
3
+ docs: File.join(Aws::APIS_DIR, 'CloudSearchDomain.docs.json'),
4
+ })
@@ -0,0 +1,5 @@
1
+ Aws.add_service(:CloudTrail, {
2
+ api: File.join(Aws::APIS_DIR, 'CloudTrail.api.json'),
3
+ docs: File.join(Aws::APIS_DIR, 'CloudTrail.docs.json'),
4
+ paginators: File.join(Aws::APIS_DIR, 'CloudTrail.paginators.json'),
5
+ })
@@ -0,0 +1,5 @@
1
+ Aws.add_service(:CloudWatch, {
2
+ api: File.join(Aws::APIS_DIR, 'CloudWatch.api.json'),
3
+ docs: File.join(Aws::APIS_DIR, 'CloudWatch.docs.json'),
4
+ paginators: File.join(Aws::APIS_DIR, 'CloudWatch.paginators.json'),
5
+ })
@@ -0,0 +1,5 @@
1
+ Aws.add_service(:CloudWatchLogs, {
2
+ api: File.join(Aws::APIS_DIR, 'CloudWatchLogs.api.json'),
3
+ docs: File.join(Aws::APIS_DIR, 'CloudWatchLogs.docs.json'),
4
+ paginators: File.join(Aws::APIS_DIR, 'CloudWatchLogs.paginators.json'),
5
+ })
@@ -0,0 +1,4 @@
1
+ Aws.add_service(:CognitoIdentity, {
2
+ api: File.join(Aws::APIS_DIR, 'CognitoIdentity.api.json'),
3
+ docs: File.join(Aws::APIS_DIR, 'CognitoIdentity.docs.json'),
4
+ })
@@ -0,0 +1,4 @@
1
+ Aws.add_service(:CognitoSync, {
2
+ api: File.join(Aws::APIS_DIR, 'CognitoSync.api.json'),
3
+ docs: File.join(Aws::APIS_DIR, 'CognitoSync.docs.json'),
4
+ })
File without changes
@@ -0,0 +1,5 @@
1
+ Aws.add_service(:DataPipeline, {
2
+ api: File.join(Aws::APIS_DIR, 'DataPipeline.api.json'),
3
+ docs: File.join(Aws::APIS_DIR, 'DataPipeline.docs.json'),
4
+ paginators: File.join(Aws::APIS_DIR, 'DataPipeline.paginators.json'),
5
+ })
@@ -0,0 +1,5 @@
1
+ Aws.add_service(:DirectConnect, {
2
+ api: File.join(Aws::APIS_DIR, 'DirectConnect.api.json'),
3
+ docs: File.join(Aws::APIS_DIR, 'DirectConnect.docs.json'),
4
+ paginators: File.join(Aws::APIS_DIR, 'DirectConnect.paginators.json'),
5
+ })
@@ -0,0 +1,12 @@
1
+ Aws.add_service(:DynamoDB, {
2
+ api: File.join(Aws::APIS_DIR, 'DynamoDB.api.json'),
3
+ docs: File.join(Aws::APIS_DIR, 'DynamoDB.docs.json'),
4
+ paginators: File.join(Aws::APIS_DIR, 'DynamoDB.paginators.json'),
5
+ waiters: File.join(Aws::APIS_DIR, 'DynamoDB.waiters.json'),
6
+ })
7
+
8
+ module Aws
9
+ module DynamoDB
10
+ autoload :AttributeValue, 'aws-sdk-core/dynamodb/attribute_value'
11
+ end
12
+ end