aws-sdk 1.5.8 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/lib/aws.rb +2 -0
  2. data/lib/aws/api_config/Route53-2012-02-29.yml +348 -0
  3. data/lib/aws/auto_scaling/client.rb +362 -588
  4. data/lib/aws/cloud_formation/client.rb +155 -224
  5. data/lib/aws/cloud_watch/client.rb +156 -229
  6. data/lib/aws/core.rb +67 -52
  7. data/lib/aws/core/client.rb +81 -82
  8. data/lib/aws/core/collection/with_limit_and_next_token.rb +2 -2
  9. data/lib/aws/core/configuration.rb +75 -72
  10. data/lib/aws/core/http/net_http_handler.rb +3 -3
  11. data/lib/aws/core/http/request.rb +107 -138
  12. data/lib/aws/core/inflection.rb +3 -3
  13. data/lib/aws/core/json_client.rb +106 -0
  14. data/lib/aws/core/option_grammar.rb +10 -1
  15. data/lib/aws/core/options/validator.rb +140 -0
  16. data/lib/aws/core/options/xml_serializer.rb +98 -0
  17. data/lib/aws/core/query_client.rb +131 -0
  18. data/lib/aws/core/rest_client.rb +90 -0
  19. data/lib/aws/core/rest_client/input_handler.rb +145 -0
  20. data/lib/aws/core/rest_client/output_handler.rb +43 -0
  21. data/lib/aws/core/signature/version_2.rb +7 -7
  22. data/lib/aws/core/signature/version_3.rb +5 -1
  23. data/lib/aws/core/signature/version_3_https.rb +51 -0
  24. data/lib/aws/core/signature/version_4.rb +5 -22
  25. data/lib/aws/core/signer.rb +1 -1
  26. data/lib/aws/core/uri_escape.rb +2 -0
  27. data/lib/aws/core/xml/frame.rb +8 -8
  28. data/lib/aws/core/xml/grammar.rb +8 -3
  29. data/lib/aws/dynamo_db/client.rb +600 -662
  30. data/lib/aws/ec2/client.rb +2688 -3492
  31. data/lib/aws/ec2/request.rb +0 -1
  32. data/lib/aws/elb/client.rb +280 -407
  33. data/lib/aws/emr/client.rb +7 -7
  34. data/lib/aws/iam/client.rb +822 -1268
  35. data/lib/aws/route_53.rb +71 -0
  36. data/lib/aws/route_53/client.rb +272 -0
  37. data/lib/aws/route_53/config.rb +18 -0
  38. data/lib/aws/route_53/errors.rb +22 -0
  39. data/lib/aws/route_53/request.rb +23 -0
  40. data/lib/aws/s3/object_version_collection.rb +6 -6
  41. data/lib/aws/s3/paginated_collection.rb +1 -1
  42. data/lib/aws/s3/request.rb +10 -5
  43. data/lib/aws/simple_db/client.rb +184 -234
  44. data/lib/aws/simple_email_service/client.rb +147 -238
  45. data/lib/aws/simple_workflow/client.rb +997 -1191
  46. data/lib/aws/sns/client.rb +176 -264
  47. data/lib/aws/sqs/client.rb +162 -253
  48. data/lib/aws/sqs/queue.rb +1 -1
  49. data/lib/aws/sqs/request.rb +4 -0
  50. data/lib/aws/sts/client.rb +57 -66
  51. metadata +95 -71
  52. data/lib/aws/core/client/query_json.rb +0 -112
  53. data/lib/aws/core/client/query_xml.rb +0 -122
@@ -714,7 +714,7 @@ module AWS
714
714
  protected
715
715
  def set_attribute(name, value)
716
716
  client.set_queue_attributes({
717
- :queue_url => url,
717
+ :queue_url => url,
718
718
  :attributes => { name => value },
719
719
  })
720
720
  end
@@ -27,6 +27,10 @@ module AWS
27
27
  full_url.host
28
28
  end
29
29
 
30
+ def uri
31
+ path
32
+ end
33
+
30
34
  private
31
35
 
32
36
  def full_url
@@ -19,7 +19,7 @@ module AWS
19
19
 
20
20
  API_VERSION = '2011-06-15'
21
21
 
22
- extend Core::Client::QueryXML
22
+ extend Core::QueryClient
23
23
 
24
24
  REGION_US_E1 = 'sts.amazonaws.com'
25
25
 
@@ -39,77 +39,68 @@ module AWS
39
39
 
40
40
  # Calls the GetFederationToken API operation.
