aws-sdk 1.9.1 → 1.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,249 @@
1
+ # AWS SDK for Ruby [![Build Status](https://travis-ci.org/aws/aws-sdk-ruby.png?branch=master)](https://travis-ci.org/aws/aws-sdk-ruby)
2
+
3
+ The official AWS SDK for Ruby.
4
+
5
+ ## Installation
6
+
7
+ You can install the AWS SDK for Ruby with rubygems:
8
+
9
+ gem install aws-sdk
10
+
11
+ If you are using Bundler, we recommend that you express a major version
12
+ dependency (aws-sdk follows [semantic versioning](http://semver.org/)):
13
+
14
+ gem 'aws-sdk', '~> 1.0'
15
+
16
+ ## Basic Configuration
17
+
18
+ You need to provide your AWS security credentials and choose a default region.
19
+
20
+ ```ruby
21
+ AWS.config(access_key_id: '...', secret_access_key: '...', region: 'us-west-2)
22
+ ```
23
+
24
+ You can also specify these values via `ENV`:
25
+
26
+ export AWS_ACCESS_KEY_ID='...'
27
+ export AWS_SECRET_ACCESS_KEY='...'
28
+ export AWS_REGION='us-west-2'
29
+
30
+ ## Basic Usage
31
+
32
+ Each service provides a service interface and a client.
33
+
34
+ ```
35
+ ec2 = AWS.ec2 #=> AWS::EC2
36
+ ec2.client #=> AWS::EC2::Client
37
+ ```
38
+
39
+ The client provides one method for each API operation. The client methods
40
+ accept a hash of request params and return a response with a hash of
41
+ response data. The service interfaces provide a higher level abstration built using the client.
42
+
43
+ **Example: list instance tags using a client**
44
+
45
+ ```ruby
46
+ resp = ec2.client.describe_tags(filters: [{ name: "resource-id", values: ["i-12345678"] }])
47
+ resp[:tag_set].first
48
+ #=> {:resource_id=>"i-12345678", :resource_type=>"instance", :key=>"role", :value=>"web"}
49
+ ```
50
+
51
+ **Example: list instance tags using the AWS::EC2 higher level interface**
52
+
53
+ ```ruby
54
+ ec2.instances['i-12345678'].tags.to_h
55
+ #=> {"role"=>"web"}
56
+ ```
57
+
58
+ See the [API Documentation](http://docs.aws.amazon.com/AWSRubySDK/latest/frames.html) for more examples.
59
+
60
+ ## Links of Interest
61
+
62
+ * [API Documentation](http://docs.aws.amazon.com/AWSRubySDK/latest/frames.html)
63
+ * [Release Notes](http://aws.amazon.com/releasenotes/Ruby)
64
+ * [Issues](http://github.com/aws/aws-sdk-ruby/issues)
65
+ * [Forums](https://forums.aws.amazon.com/forum.jspa?forumID=125)
66
+ * [License](http://aws.amazon.com/apache2.0/)
67
+
68
+ ## Supported Services
69
+
70
+ The SDK currently supports the following services:
71
+
72
+ <table class="supported-services" border="1">
73
+ <thead>
74
+ <th>Class</th>
75
+ <th>API Version</th>
76
+ <th>AWS Service Name</th>
77
+ </thead>
78
+ <tbody>
79
+ <tr>
80
+ <td>AWS::AutoScaling</td>
81
+ <td>2011-01-01</td>
82
+ <td>Auto Scaling</td>
83
+ </tr>
84
+ <tr>
85
+ <td>AWS::CloudFormation</td>
86
+ <td>2010-05-15</td>
87
+ <td>AWS CloudFormation</td>
88
+ </tr>
89
+ <tr>
90
+ <td>AWS::CloudFront</td>
91
+ <td>2012-07-01</td>
92
+ <td>Amazon CloudFront</td>
93
+ </tr>
94
+ <tr>
95
+ <td>AWS::CloudSearch</td>
96
+ <td>2011-02-01</td>
97
+ <td>Amazon CloudSearch</td>
98
+ </tr>
99
+ <tr>
100
+ <td>AWS::CloudWatch</td>
101
+ <td>2010-08-01</td>
102
+ <td>Amazon CloudWatch</td>
103
+ </tr>
104
+ <tr>
105
+ <td>AWS::DataPipeline</td>
106
+ <td>2012-10-29</td>
107
+ <td>AWS Data Pipeline</td>
108
+ </tr>
109
+ <tr>
110
+ <td>AWS::DirectConnect</td>
111
+ <td>2012-10-25</td>
112
+ <td>AWS Direct Connect</td>
113
+ </tr>
114
+ <tr>
115
+ <td rowspan="2">AWS::DynamoDB</td>
116
+ <td>2011-12-05</td>
117
+ <td rowspan="2">Amazon DynamoDB</td>
118
+ </tr>
119
+ <tr>
120
+ <td>2012-08-10</td>
121
+ </tr>
122
+ <tr>
123
+ <td>AWS::EC2</td>
124
+ <td>2013-02-01</td>
125
+ <td>Amazon Elastic Compute Cloud</td>
126
+ </tr>
127
+ <tr>
128
+ <td>AWS::ElastiCache</td>
129
+ <td>2012-11-15</td>
130
+ <td>Amazon ElastiCache</td>
131
+ </tr>
132
+ <tr>
133
+ <td>AWS::ElasticBeanstalk</td>
134
+ <td>2010-12-01</td>
135
+ <td>AWS Elastic Beanstalk</td>
136
+ </tr>
137
+ <tr>
138
+ <td>AWS::ElasticTranscoder</td>
139
+ <td>2012-09-25</td>
140
+ <td>Amazon Elastic Transcoder</td>
141
+ </tr>
142
+ <tr>
143
+ <td>AWS::ELB</td>
144
+ <td>2012-06-01</td>
145
+ <td>Elastic Load Balancing</td>
146
+ </tr>
147
+ <tr>
148
+ <td>AWS::EMR</td>
149
+ <td>2009-03-31</td>
150
+ <td>Amazon Elastic MapReduce</td>
151
+ </tr>
152
+ <tr>
153
+ <td>AWS::Glacier</td>
154
+ <td>2012-06-01</td>
155
+ <td>Amazon Glacier</td>
156
+ </tr>
157
+ <tr>
158
+ <td>AWS::IAM</td>
159
+ <td>2010-05-08</td>
160
+ <td>AWS Identity and Access Management</td>
161
+ </tr>
162
+ <tr>
163
+ <td>AWS::ImportExport</td>
164
+ <td>2010-06-01</td>
165
+ <td>AWS Import/Export</td>
166
+ </tr>
167
+ <tr>
168
+ <td>AWS::OpsWorks</td>
169
+ <td>2013-02-18</td>
170
+ <td>AWS OpsWorks</td>
171
+ </tr>
172
+ <tr>
173
+ <td>AWS::RDS</td>
174
+ <td>2013-02-12</td>
175
+ <td>Amazon Relational Database Service (Beta)</td>
176
+ </tr>
177
+ <tr>
178
+ <td>AWS::Redshift</td>
179
+ <td>2012-12-01</td>
180
+ <td>Amazon Redshift</td>
181
+ </tr>
182
+ <tr>
183
+ <td>AWS::Route53</td>
184
+ <td>2012-12-12</td>
185
+ <td>Amazon Route 53</td>
186
+ </tr>
187
+ <tr>
188
+ <td>AWS::S3</td>
189
+ <td>2006-03-01</td>
190
+ <td>Amazon Simple Storage Service</td>
191
+ </tr>
192
+ <tr>
193
+ <td>AWS::SimpleDB</td>
194
+ <td>2009-04-15</td>
195
+ <td>Amazon SimpleDB</td>
196
+ </tr>
197
+ <tr>
198
+ <td>AWS::SimpleEmailService</td>
199
+ <td>2010-12-01</td>
200
+ <td>Amazon Simple E-mail Service</td>
201
+ </tr>
202
+ <tr>
203
+ <td>AWS::SimpleWorkflow</td>
204
+ <td>2012-01-25</td>
205
+ <td>Amazon Simple Workflow Service</td>
206
+ </tr>
207
+ <tr>
208
+ <td>AWS::SNS</td>
209
+ <td>2010-03-31</td>
210
+ <td>Amazon Simple Notifications Service</td>
211
+ </tr>
212
+ <tr>
213
+ <td>AWS::SQS</td>
214
+ <td>2012-11-05</td>
215
+ <td>Amazon Simple Queue Service</td>
216
+ </tr>
217
+ <tr>
218
+ <td>AWS::StorageGateway</td>
219
+ <td>2012-06-30</td>
220
+ <td>AWS Storage Gateway</td>
221
+ </tr>
222
+ <tr>
223
+ <td>AWS::STS</td>
224
+ <td>2011-06-15</td>
225
+ <td>AWS Security Token Service</td>
226
+ </tr>
227
+ </tbody>
228
+ </table>
229
+
230
+ ## License
231
+
232
+ This SDK is distributed under the
233
+ [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).
234
+
235
+ ```no-highlight
236
+ Copyright 2012. Amazon Web Services, Inc. All Rights Reserved.
237
+
238
+ Licensed under the Apache License, Version 2.0 (the "License");
239
+ you may not use this file except in compliance with the License.
240
+ You may obtain a copy of the License at
241
+
242
+ http://www.apache.org/licenses/LICENSE-2.0
243
+
244
+ Unless required by applicable law or agreed to in writing, software
245
+ distributed under the License is distributed on an "AS IS" BASIS,
246
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
247
+ See the License for the specific language governing permissions and
248
+ limitations under the License.
249
+ ```
@@ -12,72 +12,4 @@
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
14
  require 'aws/core'
15
-
16
- require 'aws/auto_scaling/config'
17
- require 'aws/cloud_formation/config'
18
- require 'aws/cloud_front/config'
19
- require 'aws/cloud_search/config'
20
- require 'aws/cloud_watch/config'
21
- require 'aws/data_pipeline/config'
22
- require 'aws/direct_connect/config'
23
- require 'aws/dynamo_db/config'
24
- require 'aws/ec2/config'
25
- require 'aws/elasticache/config'
26
- require 'aws/elastic_beanstalk/config'
27
- require 'aws/elastic_transcoder/config'
28
- require 'aws/elb/config'
29
- require 'aws/emr/config'
30
- require 'aws/glacier/config'
31
- require 'aws/iam/config'
32
- require 'aws/import_export/config'
33
- require 'aws/ops_works/config'
34
- require 'aws/rds/config'
35
- require 'aws/redshift/config'
36
- require 'aws/route_53/config'
37
- require 'aws/s3/config'
38
- require 'aws/simple_db/config'
39
- require 'aws/simple_email_service/config'
40
- require 'aws/simple_workflow/config'
41
- require 'aws/sns/config'
42
- require 'aws/sqs/config'
43
- require 'aws/storage_gateway/config'
44
- require 'aws/sts/config'
45
-
46
- module AWS
47
-
48
- # services
49
- autoload :AutoScaling, 'aws/auto_scaling'
50
- autoload :CloudFormation, 'aws/cloud_formation'
51
- autoload :CloudFront, 'aws/cloud_front'
52
- autoload :CloudSearch, 'aws/cloud_search'
53
- autoload :CloudWatch, 'aws/cloud_watch'
54
- autoload :DataPipeline, 'aws/data_pipeline'
55
- autoload :DirectConnect, 'aws/direct_connect'
56
- autoload :DynamoDB, 'aws/dynamo_db'
57
- autoload :EC2, 'aws/ec2'
58
- autoload :ElastiCache, 'aws/elasticache'
59
- autoload :ElasticBeanstalk, 'aws/elastic_beanstalk'
60
- autoload :ElasticTranscoder, 'aws/elastic_transcoder'
61
- autoload :ELB, 'aws/elb'
62
- autoload :EMR, 'aws/emr'
63
- autoload :Glacier, 'aws/glacier'
64
- autoload :IAM, 'aws/iam'
65
- autoload :ImportExport, 'aws/import_export'
66
- autoload :OpsWorks, 'aws/ops_works'
67
- autoload :RDS, 'aws/rds'
68
- autoload :Redshift, 'aws/redshift'
69
- autoload :Route53, 'aws/route_53'
70
- autoload :S3, 'aws/s3'
71
- autoload :SimpleDB, 'aws/simple_db'
72
- autoload :SimpleEmailService, 'aws/simple_email_service'
73
- autoload :SimpleWorkflow, 'aws/simple_workflow'
74
- autoload :SNS, 'aws/sns'
75
- autoload :SQS, 'aws/sqs'
76
- autoload :StorageGateway, 'aws/storage_gateway'
77
- autoload :STS, 'aws/sts'
78
-
79
- autoload :Record, 'aws/record'
80
-
81
- end
82
-
83
15
  require 'aws/rails'
@@ -16,48 +16,9 @@ require 'aws/version'
16
16
  # AWS is the root module for all of the Amazon Web Services. It is also
17
17
  # where you can configure you access to AWS.
18
18
  #
19
- # # Supported Services
20
- #
21
- # The currently supported services are:
22
- #
23
- # * {AWS::AutoScaling}
24
- # * {AWS::CloudFormation}
25
- # * {AWS::CloudFront}
26
- # * {AWS::CloudSearch}
27
- # * {AWS::CloudWatch}
28
- # * {AWS::DataPipeline}
29
- # * {AWS::DirectConnect}
30
- # * {AWS::DynamoDB}
31
- # * {AWS::EC2}
32
- # * {AWS::ElastiCache}
33
- # * {AWS::ElasticBeanstalk}
34
- # * {AWS::ElasticTranscoder}
35
- # * {AWS::ELB}
36
- # * {AWS::EMR}
37
- # * {AWS::Glacier}
38
- # * {AWS::IAM}
39
- # * {AWS::ImportExport}
40
- # * {AWS::OpsWorks}
41
- # * {AWS::RDS}
42
- # * {AWS::Redshift}
43
- # * {AWS::Route53}
44
- # * {AWS::S3}
45
- # * {AWS::SimpleDB}
46
- # * {AWS::SimpleEmailService}
47
- # * {AWS::SimpleWorkflow}
48
- # * {AWS::SNS}
49
- # * {AWS::SQS}
50
- # * {AWS::StorageGateway}
51
- # * {AWS::STS}
52
- #
53
- # # AWS::Record
54
- #
55
- # In addition to the above services, bundled is an ORM based on AWS services
56
- # See {AWS::Record} for more information.
57
- #
58
19
  # # Configuration
59
20
  #
60
- # You call {AWS.config} with a hash of options to configure your
21
+ # Call {AWS.config} with a hash of options to configure your
61
22
  # access to the Amazon Web Services.
62
23
  #
63
24
  # At a minimum you need to set your access credentials. See {AWS.config}
@@ -68,56 +29,108 @@ require 'aws/version'
68
29
  # :secret_access_key => 'SECRET_ACCESS_KEY',
69
30
  # :region => 'us-west-2')
70
31
  #
71
- # ## Rails
72
- #
73
- # If you are loading AWS inside a Rails web application, it is recommended to
74
- # place your configuration inside:
75
- #
76
- # config/initializers/aws-sdk.rb
77
- #
78
- # Optionally you can create a Yaml configuration file at
79
- # RAILS_ROOT/config/aws.yml; This should be formatted in the same manor
80
- # as the default RAILS_ROOT/config/database.yml file (one section for
81
- # each Rails environment).
82
- #
83
32
  module AWS
84
33
 
85
34
  # @api private
86
35
  SERVICES = {
87
- 'AutoScaling' => 'auto_scaling',
88
- 'CloudFormation' => 'cloud_formation',
89
- 'CloudFront' => 'cloud_front',
90
- 'CloudSearch' => 'cloud_search',
91
- 'CloudWatch' => 'cloud_watch',
92
- 'DynamoDB' => 'dynamo_db',
93
- 'DataPipeline' => 'data_pipeline',
94
- 'EC2' => 'ec2',
95
- 'ElastiCache' => 'elasticache',
96
- 'ElasticBeanstalk' => 'elastic_beanstalk',
97
- 'ElasticTranscoder' => 'elastic_transcoder',
98
- 'ELB' => 'elb',
99
- 'EMR' => 'emr',
100
- 'Glacier' => 'glacier',
101
- 'IAM' => 'iam',
102
- 'ImportExport' => 'import_export',
103
- 'OpsWorks' => 'ops_works',
104
- 'RDS' => 'rds',
105
- 'Redshift' => 'redshift',
106
- 'Route53' => 'route_53',
107
- 'S3' => 's3',
108
- 'SimpleDB' => 'simple_db',
109
- 'SimpleEmailService' => 'simple_email_service',
110
- 'SimpleWorkflow' => 'simple_workflow',
111
- 'SNS' => 'sns',
112
- 'SQS' => 'sqs',
113
- 'StorageGateway' => 'storage_gateway',
114
- 'STS' => 'sts',
36
+ "CloudFront" => {
37
+ :full_name => "Amazon CloudFront",
38
+ :ruby_name => :cloud_front },
39
+ "CloudSearch" => {
40
+ :full_name => "Amazon CloudSearch",
41
+ :ruby_name => :cloud_search },
42
+ "CloudWatch" => {
43
+ :full_name => "Amazon CloudWatch",
44
+ :ruby_name => :cloud_watch },
45
+ "DynamoDB" => {
46
+ :full_name => "Amazon DynamoDB",
47
+ :ruby_name => :dynamo_db },
48
+ "EC2" => {
49
+ :full_name => "Amazon Elastic Compute Cloud",
50
+ :ruby_name => :ec2 },
51
+ "EMR" => {
52
+ :full_name => "Amazon Elastic MapReduce",
53
+ :ruby_name => :emr },
54
+ "ElastiCache" => {
55
+ :full_name => "Amazon ElastiCache",
56
+ :ruby_name => :elasticache },
57
+ "Glacier" => {
58
+ :full_name => "Amazon Glacier",
59
+ :ruby_name => :glacier },
60
+ "RDS" => {
61
+ :full_name => "Amazon Relational Database Service (Beta)",
62
+ :ruby_name => :rds },
63
+ "Route53" => {
64
+ :full_name => "Amazon Route 53",
65
+ :ruby_name => :route_53 },
66
+ "SimpleEmailService" => {
67
+ :full_name => "Amazon Simple E-mail Service",
68
+ :ruby_name => :simple_email_service },
69
+ "SNS" => {
70
+ :full_name => "Amazon Simple Notifications Service",
71
+ :ruby_name => :sns },
72
+ "SQS" => {
73
+ :full_name => "Amazon Simple Queue Service",
74
+ :ruby_name => :sqs },
75
+ "SimpleWorkflow" => {
76
+ :full_name => "Amazon Simple Workflow Service",
77
+ :ruby_name => :simple_workflow },
78
+ "SimpleDB" => {
79
+ :full_name => "Amazon SimpleDB",
80
+ :ruby_name => :simple_db },
81
+ "AutoScaling" => {
82
+ :full_name => "Auto Scaling",
83
+ :ruby_name => :auto_scaling },
84
+ "CloudFormation" => {
85
+ :full_name => "AWS CloudFormation",
86
+ :ruby_name => :cloud_formation },
87
+ "DataPipeline" => {
88
+ :full_name => "AWS Data Pipeline",
89
+ :ruby_name => :data_pipeline },
90
+ "DirectConnect" => {
91
+ :full_name => "AWS Direct Connect",
92
+ :ruby_name => :direct_connect },
93
+ "ElasticBeanstalk" => {
94
+ :full_name => "AWS Elastic Beanstalk",
95
+ :ruby_name => :elastic_beanstalk },
96
+ "IAM" => {
97
+ :full_name => "AWS Identity and Access Management",
98
+ :ruby_name => :iam },
99
+ "ImportExport" => {
100
+ :full_name => "AWS Import/Export",
101
+ :ruby_name => :import_export },
102
+ "OpsWorks" => {
103
+ :full_name => "AWS OpsWorks",
104
+ :ruby_name => :ops_works },
105
+ "STS" => {
106
+ :full_name => "AWS Security Token Service",
107
+ :ruby_name => :sts },
108
+ "StorageGateway" => {
109
+ :full_name => "AWS Storage Gateway",
110
+ :ruby_name => :storage_gateway },
111
+ "ELB" => {
112
+ :full_name => "Elastic Load Balancing",
113
+ :ruby_name => :elb },
114
+ "ElasticTranscoder" => {
115
+ :full_name => "Amazon Elastic Transcoder",
116
+ :ruby_name => :elastic_transcoder },
117
+ "Redshift" => {
118
+ :full_name => "Amazon Redshift",
119
+ :ruby_name => :redshift },
120
+ "S3" => {
121
+ :full_name => "Amazon Simple Storage Service",
122
+ :ruby_name => :s3 }
115
123
  }
116
124
 
117
125
  # @api private
118
126
  ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
119
127
 
128
+ SERVICES.each_pair do |klass,service|
129
+ autoload(klass, "aws/#{service[:ruby_name]}")
130
+ end
131
+
120
132
  autoload :Errors, 'aws/errors'
133
+ autoload :Record, 'aws/record'
121
134
 
122
135
  module Core
123
136
 
@@ -128,6 +141,7 @@ module AWS
128
141
  autoload :Configuration, 'aws/core/configuration'
129
142
  autoload :CredentialProviders, 'aws/core/credential_providers'
130
143
  autoload :Data, 'aws/core/data'
144
+ autoload :Deprecations, 'aws/core/deprecations'
131
145
  autoload :IndifferentHash, 'aws/core/indifferent_hash'
132
146
  autoload :Inflection, 'aws/core/inflection'
133
147
  autoload :JSONParser, 'aws/core/json_parser'
@@ -209,6 +223,99 @@ module AWS
209
223
 
210
224
  class << self
211
225
 
226
+ # @!method cloud_front
227
+ # @return [CloudFront]
228
+
229
+ # @!method cloud_search
230
+ # @return [CloudSearch]
231
+
232
+ # @!method cloud_watch
233
+ # @return [CloudWatch]
234
+
235
+ # @!method dynamo_db
236
+ # @return [DynamoDB]
237
+
238
+ # @!method ec2
239
+ # @return [EC2]
240
+
241
+ # @!method emr
242
+ # @return [EMR]
243
+
244
+ # @!method elasticache
245
+ # @return [ElastiCache]
246
+
247
+ # @!method glacier
248
+ # @return [Glacier]
249
+
250
+ # @!method rds
251
+ # @return [RDS]
252
+
253
+ # @!method route_53
254
+ # @return [Route53]
255
+
256
+ # @!method simple_email_service
257
+ # @return [SimpleEmailService]
258
+
259
+ # @!method sns
260
+ # @return [SNS]
261
+
262
+ # @!method sqs
263
+ # @return [SQS]
264
+
265
+ # @!method simple_workflow
266
+ # @return [SimpleWorkflow]
267
+
268
+ # @!method simple_db
269
+ # @return [SimpleDB]
270
+
271
+ # @!method auto_scaling
272
+ # @return [AutoScaling]
273
+
274
+ # @!method cloud_formation
275
+ # @return [CloudFormation]
276
+
277
+ # @!method data_pipeline
278
+ # @return [DataPipeline]
279
+
280
+ # @!method direct_connect
281
+ # @return [DirectConnect]
282
+
283
+ # @!method elastic_beanstalk
284
+ # @return [ElasticBeanstalk]
285
+
286
+ # @!method iam
287
+ # @return [IAM]
288
+
289
+ # @!method import_export
290
+ # @return [ImportExport]
291
+
292
+ # @!method ops_works
293
+ # @return [OpsWorks]
294
+
295
+ # @!method sts
296
+ # @return [STS]
297
+
298
+ # @!method storage_gateway
299
+ # @return [StorageGateway]
300
+
301
+ # @!method elb
302
+ # @return [ELB]
303
+
304
+ # @!method elastic_transcoder
305
+ # @return [ElasticTranscoder]
306
+
307
+ # @!method redshift
308
+ # @return [Redshift]
309
+
310
+ # @!method s3
311
+ # @return [S3]
312
+
313
+ SERVICES.each_pair do |klass,svc|
314
+ define_method(svc[:ruby_name]) do |*args|
315
+ AWS.const_get(klass).new(args.first || {})
316
+ end
317
+ end
318
+
212
319
  # @api private
213
320
  @@config = nil
214
321