aws-sdk 1.4.1 → 1.5.0

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