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,67 @@
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 SNS
16
+
17
+ class TopicCollection
18
+
19
+ include Core::Model
20
+ include Enumerable
21
+
22
+
23
+ # Creates and returns a new SNS Topic.
24
+ # @return [Topic] Returns a new topic with the given name.
25
+ def create name
26
+ response = client.create_topic(:name => name)
27
+ Topic.new(response.topic_arn, :config => config)
28
+ end
29
+
30
+ # @param [String] topic_arn An AWS SNS Topic ARN. It should be
31
+ # formatted something like:
32
+ #
33
+ # arn:aws:sns:us-east-1:123456789012:TopicName
34
+ #
35
+ # @return [Topic] Returns a topic with the given Topic ARN.
36
+ def [] topic_arn
37
+ unless topic_arn =~ /^arn:aws:sns:/
38
+ raise ArgumentError, "invalid topic arn `#{topic_arn}`"
39
+ end
40
+ Topic.new(topic_arn, :config => config)
41
+ end
42
+
43
+ # Yields once for each topic.
44
+ # @yieldparam [Topic] topic
45
+ # @return [nil]
46
+ def each &block
47
+
48
+ next_token = nil
49
+
50
+ begin
51
+
52
+ list_options = next_token ? { :next_token => next_token } : {}
53
+ response = client.list_topics(list_options)
54
+
55
+ response.topics.each do |t|
56
+ topic = Topic.new(t.topic_arn, :config => config)
57
+ yield(topic)
58
+ end
59
+
60
+ end while(next_token = response.data[:next_token])
61
+ nil
62
+
63
+ end
64
+
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,55 @@
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 SNS
16
+
17
+ # Represents the collection of all subscriptions for a particular
18
+ # topic. For example:
19
+ #
20
+ # # get the e-mail addressess that receive plain-text
21
+ # # messages sent to the topic
22
+ # topic.subscriptions.
23
+ # select { |s| s.protocol == :email }.
24
+ # map(&:endpoint)
25
+ class TopicSubscriptionCollection < SubscriptionCollection
26
+
27
+ include Core::Model
28
+ include Enumerable
29
+
30
+ # @return [Topic] The topic to which all the subscriptions
31
+ # belong.
32
+ attr_reader :topic
33
+
34
+ # @private
35
+ def initialize(topic, opts = {})
36
+ @topic = topic
37
+ super
38
+ end
39
+
40
+ # @private
41
+ protected
42
+ def list_request
43
+ :list_subscriptions_by_topic
44
+ end
45
+
46
+ # @private
47
+ protected
48
+ def request_opts
49
+ { :topic_arn => topic.arn }
50
+ end
51
+
52
+ end
53
+
54
+ end
55
+ end
@@ -0,0 +1,79 @@
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/sqs/config'
16
+
17
+ module AWS
18
+
19
+ # Provides an expressive, object-oriented interface to Amazon SQS.
20
+ #
21
+ # == Credentials
22
+ #
23
+ # You can setup default credentials for all AWS services via
24
+ # AWS.config:
25
+ #
26
+ # AWS.config(
27
+ # :access_key_id => 'YOUR_ACCESS_KEY_ID',
28
+ # :secret_access_key => 'YOUR_SECRET_ACCESS_KEY')
29
+ #
30
+ # Or you can set them directly on the SQS interface:
31
+ #
32
+ # sqs = AWS::SQS.new(
33
+ # :access_key_id => 'YOUR_ACCESS_KEY_ID',
34
+ # :secret_access_key => 'YOUR_SECRET_ACCESS_KEY')
35
+ #
36
+ # == Queues and Messages
37
+ #
38
+ # Amazon SQS is a distributed queue system that enables web
39
+ # service applications to quickly and reliably queue messages that
40
+ # one component in the application generates to be consumed by
41
+ # another component. A queue is a temporary repository for
42
+ # messages that are awaiting processing.
43
+ #
44
+ # You can access your queues using the {#queues} collection. For
45
+ # example, to create a queue, use {QueueCollection#create}:
46
+ #
47
+ # queue = sqs.queues.create("myqueue")
48
+ #
49
+ # Or to find out what queues you have in your account:
50
+ #
51
+ # pp sqs.queues.collect(&:url)
52
+ #
53
+ # See the {Queue} class for more information on how to send and
54
+ # receive messages.
55
+ #
56
+ class SQS
57
+
58
+ AWS.register_autoloads(self) do
59
+ autoload :Client, 'client'
60
+ autoload :Errors, 'errors'
61
+ autoload :Queue, 'queue'
62
+ autoload :QueueCollection, 'queue_collection'
63
+ autoload :Policy, 'policy'
64
+ autoload :ReceivedMessage, 'received_message'
65
+ autoload :ReceivedSNSMessage, 'received_sns_message'
66
+ autoload :Request, 'request'
67
+ end
68
+
69
+ include Core::ServiceInterface
70
+
71
+ # @return [QueueCollection] The collection of all {Queue}
72
+ # objects in your account.
73
+ def queues
74
+ QueueCollection.new(:config => config)
75
+ end
76
+
77
+ end
78
+
79
+ end
@@ -0,0 +1,360 @@
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 SQS
16
+
17
+ # Client class for Amazon Simple Queue Service (SQS).
18
+ class Client < Core::Client
19
+
20
+ API_VERSION = '2011-10-01'
21
+
22
+ extend Core::Client::QueryXML
23
+
24
+ # @private
25
+ CACHEABLE_REQUESTS = Set[]
26
+
27
+ ## client methods ##
28
+
29
+ # Calls the AddPermission API operation.
30
+ # @method add_permission(options = {})
31
+ #
32
+ # === Options:
33
+ #
34
+ # * +:queue_url+ - *required* - (String) The URL of the SQS queue to take
35
+ # action on.
36
+ # * +:label+ - *required* - (String) The unique identification of the
37
+ # permission you're setting (e.g., AliceSendMessage). Constraints:
38
+ # Maximum 80 characters; alphanumeric characters, hyphens (-), and
39
+ # underscores (_) are allowed.
40
+ # * +:aws_account_ids+ - *required* - (Array<String>) The AWS account
41
+ # number of the principal who will be given permission. The principal
42
+ # must have an AWS account, but does not need to be signed up for
43
+ # Amazon SQS.
44
+ # * +:actions+ - *required* - (Array<String>) The action the client wants
45
+ # to allow for the specified principal.
46
+ #
47
+ # === Response Structure:
48
+ #
49
+ # This method returns no response data.
50
+ #
51
+ # @return [Core::Response]
52
+ #
53
+ define_client_method :add_permission, 'AddPermission'
54
+
55
+ # Calls the ChangeMessageVisibility API operation.
56
+ # @method change_message_visibility(options = {})
57
+ #
58
+ # === Options:
59
+ #
60
+ # * +:queue_url+ - *required* - (String) The URL of the SQS queue to take
61
+ # action on.
62
+ # * +:receipt_handle+ - *required* - (String) The receipt handle
63
+ # associated with the message whose visibility timeout should be
64
+ # changed.
65
+ # * +:visibility_timeout+ - *required* - (Integer) The new value (in
66
+ # seconds) for the message's visibility timeout.
67
+ #
68
+ # === Response Structure:
69
+ #
70
+ # This method returns no response data.
71
+ #
72
+ # @return [Core::Response]
73
+ #
74
+ define_client_method :change_message_visibility, 'ChangeMessageVisibility'
75
+
76
+ # Calls the ChangeMessageVisibilityBatch API operation.
77
+ # @method change_message_visibility_batch(options = {})
78
+ #
79
+ # === Options:
80
+ #
81
+ # * +:queue_url+ - *required* - (String) The URL of the SQS queue to take
82
+ # action on.
83
+ # * +:entries+ - *required* - (Array<Hash>) A list of receipt handles of
84
+ # the messages for which the visibility timeout must be changed.
85
+ # * +:id+ - *required* - (String) An identifier for this particular
86
+ # receipt handle. This is used to communicate the result. Note that
87
+ # the Ids of a batch request need to be unique within the request.
88
+ # * +:receipt_handle+ - *required* - (String) A receipt handle.
89
+ # * +:visibility_timeout+ - (Integer) The new value (in seconds) for
90
+ # the message's visibility timeout.
91
+ #
92
+ # === Response Structure:
93
+ #
94
+ # * +:successful+ - (Array<Hash>)
95
+ # * +:id+ - (String)
96
+ # * +:failed+ - (Array<Hash>)
97
+ # * +:id+ - (String)
98
+ # * +:sender_fault+ - (Boolean)
99
+ # * +:code+ - (String)
100
+ # * +:message+ - (String)
101
+ #
102
+ # @return [Core::Response]
103
+ #
104
+ define_client_method :change_message_visibility_batch, 'ChangeMessageVisibilityBatch'
105
+
106
+ # Calls the CreateQueue API operation.
107
+ # @method create_queue(options = {})
108
+ #
109
+ # === Options:
110
+ #
111
+ # * +:queue_name+ - *required* - (String) The name for the queue to be
112
+ # created.
113
+ # * +:attributes+ - (Hash<String,String>) A map of attributes with their
114
+ # corresponding values.
115
+ #
116
+ # === Response Structure:
117
+ #
118
+ # * +:queue_url+ - (String)
119
+ #
120
+ # @return [Core::Response]
121
+ #
122
+ define_client_method :create_queue, 'CreateQueue'
123
+
124
+ # Calls the DeleteMessage API operation.
125
+ # @method delete_message(options = {})
126
+ #
127
+ # === Options:
128
+ #
129
+ # * +:queue_url+ - *required* - (String) The URL of the SQS queue to take
130
+ # action on.
131
+ # * +:receipt_handle+ - *required* - (String) The receipt handle
132
+ # associated with the message to delete.
133
+ #
134
+ # === Response Structure:
135
+ #
136
+ # This method returns no response data.
137
+ #
138
+ # @return [Core::Response]
139
+ #
140
+ define_client_method :delete_message, 'DeleteMessage'
141
+
142
+ # Calls the DeleteMessageBatch API operation.
143
+ # @method delete_message_batch(options = {})
144
+ #
145
+ # === Options:
146
+ #
147
+ # * +:queue_url+ - *required* - (String) The URL of the SQS queue to take
148
+ # action on.
149
+ # * +:entries+ - *required* - (Array<Hash>) A list of receipt handles for
150
+ # the messages to be deleted.
151
+ # * +:id+ - *required* - (String) An identifier for this particular
152
+ # receipt handle. This is used to communicate the result. Note that
153
+ # the Ids of a batch request need to be unique within the request.
154
+ # * +:receipt_handle+ - *required* - (String) A receipt handle.
155
+ #
156
+ # === Response Structure:
157
+ #
158
+ # * +:successful+ - (Array<Hash>)
159
+ # * +:id+ - (String)
160
+ # * +:failed+ - (Array<Hash>)
161
+ # * +:id+ - (String)
162
+ # * +:sender_fault+ - (Boolean)
163
+ # * +:code+ - (String)
164
+ # * +:message+ - (String)
165
+ #
166
+ # @return [Core::Response]
167
+ #
168
+ define_client_method :delete_message_batch, 'DeleteMessageBatch'
169
+
170
+ # Calls the DeleteQueue API operation.
171
+ # @method delete_queue(options = {})
172
+ #
173
+ # === Options:
174
+ #
175
+ # * +:queue_url+ - *required* - (String) The URL of the SQS queue to take
176
+ # action on.
177
+ #
178
+ # === Response Structure:
179
+ #
180
+ # This method returns no response data.
181
+ #
182
+ # @return [Core::Response]
183
+ #
184
+ define_client_method :delete_queue, 'DeleteQueue'
185
+
186
+ # Calls the GetQueueAttributes API operation.
187
+ # @method get_queue_attributes(options = {})
188
+ #
189
+ # === Options:
190
+ #
191
+ # * +:queue_url+ - *required* - (String) The URL of the SQS queue to take
192
+ # action on.
193
+ # * +:attribute_names+ - (Array<String>) A list of attributes to retrieve
194
+ # information for.
195
+ #
196
+ # === Response Structure:
197
+ #
198
+ # * +:attributes+ - (Hash<String,String>)
199
+ #
200
+ # @return [Core::Response]
201
+ #
202
+ define_client_method :get_queue_attributes, 'GetQueueAttributes'
203
+
204
+ # Calls the GetQueueUrl API operation.
205
+ # @method get_queue_url(options = {})
206
+ #
207
+ # === Options:
208
+ #
209
+ # * +:queue_name+ - *required* - (String) The name of the queue whose URL
210
+ # must be fetched.
211
+ # * +:queue_owner_aws_account_id+ - (String) The AWS account number of
212
+ # the queue's owner.
213
+ #
214
+ # === Response Structure:
215
+ #
216
+ # * +:queue_url+ - (String)
217
+ #
218
+ # @return [Core::Response]
219
+ #
220
+ define_client_method :get_queue_url, 'GetQueueUrl'
221
+
222
+ # Calls the ListQueues API operation.
223
+ # @method list_queues(options = {})
224
+ #
225
+ # === Options:
226
+ #
227
+ # * +:queue_name_prefix+ - (String) A string to use for filtering the
228
+ # list results. Only those queues whose name begins with the specified
229
+ # string are returned.
230
+ #
231
+ # === Response Structure:
232
+ #
233
+ # * +:queue_urls+ - (Array<String>)
234
+ #
235
+ # @return [Core::Response]
236
+ #
237
+ define_client_method :list_queues, 'ListQueues'
238
+
239
+ # Calls the ReceiveMessage API operation.
240
+ # @method receive_message(options = {})
241
+ #
242
+ # === Options:
243
+ #
244
+ # * +:queue_url+ - *required* - (String) The URL of the SQS queue to take
245
+ # action on.
246
+ # * +:attribute_names+ - (Array<String>) A list of attributes to retrieve
247
+ # information for.
248
+ # * +:max_number_of_messages+ - (Integer) The maximum number of messages
249
+ # to return. Amazon SQS never returns more messages than this value but
250
+ # may return fewer. All of the messages are not necessarily returned.
251
+ # * +:visibility_timeout+ - (Integer) The duration (in seconds) that the
252
+ # received messages are hidden from subsequent retrieve requests after
253
+ # being retrieved by a ReceiveMessage request.
254
+ #
255
+ # === Response Structure:
256
+ #
257
+ # * +:messages+ - (Array<Hash>)
258
+ # * +:message_id+ - (String)
259
+ # * +:receipt_handle+ - (String)
260
+ # * +:md5_of_body+ - (String)
261
+ # * +:body+ - (String)
262
+ # * +:attributes+ - (Hash<String,String>)
263
+ #
264
+ # @return [Core::Response]
265
+ #
266
+ define_client_method :receive_message, 'ReceiveMessage'
267
+
268
+ # Calls the RemovePermission API operation.
269
+ # @method remove_permission(options = {})
270
+ #
271
+ # === Options:
272
+ #
273
+ # * +:queue_url+ - *required* - (String) The URL of the SQS queue to take
274
+ # action on.
275
+ # * +:label+ - *required* - (String) The identification of the permission
276
+ # to remove. This is the label added with the AddPermission operation.
277
+ #
278
+ # === Response Structure:
279
+ #
280
+ # This method returns no response data.
281
+ #
282
+ # @return [Core::Response]
283
+ #
284
+ define_client_method :remove_permission, 'RemovePermission'
285
+
286
+ # Calls the SendMessage API operation.
287
+ # @method send_message(options = {})
288
+ #
289
+ # === Options:
290
+ #
291
+ # * +:queue_url+ - *required* - (String) The URL of the SQS queue to take
292
+ # action on.
293
+ # * +:message_body+ - *required* - (String) The message to send.
294
+ # * +:delay_seconds+ - (Integer) The number of seconds the message has to
295
+ # be delayed.
296
+ #
297
+ # === Response Structure:
298
+ #
299
+ # * +:md5_of_message_body+ - (String)
300
+ # * +:message_id+ - (String)
301
+ #
302
+ # @return [Core::Response]
303
+ #
304
+ define_client_method :send_message, 'SendMessage'
305
+
306
+ # Calls the SendMessageBatch API operation.
307
+ # @method send_message_batch(options = {})
308
+ #
309
+ # === Options:
310
+ #
311
+ # * +:queue_url+ - *required* - (String) The URL of the SQS queue to take
312
+ # action on.
313
+ # * +:entries+ - *required* - (Array<Hash>) A list of
314
+ # SendMessageBatchRequestEntrys.
315
+ # * +:id+ - *required* - (String) An identifier for the message in this
316
+ # batch. This is used to communicate the result. Note that the the
317
+ # Ids of a batch request need to be unique within the request.
318
+ # * +:message_body+ - *required* - (String) Body of the message.
319
+ # * +:delay_seconds+ - (Integer) The number of seconds for which the
320
+ # message has to be delayed.
321
+ #
322
+ # === Response Structure:
323
+ #
324
+ # * +:successful+ - (Array<Hash>)
325
+ # * +:id+ - (String)
326
+ # * +:message_id+ - (String)
327
+ # * +:md5_of_message_body+ - (String)
328
+ # * +:failed+ - (Array<Hash>)
329
+ # * +:id+ - (String)
330
+ # * +:sender_fault+ - (Boolean)
331
+ # * +:code+ - (String)
332
+ # * +:message+ - (String)
333
+ #
334
+ # @return [Core::Response]
335
+ #
336
+ define_client_method :send_message_batch, 'SendMessageBatch'
337
+
338
+ # Calls the SetQueueAttributes API operation.
339
+ # @method set_queue_attributes(options = {})
340
+ #
341
+ # === Options:
342
+ #
343
+ # * +:queue_url+ - *required* - (String) The URL of the SQS queue to take
344
+ # action on.
345
+ # * +:attributes+ - *required* - (Hash<String,String>) A map of
346
+ # attributes to set.
347
+ #
348
+ # === Response Structure:
349
+ #
350
+ # This method returns no response data.
351
+ #
352
+ # @return [Core::Response]
353
+ #
354
+ define_client_method :set_queue_attributes, 'SetQueueAttributes'
355
+
356
+ ## end client methods ##
357
+
358
+ end
359
+ end
360
+ end