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,91 @@
1
+ require 'stringio'
2
+
3
+ module Aws
4
+ module Query
5
+ class ParamList
6
+
7
+ include Enumerable
8
+
9
+ # @api private
10
+ def initialize
11
+ @params = {}
12
+ end
13
+
14
+ # @param [String] param_name
15
+ # @param [String, nil] param_value
16
+ # @return [Param]
17
+ def set(param_name, param_value = nil)
18
+ param = Param.new(param_name, param_value)
19
+ @params[param.name] = param
20
+ param
21
+ end
22
+ alias []= set
23
+
24
+ # @return [Param, nil]
25
+ def [](param_name)
26
+ @params[param_name.to_s]
27
+ end
28
+
29
+ # @param [String] param_name
30
+ # @return [Param, nil]
31
+ def delete(param_name)
32
+ @params.delete(param_name)
33
+ end
34
+
35
+ # @return [Enumerable]
36
+ def each(&block)
37
+ to_a.each(&block)
38
+ end
39
+
40
+ # @return [Boolean]
41
+ def empty?
42
+ @params.empty?
43
+ end
44
+
45
+ # @return [Array<Param>] Returns an array of sorted {Param} objects.
46
+ def to_a
47
+ @params.values.sort
48
+ end
49
+
50
+ # @return [String]
51
+ def to_s
52
+ to_a.map(&:to_s).join('&')
53
+ end
54
+
55
+ # @return [#read, #rewind, #size]
56
+ def to_io
57
+ IoWrapper.new(self)
58
+ end
59
+
60
+ # @api private
61
+ class IoWrapper
62
+
63
+ # @param [ParamList] param_list
64
+ def initialize(param_list)
65
+ @param_list = param_list
66
+ @io = StringIO.new(param_list.to_s)
67
+ end
68
+
69
+ # @return [ParamList]
70
+ attr_reader :param_list
71
+
72
+ # @return [Integer]
73
+ def size
74
+ @io.size
75
+ end
76
+
77
+ # @return [void]
78
+ def rewind
79
+ @io.rewind
80
+ end
81
+
82
+ # @return [String, nil]
83
+ def read(bytes = nil, output_buffer = nil)
84
+ @io.read(bytes, output_buffer)
85
+ end
86
+
87
+ end
88
+
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,24 @@
1
+ module Aws
2
+ module Query
3
+ # @api private
4
+ class Serializer
5
+
6
+ def setup_request(context)
7
+ context.http_request.headers['Content-Type'] =
8
+ 'application/x-www-form-urlencoded; charset=utf-8'
9
+ finalize_param_list(context, Query::ParamList.new)
10
+ end
11
+
12
+ def serialize_params(context, rules, params)
13
+ finalize_param_list(context, Builder.to_query_params(rules, params))
14
+ end
15
+
16
+ def finalize_param_list(context, param_list)
17
+ param_list.set('Version', context.config.api.version)
18
+ param_list.set('Action', context.operation.name)
19
+ context.http_request.body = param_list.to_io
20
+ end
21
+
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,39 @@
1
+ module Aws
2
+ # @api private
3
+ class RequestHandler
4
+
5
+ def initialize(serializer)
6
+ @serializer = serializer
7
+ end
8
+
9
+ attr_accessor :handler
10
+
11
+ def call(context)
12
+ setup_request(context)
13
+ serialize_params(context) if serialize_params?(context)
14
+ @handler.call(context)
15
+ end
16
+
17
+ def setup_request(context)
18
+ @serializer.setup_request(context)
19
+ end
20
+
21
+ def serialize_params(context)
22
+ input = context.operation.input
23
+ if input.payload
24
+ rules = input.payload_member
25
+ params = context.params[input.payload] || {}
26
+ else
27
+ rules = input
28
+ params = context.params
29
+ end
30
+ @serializer.serialize_params(context, rules, params)
31
+ end
32
+
33
+ def serialize_params?(context)
34
+ rules = context.operation.input
35
+ !(rules.raw_payload? || rules.payload_member.empty?)
36
+ end
37
+
38
+ end
39
+ end
@@ -0,0 +1,38 @@
1
+ module Aws
2
+ # @api private
3
+ class ResponseHandler
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_success do |response|
13
+ rules = context.operation.output
14
+ response.error = nil
15
+ response.data = case
16
+ when rules.raw_payload? then empty_struct(rules)
17
+ when rules.payload then parse_payload(rules, context)
18
+ else parse(rules, context)
19
+ end
20
+ end
21
+ end
22
+
23
+ def empty_struct(rules)
24
+ Structure.new(rules.members.keys)
25
+ end
26
+
27
+ def parse_payload(rules, context)
28
+ data = empty_struct(rules)
29
+ data[rules.payload] = parse(rules.payload_member, context)
30
+ data
31
+ end
32
+
33
+ def parse(rules, context)
34
+ @parser.parse(rules, context.http_response.body_contents)
35
+ end
36
+
37
+ end
38
+ end
@@ -0,0 +1,237 @@
1
+ require 'multi_json'
2
+
3
+ module Aws
4
+ class Service
5
+ class << self
6
+
7
+ # Constructs and returns versioned API client. Defaults to the
8
+ # newest/latest API version.
9
+ #
10
+ # Aws::DynamoDB.new
11
+ # #=> #<Aws::DynamoDB::V20120810>
12
+ #
13
+ # ## Specify API Version
14
+ #
15
+ # You can specify the API version and get a different client.
16
+ #
17
+ # Aws::DynamoDB.new(api_version: '2011-12-05')
18
+ # #=> #<Aws::DynamoDB::V20111205>
19
+ #
20
+ # ## Locking API Versions
21
+ #
22
+ # You can lock the API version for a service via {Aws.config}:
23
+ #
24
+ # Aws.config[:dynamodb] = { api_version: '2011-12-05' }
25
+ # Aws::DynamoDB.new
26
+ # #=> #<Aws::DynamoDB::V20111205>
27
+ #
28
+ # ## Global Version Lock
29
+ #
30
+ # It is possible to provide a single 'YYYY-MM-DD' date to lock the
31
+ # API version for every service. This is useful to ensure that
32
+ # future API updates do not break existing usage.
33
+ #
34
+ # When using the single lock, the API version that was current
35
+ # at the given date will be used.
36
+ #
37
+ # For example, Aws::DynamoDB has two API versions, 2011-12-05 and
38
+ # 2012-10-01. If the lock date is in between these two dates, the
39
+ # older will be used.
40
+ #
41
+ # Aws.config[:api_version] = '2012-01-01'
42
+ # Aws::DynamoDB.new
43
+ # #=> #<Aws::DynamoDB::V20111205>
44
+ #
45
+ # @return [Seahorse::Client::Base] Returns a versioned client.
46
+ def new(options = {})
47
+ options = options.dup
48
+ api_version = options.delete(:api_version) || default_api_version
49
+ versioned_client_class(api_version).new(options)
50
+ end
51
+
52
+ # Registers a new API version for this client factory. You need to
53
+ # provide the API version in `YYYY-MM-DD` format and an API.
54
+ # The `api` may be a string path to an API on disk or a fully
55
+ # constructed `Seahorse::Model::Api` object.
56
+ #
57
+ # @example Register a versioned client with a path to the JSON api.
58
+ # Aws::S3::add_version('2013-01-02', '/path/to/api/src.json')
59
+ #
60
+ # @example Register a versioned client with a hydrated API.
61
+ # api = Seahorse::Model::Api.from_hash(api_src)
62
+ # Aws::S3::add_version('2013-01-02', api)
63
+ #
64
+ # @param [String<YYYY-MM-DD>] api_version
65
+ # @param [String<Pathname>, Seahorse::Model::Api] api
66
+ # @return [void]
67
+ # @see .api_versions
68
+ # @see .default_api_version
69
+ # @see .latest_api_version
70
+ # @see .versioned_clients
71
+ def add_version(api_version, api)
72
+ apis[api_version] = api
73
+ end
74
+
75
+ # @return [Array<String>] Returns a list of supported API versions
76
+ # in a `YYYY-MM-DD` format.
77
+ # @see .add_version
78
+ # @see .latest_api_version
79
+ # @see .default_api_version
80
+ # @see .default_client_class
81
+ # @see .versioned_clients
82
+ def api_versions
83
+ apis.keys.sort
84
+ end
85
+
86
+ # @return [String<YYYY-MM-DD>] Returns the most current API version.
87
+ # @see .add_version
88
+ # @see .api_versions
89
+ # @see .default_api_version
90
+ # @see .default_client_class
91
+ # @see .versioned_clients
92
+ def latest_api_version
93
+ api_versions.last
94
+ end
95
+
96
+ # @return [String<YYYY-MM-DD>] Returns the default API version. This
97
+ # is the version of the client that will be constructed if there
98
+ # is other configured or specified API version.
99
+ # @see .add_version
100
+ # @see .api_versions
101
+ # @see .default_client_class
102
+ # @see .latest_api_version
103
+ # @see .versioned_clients
104
+ def default_api_version
105
+ svc_locked_version || aws_locked_version || latest_api_version
106
+ end
107
+
108
+ # Returns an array of versioned client classes for this service.
109
+ #
110
+ # Aws::DynamoDB.versioned_clients
111
+ # #=> [Aws::DynamoDB::V20111205, Aws::DynamoDB::V20120810]
112
+ #
113
+ # @return [Array<Class>] Returns an array of the versioned client
114
+ # classes for this service.
115
+ # @see .add_version
116
+ # @see .api_versions
117
+ # @see .default_api_version
118
+ # @see .default_client_class
119
+ # @see .latest_api_version
120
+ def versioned_clients
121
+ api_versions.map { |api_version| versioned_client_class(api_version) }
122
+ end
123
+
124
+ # @return [Class<Seahorse::Client::Base>]
125
+ # @see .add_version
126
+ # @see .api_versions
127
+ # @see .default_api_version
128
+ # @see .latest_api_version
129
+ # @see .versioned_clients
130
+ def default_client_class
131
+ versioned_client_class(default_api_version)
132
+ end
133
+
134
+ # Adds a plugin to each versioned client class.
135
+ # @param [Plugin] plugin
136
+ # @return [void]
137
+ # @see .remove_plugin
138
+ def add_plugin(plugin)
139
+ versioned_clients.each do |client_class|
140
+ client_class.add_plugin(plugin)
141
+ end
142
+ end
143
+
144
+ # Removes a plugin from each versioned client class.
145
+ # @param [Plugin] plugin
146
+ # @return [void]
147
+ # @see .add_plugin
148
+ def remove_plugin(plugin)
149
+ versioned_clients.each do |client_class|
150
+ client_class.remove_plugin(plugin)
151
+ end
152
+ end
153
+
154
+ # @return [Symbol] Returns the service identifier. This is the
155
+ # downcased service name (e.g. `:s3`, `:dynamodb`, `:ec2`, etc).
156
+ attr_accessor :identifier
157
+
158
+ # @param [Symbol] identifier The downcased short name for this service.
159
+ # @param [Array<Api, String>] apis An array of client APIs for this
160
+ # service. Values may be string paths to API files or instances of
161
+ # `Seahorse::Model::Api`.
162
+ # @return [Class<Service>]
163
+ # @api private
164
+ def define(identifier, apis = [])
165
+ klass = Class.new(self)
166
+ klass.const_set(:Errors, Module.new { extend Errors::DynamicErrors })
167
+ klass.identifier = identifier.to_sym
168
+ apis.each do |api|
169
+ if api.is_a?(String)
170
+ yyyy_mm_dd = api.match(/\d{4}-\d{2}-\d{2}/)[0]
171
+ klass.add_version(yyyy_mm_dd, api)
172
+ else
173
+ klass.add_version(api.version, api)
174
+ end
175
+ end
176
+ klass
177
+ end
178
+
179
+ private
180
+
181
+ def svc_locked_version
182
+ (Aws.config[identifier] || {})[:api_version]
183
+ end
184
+
185
+ def aws_locked_version
186
+ if api_version = Aws.config[:api_version]
187
+ api_versions.select { |v| v <= api_version }.last || api_version
188
+ end
189
+ end
190
+
191
+ def versioned_client_class(api_version)
192
+ const_get("V#{api_version.gsub('-', '')}")
193
+ end
194
+
195
+ def apis
196
+ @apis ||= {}
197
+ end
198
+
199
+ def const_missing(constant)
200
+ if constant =~ /^V\d{8}$/
201
+ api = api(api_version(constant))
202
+ const_set(constant, Seahorse::Client.define(api: api))
203
+ else
204
+ super
205
+ end
206
+ end
207
+
208
+ def api(api_version)
209
+ api = apis[api_version]
210
+ case api
211
+ when Seahorse::Model::Api then api
212
+ when String then load_api(api)
213
+ else
214
+ msg = "API #{api_version} not defined for #{name}"
215
+ raise Errors::NoSuchApiVersionError, msg
216
+ end
217
+ end
218
+
219
+ def api_version(constant)
220
+ yyyy = constant[1,4]
221
+ mm = constant[5,2]
222
+ dd = constant[7,2]
223
+ [yyyy, mm, dd].join('-')
224
+ end
225
+
226
+ def load_api(path)
227
+ api = MultiJson.load(File.read(path), max_nesting: false)
228
+ if api.key?('metadata')
229
+ Seahorse::Model::Api.from_hash(api)
230
+ else
231
+ Api::Translator.translate(api, documentation: false, errors: false)
232
+ end
233
+ end
234
+
235
+ end
236
+ end
237
+ end
@@ -0,0 +1,29 @@
1
+ module Aws
2
+ module Signers
3
+ class Base
4
+
5
+ # @param [Credentials] credentials
6
+ def initialize(credentials)
7
+ @credentials = credentials
8
+ end
9
+
10
+ private
11
+
12
+ def sha256_hmac(value)
13
+ Base64.encode64(
14
+ OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('sha256'),
15
+ @credentials.secret_access_key, value)
16
+ ).strip
17
+ end
18
+
19
+ class << self
20
+
21
+ # @param [Seahorse::Client::RequestContext] context
22
+ def sign(context)
23
+ new(context.config.credentials).sign(context.http_request)
24
+ end
25
+
26
+ end
27
+ end
28
+ end
29
+ end