aws-sdk 1.4.1 → 1.5.0

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.
Files changed (193) hide show
  1. data/.yardopts +0 -1
  2. data/lib/aws/api_config/AutoScaling-2011-01-01.yml +772 -544
  3. data/lib/aws/api_config/CloudFormation-2010-05-15.yml +284 -185
  4. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +458 -738
  5. data/lib/aws/api_config/EC2-2011-12-15.yml +3502 -2653
  6. data/lib/aws/api_config/ELB-2011-08-15.yml +484 -352
  7. data/lib/aws/api_config/IAM-2010-05-08.yml +899 -711
  8. data/lib/aws/api_config/SNS-2010-03-31.yml +235 -167
  9. data/lib/aws/api_config/SQS-2011-10-01.yml +290 -251
  10. data/lib/aws/api_config/STS-2011-06-15.yml +35 -41
  11. data/lib/aws/api_config/SimpleDB-2009-04-15.yml +290 -263
  12. data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +144 -130
  13. data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +697 -1139
  14. data/lib/aws/auto_scaling/activity_collection.rb +1 -1
  15. data/lib/aws/auto_scaling/client.rb +724 -9
  16. data/lib/aws/auto_scaling/errors.rb +1 -5
  17. data/lib/aws/auto_scaling/group.rb +1 -1
  18. data/lib/aws/auto_scaling/group_collection.rb +1 -1
  19. data/lib/aws/auto_scaling/instance_collection.rb +1 -1
  20. data/lib/aws/auto_scaling/launch_configuration.rb +1 -1
  21. data/lib/aws/auto_scaling/launch_configuration_collection.rb +1 -1
  22. data/lib/aws/auto_scaling/notification_configuration_collection.rb +1 -1
  23. data/lib/aws/auto_scaling/request.rb +1 -2
  24. data/lib/aws/auto_scaling/scaling_policy_collection.rb +1 -1
  25. data/lib/aws/auto_scaling/scheduled_action_collection.rb +3 -3
  26. data/lib/aws/auto_scaling/tag_collection.rb +1 -1
  27. data/lib/aws/cloud_formation.rb +1 -18
  28. data/lib/aws/cloud_formation/client.rb +314 -8
  29. data/lib/aws/cloud_formation/errors.rb +1 -5
  30. data/lib/aws/cloud_formation/request.rb +1 -2
  31. data/lib/aws/cloud_formation/stack.rb +4 -3
  32. data/lib/aws/cloud_formation/stack_collection.rb +2 -2
  33. data/lib/aws/cloud_formation/stack_resource_collection.rb +1 -1
  34. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +2 -2
  35. data/lib/aws/cloud_formation/stack_summary_collection.rb +1 -1
  36. data/lib/aws/core.rb +29 -14
  37. data/lib/aws/core/async_handle.rb +11 -12
  38. data/lib/aws/core/client.rb +112 -102
  39. data/lib/aws/core/client/query_json.rb +110 -0
  40. data/lib/aws/core/client/query_xml.rb +122 -0
  41. data/lib/aws/core/data.rb +242 -0
  42. data/lib/aws/core/http/request.rb +7 -4
  43. data/lib/aws/core/lazy_error_classes.rb +60 -38
  44. data/lib/aws/core/option_grammar.rb +1 -0
  45. data/lib/aws/core/policy.rb +2 -1
  46. data/lib/aws/core/resource.rb +38 -33
  47. data/lib/aws/core/response.rb +109 -44
  48. data/lib/aws/core/signature/version_2.rb +42 -0
  49. data/lib/aws/core/signature/version_3.rb +73 -0
  50. data/lib/aws/core/signature/version_3_http.rb +72 -0
  51. data/lib/aws/core/signature/version_4.rb +138 -0
  52. data/lib/aws/core/uri_escape.rb +6 -9
  53. data/lib/aws/core/xml/frame.rb +242 -0
  54. data/lib/aws/core/xml/frame_stack.rb +85 -0
  55. data/lib/aws/core/xml/grammar.rb +299 -0
  56. data/lib/aws/core/xml/parser.rb +70 -0
  57. data/lib/aws/core/xml/root_frame.rb +65 -0
  58. data/lib/aws/core/{configured_xml_grammars.rb → xml/sax_handlers/libxml.rb} +22 -20
  59. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +55 -0
  60. data/lib/aws/core/{authorize_with_session_token.rb → xml/sax_handlers/ox.rb} +19 -7
  61. data/lib/aws/core/{configured_option_grammars.rb → xml/sax_handlers/rexml.rb} +22 -23
  62. data/lib/aws/core/xml/stub.rb +123 -0
  63. data/lib/aws/dynamo_db/batch_get.rb +1 -1
  64. data/lib/aws/dynamo_db/client.rb +796 -14
  65. data/lib/aws/dynamo_db/errors.rb +1 -38
  66. data/lib/aws/dynamo_db/item_collection.rb +29 -28
  67. data/lib/aws/dynamo_db/request.rb +3 -53
  68. data/lib/aws/dynamo_db/table.rb +6 -2
  69. data/lib/aws/ec2/attachment.rb +1 -1
  70. data/lib/aws/ec2/client.rb +3954 -9
  71. data/lib/aws/ec2/dhcp_options.rb +3 -3
  72. data/lib/aws/ec2/errors.rb +10 -4
  73. data/lib/aws/ec2/instance.rb +7 -6
  74. data/lib/aws/ec2/instance_collection.rb +2 -2
  75. data/lib/aws/ec2/key_pair_collection.rb +3 -3
  76. data/lib/aws/ec2/network_acl.rb +4 -2
  77. data/lib/aws/ec2/network_acl/entry.rb +10 -10
  78. data/lib/aws/ec2/network_interface.rb +2 -3
  79. data/lib/aws/ec2/network_interface/attachment.rb +8 -8
  80. data/lib/aws/ec2/permission_collection.rb +3 -3
  81. data/lib/aws/ec2/request.rb +1 -3
  82. data/lib/aws/ec2/resource_tag_collection.rb +4 -8
  83. data/lib/aws/ec2/route_table.rb +3 -2
  84. data/lib/aws/ec2/route_table/route.rb +7 -7
  85. data/lib/aws/ec2/security_group.rb +2 -2
  86. data/lib/aws/ec2/security_group/egress_ip_permission_collection.rb +16 -5
  87. data/lib/aws/ec2/security_group/ingress_ip_permission_collection.rb +4 -3
  88. data/lib/aws/ec2/security_group/ip_permission.rb +1 -2
  89. data/lib/aws/ec2/snapshot_collection.rb +6 -3
  90. data/lib/aws/ec2/subnet.rb +1 -1
  91. data/lib/aws/ec2/volume.rb +1 -3
  92. data/lib/aws/ec2/volume_collection.rb +2 -0
  93. data/lib/aws/elb/availability_zone_collection.rb +2 -2
  94. data/lib/aws/elb/backend_server_policy_collection.rb +1 -1
  95. data/lib/aws/elb/client.rb +513 -9
  96. data/lib/aws/elb/errors.rb +2 -6
  97. data/lib/aws/elb/instance_collection.rb +2 -2
  98. data/lib/aws/elb/request.rb +1 -1
  99. data/lib/aws/errors.rb +61 -74
  100. data/lib/aws/iam.rb +2 -3
  101. data/lib/aws/iam/client.rb +1178 -10
  102. data/lib/aws/iam/collection.rb +2 -1
  103. data/lib/aws/iam/errors.rb +1 -6
  104. data/lib/aws/iam/group.rb +8 -9
  105. data/lib/aws/iam/request.rb +1 -1
  106. data/lib/aws/iam/server_certificate_collection.rb +8 -5
  107. data/lib/aws/iam/signing_certificate.rb +1 -1
  108. data/lib/aws/iam/user.rb +2 -2
  109. data/lib/aws/iam/user_policy.rb +3 -2
  110. data/lib/aws/rails.rb +1 -2
  111. data/lib/aws/record.rb +3 -3
  112. data/lib/aws/record/abstract_base.rb +0 -3
  113. data/lib/aws/record/attributes.rb +7 -7
  114. data/lib/aws/record/model.rb +19 -19
  115. data/lib/aws/record/model/finder_methods.rb +7 -7
  116. data/lib/aws/s3/bucket.rb +7 -2
  117. data/lib/aws/s3/client.rb +391 -398
  118. data/lib/aws/s3/client/xml.rb +44 -71
  119. data/lib/aws/s3/data_options.rb +3 -2
  120. data/lib/aws/s3/errors.rb +8 -11
  121. data/lib/aws/s3/multipart_upload_collection.rb +1 -3
  122. data/lib/aws/s3/object_collection.rb +2 -1
  123. data/lib/aws/s3/object_metadata.rb +2 -2
  124. data/lib/aws/s3/paginated_collection.rb +2 -2
  125. data/lib/aws/s3/prefix_and_delimiter_collection.rb +1 -1
  126. data/lib/aws/s3/presigned_post.rb +18 -17
  127. data/lib/aws/s3/request.rb +4 -3
  128. data/lib/aws/s3/s3_object.rb +8 -10
  129. data/lib/aws/simple_db/attribute.rb +2 -2
  130. data/lib/aws/simple_db/attribute_collection.rb +14 -4
  131. data/lib/aws/simple_db/client.rb +313 -14
  132. data/lib/aws/simple_db/domain.rb +1 -1
  133. data/lib/aws/simple_db/domain_collection.rb +4 -4
  134. data/lib/aws/simple_db/domain_metadata.rb +1 -1
  135. data/lib/aws/simple_db/errors.rb +14 -2
  136. data/lib/aws/simple_db/expect_condition_option.rb +1 -1
  137. data/lib/aws/simple_db/item.rb +1 -1
  138. data/lib/aws/simple_db/item_collection.rb +9 -9
  139. data/lib/aws/simple_db/item_data.rb +9 -6
  140. data/lib/aws/simple_db/request.rb +1 -1
  141. data/lib/aws/simple_email_service.rb +8 -7
  142. data/lib/aws/simple_email_service/client.rb +174 -9
  143. data/lib/aws/simple_email_service/email_address_collection.rb +0 -1
  144. data/lib/aws/simple_email_service/errors.rb +1 -5
  145. data/lib/aws/simple_email_service/quotas.rb +8 -6
  146. data/lib/aws/simple_email_service/request.rb +7 -1
  147. data/lib/aws/simple_workflow/client.rb +1383 -6
  148. data/lib/aws/simple_workflow/decision_task.rb +1 -3
  149. data/lib/aws/simple_workflow/errors.rb +1 -38
  150. data/lib/aws/simple_workflow/history_event_collection.rb +2 -2
  151. data/lib/aws/simple_workflow/request.rb +5 -49
  152. data/lib/aws/simple_workflow/type.rb +1 -1
  153. data/lib/aws/simple_workflow/type_collection.rb +4 -3
  154. data/lib/aws/simple_workflow/workflow_execution_collection.rb +2 -2
  155. data/lib/aws/sns/client.rb +345 -9
  156. data/lib/aws/sns/errors.rb +1 -5
  157. data/lib/aws/sns/request.rb +1 -2
  158. data/lib/aws/sns/subscription_collection.rb +2 -2
  159. data/lib/aws/sns/topic.rb +15 -14
  160. data/lib/aws/sns/topic_collection.rb +1 -1
  161. data/lib/aws/sqs/client.rb +334 -9
  162. data/lib/aws/sqs/errors.rb +1 -6
  163. data/lib/aws/sqs/queue.rb +20 -21
  164. data/lib/aws/sqs/queue_collection.rb +3 -3
  165. data/lib/aws/sqs/request.rb +2 -2
  166. data/lib/aws/sts.rb +8 -10
  167. data/lib/aws/sts/client.rb +67 -10
  168. data/lib/aws/sts/errors.rb +1 -5
  169. data/lib/aws/sts/request.rb +1 -1
  170. data/lib/user.rb +49 -0
  171. metadata +21 -28
  172. data/lib/aws/auto_scaling/client/xml.rb +0 -32
  173. data/lib/aws/cloud_formation/client/xml.rb +0 -32
  174. data/lib/aws/core/api_config.rb +0 -44
  175. data/lib/aws/core/authorize_v2.rb +0 -39
  176. data/lib/aws/core/authorize_v3.rb +0 -38
  177. data/lib/aws/core/authorize_v4.rb +0 -149
  178. data/lib/aws/core/configured_client_methods.rb +0 -76
  179. data/lib/aws/core/configured_grammars.rb +0 -63
  180. data/lib/aws/core/configured_json_client_methods.rb +0 -74
  181. data/lib/aws/core/ignore_result_element.rb +0 -34
  182. data/lib/aws/core/json_client.rb +0 -41
  183. data/lib/aws/core/xml_grammar.rb +0 -957
  184. data/lib/aws/ec2/client/xml.rb +0 -175
  185. data/lib/aws/elb/client/xml.rb +0 -33
  186. data/lib/aws/elb/listener_spec.rb +0 -14
  187. data/lib/aws/iam/client/xml.rb +0 -34
  188. data/lib/aws/simple_db/client/options.rb +0 -32
  189. data/lib/aws/simple_db/client/xml.rb +0 -63
  190. data/lib/aws/simple_email_service/client/xml.rb +0 -34
  191. data/lib/aws/sns/client/xml.rb +0 -34
  192. data/lib/aws/sqs/client/xml.rb +0 -33
  193. data/lib/aws/sts/client/xml.rb +0 -34
