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,48 @@
1
+ module Aws
2
+ # @api private
3
+ class ErrorHandler
4
+
5
+ def initialize(parser)
6
+ @parser = parser
7
+ end
8
+
9
+ attr_accessor :handler
10
+
11
+ def call(context)
12
+ @handler.call(context).on_status(300..599) do |response|
13
+ if empty_body?(response)
14
+ error_code = error_code_for_empty_response(response)
15
+ error_message = ''
16
+ else
17
+ error_code, error_message = @parser.extract_error(response)
18
+ end
19
+ response.error = error(context, error_code, error_message)
20
+ response.data = nil
21
+ end
22
+ end
23
+
24
+ private
25
+
26
+ def error(context, code, message)
27
+ svc_class_name = context.config.api.metadata['service_class_name']
28
+ klass = Errors.error_class(svc_class_name, code)
29
+ Errors.error_class(svc_class_name, code).new(context, message)
30
+ end
31
+
32
+ def empty_body?(response)
33
+ response.http_response.body_contents.empty?
34
+ end
35
+
36
+ def error_code_for_empty_response(response)
37
+ error_code = response.http_response.status_code
38
+ {
39
+ 302 => 'MovedTemporarily',
40
+ 304 => 'NotModified',
41
+ 400 => 'BadRequest',
42
+ 403 => 'Forbidden',
43
+ 404 => 'NotFound',
44
+ }[error_code] || "#{error_code}Error"
45
+ end
46
+
47
+ end
48
+ end
@@ -0,0 +1,83 @@
1
+ module Aws
2
+ module Errors
3
+
4
+ # The base class for all errors returned by an Amazon Web Service.
5
+ # All ~400 level client errors and ~500 level server errors are raised
6
+ # as service errors. This indicates it was an error returned from the
7
+ # service and not one generated by the client.
8
+ class ServiceError < RuntimeError
9
+
10
+ # @param [Seahorse::Client::RequestContext] context
11
+ # @param [String] message
12
+ def initialize(context = nil, message = nil)
13
+ if context.is_a?(String)
14
+ message = context
15
+ else
16
+ @context = context
17
+ end
18
+ super(message)
19
+ end
20
+
21
+ # @return [Seahorse::Client::RequestContext] The context of the request
22
+ # that triggered the remote service to return this error.
23
+ attr_reader :context
24
+
25
+ end
26
+
27
+ # Various plugins perform client-side checksums of responses.
28
+ # This error indicates a checksum failed.
29
+ class ChecksumError < RuntimeError; end
30
+
31
+ # Raised when a {Service} is constructed an no suitable API
32
+ # version is found based on configuration.
33
+ class NoSuchApiVersionError < RuntimeError; end
34
+
35
+ # Raised when a {Service} is constructed and credentials are not
36
+ # set, or the set credentials are empty.
37
+ class MissingCredentialsError < RuntimeError; end
38
+
39
+ # Raised when a {Service} is constructed and region is not specified.
40
+ class MissingRegionError < RuntimeError; end
41
+
42
+ # This module is mixed into another module, providing dynamic
43
+ # error classes. Error classes all inherit from {ServiceError}.
44
+ #
45
+ # # creates and returns the class
46
+ # Aws::S3::Errors::MyNewErrorClass
47
+ #
48
+ # Since the complete list of possible AWS errors returned by services
49
+ # is not known, this allows us to create them as needed. This also
50
+ # allows users to rescue errors by class without them being concrete
51
+ # classes beforehand.
52
+ #
53
+ # @api private
54
+ module DynamicErrors
55
+
56
+ def const_missing(constant)
57
+ const_set(constant, Class.new(ServiceError))
58
+ end
59
+
60
+ end
61
+
62
+ class << self
63
+
64
+ # Given the name of a service and an error code, this method
65
+ # returns an error class (that extends {ServiceError}.
66
+ #
67
+ # Aws::Errors.error_class('S3', 'NoSuchBucket').new
68
+ # #=> #<Aws::S3::Errors::NoSuchBucket>
69
+ #
70
+ # @api private
71
+ def error_class(svc_class_name, error_code)
72
+ constant = error_code.to_s.gsub(/\W+/, '').to_sym
73
+ errors = Aws.const_get(svc_class_name).const_get(:Errors)
74
+ if errors.constants.include?(constant)
75
+ errors.const_get(constant)
76
+ else
77
+ errors.const_set(constant, Class.new(ServiceError))
78
+ end
79
+ end
80
+
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,77 @@
1
+ require 'multi_json'
2
+ require 'base64'
3
+
4
+ module Aws
5
+ module Json
6
+ class Builder
7
+
8
+ include Seahorse::Model::Shapes
9
+ include TimestampFormatter
10
+
11
+ # @param [Seahorse::Model::Shapes::Shape] rules
12
+ def initialize(rules)
13
+ @rules = rules
14
+ end
15
+
16
+ # @param [Hash] params
17
+ # @return [Hash]
18
+ def build(params)
19
+ structure(@rules, params)
20
+ end
21
+
22
+ # @param [Hash] params
23
+ # @return [String<JSON>]
24
+ def to_json(params)
25
+ MultiJson.dump(build(params))
26
+ end
27
+
28
+ class << self
29
+
30
+ # @param [Seahorse::Model::Shapes::Shape] rules
31
+ # @param [Hash] params
32
+ # @return [String<JSON>]
33
+ def to_json(rules, params)
34
+ new(rules).to_json(params)
35
+ end
36
+ alias build to_json
37
+
38
+ end
39
+
40
+ private
41
+
42
+ def structure(shape, values)
43
+ data = {}
44
+ values.each do |key, value|
45
+ if member_shape = shape.members[key]
46
+ data[member_shape.serialized_name] = member(member_shape, value)
47
+ end
48
+ end
49
+ data
50
+ end
51
+
52
+ def list(shape, values)
53
+ values.map { |value| member(shape.members, value) }
54
+ end
55
+
56
+ def map(shape, values)
57
+ data = {}
58
+ values.each do |key, value|
59
+ data[key] = member(shape.members, value)
60
+ end
61
+ data
62
+ end
63
+
64
+ def member(shape, value)
65
+ case shape
66
+ when StructureShape then structure(shape, value)
67
+ when ListShape then list(shape, value)
68
+ when MapShape then map(shape, value)
69
+ when TimestampShape then timestamp(shape, value.utc)
70
+ when BlobShape then Base64.strict_encode64(value)
71
+ else value
72
+ end
73
+ end
74
+
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,20 @@
1
+ module Aws
2
+ module Json
3
+ class ErrorParser
4
+
5
+ def extract_error(response)
6
+ json = MultiJson.load(response.http_response.body_contents)
7
+ error_code = json['code'] || json['__type']
8
+ error_code ||= response.http_response.headers['x-amzn-errortype']
9
+ error_code = error_code.split('#').last
10
+ if error_code == 'RequestEntityTooLarge'
11
+ error_message = 'Request body must be less than 1 MB'
12
+ else
13
+ error_message = json['message'] || json['Message']
14
+ end
15
+ [error_code, error_message]
16
+ end
17
+
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,67 @@
1
+ require 'multi_json'
2
+ require 'base64'
3
+
4
+ module Aws
5
+ module Json
6
+ class Parser
7
+
8
+ include Seahorse::Model::Shapes
9
+
10
+ # @param [Seahorse::Model::Shapes::OutputShape] rules
11
+ # @param [String<JSON>] json
12
+ # @return [Hash]
13
+ def parse(rules, json)
14
+ json = '{}' if json == ''
15
+ structure(rules, MultiJson.load(json, max_nesting: false))
16
+ end
17
+
18
+ # @param [Seahorse::Model::Shapes::OutputShape] rules
19
+ # @param [String<JSON>] json
20
+ # @return [Hash]
21
+ def self.parse(rules, json)
22
+ new.parse(rules, json)
23
+ end
24
+
25
+ private
26
+
27
+ def structure(shape, values)
28
+ data = Structure.new(shape.members.keys)
29
+ values.each do |key, value|
30
+ if member_shape = shape.serialized_members[key]
31
+ data[member_shape.member_name] = member(member_shape, value)
32
+ end
33
+ end
34
+ data
35
+ end
36
+
37
+ def list(shape, values)
38
+ values.map { |value| member(shape.members, value) }
39
+ end
40
+
41
+ def map(shape, values)
42
+ data = {}
43
+ values.each do |key, value|
44
+ data[key] = member(shape.members, value)
45
+ end
46
+ data
47
+ end
48
+
49
+ def member(shape, value)
50
+ return nil if value.nil?
51
+ case shape
52
+ when StructureShape then structure(shape, value)
53
+ when ListShape then list(shape, value)
54
+ when MapShape then map(shape, value)
55
+ when TimestampShape then time(value)
56
+ when BlobShape then Base64.decode64(value)
57
+ else value
58
+ end
59
+ end
60
+
61
+ def time(value)
62
+ value.is_a?(Numeric) ? Time.at(value) : Time.parse(value)
63
+ end
64
+
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,15 @@
1
+ module Aws
2
+ module Json
3
+ # @api private
4
+ class Serializer
5
+
6
+ def setup_request(*args); end
7
+
8
+ def serialize_params(context, rules, params)
9
+ json_params = Builder.new(rules).build(params)
10
+ context.http_request.body = MultiJson.dump(json_params)
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,48 @@
1
+ module Aws
2
+ module Plugins
3
+
4
+ # @seahorse.client.option [String] :access_key_id Your AWS account
5
+ # access key ID. Defaults to `ENV['AWS_ACCESS_KEY_ID']`.
6
+ #
7
+ # @seahorse.client.option [String] :secret_access_key Your AWS account
8
+ # secret access key. Defaults to `ENV['AWS_SECRET_ACCESS_KEY']`.
9
+ #
10
+ # @seahorse.client.option [String] :session_token If your credentials
11
+ # are temporary session credentials, this should be the
12
+ # session token. Defaults to `ENV['AWS_SESSION_TOKEN']`.
13
+ #
14
+ # @seahorse.client.option [Credentials] :credentials
15
+ # Your AWS account credentials. Defaults to a new {Credentials} object
16
+ # populated by `:access_key_id`, `:secret_access_key` and
17
+ # `:session_token`.
18
+ #
19
+ class Credentials < Seahorse::Client::Plugin
20
+
21
+ option(:access_key_id) {
22
+ ENV['AWS_ACCESS_KEY_ID'] || ENV['AMAZON_ACCESS_KEY_ID']
23
+ }
24
+
25
+ option(:secret_access_key) {
26
+ ENV['AWS_SECRET_ACCESS_KEY'] || ENV['AMAZON_SECRET_ACCESS_KEY']
27
+ }
28
+
29
+ option(:session_token) {
30
+ ENV['AWS_SESSION_TOKEN'] || ENV['AMAZON_SESSION_TOKEN']
31
+ }
32
+
33
+ option(:credentials) do |config|
34
+ Aws::Credentials.new(
35
+ config.access_key_id,
36
+ config.secret_access_key,
37
+ config.session_token)
38
+ end
39
+
40
+ def after_initialize(client)
41
+ if client.config.credentials.nil? or !client.config.credentials.set?
42
+ raise Errors::MissingCredentialsError
43
+ end
44
+ end
45
+
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,22 @@
1
+ module Aws
2
+ module Plugins
3
+
4
+ # @seahorse.client.option [Integer] :retry_limit (10)
5
+ # The maximum number of times to retry failed requests. Only
6
+ # ~ 500 level server errors and certain ~ 400 level client errors
7
+ # are retried. Generally, these are throttling errors, data
8
+ # checksum errors, networking errors, timeout errors and auth
9
+ # errors from expired credentials.
10
+ class DynamoDBExtendedRetries < Seahorse::Client::Plugin
11
+
12
+ option(:retry_limit, 10)
13
+
14
+ option(:retry_backoff, lambda { |context|
15
+ if context.retries > 1
16
+ Kernel.sleep(50 * (2 ** (context.retries - 1)) / 1000.0)
17
+ end
18
+ })
19
+
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,19 @@
1
+ module Aws
2
+ module Plugins
3
+ class GlacierApiVersion < Seahorse::Client::Plugin
4
+
5
+ class Handler < Seahorse::Client::Handler
6
+
7
+ def call(context)
8
+ version = context.config.api.version
9
+ context.http_request.headers['x-amz-glacier-version'] = version
10
+ @handler.call(context)
11
+ end
12
+
13
+ end
14
+
15
+ handler(Handler)
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,100 @@
1
+ require 'openssl'
2
+
3
+ module Aws
4
+ module Plugins
5
+
6
+ # Computes the `:checksum` of the HTTP request body for operations
7
+ # that require the `X-Amz-Sha256-Tree-Hash` header. This includes:
8
+ #
9
+ # * `:complete_multipart_upload`
10
+ # * `:upload_archive`
11
+ # * `:upload_multipart_part`
12
+ #
13
+ # The `:upload_archive` and `:upload_multipart_part` operations
14
+ # accept a `:checksum` request paramter. If this param
15
+ # is present, then the checksum is assumed to be the proper
16
+ # tree hash of the file to be uploaded. If this param is
17
+ # not present, then the required tree hash checksum will
18
+ # be generated.
19
+ #
20
+ # The `:complete_multipart_upload` operation does not accept
21
+ # a checksum and this plugin will always compute this of the
22
+ # HTTP request body on your behalf.
23
+ class GlacierChecksums < Seahorse::Client::Plugin
24
+
25
+ CHECKSUM_OPERATIONS = [
26
+ :complete_multipart_upload,
27
+ :upload_archive,
28
+ :upload_multipart_part,
29
+ ]
30
+
31
+ class Handler < Seahorse::Client::Handler
32
+
33
+ HASH = 'X-Amz-Content-Sha256'
34
+ TREE_HASH = 'X-Amz-Sha256-Tree-Hash'
35
+
36
+ def call(context)
37
+ unless context.http_request.headers[TREE_HASH]
38
+ populate_checksum_headers(context.http_request)
39
+ end
40
+ @handler.call(context)
41
+ end
42
+
43
+ private
44
+
45
+ def populate_checksum_headers(http_req)
46
+ compute_checksums(http_req.body) do |hash, tree_hash|
47
+ http_req.headers[HASH] = hash
48
+ http_req.headers[TREE_HASH] = tree_hash
49
+ end
50
+ end
51
+
52
+ # Computes two checksums of the body. The tree hash is required
53
+ # by Glacier for operations where you upload a file. The other
54
+ # checksum is required by signature version 4. We compute both
55
+ # here so the sigv4 signer does not need to re-read the body.
56
+ def compute_checksums(body, &block)
57
+
58
+ digest = OpenSSL::Digest::Digest.new('sha256')
59
+ tree_digest = OpenSSL::Digest::Digest.new('sha256')
60
+ tree_parts = []
61
+
62
+ until body.eof?
63
+
64
+ chunk = body.read(1024 * 1024) # read 1MB
65
+ tree_parts << tree_digest.update(chunk).digest
66
+ tree_digest.reset
67
+
68
+ digest.update(chunk)
69
+
70
+ end
71
+
72
+ body.rewind
73
+
74
+ yield(digest.to_s, compute_tree_hash(tree_parts))
75
+
76
+ end
77
+
78
+ def compute_tree_hash hashes
79
+ digest = OpenSSL::Digest::Digest.new('sha256')
80
+ until hashes.count == 1
81
+ hashes = hashes.each_slice(2).map do |h1,h2|
82
+ digest.reset
83
+ if h2
84
+ digest.update(h1)
85
+ digest.update(h2)
86
+ digest.digest
87
+ else
88
+ h1
89
+ end
90
+ end
91
+ end
92
+ hashes.first.bytes.map{|x| x.to_i.to_s(16).rjust(2,'0')}.join('')
93
+ end
94
+ end
95
+
96
+ handler(Handler, operations: CHECKSUM_OPERATIONS)
97
+
98
+ end
99
+ end
100
+ end