41
41
  # @method get_federation_token(options = {})
42
- #
43
- # === Options:
44
- #
45
- # * +:name+ - *required* - (String) The name of the federated user
46
- # associated with the credentials. For information about limitations on
47
- # user names, go to Limitations on IAM Entities in Using AWS Identity
48
- # and Access Management.
49
- # * +:policy+ - (String) A policy specifying the permissions to associate
50
- # with the credentials. The caller can delegate their own permissions
51
- # by specifying a policy, and both policies will be checked when a
52
- # service call is made. For more information about how permissions work
53
- # in the context of temporary credentials, see Controlling Permissions
54
- # in Temporary Credentials in Using AWS Identity and Access Management.
55
- # * +:duration_seconds+ - (Integer) The duration, in seconds, that the
56
- # session should last. Acceptable durations for federation sessions
57
- # range from 3600s (one hour) to 129600s (36 hours), with 43200s (12
58
- # hours) as the default.
59
- #
60
- # === Response Structure:
61
- #
62
- # * +:credentials+ - (Hash)
63
- # * +:access_key_id+ - (String)
64
- # * +:secret_access_key+ - (String)
65
- # * +:session_token+ - (String)
66
- # * +:expiration+ - (Time)
67
- # * +:federated_user+ - (Hash)
68
- # * +:federated_user_id+ - (String)
69
- # * +:arn+ - (String)
70
- # * +:packed_policy_size+ - (Integer)
71
- #
42
+ # @param [Hash] options
43
+ # * +:name+ - *required* - (String) The name of the federated user
44
+ # associated with the credentials. For information about limitations
45
+ # on user names, go to Limitations on IAM Entities in Using AWS
46
+ # Identity and Access Management.
47
+ # * +:policy+ - (String) A policy specifying the permissions to
48
+ # associate with the credentials. The caller can delegate their own
49
+ # permissions by specifying a policy, and both policies will be
50
+ # checked when a service call is made. For more information about how
51
+ # permissions work in the context of temporary credentials, see
52
+ # Controlling Permissions in Temporary Credentials in Using AWS
53
+ # Identity and Access Management.
54
+ # * +:duration_seconds+ - (Integer) The duration, in seconds, that the
55
+ # session should last. Acceptable durations for federation sessions
56
+ # range from 3600s (one hour) to 129600s (36 hours), with 43200s (12
57
+ # hours) as the default.
72
58
  # @return [Core::Response]
73
- #
59
+ # The #data method of the response object returns
60
+ # a hash with the following structure:
61
+ # * +:credentials+ - (Hash)
62
+ # * +:access_key_id+ - (String)
63
+ # * +:secret_access_key+ - (String)
64
+ # * +:session_token+ - (String)
65
+ # * +:expiration+ - (Time)
66
+ # * +:federated_user+ - (Hash)
67
+ # * +:federated_user_id+ - (String)
68
+ # * +:arn+ - (String)
69
+ # * +:packed_policy_size+ - (Integer)
74
70
  define_client_method :get_federation_token, 'GetFederationToken'
75
71
 
76
72
  # Calls the GetSessionToken API operation.
77
73
  # @method get_session_token(options = {})