@@ -18,69 +18,37 @@ module AWS
18
18
  # @private
19
19
  module XML
20
20
 
21
- Error = Core::XmlGrammar.customize { }
21
+ BaseGrammar = Core::XML::Grammar.new({}, :inflect_rename => true)
22
22
 
23
- module HasCommonPrefixes
24
-
25
- def self.included(mod)
26
- mod.module_eval do
27
- element "CommonPrefixes" do
28
- collect_values
29
- format_value {|value| value.prefix }
30
- end
31
- end
32
- end
33
-
34
- end
35
-
36
- ListBuckets = Core::XmlGrammar.customize do
23
+ ListBuckets = BaseGrammar.customize do
37
24
  element "Buckets" do
38
- element "Bucket" do
39
- collect_values
40
- end
41
- format_value { |value| super(value.bucket) }
25
+ list "Bucket"
42
26
  end
43
27
  end
44
28
 
45
- GetBucketAcl = GetObjectAcl = Core::XmlGrammar.customize do
46
- wrapper(:acl,
47
- :for => ["Owner",
48
- "AccessControlList"]) do
49
- construct_value { AccessControlList.new }
50
- end
51
-
52
- element "Owner" do
53
- construct_value { AccessControlList::Owner.new }
54
- end
55
-
29
+ GetBucketAcl = GetObjectAcl = BaseGrammar.customize do
56
30
  element "AccessControlList" do
