aws-sdk-core 2.0.0.rc15 → 2.0.0.rc16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/apis/DynamoDB.paginators.json +0 -1
  3. data/apis/EC2.resources.json +16 -0
  4. data/apis/ElasticBeanstalk.api.json +4 -1
  5. data/apis/Glacier.resources.json +5 -9
  6. data/apis/IAM.resources.json +1 -1
  7. data/apis/Kinesis.api.json +158 -0
  8. data/apis/Kinesis.paginators.json +0 -6
  9. data/apis/OpsWorks.api.json +36 -5
  10. data/apis/OpsWorks.resources.json +181 -0
  11. data/apis/S3.resources.json +13 -2
  12. data/apis/SQS.resources.json +0 -10
  13. data/bin/aws.rb +9 -0
  14. data/lib/aws.rb +30 -1
  15. data/lib/aws/api/docstrings.rb +35 -0
  16. data/lib/aws/api/documenter.rb +31 -28
  17. data/lib/aws/client.rb +83 -0
  18. data/lib/aws/credential_provider_chain.rb +3 -1
  19. data/lib/aws/errors.rb +16 -7
  20. data/lib/aws/pageable_response.rb +1 -1
  21. data/lib/aws/plugins/csd_conditional_signing.rb +5 -0
  22. data/lib/aws/plugins/response_paging.rb +9 -3
  23. data/lib/aws/plugins/s3_url_encoded_keys.rb +7 -7
  24. data/lib/aws/query/handler.rb +4 -5
  25. data/lib/aws/version.rb +1 -1
  26. data/lib/aws/waiters/errors.rb +30 -0
  27. data/lib/aws/waiters/null_provider.rb +12 -0
  28. data/lib/aws/waiters/provider.rb +54 -0
  29. data/lib/aws/waiters/waiter.rb +194 -0
  30. data/lib/aws/xml/default_list.rb +10 -0
  31. data/lib/aws/xml/parser.rb +6 -1
  32. data/lib/seahorse.rb +0 -2
  33. data/lib/seahorse/client/base.rb +45 -20
  34. data/lib/seahorse/client/handler_list.rb +7 -0
  35. data/lib/seahorse/client/param_converter.rb +2 -2
  36. data/lib/seahorse/client/plugins/restful_bindings.rb +1 -1
  37. data/lib/seahorse/client/request.rb +1 -1
  38. data/lib/seahorse/client/response.rb +0 -2
  39. data/lib/seahorse/model/shapes.rb +6 -2
  40. metadata +15 -11
  41. data/LICENSE.txt +0 -12
  42. data/README.md +0 -301
  43. data/lib/seahorse/client/plugins/api.rb +0 -11
@@ -0,0 +1,10 @@
1
+ module Aws
2
+ module Xml
3
+ # @api private
4
+ class DefaultList < Array
5
+
6
+ alias nil? empty?
7
+
8
+ end
9
+ end
10
+ end
@@ -30,7 +30,11 @@ module Aws
30
30
  target = Structure.new(structure.member_names) if target.nil?
31
31
  structure.members.each do |member_name, member_shape|
32
32
  value_key = member_key(member_shape) || member_name.to_s
33
- target[member_name] = parse_shape(member_shape, values[value_key])
33
+ if values.key?(value_key)
34
+ target[member_name] = parse_shape(member_shape, values[value_key])
35
+ elsif member_shape.is_a?(Seahorse::Model::Shapes::List)
36
+ target[member_name] = DefaultList.new
37
+ end
34
38
  end
35
39
  target
36
40
  end
@@ -78,6 +82,7 @@ module Aws
78
82
  when Seahorse::Model::Shapes::Structure then nil
79
83
  when Seahorse::Model::Shapes::Map then {}
80
84
  when Seahorse::Model::Shapes::List then []
85
+ when Seahorse::Model::Shapes::String then ''
81
86
  else nil
82
87
  end
83
88
  else
data/lib/seahorse.rb CHANGED
@@ -40,13 +40,11 @@ module Seahorse
40
40
  end
41
41
 
42
42
  module Plugins
43
- autoload :Api, 'seahorse/client/plugins/api'
44
43
  autoload :ContentLength, 'seahorse/client/plugins/content_length'
