aws-sdk 1.9.1 → 1.9.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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