31
+ ignore
57
32
  element "Grant" do
58
- collect_values
59
- construct_value { AccessControlList::Grant.new }
60
-
33
+ rename :grants
34
+ list
61
35
  element "Grantee" do
62
- construct_value { AccessControlList::Grantee.new }
63
36
  element "ID" do
64
37
  rename :canonical_user_id
65
38
  end
66
39
  end
67
-
68
40
  element "Permission" do
69
41
  symbol_value
70
42
  end
71
43
  end
72
-
73
- format_value { |value| super(value.grant) }
74
- rename :grants
75
-
76
44
  end
77
45
  end
78
46
 
79
- ListObjects = Core::XmlGrammar.customize do
47
+ ListObjects = BaseGrammar.customize do
80
48
 
81
- element("Name") { rename "bucket_name" }
49
+ element("Name") { rename :bucket_name }
82
50
  element("MaxKeys") { integer_value }
83
- element("IsTruncated") { rename "truncated"; boolean_value }
51
+ element("IsTruncated") { rename :truncated; boolean_value }
84
52
  element("Delimiter") { force }
85
53
 
86
54
  element("Contents") do
@@ -92,64 +60,66 @@ module AWS
92
60
  element("Key") { }
93
61
  element("Size") { }
94
62
  element("StorageClass") { }