78
- #
79
- # === Options:
80
- #
81
- # * +:duration_seconds+ - (Integer) The duration, in seconds, that the
82
- # credentials should remain valid. Acceptable durations for IAM user
83
- # sessions range from 3600s (one hour) to 129600s (36 hours), with
84
- # 43200s (12 hours) as the default. Sessions for AWS account owners are
85
- # restricted to a maximum of 3600s (one hour).
86
- # * +:serial_number+ - (String) The identification number of the
87
- # Multi-Factor Authentication (MFA) device for the user. If the user
88
- # has an access policy requiring MFA to access resources, provide the
89
- # value here. The number is in the Security Credentials tab of the
90
- # user's details pane in the IAM console. If the user has an active MFA
91
- # device, the details pane displays a Multi-Factor Authentication
92
- # Device value such as arn:aws:iam::123456789012:mfa/user for a virtual
93
- # device or the device serial number for a hardware device.
94
- # * +:token_code+ - (String) The value provided by the MFA device. If the
95
- # user has an access policy requiring an MFA code, provide the value
96
- # here to get permission to resources as specified in the access
97
- # policy. If MFA is required, and a code not provided while requesting
98
- # a set of temporary security credentials, the user will receive an
99
- # "access denied" response when requesting resources that require MFA.
100
- # For more information, see Using Multi-Factor Authentication (MFA)
101
- # Devices with AWS in Using IAM.
102
- #
103
- # === Response Structure:
104
- #
105
- # * +:credentials+ - (Hash)
106
- # * +:access_key_id+ - (String)
107
- # * +:secret_access_key+ - (String)
108
- # * +:session_token+ - (String)
109
- # * +:expiration+ - (Time)
110
- #
74
+ # @param [Hash] options
75
+ # * +:duration_seconds+ - (Integer) The duration, in seconds, that the
76
+ # credentials should remain valid. Acceptable durations for IAM user
77
+ # sessions range from 3600s (one hour) to 129600s (36 hours), with
78
+ # 43200s (12 hours) as the default. Sessions for AWS account owners
79
+ # are restricted to a maximum of 3600s (one hour).
80
+ # * +:serial_number+ - (String) The identification number of the
81
+ # Multi-Factor Authentication (MFA) device for the user. If the user
82
+ # has an access policy requiring MFA to access resources, provide the
83
+ # value here. The number is in the Security Credentials tab of the
84
+ # user's details pane in the IAM console. If the user has an active
85
+ # MFA device, the details pane displays a Multi-Factor Authentication
86
+ # Device value such as arn:aws:iam::123456789012:mfa/user for a
87
+ # virtual device or the device serial number for a hardware device.
88
+ # * +:token_code+ - (String) The value provided by the MFA device. If
89
+ # the user has an access policy requiring an MFA code, provide the
90
+ # value here to get permission to resources as specified in the
91
+ # access policy. If MFA is required, and a code not provided while
92
+ # requesting a set of temporary security credentials, the user will
93
+ # receive an "access denied" response when requesting resources that
94
+ # require MFA. For more information, see Using Multi-Factor
95
+ # Authentication (MFA) Devices with AWS in Using IAM.
111
96
  # @return [Core::Response]
112
- #
97
+ # The #data method of the response object returns
98
+ # a hash with the following structure:
99
+ # * +:credentials+ - (Hash)
100
+ # * +:access_key_id+ - (String)
101
+ # * +:secret_access_key+ - (String)
102
+ # * +:session_token+ - (String)
103
+ # * +:expiration+ - (Time)
113
104
  define_client_method :get_session_token, 'GetSessionToken'
114
105
 
115
106
  ## end client methods ##
metadata CHANGED
@@ -1,86 +1,92 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk
3
- version: !ruby/object:Gem::Version
4
- version: 1.5.8
3
+ version: !ruby/object:Gem::Version
4
+ hash: 15
5
5
  prerelease:
6
+ segments:
7
+ - 1
8
+ - 6
9
+ - 0
10
+ version: 1.6.0
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Amazon Web Services
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-07-26 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: uuidtools
16
- requirement: !ruby/object:Gem::Requirement
17
+
18
+ date: 2012-07-30 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ version_requirements: &id001 !ruby/object:Gem::Requirement
17
22
  none: false
18
- requirements:
23
+ requirements:
19
24
  - - ~>
20
- - !ruby/object:Gem::Version
21
- version: '2.1'
25
+ - !ruby/object:Gem::Version
26
+ hash: 1
27
+ segments:
28
+ - 2
29
+ - 1
30
+ version: "2.1"
31
+ name: uuidtools
22
32
  type: :runtime
23
33
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
34
+ requirement: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ version_requirements: &id002 !ruby/object:Gem::Requirement
25
37
  none: false
26
- requirements:
38
+ requirements:
27
39
  - - ~>
28
- - !ruby/object:Gem::Version
29
- version: '2.1'
30
- - !ruby/object:Gem::Dependency
40
+ - !ruby/object:Gem::Version
41
+ hash: 5
42
+ segments:
43
+ - 0
44
+ - 7
45
+ version: "0.7"
31
46
  name: httparty
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ~>
36
- - !ruby/object:Gem::Version
37
- version: '0.7'
38
47
  type: :runtime
39
48
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
49
+ requirement: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ version_requirements: &id003 !ruby/object:Gem::Requirement
41
52
  none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- version: '0.7'
46
- - !ruby/object:Gem::Dependency
47
- name: nokogiri
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ hash: 15
57
+ segments:
58
+ - 1
59
+ - 4
60
+ - 4
53
61
  version: 1.4.4
62
+ name: nokogiri
54
63
  type: :runtime
55
64
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
65
+ requirement: *id003
66
+ - !ruby/object:Gem::Dependency
67
+ version_requirements: &id004 !ruby/object:Gem::Requirement
57
68
  none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: 1.4.4
