aws-sdk-core 2.0.0.rc1

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 (417) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +7 -0
  3. data/.simplecov +6 -0
  4. data/.travis.yml +12 -0
  5. data/.yardopts +11 -0
  6. data/Gemfile +26 -0
  7. data/LICENSE.txt +12 -0
  8. data/README.md +169 -0
  9. data/Rakefile +15 -0
  10. data/apis/AutoScaling-2011-01-01.json +1852 -0
  11. data/apis/CloudFormation-2010-05-15.json +981 -0
  12. data/apis/CloudFront-2012-05-05.json +3861 -0
  13. data/apis/CloudFront-2013-05-12.json +4593 -0
  14. data/apis/CloudFront-2013-08-26.json +4849 -0
  15. data/apis/CloudSearch-2011-02-01.json +2080 -0
  16. data/apis/CloudWatch-2010-08-01.json +1206 -0
  17. data/apis/DataPipeline-2012-10-29.json +901 -0
  18. data/apis/DirectConnect-2012-10-25.json +825 -0
  19. data/apis/DynamoDB-2011-12-05.json +2857 -0
  20. data/apis/DynamoDB-2012-08-10.json +3127 -0
  21. data/apis/EC2-2013-06-15.json +13600 -0
  22. data/apis/EC2-2013-10-01.json +14574 -0
  23. data/apis/EMR-2009-03-31.json +957 -0
  24. data/apis/ElastiCache-2012-11-15.json +2921 -0
  25. data/apis/ElastiCache-2013-06-15.json +3586 -0
  26. data/apis/ElasticBeanstalk-2010-12-01.json +2225 -0
  27. data/apis/ElasticLoadBalancing-2012-06-01.json +1215 -0
  28. data/apis/ElasticTranscoder-2012-09-25.json +3692 -0
  29. data/apis/Glacier-2012-06-01.json +1058 -0
  30. data/apis/IAM-2010-05-08.json +2863 -0
  31. data/apis/ImportExport-2010-06-01.json +328 -0
  32. data/apis/OpsWorks-2013-02-18.json +3546 -0
  33. data/apis/RDS-2013-01-10.json +6772 -0
  34. data/apis/RDS-2013-02-12.json +7151 -0
  35. data/apis/RDS-2013-05-15.json +7809 -0
  36. data/apis/Redshift-2012-12-01.json +4180 -0
  37. data/apis/Route53-2012-12-12.json +1018 -0
  38. data/apis/S3-2006-03-01.json +3787 -0
  39. data/apis/SDB-2009-04-15.json +539 -0
  40. data/apis/SES-2010-12-01.json +678 -0
  41. data/apis/SNS-2010-03-31.json +870 -0
  42. data/apis/SQS-2012-11-05.json +798 -0
  43. data/apis/STS-2011-06-15.json +352 -0
  44. data/apis/SWF-2012-01-25.json +5451 -0
  45. data/apis/StorageGateway-2012-06-30.json +1696 -0
  46. data/apis/Support-2013-04-15.json +794 -0
  47. data/apis/configuration/endpoints.json +1337 -0
  48. data/apis/source/autoscaling-2011-01-01.json +3215 -0
  49. data/apis/source/autoscaling-2011-01-01.paginators.json +52 -0
  50. data/apis/source/cloudformation-2010-05-15.json +1260 -0
  51. data/apis/source/cloudformation-2010-05-15.paginators.json +24 -0
  52. data/apis/source/cloudfront-2012-05-05.json +6588 -0
  53. data/apis/source/cloudfront-2012-05-05.paginators.json +28 -0
  54. data/apis/source/cloudfront-2013-05-12.json +7614 -0
  55. data/apis/source/cloudfront-2013-05-12.paginators.json +28 -0
  56. data/apis/source/cloudfront-2013-08-26.json +8016 -0
  57. data/apis/source/cloudfront-2013-08-26.paginators.json +28 -0
  58. data/apis/source/cloudsearch-2011-02-01.json +3585 -0
  59. data/apis/source/cloudsearch-2011-02-01.paginators.json +13 -0
  60. data/apis/source/datapipeline-2012-10-29.json +2144 -0
  61. data/apis/source/datapipeline-2012-10-29.paginators.json +25 -0
  62. data/apis/source/directconnect-2012-10-25.json +1271 -0
  63. data/apis/source/directconnect-2012-10-25.paginators.json +16 -0
  64. data/apis/source/dynamodb-2011-12-05.json +4380 -0
  65. data/apis/source/dynamodb-2011-12-05.paginators.json +24 -0
  66. data/apis/source/dynamodb-2012-08-10.json +4839 -0
  67. data/apis/source/dynamodb-2012-08-10.paginators.json +24 -0
  68. data/apis/source/ec2-2013-02-01.json +18820 -0
  69. data/apis/source/ec2-2013-02-01.paginators.json +115 -0
  70. data/apis/source/ec2-2013-06-15.json +18820 -0
  71. data/apis/source/ec2-2013-06-15.paginators.json +115 -0
  72. data/apis/source/ec2-2013-10-01.json +19885 -0
  73. data/apis/source/ec2-2013-10-01.paginators.json +115 -0
  74. data/apis/source/elasticache-2012-11-15.json +4403 -0
  75. data/apis/source/elasticache-2012-11-15.paginators.json +64 -0
  76. data/apis/source/elasticache-2013-06-15.json +5421 -0
  77. data/apis/source/elasticache-2013-06-15.paginators.json +64 -0
  78. data/apis/source/elasticbeanstalk-2010-12-01.json +3151 -0
  79. data/apis/source/elasticbeanstalk-2010-12-01.paginators.json +25 -0
  80. data/apis/source/elasticloadbalancing-2012-06-01.json +2041 -0
  81. data/apis/source/elasticloadbalancing-2012-06-01.paginators.json +18 -0
  82. data/apis/source/elasticmapreduce-2009-03-31.json +1478 -0
  83. data/apis/source/elasticmapreduce-2009-03-31.paginators.json +7 -0
  84. data/apis/source/elastictranscoder-2012-09-25.json +6148 -0
  85. data/apis/source/elastictranscoder-2012-09-25.paginators.json +20 -0
  86. data/apis/source/email-2010-12-01.json +892 -0
  87. data/apis/source/email-2010-12-01.paginators.json +13 -0
  88. data/apis/source/glacier-2012-06-01.json +3147 -0
  89. data/apis/source/glacier-2012-06-01.paginators.json +28 -0
  90. data/apis/source/iam-2010-05-08.json +5857 -0
  91. data/apis/source/iam-2010-05-08.paginators.json +116 -0
  92. data/apis/source/importexport-2010-06-01.json +876 -0
  93. data/apis/source/importexport-2010-06-01.paginators.json +10 -0
  94. data/apis/source/monitoring-2010-08-01.json +1910 -0
  95. data/apis/source/monitoring-2010-08-01.paginators.json +24 -0
  96. data/apis/source/opsworks-2013-02-18.json +5848 -0
  97. data/apis/source/opsworks-2013-02-18.paginators.json +46 -0
  98. data/apis/source/rds-2013-01-10.json +9283 -0
  99. data/apis/source/rds-2013-01-10.paginators.json +105 -0
  100. data/apis/source/rds-2013-02-12.json +9777 -0
  101. data/apis/source/rds-2013-02-12.paginators.json +105 -0
  102. data/apis/source/rds-2013-05-15.json +10618 -0
  103. data/apis/source/rds-2013-05-15.paginators.json +105 -0
  104. data/apis/source/redshift-2012-12-01.json +5742 -0
  105. data/apis/source/redshift-2012-12-01.paginators.json +74 -0
  106. data/apis/source/route53-2012-12-12.json +2067 -0
  107. data/apis/source/route53-2012-12-12.paginators.json +33 -0
  108. data/apis/source/s3-2006-03-01.json +4261 -0
  109. data/apis/source/s3-2006-03-01.paginators.json +46 -0
  110. data/apis/source/sdb-2009-04-15.json +1145 -0
  111. data/apis/source/sdb-2009-04-15.paginators.json +15 -0
  112. data/apis/source/sns-2010-03-31.json +2234 -0
  113. data/apis/source/sns-2010-03-31.paginators.json +19 -0
  114. data/apis/source/sqs-2012-11-05.json +1162 -0
  115. data/apis/source/sqs-2012-11-05.paginators.json +7 -0
  116. data/apis/source/storagegateway-2012-06-30.json +9487 -0
  117. data/apis/source/storagegateway-2012-06-30.paginators.json +28 -0
  118. data/apis/source/sts-2011-06-15.json +627 -0
  119. data/apis/source/support-2013-04-15.json +1261 -0
  120. data/apis/source/support-2013-04-15.paginators.json +31 -0
  121. data/apis/source/swf-2012-01-25.json +8744 -0
  122. data/apis/source/swf-2012-01-25.paginators.json +46 -0
  123. data/aws-sdk-core.gemspec +21 -0
  124. data/bin/aws.rb +156 -0
  125. data/doc-src/images/lastnode.png +0 -0
  126. data/doc-src/images/node.png +0 -0
  127. data/doc-src/images/vline.png +0 -0
  128. data/doc-src/plugins/apis.rb +205 -0
  129. data/doc-src/templates/default/fulldoc/html/css/common.css +90 -0
  130. data/doc-src/templates/default/fulldoc/html/js/tabs.js +21 -0
  131. data/doc-src/templates/default/fulldoc/html/setup.rb +61 -0
  132. data/doc-src/templates/default/layout/html/footer.erb +29 -0
  133. data/doc-src/templates/default/layout/html/setup.rb +3 -0
  134. data/features/autoscaling/client.feature +22 -0
  135. data/features/autoscaling/setup.rb +6 -0
  136. data/features/cloudformation/client.feature +18 -0
  137. data/features/cloudformation/setup.rb +6 -0
  138. data/features/cloudfront/client.feature +21 -0
  139. data/features/cloudfront/setup.rb +6 -0
  140. data/features/cloudsearch/client.feature +18 -0
  141. data/features/cloudsearch/setup.rb +6 -0
  142. data/features/cloudwatch/client.feature +21 -0
  143. data/features/cloudwatch/setup.rb +6 -0
  144. data/features/common/step_definitions.rb +65 -0
  145. data/features/datapipeline/client.feature +18 -0
  146. data/features/datapipeline/setup.rb +6 -0
  147. data/features/directconnect/client.feature +18 -0
  148. data/features/directconnect/setup.rb +6 -0
  149. data/features/dynamodb/client.feature +21 -0
  150. data/features/dynamodb/setup.rb +8 -0
  151. data/features/dynamodb/simplified.feature +32 -0
  152. data/features/dynamodb/step_definitions.rb +3 -0
  153. data/features/ec2/client.feature +21 -0
  154. data/features/ec2/setup.rb +6 -0
  155. data/features/ec2/step_definitions.rb +19 -0
  156. data/features/elasticache/client.feature +18 -0
  157. data/features/elasticache/setup.rb +6 -0
  158. data/features/elasticbeanstalk/client.feature +18 -0
  159. data/features/elasticbeanstalk/setup.rb +6 -0
  160. data/features/elasticloadbalancing/client.feature +18 -0
  161. data/features/elasticloadbalancing/setup.rb +6 -0
  162. data/features/elastictranscoder/client.feature +18 -0
  163. data/features/elastictranscoder/setup.rb +6 -0
  164. data/features/emr/client.feature +18 -0
  165. data/features/emr/setup.rb +6 -0
  166. data/features/env.rb +23 -0
  167. data/features/glacier/client.feature +28 -0
  168. data/features/glacier/setup.rb +16 -0
  169. data/features/glacier/step_definitions.rb +25 -0
  170. data/features/iam/client.feature +18 -0
  171. data/features/iam/setup.rb +6 -0
  172. data/features/importexport/client.feature +18 -0
  173. data/features/importexport/setup.rb +6 -0
  174. data/features/opsworks/client.feature +18 -0
  175. data/features/opsworks/setup.rb +6 -0
  176. data/features/rds/client.feature +18 -0
  177. data/features/rds/setup.rb +6 -0
  178. data/features/redshift/client.feature +18 -0
  179. data/features/redshift/setup.rb +6 -0
  180. data/features/route53/client.feature +18 -0
  181. data/features/route53/setup.rb +6 -0
  182. data/features/s3/buckets.feature +22 -0
  183. data/features/s3/objects.feature +18 -0
  184. data/features/s3/setup.rb +17 -0
  185. data/features/s3/step_definitions.rb +66 -0
  186. data/features/s3/test.png +0 -0
  187. data/features/sdb/client.feature +18 -0
  188. data/features/sdb/setup.rb +6 -0
  189. data/features/ses/client.feature +18 -0
  190. data/features/ses/setup.rb +6 -0
  191. data/features/sns/client.feature +18 -0
  192. data/features/sns/setup.rb +6 -0
  193. data/features/sqs/client.feature +23 -0
  194. data/features/sqs/setup.rb +10 -0
  195. data/features/sqs/step_definitions.rb +18 -0
  196. data/features/storagegateway/client.feature +18 -0
  197. data/features/storagegateway/setup.rb +6 -0
  198. data/features/sts/client.feature +18 -0
  199. data/features/sts/setup.rb +6 -0
  200. data/features/swf/client.feature +21 -0
  201. data/features/swf/setup.rb +6 -0
  202. data/integration-test-config.json.sample +3 -0
  203. data/lib/aws-sdk-core.rb +11 -0
  204. data/lib/aws.rb +175 -0
  205. data/lib/aws/api/base_translator.rb +72 -0
  206. data/lib/aws/api/doc_example.rb +116 -0
  207. data/lib/aws/api/documentor.rb +140 -0
  208. data/lib/aws/api/operation_translator.rb +77 -0
  209. data/lib/aws/api/service_namer.rb +40 -0
  210. data/lib/aws/api/service_translators/cloud_front.rb +19 -0
  211. data/lib/aws/api/service_translators/dynamo_db.rb +7 -0
  212. data/lib/aws/api/service_translators/glacier.rb +37 -0
  213. data/lib/aws/api/service_translators/import_export.rb +15 -0
  214. data/lib/aws/api/service_translators/route53.rb +23 -0
  215. data/lib/aws/api/service_translators/s3.rb +11 -0
  216. data/lib/aws/api/service_translators/sqs.rb +10 -0
  217. data/lib/aws/api/service_translators/swf.rb +7 -0
  218. data/lib/aws/api/shape_translator.rb +96 -0
  219. data/lib/aws/api/translator.rb +150 -0
  220. data/lib/aws/api/visitor.rb +32 -0
  221. data/lib/aws/credentials.rb +35 -0
  222. data/lib/aws/error_handler.rb +48 -0
  223. data/lib/aws/errors.rb +83 -0
  224. data/lib/aws/json/builder.rb +77 -0
  225. data/lib/aws/json/error_parser.rb +20 -0
  226. data/lib/aws/json/parser.rb +67 -0
  227. data/lib/aws/json/serializer.rb +15 -0
  228. data/lib/aws/plugins/credentials.rb +48 -0
  229. data/lib/aws/plugins/dynamodb_extended_retries.rb +22 -0
  230. data/lib/aws/plugins/glacier_api_version.rb +19 -0
  231. data/lib/aws/plugins/glacier_checksums.rb +100 -0
  232. data/lib/aws/plugins/global_configuration.rb +79 -0
  233. data/lib/aws/plugins/json_protocol.rb +30 -0
  234. data/lib/aws/plugins/json_rpc_headers.rb +34 -0
  235. data/lib/aws/plugins/query_protocol.rb +11 -0
  236. data/lib/aws/plugins/regional_endpoint.rb +37 -0
  237. data/lib/aws/plugins/retry_errors.rb +149 -0
  238. data/lib/aws/plugins/s3_bucket_dns.rb +78 -0
  239. data/lib/aws/plugins/s3_complete_multipart_upload_fix.rb +38 -0
  240. data/lib/aws/plugins/s3_get_bucket_location_fix.rb +21 -0
  241. data/lib/aws/plugins/s3_md5s.rb +61 -0
  242. data/lib/aws/plugins/s3_redirects.rb +38 -0
  243. data/lib/aws/plugins/s3_regional_endpoint.rb +19 -0
  244. data/lib/aws/plugins/s3_signer.rb +9 -0
  245. data/lib/aws/plugins/signature_v2.rb +9 -0
  246. data/lib/aws/plugins/signature_v3.rb +9 -0
  247. data/lib/aws/plugins/signature_v4.rb +29 -0
  248. data/lib/aws/plugins/sqs_queue_urls.rb +33 -0
  249. data/lib/aws/plugins/swf_read_timeouts.rb +23 -0
  250. data/lib/aws/plugins/user_agent.rb +32 -0
  251. data/lib/aws/plugins/xml_protocol.rb +11 -0
  252. data/lib/aws/query/builder.rb +102 -0
  253. data/lib/aws/query/param.rb +43 -0
  254. data/lib/aws/query/param_list.rb +91 -0
  255. data/lib/aws/query/serializer.rb +24 -0
  256. data/lib/aws/request_handler.rb +39 -0
  257. data/lib/aws/response_handler.rb +38 -0
  258. data/lib/aws/service.rb +237 -0
  259. data/lib/aws/signers/base.rb +29 -0
  260. data/lib/aws/signers/handler.rb +18 -0
  261. data/lib/aws/signers/s3.rb +162 -0
  262. data/lib/aws/signers/v2.rb +48 -0
  263. data/lib/aws/signers/v3.rb +34 -0
  264. data/lib/aws/signers/v4.rb +142 -0
  265. data/lib/aws/structure.rb +38 -0
  266. data/lib/aws/timestamp_formatter.rb +16 -0
  267. data/lib/aws/util.rb +38 -0
  268. data/lib/aws/version.rb +3 -0
  269. data/lib/aws/xml/builder.rb +134 -0
  270. data/lib/aws/xml/error_parser.rb +24 -0
  271. data/lib/aws/xml/parser.rb +147 -0
  272. data/lib/aws/xml/serializer.rb +16 -0
  273. data/spec/aws/credentials_spec.rb +39 -0
  274. data/spec/aws/iam_spec.rb +17 -0
  275. data/spec/aws/json/builder_spec.rb +183 -0
  276. data/spec/aws/json/parser_spec.rb +238 -0
  277. data/spec/aws/operations_spec.rb +145 -0
  278. data/spec/aws/plugins/credentials_spec.rb +76 -0
  279. data/spec/aws/plugins/global_configuration_spec.rb +56 -0
  280. data/spec/aws/plugins/region_endpoint_spec.rb +77 -0
  281. data/spec/aws/plugins/retry_errors_spec.rb +253 -0
  282. data/spec/aws/query/builder_spec.rb +361 -0
  283. data/spec/aws/query/param_list_spec.rb +80 -0
  284. data/spec/aws/query/param_spec.rb +59 -0
  285. data/spec/aws/service_spec.rb +247 -0
  286. data/spec/aws/signers/v4_spec.rb +141 -0
  287. data/spec/aws/structure_spec.rb +103 -0
  288. data/spec/aws/xml/builder_spec.rb +404 -0
  289. data/spec/aws/xml/parser_spec.rb +716 -0
  290. data/spec/aws_spec.rb +89 -0
  291. data/spec/fixtures/api/swf.json +100 -0
  292. data/spec/fixtures/operations/cloudfront/list_distributions.yml +195 -0
  293. data/spec/fixtures/operations/cloudfront/max_items.yml +12 -0
  294. data/spec/fixtures/operations/dynamodb/error_parsing.yml +13 -0
  295. data/spec/fixtures/operations/glacier/error_parsing.yml +10 -0
  296. data/spec/fixtures/operations/glacier/list_vaults.yml +24 -0
  297. data/spec/fixtures/operations/iam/result_wrapped_elements.yml +31 -0
  298. data/spec/fixtures/operations/s3/304_response.yml +12 -0
  299. data/spec/fixtures/operations/s3/400_response.yml +12 -0
  300. data/spec/fixtures/operations/s3/403_response.yml +12 -0
  301. data/spec/fixtures/operations/s3/404_response.yml +12 -0
  302. data/spec/fixtures/operations/s3/comlete_multipart_upload_error.yml +18 -0
  303. data/spec/fixtures/operations/s3/create_bucket_with_location_constraint.yml +25 -0
  304. data/spec/fixtures/operations/s3/create_bucket_without_location_constraint.yml +9 -0
  305. data/spec/fixtures/operations/s3/delete_objects.yml +54 -0
  306. data/spec/fixtures/operations/s3/error_parsing.yml +17 -0
  307. data/spec/fixtures/operations/s3/get_bucket_location.yml +17 -0
  308. data/spec/fixtures/operations/s3/get_bucket_location_classic.yml +17 -0
  309. data/spec/fixtures/operations/s3/head_bucket_with_dns_incompatible_name.yml +12 -0
  310. data/spec/fixtures/operations/s3/head_object.yml +50 -0
  311. data/spec/fixtures/operations/s3/list_buckets.yml +41 -0
  312. data/spec/fixtures/operations/s3/md5_checksum_disabled.yml +10 -0
  313. data/spec/fixtures/operations/s3/md5_checksum_enabled.yml +8 -0
  314. data/spec/fixtures/operations/swf/list_domains.yml +20 -0
  315. data/spec/spec_helper.rb +55 -0
  316. data/tasks/apis.rake +51 -0
  317. data/tasks/docs.rake +59 -0
  318. data/tasks/test.rake +39 -0
  319. data/vendor/seahorse/.gitignore +5 -0
  320. data/vendor/seahorse/.simplecov +4 -0
  321. data/vendor/seahorse/.yardopts +10 -0
  322. data/vendor/seahorse/Gemfile +20 -0
  323. data/vendor/seahorse/LICENSE.txt +12 -0
  324. data/vendor/seahorse/README.md +129 -0
  325. data/vendor/seahorse/Rakefile +7 -0
  326. data/vendor/seahorse/ca-bundle.crt +3554 -0
  327. data/vendor/seahorse/lib/seahorse.rb +6 -0
  328. data/vendor/seahorse/lib/seahorse/client.rb +61 -0
  329. data/vendor/seahorse/lib/seahorse/client/base.rb +239 -0
  330. data/vendor/seahorse/lib/seahorse/client/block_io.rb +39 -0
  331. data/vendor/seahorse/lib/seahorse/client/configuration.rb +197 -0
  332. data/vendor/seahorse/lib/seahorse/client/handler.rb +26 -0
  333. data/vendor/seahorse/lib/seahorse/client/handler_builder.rb +49 -0
  334. data/vendor/seahorse/lib/seahorse/client/handler_list.rb +250 -0
  335. data/vendor/seahorse/lib/seahorse/client/http/endpoint.rb +95 -0
  336. data/vendor/seahorse/lib/seahorse/client/http/headers.rb +94 -0
  337. data/vendor/seahorse/lib/seahorse/client/http/plain_string_io.rb +11 -0
  338. data/vendor/seahorse/lib/seahorse/client/http/request.rb +78 -0
  339. data/vendor/seahorse/lib/seahorse/client/http/response.rb +45 -0
  340. data/vendor/seahorse/lib/seahorse/client/logging/formatter.rb +319 -0
  341. data/vendor/seahorse/lib/seahorse/client/logging/handler.rb +35 -0
  342. data/vendor/seahorse/lib/seahorse/client/net_http/connection_pool.rb +339 -0
  343. data/vendor/seahorse/lib/seahorse/client/net_http/handler.rb +109 -0
  344. data/vendor/seahorse/lib/seahorse/client/param_converter.rb +202 -0
  345. data/vendor/seahorse/lib/seahorse/client/param_validator.rb +139 -0
  346. data/vendor/seahorse/lib/seahorse/client/plugin.rb +80 -0
  347. data/vendor/seahorse/lib/seahorse/client/plugin_list.rb +142 -0
  348. data/vendor/seahorse/lib/seahorse/client/plugins/api.rb +11 -0
  349. data/vendor/seahorse/lib/seahorse/client/plugins/content_length.rb +22 -0
  350. data/vendor/seahorse/lib/seahorse/client/plugins/endpoint.rb +36 -0
  351. data/vendor/seahorse/lib/seahorse/client/plugins/json_simple.rb +34 -0
  352. data/vendor/seahorse/lib/seahorse/client/plugins/logging.rb +37 -0
  353. data/vendor/seahorse/lib/seahorse/client/plugins/net_http.rb +26 -0
  354. data/vendor/seahorse/lib/seahorse/client/plugins/operation_methods.rb +48 -0
  355. data/vendor/seahorse/lib/seahorse/client/plugins/param_conversion.rb +29 -0
  356. data/vendor/seahorse/lib/seahorse/client/plugins/param_validation.rb +30 -0
  357. data/vendor/seahorse/lib/seahorse/client/plugins/raise_response_errors.rb +29 -0
  358. data/vendor/seahorse/lib/seahorse/client/plugins/restful_bindings.rb +205 -0
  359. data/vendor/seahorse/lib/seahorse/client/request.rb +62 -0
  360. data/vendor/seahorse/lib/seahorse/client/request_context.rb +68 -0
  361. data/vendor/seahorse/lib/seahorse/client/response.rb +106 -0
  362. data/vendor/seahorse/lib/seahorse/client/xml/builder.rb +92 -0
  363. data/vendor/seahorse/lib/seahorse/model.rb +38 -0
  364. data/vendor/seahorse/lib/seahorse/model/api.rb +39 -0
  365. data/vendor/seahorse/lib/seahorse/model/node.rb +102 -0
  366. data/vendor/seahorse/lib/seahorse/model/operation.rb +32 -0
  367. data/vendor/seahorse/lib/seahorse/model/operation_input.rb +30 -0
  368. data/vendor/seahorse/lib/seahorse/model/operations.rb +59 -0
  369. data/vendor/seahorse/lib/seahorse/model/property.rb +141 -0
  370. data/vendor/seahorse/lib/seahorse/model/shapes/shape.rb +229 -0
  371. data/vendor/seahorse/lib/seahorse/model/types.rb +8 -0
  372. data/vendor/seahorse/lib/seahorse/version.rb +3 -0
  373. data/vendor/seahorse/seahorse.gemspec +20 -0
  374. data/vendor/seahorse/spec/fixtures/plugin.rb +4 -0
  375. data/vendor/seahorse/spec/seahorse/client/base_spec.rb +308 -0
  376. data/vendor/seahorse/spec/seahorse/client/configuration_spec.rb +118 -0
  377. data/vendor/seahorse/spec/seahorse/client/handler_builder_spec.rb +159 -0
  378. data/vendor/seahorse/spec/seahorse/client/handler_list_spec.rb +243 -0
  379. data/vendor/seahorse/spec/seahorse/client/handler_spec.rb +40 -0
  380. data/vendor/seahorse/spec/seahorse/client/http/endpoint_spec.rb +168 -0
  381. data/vendor/seahorse/spec/seahorse/client/http/headers_spec.rb +213 -0
  382. data/vendor/seahorse/spec/seahorse/client/http/plain_string_io_spec.rb +23 -0
  383. data/vendor/seahorse/spec/seahorse/client/http/request_spec.rb +142 -0
  384. data/vendor/seahorse/spec/seahorse/client/http/response_spec.rb +77 -0
  385. data/vendor/seahorse/spec/seahorse/client/logging/formatter_spec.rb +197 -0
  386. data/vendor/seahorse/spec/seahorse/client/logging/handler_spec.rb +63 -0
  387. data/vendor/seahorse/spec/seahorse/client/net_http/connection_pool_spec.rb +10 -0
  388. data/vendor/seahorse/spec/seahorse/client/net_http/handler_spec.rb +232 -0
  389. data/vendor/seahorse/spec/seahorse/client/param_converter_spec.rb +318 -0
  390. data/vendor/seahorse/spec/seahorse/client/param_validator_spec.rb +271 -0
  391. data/vendor/seahorse/spec/seahorse/client/plugin_list_spec.rb +166 -0
  392. data/vendor/seahorse/spec/seahorse/client/plugin_spec.rb +118 -0
  393. data/vendor/seahorse/spec/seahorse/client/plugins/content_length_spec.rb +19 -0
  394. data/vendor/seahorse/spec/seahorse/client/plugins/endpoint_spec.rb +43 -0
  395. data/vendor/seahorse/spec/seahorse/client/plugins/logging_spec.rb +46 -0
  396. data/vendor/seahorse/spec/seahorse/client/plugins/net_http_spec.rb +71 -0
  397. data/vendor/seahorse/spec/seahorse/client/plugins/operation_methods_spec.rb +74 -0
  398. data/vendor/seahorse/spec/seahorse/client/plugins/restful_bindings/uri_path_builder_spec.rb +91 -0
  399. data/vendor/seahorse/spec/seahorse/client/request_context_spec.rb +105 -0
  400. data/vendor/seahorse/spec/seahorse/client/request_spec.rb +102 -0
  401. data/vendor/seahorse/spec/seahorse/client/response_spec.rb +171 -0
  402. data/vendor/seahorse/spec/seahorse/client/xml/builder/xml_doc_spec.rb +142 -0
  403. data/vendor/seahorse/spec/seahorse/client/xml/builder_spec.rb +10 -0
  404. data/vendor/seahorse/spec/seahorse/client_spec.rb +13 -0
  405. data/vendor/seahorse/spec/seahorse/model/api_spec.rb +72 -0
  406. data/vendor/seahorse/spec/seahorse/model/node_spec.rb +114 -0
  407. data/vendor/seahorse/spec/seahorse/model/operation_input_spec.rb +53 -0
  408. data/vendor/seahorse/spec/seahorse/model/operation_spec.rb +48 -0
  409. data/vendor/seahorse/spec/seahorse/model/operations_spec.rb +64 -0
  410. data/vendor/seahorse/spec/seahorse/model/property_spec.rb +136 -0
  411. data/vendor/seahorse/spec/seahorse/model/shapes/shape_spec.rb +105 -0
  412. data/vendor/seahorse/spec/seahorse/version_spec.rb +11 -0
  413. data/vendor/seahorse/spec/spec_helper.rb +34 -0
  414. data/vendor/seahorse/tasks/ca_bundle.rake +23 -0
  415. data/vendor/seahorse/tasks/docs.rake +11 -0
  416. data/vendor/seahorse/tasks/test.rake +26 -0
  417. metadata +614 -0