95
- element("ETag") { rename "etag" }
63
+ element("ETag") { rename :etag }
96
64
 
97
- # DateTime is more general, Time is much faster to construct
98
65
  element("LastModified") { time_value }
99
66
  end
100
67
 
101
- include HasCommonPrefixes
68
+ element "CommonPrefixes" do
69
+ collect_values
70
+ end
102
71
 
103
72
  end
104
73
 
105
- GetBucketVersioning = Core::XmlGrammar.customize do
74
+ GetBucketVersioning = BaseGrammar.customize do
75
+ default_value :status, :unversioned
106
76
  element("Status") do
107
77
  symbol_value
108
- format_value {|value| super(value) || :unversioned }
109
- force
110
78
  end
111
79
  end
112
80
 
113
- ListObjectVersions = Core::XmlGrammar.customize do
81
+ ListObjectVersions = BaseGrammar.customize do
114
82
 
115
83
  element("MaxKeys") { integer_value }
116
- element("IsTruncated") { rename "Truncated"; boolean_value }
84
+ element("IsTruncated") { rename :truncated; boolean_value }
117
85
  element("NextKeyMarker") { force }
118
86
  element("NextVersionIdMarker") { force }
119
87
 
120
88
  %w(DeleteMarker Version).each do |element_name|
121
89
  element(element_name) do
