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
@@ -44,7 +44,7 @@ module AWS
44
44
  # @example Setting an array of values
45
45
  # attributes['colors'].set ['red', 'blue']
46
46
  #
47
- # @param *values An array or list of attribute values to set.
47
+ # @param [String] values A list of attribute values to set.
48
48
  # @return [nil]
49
49
  def set *values
50
50
  put(values, true)
@@ -62,7 +62,7 @@ module AWS
62
62
  #
63
63
  # attributes['colors'].add ['red', 'blue']
64
64
  #
65
- # @param *values An array or list of attribute values to add.
65
+ # @param [String] values A list of attribute values to add.
66
66
  # @return [nil]
67
67
  def add *values
68
68
  put(values, false)
@@ -21,7 +21,7 @@ module AWS
21
21
  include PutAttributes
22
22
  include DeleteAttributes
23
23
 
24
- # @param [Item] The item to create an attribute collection for.
24
+ # @param [Item] item The item to create an attribute collection for.
25
25
  # @return [AttributeCollection]
26
26
  def initialize item, options = {}
27
27
  @item = item
@@ -201,12 +201,22 @@ module AWS
201
201
 
202
202
  # Delete one or more attributes from {#item}.
203
203
  #
204
- # @example Delete a list of attributes by name
204
+ # @example Delete a list of attributes by name (accepts a list or array)
205
205
  # item.attributes.delete 'size', 'color'
206
206
  # item.attributes.delete %w(size color)
207
207
  #
208
- # @param attribute_names An array or list of attribute names to delete.
209
- # @return [nil]
208
+ # @example Delete a specific list of attribute values
209
+ # item.attributes.delete(:color => 'red', :tags => %w(special limited))
210
+ #
211
+ # @overload delete(attributes)
212
+ # @param [Hash] attributes A hash of attribute names and values to
213
+ # delete.
214
+ # @return [nil]
215
+ #
216
+ # @overload delete(*attribute_names)
217
+ # @param [String] A list of attribute names to delete.
218
+ # @return [nil]
219
+ #
210
220
  def delete *args
211
221
  if args.size == 1 and args.first.kind_of?(Hash)
212
222
  delete_attribute_values(args.first)
@@ -11,40 +11,339 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'time'
15
-
16
14
  module AWS
17
15
  class SimpleDB
18
-
19
- # @private
20
- class Client < Core::Client
21
-
22
- AWS.register_autoloads(self, 'aws/simple_db/client') do
23
- autoload :Options, 'options'
24
- autoload :XML, 'xml'
25
- end
26
16
 
27
- include Core::ConfiguredClientMethods
17
+ # Client class for Amazon SimpleDB.
18
+ class Client < Core::Client
28
19
 
29
20
  API_VERSION = '2009-04-15'
30
21
 
22
+ extend Core::Client::QueryXML
23
+
24
+ # @private
31
25
  REGION_US_E1 = 'sdb.amazonaws.com'
26
+
27
+ # @private
32
28
  REGION_US_W1 = 'sdb.us-west-1.amazonaws.com'
29
+
30
+ # @private
33
31
  REGION_EU_W1 = 'sdb.eu-west-1.amazonaws.com'
34
- REGION_APAC_SE1 = 'sdb.ap-southeast-1.amazonaws.com'
35
32
 
36
- REQUEST_CLASS = SimpleDB::Request
33
+ # @private
34
+ REGION_APAC_SE1 = 'sdb.ap-southeast-1.amazonaws.com'
37
35
 
38
- configure_client
36
+ # @private
37
+ CACHEABLE_REQUESTS = Set[
38
+ :domain_metadata,
39
+ :get_attributes,
40
+ :list_domains,
41
+ :select,
42
+ ]
39
43
 
44
+ # @param [String] name
45
+ # @return [Boolean] Returns true if the given name is a valid
46
+ # Amazon SimpleDB domain name.
47
+ # @private
40
48
  def valid_domain_name? name
41
49
  self.class.valid_domain_name?(name)
42
50
  end
43
51
 
52
+ # @param [String] name
53
+ # @return [Boolean] Returns true if the given name is a valid
54
+ # Amazon SimpleDB domain name.
44
55
  def self.valid_domain_name? name
45
56
  name.to_s =~ /^[a-z_\-\.]{3,255}$/i ? true : false
46
57
  end
47
58
 
