aws_sdk 3.1.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 (390) hide show
  1. data/lib/aws-sdk.rb +14 -0
  2. data/lib/aws.rb +49 -0
  3. data/lib/aws/api_config/AutoScaling-2011-01-01.yml +791 -0
  4. data/lib/aws/api_config/CloudFormation-2010-05-15.yml +303 -0
  5. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +540 -0
  6. data/lib/aws/api_config/EC2-2011-12-15.yml +3638 -0
  7. data/lib/aws/api_config/EC2-2012-04-01.yml +3739 -0
  8. data/lib/aws/api_config/ELB-2011-08-15.yml +512 -0
  9. data/lib/aws/api_config/IAM-2010-05-08.yml +1221 -0
  10. data/lib/aws/api_config/SNS-2010-03-31.yml +248 -0
  11. data/lib/aws/api_config/SQS-2011-10-01.yml +314 -0
  12. data/lib/aws/api_config/STS-2011-06-15.yml +54 -0
  13. data/lib/aws/api_config/SimpleDB-2009-04-15.yml +305 -0
  14. data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +231 -0
  15. data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +721 -0
  16. data/lib/aws/auto_scaling.rb +162 -0
  17. data/lib/aws/auto_scaling/activity.rb +102 -0
  18. data/lib/aws/auto_scaling/activity_collection.rb +82 -0
  19. data/lib/aws/auto_scaling/client.rb +765 -0
  20. data/lib/aws/auto_scaling/config.rb +18 -0
  21. data/lib/aws/auto_scaling/errors.rb +22 -0
  22. data/lib/aws/auto_scaling/group.rb +420 -0
  23. data/lib/aws/auto_scaling/group_collection.rb +96 -0
  24. data/lib/aws/auto_scaling/group_options.rb +146 -0
  25. data/lib/aws/auto_scaling/instance.rb +192 -0
  26. data/lib/aws/auto_scaling/instance_collection.rb +63 -0
  27. data/lib/aws/auto_scaling/launch_configuration.rb +150 -0
  28. data/lib/aws/auto_scaling/launch_configuration_collection.rb +144 -0
  29. data/lib/aws/auto_scaling/notification_configuration.rb +89 -0
  30. data/lib/aws/auto_scaling/notification_configuration_collection.rb +184 -0
  31. data/lib/aws/auto_scaling/request.rb +23 -0
  32. data/lib/aws/auto_scaling/scaling_policy.rb +125 -0
  33. data/lib/aws/auto_scaling/scaling_policy_collection.rb +72 -0
  34. data/lib/aws/auto_scaling/scaling_policy_options.rb +61 -0
  35. data/lib/aws/auto_scaling/scheduled_action.rb +145 -0
  36. data/lib/aws/auto_scaling/scheduled_action_collection.rb +195 -0
  37. data/lib/aws/auto_scaling/tag.rb +59 -0
  38. data/lib/aws/auto_scaling/tag_collection.rb +112 -0
  39. data/lib/aws/cloud_formation.rb +270 -0
  40. data/lib/aws/cloud_formation/client.rb +339 -0
  41. data/lib/aws/cloud_formation/config.rb +18 -0
  42. data/lib/aws/cloud_formation/errors.rb +22 -0
  43. data/lib/aws/cloud_formation/request.rb +29 -0
  44. data/lib/aws/cloud_formation/stack.rb +256 -0
  45. data/lib/aws/cloud_formation/stack_collection.rb +206 -0
  46. data/lib/aws/cloud_formation/stack_event.rb +75 -0
  47. data/lib/aws/cloud_formation/stack_event_collection.rb +47 -0
  48. data/lib/aws/cloud_formation/stack_options.rb +72 -0
  49. data/lib/aws/cloud_formation/stack_output.rb +53 -0
  50. data/lib/aws/cloud_formation/stack_resource.rb +117 -0
  51. data/lib/aws/cloud_formation/stack_resource_collection.rb +84 -0
  52. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +72 -0
  53. data/lib/aws/cloud_formation/stack_summary.rb +71 -0
  54. data/lib/aws/cloud_formation/stack_summary_collection.rb +127 -0
  55. data/lib/aws/core.rb +474 -0
  56. data/lib/aws/core/async_handle.rb +90 -0
  57. data/lib/aws/core/autoloader.rb +64 -0
  58. data/lib/aws/core/cacheable.rb +78 -0
  59. data/lib/aws/core/client.rb +541 -0
  60. data/lib/aws/core/client/query_json.rb +110 -0
  61. data/lib/aws/core/client/query_xml.rb +122 -0
  62. data/lib/aws/core/collection.rb +234 -0
  63. data/lib/aws/core/collection/limitable.rb +99 -0
  64. data/lib/aws/core/collection/simple.rb +90 -0
  65. data/lib/aws/core/configuration.rb +445 -0
  66. data/lib/aws/core/data.rb +242 -0
  67. data/lib/aws/core/default_signer.rb +67 -0
  68. data/lib/aws/core/http/curb_handler.rb +136 -0
  69. data/lib/aws/core/http/handler.rb +77 -0
  70. data/lib/aws/core/http/httparty_handler.rb +114 -0
  71. data/lib/aws/core/http/net_http_handler.rb +85 -0
  72. data/lib/aws/core/http/request.rb +250 -0
  73. data/lib/aws/core/http/response.rb +74 -0
  74. data/lib/aws/core/indifferent_hash.rb +88 -0
  75. data/lib/aws/core/inflection.rb +47 -0
  76. data/lib/aws/core/lazy_error_classes.rb +90 -0
  77. data/lib/aws/core/log_formatter.rb +454 -0
  78. data/lib/aws/core/meta_utils.rb +45 -0
  79. data/lib/aws/core/model.rb +57 -0
  80. data/lib/aws/core/naming.rb +30 -0
  81. data/lib/aws/core/option_grammar.rb +700 -0
  82. data/lib/aws/core/page_result.rb +73 -0
  83. data/lib/aws/core/policy.rb +916 -0
  84. data/lib/aws/core/resource.rb +408 -0
  85. data/lib/aws/core/resource_cache.rb +40 -0
  86. data/lib/aws/core/response.rb +202 -0
  87. data/lib/aws/core/response_cache.rb +50 -0
  88. data/lib/aws/core/service_interface.rb +61 -0
  89. data/lib/aws/core/session_signer.rb +90 -0
  90. data/lib/aws/core/signature/version_2.rb +42 -0
  91. data/lib/aws/core/signature/version_3.rb +73 -0
  92. data/lib/aws/core/signature/version_3_http.rb +72 -0
  93. data/lib/aws/core/signature/version_4.rb +138 -0
  94. data/lib/aws/core/uri_escape.rb +42 -0
  95. data/lib/aws/core/xml/frame.rb +242 -0
  96. data/lib/aws/core/xml/frame_stack.rb +85 -0
  97. data/lib/aws/core/xml/grammar.rb +299 -0
  98. data/lib/aws/core/xml/parser.rb +70 -0
  99. data/lib/aws/core/xml/root_frame.rb +65 -0
  100. data/lib/aws/core/xml/sax_handlers/libxml.rb +47 -0
  101. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +55 -0
  102. data/lib/aws/core/xml/sax_handlers/ox.rb +41 -0
  103. data/lib/aws/core/xml/sax_handlers/rexml.rb +43 -0
  104. data/lib/aws/core/xml/stub.rb +123 -0
  105. data/lib/aws/dynamo_db.rb +213 -0
  106. data/lib/aws/dynamo_db/attribute_collection.rb +460 -0
  107. data/lib/aws/dynamo_db/batch_get.rb +206 -0
  108. data/lib/aws/dynamo_db/batch_write.rb +251 -0
  109. data/lib/aws/dynamo_db/client.rb +888 -0
  110. data/lib/aws/dynamo_db/config.rb +20 -0
  111. data/lib/aws/dynamo_db/errors.rb +20 -0
  112. data/lib/aws/dynamo_db/expectations.rb +40 -0
  113. data/lib/aws/dynamo_db/item.rb +130 -0
  114. data/lib/aws/dynamo_db/item_collection.rb +852 -0
  115. data/lib/aws/dynamo_db/item_data.rb +31 -0
  116. data/lib/aws/dynamo_db/keys.rb +41 -0
  117. data/lib/aws/dynamo_db/primary_key_element.rb +47 -0
  118. data/lib/aws/dynamo_db/request.rb +28 -0
  119. data/lib/aws/dynamo_db/resource.rb +33 -0
  120. data/lib/aws/dynamo_db/table.rb +489 -0
  121. data/lib/aws/dynamo_db/table_collection.rb +165 -0
  122. data/lib/aws/dynamo_db/types.rb +86 -0
  123. data/lib/aws/ec2.rb +431 -0
  124. data/lib/aws/ec2/attachment.rb +140 -0
  125. data/lib/aws/ec2/attachment_collection.rb +54 -0
  126. data/lib/aws/ec2/availability_zone.rb +87 -0
  127. data/lib/aws/ec2/availability_zone_collection.rb +43 -0
  128. data/lib/aws/ec2/block_device_mappings.rb +53 -0
  129. data/lib/aws/ec2/client.rb +4121 -0
  130. data/lib/aws/ec2/collection.rb +36 -0
  131. data/lib/aws/ec2/config.rb +18 -0
  132. data/lib/aws/ec2/config_transform.rb +63 -0
  133. data/lib/aws/ec2/customer_gateway.rb +90 -0
  134. data/lib/aws/ec2/customer_gateway_collection.rb +73 -0
  135. data/lib/aws/ec2/dhcp_options.rb +106 -0
  136. data/lib/aws/ec2/dhcp_options_collection.rb +87 -0
  137. data/lib/aws/ec2/elastic_ip.rb +157 -0
  138. data/lib/aws/ec2/elastic_ip_collection.rb +97 -0
  139. data/lib/aws/ec2/errors.rb +32 -0
  140. data/lib/aws/ec2/filtered_collection.rb +90 -0
  141. data/lib/aws/ec2/has_permissions.rb +44 -0
  142. data/lib/aws/ec2/image.rb +254 -0
  143. data/lib/aws/ec2/image_collection.rb +228 -0
  144. data/lib/aws/ec2/instance.rb +669 -0
  145. data/lib/aws/ec2/instance_collection.rb +346 -0
  146. data/lib/aws/ec2/internet_gateway.rb +122 -0
  147. data/lib/aws/ec2/internet_gateway/attachment.rb +78 -0
  148. data/lib/aws/ec2/internet_gateway_collection.rb +54 -0
  149. data/lib/aws/ec2/key_pair.rb +82 -0
  150. data/lib/aws/ec2/key_pair_collection.rb +99 -0
  151. data/lib/aws/ec2/network_acl.rb +256 -0
  152. data/lib/aws/ec2/network_acl/association.rb +56 -0
  153. data/lib/aws/ec2/network_acl/entry.rb +147 -0
  154. data/lib/aws/ec2/network_acl_collection.rb +64 -0
  155. data/lib/aws/ec2/network_interface.rb +228 -0
  156. data/lib/aws/ec2/network_interface/attachment.rb +100 -0
  157. data/lib/aws/ec2/network_interface_collection.rb +103 -0
  158. data/lib/aws/ec2/permission_collection.rb +174 -0
  159. data/lib/aws/ec2/region.rb +97 -0
  160. data/lib/aws/ec2/region_collection.rb +51 -0
  161. data/lib/aws/ec2/request.rb +22 -0
  162. data/lib/aws/ec2/reserved_instances.rb +53 -0
  163. data/lib/aws/ec2/reserved_instances_collection.rb +40 -0
  164. data/lib/aws/ec2/reserved_instances_offering.rb +58 -0
  165. data/lib/aws/ec2/reserved_instances_offering_collection.rb +39 -0
  166. data/lib/aws/ec2/resource.rb +161 -0
  167. data/lib/aws/ec2/resource_tag_collection.rb +211 -0
  168. data/lib/aws/ec2/route_table.rb +205 -0
  169. data/lib/aws/ec2/route_table/association.rb +119 -0
  170. data/lib/aws/ec2/route_table/route.rb +113 -0
  171. data/lib/aws/ec2/route_table_collection.rb +72 -0
  172. data/lib/aws/ec2/security_group.rb +458 -0
  173. data/lib/aws/ec2/security_group/egress_ip_permission_collection.rb +63 -0
  174. data/lib/aws/ec2/security_group/ingress_ip_permission_collection.rb +61 -0
  175. data/lib/aws/ec2/security_group/ip_permission.rb +128 -0
  176. data/lib/aws/ec2/security_group_collection.rb +135 -0
  177. data/lib/aws/ec2/snapshot.rb +143 -0
  178. data/lib/aws/ec2/snapshot_collection.rb +131 -0
  179. data/lib/aws/ec2/subnet.rb +161 -0
  180. data/lib/aws/ec2/subnet_collection.rb +115 -0
  181. data/lib/aws/ec2/tag.rb +81 -0
  182. data/lib/aws/ec2/tag_collection.rb +107 -0
  183. data/lib/aws/ec2/tagged_collection.rb +53 -0
  184. data/lib/aws/ec2/tagged_item.rb +85 -0
  185. data/lib/aws/ec2/volume.rb +170 -0
  186. data/lib/aws/ec2/volume_collection.rb +97 -0
  187. data/lib/aws/ec2/vpc.rb +166 -0
  188. data/lib/aws/ec2/vpc_collection.rb +70 -0
  189. data/lib/aws/ec2/vpn_connection.rb +99 -0
  190. data/lib/aws/ec2/vpn_connection/telemetry.rb +49 -0
  191. data/lib/aws/ec2/vpn_connection_collection.rb +96 -0
  192. data/lib/aws/ec2/vpn_gateway.rb +123 -0
  193. data/lib/aws/ec2/vpn_gateway/attachment.rb +45 -0
  194. data/lib/aws/ec2/vpn_gateway_collection.rb +77 -0
  195. data/lib/aws/elb.rb +65 -0
  196. data/lib/aws/elb/availability_zone_collection.rb +138 -0
  197. data/lib/aws/elb/backend_server_policy_collection.rb +140 -0
  198. data/lib/aws/elb/client.rb +539 -0
  199. data/lib/aws/elb/config.rb +18 -0
  200. data/lib/aws/elb/errors.rb +26 -0
  201. data/lib/aws/elb/instance_collection.rb +174 -0
  202. data/lib/aws/elb/listener.rb +189 -0
  203. data/lib/aws/elb/listener_collection.rb +119 -0
  204. data/lib/aws/elb/listener_opts.rb +45 -0
  205. data/lib/aws/elb/load_balancer.rb +253 -0
  206. data/lib/aws/elb/load_balancer_collection.rb +113 -0
  207. data/lib/aws/elb/load_balancer_policy.rb +93 -0
  208. data/lib/aws/elb/load_balancer_policy_collection.rb +208 -0
  209. data/lib/aws/elb/request.rb +23 -0
  210. data/lib/aws/errors.rb +122 -0
  211. data/lib/aws/iam.rb +418 -0
  212. data/lib/aws/iam/access_key.rb +180 -0
  213. data/lib/aws/iam/access_key_collection.rb +128 -0
  214. data/lib/aws/iam/account_alias_collection.rb +79 -0
  215. data/lib/aws/iam/client.rb +1609 -0
  216. data/lib/aws/iam/collection.rb +83 -0
  217. data/lib/aws/iam/config.rb +18 -0
  218. data/lib/aws/iam/errors.rb +22 -0
  219. data/lib/aws/iam/group.rb +111 -0
  220. data/lib/aws/iam/group_collection.rb +132 -0
  221. data/lib/aws/iam/group_policy_collection.rb +47 -0
  222. data/lib/aws/iam/group_user_collection.rb +84 -0
  223. data/lib/aws/iam/login_profile.rb +99 -0
  224. data/lib/aws/iam/mfa_device.rb +52 -0
  225. data/lib/aws/iam/mfa_device_collection.rb +127 -0
  226. data/lib/aws/iam/policy.rb +46 -0
  227. data/lib/aws/iam/policy_collection.rb +188 -0
  228. data/lib/aws/iam/request.rb +29 -0
  229. data/lib/aws/iam/resource.rb +71 -0
  230. data/lib/aws/iam/server_certificate.rb +141 -0
  231. data/lib/aws/iam/server_certificate_collection.rb +138 -0
  232. data/lib/aws/iam/signing_certificate.rb +169 -0
  233. data/lib/aws/iam/signing_certificate_collection.rb +131 -0
  234. data/lib/aws/iam/user.rb +205 -0
  235. data/lib/aws/iam/user_collection.rb +133 -0
  236. data/lib/aws/iam/user_group_collection.rb +98 -0
  237. data/lib/aws/iam/user_policy.rb +90 -0
  238. data/lib/aws/iam/user_policy_collection.rb +45 -0
  239. data/lib/aws/iam/virtual_mfa_device.rb +139 -0
  240. data/lib/aws/iam/virtual_mfa_device_collection.rb +73 -0
  241. data/lib/aws/rails.rb +195 -0
  242. data/lib/aws/record.rb +116 -0
  243. data/lib/aws/record/abstract_base.rb +645 -0
  244. data/lib/aws/record/attributes.rb +384 -0
  245. data/lib/aws/record/conversion.rb +38 -0
  246. data/lib/aws/record/dirty_tracking.rb +285 -0
  247. data/lib/aws/record/errors.rb +143 -0
  248. data/lib/aws/record/exceptions.rb +48 -0
  249. data/lib/aws/record/hash_model.rb +161 -0
  250. data/lib/aws/record/hash_model/attributes.rb +182 -0
  251. data/lib/aws/record/hash_model/finder_methods.rb +172 -0
  252. data/lib/aws/record/hash_model/scope.rb +108 -0
  253. data/lib/aws/record/model.rb +427 -0
  254. data/lib/aws/record/model/attributes.rb +379 -0
  255. data/lib/aws/record/model/finder_methods.rb +232 -0
  256. data/lib/aws/record/model/scope.rb +213 -0
  257. data/lib/aws/record/naming.rb +31 -0
  258. data/lib/aws/record/scope.rb +199 -0
  259. data/lib/aws/record/validations.rb +694 -0
  260. data/lib/aws/record/validator.rb +237 -0
  261. data/lib/aws/record/validators/acceptance.rb +51 -0
  262. data/lib/aws/record/validators/block.rb +38 -0
  263. data/lib/aws/record/validators/confirmation.rb +43 -0
  264. data/lib/aws/record/validators/count.rb +108 -0
  265. data/lib/aws/record/validators/exclusion.rb +43 -0
  266. data/lib/aws/record/validators/format.rb +57 -0
  267. data/lib/aws/record/validators/inclusion.rb +56 -0
  268. data/lib/aws/record/validators/length.rb +107 -0
  269. data/lib/aws/record/validators/method.rb +33 -0
  270. data/lib/aws/record/validators/numericality.rb +138 -0
  271. data/lib/aws/record/validators/presence.rb +45 -0
  272. data/lib/aws/s3.rb +135 -0
  273. data/lib/aws/s3/access_control_list.rb +250 -0
  274. data/lib/aws/s3/acl_object.rb +264 -0
  275. data/lib/aws/s3/bucket.rb +393 -0
  276. data/lib/aws/s3/bucket_collection.rb +143 -0
  277. data/lib/aws/s3/bucket_lifecycle_configuration.rb +360 -0
  278. data/lib/aws/s3/bucket_version_collection.rb +77 -0
  279. data/lib/aws/s3/client.rb +1184 -0
  280. data/lib/aws/s3/client/xml.rb +177 -0
  281. data/lib/aws/s3/config.rb +26 -0
  282. data/lib/aws/s3/data_options.rb +100 -0
  283. data/lib/aws/s3/errors.rb +81 -0
  284. data/lib/aws/s3/multipart_upload.rb +317 -0
  285. data/lib/aws/s3/multipart_upload_collection.rb +68 -0
  286. data/lib/aws/s3/object_collection.rb +337 -0
  287. data/lib/aws/s3/object_metadata.rb +96 -0
  288. data/lib/aws/s3/object_upload_collection.rb +77 -0
  289. data/lib/aws/s3/object_version.rb +143 -0
  290. data/lib/aws/s3/object_version_collection.rb +89 -0
  291. data/lib/aws/s3/paginated_collection.rb +75 -0
  292. data/lib/aws/s3/policy.rb +74 -0
  293. data/lib/aws/s3/prefix_and_delimiter_collection.rb +47 -0
  294. data/lib/aws/s3/prefixed_collection.rb +81 -0
  295. data/lib/aws/s3/presigned_post.rb +553 -0
  296. data/lib/aws/s3/request.rb +201 -0
  297. data/lib/aws/s3/s3_object.rb +1037 -0
  298. data/lib/aws/s3/tree.rb +118 -0
  299. data/lib/aws/s3/tree/branch_node.rb +68 -0
  300. data/lib/aws/s3/tree/child_collection.rb +104 -0
  301. data/lib/aws/s3/tree/leaf_node.rb +94 -0
  302. data/lib/aws/s3/tree/node.rb +22 -0
  303. data/lib/aws/s3/tree/parent.rb +87 -0
  304. data/lib/aws/s3/uploaded_part.rb +80 -0
  305. data/lib/aws/s3/uploaded_part_collection.rb +84 -0
  306. data/lib/aws/simple_db.rb +217 -0
  307. data/lib/aws/simple_db/attribute.rb +154 -0
  308. data/lib/aws/simple_db/attribute_collection.rb +231 -0
  309. data/lib/aws/simple_db/client.rb +349 -0
  310. data/lib/aws/simple_db/config.rb +20 -0
  311. data/lib/aws/simple_db/consistent_read_option.rb +42 -0
  312. data/lib/aws/simple_db/delete_attributes.rb +62 -0
  313. data/lib/aws/simple_db/domain.rb +121 -0
  314. data/lib/aws/simple_db/domain_collection.rb +113 -0
  315. data/lib/aws/simple_db/domain_metadata.rb +110 -0
  316. data/lib/aws/simple_db/errors.rb +55 -0
  317. data/lib/aws/simple_db/expect_condition_option.rb +45 -0
  318. data/lib/aws/simple_db/item.rb +93 -0
  319. data/lib/aws/simple_db/item_collection.rb +649 -0
  320. data/lib/aws/simple_db/item_data.rb +73 -0
  321. data/lib/aws/simple_db/put_attributes.rb +60 -0
  322. data/lib/aws/simple_db/request.rb +23 -0
  323. data/lib/aws/simple_email_service.rb +426 -0
  324. data/lib/aws/simple_email_service/client.rb +286 -0
  325. data/lib/aws/simple_email_service/config.rb +19 -0
  326. data/lib/aws/simple_email_service/email_address_collection.rb +69 -0
  327. data/lib/aws/simple_email_service/errors.rb +22 -0
  328. data/lib/aws/simple_email_service/identity.rb +91 -0
  329. data/lib/aws/simple_email_service/identity_collection.rb +81 -0
  330. data/lib/aws/simple_email_service/quotas.rb +64 -0
  331. data/lib/aws/simple_email_service/request.rb +29 -0
  332. data/lib/aws/simple_workflow.rb +226 -0
  333. data/lib/aws/simple_workflow/activity_task.rb +173 -0
  334. data/lib/aws/simple_workflow/activity_task_collection.rb +123 -0
  335. data/lib/aws/simple_workflow/activity_type.rb +131 -0
  336. data/lib/aws/simple_workflow/activity_type_collection.rb +93 -0
  337. data/lib/aws/simple_workflow/client.rb +1434 -0
  338. data/lib/aws/simple_workflow/config.rb +18 -0
  339. data/lib/aws/simple_workflow/count.rb +49 -0
  340. data/lib/aws/simple_workflow/decision_task.rb +601 -0
  341. data/lib/aws/simple_workflow/decision_task_collection.rb +225 -0
  342. data/lib/aws/simple_workflow/domain.rb +122 -0
  343. data/lib/aws/simple_workflow/domain_collection.rb +169 -0
  344. data/lib/aws/simple_workflow/errors.rb +20 -0
  345. data/lib/aws/simple_workflow/history_event.rb +276 -0
  346. data/lib/aws/simple_workflow/history_event_collection.rb +76 -0
  347. data/lib/aws/simple_workflow/option_formatters.rb +82 -0
  348. data/lib/aws/simple_workflow/request.rb +36 -0
  349. data/lib/aws/simple_workflow/resource.rb +94 -0
  350. data/lib/aws/simple_workflow/type.rb +89 -0
  351. data/lib/aws/simple_workflow/type_collection.rb +140 -0
  352. data/lib/aws/simple_workflow/workflow_execution.rb +386 -0
  353. data/lib/aws/simple_workflow/workflow_execution_collection.rb +617 -0
  354. data/lib/aws/simple_workflow/workflow_type.rb +177 -0
  355. data/lib/aws/simple_workflow/workflow_type_collection.rb +91 -0
  356. data/lib/aws/sns.rb +74 -0
  357. data/lib/aws/sns/client.rb +371 -0
  358. data/lib/aws/sns/config.rb +18 -0
  359. data/lib/aws/sns/errors.rb +22 -0
  360. data/lib/aws/sns/has_delivery_policy.rb +68 -0
  361. data/lib/aws/sns/policy.rb +47 -0
  362. data/lib/aws/sns/request.rb +23 -0
  363. data/lib/aws/sns/subscription.rb +144 -0
  364. data/lib/aws/sns/subscription_collection.rb +80 -0
  365. data/lib/aws/sns/topic.rb +403 -0
  366. data/lib/aws/sns/topic_collection.rb +67 -0
  367. data/lib/aws/sns/topic_subscription_collection.rb +55 -0
  368. data/lib/aws/sqs.rb +79 -0
  369. data/lib/aws/sqs/client.rb +360 -0
  370. data/lib/aws/sqs/config.rb +18 -0
  371. data/lib/aws/sqs/errors.rb +101 -0
  372. data/lib/aws/sqs/policy.rb +48 -0
  373. data/lib/aws/sqs/queue.rb +725 -0
  374. data/lib/aws/sqs/queue_collection.rb +170 -0
  375. data/lib/aws/sqs/received_message.rb +181 -0
  376. data/lib/aws/sqs/received_sns_message.rb +112 -0
  377. data/lib/aws/sqs/request.rb +43 -0
  378. data/lib/aws/sts.rb +152 -0
  379. data/lib/aws/sts/client.rb +105 -0
  380. data/lib/aws/sts/config.rb +18 -0
  381. data/lib/aws/sts/errors.rb +22 -0
  382. data/lib/aws/sts/federated_session.rb +56 -0
  383. data/lib/aws/sts/policy.rb +30 -0
  384. data/lib/aws/sts/request.rb +29 -0
  385. data/lib/aws/sts/session.rb +48 -0
  386. data/lib/net/http/connection_pool.rb +210 -0
  387. data/lib/net/http/connection_pool/connection.rb +132 -0
  388. data/lib/net/http/connection_pool/session.rb +93 -0
  389. data/lib/user.rb +49 -0
  390. metadata +433 -0