122
90
  collect_values
123
- rename("versions")
124
- element("IsLatest") { rename "latest"; boolean_value }
91
+ rename(:versions)
92
+ element("IsLatest") { rename :latest; boolean_value }
125
93
  element("LastModified") { datetime_value }
126
- element("ETag") { rename "etag" }
94
+ element("ETag") { rename :etag }
127
95
  element("Size") { integer_value }
128
96
  element("StorageClass") { symbol_value }
129
97
  end
130
98
  end
131
99
 
132
100
  element "DeleteMarker" do
133
- add_method(:delete_marker?) { true }
134
- add_method(:version?) { false }
101
+ default_value(:delete_marker, true)
102
+ default_value(:version, false)
135
103
  end
136
104
 
137
105
  element "Version" do
138
- add_method(:delete_marker?) { false }
139
- add_method(:version?) { true }
106
+ default_value(:delete_marker, false)
107
+ default_value(:version, true)
140
108
  end
141
109
 
142
- include HasCommonPrefixes
110
+ element "CommonPrefixes" do
111
+ collect_values
112
+ end
143
113
 
144
114
  end
145
115
 
146
- # default behavior is good enough
147
- InitiateMultipartUpload = Core::XmlGrammar.customize do
116
+ InitiateMultipartUpload = BaseGrammar.customize do
148
117
  element("UploadId") { force }
149
118
  end
150
119
 
151
- ListMultipartUploads = Core::XmlGrammar.customize do
152
- element("IsTruncated") { rename "Truncated"; boolean_value }
120
+ ListMultipartUploads = BaseGrammar.customize do
121
+
122
+ element("IsTruncated") { rename :truncated; boolean_value }
153
123
  element("MaxUploads") { integer_value }
