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.
- checksums.yaml +4 -4
- data/bin/aws.rb +10 -0
- data/lib/aws-sdk-core.rb +288 -1
- data/lib/{aws → aws-sdk-core}/api/customizer.rb +0 -0
- data/lib/{aws → aws-sdk-core}/api/docstrings.rb +0 -0
- data/lib/{aws → aws-sdk-core}/api/documenter.rb +0 -0
- data/lib/{aws → aws-sdk-core}/api/operation_documenter.rb +0 -0
- data/lib/{aws → aws-sdk-core}/api/operation_example.rb +0 -0
- data/lib/{aws → aws-sdk-core}/api/service_customizations.rb +0 -0
- data/lib/aws-sdk-core/autoscaling.rb +5 -0
- data/lib/{aws → aws-sdk-core}/client.rb +2 -2
- data/lib/aws-sdk-core/cloudformation.rb +5 -0
- data/lib/aws-sdk-core/cloudfront.rb +6 -0
- data/lib/aws-sdk-core/cloudsearch.rb +5 -0
- data/lib/aws-sdk-core/cloudsearchdomain.rb +4 -0
- data/lib/aws-sdk-core/cloudtrail.rb +5 -0
- data/lib/aws-sdk-core/cloudwatch.rb +5 -0
- data/lib/aws-sdk-core/cloudwatchlogs.rb +5 -0
- data/lib/aws-sdk-core/cognitoidentity.rb +4 -0
- data/lib/aws-sdk-core/cognitosync.rb +4 -0
- data/lib/{aws → aws-sdk-core}/credential_provider_chain.rb +0 -0
- data/lib/{aws → aws-sdk-core}/credentials.rb +0 -0
- data/lib/aws-sdk-core/datapipeline.rb +5 -0
- data/lib/aws-sdk-core/directconnect.rb +5 -0
- data/lib/aws-sdk-core/dynamodb.rb +12 -0
- data/lib/{aws → aws-sdk-core}/dynamodb/attribute_value.rb +0 -0
- data/lib/aws-sdk-core/ec2.rb +7 -0
- data/lib/aws-sdk-core/elasticache.rb +5 -0
- data/lib/aws-sdk-core/elasticbeanstalk.rb +5 -0
- data/lib/aws-sdk-core/elasticloadbalancing.rb +5 -0
- data/lib/aws-sdk-core/elastictranscoder.rb +5 -0
- data/lib/{aws → aws-sdk-core}/empty_structure.rb +0 -0
- data/lib/aws-sdk-core/emr.rb +5 -0
- data/lib/{aws → aws-sdk-core}/endpoint_provider.rb +0 -0
- data/lib/{aws → aws-sdk-core}/errors.rb +0 -0
- data/lib/aws-sdk-core/glacier.rb +7 -0
- data/lib/aws-sdk-core/iam.rb +6 -0
- data/lib/aws-sdk-core/importexport.rb +5 -0
- data/lib/{aws → aws-sdk-core}/instance_profile_credentials.rb +0 -0
- data/lib/{aws → aws-sdk-core}/json/builder.rb +0 -0
- data/lib/{aws → aws-sdk-core}/json/error_handler.rb +0 -0
- data/lib/{aws → aws-sdk-core}/json/parser.rb +0 -0
- data/lib/{aws → aws-sdk-core}/json/rest_handler.rb +0 -0
- data/lib/{aws → aws-sdk-core}/json/rpc_body_handler.rb +0 -0
- data/lib/{aws → aws-sdk-core}/json/rpc_headers_handler.rb +0 -0
- data/lib/{aws → aws-sdk-core}/json/simple_body_handler.rb +0 -0
- data/lib/aws-sdk-core/kinesis.rb +5 -0
- data/lib/aws-sdk-core/opsworks.rb +6 -0
- data/lib/{aws → aws-sdk-core}/pageable_response.rb +0 -0
- data/lib/{aws → aws-sdk-core}/paging/null_pager.rb +0 -0
- data/lib/{aws → aws-sdk-core}/paging/null_provider.rb +0 -0
- data/lib/{aws → aws-sdk-core}/paging/pager.rb +0 -0
- data/lib/{aws → aws-sdk-core}/paging/provider.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/csd_conditional_signing.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/dynamodb_extended_retries.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/dynamodb_simple_attributes.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/ec2_copy_encrypted_snapshot.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/glacier_account_id.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/glacier_api_version.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/glacier_checksums.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/global_configuration.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/protocols/ec2.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/protocols/json_rpc.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/protocols/query.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/protocols/rest_json.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/protocols/rest_xml.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/regional_endpoint.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/request_signer.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/response_paging.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/retry_errors.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/route_53_id_fix.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/s3_bucket_dns.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/s3_complete_multipart_upload_fix.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/s3_expect_100_continue.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/s3_get_bucket_location_fix.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/s3_location_constraint.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/s3_md5s.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/s3_redirects.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/s3_sse_cpk.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/s3_url_encoded_keys.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/sqs_queue_urls.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/swf_read_timeouts.rb +0 -0
- data/lib/{aws → aws-sdk-core}/plugins/user_agent.rb +0 -0
- data/lib/{aws → aws-sdk-core}/query/ec2_param_builder.rb +0 -0
- data/lib/{aws → aws-sdk-core}/query/handler.rb +0 -0
- data/lib/{aws → aws-sdk-core}/query/param.rb +0 -0
- data/lib/{aws → aws-sdk-core}/query/param_builder.rb +0 -0
- data/lib/{aws → aws-sdk-core}/query/param_list.rb +0 -0
- data/lib/aws-sdk-core/rds.rb +6 -0
- data/lib/aws-sdk-core/redshift.rb +6 -0
- data/lib/{aws → aws-sdk-core}/rest_body_handler.rb +0 -0
- data/lib/aws-sdk-core/route53.rb +5 -0
- data/lib/aws-sdk-core/route53domains.rb +4 -0
- data/lib/aws-sdk-core/s3.rb +13 -0
- data/lib/aws-sdk-core/s3/presigner.rb +64 -0
- data/lib/aws-sdk-core/service.rb +4 -0
- data/lib/aws-sdk-core/ses.rb +6 -0
- data/lib/{aws → aws-sdk-core}/shared_credentials.rb +0 -0
- data/lib/{aws → aws-sdk-core}/signers/base.rb +0 -0
- data/lib/{aws → aws-sdk-core}/signers/handler.rb +0 -0
- data/lib/{aws → aws-sdk-core}/signers/s3.rb +0 -0
- data/lib/{aws → aws-sdk-core}/signers/v2.rb +0 -0
- data/lib/{aws → aws-sdk-core}/signers/v3.rb +0 -0
- data/lib/{aws → aws-sdk-core}/signers/v4.rb +5 -4
- data/lib/aws-sdk-core/simpledb.rb +5 -0
- data/lib/aws-sdk-core/sns.rb +6 -0
- data/lib/aws-sdk-core/sqs.rb +6 -0
- data/lib/aws-sdk-core/storagegateway.rb +5 -0
- data/lib/{aws → aws-sdk-core}/structure.rb +0 -0
- data/lib/aws-sdk-core/sts.rb +4 -0
- data/lib/aws-sdk-core/support.rb +5 -0
- data/lib/aws-sdk-core/swf.rb +5 -0
- data/lib/{aws → aws-sdk-core}/tree_hash.rb +0 -0
- data/lib/aws-sdk-core/version.rb +3 -0
- data/lib/{aws → aws-sdk-core}/waiters/errors.rb +0 -0
- data/lib/{aws → aws-sdk-core}/waiters/null_provider.rb +0 -0
- data/lib/{aws → aws-sdk-core}/waiters/provider.rb +0 -0
- data/lib/{aws → aws-sdk-core}/waiters/waiter.rb +0 -0
- data/lib/{aws → aws-sdk-core}/xml/builder.rb +0 -0
- data/lib/{aws → aws-sdk-core}/xml/default_list.rb +0 -0
- data/lib/{aws → aws-sdk-core}/xml/error_handler.rb +0 -0
- data/lib/{aws → aws-sdk-core}/xml/parser.rb +0 -0
- data/lib/{aws → aws-sdk-core}/xml/rest_handler.rb +0 -0
- metadata +124 -87
- data/lib/aws.rb +0 -299
- data/lib/aws/service.rb +0 -26
- data/lib/aws/version.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b3b84cd4e2518a49e376102c4710650ef8b1920
|
4
|
+
data.tar.gz: b98a49aff1188a76dbb0fd34b4222b54084bd9c8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
data/lib/aws-sdk-core.rb
CHANGED
@@ -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
|
-
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -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
|
-
|
115
|
-
|
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,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
|
+
})
|
File without changes
|
File without changes
|
@@ -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
|