@@ -0,0 +1,80 @@
1
+ # Copyright 2011-2012 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 S3
16
+
17
+ # Represents a part of a multipart upload that has been uploaded
18
+ # to S3.
19
+ #
20
+ # @example Get the total size of the uploaded parts
21
+ # upload.parts.inject(0) { |sum, part| sum + part.size }
22
+ class UploadedPart
23
+
24
+ include Core::Model
25
+
26
+ # @return [MultipartUpload] The upload to which this belongs.
27
+ attr_reader :upload
28
+
29
+ # @return [Integer] The part number.
30
+ attr_reader :part_number
31
+
32
+ # @private
33
+ def initialize(upload, part_number, opts = {})
34
+ @upload = upload
35
+ @part_number = part_number
36
+ super
37
+ end
38
+
39
+ def ==(other)
40
+ other.kind_of?(UploadedPart) and
41
+ other.upload == upload and
42
+ other.part_number == part_number
43
+ end
44
+ alias_method :eql?, :==
45
+
46
+ # @return [Integer] The size of the part as it currently
47
+ # exists in S3.
48
+ def size
49
+ get_attribute(:size)
50
+ end
51
+
52
+ # @return [DateTime] The time at which the part was last
53
+ # modified.
54
+ def last_modified
55
+ get_attribute(:last_modified)
56
+ end
57
+
58
+ # @return [String] The ETag of the part.
59
+ def etag
60
+ get_attribute(:etag)
61
+ end
62
+
63
+ # @private
64
+ private
65
+ def get_attribute(name)
66
+ (resp = client.list_parts(:bucket_name => upload.object.bucket.name,
67
+ :key => upload.object.key,
68
+ :upload_id => upload.id,
69
+ :part_number_marker => part_number-1,
70
+ :max_parts => 1) and
71
+ part = resp.parts.first and
72
+ part.part_number == part_number and
73
+ part.send(name)) or
74
+ raise "part 3 of upload abc123 does not exist"
75
+ end
76
+
77
+ end
78
+
79
+ end
80
+ end
@@ -0,0 +1,84 @@
1
+ # Copyright 2011-2012 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 S3
16
+
17
+ # Represents the collection of parts that have been uploaded for
18
+ # a given multipart upload. You can get an instance of this
19
+ # class by calling {MultipartUpload#parts}.
20
+ #
21
+ # @example Get the total size of the uploaded parts
22
+ # upload.parts.inject(0) { |sum, part| sum + part.size }
23
+ class UploadedPartCollection
24
+
25
+ include Enumerable
26
+ include Core::Model
27
+ include PaginatedCollection
28
+
29
+ # @return [MultipartUpload] The upload to which the parts belong.
30
+ attr_reader :upload
31
+
32
+ # @private
33
+ def initialize(upload, opts = {})
34
+ @upload = upload
35
+ super
36
+ end
37
+
38
+ # @return [UploadedPart] An object representing the part with
39
+ # the given part number.
40
+ #
41
+ # @param [Integer] number The part number.
42
+ def [](number)
43
+ UploadedPart.new(upload, number)
44
+ end
45
+
46
+ # @private
47
+ protected
48
+ def each_member_in_page(page, &block)
49
+ page.parts.each do |part_info|
50
+ part = UploadedPart.new(upload, part_info.part_number)
51
+ yield(part)
52
+ end
53
+ end
54
+
55
+ # @private
56
+ protected
57
+ def list_options(options)
58
+ opts = super
59
+ opts.merge!(:bucket_name => upload.object.bucket.name,
60
+ :key => upload.object.key,
61
+ :upload_id => upload.id)
62
+ opts
63
+ end
64
+
65
+ # @private
66
+ protected
67
+ def limit_param; :max_parts; end
68
+
69
+ # @private
70
+ protected
71
+ def list_request(options)
72
+ client.list_parts(options)
73
+ end
74
+
75
+ # @private
76
+ protected
77
+ def pagination_markers
78
+ [:part_number_marker]
79
+ end
80
+
81
+ end
82
+
83
+ end
84
+ end
@@ -0,0 +1,217 @@
1
+ # Copyright 2011-2012 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
+ require 'aws/core'
15
+ require 'aws/simple_db/config'
16
+
17
+ module AWS
18
+
19
+ # This class is the starting point for working with Amazon SimpleDB.
20
+ #
21
+ # To use Amazon SimpleDB you must first
22
+ # {sign up here}[http://aws.amazon.com/simpledb/].
23
+ #
24
+ # For more information about Amazon SimpleDB:
25
+ #
26
+ # * {Amazon SimpleDB}[http://aws.amazon.com/simpledb/]
27
+ # * {Amazon SimpleDB Documentation}[http://aws.amazon.com/documentation/simpledb/]
28
+ #
29
+ # = Credentials
30
+ #
31
+ # You can setup default credentials for all AWS services via
32
+ # AWS.config:
33
+ #
34
+ # AWS.config(
35
+ # :access_key_id => 'YOUR_ACCESS_KEY_ID',
36
+ # :secret_access_key => 'YOUR_SECRET_ACCESS_KEY')
37
+ #
38
+ # Or you can set them directly on the SimpleDB interface:
39
+ #
40
+ # sdb = AWS::SimpleDB.new(
41
+ # :access_key_id => 'YOUR_ACCESS_KEY_ID',
42
+ # :secret_access_key => 'YOUR_SECRET_ACCESS_KEY')
43
+ #
44
+ # = Understanding the SimpleDB Interface
45
+ #
46
+ # SimpleDB stores data in a hierarchy of:
47
+ #
48
+ # Domains > Items > Attributes
49
+ #
50
+ # These are modeled with the following classes:
51
+ #
52
+ # * {DomainCollection}
53
+ # * {Domain}
54
+ # * {ItemCollection}
55
+ # * {Item}
56
+ # * {AttributeCollection}
57
+ # * {Attribute}
58
+ #
59
+ # The collection classes listed above make it easy to enumerate,
60
+ # the objects they represent. They also make it easy to perform
61
+ # bulk operations on all objects in that collection.
62
+ #
63
+ # = Domains
64
+ #
65
+ # Domains are like database tables. A domain must exist before you can
66
+ # write to it. To create a domain:
67
+ #
68
+ # sdb = SimpleDB.new
69
+ # domain = sdb.domains.create('mydomain')
70
+ #
71
+ # For more information about working with domains see {DomainCollection}
72
+ # and {Domain}.
73
+ #
74
+ # = Items & Attributes
75
+ #
76
+ # Items exist in SimpleDB when they have attributes. You can delete an
77
+ # item by removing all of its attributes. You create an item by adding
78
+ # an attribute to it.
79
+ #
80
+ # The following example illustrates how you can reference an item that
81
+ # does not exist yet:
82
+ #
83
+ # sdb = SimpleDB.new
84
+ #
85
+ # # this domain is empty, it has no items
86
+ # domain = sdb.domains.create('newdomain')
87
+ # domain.items.collect(&:name)
88
+ # #=> []
89
+ #
90
+ # # this item doesn't exist yet, so it has no attributes
91
+ # item = domain.items['newitem']
92
+ # item.attributes.collect(&:name)
93
+ # #=> []
94
+ #
95
+ # # the item has no attributes
96
+ # tags = item.attributes['tags']
97
+ # tags.values
98
+ # #=> []
99
+ #
100
+ # To create the item in SimpleDB you just need to add an attribute.
101
+ #
102
+ # tags.add %w(first new)
103
+ #
104
+ # domain.items.collect(&:name)
105
+ # #=> ['newitem']
106
+ #
107
+ # item.attributes.collect(&:name)
108
+ # #=> ['tags']
109
+ #
110
+ # tags.values
111
+ # #=> ['first', 'new']
112
+ #
113
+ # For more information about working with items and attributes, see:
114
+ #
115
+ # * {ItemCollection}
116
+ # * {Item}
117
+ # * {AttributeCollection}
118
+ # * {Attribute}
119
+ #
120
+ # = Lazy Execution
121
+ #
122
+ # Requests are not made until necessary. This means you can drill down
123
+ # all the way to an attribute, by name, without making any requets
124
+ # to SimpleDB.
125
+ #
126
+ # # makes no request to SimpleDB
127
+ # sdb = SimpleDB.new
128
+ # colors = sdb.domains['mydomain'].items['car'].attributes['colors']
129
+ #
130
+ # # one request to get the values for 'colors'
131
+ # puts colors.values
132
+ #
133
+ # # one request to add blue and green
134
+ # colors.add 'blue', 'green'
135
+ #
136
+ # # one request to delete the colors attribute
137
+ # colors.delete
138
+ #
139
+ class SimpleDB
140
+
141
+ AWS.register_autoloads(self, 'aws/simple_db') do
142
+ autoload :Attribute, 'attribute'
143
+ autoload :AttributeCollection, 'attribute_collection'
144
+ autoload :Client, 'client'
145
+ autoload :ConsistentReadOption, 'consistent_read_option'
146
+ autoload :DeleteAttributes, 'delete_attributes'
147
+ autoload :Domain, 'domain'
148
+ autoload :DomainCollection, 'domain_collection'
149
+ autoload :DomainMetadata, 'domain_metadata'
150
+ autoload :Errors, 'errors'
151
+ autoload :ExpectConditionOption, 'expect_condition_option'
152
+ autoload :Item, 'item'
153
+ autoload :ItemCollection, 'item_collection'
154
+ autoload :ItemData, 'item_data'
155
+ autoload :PutAttributes, 'put_attributes'
156
+ autoload :Request, 'request'
157
+ end
158
+
159
+ include Core::ServiceInterface
160
+
161
+ # Returns a collection object that represents the domains in your
162
+ # account.
163
+ #
164
+ # @return [DomainCollection] Returns a collection representing all your
165
+ # domains.
166
+ def domains
167
+ DomainCollection.new(:config => config)
168
+ end
169
+
170
+ # Call this method with a block. Code executed inside the block
171
+ # make consistent reads until the block ends.
172
+ #
173
+ # AWS::SimpleDB.consistent_reads do
174
+ # # ...
175
+ # end
176
+ #
177
+ # === Other Modes
178
+ #
179
+ # You can also use this same function to disable consistent reads insie
180
+ # a block. This is useful if you have consistent reads enabled by
181
+ # default:
182
+ #
183
+ # AWS::SimpleDB.consistent_reads(false) do
184
+ # # ...
185
+ # end
186
+ #
187
+ # @param [Boolean] state (true) When true, all SimpleDB read operations
188
+ # will be consistent reads inside the block. When false, all
189
+ # reads operations will not be consistent reads. The previous state
190
+ # will be restored after the block executes.
191
+ # @return Returns the final block value.
192
+ def self.consistent_reads state = true, &block
193
+ begin
194
+ prev_state = Thread.current['_simple_db_consistent_reads_']
195
+ Thread.current['_simple_db_consistent_reads_'] = state
196
+ yield
197
+ ensure
198
+ Thread.current['_simple_db_consistent_reads_'] = prev_state
199
+ end
200
+ end
201
+
202
+ # @return [Boolean] Returns true if we are inside an AWS::SimpleDB
203
+ # #consistent_reads method block.
204
+ # @private
205
+ def self.in_consistent_reads_block?
206
+ !Thread.current['_simple_db_consistent_reads_'].nil?
207
+ end
208
+
209
+ # @return [Boolean] Returns true if the consistent_reads block has
210
+ # a true state, false otherwise.
211
+ # @private
212
+ def self.consistent_reads_state
213
+ Thread.current['_simple_db_consistent_reads_']
214
+ end
215
+
216
+ end
217
+ end
@@ -0,0 +1,154 @@
1
+ # Copyright 2011-2012 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