154
124
  element("NextKeyMarker") { force }
155
125
  element("NextUploadIdMarker") { force }
@@ -159,23 +129,26 @@ module AWS
159
129
  element("StorageClass") { symbol_value }
160
130
  element("Initiated") { datetime_value }
161
131
  end
162
- include HasCommonPrefixes
132
+
133
+ element "CommonPrefixes" do
134
+ collect_values
135
+ end
136
+
163
137
  end
164
138
 
165
- DeleteObjects = Core::XmlGrammar.customize do
139
+ DeleteObjects = BaseGrammar.customize do
166
140
  element("Deleted") do
167
141
  element("DeleteMarker") { boolean_value }
168
142
  list
169
143
  end
170
- element("Error") { list; rename('errors') }
144
+ element("Error") { list; rename(:errors) }
171
145
  end
172
146
 
173
- # keep default behavior
174
- CompleteMultipartUpload = Core::XmlGrammar.customize
147
+ CompleteMultipartUpload = BaseGrammar.customize
175
148
 
176
- ListParts = Core::XmlGrammar.customize do
149
+ ListParts = BaseGrammar.customize do
177
150
  element("StorageClass") { symbol_value }
178
- element("IsTruncated") { rename "Truncated"; boolean_value }
151
+ element("IsTruncated") { rename :truncated; boolean_value }
179
152
  element("MaxParts") { integer_value }
180
153
  element("PartNumberMarker") { integer_value }
181
154
  element("NextPartNumberMarker") { integer_value }
@@ -188,10 +161,10 @@ module AWS
188
161
  end
189
162
  end
190
163
 
191
- GetBucketLifecycleConfiguration = Core::XmlGrammar.customize do
164
+ GetBucketLifecycleConfiguration = BaseGrammar.customize do
192
165
  element("Rule") do
193
166
  list
194
- rename("Rules")
167
+ rename(:rules)
195
168
  element("Expiration") do
196
169
  element("Days") { integer_value }
197
170
  end
@@ -15,9 +15,12 @@ require 'pathname'
15
15
 
16
16
  module AWS
17
17
  class S3
18
+
19
+ # @private
18
20
  module DataOptions
19
21
 
20
22
  protected
23
+
21
24
  def data_stream_from options, &block
22
25
 
23
26
  validate_data!(options, block)
@@ -45,7 +48,6 @@ module AWS
45
48
 
46
49
  end
47
50
 
48
- protected
49
51
  def content_length_from options
50
52
  data = options[:data]
51
53
  case
@@ -61,7 +63,6 @@ module AWS
61
63
  end
62
64
  end
63
65
 
64
- protected
65
66
  def validate_data! options, block
66
67
 
67
68
  data = options[:data]
data/lib/aws/s3/errors.rb CHANGED
@@ -31,6 +31,11 @@ module AWS
31
31
  # @private
32
32
  module Errors
33
33
 
34
+ # @private
35
+ GRAMMAR = Core::XML::Grammar.customize
36
+
37
+ extend Core::LazyErrorClasses
38
+
34
39
  class BatchDeleteError < StandardError
35
40
 
36
41
  def initialize error_counts
@@ -52,10 +57,8 @@ module AWS
52
57
 
53
58
  include AWS::Errors::ClientError
54
59
 
55
- def code; "NotModified"; end
56
-
57
60
  def initialize(req, resp)
58
- super(req, resp, "Not Modified")
61
+ super(req, resp, "NotModified", "Not Modified")
59
62
  end
60
63
 
61
64
  end
@@ -67,18 +70,12 @@ module AWS
67
70
 
68
71
  include AWS::Errors::ClientError
69
72
 