62
- - !ruby/object:Gem::Dependency
63
- name: json
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
69
+ requirements:
67
70
  - - ~>
68
- - !ruby/object:Gem::Version
69
- version: '1.4'
71
+ - !ruby/object:Gem::Version
72
+ hash: 7
73
+ segments:
74
+ - 1
75
+ - 4
76
+ version: "1.4"
77
+ name: json
70
78
  type: :runtime
71
79
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: '1.4'
80
+ requirement: *id004
78
81
  description: AWS SDK for Ruby
79
82
  email:
80
83
  executables: []
84
+
81
85
  extensions: []
86
+
82
87
  extra_rdoc_files: []
83
- files:
88
+
89
+ files:
84
90
  - ca-bundle.crt
85
91
  - rails/init.rb
86
92
  - lib/aws/auto_scaling/activity.rb
@@ -137,8 +143,6 @@ files:
137
143
  - lib/aws/core/async_handle.rb
138
144
  - lib/aws/core/autoloader.rb
139
145
  - lib/aws/core/cacheable.rb
140
- - lib/aws/core/client/query_json.rb
141
- - lib/aws/core/client/query_xml.rb
142
146
  - lib/aws/core/client.rb
143
147
  - lib/aws/core/collection/simple.rb
144
148
  - lib/aws/core/collection/with_limit_and_next_token.rb
@@ -155,21 +159,29 @@ files:
155
159
  - lib/aws/core/http/response.rb
156
160
  - lib/aws/core/indifferent_hash.rb
157
161
  - lib/aws/core/inflection.rb
162
+ - lib/aws/core/json_client.rb
158
163
  - lib/aws/core/lazy_error_classes.rb
159
164
  - lib/aws/core/log_formatter.rb
160
165
  - lib/aws/core/meta_utils.rb
161
166
  - lib/aws/core/model.rb
162
167
  - lib/aws/core/naming.rb
163
168
  - lib/aws/core/option_grammar.rb
169
+ - lib/aws/core/options/validator.rb
170
+ - lib/aws/core/options/xml_serializer.rb
164
171
  - lib/aws/core/page_result.rb
165
172
  - lib/aws/core/policy.rb
173
+ - lib/aws/core/query_client.rb
166
174
  - lib/aws/core/resource.rb
167
175
  - lib/aws/core/resource_cache.rb
168
176
  - lib/aws/core/response.rb
169
177
  - lib/aws/core/response_cache.rb
178
+ - lib/aws/core/rest_client/input_handler.rb
179
+ - lib/aws/core/rest_client/output_handler.rb
180
+ - lib/aws/core/rest_client.rb
170
181
  - lib/aws/core/service_interface.rb
171
182
  - lib/aws/core/signature/version_2.rb
172
183
  - lib/aws/core/signature/version_3.rb
184
+ - lib/aws/core/signature/version_3_https.rb
173
185
  - lib/aws/core/signature/version_4.rb
174
186
  - lib/aws/core/signer.rb
175
187
  - lib/aws/core/uri_escape.rb
@@ -362,6 +374,11 @@ files:
362
374
  - lib/aws/record/validators/numericality.rb
363
375
  - lib/aws/record/validators/presence.rb
364
376
  - lib/aws/record.rb
377
+ - lib/aws/route_53/client.rb
378
+ - lib/aws/route_53/config.rb
379
+ - lib/aws/route_53/errors.rb
380
+ - lib/aws/route_53/request.rb
381
+ - lib/aws/route_53.rb
365
382
  - lib/aws/s3/access_control_list.rb
366
383
  - lib/aws/s3/acl_object.rb
367
384
  - lib/aws/s3/acl_options.rb
@@ -491,6 +508,7 @@ files:
491
508
  - lib/aws/api_config/ELB-2011-08-15.yml
492
509
  - lib/aws/api_config/EMR-2009-03-31.yml
493
510
  - lib/aws/api_config/IAM-2010-05-08.yml
511
+ - lib/aws/api_config/Route53-2012-02-29.yml
494
512
  - lib/aws/api_config/SimpleDB-2009-04-15.yml
495
513
  - lib/aws/api_config/SimpleEmailService-2010-12-01.yml
496
514
  - lib/aws/api_config/SimpleWorkflow-2012-01-25.yml
@@ -503,31 +521,37 @@ files:
503
521
  - NOTICE.txt
504
522
  - LICENSE.txt
