aws-sdk 1.32.0 → 3.0.2

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 (551) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +100 -0
  3. data/LICENSE.txt +199 -9
  4. data/VERSION +1 -0
  5. data/lib/aws-sdk.rb +2 -14
  6. metadata +22 -591
  7. data/.yardopts +0 -7
  8. data/README.md +0 -291
  9. data/bin/aws-rb +0 -169
  10. data/ca-bundle.crt +0 -3554
  11. data/endpoints.json +0 -1506
  12. data/lib/aws.rb +0 -14
  13. data/lib/aws/api_config/AutoScaling-2011-01-01.yml +0 -869
  14. data/lib/aws/api_config/CloudFormation-2010-05-15.yml +0 -358
  15. data/lib/aws/api_config/CloudFront-2013-05-12.yml +0 -2448
  16. data/lib/aws/api_config/CloudFront-2013-08-26.yml +0 -2599
  17. data/lib/aws/api_config/CloudFront-2013-09-27.yml +0 -2765
  18. data/lib/aws/api_config/CloudFront-2013-11-11.yml +0 -2886
  19. data/lib/aws/api_config/CloudSearch-2011-02-01.yml +0 -681
  20. data/lib/aws/api_config/CloudTrail-2013-11-01.yml +0 -159
  21. data/lib/aws/api_config/CloudWatch-2010-08-01.yml +0 -433
  22. data/lib/aws/api_config/DataPipeline-2012-10-29.yml +0 -422
  23. data/lib/aws/api_config/DirectConnect-2012-10-25.yml +0 -735
  24. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +0 -1168
  25. data/lib/aws/api_config/DynamoDB-2012-08-10.yml +0 -2005
  26. data/lib/aws/api_config/EC2-2013-08-15.yml +0 -4708
  27. data/lib/aws/api_config/EC2-2013-10-01.yml +0 -4726
  28. data/lib/aws/api_config/EC2-2013-10-15.yml +0 -4726
  29. data/lib/aws/api_config/ELB-2012-06-01.yml +0 -632
  30. data/lib/aws/api_config/EMR-2009-03-31.yml +0 -953
  31. data/lib/aws/api_config/ElastiCache-2013-06-15.yml +0 -1188
  32. data/lib/aws/api_config/ElasticBeanstalk-2010-12-01.yml +0 -847
  33. data/lib/aws/api_config/ElasticTranscoder-2012-09-25.yml +0 -2285
  34. data/lib/aws/api_config/Glacier-2012-06-01.yml +0 -649
  35. data/lib/aws/api_config/IAM-2010-05-08.yml +0 -1297
  36. data/lib/aws/api_config/ImportExport-2010-06-01.yml +0 -109
  37. data/lib/aws/api_config/Kinesis-2013-12-02.yml +0 -201
  38. data/lib/aws/api_config/OpsWorks-2013-02-18.yml +0 -1825
  39. data/lib/aws/api_config/RDS-2013-05-15.yml +0 -2464
  40. data/lib/aws/api_config/RDS-2013-09-09.yml +0 -2641
  41. data/lib/aws/api_config/Redshift-2012-12-01.yml +0 -2137
  42. data/lib/aws/api_config/Route53-2012-12-12.yml +0 -547
  43. data/lib/aws/api_config/SNS-2010-03-31.yml +0 -433
  44. data/lib/aws/api_config/SQS-2012-11-05.yml +0 -319
  45. data/lib/aws/api_config/STS-2011-06-15.yml +0 -147
  46. data/lib/aws/api_config/SimpleDB-2009-04-15.yml +0 -306
  47. data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +0 -346
  48. data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +0 -2388
  49. data/lib/aws/api_config/StorageGateway-2012-06-30.yml +0 -748
  50. data/lib/aws/api_config/StorageGateway-2013-06-30.yml +0 -1025
  51. data/lib/aws/api_config/Support-2013-04-15.yml +0 -426
  52. data/lib/aws/auto_scaling.rb +0 -163
  53. data/lib/aws/auto_scaling/activity.rb +0 -102
  54. data/lib/aws/auto_scaling/activity_collection.rb +0 -81
  55. data/lib/aws/auto_scaling/client.rb +0 -48
  56. data/lib/aws/auto_scaling/config.rb +0 -18
  57. data/lib/aws/auto_scaling/errors.rb +0 -22
  58. data/lib/aws/auto_scaling/group.rb +0 -421
  59. data/lib/aws/auto_scaling/group_collection.rb +0 -96
  60. data/lib/aws/auto_scaling/group_options.rb +0 -155
  61. data/lib/aws/auto_scaling/instance.rb +0 -192
  62. data/lib/aws/auto_scaling/instance_collection.rb +0 -63
  63. data/lib/aws/auto_scaling/launch_configuration.rb +0 -162
  64. data/lib/aws/auto_scaling/launch_configuration_collection.rb +0 -160
  65. data/lib/aws/auto_scaling/notification_configuration.rb +0 -89
  66. data/lib/aws/auto_scaling/notification_configuration_collection.rb +0 -183
  67. data/lib/aws/auto_scaling/scaling_policy.rb +0 -142
  68. data/lib/aws/auto_scaling/scaling_policy_collection.rb +0 -72
  69. data/lib/aws/auto_scaling/scaling_policy_options.rb +0 -65
  70. data/lib/aws/auto_scaling/scheduled_action.rb +0 -141
  71. data/lib/aws/auto_scaling/scheduled_action_collection.rb +0 -202
  72. data/lib/aws/auto_scaling/tag.rb +0 -59
  73. data/lib/aws/auto_scaling/tag_collection.rb +0 -114
  74. data/lib/aws/cloud_formation.rb +0 -272
  75. data/lib/aws/cloud_formation/client.rb +0 -48
  76. data/lib/aws/cloud_formation/config.rb +0 -18
  77. data/lib/aws/cloud_formation/errors.rb +0 -22
  78. data/lib/aws/cloud_formation/stack.rb +0 -266
  79. data/lib/aws/cloud_formation/stack_collection.rb +0 -232
  80. data/lib/aws/cloud_formation/stack_event.rb +0 -73
  81. data/lib/aws/cloud_formation/stack_event_collection.rb +0 -47
  82. data/lib/aws/cloud_formation/stack_options.rb +0 -72
  83. data/lib/aws/cloud_formation/stack_output.rb +0 -53
  84. data/lib/aws/cloud_formation/stack_resource.rb +0 -117
  85. data/lib/aws/cloud_formation/stack_resource_collection.rb +0 -83
  86. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +0 -64
  87. data/lib/aws/cloud_formation/stack_summary_collection.rb +0 -123
  88. data/lib/aws/cloud_front.rb +0 -72
  89. data/lib/aws/cloud_front/client.rb +0 -45
  90. data/lib/aws/cloud_front/config.rb +0 -18
  91. data/lib/aws/cloud_front/errors.rb +0 -22
  92. data/lib/aws/cloud_search.rb +0 -73
  93. data/lib/aws/cloud_search/client.rb +0 -36
  94. data/lib/aws/cloud_search/config.rb +0 -18
  95. data/lib/aws/cloud_search/errors.rb +0 -22
  96. data/lib/aws/cloud_trail.rb +0 -72
  97. data/lib/aws/cloud_trail/client.rb +0 -35
  98. data/lib/aws/cloud_trail/config.rb +0 -18
  99. data/lib/aws/cloud_trail/errors.rb +0 -22
  100. data/lib/aws/cloud_watch.rb +0 -118
  101. data/lib/aws/cloud_watch/alarm.rb +0 -290
  102. data/lib/aws/cloud_watch/alarm_collection.rb +0 -153
  103. data/lib/aws/cloud_watch/alarm_history_item.rb +0 -50
  104. data/lib/aws/cloud_watch/alarm_history_item_collection.rb +0 -84
  105. data/lib/aws/cloud_watch/client.rb +0 -40
  106. data/lib/aws/cloud_watch/config.rb +0 -18
  107. data/lib/aws/cloud_watch/errors.rb +0 -22
  108. data/lib/aws/cloud_watch/metric.rb +0 -135
  109. data/lib/aws/cloud_watch/metric_alarm_collection.rb +0 -160
  110. data/lib/aws/cloud_watch/metric_collection.rb +0 -129
  111. data/lib/aws/cloud_watch/metric_statistics.rb +0 -69
  112. data/lib/aws/core.rb +0 -701
  113. data/lib/aws/core/async_handle.rb +0 -90
  114. data/lib/aws/core/cacheable.rb +0 -77
  115. data/lib/aws/core/client.rb +0 -778
  116. data/lib/aws/core/collection.rb +0 -263
  117. data/lib/aws/core/collection/simple.rb +0 -82
  118. data/lib/aws/core/collection/with_limit_and_next_token.rb +0 -71
  119. data/lib/aws/core/collection/with_next_token.rb +0 -97
  120. data/lib/aws/core/configuration.rb +0 -541
  121. data/lib/aws/core/credential_providers.rb +0 -506
  122. data/lib/aws/core/data.rb +0 -247
  123. data/lib/aws/core/deprecations.rb +0 -84
  124. data/lib/aws/core/endpoints.rb +0 -37
  125. data/lib/aws/core/http/connection_pool.rb +0 -349
  126. data/lib/aws/core/http/curb_handler.rb +0 -148
  127. data/lib/aws/core/http/handler.rb +0 -89
  128. data/lib/aws/core/http/net_http_handler.rb +0 -147
  129. data/lib/aws/core/http/patch.rb +0 -102
  130. data/lib/aws/core/http/request.rb +0 -249
  131. data/lib/aws/core/http/response.rb +0 -81
  132. data/lib/aws/core/indifferent_hash.rb +0 -88
  133. data/lib/aws/core/inflection.rb +0 -56
  134. data/lib/aws/core/json_client.rb +0 -47
  135. data/lib/aws/core/json_parser.rb +0 -76
  136. data/lib/aws/core/json_request_builder.rb +0 -35
  137. data/lib/aws/core/json_response_parser.rb +0 -79
  138. data/lib/aws/core/lazy_error_classes.rb +0 -90
  139. data/lib/aws/core/log_formatter.rb +0 -428
  140. data/lib/aws/core/managed_file.rb +0 -32
  141. data/lib/aws/core/meta_utils.rb +0 -45
  142. data/lib/aws/core/model.rb +0 -57
  143. data/lib/aws/core/naming.rb +0 -30
  144. data/lib/aws/core/option_grammar.rb +0 -738
  145. data/lib/aws/core/options/json_serializer.rb +0 -82
  146. data/lib/aws/core/options/validator.rb +0 -155
  147. data/lib/aws/core/options/xml_serializer.rb +0 -118
  148. data/lib/aws/core/page_result.rb +0 -75
  149. data/lib/aws/core/policy.rb +0 -942
  150. data/lib/aws/core/query_client.rb +0 -41
  151. data/lib/aws/core/query_error_parser.rb +0 -24
  152. data/lib/aws/core/query_request_builder.rb +0 -47
  153. data/lib/aws/core/query_response_parser.rb +0 -35
  154. data/lib/aws/core/region.rb +0 -85
  155. data/lib/aws/core/region_collection.rb +0 -80
  156. data/lib/aws/core/resource.rb +0 -413
  157. data/lib/aws/core/resource_cache.rb +0 -40
  158. data/lib/aws/core/response.rb +0 -211
  159. data/lib/aws/core/response_cache.rb +0 -50
  160. data/lib/aws/core/rest_error_parser.rb +0 -24
  161. data/lib/aws/core/rest_json_client.rb +0 -40
  162. data/lib/aws/core/rest_request_builder.rb +0 -154
  163. data/lib/aws/core/rest_response_parser.rb +0 -66
  164. data/lib/aws/core/rest_xml_client.rb +0 -47
  165. data/lib/aws/core/service_interface.rb +0 -83
  166. data/lib/aws/core/signers/base.rb +0 -46
  167. data/lib/aws/core/signers/cloud_front.rb +0 -56
  168. data/lib/aws/core/signers/s3.rb +0 -159
  169. data/lib/aws/core/signers/version_2.rb +0 -72
  170. data/lib/aws/core/signers/version_3.rb +0 -86
  171. data/lib/aws/core/signers/version_3_https.rb +0 -61
  172. data/lib/aws/core/signers/version_4.rb +0 -228
  173. data/lib/aws/core/signers/version_4/chunk_signed_stream.rb +0 -191
  174. data/lib/aws/core/uri_escape.rb +0 -44
  175. data/lib/aws/core/xml/frame.rb +0 -244
  176. data/lib/aws/core/xml/frame_stack.rb +0 -85
  177. data/lib/aws/core/xml/grammar.rb +0 -306
  178. data/lib/aws/core/xml/parser.rb +0 -70
  179. data/lib/aws/core/xml/root_frame.rb +0 -65
  180. data/lib/aws/core/xml/sax_handlers/libxml.rb +0 -47
  181. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +0 -56
  182. data/lib/aws/core/xml/sax_handlers/ox.rb +0 -41
  183. data/lib/aws/core/xml/sax_handlers/rexml.rb +0 -47
  184. data/lib/aws/core/xml/stub.rb +0 -123
  185. data/lib/aws/data_pipeline.rb +0 -72
  186. data/lib/aws/data_pipeline/client.rb +0 -36
  187. data/lib/aws/data_pipeline/config.rb +0 -18
  188. data/lib/aws/data_pipeline/errors.rb +0 -20
  189. data/lib/aws/direct_connect.rb +0 -73
  190. data/lib/aws/direct_connect/client.rb +0 -36
  191. data/lib/aws/direct_connect/config.rb +0 -18
  192. data/lib/aws/direct_connect/errors.rb +0 -22
  193. data/lib/aws/dynamo_db.rb +0 -214
  194. data/lib/aws/dynamo_db/attribute_collection.rb +0 -456
  195. data/lib/aws/dynamo_db/batch_get.rb +0 -213
  196. data/lib/aws/dynamo_db/batch_write.rb +0 -252
  197. data/lib/aws/dynamo_db/binary.rb +0 -35
  198. data/lib/aws/dynamo_db/client.rb +0 -129
  199. data/lib/aws/dynamo_db/client/v20111205.rb +0 -1266
  200. data/lib/aws/dynamo_db/client/v20120810.rb +0 -1409
  201. data/lib/aws/dynamo_db/client_v2.rb +0 -44
  202. data/lib/aws/dynamo_db/config.rb +0 -24
  203. data/lib/aws/dynamo_db/errors.rb +0 -20
  204. data/lib/aws/dynamo_db/expectations.rb +0 -40
  205. data/lib/aws/dynamo_db/item.rb +0 -133
  206. data/lib/aws/dynamo_db/item_collection.rb +0 -856
  207. data/lib/aws/dynamo_db/item_data.rb +0 -31
  208. data/lib/aws/dynamo_db/keys.rb +0 -41
  209. data/lib/aws/dynamo_db/primary_key_element.rb +0 -48
  210. data/lib/aws/dynamo_db/resource.rb +0 -33
  211. data/lib/aws/dynamo_db/table.rb +0 -496
  212. data/lib/aws/dynamo_db/table_collection.rb +0 -165
  213. data/lib/aws/dynamo_db/types.rb +0 -111
  214. data/lib/aws/ec2.rb +0 -428
  215. data/lib/aws/ec2/attachment.rb +0 -135
  216. data/lib/aws/ec2/attachment_collection.rb +0 -54
  217. data/lib/aws/ec2/availability_zone.rb +0 -86
  218. data/lib/aws/ec2/availability_zone_collection.rb +0 -43
  219. data/lib/aws/ec2/block_device_mappings.rb +0 -53
  220. data/lib/aws/ec2/client.rb +0 -101
  221. data/lib/aws/ec2/collection.rb +0 -36
  222. data/lib/aws/ec2/config.rb +0 -30
  223. data/lib/aws/ec2/customer_gateway.rb +0 -90
  224. data/lib/aws/ec2/customer_gateway_collection.rb +0 -73
  225. data/lib/aws/ec2/dhcp_options.rb +0 -106
  226. data/lib/aws/ec2/dhcp_options_collection.rb +0 -87
  227. data/lib/aws/ec2/elastic_ip.rb +0 -209
  228. data/lib/aws/ec2/elastic_ip_collection.rb +0 -93
  229. data/lib/aws/ec2/errors.rb +0 -32
  230. data/lib/aws/ec2/export_task.rb +0 -120
  231. data/lib/aws/ec2/export_task_collection.rb +0 -67
  232. data/lib/aws/ec2/filtered_collection.rb +0 -87
  233. data/lib/aws/ec2/has_permissions.rb +0 -44
  234. data/lib/aws/ec2/image.rb +0 -270
  235. data/lib/aws/ec2/image_collection.rb +0 -220
  236. data/lib/aws/ec2/instance.rb +0 -803
  237. data/lib/aws/ec2/instance_collection.rb +0 -391
  238. data/lib/aws/ec2/internet_gateway.rb +0 -122
  239. data/lib/aws/ec2/internet_gateway/attachment.rb +0 -78
  240. data/lib/aws/ec2/internet_gateway_collection.rb +0 -54
  241. data/lib/aws/ec2/key_pair.rb +0 -82
  242. data/lib/aws/ec2/key_pair_collection.rb +0 -99
  243. data/lib/aws/ec2/network_acl.rb +0 -256
  244. data/lib/aws/ec2/network_acl/association.rb +0 -56
  245. data/lib/aws/ec2/network_acl/entry.rb +0 -147
  246. data/lib/aws/ec2/network_acl_collection.rb +0 -64
  247. data/lib/aws/ec2/network_interface.rb +0 -237
  248. data/lib/aws/ec2/network_interface/attachment.rb +0 -100
  249. data/lib/aws/ec2/network_interface_collection.rb +0 -103
  250. data/lib/aws/ec2/permission_collection.rb +0 -174
  251. data/lib/aws/ec2/region.rb +0 -106
  252. data/lib/aws/ec2/region_collection.rb +0 -51
  253. data/lib/aws/ec2/reserved_instances.rb +0 -56
  254. data/lib/aws/ec2/reserved_instances_collection.rb +0 -40
  255. data/lib/aws/ec2/reserved_instances_offering.rb +0 -60
  256. data/lib/aws/ec2/reserved_instances_offering_collection.rb +0 -45
  257. data/lib/aws/ec2/resource.rb +0 -161
  258. data/lib/aws/ec2/resource_tag_collection.rb +0 -211
  259. data/lib/aws/ec2/route_table.rb +0 -205
  260. data/lib/aws/ec2/route_table/association.rb +0 -119
  261. data/lib/aws/ec2/route_table/route.rb +0 -119
  262. data/lib/aws/ec2/route_table_collection.rb +0 -72
  263. data/lib/aws/ec2/security_group.rb +0 -482
  264. data/lib/aws/ec2/security_group/ip_permission.rb +0 -135
  265. data/lib/aws/ec2/security_group/ip_permission_collection.rb +0 -82
  266. data/lib/aws/ec2/security_group_collection.rb +0 -133
  267. data/lib/aws/ec2/snapshot.rb +0 -143
  268. data/lib/aws/ec2/snapshot_collection.rb +0 -131
  269. data/lib/aws/ec2/subnet.rb +0 -161
  270. data/lib/aws/ec2/subnet_collection.rb +0 -115
  271. data/lib/aws/ec2/tag.rb +0 -81
  272. data/lib/aws/ec2/tag_collection.rb +0 -107
  273. data/lib/aws/ec2/tagged_collection.rb +0 -53
  274. data/lib/aws/ec2/tagged_item.rb +0 -85
  275. data/lib/aws/ec2/volume.rb +0 -174
  276. data/lib/aws/ec2/volume_collection.rb +0 -98
  277. data/lib/aws/ec2/vpc.rb +0 -166
  278. data/lib/aws/ec2/vpc_collection.rb +0 -70
  279. data/lib/aws/ec2/vpn_connection.rb +0 -99
  280. data/lib/aws/ec2/vpn_connection/telemetry.rb +0 -49
  281. data/lib/aws/ec2/vpn_connection_collection.rb +0 -96
  282. data/lib/aws/ec2/vpn_gateway.rb +0 -123
  283. data/lib/aws/ec2/vpn_gateway/attachment.rb +0 -45
  284. data/lib/aws/ec2/vpn_gateway_collection.rb +0 -77
  285. data/lib/aws/elastic_beanstalk.rb +0 -49
  286. data/lib/aws/elastic_beanstalk/client.rb +0 -36
  287. data/lib/aws/elastic_beanstalk/config.rb +0 -18
  288. data/lib/aws/elastic_beanstalk/errors.rb +0 -22
  289. data/lib/aws/elastic_transcoder.rb +0 -29
  290. data/lib/aws/elastic_transcoder/client.rb +0 -48
  291. data/lib/aws/elastic_transcoder/config.rb +0 -18
  292. data/lib/aws/elastic_transcoder/errors.rb +0 -23
  293. data/lib/aws/elasticache.rb +0 -49
  294. data/lib/aws/elasticache/client.rb +0 -35
  295. data/lib/aws/elasticache/config.rb +0 -18
  296. data/lib/aws/elasticache/errors.rb +0 -22
  297. data/lib/aws/elb.rb +0 -66
  298. data/lib/aws/elb/availability_zone_collection.rb +0 -138
  299. data/lib/aws/elb/backend_server_policy_collection.rb +0 -139
  300. data/lib/aws/elb/client.rb +0 -35
  301. data/lib/aws/elb/config.rb +0 -18
  302. data/lib/aws/elb/errors.rb +0 -26
  303. data/lib/aws/elb/instance_collection.rb +0 -168
  304. data/lib/aws/elb/listener.rb +0 -190
  305. data/lib/aws/elb/listener_collection.rb +0 -113
  306. data/lib/aws/elb/listener_opts.rb +0 -45
  307. data/lib/aws/elb/load_balancer.rb +0 -280
  308. data/lib/aws/elb/load_balancer_collection.rb +0 -146
  309. data/lib/aws/elb/load_balancer_policy.rb +0 -93
  310. data/lib/aws/elb/load_balancer_policy_collection.rb +0 -208
  311. data/lib/aws/emr.rb +0 -87
  312. data/lib/aws/emr/client.rb +0 -35
  313. data/lib/aws/emr/config.rb +0 -18
  314. data/lib/aws/emr/errors.rb +0 -22
  315. data/lib/aws/emr/instance_group.rb +0 -138
  316. data/lib/aws/emr/instance_group_collection.rb +0 -82
  317. data/lib/aws/emr/job_flow.rb +0 -307
  318. data/lib/aws/emr/job_flow_collection.rb +0 -185
  319. data/lib/aws/errors.rb +0 -162
  320. data/lib/aws/glacier.rb +0 -79
  321. data/lib/aws/glacier/archive.rb +0 -56
  322. data/lib/aws/glacier/archive_collection.rb +0 -146
  323. data/lib/aws/glacier/client.rb +0 -49
  324. data/lib/aws/glacier/config.rb +0 -19
  325. data/lib/aws/glacier/errors.rb +0 -22
  326. data/lib/aws/glacier/resource.rb +0 -30
  327. data/lib/aws/glacier/vault.rb +0 -145
  328. data/lib/aws/glacier/vault_collection.rb +0 -75
  329. data/lib/aws/glacier/vault_notification_configuration.rb +0 -29
  330. data/lib/aws/iam.rb +0 -408
  331. data/lib/aws/iam/access_key.rb +0 -185
  332. data/lib/aws/iam/access_key_collection.rb +0 -128
  333. data/lib/aws/iam/account_alias_collection.rb +0 -79
  334. data/lib/aws/iam/client.rb +0 -49
  335. data/lib/aws/iam/collection.rb +0 -83
  336. data/lib/aws/iam/config.rb +0 -18
  337. data/lib/aws/iam/errors.rb +0 -22
  338. data/lib/aws/iam/group.rb +0 -111
  339. data/lib/aws/iam/group_collection.rb +0 -132
  340. data/lib/aws/iam/group_policy_collection.rb +0 -47
  341. data/lib/aws/iam/group_user_collection.rb +0 -84
  342. data/lib/aws/iam/login_profile.rb +0 -99
  343. data/lib/aws/iam/mfa_device.rb +0 -52
  344. data/lib/aws/iam/mfa_device_collection.rb +0 -127
  345. data/lib/aws/iam/policy.rb +0 -46
  346. data/lib/aws/iam/policy_collection.rb +0 -188
  347. data/lib/aws/iam/resource.rb +0 -62
  348. data/lib/aws/iam/server_certificate.rb +0 -141
  349. data/lib/aws/iam/server_certificate_collection.rb +0 -138
  350. data/lib/aws/iam/signing_certificate.rb +0 -174
  351. data/lib/aws/iam/signing_certificate_collection.rb +0 -131
  352. data/lib/aws/iam/user.rb +0 -200
  353. data/lib/aws/iam/user_collection.rb +0 -133
  354. data/lib/aws/iam/user_group_collection.rb +0 -98
  355. data/lib/aws/iam/user_policy.rb +0 -90
  356. data/lib/aws/iam/user_policy_collection.rb +0 -45
  357. data/lib/aws/iam/virtual_mfa_device.rb +0 -139
  358. data/lib/aws/iam/virtual_mfa_device_collection.rb +0 -73
  359. data/lib/aws/import_export.rb +0 -73
  360. data/lib/aws/import_export/client.rb +0 -35
  361. data/lib/aws/import_export/config.rb +0 -19
  362. data/lib/aws/import_export/errors.rb +0 -22
  363. data/lib/aws/kinesis.rb +0 -53
  364. data/lib/aws/kinesis/client.rb +0 -35
  365. data/lib/aws/kinesis/config.rb +0 -18
  366. data/lib/aws/kinesis/errors.rb +0 -20
  367. data/lib/aws/ops_works.rb +0 -29
  368. data/lib/aws/ops_works/client.rb +0 -35
  369. data/lib/aws/ops_works/config.rb +0 -18
  370. data/lib/aws/ops_works/errors.rb +0 -20
  371. data/lib/aws/rails.rb +0 -195
  372. data/lib/aws/rds.rb +0 -70
  373. data/lib/aws/rds/client.rb +0 -42
  374. data/lib/aws/rds/config.rb +0 -18
  375. data/lib/aws/rds/db_instance.rb +0 -216
  376. data/lib/aws/rds/db_instance_collection.rb +0 -75
  377. data/lib/aws/rds/db_snapshot.rb +0 -163
  378. data/lib/aws/rds/db_snapshot_collection.rb +0 -89
  379. data/lib/aws/rds/errors.rb +0 -22
  380. data/lib/aws/record.rb +0 -139
  381. data/lib/aws/record/abstract_base.rb +0 -690
  382. data/lib/aws/record/attributes.rb +0 -388
  383. data/lib/aws/record/conversion.rb +0 -38
  384. data/lib/aws/record/dirty_tracking.rb +0 -287
  385. data/lib/aws/record/errors.rb +0 -143
  386. data/lib/aws/record/exceptions.rb +0 -51
  387. data/lib/aws/record/hash_model.rb +0 -204
  388. data/lib/aws/record/hash_model/attributes.rb +0 -195
  389. data/lib/aws/record/hash_model/finder_methods.rb +0 -172
  390. data/lib/aws/record/hash_model/scope.rb +0 -108
  391. data/lib/aws/record/model.rb +0 -453
  392. data/lib/aws/record/model/attributes.rb +0 -377
  393. data/lib/aws/record/model/finder_methods.rb +0 -232
  394. data/lib/aws/record/model/scope.rb +0 -212
  395. data/lib/aws/record/naming.rb +0 -31
  396. data/lib/aws/record/scope.rb +0 -203
  397. data/lib/aws/record/validations.rb +0 -694
  398. data/lib/aws/record/validator.rb +0 -246
  399. data/lib/aws/record/validators/acceptance.rb +0 -49
  400. data/lib/aws/record/validators/block.rb +0 -36
  401. data/lib/aws/record/validators/confirmation.rb +0 -41
  402. data/lib/aws/record/validators/count.rb +0 -106
  403. data/lib/aws/record/validators/exclusion.rb +0 -41
  404. data/lib/aws/record/validators/format.rb +0 -55
  405. data/lib/aws/record/validators/inclusion.rb +0 -54
  406. data/lib/aws/record/validators/length.rb +0 -105
  407. data/lib/aws/record/validators/method.rb +0 -31
  408. data/lib/aws/record/validators/numericality.rb +0 -136
  409. data/lib/aws/record/validators/presence.rb +0 -43
  410. data/lib/aws/redshift.rb +0 -51
  411. data/lib/aws/redshift/client.rb +0 -35
  412. data/lib/aws/redshift/config.rb +0 -18
  413. data/lib/aws/redshift/errors.rb +0 -22
  414. data/lib/aws/route_53.rb +0 -86
  415. data/lib/aws/route_53/change_batch.rb +0 -161
  416. data/lib/aws/route_53/change_info.rb +0 -72
  417. data/lib/aws/route_53/client.rb +0 -35
  418. data/lib/aws/route_53/config.rb +0 -18
  419. data/lib/aws/route_53/errors.rb +0 -22
  420. data/lib/aws/route_53/hosted_zone.rb +0 -111
  421. data/lib/aws/route_53/hosted_zone_collection.rb +0 -100
  422. data/lib/aws/route_53/resource_record_set.rb +0 -251
  423. data/lib/aws/route_53/resource_record_set_collection.rb +0 -110
  424. data/lib/aws/s3.rb +0 -156
  425. data/lib/aws/s3/access_control_list.rb +0 -265
  426. data/lib/aws/s3/acl_object.rb +0 -264
  427. data/lib/aws/s3/acl_options.rb +0 -204
  428. data/lib/aws/s3/bucket.rb +0 -742
  429. data/lib/aws/s3/bucket_collection.rb +0 -162
  430. data/lib/aws/s3/bucket_lifecycle_configuration.rb +0 -457
  431. data/lib/aws/s3/bucket_tag_collection.rb +0 -111
  432. data/lib/aws/s3/bucket_version_collection.rb +0 -79
  433. data/lib/aws/s3/cipher_io.rb +0 -120
  434. data/lib/aws/s3/client.rb +0 -1919
  435. data/lib/aws/s3/client/xml.rb +0 -259
  436. data/lib/aws/s3/config.rb +0 -48
  437. data/lib/aws/s3/cors_rule.rb +0 -108
  438. data/lib/aws/s3/cors_rule_collection.rb +0 -194
  439. data/lib/aws/s3/data_options.rb +0 -191
  440. data/lib/aws/s3/encryption_utils.rb +0 -146
  441. data/lib/aws/s3/errors.rb +0 -94
  442. data/lib/aws/s3/multipart_upload.rb +0 -351
  443. data/lib/aws/s3/multipart_upload_collection.rb +0 -76
  444. data/lib/aws/s3/object_collection.rb +0 -353
  445. data/lib/aws/s3/object_metadata.rb +0 -103
  446. data/lib/aws/s3/object_upload_collection.rb +0 -77
  447. data/lib/aws/s3/object_version.rb +0 -154
  448. data/lib/aws/s3/object_version_collection.rb +0 -89
  449. data/lib/aws/s3/paginated_collection.rb +0 -75
  450. data/lib/aws/s3/policy.rb +0 -74
  451. data/lib/aws/s3/prefix_and_delimiter_collection.rb +0 -47
  452. data/lib/aws/s3/prefixed_collection.rb +0 -85
  453. data/lib/aws/s3/presign_v4.rb +0 -127
  454. data/lib/aws/s3/presigned_post.rb +0 -554
  455. data/lib/aws/s3/request.rb +0 -62
  456. data/lib/aws/s3/s3_object.rb +0 -1781
  457. data/lib/aws/s3/tree.rb +0 -116
  458. data/lib/aws/s3/tree/branch_node.rb +0 -68
  459. data/lib/aws/s3/tree/child_collection.rb +0 -104
  460. data/lib/aws/s3/tree/leaf_node.rb +0 -94
  461. data/lib/aws/s3/tree/node.rb +0 -22
  462. data/lib/aws/s3/tree/parent.rb +0 -87
  463. data/lib/aws/s3/uploaded_part.rb +0 -82
  464. data/lib/aws/s3/uploaded_part_collection.rb +0 -84
  465. data/lib/aws/s3/website_configuration.rb +0 -102
  466. data/lib/aws/simple_db.rb +0 -218
  467. data/lib/aws/simple_db/attribute.rb +0 -156
  468. data/lib/aws/simple_db/attribute_collection.rb +0 -240
  469. data/lib/aws/simple_db/client.rb +0 -67
  470. data/lib/aws/simple_db/config.rb +0 -20
  471. data/lib/aws/simple_db/consistent_read_option.rb +0 -42
  472. data/lib/aws/simple_db/delete_attributes.rb +0 -62
  473. data/lib/aws/simple_db/domain.rb +0 -123
  474. data/lib/aws/simple_db/domain_collection.rb +0 -86
  475. data/lib/aws/simple_db/domain_metadata.rb +0 -110
  476. data/lib/aws/simple_db/errors.rb +0 -55
  477. data/lib/aws/simple_db/expect_condition_option.rb +0 -45
  478. data/lib/aws/simple_db/item.rb +0 -93
  479. data/lib/aws/simple_db/item_collection.rb +0 -654
  480. data/lib/aws/simple_db/item_data.rb +0 -73
  481. data/lib/aws/simple_db/put_attributes.rb +0 -60
  482. data/lib/aws/simple_email_service.rb +0 -430
  483. data/lib/aws/simple_email_service/client.rb +0 -37
  484. data/lib/aws/simple_email_service/config.rb +0 -18
  485. data/lib/aws/simple_email_service/email_address_collection.rb +0 -69
  486. data/lib/aws/simple_email_service/errors.rb +0 -22
  487. data/lib/aws/simple_email_service/identity.rb +0 -209
  488. data/lib/aws/simple_email_service/identity_collection.rb +0 -81
  489. data/lib/aws/simple_email_service/quotas.rb +0 -66
  490. data/lib/aws/simple_workflow.rb +0 -227
  491. data/lib/aws/simple_workflow/activity_task.rb +0 -178
  492. data/lib/aws/simple_workflow/activity_task_collection.rb +0 -123
  493. data/lib/aws/simple_workflow/activity_type.rb +0 -131
  494. data/lib/aws/simple_workflow/activity_type_collection.rb +0 -93
  495. data/lib/aws/simple_workflow/client.rb +0 -69
  496. data/lib/aws/simple_workflow/config.rb +0 -18
  497. data/lib/aws/simple_workflow/count.rb +0 -49
  498. data/lib/aws/simple_workflow/decision_task.rb +0 -603
  499. data/lib/aws/simple_workflow/decision_task_collection.rb +0 -225
  500. data/lib/aws/simple_workflow/domain.rb +0 -122
  501. data/lib/aws/simple_workflow/domain_collection.rb +0 -169
  502. data/lib/aws/simple_workflow/errors.rb +0 -20
  503. data/lib/aws/simple_workflow/history_event.rb +0 -276
  504. data/lib/aws/simple_workflow/history_event_collection.rb +0 -76
  505. data/lib/aws/simple_workflow/option_formatters.rb +0 -82
  506. data/lib/aws/simple_workflow/resource.rb +0 -94
  507. data/lib/aws/simple_workflow/type.rb +0 -89
  508. data/lib/aws/simple_workflow/type_collection.rb +0 -140
  509. data/lib/aws/simple_workflow/workflow_execution.rb +0 -384
  510. data/lib/aws/simple_workflow/workflow_execution_collection.rb +0 -617
  511. data/lib/aws/simple_workflow/workflow_type.rb +0 -179
  512. data/lib/aws/simple_workflow/workflow_type_collection.rb +0 -91
  513. data/lib/aws/sns.rb +0 -76
  514. data/lib/aws/sns/client.rb +0 -35
  515. data/lib/aws/sns/config.rb +0 -18
  516. data/lib/aws/sns/errors.rb +0 -22
  517. data/lib/aws/sns/has_delivery_policy.rb +0 -68
  518. data/lib/aws/sns/message.rb +0 -194
  519. data/lib/aws/sns/originators/from_auto_scaling.rb +0 -68
  520. data/lib/aws/sns/policy.rb +0 -47
  521. data/lib/aws/sns/subscription.rb +0 -165
  522. data/lib/aws/sns/subscription_collection.rb +0 -78
  523. data/lib/aws/sns/topic.rb +0 -403
  524. data/lib/aws/sns/topic_collection.rb +0 -62
  525. data/lib/aws/sns/topic_subscription_collection.rb +0 -54
  526. data/lib/aws/sqs.rb +0 -80
  527. data/lib/aws/sqs/client.rb +0 -53
  528. data/lib/aws/sqs/config.rb +0 -20
  529. data/lib/aws/sqs/errors.rb +0 -125
  530. data/lib/aws/sqs/policy.rb +0 -48
  531. data/lib/aws/sqs/queue.rb +0 -843
  532. data/lib/aws/sqs/queue_collection.rb +0 -182
  533. data/lib/aws/sqs/received_message.rb +0 -182
  534. data/lib/aws/sqs/received_sns_message.rb +0 -116
  535. data/lib/aws/storage_gateway.rb +0 -72
  536. data/lib/aws/storage_gateway/client.rb +0 -42
  537. data/lib/aws/storage_gateway/config.rb +0 -18
  538. data/lib/aws/storage_gateway/errors.rb +0 -22
  539. data/lib/aws/sts.rb +0 -164
  540. data/lib/aws/sts/client.rb +0 -46
  541. data/lib/aws/sts/config.rb +0 -18
  542. data/lib/aws/sts/errors.rb +0 -22
  543. data/lib/aws/sts/federated_session.rb +0 -56
  544. data/lib/aws/sts/policy.rb +0 -30
  545. data/lib/aws/sts/session.rb +0 -48
  546. data/lib/aws/support.rb +0 -29
  547. data/lib/aws/support/client.rb +0 -35
  548. data/lib/aws/support/config.rb +0 -18
  549. data/lib/aws/support/errors.rb +0 -20
  550. data/lib/aws/version.rb +0 -17
  551. data/rails/init.rb +0 -15