70
- def code; "NoSuchKey"; end
71
-
72
- def initialize(req, resp)
73
- super(req, resp, "No Such Key")
73
+ def initialize(req, resp, code = nil, message = nil)
74
+ super(req, resp, "NoSuchKey", "No Such Key")
74
75
  end
75
76
 
76
77
  end
77
78
 
78
- BASE_ERROR_GRAMMAR = Client::XML::Error
79
-
80
- include Core::LazyErrorClasses
81
-
82
79
  end
83
80
  end
84
81
  end
@@ -44,6 +44,7 @@ module AWS
44
44
  end
45
45
 
46
46
  protected
47
+
47
48
  def each_member_in_page(page, &block)
48
49
  super
49
50
  page.uploads.each do |u|
@@ -53,15 +54,12 @@ module AWS
53
54
  end
54
55
  end
55
56
 
56
- protected
57
57
  def list_request(options)
58
58
  client.list_multipart_uploads(options)
59
59
  end
60
60
 
61
- protected
62
61
  def limit_param; :max_uploads; end
63
62
 
64
- protected
65
63
  def pagination_markers; super + [:upload_id_marker]; end
66
64
 
67
65
  end
@@ -62,7 +62,8 @@ module AWS
62
62
  include Enumerable
63
63
  include PrefixAndDelimiterCollection
64
64
 
65
- # @param [Bucket] The S3 bucket this object collection belongs to.
65
+ # @param [Bucket] bucket The S3 bucket this object collection belongs to.
66
+ # @param [Hash] options
66
67
  def initialize(bucket, options = {})
67
68
  @bucket = bucket
68
69
  super
@@ -19,11 +19,11 @@ module AWS
19
19
 
20
20
  include Core::Model
21
21
 
22
- # @param [S3Object]
22
+ # @param [S3Object] object
23
23
  # @param [Hash] options
24
24
  # @option options [String] :version_id A specific version of the object
25
25
  # to get metadata for
26
- def initialize(object, options = {})
26
+ def initialize object, options = {}
27
27
  @object = object
28
28
  @version_id = options[:version_id]
29
29
  super
@@ -30,7 +30,7 @@ module AWS
30
30
 
31
31
  each_member_in_page(response, &block)
32
32
 
33
- response.truncated? ? next_markers(response) : nil
33
+ response.data[:truncated] ? next_markers(response) : nil
34
34
 
35
35
  end
36
36
 
@@ -62,7 +62,7 @@ module AWS
62
62
  protected
63
63
  def next_markers page
64
64
  pagination_markers.inject({}) do |markers, marker_name|
65
- if marker = page.send("next_#{marker_name}")
65
+ if marker = page.data[:"next_#{marker_name}"]
66
66
  markers[marker_name] = marker if marker
67
67
  end
68
68
  markers
@@ -29,7 +29,7 @@ module AWS
29
29
  def each_member_in_page(page, &block)
30
30
  super
31
31
  page.common_prefixes.each do |p|
32
- yield(with_prefix(p))
32
+ yield(with_prefix(p[:prefix]))
33
33
  end
34
34
  end
35
35
 
@@ -25,29 +25,30 @@ module AWS
25
25
  # stored.
26
26
  #
27
27
  # @example Form fields for uploading by file name
28
- # form = bucket.presigned_post(:key => "photos/${filename}")
29
- # form.url.to_s # => "https://mybucket.s3.amazonaws.com/"
30
- # form.fields # => { "AWSAccessKeyId" => "...", ... }
28
+ #
29
+ # form = bucket.presigned_post(:key => "photos/${filename}")
30
+ # form.url.to_s # => "https://mybucket.s3.amazonaws.com/"
31
+ # form.fields # => { "AWSAccessKeyId" => "...", ... }
31
32
  #
32
33
  # @example Generating a minimal HTML form