505
523
  homepage: http://aws.amazon.com/sdkforruby
506
- licenses:
524
+ licenses:
507
525
  - Apache 2.0
508
526
  post_install_message:
509
527
  rdoc_options: []
510
- require_paths:
528
+
529
+ require_paths:
511
530
  - lib
512
- required_ruby_version: !ruby/object:Gem::Requirement
531
+ required_ruby_version: !ruby/object:Gem::Requirement
513
532
  none: false
514
- requirements:
515
- - - ! '>='
516
- - !ruby/object:Gem::Version
517
- version: '0'
518
- segments:
533
+ requirements:
534
+ - - ">="
535
+ - !ruby/object:Gem::Version
536
+ hash: 3
537
+ segments:
519
538
  - 0
520
- hash: -3495806020275811726
521
- required_rubygems_version: !ruby/object:Gem::Requirement
539
+ version: "0"
540
+ required_rubygems_version: !ruby/object:Gem::Requirement
522
541
  none: false
523
- requirements:
524
- - - ! '>='
525
- - !ruby/object:Gem::Version
526
- version: '0'
542
+ requirements:
543
+ - - ">="
544
+ - !ruby/object:Gem::Version
545
+ hash: 3
546
+ segments:
547
+ - 0
548
+ version: "0"
527
549
  requirements: []
550
+
528
551
  rubyforge_project:
529
- rubygems_version: 1.8.24
552
+ rubygems_version: 1.8.21
530
553
  signing_key:
531
554
  specification_version: 3
532
555
  summary: AWS SDK for Ruby
533
556
  test_files: []
557
+
@@ -1,112 +0,0 @@
1
- # Copyright 2011-2012 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.
13
-
14
- require 'json'
15
-
16
- module AWS
17
- module Core
18
- class Client
19
-
20
- # When a client class extends this module, its API configuration is
21
- # parsed. For each operation in the API configuration, one client
22
- # method is added.
23
- #
24
- # Clients extending QueryJSON all have in common their method of
25
- # serializing request (input) parameters and parsing response
26
- # (output) JSON.
27
- #
28
- module QueryJSON
29
-
30
- def self.extended base
31
- base.send(:include, ErrorParser)
32
- base.send(:define_client_methods)
33
- end
34
-
35
- # @return [Hash<Symbol,OptionGrammar>] Returns a hash option
36
- # parsers. Hash keys are client method names and hash
37
- # values are {OptionGrammar} objects.
38
- # @private
39
- def option_parsers
40
- @option_parsers ||= {}
41
- end
42
-
43
- protected
44
-
45
- # Enumerates through the operations specified in the API
46
- # configuration (yaml configuration file found in lib/api_config/)
47
- # and defines one request method per operation.
48
- def define_client_methods
49
- api_config[:operations].each do |op|
50
-
51
- method_name = op[:method]
52
-
53
- option_parsers[method_name] = OptionGrammar.customize(op[:inputs])
54
-
55
- end
56
- end
57
-
58
- def define_client_method method_name, operation
59
- add_client_request_method(method_name) do
60
-
61
- configure_request do |request, options|
62
-
63
- parser = self.class.option_parsers[method_name]
64
- x_amz_target = self.class::TARGET_PREFIX + operation
65
-
66
- request.headers["content-type"] = "application/x-amz-json-1.0"
67
- request.headers["x-amz-target"] = x_amz_target
68
- request.body = parser.to_json(options)
69
-
70
- end
71
-
72
- process_response do |response|
73
- response_body = response.http_response.body
74
- response_body = "{}" if response_body == ""
75
- data = JSON.load(response_body)
76
- MetaUtils.extend_method(response, :data) { data }
77
- end
78
-
79
- simulate_response do |response|
80
- data = {}
81
- MetaUtils.extend_method(response, :data) { data }
82
- end
83
-
84
- end
85
- end
86
-
87
- module ErrorParser
88
-
89
- def extract_error_details response
90
- if
91
- response.http_response.status >= 300 and
92
- body = response.http_response.body and
93
- json = (JSON.load(body) rescue nil) and
94
- type = json["__type"] and
95
- matches = type.match(/\#(.*)$/)
96
- then
97
- code = matches[1]
98
- if code == 'RequestEntityTooLarge'
99
- message = 'Request body must be less than 1 MB'
100
- else
101
- message = json['message']
102
- end
103
- [code, message]
104
- end
105
- end
106
-
107
- end
108
-
109
- end
110
- end
111
- end
112
- end