59
+ ## client methods ##
60
+
61
+ # Calls the BatchDeleteAttributes API operation.
62
+ # @method batch_delete_attributes(options = {})
63
+ #
64
+ # === Options:
65
+ #
66
+ # * +:domain_name+ - *required* - (String) The name of the domain in
67
+ # which the attributes are being deleted.
68
+ # * +:items+ - *required* - (Array<Hash>) A list of items on which to
69
+ # perform the operation.
70
+ # * +:name+ - *required* - (String)
71
+ # * +:attributes+ - (Array<Hash>)
72
+ # * +:name+ - *required* - (String) The name of the attribute.
73
+ # * +:value+ - *required* - (String) The value of the attribute.
74
+ #
75
+ # === Response Structure:
76
+ #
77
+ # * +:response_metadata+ - (Hash)
78
+ # * +:box_usage+ - (Numeric)
79
+ # * +:response_id+ - (String)
80
+ #
81
+ # @return [Core::Response]
82
+ #
83
+ define_client_method :batch_delete_attributes, 'BatchDeleteAttributes'
84
+
85
+ # Calls the BatchPutAttributes API operation.
86
+ # @method batch_put_attributes(options = {})
87
+ #
88
+ # === Options:
89
+ #
90
+ # * +:domain_name+ - *required* - (String) The name of the domain in
91
+ # which the attributes are being stored.
92
+ # * +:items+ - *required* - (Array<Hash>) A list of items on which to
93
+ # perform the operation.
94
+ # * +:name+ - *required* - (String) The name of the replaceable item.
95
+ # * +:attributes+ - *required* - (Array<Hash>) The list of attributes
96
+ # for a replaceable item.
97
+ # * +:name+ - *required* - (String) The name of the replaceable
98
+ # attribute.
99
+ # * +:value+ - *required* - (String) The value of the replaceable
100
+ # attribute.
101
+ # * +:replace+ - (Boolean) A flag specifying whether or not to
102
+ # replace the attribute/value pair or to add a new attribute/value
103
+ # pair. The default setting is +false+ .
104
+ #
105
+ # === Response Structure:
106
+ #
107
+ # * +:response_metadata+ - (Hash)
108
+ # * +:box_usage+ - (Numeric)
109
+ # * +:response_id+ - (String)
110
+ #
111
+ # @return [Core::Response]
112
+ #
113
+ define_client_method :batch_put_attributes, 'BatchPutAttributes'
114
+
115
+ # Calls the CreateDomain API operation.
116
+ # @method create_domain(options = {})
117
+ #
118
+ # === Options:
119
+ #
120
+ # * +:domain_name+ - *required* - (String) The name of the domain to
121
+ # create. The name can range between 3 and 255 characters and can
122
+ # contain the following characters: a-z, A-Z, 0-9, '_', '-', and '.'.
123
+ #
124
+ # === Response Structure:
125
+ #
126
+ # * +:response_metadata+ - (Hash)
127
+ # * +:box_usage+ - (Numeric)
128
+ # * +:response_id+ - (String)
129
+ #
130
+ # @return [Core::Response]
131
+ #
132
+ define_client_method :create_domain, 'CreateDomain'
133
+
134
+ # Calls the DeleteAttributes API operation.
135
+ # @method delete_attributes(options = {})
136
+ #
137
+ # === Options:
138
+ #
139
+ # * +:domain_name+ - *required* - (String) The name of the domain in
140
+ # which to perform the operation.
141
+ # * +:item_name+ - *required* - (String) The name of the item. Similar to
142
+ # rows on a spreadsheet, items represent individual objects that
143
+ # contain one or more value-attribute pairs.
144
+ # * +:attributes+ - (Array<Hash>) A list of Attributes. Similar to
145
+ # columns on a spreadsheet, attributes represent categories of data
146
+ # that can be assigned to items.
147
+ # * +:name+ - *required* - (String) The name of the attribute.
148
+ # * +:value+ - (String) The value of the attribute.
149
+ # * +:expected+ - (Hash) The update condition which, if specified,
150
+ # determines whether the specified attributes will be deleted or not.
151
+ # The update condition must be satisfied in order for this request to
152
+ # be processed and the attributes to be deleted.
153
+ # * +:name+ - (String) The name of the attribute involved in the
154
+ # condition.
155
+ # * +:value+ - (String) The value of an attribute. This value can only
156
+ # be specified when the Exists parameter is equal to +true+ .
157
+ # * +:exists+ - (Boolean) A value specifying whether or not the
158
+ # specified attribute must exist with the specified value in order
159
+ # for the update condition to be satisfied. Specify +true+ if the
160
+ # attribute must exist for the update condition to be satisfied.
161
+ # Specify +false+ if the attribute should not exist in order for the
162
+ # update condition to be satisfied.
163
+ #
164
+ # === Response Structure:
165
+ #
166
+ # * +:response_metadata+ - (Hash)
167
+ # * +:box_usage+ - (Numeric)
168
+ # * +:response_id+ - (String)
169
+ #
170
+ # @return [Core::Response]
171
+ #
172
+ define_client_method :delete_attributes, 'DeleteAttributes'
173
+
174
+ # Calls the DeleteDomain API operation.
175
+ # @method delete_domain(options = {})
176
+ #
177
+ # === Options:
178
+ #
179
+ # * +:domain_name+ - *required* - (String) The name of the domain to
180
+ # delete.
181
+ #
182
+ # === Response Structure:
183
+ #
184
+ # * +:response_metadata+ - (Hash)
185
+ # * +:box_usage+ - (Numeric)
186
+ # * +:response_id+ - (String)
187
+ #
188
+ # @return [Core::Response]
189
+ #
190
+ define_client_method :delete_domain, 'DeleteDomain'
191
+
192
+ # Calls the DomainMetadata API operation.
193
+ # @method domain_metadata(options = {})
194
+ #
195
+ # === Options:
196
+ #
197
+ # * +:domain_name+ - *required* - (String) The name of the domain for
198
+ # which to display the metadata of.
199
+ #
200
+ # === Response Structure:
201
+ #
202
+ # * +:item_count+ - (Integer)
203
+ # * +:item_names_size_bytes+ - (Integer)
204
+ # * +:attribute_name_count+ - (Integer)
205
+ # * +:attribute_names_size_bytes+ - (Integer)
206
+ # * +:attribute_value_count+ - (Integer)
207
+ # * +:attribute_values_size_bytes+ - (Integer)
208
+ # * +:timestamp+ - (Integer)
209
+ # * +:response_metadata+ - (Hash)
210
+ # * +:box_usage+ - (Numeric)
211
+ # * +:response_id+ - (String)
212
+ #
213
+ # @return [Core::Response]
214
+ #
215
+ define_client_method :domain_metadata, 'DomainMetadata'
216
+
217
+ # Calls the GetAttributes API operation.
218
+ # @method get_attributes(options = {})
219
+ #
220
+ # === Options:
221
+ #
222
+ # * +:domain_name+ - *required* - (String) The name of the domain in
223
+ # which to perform the operation.
224
+ # * +:item_name+ - *required* - (String) The name of the item.
225
+ # * +:attribute_names+ - (Array<String>) The names of the attributes.
226
+ # * +:consistent_read+ - (Boolean) Determines whether or not strong
227
+ # consistency should be enforced when data is read from SimpleDB. If
228
+ # +true+ , any data previously written to SimpleDB will be returned.
229
+ # Otherwise, results will be consistent eventually, and the client may
230
+ # not see data that was written immediately before your read.
231
+ #
232
+ # === Response Structure:
233
+ #
234
+ # * +:attributes+ - (Array<Hash>)
235
+ # * +:name+ - (String)
236
+ # * +:alternate_name_encoding+ - (String)
237
+ # * +:value+ - (String)
238
+ # * +:alternate_value_encoding+ - (String)
239
+ # * +:response_metadata+ - (Hash)
240
+ # * +:box_usage+ - (Numeric)
241
+ # * +:response_id+ - (String)
242
+ #
243
+ # @return [Core::Response]
244
+ #
245
+ define_client_method :get_attributes, 'GetAttributes'
246
+
247
+ # Calls the ListDomains API operation.
248
+ # @method list_domains(options = {})
249
+ #
250
+ # === Options:
251
+ #
252
+ # * +:max_number_of_domains+ - (Integer) The maximum number of domain
253
+ # names you want returned. The range is 1 to 100. The default setting
254
+ # is 100.
255
+ # * +:next_token+ - (String) A string informing Amazon SimpleDB where to
256
+ # start the next list of domain names.
257
+ #
258
+ # === Response Structure:
259
+ #
260
+ # * +:domain_names+ - (Array<String>)
261
+ # * +:next_token+ - (String)
262
+ # * +:response_metadata+ - (Hash)
263
+ # * +:box_usage+ - (Numeric)
264
+ # * +:response_id+ - (String)
265
+ #
266
+ # @return [Core::Response]
267
+ #
268
+ define_client_method :list_domains, 'ListDomains'
269
+
270
+ # Calls the PutAttributes API operation.
271
+ # @method put_attributes(options = {})
272
+ #
273
+ # === Options:
274
+ #
275
+ # * +:domain_name+ - *required* - (String) The name of the domain in
276
+ # which to perform the operation.
277
+ # * +:item_name+ - *required* - (String) The name of the item.
278
+ # * +:attributes+ - *required* - (Array<Hash>) The list of attributes.
279
+ # * +:name+ - *required* - (String) The name of the replaceable
280
+ # attribute.
281
+ # * +:value+ - *required* - (String) The value of the replaceable
282
+ # attribute.
283
+ # * +:replace+ - (Boolean) A flag specifying whether or not to replace
284
+ # the attribute/value pair or to add a new attribute/value pair. The
285
+ # default setting is +false+ .
286
+ # * +:expected+ - (Hash) The update condition which, if specified,
287
+ # determines whether the specified attributes will be updated or not.
288
+ # The update condition must be satisfied in order for this request to
289
+ # be processed and the attributes to be updated.
290
+ # * +:name+ - (String) The name of the attribute involved in the
291
+ # condition.
292
+ # * +:value+ - (String) The value of an attribute. This value can only
293
+ # be specified when the Exists parameter is equal to +true+ .
294
+ # * +:exists+ - (Boolean) A value specifying whether or not the
295
+ # specified attribute must exist with the specified value in order
296
+ # for the update condition to be satisfied. Specify +true+ if the
297
+ # attribute must exist for the update condition to be satisfied.
298
+ # Specify +false+ if the attribute should not exist in order for the
299
+ # update condition to be satisfied.
300
+ #
301
+ # === Response Structure:
302
+ #
303
+ # * +:response_metadata+ - (Hash)
304
+ # * +:box_usage+ - (Numeric)
305
+ # * +:response_id+ - (String)
306
+ #
307
+ # @return [Core::Response]
308
+ #
309
+ define_client_method :put_attributes, 'PutAttributes'
310
+
311
+ # Calls the Select API operation.
312
+ # @method select(options = {})
313
+ #
314
+ # === Options:
315
+ #
316
+ # * +:select_expression+ - *required* - (String) The expression used to
317
+ # query the domain.
318
+ # * +:next_token+ - (String) A string informing Amazon SimpleDB where to
319
+ # start the next list of ItemNames.
320
+ # * +:consistent_read+ - (Boolean) Determines whether or not strong
321
+ # consistency should be enforced when data is read from SimpleDB. If
322
+ # +true+ , any data previously written to SimpleDB will be returned.
323
+ # Otherwise, results will be consistent eventually, and the client may
324
+ # not see data that was written immediately before your read.
325
+ #
326
+ # === Response Structure:
327
+ #
328
+ # * +:items+ - (Array<Hash>)
329
+ # * +:name+ - (String)
330
+ # * +:alternate_name_encoding+ - (String)
331
+ # * +:attributes+ - (Array<Hash>)
332
+ # * +:name+ - (String)
333
+ # * +:alternate_name_encoding+ - (String)
334
+ # * +:value+ - (String)
335
+ # * +:alternate_value_encoding+ - (String)
336
+ # * +:next_token+ - (String)
337
+ # * +:response_metadata+ - (Hash)
338
+ # * +:box_usage+ - (Numeric)
339
+ # * +:response_id+ - (String)
340
+ #
341
+ # @return [Core::Response]
342
+ #
343
+ define_client_method :select, 'Select'
344
+
345
+ ## end client methods ##
346
+
48
347
  end