33
- # form = bucket.objects.myobj.presigned_post
34
- # hidden_inputs = form.fields.map do |(name, value)|
35
- # %(<input type="hidden" name="#{name}" value="#{value}" />)
36
- # end
37
- # <<-END
38
- # <form action="#{form.url}"
39
- # method="post"
40
- # enctype="multipart/form-data">
41
- # #{hidden_inputs}
42
- # <input type="file" name="file" />
43
- # </form>
44
- # END
34
+ #
35
+ # form = bucket.objects.myobj.presigned_post
36
+ # hidden_inputs = form.fields.map do |(name, value)|
37
+ # %(<input type="hidden" name="#{name}" value="#{value}" />)
38
+ # end
39
+ # <<-END
40
+ # <form action="#{form.url}" method="post" enctype="multipart/form-data">
41
+ # #{hidden_inputs}
42
+ # <input type="file" name="file" />
43
+ # </form>
44
+ # END
45
45
  #
46
46
  # @example Restricting the size of the uploaded object
47
- # bucket.presigned_post(:content_length => 1..(10*1024))
47
+ # bucket.presigned_post(:content_length => 1..(10*1024))
48
48
  #
49
49
  # @example Restricting the key prefix
50
- # bucket.presigned_post.where(:key).starts_with("photos/")
50
+ # bucket.presigned_post.where(:key).starts_with("photos/")
51
+ #
51
52
  class PresignedPost
52
53
 
53
54
  include Core::Model
@@ -22,12 +22,13 @@ module AWS
22
22
 
23
23
  include Core::UriEscape
24
24
 
25
- # @param [bucket] S3 bucket name
25
+ # @return [bucket] S3 bucket name
26
26
  attr_accessor :bucket
27
27
 
28
- # @param [String] S3 object key
28
+ # @return [String] S3 object key
29
29
  attr_accessor :key
30
30
 
31
+ # @private
31
32
  attr_accessor :body_stream
32
33
 
33
34
  def metadata= metadata
@@ -67,7 +68,7 @@ module AWS
67
68
  url_encoded_params
68
69
  end
69
70
 
70
- # @param [String, IO] The http request body. This can be a string or
71
+ # @param [String, IO] body The http request body. This can be a string or
71
72
  # any object that responds to #read and #eof? (like an IO object).
72
73
  def body= body
73
74
  @body_stream = StringIO.new(body)
@@ -204,17 +204,14 @@ module AWS
204
204
  #
205
205
  # @overload write(options = {})
206
206
  # @overload write(data, options = {})
207
- #
208
- # @param data The data to upload (see the +:data+
209
- # option).
207
+ # @param data The data to upload (see the +:data+ option).
210
208
  #
211
209
  # @param options [Hash] Additional upload options.
212
210
  #
213
211
  # @option options :data The data to upload. Valid values include:
214
- # * A string
215
212
  #
213
+ # * A string
216
214
  # * A Pathname object
217
- #
218
215
  # * Any object responding to +read+ and +eof?+; the object
219
216
  # must support the following access methods:
220
217
  # read # all at once
@@ -704,7 +701,7 @@ module AWS
704
701
  def read(options = {}, &blk)
705
702
  options[:bucket_name] = bucket.name
706
703
  options[:key] = key
707
- client.get_object(options).data
704
+ client.get_object(options).data[:data]
708
705
  end
709
706
 
710
707
  # @private
@@ -740,13 +737,14 @@ module AWS
740
737
  # @return [AccessControlList]
741
738
  #
742
739
  def acl
743
- acl = client.get_object_acl(
744
- :bucket_name => bucket.name,
745
- :key => key
746
- ).acl
740
+
741
+ resp = client.get_object_acl(:bucket_name => bucket.name, :key => key)
742
+
743
+ acl = AccessControlList.new(resp.data)
747
744
  acl.extend ACLProxy
748
745
  acl.object = self
749
746
  acl
747
+
750
748
  end
751
749
 
752
750
  # Sets the object's access control list. +acl+ can be: