aws-sdk-euca 1.8.5

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 (539) hide show
  1. data/.yardopts +5 -0
  2. data/LICENSE.txt +12 -0
  3. data/README.rdoc +189 -0
  4. data/ca-bundle.crt +3895 -0
  5. data/lib/aws-sdk-euca.rb +79 -0
  6. data/lib/aws-sdk.rb +79 -0
  7. data/lib/aws.rb +14 -0
  8. data/lib/aws/api_config/AutoScaling-2011-01-01.yml +825 -0
  9. data/lib/aws/api_config/CloudFormation-2010-05-15.yml +322 -0
  10. data/lib/aws/api_config/CloudFront-2012-05-05.yml +2102 -0
  11. data/lib/aws/api_config/CloudSearch-2011-02-01.yml +681 -0
  12. data/lib/aws/api_config/CloudWatch-2010-08-01.yml +433 -0
  13. data/lib/aws/api_config/DataPipeline-2012-10-29.yml +422 -0
  14. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +1160 -0
  15. data/lib/aws/api_config/EC2-2013-02-01.yml +4368 -0
  16. data/lib/aws/api_config/ELB-2012-06-01.yml +597 -0
  17. data/lib/aws/api_config/EMR-2009-03-31.yml +370 -0
  18. data/lib/aws/api_config/ElastiCache-2012-03-09.yml +777 -0
  19. data/lib/aws/api_config/ElastiCache-2012-11-15.yml +979 -0
  20. data/lib/aws/api_config/ElasticBeanstalk-2010-12-01.yml +823 -0
  21. data/lib/aws/api_config/ElasticTranscoder-2012-09-25.yml +1036 -0
  22. data/lib/aws/api_config/Glacier-2012-06-01.yml +618 -0
  23. data/lib/aws/api_config/IAM-2010-05-08.yml +1222 -0
  24. data/lib/aws/api_config/ImportExport-2010-06-01.yml +109 -0
  25. data/lib/aws/api_config/OpsWorks-2013-02-18.yml +1463 -0
  26. data/lib/aws/api_config/RDS-2012-09-17.yml +1861 -0
  27. data/lib/aws/api_config/RDS-2013-02-12.yml +2377 -0
  28. data/lib/aws/api_config/Redshift-2012-12-01.yml +1149 -0
  29. data/lib/aws/api_config/Route53-2012-02-29.yml +380 -0
  30. data/lib/aws/api_config/Route53-2012-12-12.yml +547 -0
  31. data/lib/aws/api_config/SNS-2010-03-31.yml +249 -0
  32. data/lib/aws/api_config/SQS-2012-11-05.yml +317 -0
  33. data/lib/aws/api_config/STS-2011-06-15.yml +81 -0
  34. data/lib/aws/api_config/SimpleDB-2009-04-15.yml +306 -0
  35. data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +346 -0
  36. data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +2358 -0
  37. data/lib/aws/api_config/StorageGateway-2012-06-30.yml +748 -0
  38. data/lib/aws/auto_scaling.rb +164 -0
  39. data/lib/aws/auto_scaling/activity.rb +102 -0
  40. data/lib/aws/auto_scaling/activity_collection.rb +82 -0
  41. data/lib/aws/auto_scaling/client.rb +521 -0
  42. data/lib/aws/auto_scaling/config.rb +18 -0
  43. data/lib/aws/auto_scaling/errors.rb +22 -0
  44. data/lib/aws/auto_scaling/group.rb +420 -0
  45. data/lib/aws/auto_scaling/group_collection.rb +96 -0
  46. data/lib/aws/auto_scaling/group_options.rb +146 -0
  47. data/lib/aws/auto_scaling/instance.rb +192 -0
  48. data/lib/aws/auto_scaling/instance_collection.rb +63 -0
  49. data/lib/aws/auto_scaling/launch_configuration.rb +158 -0
  50. data/lib/aws/auto_scaling/launch_configuration_collection.rb +154 -0
  51. data/lib/aws/auto_scaling/notification_configuration.rb +89 -0
  52. data/lib/aws/auto_scaling/notification_configuration_collection.rb +184 -0
  53. data/lib/aws/auto_scaling/request.rb +29 -0
  54. data/lib/aws/auto_scaling/scaling_policy.rb +142 -0
  55. data/lib/aws/auto_scaling/scaling_policy_collection.rb +72 -0
  56. data/lib/aws/auto_scaling/scaling_policy_options.rb +64 -0
  57. data/lib/aws/auto_scaling/scheduled_action.rb +145 -0
  58. data/lib/aws/auto_scaling/scheduled_action_collection.rb +195 -0
  59. data/lib/aws/auto_scaling/tag.rb +59 -0
  60. data/lib/aws/auto_scaling/tag_collection.rb +112 -0
  61. data/lib/aws/cloud_formation.rb +272 -0
  62. data/lib/aws/cloud_formation/client.rb +369 -0
  63. data/lib/aws/cloud_formation/config.rb +18 -0
  64. data/lib/aws/cloud_formation/errors.rb +22 -0
  65. data/lib/aws/cloud_formation/request.rb +29 -0
  66. data/lib/aws/cloud_formation/stack.rb +255 -0
  67. data/lib/aws/cloud_formation/stack_collection.rb +209 -0
  68. data/lib/aws/cloud_formation/stack_event.rb +75 -0
  69. data/lib/aws/cloud_formation/stack_event_collection.rb +47 -0
  70. data/lib/aws/cloud_formation/stack_options.rb +72 -0
  71. data/lib/aws/cloud_formation/stack_output.rb +53 -0
  72. data/lib/aws/cloud_formation/stack_resource.rb +117 -0
  73. data/lib/aws/cloud_formation/stack_resource_collection.rb +84 -0
  74. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +64 -0
  75. data/lib/aws/cloud_formation/stack_summary_collection.rb +123 -0
  76. data/lib/aws/cloud_front.rb +73 -0
  77. data/lib/aws/cloud_front/client.rb +1307 -0
  78. data/lib/aws/cloud_front/config.rb +18 -0
  79. data/lib/aws/cloud_front/errors.rb +22 -0
  80. data/lib/aws/cloud_front/request.rb +44 -0
  81. data/lib/aws/cloud_search.rb +74 -0
  82. data/lib/aws/cloud_search/client.rb +558 -0
  83. data/lib/aws/cloud_search/config.rb +18 -0
  84. data/lib/aws/cloud_search/errors.rb +22 -0
  85. data/lib/aws/cloud_search/request.rb +23 -0
  86. data/lib/aws/cloud_watch.rb +119 -0
  87. data/lib/aws/cloud_watch/alarm.rb +272 -0
  88. data/lib/aws/cloud_watch/alarm_collection.rb +153 -0
  89. data/lib/aws/cloud_watch/alarm_history_item.rb +50 -0
  90. data/lib/aws/cloud_watch/alarm_history_item_collection.rb +84 -0
  91. data/lib/aws/cloud_watch/client.rb +247 -0
  92. data/lib/aws/cloud_watch/config.rb +18 -0
  93. data/lib/aws/cloud_watch/errors.rb +22 -0
  94. data/lib/aws/cloud_watch/metric.rb +135 -0
  95. data/lib/aws/cloud_watch/metric_alarm_collection.rb +160 -0
  96. data/lib/aws/cloud_watch/metric_collection.rb +131 -0
  97. data/lib/aws/cloud_watch/metric_statistics.rb +69 -0
  98. data/lib/aws/cloud_watch/request.rb +23 -0
  99. data/lib/aws/core.rb +587 -0
  100. data/lib/aws/core/async_handle.rb +90 -0
  101. data/lib/aws/core/autoloader.rb +64 -0
  102. data/lib/aws/core/cacheable.rb +78 -0
  103. data/lib/aws/core/client.rb +691 -0
  104. data/lib/aws/core/collection.rb +267 -0
  105. data/lib/aws/core/collection/simple.rb +82 -0
  106. data/lib/aws/core/collection/with_limit_and_next_token.rb +71 -0
  107. data/lib/aws/core/collection/with_next_token.rb +97 -0
  108. data/lib/aws/core/configuration.rb +546 -0
  109. data/lib/aws/core/credential_providers.rb +461 -0
  110. data/lib/aws/core/data.rb +247 -0
  111. data/lib/aws/core/http/curb_handler.rb +155 -0
  112. data/lib/aws/core/http/handler.rb +89 -0
  113. data/lib/aws/core/http/net_http_handler.rb +128 -0
  114. data/lib/aws/core/http/request.rb +263 -0
  115. data/lib/aws/core/http/response.rb +81 -0
  116. data/lib/aws/core/indifferent_hash.rb +88 -0
  117. data/lib/aws/core/inflection.rb +56 -0
  118. data/lib/aws/core/json_client.rb +47 -0
  119. data/lib/aws/core/json_parser.rb +76 -0
  120. data/lib/aws/core/json_request_builder.rb +35 -0
  121. data/lib/aws/core/json_response_parser.rb +79 -0
  122. data/lib/aws/core/lazy_error_classes.rb +90 -0
  123. data/lib/aws/core/log_formatter.rb +462 -0
  124. data/lib/aws/core/managed_file.rb +32 -0
  125. data/lib/aws/core/meta_utils.rb +45 -0
  126. data/lib/aws/core/model.rb +57 -0
  127. data/lib/aws/core/naming.rb +30 -0
  128. data/lib/aws/core/option_grammar.rb +735 -0
  129. data/lib/aws/core/options/json_serializer.rb +82 -0
  130. data/lib/aws/core/options/validator.rb +155 -0
  131. data/lib/aws/core/options/xml_serializer.rb +118 -0
  132. data/lib/aws/core/page_result.rb +75 -0
  133. data/lib/aws/core/policy.rb +916 -0
  134. data/lib/aws/core/query_client.rb +41 -0
  135. data/lib/aws/core/query_error_parser.rb +24 -0
  136. data/lib/aws/core/query_request_builder.rb +47 -0
  137. data/lib/aws/core/query_response_parser.rb +35 -0
  138. data/lib/aws/core/resource.rb +413 -0
  139. data/lib/aws/core/resource_cache.rb +40 -0
  140. data/lib/aws/core/response.rb +208 -0
  141. data/lib/aws/core/response_cache.rb +50 -0
  142. data/lib/aws/core/rest_error_parser.rb +24 -0
  143. data/lib/aws/core/rest_json_client.rb +40 -0
  144. data/lib/aws/core/rest_request_builder.rb +146 -0
  145. data/lib/aws/core/rest_response_parser.rb +66 -0
  146. data/lib/aws/core/rest_xml_client.rb +47 -0
  147. data/lib/aws/core/service_interface.rb +61 -0
  148. data/lib/aws/core/signature/version_2.rb +56 -0
  149. data/lib/aws/core/signature/version_3.rb +77 -0
  150. data/lib/aws/core/signature/version_3_https.rb +54 -0
  151. data/lib/aws/core/signature/version_4.rb +135 -0
  152. data/lib/aws/core/signer.rb +46 -0
  153. data/lib/aws/core/uri_escape.rb +44 -0
  154. data/lib/aws/core/xml/frame.rb +244 -0
  155. data/lib/aws/core/xml/frame_stack.rb +85 -0
  156. data/lib/aws/core/xml/grammar.rb +307 -0
  157. data/lib/aws/core/xml/parser.rb +70 -0
  158. data/lib/aws/core/xml/root_frame.rb +65 -0
  159. data/lib/aws/core/xml/sax_handlers/libxml.rb +47 -0
  160. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +55 -0
  161. data/lib/aws/core/xml/sax_handlers/ox.rb +41 -0
  162. data/lib/aws/core/xml/sax_handlers/rexml.rb +43 -0
  163. data/lib/aws/core/xml/stub.rb +123 -0
  164. data/lib/aws/data_pipeline.rb +73 -0
  165. data/lib/aws/data_pipeline/client.rb +339 -0
  166. data/lib/aws/data_pipeline/config.rb +18 -0
  167. data/lib/aws/data_pipeline/errors.rb +20 -0
  168. data/lib/aws/data_pipeline/request.rb +26 -0
  169. data/lib/aws/dynamo_db.rb +206 -0
  170. data/lib/aws/dynamo_db/attribute_collection.rb +461 -0
  171. data/lib/aws/dynamo_db/batch_get.rb +213 -0
  172. data/lib/aws/dynamo_db/batch_write.rb +252 -0
  173. data/lib/aws/dynamo_db/binary.rb +35 -0
  174. data/lib/aws/dynamo_db/client.rb +904 -0
  175. data/lib/aws/dynamo_db/config.rb +24 -0
  176. data/lib/aws/dynamo_db/errors.rb +20 -0
  177. data/lib/aws/dynamo_db/expectations.rb +40 -0
  178. data/lib/aws/dynamo_db/item.rb +133 -0
  179. data/lib/aws/dynamo_db/item_collection.rb +852 -0
  180. data/lib/aws/dynamo_db/item_data.rb +31 -0
  181. data/lib/aws/dynamo_db/keys.rb +41 -0
  182. data/lib/aws/dynamo_db/primary_key_element.rb +48 -0
  183. data/lib/aws/dynamo_db/request.rb +26 -0
  184. data/lib/aws/dynamo_db/resource.rb +33 -0
  185. data/lib/aws/dynamo_db/table.rb +491 -0
  186. data/lib/aws/dynamo_db/table_collection.rb +165 -0
  187. data/lib/aws/dynamo_db/types.rb +111 -0
  188. data/lib/aws/ec2.rb +440 -0
  189. data/lib/aws/ec2/attachment.rb +140 -0
  190. data/lib/aws/ec2/attachment_collection.rb +54 -0
  191. data/lib/aws/ec2/availability_zone.rb +86 -0
  192. data/lib/aws/ec2/availability_zone_collection.rb +43 -0
  193. data/lib/aws/ec2/block_device_mappings.rb +53 -0
  194. data/lib/aws/ec2/client.rb +3621 -0
  195. data/lib/aws/ec2/collection.rb +36 -0
  196. data/lib/aws/ec2/config.rb +18 -0
  197. data/lib/aws/ec2/config_transform.rb +63 -0
  198. data/lib/aws/ec2/customer_gateway.rb +90 -0
  199. data/lib/aws/ec2/customer_gateway_collection.rb +73 -0
  200. data/lib/aws/ec2/dhcp_options.rb +106 -0
  201. data/lib/aws/ec2/dhcp_options_collection.rb +87 -0
  202. data/lib/aws/ec2/elastic_ip.rb +208 -0
  203. data/lib/aws/ec2/elastic_ip_collection.rb +97 -0
  204. data/lib/aws/ec2/errors.rb +32 -0
  205. data/lib/aws/ec2/export_task.rb +120 -0
  206. data/lib/aws/ec2/export_task_collection.rb +67 -0
  207. data/lib/aws/ec2/filtered_collection.rb +89 -0
  208. data/lib/aws/ec2/has_permissions.rb +44 -0
  209. data/lib/aws/ec2/image.rb +264 -0
  210. data/lib/aws/ec2/image_collection.rb +228 -0
  211. data/lib/aws/ec2/instance.rb +796 -0
  212. data/lib/aws/ec2/instance_collection.rb +372 -0
  213. data/lib/aws/ec2/internet_gateway.rb +122 -0
  214. data/lib/aws/ec2/internet_gateway/attachment.rb +78 -0
  215. data/lib/aws/ec2/internet_gateway_collection.rb +54 -0
  216. data/lib/aws/ec2/key_pair.rb +82 -0
  217. data/lib/aws/ec2/key_pair_collection.rb +99 -0
  218. data/lib/aws/ec2/network_acl.rb +256 -0
  219. data/lib/aws/ec2/network_acl/association.rb +56 -0
  220. data/lib/aws/ec2/network_acl/entry.rb +147 -0
  221. data/lib/aws/ec2/network_acl_collection.rb +64 -0
  222. data/lib/aws/ec2/network_interface.rb +228 -0
  223. data/lib/aws/ec2/network_interface/attachment.rb +100 -0
  224. data/lib/aws/ec2/network_interface_collection.rb +103 -0
  225. data/lib/aws/ec2/permission_collection.rb +174 -0
  226. data/lib/aws/ec2/region.rb +106 -0
  227. data/lib/aws/ec2/region_collection.rb +51 -0
  228. data/lib/aws/ec2/request.rb +21 -0
  229. data/lib/aws/ec2/reserved_instances.rb +56 -0
  230. data/lib/aws/ec2/reserved_instances_collection.rb +40 -0
  231. data/lib/aws/ec2/reserved_instances_offering.rb +60 -0
  232. data/lib/aws/ec2/reserved_instances_offering_collection.rb +39 -0
  233. data/lib/aws/ec2/resource.rb +161 -0
  234. data/lib/aws/ec2/resource_tag_collection.rb +211 -0
  235. data/lib/aws/ec2/route_table.rb +205 -0
  236. data/lib/aws/ec2/route_table/association.rb +119 -0
  237. data/lib/aws/ec2/route_table/route.rb +119 -0
  238. data/lib/aws/ec2/route_table_collection.rb +72 -0
  239. data/lib/aws/ec2/security_group.rb +484 -0
  240. data/lib/aws/ec2/security_group/ip_permission.rb +135 -0
  241. data/lib/aws/ec2/security_group/ip_permission_collection.rb +82 -0
  242. data/lib/aws/ec2/security_group_collection.rb +135 -0
  243. data/lib/aws/ec2/snapshot.rb +143 -0
  244. data/lib/aws/ec2/snapshot_collection.rb +132 -0
  245. data/lib/aws/ec2/subnet.rb +161 -0
  246. data/lib/aws/ec2/subnet_collection.rb +115 -0
  247. data/lib/aws/ec2/tag.rb +81 -0
  248. data/lib/aws/ec2/tag_collection.rb +107 -0
  249. data/lib/aws/ec2/tagged_collection.rb +53 -0
  250. data/lib/aws/ec2/tagged_item.rb +85 -0
  251. data/lib/aws/ec2/volume.rb +174 -0
  252. data/lib/aws/ec2/volume_collection.rb +101 -0
  253. data/lib/aws/ec2/vpc.rb +166 -0
  254. data/lib/aws/ec2/vpc_collection.rb +70 -0
  255. data/lib/aws/ec2/vpn_connection.rb +99 -0
  256. data/lib/aws/ec2/vpn_connection/telemetry.rb +49 -0
  257. data/lib/aws/ec2/vpn_connection_collection.rb +96 -0
  258. data/lib/aws/ec2/vpn_gateway.rb +123 -0
  259. data/lib/aws/ec2/vpn_gateway/attachment.rb +45 -0
  260. data/lib/aws/ec2/vpn_gateway_collection.rb +77 -0
  261. data/lib/aws/elastic_beanstalk.rb +50 -0
  262. data/lib/aws/elastic_beanstalk/client.rb +867 -0
  263. data/lib/aws/elastic_beanstalk/config.rb +18 -0
  264. data/lib/aws/elastic_beanstalk/errors.rb +22 -0
  265. data/lib/aws/elastic_beanstalk/request.rb +29 -0
  266. data/lib/aws/elastic_transcoder.rb +30 -0
  267. data/lib/aws/elastic_transcoder/client.rb +672 -0
  268. data/lib/aws/elastic_transcoder/config.rb +18 -0
  269. data/lib/aws/elastic_transcoder/errors.rb +23 -0
  270. data/lib/aws/elastic_transcoder/request.rb +30 -0
  271. data/lib/aws/elasticache.rb +50 -0
  272. data/lib/aws/elasticache/client.rb +920 -0
  273. data/lib/aws/elasticache/config.rb +18 -0
  274. data/lib/aws/elasticache/errors.rb +22 -0
  275. data/lib/aws/elasticache/request.rb +23 -0
  276. data/lib/aws/elb.rb +67 -0
  277. data/lib/aws/elb/availability_zone_collection.rb +138 -0
  278. data/lib/aws/elb/backend_server_policy_collection.rb +139 -0
  279. data/lib/aws/elb/client.rb +500 -0
  280. data/lib/aws/elb/config.rb +18 -0
  281. data/lib/aws/elb/errors.rb +26 -0
  282. data/lib/aws/elb/instance_collection.rb +173 -0
  283. data/lib/aws/elb/listener.rb +190 -0
  284. data/lib/aws/elb/listener_collection.rb +113 -0
  285. data/lib/aws/elb/listener_opts.rb +45 -0
  286. data/lib/aws/elb/load_balancer.rb +281 -0
  287. data/lib/aws/elb/load_balancer_collection.rb +134 -0
  288. data/lib/aws/elb/load_balancer_policy.rb +93 -0
  289. data/lib/aws/elb/load_balancer_policy_collection.rb +208 -0
  290. data/lib/aws/elb/request.rb +29 -0
  291. data/lib/aws/emr.rb +86 -0
  292. data/lib/aws/emr/client.rb +330 -0
  293. data/lib/aws/emr/config.rb +18 -0
  294. data/lib/aws/emr/errors.rb +22 -0
  295. data/lib/aws/emr/instance_group.rb +138 -0
  296. data/lib/aws/emr/instance_group_collection.rb +82 -0
  297. data/lib/aws/emr/job_flow.rb +306 -0
  298. data/lib/aws/emr/job_flow_collection.rb +185 -0
  299. data/lib/aws/emr/request.rb +23 -0
  300. data/lib/aws/errors.rb +162 -0
  301. data/lib/aws/glacier.rb +80 -0
  302. data/lib/aws/glacier/archive.rb +56 -0
  303. data/lib/aws/glacier/archive_collection.rb +146 -0
  304. data/lib/aws/glacier/client.rb +286 -0
  305. data/lib/aws/glacier/config.rb +19 -0
  306. data/lib/aws/glacier/errors.rb +22 -0
  307. data/lib/aws/glacier/request.rb +34 -0
  308. data/lib/aws/glacier/resource.rb +30 -0
  309. data/lib/aws/glacier/vault.rb +145 -0
  310. data/lib/aws/glacier/vault_collection.rb +75 -0
  311. data/lib/aws/glacier/vault_notification_configuration.rb +29 -0
  312. data/lib/aws/iam.rb +420 -0
  313. data/lib/aws/iam/access_key.rb +180 -0
  314. data/lib/aws/iam/access_key_collection.rb +128 -0
  315. data/lib/aws/iam/account_alias_collection.rb +79 -0
  316. data/lib/aws/iam/client.rb +1092 -0
  317. data/lib/aws/iam/collection.rb +83 -0
  318. data/lib/aws/iam/config.rb +18 -0
  319. data/lib/aws/iam/errors.rb +22 -0
  320. data/lib/aws/iam/group.rb +111 -0
  321. data/lib/aws/iam/group_collection.rb +132 -0
  322. data/lib/aws/iam/group_policy_collection.rb +47 -0
  323. data/lib/aws/iam/group_user_collection.rb +84 -0
  324. data/lib/aws/iam/login_profile.rb +99 -0
  325. data/lib/aws/iam/mfa_device.rb +52 -0
  326. data/lib/aws/iam/mfa_device_collection.rb +127 -0
  327. data/lib/aws/iam/policy.rb +46 -0
  328. data/lib/aws/iam/policy_collection.rb +188 -0
  329. data/lib/aws/iam/request.rb +29 -0
  330. data/lib/aws/iam/resource.rb +62 -0
  331. data/lib/aws/iam/server_certificate.rb +141 -0
  332. data/lib/aws/iam/server_certificate_collection.rb +138 -0
  333. data/lib/aws/iam/signing_certificate.rb +169 -0
  334. data/lib/aws/iam/signing_certificate_collection.rb +131 -0
  335. data/lib/aws/iam/user.rb +205 -0
  336. data/lib/aws/iam/user_collection.rb +133 -0
  337. data/lib/aws/iam/user_group_collection.rb +98 -0
  338. data/lib/aws/iam/user_policy.rb +90 -0
  339. data/lib/aws/iam/user_policy_collection.rb +45 -0
  340. data/lib/aws/iam/virtual_mfa_device.rb +139 -0
  341. data/lib/aws/iam/virtual_mfa_device_collection.rb +73 -0
  342. data/lib/aws/import_export.rb +73 -0
  343. data/lib/aws/import_export/client.rb +109 -0
  344. data/lib/aws/import_export/config.rb +19 -0
  345. data/lib/aws/import_export/errors.rb +22 -0
  346. data/lib/aws/import_export/request.rb +23 -0
  347. data/lib/aws/ops_works.rb +30 -0
  348. data/lib/aws/ops_works/client.rb +713 -0
  349. data/lib/aws/ops_works/config.rb +18 -0
  350. data/lib/aws/ops_works/errors.rb +20 -0
  351. data/lib/aws/ops_works/request.rb +27 -0
  352. data/lib/aws/rails.rb +195 -0
  353. data/lib/aws/rds.rb +71 -0
  354. data/lib/aws/rds/client.rb +2228 -0
  355. data/lib/aws/rds/config.rb +18 -0
  356. data/lib/aws/rds/db_instance.rb +205 -0
  357. data/lib/aws/rds/db_instance_collection.rb +75 -0
  358. data/lib/aws/rds/db_snapshot.rb +163 -0
  359. data/lib/aws/rds/db_snapshot_collection.rb +89 -0
  360. data/lib/aws/rds/errors.rb +22 -0
  361. data/lib/aws/rds/request.rb +23 -0
  362. data/lib/aws/record.rb +116 -0
  363. data/lib/aws/record/abstract_base.rb +701 -0
  364. data/lib/aws/record/attributes.rb +384 -0
  365. data/lib/aws/record/conversion.rb +38 -0
  366. data/lib/aws/record/dirty_tracking.rb +285 -0
  367. data/lib/aws/record/errors.rb +143 -0
  368. data/lib/aws/record/exceptions.rb +48 -0
  369. data/lib/aws/record/hash_model.rb +161 -0
  370. data/lib/aws/record/hash_model/attributes.rb +197 -0
  371. data/lib/aws/record/hash_model/finder_methods.rb +172 -0
  372. data/lib/aws/record/hash_model/scope.rb +108 -0
  373. data/lib/aws/record/model.rb +427 -0
  374. data/lib/aws/record/model/attributes.rb +379 -0
  375. data/lib/aws/record/model/finder_methods.rb +232 -0
  376. data/lib/aws/record/model/scope.rb +213 -0
  377. data/lib/aws/record/naming.rb +31 -0
  378. data/lib/aws/record/scope.rb +199 -0
  379. data/lib/aws/record/validations.rb +712 -0
  380. data/lib/aws/record/validator.rb +246 -0
  381. data/lib/aws/record/validators/acceptance.rb +51 -0
  382. data/lib/aws/record/validators/block.rb +38 -0
  383. data/lib/aws/record/validators/confirmation.rb +43 -0
  384. data/lib/aws/record/validators/count.rb +108 -0
  385. data/lib/aws/record/validators/exclusion.rb +43 -0
  386. data/lib/aws/record/validators/format.rb +57 -0
  387. data/lib/aws/record/validators/inclusion.rb +56 -0
  388. data/lib/aws/record/validators/length.rb +107 -0
  389. data/lib/aws/record/validators/method.rb +33 -0
  390. data/lib/aws/record/validators/numericality.rb +138 -0
  391. data/lib/aws/record/validators/presence.rb +45 -0
  392. data/lib/aws/redshift.rb +52 -0
  393. data/lib/aws/redshift/client.rb +1291 -0
  394. data/lib/aws/redshift/config.rb +18 -0
  395. data/lib/aws/redshift/errors.rb +22 -0
  396. data/lib/aws/redshift/request.rb +29 -0
  397. data/lib/aws/route_53.rb +87 -0
  398. data/lib/aws/route_53/change_batch.rb +159 -0
  399. data/lib/aws/route_53/change_info.rb +72 -0
  400. data/lib/aws/route_53/client.rb +387 -0
  401. data/lib/aws/route_53/config.rb +18 -0
  402. data/lib/aws/route_53/errors.rb +22 -0
  403. data/lib/aws/route_53/hosted_zone.rb +111 -0
  404. data/lib/aws/route_53/hosted_zone_collection.rb +100 -0
  405. data/lib/aws/route_53/request.rb +23 -0
  406. data/lib/aws/route_53/resource_record_set.rb +237 -0
  407. data/lib/aws/route_53/resource_record_set_collection.rb +110 -0
  408. data/lib/aws/s3.rb +155 -0
  409. data/lib/aws/s3/access_control_list.rb +257 -0
  410. data/lib/aws/s3/acl_object.rb +264 -0
  411. data/lib/aws/s3/acl_options.rb +204 -0
  412. data/lib/aws/s3/bucket.rb +742 -0
  413. data/lib/aws/s3/bucket_collection.rb +160 -0
  414. data/lib/aws/s3/bucket_lifecycle_configuration.rb +458 -0
  415. data/lib/aws/s3/bucket_tag_collection.rb +109 -0
  416. data/lib/aws/s3/bucket_version_collection.rb +77 -0
  417. data/lib/aws/s3/cipher_io.rb +119 -0
  418. data/lib/aws/s3/client.rb +1700 -0
  419. data/lib/aws/s3/client/xml.rb +231 -0
  420. data/lib/aws/s3/config.rb +36 -0
  421. data/lib/aws/s3/cors_rule.rb +106 -0
  422. data/lib/aws/s3/cors_rule_collection.rb +192 -0
  423. data/lib/aws/s3/data_options.rb +185 -0
  424. data/lib/aws/s3/encryption_utils.rb +139 -0
  425. data/lib/aws/s3/errors.rb +94 -0
  426. data/lib/aws/s3/multipart_upload.rb +320 -0
  427. data/lib/aws/s3/multipart_upload_collection.rb +68 -0
  428. data/lib/aws/s3/object_collection.rb +355 -0
  429. data/lib/aws/s3/object_metadata.rb +96 -0
  430. data/lib/aws/s3/object_upload_collection.rb +77 -0
  431. data/lib/aws/s3/object_version.rb +148 -0
  432. data/lib/aws/s3/object_version_collection.rb +89 -0
  433. data/lib/aws/s3/paginated_collection.rb +75 -0
  434. data/lib/aws/s3/policy.rb +74 -0
  435. data/lib/aws/s3/prefix_and_delimiter_collection.rb +47 -0
  436. data/lib/aws/s3/prefixed_collection.rb +81 -0
  437. data/lib/aws/s3/presigned_post.rb +555 -0
  438. data/lib/aws/s3/request.rb +201 -0
  439. data/lib/aws/s3/s3_object.rb +1690 -0
  440. data/lib/aws/s3/tree.rb +118 -0
  441. data/lib/aws/s3/tree/branch_node.rb +68 -0
  442. data/lib/aws/s3/tree/child_collection.rb +104 -0
  443. data/lib/aws/s3/tree/leaf_node.rb +94 -0
  444. data/lib/aws/s3/tree/node.rb +22 -0
  445. data/lib/aws/s3/tree/parent.rb +87 -0
  446. data/lib/aws/s3/uploaded_part.rb +80 -0
  447. data/lib/aws/s3/uploaded_part_collection.rb +84 -0
  448. data/lib/aws/s3/website_configuration.rb +102 -0
  449. data/lib/aws/simple_db.rb +219 -0
  450. data/lib/aws/simple_db/attribute.rb +154 -0
  451. data/lib/aws/simple_db/attribute_collection.rb +231 -0
  452. data/lib/aws/simple_db/client.rb +287 -0
  453. data/lib/aws/simple_db/config.rb +20 -0
  454. data/lib/aws/simple_db/consistent_read_option.rb +42 -0
  455. data/lib/aws/simple_db/delete_attributes.rb +62 -0
  456. data/lib/aws/simple_db/domain.rb +121 -0
  457. data/lib/aws/simple_db/domain_collection.rb +86 -0
  458. data/lib/aws/simple_db/domain_metadata.rb +110 -0
  459. data/lib/aws/simple_db/errors.rb +55 -0
  460. data/lib/aws/simple_db/expect_condition_option.rb +45 -0
  461. data/lib/aws/simple_db/item.rb +93 -0
  462. data/lib/aws/simple_db/item_collection.rb +649 -0
  463. data/lib/aws/simple_db/item_data.rb +73 -0
  464. data/lib/aws/simple_db/put_attributes.rb +60 -0
  465. data/lib/aws/simple_db/request.rb +23 -0
  466. data/lib/aws/simple_email_service.rb +428 -0
  467. data/lib/aws/simple_email_service/client.rb +276 -0
  468. data/lib/aws/simple_email_service/config.rb +19 -0
  469. data/lib/aws/simple_email_service/email_address_collection.rb +69 -0
  470. data/lib/aws/simple_email_service/errors.rb +22 -0
  471. data/lib/aws/simple_email_service/identity.rb +209 -0
  472. data/lib/aws/simple_email_service/identity_collection.rb +81 -0
  473. data/lib/aws/simple_email_service/quotas.rb +64 -0
  474. data/lib/aws/simple_email_service/request.rb +27 -0
  475. data/lib/aws/simple_workflow.rb +228 -0
  476. data/lib/aws/simple_workflow/activity_task.rb +173 -0
  477. data/lib/aws/simple_workflow/activity_task_collection.rb +123 -0
  478. data/lib/aws/simple_workflow/activity_type.rb +131 -0
  479. data/lib/aws/simple_workflow/activity_type_collection.rb +93 -0
  480. data/lib/aws/simple_workflow/client.rb +1204 -0
  481. data/lib/aws/simple_workflow/config.rb +18 -0
  482. data/lib/aws/simple_workflow/count.rb +49 -0
  483. data/lib/aws/simple_workflow/decision_task.rb +603 -0
  484. data/lib/aws/simple_workflow/decision_task_collection.rb +225 -0
  485. data/lib/aws/simple_workflow/domain.rb +122 -0
  486. data/lib/aws/simple_workflow/domain_collection.rb +169 -0
  487. data/lib/aws/simple_workflow/errors.rb +20 -0
  488. data/lib/aws/simple_workflow/history_event.rb +276 -0
  489. data/lib/aws/simple_workflow/history_event_collection.rb +76 -0
  490. data/lib/aws/simple_workflow/option_formatters.rb +82 -0
  491. data/lib/aws/simple_workflow/request.rb +33 -0
  492. data/lib/aws/simple_workflow/resource.rb +94 -0
  493. data/lib/aws/simple_workflow/type.rb +89 -0
  494. data/lib/aws/simple_workflow/type_collection.rb +140 -0
  495. data/lib/aws/simple_workflow/workflow_execution.rb +386 -0
  496. data/lib/aws/simple_workflow/workflow_execution_collection.rb +617 -0
  497. data/lib/aws/simple_workflow/workflow_type.rb +177 -0
  498. data/lib/aws/simple_workflow/workflow_type_collection.rb +91 -0
  499. data/lib/aws/sns.rb +76 -0
  500. data/lib/aws/sns/client.rb +266 -0
  501. data/lib/aws/sns/config.rb +18 -0
  502. data/lib/aws/sns/errors.rb +22 -0
  503. data/lib/aws/sns/has_delivery_policy.rb +68 -0
  504. data/lib/aws/sns/policy.rb +47 -0
  505. data/lib/aws/sns/request.rb +23 -0
  506. data/lib/aws/sns/subscription.rb +144 -0
  507. data/lib/aws/sns/subscription_collection.rb +78 -0
  508. data/lib/aws/sns/topic.rb +403 -0
  509. data/lib/aws/sns/topic_collection.rb +62 -0
  510. data/lib/aws/sns/topic_subscription_collection.rb +54 -0
  511. data/lib/aws/sqs.rb +81 -0
  512. data/lib/aws/sqs/client.rb +258 -0
  513. data/lib/aws/sqs/config.rb +18 -0
  514. data/lib/aws/sqs/errors.rb +101 -0
  515. data/lib/aws/sqs/policy.rb +48 -0
  516. data/lib/aws/sqs/queue.rb +764 -0
  517. data/lib/aws/sqs/queue_collection.rb +174 -0
  518. data/lib/aws/sqs/received_message.rb +181 -0
  519. data/lib/aws/sqs/received_sns_message.rb +116 -0
  520. data/lib/aws/sqs/request.rb +67 -0
  521. data/lib/aws/storage_gateway.rb +73 -0
  522. data/lib/aws/storage_gateway/client.rb +472 -0
  523. data/lib/aws/storage_gateway/config.rb +18 -0
  524. data/lib/aws/storage_gateway/errors.rb +22 -0
  525. data/lib/aws/storage_gateway/request.rb +28 -0
  526. data/lib/aws/sts.rb +163 -0
  527. data/lib/aws/sts/client.rb +157 -0
  528. data/lib/aws/sts/config.rb +18 -0
  529. data/lib/aws/sts/errors.rb +22 -0
  530. data/lib/aws/sts/federated_session.rb +56 -0
  531. data/lib/aws/sts/policy.rb +30 -0
  532. data/lib/aws/sts/request.rb +29 -0
  533. data/lib/aws/sts/session.rb +48 -0
  534. data/lib/aws/version.rb +18 -0
  535. data/lib/net/http/connection_pool.rb +226 -0
  536. data/lib/net/http/connection_pool/connection.rb +189 -0
  537. data/lib/net/http/connection_pool/session.rb +126 -0
  538. data/rails/init.rb +15 -0
  539. metadata +632 -0