49
348
  end
50
349
  end
@@ -33,7 +33,7 @@ module AWS
33
33
 
34
34
  include Core::Model
35
35
 
36
- # @param [String] The name of a SimpleDB domain to reference.
36
+ # @param [String] name The name of a SimpleDB domain to reference.
37
37
  def initialize(name, options = {})
38
38
  super(options)
39
39
  @name = name
@@ -86,14 +86,14 @@ module AWS
86
86
  [total_limit - received, batch_size].min :
87
87
  batch_size
88
88
 
89
- list_options = { :limit => limit }
89
+ list_options = { :max_number_of_domains => limit }
90
90
  list_options[:next_token] = next_token if next_token
91
91
  list = client.list_domains(list_options)
92
92
 
93
- next_token = list.next_token
94
- received += list.domain_names.length
93
+ next_token = list[:next_token]
94
+ received += list[:domain_names].size
95
95
 
96
- list.domain_names.each do |name|
96
+ list[:domain_names].each do |name|
97
97
  yield(domain_named(name))
98
98
  end
99
99
 
@@ -48,7 +48,7 @@ module AWS
48
48
  :timestamp,
49
49
  ]
50
50
 
51
- # @param [Domain] The domain to fetch metadata for.
51
+ # @param [Domain] domain The domain to fetch metadata for.
52
52
  # @return [DomainMetadata]
53
53
  def initialize domain, options = {}
54
54
  @domain = domain
@@ -35,8 +35,20 @@ module AWS
35
35
  # service are instances of either {ClientError} or {ServerError}.
36
36
  # @private
37
37
  module Errors
38
- BASE_ERROR_GRAMMAR = Client::XML::BaseError
39
- include Core::LazyErrorClasses
38
+
39
+ # @private
40
+ GRAMMAR = Core::XML::Grammar.customize do
41
+ element("Errors") do
42
+ ignore
43
+ element("Error") do
44
+ ignore
45
+ element("BoxUsage") { float_value }
46
+ end
47
+ end
48
+ end
49
+
50
+ extend Core::LazyErrorClasses
51
+
40
52
  end
41
53
 
42
54
  end