@@ -1,55 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- module AWS
15
- class SimpleDB
16
-
17
- # This module contains exception classes for each of the error
18
- # types that SimpleDB can return. You can use these classes to
19
- # rescue specific errors, for example:
20
- #
21
- # begin
22
- # SimpleDB.new.domains.mydomain.
23
- # items["foo"].attributes.set(:color => "red")
24
- # rescue SimpleDB::Errors::NoSuchDomain => e
25
- # SimpleDB.new.domians.create("mydomain")
26
- # retry
27
- # end
28
- #
29
- # Each exception has:
30
- #
31
- # * `code`: returns the error code as a string.
32
- # * `box_usage`: returns the box usage for the operation.
33
- #
34
- # All errors raised as a result of error responses from the
35
- # service are instances of either {ClientError} or {ServerError}.
36
- # @api private
37
- module Errors
38
-
39
- # @api 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
-
52
- end
53
-
54
- end
55
- end
@@ -1,45 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- module AWS
15
- class SimpleDB
16
-
17
- # @api private
18
- module ExpectConditionOption
19
-
20
- # @api private
21
- protected
22
- def expect_condition_opts(opts)
23
- expected = []
24
- opts.each do |name, value|
25
- case name
26
- when :if
27
- (expected_name, expected_value) = value.to_a.first
28
- expected << {
29
- :name => expected_name.to_s,
30
- :value => expected_value
31
- }
32
- when :unless, :unless_exists
33
- expected << {
34
- :name => value.to_s,
35
- :exists => false
36
- }
37
- end
38
- end
39
- expected.empty? ? {} : expected.first
40
- end
41
-
42
- end
43
-
44
- end
45
- end
@@ -1,93 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- module AWS
15
- class SimpleDB
16
-
17
- # Represents a single item in a SimpleDB domain. You can use
18
- # this class to delete the item or get its data. You can also
19
- # use it to access the {AttributeCollection} for the item in
20
- # order to add, remove, or read the item's attributes.
21
- #
22
- # item = AWS::SimpleDB.new.domains['mydomain'].items['item-id']
23
- #
24
- class Item
25
-
26
- include Core::Model
27
- include ExpectConditionOption
28
- include ConsistentReadOption
29
-
30
- # @param [Domain] domain The domain the item belongs to
31
- # @param [String] name The name of the item in SimpleDB.
32
- # @param [Hash] options
33
- def initialize domain, name, options = {}
34
- @domain = domain
35
- @name = name
36
- super
37
- end
38
-
39
- # @return [Domain] The domain this item belongs to.
40
- attr_reader :domain
41
-
42
- # @return [String] The item name.
43
- attr_reader :name
44
-
45
- # @return [AttributeCollection] A collection representing all attributes
46
- # for this item.
47
- def attributes
48
- AttributeCollection.new(self)
49
- end
50
-
51
- # Deletes the item and all of its attributes from SimpleDB.
52
- # @param [Hash] options
53
- # @option options [Hash] :if Pass a hash with a single key (attribute
54
- # name) and a single value (the attribute value). This causes the
55
- # delete to become conditional.
56
- # @option options [String,Symbol] :unless Pass an attribute name. This
57
- # causes the delete to become conditional on that attribute not
58
- # existing.
59
- # @return [nil]
60
- def delete options = {}
61
- delete_opts = {}
62
- delete_opts[:domain_name] = domain.name
63
- delete_opts[:item_name] = name
64
- delete_opts[:expected] = expect_condition_opts(options)
65
- delete_opts.delete(:expected) if delete_opts[:expected].empty?
66
- client.delete_attributes(delete_opts)
67
- nil
68
- end
69
-
70
- # Returns all of the item's attributes in an {ItemData} instance.
71
- # @return [ItemData] An object with all of the loaded attribute names
72
- # and values for this item.
73
- def data options = {}
74
- get_opts = {}
75
- get_opts[:domain_name] = domain.name
76
- get_opts[:item_name] = name
77
- get_opts[:consistent_read] = consistent_read(options)
78
- r = client.get_attributes(get_opts)
79
- ItemData.new(:name => name, :domain => domain, :response_object => r.data)
80
- end
81
-
82
- def == other
83
- other.is_a?(Item) and
84
- other.domain == domain and
85
- other.name == name
86
- end
87
-
88
- alias_method :eql?, :==
89
-
90
- end
91
-
92
- end
93
- end
@@ -1,654 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- module AWS
15
- class SimpleDB
16
-
17
- # Represents a collection of items in a SimpleDB domain.
18
- class ItemCollection
19
-
20
- # Identifies quoted regions in the string, giving access to
21
- # the regions before and after each quoted region, for example:
22
- # "? ? `foo?``bar?` ? 'foo?' ?".scan(OUTSIDE_QUOTES_REGEX)
23
- # # => [["? ? ", "`foo?``bar?`", " ? "], ["", "'foo?'", " ?"]]
24
- # @api private
25
- OUTSIDE_QUOTES_REGEX = Regexp.compile(
26
- '([^\'"`]*)(`(?:[^`]*(?:``))*[^`]*`|' +
27
- '\'(?:[^\']*(?:\'\'))*[^\']*\'|' +
28
- '"(?:[^"]*(?:""))*[^"]*")([^\'`"]*)'
29
- )
30
-
31
- include ConsistentReadOption
32
-
33
- include Core::Collection::WithLimitAndNextToken
34
-
35
- # @return [Domain] The domain the items belong to.
36
- attr_reader :domain
37
-
38
- # @api private
39
- attr_reader :output_list
40
-
41
- # @api private
42
- attr_reader :conditions
43
-
44
- # @api private
45
- attr_reader :sort_instructions
46
-
47
- # @param [Domain] domain The domain that you want an item collection for.
48
- # @return [ItemCollection]
49
- def initialize domain, options = {}
50
- @domain = domain
51
- @output_list = options[:output_list] || 'itemName()'
52
- @conditions = options[:conditions] || []
53
- @sort_instructions = options[:sort_instructions]
54
- @not_null_attribute = options[:not_null_attribute]
55
- @limit = options[:limit]
56
- super
57
- end
58
-
59
- # Creates a new item in SimpleDB with the given attributes:
60
- #
61
- # @example
62
- #
63
- # domain.items.create('shirt', {
64
- # 'colors' => ['red', 'blue'],
65
- # 'category' => 'clearance'})
66
- #
67
- # @overload create(item_name, attributes)
68
- # @param [String] item_name The name of the item as you want it stored
69
- # in SimpleDB.
70
- # @param [Hash] attributes A hash of attribute names and values
71
- # you want to store in SimpleDB.
72
- # @return [Item] Returns a reference to the object that was created.
73
- def create item_name, *args
74
- item = self[item_name]
75
- item.attributes.replace(*args)
76
- item
77
- end
78
-
79
- # Returns an item with the given name.
80
- #
81
- # @note This does not make a request to SimpleDB.
82
- #
83
- # You can ask for any item. The named item may or may not actually
84
- # exist in SimpleDB.
85
- #
86
- # @example Get an item by symbol or string name
87
- #
88
- # item = domain.items[:itemname]
89
- # item = domain.items['itemname']
90
- #
91
- # @param [String, Symbol] item_name name of the item to get.
92
- # @return [Item] Returns an item with the given name.
93
- def [] item_name
94
- Item.new(domain, item_name.to_s)
95
- end
96
-
97
- # Yields to the block once for each item in the collection.
98
- # This method can yield two type of objects:
99
- #
100
- # * AWS::SimpleDB::Item objects (only the item name is populated)
101
- # * AWS::SimpleDB::ItemData objects (some or all attributes populated)
102
- #
103
- # The default mode of an ItemCollection is to yield Item objects with
104
- # no populated attributes.
105
- #
106
- # # only receives item names from SimpleDB
107
- # domain.items.each do |item|
108
- # puts item.name
109
- # puts item.class.name # => AWS::SimpleDB::Item
110
- # end
111
- #
112
- # You can switch a collection into yielded {ItemData} objects by
113
- # specifying what attributes to request:
114
- #
115
- # domain.items.select(:all).each do |item_data|
116
- # puts item_data.class.name # => AWS::SimpleDB::ItemData
117
- # puts item_data.attributes # => { 'attr-name' => 'attr-value', ... }
118
- # end
119
- #
120
- # You can also pass the standard scope options to #each as well:
121
- #
122
- # # output the item names of the 10 most expensive items
123
- # domain.items.each(:order => [:price, :desc], :limit => 10).each do |item|
124
- # puts item.name
125
- # end
126
- #
127
- # @yield [item] Yields once for every item in the {#domain}.
128
- #
129
- # @yieldparam [Item,ItemData] item If the item collection has been
130
- # scoped by chaining `#select` or by passing the `:select` option
131
- # then {ItemData} objects (that contain a hash of attributes) are
132
- # yielded. If no list of attributes has been provided, then#
133
- # {Item} objects (with no populated data) are yielded.
134
- #
135
- # @param options [Hash]
136
- #
137
- # @option options [Boolean] :consistent_read (false) Causes this
138
- # method to yield the most current data in the domain.
139
- #
140
- # @option options [Mixed] :select If select is provided, then each
141
- # will yield {ItemData} objects instead of empty {Item}.
142
- # The `:select` option may be:
143
- #
144
- # * `:all` - Specifies that all attributes should requested.
145
- #
146
- # * A single or array of attribute names (as strings or symbols).
147
- # This causes the named attribute(s) to be requested.
148
- #
149
- # @option options :where Restricts the item collection using
150
- # {#where} before querying (see {#where}).
151
- #
152
- # @option options :order Changes the order in which the items
153
- # will be yielded (see {#order}).
154
- #
155
- # @option options :limit [Integer] The maximum number of
156
- # items to fetch from SimpleDB.
157
- #
158
- # @option options :batch_size Specifies a maximum number of records
159
- # to fetch from SimpleDB in a single request. SimpleDB may return
160
- # fewer items than :batch_size per request, but never more.
161
- # Generally you should not need to specify this option.
162
- #
163
- # @return [String,nil] Returns a next token that can be used with
164
- # the exact same SimpleDB select expression to get more results.
165
- # A next token is returned ONLY if there was a limit on the
166
- # expression, otherwise all items will be enumerated and
167
- # nil is returned.
168
- #
169
- def each options = {}, &block
170
- super
171
- end
172
-
173
- # @api private
174
- def each_batch options = {}, &block
175
- handle_query_options(options) do |collection, opts|
176
- return collection.each_batch(opts, &block)
177
- end
178
- super
179
- end
180
-
181
- # Counts the items in the collection.
182
- #
183
- # domain.items.count
184
- #
185
- # You can specify what items to count with {#where}:
186
- #
187
- # domain.items.where(:color => "red").count
188
- #
189
- # You can also limit the number of items to count:
190
- #
191
- # # count up to 500 items and then stop
192
- # domain.items.limit(500).count
193
- #
194
- # @param [Hash] options Options for counting items.
195
- #
196
- # @option options [Boolean] :consistent_read (false) Causes this
197
- # method to yield the most current data in the domain when `true`.
198
- #
199
- # @option options :where Restricts the item collection using
200
- # {#where} before querying.
201
- #
202
- # @option options :limit [Integer] The maximum number of
203
- # items to count in SimpleDB.
204
- #
205
- # @return [Integer] The number of items counted.
206
- #
207
- def count options = {}, &block
208
-
209
- handle_query_options(options) do |collection, opts|
210
- return collection.count(opts, &block)
211
- end
212
-
213
- options = options.merge(:output_list => "count(*)")
214
-
215
- count = 0
216
- next_token = nil
217
-
218
- begin
219
-
220
- response = select_request(options, next_token)
221
-
222
- if
223
- domain_item = response.items.first and
224
- count_attribute = domain_item.attributes.first
225
- then
226
- count += count_attribute.value.to_i
227
- end
228
-
229
- break unless next_token = response[:next_token]
230
-
231
- end while limit.nil? || count < limit
232
-
233
- count
234
-
235
- end
236
- alias_method :size, :count
237
-
238
- # # @return [PageResult] Returns an array-based object with results.
239
- # # Results are either {Item} or {ItemData} objects depending on
240
- # # the selection mode (item names only or with attributes).
241
- # #
242
- # def page options = {}
243
- #
244
- # handle_query_options(options) do |collection, opts|
245
- # return collection.page(opts)
246
- # end
247
- #
248
- # super(options)
249
- #
250
- # end
251
-
252
- # Specifies a list of attributes select from SimpleDB.
253
- #
254
- # domain.items.select('size', 'color').each do |item_data|
255
- # puts item_data.attributes # => { 'size' => ..., :color => ... }
256
- # end
257
- #
258
- # You can select all attributes by passing `:all` or '*':
259
- #
260
- # domain.items.select('*').each {|item_data| ... }
261
- #
262
- # domain.items.select(:all).each {|item_data| ... }
263
- #
264
- # Calling #select causes #each to yield {ItemData} objects
265
- # with #attribute hashes, instead of {Item} objects with
266
- # an item name.
267
- #
268
- # @param [Symbol, String, or Array] attributes The attributes to
269
- # retrieve. This can be:
270
- #
271
- # * `:all` or '*' to request all attributes for each item
272
- #
273
- # * A list or array of attribute names as strings or symbols
274
- #
275
- # Attribute names may contain any characters that are valid
276
- # in a SimpleDB attribute name; this method will handle
277
- # escaping them for inclusion in the query. Note that you
278
- # cannot use this method to select the number of items; use
279
- # {#count} instead.
280
- #
281
- # @return [ItemCollection] Returns a new item collection with the
282
- # specified list of attributes to select.
283
- #
284
- def select *attributes, &block
285
-
286
- # Before select was morphed into a chainable method, it accepted
287
- # a hash of options (e.g. :where, :order, :limit) that no longer
288
- # make sense, but to maintain backwards compatability we still
289
- # consume those.
290
- #
291
- # TODO : it would be a good idea to add a deprecation warning for
292
- # passing options to #select
293
- #
294
- handle_query_options(*attributes) do |collection, *args|
295
- return collection.select(*args, &block)
296
- end
297
-
298
- options = attributes.last.is_a?(Hash) ? attributes.pop : {}
299
-
300
- output_list = case attributes.flatten
301
- when [] then '*'
302
- when ['*'] then '*'
303
- when [:all] then '*'
304
- else attributes.flatten.map{|attr| coerce_attribute(attr) }.join(', ')
305
- end
306
-
307
- collection = collection_with(:output_list => output_list)
308
-
309
- if block_given?
310
- # previously select accepted a block and it would enumerate items
311
- # this is for backwards compatability
312
- collection.each(options, &block)
313
- nil
314
- else
315
- collection
316
- end
317
-
318
- end
319
-
320
- # Returns an item collection defined by the given conditions
321
- # in addition to any conditions defined on this collection.
322
- # For example:
323
- #
324
- # items = domain.items.where(:color => 'blue').
325
- # where('engine_type is not null')
326
- #
327
- # # does SELECT itemName() FROM `mydomain`
328
- # # WHERE color = "blue" AND engine_type is not null
329
- # items.each { |i| ... }
330
- #
331
- # ## Hash Conditions
332
- #
333
- # When `conditions` is a hash, each entry produces a condition
334
- # on the attribute named in the hash key. For example:
335
- #
336
- # # produces "WHERE `foo` = 'bar'"
337
- # domain.items.where(:foo => 'bar')
338
- #
339
- # You can pass an array value to use an "IN" operator instead
340
- # of "=":
341
- #
342
- # # produces "WHERE `foo` IN ('bar', 'baz')"
343
- # domain.items.where(:foo => ['bar', 'baz'])
344
- #
345
- # You can also pass a range value to use a "BETWEEN" operator:
346
- #
347
- # # produces "WHERE `foo` BETWEEN 'bar' AND 'baz'
348
- # domain.items.where(:foo => 'bar'..'baz')
349
- #
350
- # # produces "WHERE (`foo` >= 'bar' AND `foo` < 'baz')"
351
- # domain.items.where(:foo => 'bar'...'baz')
352
- #
353
- # ## Placeholders
354
- #
355
- # If `conditions` is a string and "?" appears outside of any
356
- # quoted part of the expression, `placeholers` is expected to
357
- # contain a value for each of the "?" characters in the
358
- # expression. For example:
359
- #
360
- # # produces "WHERE foo like 'fred''s % value'"
361
- # domain.items.where("foo like ?", "fred's % value")
362
- #
363
- # Array values are surrounded with parentheses when they are
364
- # substituted for a placeholder:
365
- #
366
- # # produces "WHERE foo in ('1', '2')"
367
- # domain.items.where("foo in ?", [1, 2])
368
- #
369
- # Note that no substitutions are made within a quoted region
370
- # of the query:
371
- #
372
- # # produces "WHERE `foo?` = 'red'"
373
- # domain.items.where("`foo?` = ?", "red")
374
- #
375
- # # produces "WHERE foo = 'fuzz?' AND bar = 'zap'"
376
- # domain.items.where("foo = 'fuzz?' AND bar = ?", "zap")
377
- #
378
- # Also note that no attempt is made to correct for syntax:
379
- #
380
- # # produces "WHERE 'foo' = 'bar'", which is invalid
381
- # domain.items.where("? = 'bar'", "foo")
382
- #
383
- # @return [ItemCollection] Returns a new item collection with the
384
- # additional conditions.
385
- #
386
- def where conditions, *substitutions
387
- case conditions
388
- when String
389
- conditions = [replace_placeholders(conditions, *substitutions)]
390
- when Hash
391
- conditions = conditions.map do |name, value|
392
- name = coerce_attribute(name)
393
- case value
394
- when Array
395
- "#{name} IN " + coerce_substitution(value)
396
- when Range
397
- if value.exclude_end?
398
- "(#{name} >= #{coerce_substitution(value.begin)} AND " +
399
- "#{name} < #{coerce_substitution(value.end)})"
400
- else
401
- "#{name} BETWEEN #{coerce_substitution(value.begin)} AND " +
402
- coerce_substitution(value.end)
403
- end
404
- else
405
- "#{name} = " + coerce_substitution(value)
406
- end
407
- end
408
- end
409
-
410
- collection_with(:conditions => self.conditions + conditions)
411
- end
412
-
413
- # Changes the order in which results are returned or yielded.
414
- # For example, to get item names in descending order of
415
- # popularity, you can do:
416
- #
417
- # domain.items.order(:popularity, :desc).map(&:name)
418
- #
419
- # @param attribute [String or Symbol] The attribute name to
420
- # order by.
421
- # @param order [String or Symbol] The desired order, which may be:
422
- # * `asc` or `ascending` (the default)
423
- # * `desc` or `descending`
424
- # @return [ItemCollection] Returns a new item collection with the
425
- # given ordering logic.
426
- def order(attribute, order = nil)
427
- sort = coerce_attribute(attribute)
428
- sort += " DESC" if order.to_s =~ /^desc(ending)?$/
429
- sort += " ASC" if order.to_s =~ /^asc(ending)?$/
430
- collection_with(:sort_instructions => sort,
431
- :not_null_attribute => attribute.to_s)
432
- end
433
-
434
- # Limits the number of items that are returned or yielded.
435
- # For example, to get the 100 most popular item names:
436
- #
437
- # domain.items.
438
- # order(:popularity, :desc).
439
- # limit(100).
440
- # map(&:name)
441
- #
442
- # @overload limit
443
- # @return [Integer] Returns the current limit for the collection.
444
- #
445
- # @overload limit(value)
446
- # @return [ItemCollection] Returns a collection with the given limit.
447
- #
448
- def limit *args
449
- return @limit if args.empty?
450
- collection_with(:limit => Integer(args.first))
451
- end
452
- alias_method :_limit, :limit # for Collection::WithLimitAndNextToken
453
-
454
- # Applies standard scope options (e.g. :where => 'foo') and removes them from
455
- # the options hash by calling their method (e.g. by calling #where('foo')).
456
- # Yields only if there were scope options to apply.
457
- # @api private
458
- protected
459
- def handle_query_options(*args)
460
-
461
- options = args.last.is_a?(Hash) ? args.pop : {}
462
-
463
- if
464
- query_options = options.keys & [:select, :where, :order, :limit] and
465
- !query_options.empty?
466
- then
467
- collection = self
468
- query_options.each do |query_option|
469
- option_args = options[query_option]
470
- option_args = [option_args] unless option_args.kind_of?(Array)
471
- options.delete(query_option)
472
- collection = collection.send(query_option, *option_args)
473
- end
474
-
475
- args << options
476
-
477
- yield(collection, *args)
478
-
479
- end
480
- end
481
-
482
- protected
483
- def _each_item next_token, max, options = {}, &block
484
-
485
- handle_query_options(options) do |collection, opts|
486
- return collection._each_item(next_token, max, opts, &block)
487
- end
488
-
489
- response = select_request(options, next_token, max)
490
-
491
- if output_list == 'itemName()'
492
- response.items.each do |item|
493
- yield(self[item.name])
494
- end
495
- else
496
- response.items.each do |item|
497
- yield(ItemData.new(:domain => domain, :response_object => item))
498
- end
499
- end
500
-
501
- response[:next_token]
502
-
503
- end
504
-
505
- protected
506
- def select_request(options, next_token = nil, limit = nil)
507
-
508
- opts = {}
509
- opts[:select_expression] = select_expression(options)
510
- opts[:consistent_read] = consistent_read(options)
511
- opts[:next_token] = next_token if next_token
512
-
513
- if limit
514
- unless opts[:select_expression].gsub!(/LIMIT \d+/, "LIMIT #{limit}")
515
- opts[:select_expression] << " LIMIT #{limit}"
516
- end
517
- end
518
-
519
- client.select(opts)
520
-
521
- end
522
-
523
- # @api private
524
- protected
525
- def select_expression options = {}
526
- expression = []
527
- expression << "SELECT #{options[:output_list] || self.output_list}"
528
- expression << "FROM `#{domain.name}`"
529
- expression << where_clause
530
- expression << order_by_clause
531
- expression << limit_clause
532
- expression.compact.join(' ')
533
- end
534
-
535
- # @api private
536
- protected
537
- def where_clause
538
-
539
- conditions = self.conditions.dup
540
-
541
- if @not_null_attribute
542
- conditions << coerce_attribute(@not_null_attribute) + " IS NOT NULL"
543
- end
544
-
545
- conditions.empty? ? nil : "WHERE #{conditions.join(" AND ")}"
546
-
547
- end
548
-
549
- # @api private
550
- protected
551
- def order_by_clause
552
- sort_instructions ? "ORDER BY #{sort_instructions}" : nil
553
- end
554
-
555
- # @api private
556
- protected
557
- def limit_clause
558
- limit ? "LIMIT #{limit}" : nil
559
- end
560
-
561
- # @api private
562
- protected
563
- def collection_with options
564
- ItemCollection.new(domain, {
565
- :output_list => output_list,
566
- :conditions => conditions,
567
- :sort_instructions => sort_instructions,
568
- :not_null_attribute => @not_null_attribute,
569
- :limit => limit,
570
- }.merge(options))
571
- end
572
-
573
- # @api private
574
- protected
575
- def replace_placeholders(str, *substitutions)
576
- named = {}
577
- named = substitutions.pop if substitutions.last.kind_of?(Hash)
578
- if str =~ /['"`]/
579
- count = 0
580
- str = str.scan(OUTSIDE_QUOTES_REGEX).
581
- map do |(before, quoted, after)|
582
-
583
- (before, after) = [before, after].map do |s|
584
- s, count =
585
- replace_placeholders_outside_quotes(s, count, substitutions, named)
586
- s
587
- end
588
- [before, quoted, after].join
589
- end.join
590
- else
591
- # no quotes
592
- str, count =
593
- replace_placeholders_outside_quotes(str, 0, substitutions, named)
594
- end
595
- raise ArgumentError.new("extra value(s): #{substitutions.inspect}") unless
596
- substitutions.empty?
597
- str
598
- end
599
-
600
- # @api private
601
- protected
602
- def replace_placeholders_outside_quotes(str, count, substitutions, named = {})
603
- orig_str = str.dup
604
- str, count = replace_positional_placeders(str, count, substitutions)
605
- str = replace_named_placeholders(orig_str, str, named)
606
- [str, count]
607
- end
608
-
609
- # @api private
610
- protected
611
- def replace_positional_placeders(str, count, substitutions)
612
- str = str.gsub("?") do |placeholder|
613
- count += 1
614
- raise ArgumentError.new("missing value for placeholder #{count}") if
615
- substitutions.empty?
616
- coerce_substitution(substitutions.shift)
617
- end
618
- [str, count]
619
- end
620
-
621
- # @api private
622
- protected
623
- def replace_named_placeholders(orig_str, str, named)
624
- named.each do |name, value|
625
- str = str.gsub(name.to_sym.inspect, coerce_substitution(value))
626
- end
627
- str.scan(/:\S+/) do |missing|
628
- if orig_str.include?(missing)
629
- raise ArgumentError.new("missing value for placeholder #{missing}")
630
- end
631
- end
632
- str
633
- end
634
-
635
- # @api private
636
- protected
637
- def coerce_substitution(subst)
638
- if subst.kind_of?(Array)
639
- "(" +
640
- subst.flatten.map { |s| coerce_substitution(s) }.join(", ") + ")"
641
- else
642
- "'" + subst.to_s.gsub("'", "''") + "'"
643
- end
644
- end
645
-
646
- # @api private
647
- protected
648
- def coerce_attribute(name)
649
- '`' + name.to_s.gsub('`', '``') + '`'
650
- end
651
-
652
- end
653
- end
654
- end