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,114 @@
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 'httparty'
15
+
16
+ module AWS
17
+ module Core
18
+ module Http
19
+
20
+ # Makes HTTP requests using HTTParty. This is the default
21
+ # handler, so you don't need to do anything special to configure
22
+ # it. However, you can directly instantiate this class in order
23
+ # to send extra options to HTTParty, for example to enable an HTTP
24
+ # proxy:
25
+ #
26
+ # AWS.config(
27
+ # :http_handler => AWS::Http::HTTPartyHandler.new(
28
+ # :http_proxyaddr => "http://myproxy.com",
29
+ # :http_proxyport => 80
30
+ # )
31
+ # )
32
+ #
33
+ class HTTPartyHandler
34
+
35
+ # @return [Hash] The default options to send to HTTParty on each
36
+ # request.
37
+ attr_reader :default_request_options
38
+
39
+ # Constructs a new HTTP handler using HTTParty.
40
+ #
41
+ # @param [Hash] options Default options to send to HTTParty on
42
+ # each request. These options will be sent to +get+, +post+,
43
+ # +head+, +put+, or +delete+ when a request is made. Note
44
+ # that +:body+, +:headers+, +:parser+, and +:ssl_ca_file+ are
45
+ # ignored. If you need to set the CA file, you should use the
46
+ # +:ssl_ca_file+ option to {AWS.config} or
47
+ # {Configuration} instead.
48
+ def initialize options = {}
49
+ @default_request_options = options
50
+ end
51
+
52
+ include HTTParty
53
+
54
+ class NoOpParser < HTTParty::Parser
55
+ SupportedFormats = {}
56
+ end
57
+
58
+ def handle(request, response)
59
+
60
+ opts = default_request_options.merge({
61
+ :body => request.body,
62
+ :parser => NoOpParser
63
+ })
64
+
65
+ if request.proxy_uri
66
+ opts[:http_proxyaddr] = request.proxy_uri.host
67
+ opts[:http_proxyport] = request.proxy_uri.port
68
+ end
69
+
70
+ if request.use_ssl?
71
+ protocol = 'https'
72
+ opts[:ssl_ca_file] = request.ssl_ca_file if request.ssl_verify_peer?
73
+ else
74
+ protocol = 'http'
75
+ end
76
+
77
+ url = "#{protocol}://#{request.host}:#{request.port}#{request.uri}"
78
+
79
+ # get, post, put, delete, head
80
+ method = request.http_method.downcase
81
+
82
+ # Net::HTTP adds this header for us when the body is
83
+ # provided, but it messes up signing
84
+ headers = { 'content-type' => '' }
85
+
86
+ # headers must have string values (net http calls .strip on them)
87
+ request.headers.each_pair do |key,value|
88
+ headers[key] = value.to_s
89
+ end
90
+
91
+ opts[:headers] = headers
92
+
93
+ begin
94
+ http_response = self.class.send(method, url, opts)
95
+ rescue Timeout::Error, Errno::ETIMEDOUT => e
96
+ response.timeout = true
97
+ else
98
+ response.body = http_response.body
99
+ response.status = http_response.code.to_i
100
+ response.headers = http_response.to_hash
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
106
+
107
+ # We move this from AWS::Http to AWS::Core::Http, but we want the
108
+ # previous default handler to remain accessible from its old namesapce
109
+ # @private
110
+ module Http
111
+ class HTTPartyHandler < Core::Http::HTTPartyHandler; end
112
+ end
113
+
114
+ end
@@ -0,0 +1,85 @@
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 'net/http/connection_pool'
15
+
16
+ module AWS
17
+ module Core
18
+ module Http
19
+
20
+ # The default http request handler for the aws-sdk gem. It is based
21
+ # on Net::Http.
22
+ class NetHttpHandler
23
+
24
+ @@pool = Net::HTTP::ConnectionPool.new
25
+
26
+ # @private
27
+ def self.pool
28
+ @@pool
29
+ end
30
+
31
+ def handle request, response
32
+
33
+ options = {}
34
+ options[:ssl] = request.use_ssl?
35
+ options[:proxy_uri] = request.proxy_uri
36
+ options[:ssl_verify_peer] = request.ssl_verify_peer?
37
+ options[:ssl_ca_file] = request.ssl_ca_file if request.ssl_ca_file
38
+ options[:ssl_ca_path] = request.ssl_ca_path if request.ssl_ca_path
39
+
40
+ connection = self.class.pool.connection_for(request.host, options)
41
+ connection.read_timeout = request.read_timeout
42
+
43
+ begin
44
+ http_response = connection.request(build_request(request))
45
+ response.body = http_response.body
46
+ response.status = http_response.code.to_i
47
+ response.headers = http_response.to_hash
48
+ rescue Timeout::Error, Errno::ETIMEDOUT => e
49
+ response.timeout = true
50
+ end
51
+
52
+ end
53
+
54
+ # @private
55
+ protected
56
+ def build_request request
57
+
58
+ # Net::HTTP adds a content-type header automatically unless its set
59
+ # and this messes with request signature signing. Also, it expects
60
+ # all header values to be strings (it call strip on them).
61
+ headers = { 'content-type' => '' }
62
+ request.headers.each_pair do |key,value|
63
+ headers[key] = value.to_s
64
+ end
65
+
66
+ req_class = case request.http_method
67
+ when 'GET' then Net::HTTP::Get
68
+ when 'PUT' then Net::HTTP::Put
69
+ when 'POST' then Net::HTTP::Post
70
+ when 'HEAD' then Net::HTTP::Head
71
+ when 'DELETE' then Net::HTTP::Delete
72
+ else raise "unsupported http method: #{request.http_method}"
73
+ end
74
+
75
+ net_http_req = req_class.new(request.uri, headers)
76
+ net_http_req.body = request.body
77
+ net_http_req
78
+
79
+ end
80
+
81
+ end
82
+
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,250 @@
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
+ module Core
16
+ module Http
17
+
18
+ # Base class for all service reqeusts. This class describes
19
+ # a basic HTTP request, but will not make one. It is consumed
20
+ # by a HTTP handler class that sends the actual request
21
+ # and parses the actual response.
22
+ class Request
23
+
24
+ # Returns a new empty http request object.
25
+ def initialize
26
+ @host = nil
27
+ @http_method = 'POST'
28
+ @path = '/'
29
+ @headers = CaseInsensitiveHash.new
30
+ @params = []
31
+ @use_ssl = true
32
+ @port = nil
33
+ @read_timeout = 60
34
+ end
35
+
36
+ # @return [Integer] The number of seconds the service has to respond
37
+ # before a timeout error is raised on the request. Defaults to
38
+ # 60 seconds.
39
+ attr_accessor :read_timeout
40
+
41
+ # @return [String] The snake-cased ruby name for the service
42
+ # (e.g. 's3', 'iam', 'dynamo_db', etc).
43
+ attr_accessor :service_ruby_name
44
+
45
+ # @return [String] hostname of the request
46
+ attr_accessor :host
47
+
48
+ # @return [CaseInsensitiveHash] request headers
49
+ attr_accessor :headers
50
+
51
+ # @return [Array] An array of request params, each param responds to
52
+ # #name and #value.
53
+ attr_accessor :params
54
+
55
+ # @return [String] GET, PUT POST, HEAD or DELETE, defaults to POST
56
+ attr_accessor :http_method
57
+
58
+ # @return [String] path of the request URI, defaults to /
59
+ attr_accessor :path
60
+
61
+ # @return [String] the AWS access key ID used to authorize the
62
+ # request
63
+ attr_accessor :access_key_id
64
+
65
+ # @return [nil, URI] The URI to the proxy server requests are
66
+ # sent through if configured. Returns nil if there is no proxy.
67
+ attr_accessor :proxy_uri
68
+
69
+ # @return [String] The region name this request is for. Only needs
70
+ # to be populated for requests against signature v4 endpoints.
71
+ attr_accessor :region
72
+
73
+ # @param [Boolean] state If the request should be sent over ssl or not.
74
+ def use_ssl= state
75
+ @use_ssl = state
76
+ end
77
+
78
+ # @return [Boolean] If this request should be sent over ssl or not.
79
+ def use_ssl?
80
+ @use_ssl
81
+ end
82
+
83
+ # Override the default port (443 or 80). If you pass nil then
84
+ # the default port will take precedence.
85
+ # @param [Integer,nil] port_number
86
+ def port= port_number
87
+ @port = port_number
88
+ end
89
+
90
+ # @return [Integer] Returns the port the request will be made over.
91
+ # Defaults to 443 for SSL requests and 80 for non-SSL requests.
92
+ def port
93
+ @port || (use_ssl? ? 443 : 80)
94
+ end
95
+
96
+ # @param [Boolean] verify_peer If the client should verify the
97
+ # peer certificate or not.
98
+ def ssl_verify_peer=(verify_peer)
99
+ @ssl_verify_peer = verify_peer
100
+ end
101
+
102
+ # @return [Boolean] If the client should verify the peer
103
+ # certificate or not.
104
+ def ssl_verify_peer?
105
+ @ssl_verify_peer
106
+ end
107
+
108
+ # @param [String] ca_file Path to a bundle of CA certs in PEM
109
+ # format; the HTTP handler should use this to verify all HTTPS
110
+ # requests if {#ssl_verify_peer?} is true.
111
+ def ssl_ca_file=(ca_file)
112
+ @ssl_ca_file = ca_file
113
+ end
114
+
115
+ # @return [String] Path to a bundle of CA certs in PEM format;
116
+ # the HTTP handler should use this to verify all HTTPS
117
+ # requests if {#ssl_verify_peer?} is true.
118
+ def ssl_ca_file
119
+ @ssl_ca_file
120
+ end
121
+
122
+ # @param [String] ca_path Path to a bundle of CA certs in PEM
123
+ # format; the HTTP handler should use this to verify all HTTPS
124
+ # requests if {#ssl_verify_peer?} is true.
125
+ def ssl_ca_path=(ca_path)
126
+ @ssl_ca_path = ca_path
127
+ end
128
+
129
+ # @return [String] Path to a bundle of CA certs in PEM format;
130
+ # the HTTP handler should use this to verify all HTTPS
131
+ # requests if {#ssl_verify_peer?} is true.
132
+ def ssl_ca_path
133
+ @ssl_ca_path
134
+ end
135
+
136
+ # Adds a request param.
137
+ #
138
+ # @overload add_param(param_name, param_value = nil)
139
+ # Add a param (name/value)
140
+ # @param [String] param_name
141
+ # @param [String] param_value Leave blank for sub resources
142
+ #
143
+ # @overload add_param(param_obj)
144
+ # Add a param (object)
145
+ # @param [Param] param_obj
146
+ #
147
+ def add_param name_or_param, value = nil
148
+ if name_or_param.kind_of?(Param)
149
+ @params << name_or_param
150
+ else
151
+ @params << Param.new(name_or_param, value)
152
+ end
153
+ end
154
+ alias_method :[]=, :add_param
155
+
156
+ # @private
157
+ def get_param param_name
158
+ @params.detect{|p| p.name == param_name } ||
159
+ raise("undefined param #{param_name}")
160
+ end
161
+
162
+ # @private
163
+ def param_value_for param_name
164
+ param = @params.detect{|p| p.name == param_name }
165
+ param ? param.value : nil
166
+ end
167
+
168
+ # @return [String] the request uri
169
+ def uri
170
+ querystring ? "#{path}?#{querystring}" : path
171
+ end
172
+
173
+ # @return [String] Returns the request params url encoded, or nil if
174
+ # this request has no params.
175
+ def url_encoded_params
176
+ if @params.empty?
177
+ nil
178
+ else
179
+ @params.sort.collect{|p| p.encoded }.join('&')
180
+ end
181
+ end
182
+
183
+ # @return [String, nil] Returns the requesty querystring.
184
+ def querystring
185
+ nil
186
+ end
187
+
188
+ # @return [String, nil] Returns the request body.
189
+ def body
190
+ url_encoded_params
191
+ end
192
+
193
+ # @private
194
+ class CaseInsensitiveHash < Hash
195
+
196
+ def []= key, value
197
+ super(key.to_s.downcase, value)
198
+ end
199
+
200
+ def [] key
201
+ super(key.to_s.downcase)
202
+ end
203
+
204
+ def has_key?(key)
205
+ super(key.to_s.downcase)
206
+ end
207
+ alias_method :key?, :has_key?
208
+ alias_method :include?, :has_key?
209
+ alias_method :member?, :has_key?
210
+
211
+ end
212
+
213
+ # Represents a single request paramater. Some services accept this
214
+ # in a form encoded body string, others as query parameters.
215
+ # It is up to each service's Request class to determine how to
216
+ # consume these params.
217
+ # @private
218
+ class Param
219
+
220
+ include UriEscape
221
+
222
+ attr_accessor :name, :value
223
+
224
+ def initialize name, value = nil
225
+ @name = name
226
+ @value = value
227
+ end
228
+
229
+ def <=> other
230
+ name <=> other.name
231
+ end
232
+
233
+ def to_s
234
+ value ? "#{name}=#{value}" : name
235
+ end
236
+
237
+ def ==(other)
238
+ other.kind_of?(Param) and to_s == other.to_s
239
+ end
240
+
241
+ def encoded
242
+ value ? "#{escape(name)}=#{escape(value)}" : escape(name)
243
+ end
244
+
245
+ end
246
+
247
+ end
248
+ end
249
+ end
250
+ end