45
44
  autoload :Endpoint, 'seahorse/client/plugins/endpoint'
46
45
  autoload :JsonSimple, 'seahorse/client/plugins/json_simple'
47
46
  autoload :Logging, 'seahorse/client/plugins/logging'
48
47
  autoload :NetHttp, 'seahorse/client/plugins/net_http'
49
- autoload :OperationMethods, 'seahorse/client/plugins/operation_methods'
50
48
  autoload :ParamConversion, 'seahorse/client/plugins/param_conversion'
51
49
  autoload :ParamValidation, 'seahorse/client/plugins/param_validation'
52
50
  autoload :RaiseResponseErrors, 'seahorse/client/plugins/raise_response_errors'
@@ -6,17 +6,10 @@ module Seahorse
6
6
 
7
7
  include HandlerBuilder
8
8
 
9
- # These plugins are applied to every client and can not be removed.
10
- # @api private
11
- REQUIRED_PLUGINS = [
12
- Plugins::Api,
13
- Plugins::Endpoint,
14
- ]
15
-
16
9
  # default plugins
17
10
  @plugins = PluginList.new([
11
+ Plugins::Endpoint,
18
12
  Plugins::NetHttp,
19
- Plugins::OperationMethods,
20
13
  Plugins::ParamConversion,
21
14
  Plugins::ParamValidation,
22
15
  Plugins::RaiseResponseErrors,
@@ -25,7 +18,7 @@ module Seahorse
25
18
  # @api private
26
19
  def initialize(plugins, options)
27
20
  @config = build_config(plugins, options)
28
- @handlers = handler_list(plugins)
21
+ @handlers = build_handler_list(plugins)
29
22
  after_initialize(plugins)
30
23
  end
31
24
 
@@ -56,28 +49,64 @@ module Seahorse
56
49
  "#<#{self.class.name}>"
57
50
  end
58
51
 
52
+ # @return [Array<Symbol>] Returns a list of valid request operation
53
+ # names. These are valid arguments to {#build_request} and are also
54
+ # valid methods.
55
+ def operation_names
56
+ self.class.api.operation_names
57
+ end
58
+
59
+ # @api private
60
+ def respond_to?(method_name, *args)
61
+ if request_method?(method_name)
62
+ true
63
+ else
64
+ super
65
+ end
66
+ end
67
+
68
+ # @api private
69
+ def method_missing(method_name, *args, &block)
70
+ if request_method?(method_name)
71
+ make_request(method_name, *args, &block)
72
+ else
73
+ super
74
+ end
75
+ end
76
+
59
77
  private
60
78
 
79
+ # @return [Boolean] Returns `true` if the method name is an API operation.t
80
+ def request_method?(method_name)
81
+ operation_names.include?(method_name.to_sym)
82
+ end
83
+
84
+ # Builds and sends a request.
85
+ def make_request(name, *args, &block)
86
+ params = args[0] || {}
87
+ options = args[1] || {}
88
+ build_request(name, params).send_request(options, &block)
89
+ end
90
+
61
91
  # Constructs a {Configuration} object and gives each plugin the
62
92
  # opportunity to register options with default values.
63
93
  def build_config(plugins, options)
64
- options = options.merge(api: self.class.api) unless options[:api]
65
94
  config = Configuration.new
95
+ config.add_option(:api)
66
96
  plugins.each do |plugin|
67
97
  plugin.add_options(config) if plugin.respond_to?(:add_options)
68
98
  end
69
- config.build!(options)
99
+ config.build!(options.merge(api: self.class.api))
70
100
  end
71
101
 
72
102
  # Gives each plugin the opportunity to register handlers for this client.
73
- def handler_list(plugins)
74
- handlers = HandlerList.new
75
- plugins.each do |plugin|
103
+ def build_handler_list(plugins)
104
+ plugins.inject(HandlerList.new) do |handlers, plugin|
76
105
  if plugin.respond_to?(:add_handlers)
77
106
  plugin.add_handlers(handlers, @config)
78
107
  end
108
+ handlers
79
109
  end
80
- handlers
81
110
  end
82
111
 
83
112
  # Gives each plugin the opportunity to modify this client.
@@ -108,9 +137,6 @@ module Seahorse
108
137
  client
109
138
  end
110
139
 
111
- # Used by plugins that modify the client class.
112
- attr_reader :mutex
113
-
114
140
  # Registers a plugin with this client.
115
141
  #
116
142
  # @example Register a plugin
@@ -172,7 +198,7 @@ module Seahorse
172
198
  # @see .remove_plugin
173
199
  # @return [Array<Plugin>]
174
200
  def plugins
175
- (REQUIRED_PLUGINS + Array(@plugins)).freeze
201
+ Array(@plugins).freeze
176
202
  end
177
203
 
178
204
  # @return [Model::Api]
@@ -218,7 +244,6 @@ module Seahorse
218
244
 
219
245
  def inherited(subclass)
220
246
  subclass.instance_variable_set('@plugins', PluginList.new(@plugins))
221
- subclass.instance_variable_set("@mutex", Mutex.new)
222
247
  end
223
248
 
224
249
  end
@@ -112,6 +112,13 @@ module Seahorse
112
112
  handler_class
113
113
  end
114
114
 
115
+ # @param [Class<Handler>] handler_class
116
+ def remove(handler_class)
117
+ @entries.each do |key, entry|
118
+ @entries.delete(key) if entry.handler_class == handler_class
119
+ end
120
+ end
121
+
115
122
  # Copies handlers from the `source_list` onto the current handler list.
116
123
  # If a block is given, only the entries that return a `true` value
117
124
  # from the block will be copied.
@@ -39,7 +39,7 @@ module Seahorse
39
39
  def list(list, values)
40
40
  values = c(list, values)
41
41
  if values.is_a?(Array)
42
- values.map { |v| c(list.member, v) }
42
+ values.map { |v| member(list.member, v) }
43
43
  else
44
44
  values
45
45
  end
@@ -49,7 +49,7 @@ module Seahorse
49
49
  values = c(map, values)
50
50
  if values.is_a?(Hash)
51
51
  values.each.with_object({}) do |(key, value), hash|
52
- hash[c(map.key, key)] = c(map.value, value)
52
+ hash[member(map.key, key)] = member(map.value, value)
53
53
  end
54
54
  else
55
55
  values
@@ -54,7 +54,7 @@ module Seahorse
54
54
 
55
55
  def serialize_header_value(shape, value)
56
56
  if shape.is_a?(Model::Shapes::Timestamp)
57
- shape.format_time(value, 'rfc822')
57
+ shape.format_time(value, 'httpdate')
58
58
  else
59
59
  value.to_s
60
60
  end
@@ -79,7 +79,7 @@ module Seahorse
79
79
  @context.http_response.body =
80
80
  case target
81
81
  when Proc then BlockIO.new(&target)
82
- when String, Pathname then ManagedFile.new(target, 'wb')
82
+ when String, Pathname then ManagedFile.new(target, 'r+b')
83
83
  else target
84
84
  end
85
85
  end
@@ -1,5 +1,3 @@
1
- require 'thread'
2
-
3
1
  module Seahorse
4
2
  module Client
5
3
  class Response
@@ -68,7 +68,6 @@ module Seahorse
68
68
  @type = definition['type']
69
69
  @location = definition['location'] || 'body'
70
70
  @location_name = definition['locationName']
71
- @documentation = definition['documentation']
72
71
  @shape_map = options[:shape_map] || ShapeMap.new
73
72
  end
74
73
 
@@ -89,12 +88,16 @@ module Seahorse
89
88
  # shape references, not on the shape definition.
90
89
  attr_reader :location_name
91
90
 
92
- # @return [String, nil]
93
91
  attr_reader :documentation
94
92
 
95
93
  # @return [ShapeMap]
96
94
  attr_reader :shape_map
97
95
 
96
+ # @return [String, nil]
97
+ def documentation
98
+ @definition['documentation']
99
+ end
100
+
98
101
  # @param [String] key
99
102
  # @return [Object, nil]
100
103
  def metadata(key)
@@ -389,6 +392,7 @@ module Seahorse
389
392
  case format
390
393
  when 'iso8601' then time.utc.iso8601
391
394
  when 'rfc822' then time.utc.rfc822
395
+ when 'httpdate' then time.httpdate
392
396
  when 'unixTimestamp' then time.utc.to_i
393
397
  else
394
398
  msg = "invalid timestamp format #{format.inspect}"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.rc15
4
+ version: 2.0.0.rc16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-14 00:00:00.000000000 Z
11
+ date: 2014-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json
@@ -56,27 +56,26 @@ dependencies:
56
56
  name: jamespath
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 0.5.1
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
69
- description: Provides client libraries for AWS.
68
+ version: 0.5.1
69
+ description: Provides API clients for AWS.
70
70
  email:
71
71
  executables:
72
72
  - aws.rb
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
- - README.md
77
- - LICENSE.txt
78
76
  - endpoints.json
79
77
  - lib/aws/api/customizer.rb
78
+ - lib/aws/api/docstrings.rb
80
79
  - lib/aws/api/documenter.rb
81
80
  - lib/aws/api/operation_documenter.rb
82
81
  - lib/aws/api/operation_example.rb
@@ -148,7 +147,12 @@ files:
148
147
  - lib/aws/structure.rb
149
148
  - lib/aws/tree_hash.rb
150
149
  - lib/aws/version.rb
150
+ - lib/aws/waiters/errors.rb
151
+ - lib/aws/waiters/null_provider.rb
152
+ - lib/aws/waiters/provider.rb
153
+ - lib/aws/waiters/waiter.rb
151
154
  - lib/aws/xml/builder.rb
155
+ - lib/aws/xml/default_list.rb
152
156
  - lib/aws/xml/error_handler.rb
153
157
  - lib/aws/xml/parser.rb
154
158
  - lib/aws/xml/rest_handler.rb
@@ -175,7 +179,6 @@ files:
175
179
  - lib/seahorse/client/param_validator.rb
176
180
  - lib/seahorse/client/plugin.rb
177
181
  - lib/seahorse/client/plugin_list.rb
178
- - lib/seahorse/client/plugins/api.rb
179
182
  - lib/seahorse/client/plugins/content_length.rb
180
183
  - lib/seahorse/client/plugins/endpoint.rb
181
184
  - lib/seahorse/client/plugins/json_simple.rb
@@ -249,6 +252,7 @@ files:
249
252
  - apis/Kinesis.paginators.json
250
253
  - apis/OpsWorks.api.json
251
254
  - apis/OpsWorks.paginators.json
255
+ - apis/OpsWorks.resources.json
252
256
  - apis/RDS.api.json
253
257
  - apis/RDS.paginators.json
254
258
  - apis/RDS.waiters.json
@@ -304,6 +308,6 @@ rubyforge_project:
304
308
  rubygems_version: 2.1.11
305
309
  signing_key:
306
310
  specification_version: 4
307
- summary: AWS SDK Core
311
+ summary: AWS SDK for Ruby - Core
308
312
  test_files: []
309
313
  has_rdoc:
data/LICENSE.txt DELETED
@@ -1,12 +0,0 @@
1
- Copyright 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
-
3
- Licensed under the Apache License, Version 2.0 (the "License"). You
4
- may not use this file except in compliance with the License. A copy of
5
- the License is located at
6
-
7
- http://aws.amazon.com/apache2.0/
8
-
9
- or in the "license" file accompanying this file. This file is
10
- distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- ANY KIND, either express or implied. See the License for the specific
12
- language governing permissions and limitations under the License.
data/README.md DELETED
@@ -1,301 +0,0 @@
1
- # AWS SDK for Ruby V2 [![Build Status](https://travis-ci.org/aws/aws-sdk-core-ruby.png?branch=master)](https://travis-ci.org/aws/aws-sdk-core-ruby) [![Code Climate](https://codeclimate.com/github/aws/aws-sdk-core-ruby.png)](https://codeclimate.com/github/aws/aws-sdk-core-ruby) [![Coverage Status](https://coveralls.io/repos/aws/aws-sdk-core-ruby/badge.png?branch=master)](https://coveralls.io/r/aws/aws-sdk-core-ruby?branch=master)
2
-
3
- This library is in a developer preview period.
4
-
5
- We are working on version 2 of the official AWS SDK for Ruby. This library
6
- is the first part of our v2 strategy. AWS SDK Core is an updated set of
7
- service clients. Our goal is to make them more flexible and extensible
8
- than the clients in version 1 of the Ruby SDK.
9
-
10
- For version 1.0 of the Ruby SDK, see [aws/aws-sdk-ruby](http://github.com/aws/aws-sdk-ruby).
11
-
12
- ## Upgrade Notes
13
-
14
- During the preview period, there have been some minor backwards incompatible
15
- updates between release candidates. These changes are summarized below.
16
-
17
- ### 2.0.0.rc15 Upgrading Notes
18
-
19
- RC15 updates the `Aws::DynamoDB::Client` API operations to accept and return
20
- simple attribute values. Prior to rc14 values were specified as:
21
-
22
- { s: 'string-value' }
23
- { n: "5.0" }
24
-
25
- This update applies a plugin that allows users to specify values using simple
26
- Ruby types, such as Integer, Float, Set, String, etc.
27
-
28
- "string-value"
29
- 5.0
30
-
31
- This affects **every** DynamoDB request and response structure
32
- that accepts or returns an attribute value. To revert to the older format,
33
- disable simple attributes:
34
-
35
- # disable this new default behavior
36
- Aws::DynamoDB::Client.new(simple_attributes: false)
37
-
38
- **Please Note** - RC15 may be the final release candidate version prior to
39
- a 2.0.0 final release of `aws-sdk-core`.
40
-
41
- ### 2.0.0.rc14 Upgrading Notes
42
-
43
- RC14 simplifies the API versioning strategy. This may require small changes for
44
- users that use the API version locking options. Also, there are minor changes
45
- when configuring raw endpoints.
46
-
47
- * Versioned client classes removed, e.g. `Aws::S3::Client::V20060301.new` should
48
- be replaced with `Aws::S3::Client.new` The `:api_version` constructor option
49
- is no longer accepted.
50
-
51
- * Aws helper methods for client construction deprecated; For example,
52
- calling `Aws.s3` will generate a deprecation warning. Call `Aws::S3::Client.new`
53
- instead. Top-level helpers will be removed as of v2.0.0 final.
54
-
55
- * When configuring an `:endpoint` directly, you must now specify the
56
- HTTP scheme, e.g. "http://localhost:3000", instead of "localhost:3000".
57
- Please note, this should only be done for testing. Normally you only
58
- need to configure a `:region`.
59
-
60
- ### 2.0.0.rc11 Upgrading Notes
61
-
62
- RC 11 requires a few minor updates. These should be the final public-facing
63
- changes before 2.0.0 final.
64
-
65
- * The prefered constructor for services is now using the client
66
- class, example:
67
-
68
- # deprecated, will be removed for 2.0.0 final
69
- Aws::S3.new
70
-
71
- # preferred
72
- Aws::S3::Client.new
73
-
74
- * The `:raw_json` option for JSON protocol based services has been
75
- renamed to `:simple_json`
76
-
77
- * The short name for Aws::SimpleDB has been renamed from `sdb` to
78
- `simpledb`.
79
-
80
- ## Links of Interest
81
-
82
- * [Documentation](http://docs.amazonwebservices.com/sdkforruby/api/frames.html)
83
- * [Release Notes](http://aws.amazon.com/releasenotes/SDK/Ruby/Core)
84
- * [Issues](http://github.com/aws/aws-sdk-core-ruby/issues)
85
- * [Forums](https://forums.aws.amazon.com/forum.jspa?forumID=125)
86
- * [License](http://aws.amazon.com/apache2.0/)
87
-
88
- ## Installation
89
-
90
- You can install the AWS SDK Core from rubygems:
91
-
92
- gem install aws-sdk-core --pre
93
-
94
- If you are using Bundler, we recommend that you express a major version
95
- dependency (this library uses [semantic versioning](http://semver.org/)):
96
-
97
- gem 'aws-sdk-core', '~> 2.0'
98
-
99
- Until the final release becomes available on Rubygems, leave off the version
100
- dependency in your Gemfile so Bundler can find it.
101
-
102
- **Note:** AWS SDK Core requires Ruby 1.9.3+.
103
-
104
- ## Configuration
105
-
106
- To use the Ruby SDK, you must configure a region and your AWS account
107
- access credentials.
108
-
109
- ### Region
110
-
111
- You can export a default region to ENV:
112
-
113
- ```
114
- export AWS_REGION='us-west-2'
115
- ```
116
-
117
- Or you can configure a region in code:
118
-
119
- ```ruby
120
- # default region
121
- Aws.config[:region] = 'us-west-2'
122
-
123
- # per-service :region
124
- s3 = Aws::S3::Client.new(region:'us-east-1')
125
- ```
126
-
127
- ### Credentials
128
-
129
- Please take care to never commit credentials to source control. We
130
- strongly recommended loading credentials from an external source. By default,
131
- the Ruby SDK will attempt to load credentials from the following
132
- sources:
133
-
134
- * `ENV['AWS_ACCESS_KEY_ID']` and `ENV['AWS_SECRET_ACCESS_KEY']`
135
- * The shared credentials ini file at `HOME/.aws/credentials`
136
- * From an instance profile when running on EC2
137
-
138
- Alternatively, you can specify your credentials directly using one of the
139
- following credential classes:
140
-
141
- * `Aws::Credentials`
142
- * `Aws::SharedCredentials`
143
- * `Aws::InstanceProfileCredentials`
144
-
145
- ```ruby
146
- # default credentials
147
- Aws.config[:credentials] = Aws::SharedCredentials.new(profile_name:'myprofile')
148
-
149
- # per-service :credentials
150
- s3 = Aws::S3::Client.new(credentials: Aws::SharedCredentials.new(profile_name:'myprofile')
151
- ```
152
-
153
- ## Basic Usage
154
-
155
- To make a request, you need to construct a service client.
156
-
157
- ```ruby
158
- s3 = Aws::S3::Client.new
159
- ```
160
-
161
- Each client provides one method per API operation. Refer to the
162
- [API documentation](http://docs.amazonwebservices.com/sdkforruby/api/frames.html)
163
- for a complete list of available methods.
164
-
165
- ```ruby
166
- # get a list of buckets in Amazon S3
167
- resp = s3.list_buckets
168
- puts resp.buckets.map(&:name)
169
- ```
170
-
171
- API methods accept a request params as a hash, and return structured responses.
172
-
173
- ```ruby
174
- resp = s3.list_objects(bucket: 'aws-sdk-core', max_keys: 2)
175
- resp.contents.each do |object|
176
- puts "#{object.key} => #{object.etag}"
177
- end
178
- ```
179
-
180
- ## Paging Responses
181
-
182
- Many AWS operations limit the number of results returned with each response.
183
- A simple paging interface is provided that works with every AWS request.
184
-
185
- ```ruby
186
- # yields once per response, even works with non-paged requests
187
- s3.list_objects(bucket:'aws-sdk').each do |resp|
188
- puts resp.contents.map(&:key)
189
- end
190
- ```
191
-
192
- If you prefer to control paging yourself, all returned responses have the
193
- same helper methods:
194
-
195
- ```ruby
196
- # make a request that returns a truncated response
197
- resp = s3.list_objects(bucket:'aws-sdk')
198
-
199
- resp.last_page? #=> false
200
- resp.next_page? #=> true
201
- resp = resp.next_page # send a request for the next response page
202
- resp = resp.next_page until resp.last_page?
203
- ```
204
-
205
- ## Interactive Console
206
-
207
- AWS SDK Core ships with a REPL that acts as an interactive console. You
208
- can access the REPL by running `aws.rb` from the command line.
209
-
210
- ```ruby
211
- $ aws.rb
212
- Aws> ec2.describe_instances.reservations.first.instances.first
213
- <struct
214
- instance_id="i-1234567",
215
- image_id="ami-7654321",
216
- state=<struct code=16, name="running">,
217
- ...>
218
- ```
219
-
220
- Call `#service_classes` to get a list of available service helpers and
221
- the class they construct.
222
-
223
- ```ruby
224
- Aws> service_clients
225
- {:autoscaling=>Aws::AutoScaling::Client,
226
- :cloudformation=>Aws::CloudFormation::Client,
227
- :cloudfront=>Aws::CloudFront::Client,
228
- :cloudsearch=>Aws::CloudSearch::Client,
229
- ...
230
- :swf=>Aws::SWF::Client}
231
- ```
232
-
233
- ## Versioning
234
-
235
- This project uses [semantic versioning](http://semver.org/). When the project
236
- leaves the developer preview state, we will continue by versioning from
237
- `2.0`. Until then, all versions will be suffixed by a release candidate
238
- version.
239
-
240
- ## Supported Services
241
-
242
- | Service Name | Service Class | API Versions |
243
- | ----------------------------------- | ------------------------- | ------------------------------ |
244
- | Amazon CloudFront | CloudFront | 2014-05-31 |
245
- | Amazon CloudSearch | CloudSearch | 2013-01-01 |
246
- | Amazon CloudSearch Domain | CloudSearchDomain | 2013-01-01 |
247
- | Amazon CloudWatch | CloudWatch | 2010-08-01 |
248
- | Amazon CloudWatch Logs | CloudWatchLogs | 2014-03-28 |
249
- | Amazon Cognito Identity | CognitoIdentity | 2014-06-30 |
250
- | Amazon Cognito Sync | CognitoSync | 2014-06-30 |
251
- | Amazon DynamoDB | DynamoDB | 2012-08-10 |
252
- | Amazon Elastic Compute Cloud | EC2 | 2014-06-15 |
253
- | Amazon Elastic MapReduce | EMR | 2009-03-31 |
254
- | Amazon Elastic Transcoder | ElasticTranscoder | 2012-09-25 |
255
- | Amazon ElastiCache | ElastiCache | 2014-07-15 |
256
- | Amazon Glacier | Glacier | 2012-06-01 |
257
- | Amazon Kinesis | Kinesis | 2013-12-02 |
258
- | Amazon Redshift | Redshift | 2012-12-01 |
259
- | Amazon Relational Database Service | RDS | 2013-09-09 |
260
- | Amazon Route 53 | Route53 | 2013-04-01 |
261
- | Amazon Route 53 Domains | Route53Domains | 2014-05-15 |
262
- | Amazon Simple Email Service | SES | 2010-12-01 |
263
- | Amazon Simple Notification Service | SNS | 2010-03-31 |
264
- | Amazon Simple Queue Service | SQS | 2012-11-05 |
265
- | Amazon Simple Storage Service | S3 | 2006-03-01 |
266
- | Amazon Simple Workflow Service | SWF | 2012-01-25 |
267
- | Amazon SimpleDB | SimpleDB | 2009-04-15 |
268
- | Auto Scaling | AutoScaling | 2011-01-01 |
269
- | AWS CloudFormation | CloudFormation | 2010-05-15 |
270
- | AWS CloudTrail | CloudTrail | 2013-11-01 |
271
- | AWS Data Pipeline | DataPipeline | 2012-10-29 |
272
- | AWS Direct Connect | DirectConnect | 2012-10-25 |
273
- | AWS Elastic Beanstalk | ElasticBeanstalk | 2010-12-01 |
274
- | AWS Identity and Access Management | IAM | 2010-05-08 |
275
- | AWS Import/Export | ImportExport | 2010-06-01 |
276
- | AWS OpsWorks | OpsWorks | 2013-02-18 |
277
- | AWS Security Token Service | STS | 2011-06-15 |
278
- | AWS Storage Gateway | StorageGateway | 2013-06-30 |
279
- | AWS Support | Support | 2013-04-15 |
280
- | Elastic Load Balancing | ElasticLoadBalancing | 2012-06-01 |
281
-
282
- ## License
283
-
284
- This library is distributed under the
285
- [apache license, version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)
286
-
287
- ```no-highlight
288
- copyright 2013. amazon web services, inc. all rights reserved.
289
-
290
- licensed under the apache license, version 2.0 (the "license");
291
- you may not use this file except in compliance with the license.
292
- you may obtain a copy of the license at
293
-
294
- http://www.apache.org/licenses/license-2.0
295
-
296
- unless required by applicable law or agreed to in writing, software
297
- distributed under the license is distributed on an "as is" basis,
298
- without warranties or conditions of any kind, either express or implied.
299
- see the license for the specific language governing permissions and
300
- limitations under the license.
301
- ```