@@ -0,0 +1,154 @@
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 named item attribute in SimpleDB.
18
+ class Attribute
19
+
20
+ include Core::Model
21
+ include Enumerable
22
+ include ConsistentReadOption
23
+ include PutAttributes
24
+ include DeleteAttributes
25
+
26
+ # @private
27
+ def initialize item, name, options = {}
28
+ @item = item
29
+ @name = name
30
+ super
31
+ end
32
+
33
+ # @return [Item] The item this attribute belongs to.
34
+ attr_reader :item
35
+
36
+ # @return [String] The name of this attribute.
37
+ attr_reader :name
38
+
39
+ # Sets all values for this attribute, replacing current values.
40
+ #
41
+ # @example Setting a list of values
42
+ # attributes['colors'].set 'red', 'blue', 'green'
43
+ #
44
+ # @example Setting an array of values
45
+ # attributes['colors'].set ['red', 'blue']
46
+ #
47
+ # @param [String] values A list of attribute values to set.
48
+ # @return [nil]
49
+ def set *values
50
+ put(values, true)
51
+ nil
52
+ end
53
+
54
+ # Appends values to this attribute. Duplicate values are ignored
55
+ # by SimpleDB.
56
+ #
57
+ # @example Adding a list of values
58
+ #
59
+ # attributes['colors'].add 'red', 'blue', 'green'
60
+ #
61
+ # @example Adding an array of values
62
+ #
63
+ # attributes['colors'].add ['red', 'blue']
64
+ #
65
+ # @param [String] values A list of attribute values to add.
66
+ # @return [nil]
67
+ def add *values
68
+ put(values, false)
69
+ nil
70
+ end
71
+ alias_method :<<, :add
72
+
73
+ # Deletes this attribute or specific values from this attribute.
74
+ #
75
+ # @example Delete the attribute and all of its values
76
+ #
77
+ # item.attributes['color'].delete
78
+ #
79
+ # @example Delete specific attribute values
80
+ #
81
+ # item.attributes['color'].delete('red', 'blue')
82
+ #
83
+ # @param values One ore more values to remove from this attribute.
84
+ # If values is empty, then all attribute values are deleted
85
+ # (which deletes this attribute).
86
+ # @return [nil]
87
+ def delete *values
88
+ expect_opts = values.pop if values.last.kind_of?(Hash)
89
+
90
+ if values.empty?
91
+ delete_named_attributes(name, expect_opts || {})
92
+ else
93
+ delete_attribute_values(Hash[[[name, values]]].
94
+ merge(expect_opts || {}))
95
+ end
96
+ nil
97
+ end
98
+
99
+ # Yields once for each value on this attribute.
100
+ #
101
+ # @yield [attribute_value] Yields once for each domain in the account.
102
+ # @yieldparam [String] attribute_value
103
+ # @param [Hash] options
104
+ # @option options [Boolean] :consistent_read (false) A consistent read
105
+ # returns values that reflects all writes that received a successful
106
+ # response prior to the read.
107
+ # @return [nil]
108
+ def each options = {}, &block
109
+
110
+ resp = client.get_attributes(
111
+ :domain_name => item.domain.name,
112
+ :item_name => item.name,
113
+ :attribute_names => [name],
114
+ :consistent_read => consistent_read(options))
115
+
116
+ resp.attributes.each do |attribute|
117
+ yield(attribute.value)
118
+ end
119
+
120
+ nil
121
+
122
+ end
123
+
124
+ # Returns all values for this attribute as an array of strings.
125
+ #
126
+ # @example
127
+ # item.attributes['ratings'].values
128
+ # #=> ['5', '3', '4']
129
+ #
130
+ # @param [Hash] options
131
+ # @option options [Boolean] :consistent_read (false) A consistent read
132
+ # returns values that reflects all writes that received a successful
133
+ # response prior to the read.
134
+ # @return [Array<String>] An array of attribute values
135
+ def values options = {}
136
+ values = []
137
+ self.each(options) do |value|
138
+ values << value
139
+ end
140
+ values
141
+ end
142
+
143
+ # @private
144
+ protected
145
+ def put values, replace
146
+ expect_opts = values.pop if values.last.kind_of?(Hash)
147
+ do_put(attribute_hashes(Hash[[[name, values]]],
148
+ replace),
149
+ expect_opts || {})
150
+ end
151
+
152
+ end
153
+ end
154
+ end
@@ -0,0 +1,231 @@
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
+ class AttributeCollection
17
+
18
+ include Core::Model
19
+ include Enumerable
20
+ include ConsistentReadOption
21
+ include PutAttributes
22
+ include DeleteAttributes
23
+
24
+ # @param [Item] item The item to create an attribute collection for.
25
+ # @return [AttributeCollection]
26
+ def initialize item, options = {}
27
+ @item = item
28
+ super
29
+ end
30
+
31
+ # @return [Item] The item this collection belongs to.
32
+ attr_reader :item
33
+
34
+ # Returns an Attribute with the given name.
35
+ #
36
+ # @note This does not make a request to SimpleDB.
37
+ #
38
+ # You can ask for any attribute by name. The attribute may or may not
39
+ # actually exist in SimpleDB.
40
+ #
41
+ # @example Get an attribute by symbol or string name
42
+ # colors = item.attributes[:colors]
43
+ # colors = item.attributes['colors']
44
+ # @param [String, Symbol] attribute_name name of the attribute to get.
45
+ # @return [Item] An item with the given name.
46
+ def [] attribute_name
47
+ Attribute.new(item, attribute_name.to_s)
48
+ end
49
+
50
+ # Sets the values for a given attribute.
51
+ #
52
+ # @example Replace all of the values for the named attribute.
53
+ # item.attributes[:color] = 'red', 'blue'
54
+ # @return This method returns the values passed to it.
55
+ def []= attribute_name, *values
56
+ self[attribute_name].set(*values)
57
+ end
58
+
59
+ # Yields all attribute values with their names.
60
+ #
61
+ # @example Getting all values for an item
62
+ #
63
+ # item.attributes.each_value do |name, value|
64
+ # puts "#{name}: #{value}"
65
+ # end
66
+ #
67
+ # @yield [attribute_name, attribute_value] Yields once for every
68
+ # attribute value on the item.
69
+ # @yieldparam [String] attribute_name
70
+ # @yieldparam [String] attribute_value
71
+ # @param [Hash] options
72
+ # @option options [Boolean] :consistent_read (false) Causes this
73
+ # method to yield the most current attributes for this item.
74
+ # @return [nil]
75
+ def each_value options = {}, &block
76
+
77
+ list = client.get_attributes(
78
+ :domain_name => item.domain.name,
79
+ :item_name => item.name,
80
+ :consistent_read => consistent_read(options))
81
+
82
+ list.attributes.each do |attribute|
83
+ attribute_name = attribute.name
84
+ attribute_value = attribute.value
85
+ yield(attribute_name, attribute_value)
86
+ end
87
+
88
+ nil
89
+
90
+ end
91
+
92
+ # Yields all attribute for this item.
93
+ #
94
+ # @example Getting all attributes for an item
95
+ #
96
+ # item.attributes.each do |attribute|
97
+ # puts attribute.name
98
+ # end
99
+ #
100
+ # @yield [attribute] Yields once for every attribute
101
+ # on the item. Yields each attribute only one time, even it
102
+ # has multiple values.
103
+ # @yieldparam [Attribute] attribute
104
+ # @param [Hash] options
105
+ # @option options [Boolean] :consistent_read (false) Causes this
106
+ # method to yield the most current attributes for this item.
107
+ # @return [nil]
108
+ def each options = {}, &block
109
+ yielded = {}
110
+ each_value(options) do |attribute_name, attribute_value|
111
+ unless yielded[attribute_name]
112
+ attribute = self[attribute_name]
113
+ yield(attribute)
114
+ yielded[attribute_name] = true
115
+ end
116
+ end
117
+ nil
118
+ end
119
+
120
+ # Replaces attributes for the {#item}.
121
+ #
122
+ # The +attributes_hash+ should have attribute names as keys. The
123
+ # hash values should be either strings or arrays of strings.
124
+ #
125
+ # Attributes not named in this hash are left alone. Attributes named
126
+ # in this hash are replaced.
127
+ #
128
+ # @example
129
+ #
130
+ # item.attributes.set(
131
+ # 'colors' => ['red', 'blue'],
132
+ # 'category' => 'clearance')
133
+ #
134
+ # @param [Hash] attributes
135
+ # @return [nil]
136
+ def replace attributes
137
+ do_put(attribute_hashes(attributes, true), attributes)
138
+ end
139
+ alias_method :set, :replace
140
+
141
+ # Adds values to attributes on the {#item}.
142
+ #
143
+ # The +attributes_hash+ should have attribute names as keys. The
144
+ # hash values should be either strings or arrays of strings.
145
+ #
146
+ # @example
147
+ #
148
+ # item.attributes.add(
149
+ # 'colors' => ['red', 'blue'],
150
+ # 'category' => 'clearance')
151
+ #
152
+ # @param[Hash] attribute_hash
153
+ # @return [nil]
154
+ def add attributes
155
+ do_put(attribute_hashes(attributes, false), attributes)
156
+ end
157
+
158
+ # Perform a mixed update of added and replace attributes.
159
+ #
160
+ # item.attributes.put(
161
+ # :add => { 'colors' => %w(green blue), 'tags' => 'cool' }
162
+ # :replace => { 'quantity' => 5 }
163
+ # )
164
+ #
165
+ # @param [Hash] options
166
+ # @option options [Hash] :add A hash of attribute names and values to
167
+ # append to this item.
168
+ # @option options [Hash] :replace A hash of attribute names and values to
169
+ # add to this item. If there are currently attributes of the same
170
+ # name they will be replaced (not appended to).
171
+ # @option options [Hash] :replace
172
+ # @return [nil]
173
+ def put options = {}
174
+ add = options[:add] || {}
175
+ replace = options[:replace] || {}
176
+ attributes = attribute_hashes(add, false)
177
+ attributes += attribute_hashes(replace, true)
178
+ do_put(attributes, options)
179
+ end
180
+
181
+ # Returns a hash of all attributes (names and values).
182
+ # The attribute names are strings and the values are
183
+ # arrays of strings.
184
+ #
185
+ # @example
186
+ # item.attributes.to_h
187
+ # #=> { 'colors' => ['red','blue'], 'size' => ['large'] }
188
+ #
189
+ # @param [Hash] options
190
+ # @option options [Boolean] :consistent_read (false) Causes this
191
+ # method to return the most current attributes values.
192
+ # @return [Hash]
193
+ def to_h options = {}
194
+ hash = {}
195
+ each_value(options) do |attribute_name,attribute_value|
196
+ hash[attribute_name] ||= []
197
+ hash[attribute_name] << attribute_value
198
+ end
199
+ hash
200
+ end
201
+
202
+ # Delete one or more attributes from {#item}.
203
+ #
204
+ # @example Delete a list of attributes by name (accepts a list or array)
205
+ # item.attributes.delete 'size', 'color'
206
+ # item.attributes.delete %w(size color)
207
+ #
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
+ #
220
+ def delete *args
221
+ if args.size == 1 and args.first.kind_of?(Hash)
222
+ delete_attribute_values(args.first)
223
+ else
224
+ delete_named_attributes(*args)
225
+ end
226
+ nil
227
+ end
228
+
229
+ end
230
+ end
231
+ end
@@ -0,0 +1,287 @@
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
+ # Client class for Amazon SimpleDB.
18
+ class Client < Core::QueryClient
19
+
20
+ # @private
21
+ REGION_US_E1 = 'sdb.amazonaws.com'
22
+
23
+ # @private
24
+ REGION_US_W1 = 'sdb.us-west-1.amazonaws.com'
25
+
26
+ # @private
27
+ REGION_EU_W1 = 'sdb.eu-west-1.amazonaws.com'
28
+
29
+ # @private
30
+ REGION_APAC_SE1 = 'sdb.ap-southeast-1.amazonaws.com'
31
+
32
+ # @private
33
+ CACHEABLE_REQUESTS = Set[
34
+ :domain_metadata,
35
+ :get_attributes,
36
+ :list_domains,
37
+ :select,
38
+ ]
39
+
40
+ # @param [String] name
41
+ # @return [Boolean] Returns true if the given name is a valid
42
+ # Amazon SimpleDB domain name.
43
+ # @private
44
+ def valid_domain_name? name
45
+ self.class.valid_domain_name?(name)
46
+ end
47
+
48
+ # @param [String] name
49
+ # @return [Boolean] Returns true if the given name is a valid
50
+ # Amazon SimpleDB domain name.
51
+ def self.valid_domain_name? name
52
+ name.to_s =~ /^[a-z_\-\.]{3,255}$/i ? true : false
53
+ end
54
+
55
+ # client methods #
56
+
57
+ # @!method batch_delete_attributes(options = {})
58
+ # Calls the BatchDeleteAttributes API operation.
59
+ # @param [Hash] options
60
+ # * +:domain_name+ - *required* - (String) The name of the domain in
61
+ # which the attributes are being deleted.
62
+ # * +:items+ - *required* - (Array<Hash>) A list of items on which to
63
+ # perform the operation.
64
+ # * +:name+ - *required* - (String)
65
+ # * +:attributes+ - (Array<Hash>)
66
+ # * +:name+ - *required* - (String) The name of the attribute.
67
+ # * +:value+ - *required* - (String) The value of the attribute.
68
+ # @return [Core::Response]
69
+ # The #data method of the response object returns
70
+ # a hash with the following structure:
71
+ # * +:response_metadata+ - (Hash)
72
+ # * +:box_usage+ - (Numeric)
73
+ # * +:response_id+ - (String)
74
+
75
+ # @!method batch_put_attributes(options = {})
76
+ # Calls the BatchPutAttributes API operation.
77
+ # @param [Hash] options
78
+ # * +:domain_name+ - *required* - (String) The name of the domain in
79
+ # which the attributes are being stored.
80
+ # * +:items+ - *required* - (Array<Hash>) A list of items on which to
81
+ # perform the operation.
82
+ # * +:name+ - *required* - (String) The name of the replaceable item.
83
+ # * +:attributes+ - *required* - (Array<Hash>) The list of attributes
84
+ # for a replaceable item.
85
+ # * +:name+ - *required* - (String) The name of the replaceable
86
+ # attribute.
87
+ # * +:value+ - *required* - (String) The value of the replaceable
88
+ # attribute.
89
+ # * +:replace+ - (Boolean) A flag specifying whether or not to
90
+ # replace the attribute/value pair or to add a new
91
+ # attribute/value pair. The default setting is +false+ .
92
+ # @return [Core::Response]
93
+ # The #data method of the response object returns
94
+ # a hash with the following structure:
95
+ # * +:response_metadata+ - (Hash)
96
+ # * +:box_usage+ - (Numeric)
97
+ # * +:response_id+ - (String)
98
+
99
+ # @!method create_domain(options = {})
100
+ # Calls the CreateDomain API operation.
101
+ # @param [Hash] options
102
+ # * +:domain_name+ - *required* - (String) The name of the domain to
103
+ # create. The name can range between 3 and 255 characters and can
104
+ # contain the following characters: a-z, A-Z, 0-9, '_', '-', and '.'.
105
+ # @return [Core::Response]
106
+ # The #data method of the response object returns
107
+ # a hash with the following structure:
108
+ # * +:response_metadata+ - (Hash)
109
+ # * +:box_usage+ - (Numeric)
110
+ # * +:response_id+ - (String)
111
+
112
+ # @!method delete_attributes(options = {})
113
+ # Calls the DeleteAttributes API operation.
114
+ # @param [Hash] options
115
+ # * +:domain_name+ - *required* - (String) The name of the domain in
116
+ # which to perform the operation.
117
+ # * +:item_name+ - *required* - (String) The name of the item. Similar
118
+ # to rows on a spreadsheet, items represent individual objects that
119
+ # contain one or more value-attribute pairs.
120
+ # * +:attributes+ - (Array<Hash>) A list of Attributes. Similar to
121
+ # columns on a spreadsheet, attributes represent categories of data
122
+ # that can be assigned to items.
123
+ # * +:name+ - *required* - (String) The name of the attribute.
124
+ # * +:value+ - (String) The value of the attribute.
125
+ # * +:expected+ - (Hash) The update condition which, if specified,
126
+ # determines whether the specified attributes will be deleted or not.
127
+ # The update condition must be satisfied in order for this request to
128
+ # be processed and the attributes to be deleted.
129
+ # * +:name+ - (String) The name of the attribute involved in the
130
+ # condition.
131
+ # * +:value+ - (String) The value of an attribute. This value can
132
+ # only be specified when the Exists parameter is equal to +true+ .
133
+ # * +:exists+ - (Boolean) A value specifying whether or not the
134
+ # specified attribute must exist with the specified value in order
135
+ # for the update condition to be satisfied. Specify +true+ if the
136
+ # attribute must exist for the update condition to be satisfied.
137
+ # Specify +false+ if the attribute should not exist in order for
138
+ # the update condition to be satisfied.
139
+ # @return [Core::Response]
140
+ # The #data method of the response object returns
141
+ # a hash with the following structure:
142
+ # * +:response_metadata+ - (Hash)
143
+ # * +:box_usage+ - (Numeric)
144
+ # * +:response_id+ - (String)
145
+
146
+ # @!method delete_domain(options = {})
147
+ # Calls the DeleteDomain API operation.
148
+ # @param [Hash] options
149
+ # * +:domain_name+ - *required* - (String) The name of the domain to
150
+ # delete.
151
+ # @return [Core::Response]
152
+ # The #data method of the response object returns
153
+ # a hash with the following structure:
154
+ # * +:response_metadata+ - (Hash)
155
+ # * +:box_usage+ - (Numeric)
156
+ # * +:response_id+ - (String)
157
+
158
+ # @!method domain_metadata(options = {})
159
+ # Calls the DomainMetadata API operation.
160
+ # @param [Hash] options
161
+ # * +:domain_name+ - *required* - (String) The name of the domain for
162
+ # which to display the metadata of.
163
+ # @return [Core::Response]
164
+ # The #data method of the response object returns
165
+ # a hash with the following structure:
166
+ # * +:item_count+ - (Integer)
167
+ # * +:item_names_size_bytes+ - (Integer)
168
+ # * +:attribute_name_count+ - (Integer)
169
+ # * +:attribute_names_size_bytes+ - (Integer)
170
+ # * +:attribute_value_count+ - (Integer)
171
+ # * +:attribute_values_size_bytes+ - (Integer)
172
+ # * +:timestamp+ - (Integer)
173
+ # * +:response_metadata+ - (Hash)
174
+ # * +:box_usage+ - (Numeric)
175
+ # * +:response_id+ - (String)
176
+
177
+ # @!method get_attributes(options = {})
178
+ # Calls the GetAttributes API operation.
179
+ # @param [Hash] options
180
+ # * +:domain_name+ - *required* - (String) The name of the domain in
181
+ # which to perform the operation.
182
+ # * +:item_name+ - *required* - (String) The name of the item.
183
+ # * +:attribute_names+ - (Array<String>) The names of the attributes.
184
+ # * +:consistent_read+ - (Boolean) Determines whether or not strong
185
+ # consistency should be enforced when data is read from SimpleDB. If
186
+ # +true+ , any data previously written to SimpleDB will be returned.
187
+ # Otherwise, results will be consistent eventually, and the client
188
+ # may not see data that was written immediately before your read.
189
+ # @return [Core::Response]
190
+ # The #data method of the response object returns
191
+ # a hash with the following structure:
192
+ # * +:attributes+ - (Array<Hash>)
193
+ # * +:name+ - (String)
194
+ # * +:alternate_name_encoding+ - (String)
195
+ # * +:value+ - (String)
196
+ # * +:alternate_value_encoding+ - (String)
197
+ # * +:response_metadata+ - (Hash)
198
+ # * +:box_usage+ - (Numeric)
199
+ # * +:response_id+ - (String)
200
+
201
+ # @!method list_domains(options = {})
202
+ # Calls the ListDomains API operation.
203
+ # @param [Hash] options
204
+ # * +:max_number_of_domains+ - (Integer) The maximum number of domain
205
+ # names you want returned. The range is 1 to 100. The default setting
206
+ # is 100.
207
+ # * +:next_token+ - (String) A string informing Amazon SimpleDB where
208
+ # to start the next list of domain names.
209
+ # @return [Core::Response]
210
+ # The #data method of the response object returns
211
+ # a hash with the following structure:
212
+ # * +:domain_names+ - (Array<String>)
213
+ # * +:next_token+ - (String)
214
+ # * +:response_metadata+ - (Hash)
215
+ # * +:box_usage+ - (Numeric)
216
+ # * +:response_id+ - (String)
217
+
218
+ # @!method put_attributes(options = {})
219
+ # Calls the PutAttributes API operation.
220
+ # @param [Hash] options
221
+ # * +:domain_name+ - *required* - (String) The name of the domain in
222
+ # which to perform the operation.
223
+ # * +:item_name+ - *required* - (String) The name of the item.
224
+ # * +:attributes+ - *required* - (Array<Hash>) The list of attributes.
225
+ # * +:name+ - *required* - (String) The name of the replaceable
226
+ # attribute.
227
+ # * +:value+ - *required* - (String) The value of the replaceable
228
+ # attribute.
229
+ # * +:replace+ - (Boolean) A flag specifying whether or not to
230
+ # replace the attribute/value pair or to add a new attribute/value
231
+ # pair. The default setting is +false+ .
232
+ # * +:expected+ - (Hash) The update condition which, if specified,
233
+ # determines whether the specified attributes will be updated or not.
234
+ # The update condition must be satisfied in order for this request to
235
+ # be processed and the attributes to be updated.
236
+ # * +:name+ - (String) The name of the attribute involved in the
237
+ # condition.
238
+ # * +:value+ - (String) The value of an attribute. This value can
239
+ # only be specified when the Exists parameter is equal to +true+ .
240
+ # * +:exists+ - (Boolean) A value specifying whether or not the
241
+ # specified attribute must exist with the specified value in order
242
+ # for the update condition to be satisfied. Specify +true+ if the
243
+ # attribute must exist for the update condition to be satisfied.
244
+ # Specify +false+ if the attribute should not exist in order for
245
+ # the update condition to be satisfied.
246
+ # @return [Core::Response]
247
+ # The #data method of the response object returns
248
+ # a hash with the following structure:
249
+ # * +:response_metadata+ - (Hash)
250
+ # * +:box_usage+ - (Numeric)
251
+ # * +:response_id+ - (String)
252
+
253
+ # @!method select(options = {})
254
+ # Calls the Select API operation.
255
+ # @param [Hash] options
256
+ # * +:select_expression+ - *required* - (String) The expression used to
257
+ # query the domain.
258
+ # * +:next_token+ - (String) A string informing Amazon SimpleDB where
259
+ # to start the next list of ItemNames.
260
+ # * +:consistent_read+ - (Boolean) Determines whether or not strong
261
+ # consistency should be enforced when data is read from SimpleDB. If
262
+ # +true+ , any data previously written to SimpleDB will be returned.
263
+ # Otherwise, results will be consistent eventually, and the client
264
+ # may not see data that was written immediately before your read.
265
+ # @return [Core::Response]
266
+ # The #data method of the response object returns
267
+ # a hash with the following structure:
268
+ # * +:items+ - (Array<Hash>)
269
+ # * +:name+ - (String)
270
+ # * +:alternate_name_encoding+ - (String)
271
+ # * +:attributes+ - (Array<Hash>)
272
+ # * +:name+ - (String)
273
+ # * +:alternate_name_encoding+ - (String)
274
+ # * +:value+ - (String)
275
+ # * +:alternate_value_encoding+ - (String)
276
+ # * +:next_token+ - (String)
277
+ # * +:response_metadata+ - (Hash)
278
+ # * +:box_usage+ - (Numeric)
279
+ # * +:response_id+ - (String)
280
+
281
+ # end client methods #
282
+
283
+ define_client_methods('2009-04-15')
284
+
285
+ end
286
+ end
287
+ end