@@ -0,0 +1,79 @@
1
+ module Aws
2
+ module Plugins
3
+
4
+ # This plugin provides the ability to provide global configuration for
5
+ # all AWS classes or specific ones.
6
+ #
7
+ # ## Global AWS configuration
8
+ #
9
+ # You can specify global configuration defaults via `Aws.config`
10
+ #
11
+ # Aws.config[:region] = 'us-west-2'
12
+ #
13
+ # Options applied to `Aws.config` are merged with constructed
14
+ # service interfaces.
15
+ #
16
+ # # uses the global configuration
17
+ # Aws::EC2.new.config.region #=> 'us-west-2'
18
+ #
19
+ # # constructor args have priority over global configuration
20
+ # Aws::EC2.new(region: 'us-east-1').config.region #=> 'us-east-1'
21
+ #
22
+ # ## Service Specific Global Configuration
23
+ #
24
+ # Some services have very specific configuration options that are not
25
+ # shared by other services.
26
+ #
27
+ # # oops, this option is only recognized by Aws::S3
28
+ # Aws.config[:force_path_style] = true
29
+ # Aws::EC2.new
30
+ # #=> raises ArgumentError: invalid configuration option `:force_path_style'
31
+ #
32
+ # To avoid this issue, you can nest service specific options
33
+ #
34
+ # Aws.config[:s3] = { force_path_style: true }
35
+ #
36
+ # Aws::EC2.new # no error this time
37
+ # Aws::S3.new.config.force_path_style #=> true
38
+ #
39
+ class GlobalConfiguration < Seahorse::Client::Plugin
40
+
41
+ # @api private
42
+ def before_initialize(service_class, options)
43
+ # apply service specific defaults before the global aws defaults
44
+ apply_service_defaults(service_class, options)
45
+ apply_aws_defaults(options)
46
+ end
47
+
48
+ private
49
+
50
+ def apply_service_defaults(service_class, options)
51
+ if defaults = Aws.config[identifier(service_class)]
52
+ defaults.each do |option_name, default|
53
+ next if option_name == :api_version
54
+ next if options.key?(option_name)
55
+ options[option_name] = default
56
+ end
57
+ end
58
+ end
59
+
60
+ def apply_aws_defaults(options)
61
+ Aws.config.each do |option_name, default|
62
+ next if svc_identifier?(option_name)
63
+ next if option_name == :api_version
64
+ next if options.key?(option_name)
65
+ options[option_name] = default
66
+ end
67
+ end
68
+
69
+ def identifier(service_class)
70
+ service_class.api.metadata['service_class_name'].downcase.to_sym
71
+ end
72
+
73
+ def svc_identifier?(option_name)
74
+ Aws.service_classes.key?(option_name)
75
+ end
76
+
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,30 @@
1
+ module Aws
2
+ module Plugins
3
+
4
+ # @seahorse.client.option [Boolean] :raw_json (false)
5
+ # When `true`, request parameters are not validated or translated.
6
+ # Request parameter keys and values are expected to be formated as
7
+ # they are expected by the service. Similarly, when `:raw_json`
8
+ # is enabled, response data is no longer translated. Instead
9
+ # it is simply the result of a JSON parse.
10
+ class JsonProtocol < Seahorse::Client::Plugin
11
+
12
+ option(:raw_json, false)
13
+
14
+ option(:validate_params) { |config| !config.raw_json }
15
+
16
+ option(:convert_params) { |config| !config.raw_json }
17
+
18
+ def add_handlers(handlers, config)
19
+ if config.raw_json
20
+ handlers.add(Seahorse::Client::Plugins::JsonSimple::Handler)
21
+ else
22
+ handlers.add(RequestHandler.new(Json::Serializer.new))
23
+ handlers.add(ResponseHandler.new(Json::Parser.new))
24
+ end
25
+ handlers.add(ErrorHandler.new(Json::ErrorParser.new), step: :sign)
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,34 @@
1
+
2
+ module Aws
3
+ module Plugins
4
+
5
+ # This plugin applies the "X-Amz-Target" and "Content-Type" headers
6
+ # for AWS JSON Rpc style APIs.
7
+ class JsonRpcHeaders < Seahorse::Client::Plugin
8
+
9
+ # @api private
10
+ class Handler < Seahorse::Client::Handler
11
+
12
+ def call(context)
13
+ context.http_request.headers['X-Amz-Target'] = target(context)
14
+ context.http_request.headers['Content-Type'] = content_type(context)
15
+ @handler.call(context)
16
+ end
17
+
18
+ def target(context)
19
+ prefix = context.config.api.metadata['json_target_prefix']
20
+ "#{prefix}.#{context.operation.name}"
21
+ end
22
+
23
+ def content_type(context)
24
+ version = context.config.api.metadata['json_version']
25
+ "application/x-amz-json-#{version}"
26
+ end
27
+
28
+ end
29
+
30
+ handler(Handler)
31
+
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,11 @@
1
+ module Aws
2
+ module Plugins
3
+ class QueryProtocol < Seahorse::Client::Plugin
4
+
5
+ handler(RequestHandler.new(Query::Serializer.new))
6
+ handler(ResponseHandler.new(Xml::Parser.new))
7
+ handler(ErrorHandler.new(Xml::ErrorParser.new), step: :sign)
8
+
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,37 @@
1
+ module Aws
2
+ module Plugins
3
+
4
+ # @seahorse.client.option [String] :region (ENV['AWS_REGION'])
5
+ # The AWS region to connect to. The region is used to construct
6
+ # the client endpoint.
7
+ #
8
+ # @seahorse.client.option [String] :endpoint
9
+ # The HTTP endpoint for this client. Normally you should not need
10
+ # to configure the `:endpoint` directly. It is constructed from
11
+ # the `:region` option. However, sometime you need to specify
12
+ # the full endpoint, especially when connecting to test
13
+ # endpoints.
14
+ #
15
+ class RegionalEndpoint < Seahorse::Client::Plugin
16
+
17
+ # raised when region is not configured
18
+ MISSING_REGION = 'missing required configuration option :region'
19
+
20
+ option(:region) { ENV['AWS_REGION'] || ENV['AMAZON_REGION'] }
21
+
22
+ option(:endpoint) do |cfg|
23
+ endpoints = cfg.api.metadata['regional_endpoints']
24
+ if endpoints && endpoints[cfg.region]
25
+ endpoints[cfg.region]
26
+ else
27
+ "#{cfg.api.metadata['endpoint_prefix']}.#{cfg.region}.amazonaws.com"
28
+ end
29
+ end
30
+
31
+ def after_initialize(client)
32
+ raise Errors::MissingRegionError unless client.config.region
33
+ end
34
+
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,149 @@
1
+ require 'set'
2
+
3
+ module Aws
4
+ module Plugins
5
+
6
+ # @seahorse.client.option [Integer] :retry_limit (3)
7
+ # The maximum number of times to retry failed requests. Only
8
+ # ~ 500 level server errors and certain ~ 400 level client errors
9
+ # are retried. Generally, these are throttling errors, data
10
+ # checksum errors, networking errors, timeout errors and auth
11
+ # errors from expired credentials.
12
+ class RetryErrors < Seahorse::Client::Plugin
13
+
14
+ option(:retry_limit, 3)
15
+
16
+ option(:retry_backoff, lambda { |c| Kernel.sleep(2 ** c.retries * 0.3) })
17
+
18
+ # @api private
19
+ class ErrorInspector
20
+
21
+ EXPIRED_CREDS = Set.new([
22
+ 'InvalidClientTokenId', # query services
23
+ 'UnrecognizedClientException', # json services
24
+ 'InvalidAccessKeyId', # s3
25
+ 'AuthFailure', # ec2
26
+ ])
27
+
28
+ THROTTLING_ERRORS = Set.new([
29
+ 'Throttling', # query services
30
+ 'ThrottlingException', # json services
31
+ 'RequestThrottled', # sqs
32
+ 'ProvisionedThroughputExceededException', # dynamodb
33
+ 'RequestLimitExceeded', # ec2
34
+ 'BandwidthLimitExceeded', # cloud search
35
+ ])
36
+
37
+ CHECKSUM_ERRORS = Set.new([
38
+ 'CRC32CheckFailed', # dynamodb
39
+ ])
40
+
41
+ NETWORKING_ERRORS = Set.new([
42
+ 'RequestTimeout', # s3
43
+ ])
44
+
45
+ def initialize(error, http_status_code)
46
+ @error = error
47
+ @name = error.class.name.split('::').last
48
+ @http_status_code = http_status_code
49
+ end
50
+
51
+ def expired_credentials?
52
+ !!(EXPIRED_CREDS.include?(@name) || @name.match(/expired/i))
53
+ end
54
+
55
+ def throttling_error?
56
+ !!(THROTTLING_ERRORS.include?(@name) || @name.match(/throttl/i))
57
+ end
58
+
59
+ def checksum?
60
+ CHECKSUM_ERRORS.include?(@name) || @error.is_a?(Errors::ChecksumError)
61
+ end
62
+
63
+ def networking?
64
+ NETWORKING_ERRORS.include?(@name) || @http_status_code == 0
65
+ end
66
+
67
+ def server?
68
+ (500..599).include?(@http_status_code)
69
+ end
70
+
71
+ end
72
+
73
+ class Handler < Seahorse::Client::Handler
74
+
75
+ def call(context)
76
+ response = @handler.call(context)
77
+ if response.error
78
+ retry_if_possible(response)
79
+ else
80
+ response
81
+ end
82
+ end
83
+
84
+ private
85
+
86
+ def retry_if_possible(response)
87
+ context = response.context
88
+ error = error_for(response)
89
+ if should_retry?(context, error)
90
+ retry_request(context, error)
91
+ else
92
+ response
93
+ end
94
+ end
95
+
96
+ def error_for(response)
97
+ ErrorInspector.new(response.error, response.http_response.status_code)
98
+ end
99
+
100
+ def retry_request(context, error)
101
+ delay_retry(context)
102
+ context.retries += 1
103
+ context.config.credentials.refresh! if error.expired_credentials?
104
+ context.http_request.body.rewind
105
+ context.http_response.body.truncate(0)
106
+ call(context)
107
+ end
108
+
109
+ def delay_retry(context)
110
+ context.config.retry_backoff.call(context)
111
+ end
112
+
113
+ def should_retry?(context, error)
114
+ retryable?(context, error) and
115
+ context.retries < retry_limit(context) and
116
+ response_truncatable?(context)
117
+ end
118
+
119
+ def retryable?(context, error)
120
+ (error.expired_credentials? and refreshable_credentials?(context)) or
121
+ error.throttling_error? or
122
+ error.checksum? or
123
+ error.networking? or
124
+ error.server?
125
+ end
126
+
127
+ def refreshable_credentials?(context)
128
+ context.config.credentials.respond_to?(:refresh!)
129
+ end
130
+
131
+ def retry_limit(context)
132
+ context.config.retry_limit
133
+ end
134
+
135
+ def response_truncatable?(context)
136
+ context.http_response.body.respond_to?(:truncate)
137
+ end
138
+
139
+ end
140
+
141
+ def add_handlers(handlers, config)
142
+ if config.retry_limit > 0
143
+ handlers.add(Handler, step: :sign, priority: 99)
144
+ end
145
+ end
146
+
147
+ end
148
+ end
149
+ end
@@ -0,0 +1,78 @@
1
+ module Aws
2
+ module Plugins
3
+
4
+ # Amazon S3 requires DNS style addressing for buckets outside of
5
+ # the classic region when possible.
6
+ #
7
+ # @seahorse.client.option [Boolean] :force_path_style (false)
8
+ # When set to `true`, the bucket name is always left in the
9
+ # request URI and never moved to the host as a sub-domain.
10
+ #
11
+ class S3BucketDns < Seahorse::Client::Plugin
12
+
13
+ # When set to `false` DNS compatible bucket names are moved from
14
+ # the request URI path to the host as a subdomain, unless the request
15
+ # is using SSL and the bucket name contains a dot.
16
+ #
17
+ # When set to `true`, the bucket name is always forced to be part
18
+ # of the request URI path. This will not work with buckets outside
19
+ # the classic region.
20
+ option(:force_path_style, false)
21
+
22
+ # @api private
23
+ class Handler < Seahorse::Client::Handler
24
+
25
+ def call(context)
26
+ unless context.config.force_path_style
27
+ move_dns_compat_bucket_to_subdomain(context)
28
+ end
29
+ @handler.call(context)
30
+ end
31
+
32
+ private
33
+
34
+ def move_dns_compat_bucket_to_subdomain(context)
35
+ if bucket_name = context.params[:bucket]
36
+ req = context.http_request
37
+ if S3BucketDns.dns_compatible?(bucket_name, req.endpoint.https?)
38
+ move_bucket_to_subdomain(bucket_name, req)
39
+ end
40
+ end
41
+ end
42
+
43
+ def move_bucket_to_subdomain(bucket_name, req)
44
+ req.endpoint.host = "#{bucket_name}.#{req.endpoint.host}"
45
+ req.path = req.path[(bucket_name.size + 1)..-1]
46
+ req.path = "/#{req.path}" unless req.path.match(/^\//)
47
+ end
48
+
49
+ end
50
+
51
+ handler(Handler)
52
+
53
+ class << self
54
+
55
+ # @param [String] bucket_name
56
+ # @param [Boolean] ssl
57
+ # @return [Boolean]
58
+ def dns_compatible?(bucket_name, ssl)
59
+ if valid_subdomain?(bucket_name)
60
+ bucket_name.match(/\./) && ssl ? false : true
61
+ else
62
+ false
63
+ end
64
+ end
65
+
66
+ private
67
+
68
+ def valid_subdomain?(bucket_name)
69
+ bucket_name.size < 64 &&
70
+ bucket_name =~ /^[a-z0-9][a-z0-9.-]+[a-z0-9]$/ &&
71
+ bucket_name !~ /(\d+\.){3}\d+/ &&
72
+ bucket_name !~ /[.-]{2}/
73
+ end
74
+
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,38 @@
1
+ require 'multi_xml'
2
+
3
+ module Aws
4
+ module Plugins
5
+ class S3CompleteMultipartUploadFix < Seahorse::Client::Plugin
6
+
7
+ class Handler < Seahorse::Client::Handler
8
+
9
+ def call(context)
10
+ @handler.call(context).on_success do |response|
11
+ if error = check_for_error(response)
12
+ response.http_response.status_code = 500
13
+ response.data = nil
14
+ response.error = error
15
+ end
16
+ end
17
+ end
18
+
19
+ def check_for_error(response)
20
+ xml = MultiXml.parse(response.http_response.body_contents)
21
+ if xml['Error']
22
+ error_code = xml['Error']['Code']
23
+ error_message = xml['Error']['Message']
24
+ Errors.error_class('S3', error_code).new(error_message)
25
+ end
26
+ end
27
+
28
+ end
29
+
30
+ handler(Handler,
31
+ step: :build,
32
+ priority: 40,
33
+ operations: [:complete_multipart_upload]
34
+ )
35
+
36
+ end
37
+ end
38
+ end