aws-sdk-v1 1.52.0

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 (560) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +7 -0
  3. data/LICENSE.txt +12 -0
  4. data/README.md +337 -0
  5. data/bin/aws-rb +179 -0
  6. data/ca-bundle.crt +3554 -0
  7. data/endpoints.json +1671 -0
  8. data/lib/aws-sdk-v1.rb +2 -0
  9. data/lib/aws-sdk.rb +1 -0
  10. data/lib/aws.rb +14 -0
  11. data/lib/aws/api_config/AutoScaling-2011-01-01.yml +1070 -0
  12. data/lib/aws/api_config/CloudFormation-2010-05-15.yml +372 -0
  13. data/lib/aws/api_config/CloudFront-2013-05-12.yml +2448 -0
  14. data/lib/aws/api_config/CloudFront-2013-08-26.yml +2599 -0
  15. data/lib/aws/api_config/CloudFront-2013-09-27.yml +2765 -0
  16. data/lib/aws/api_config/CloudFront-2013-11-11.yml +2886 -0
  17. data/lib/aws/api_config/CloudFront-2013-11-22.yml +2918 -0
  18. data/lib/aws/api_config/CloudFront-2014-01-31.yml +2934 -0
  19. data/lib/aws/api_config/CloudFront-2014-05-31.yml +3100 -0
  20. data/lib/aws/api_config/CloudSearch-2011-02-01.yml +681 -0
  21. data/lib/aws/api_config/CloudSearch-2013-01-01.yml +1164 -0
  22. data/lib/aws/api_config/CloudTrail-2013-11-01.yml +130 -0
  23. data/lib/aws/api_config/CloudWatch-2010-08-01.yml +433 -0
  24. data/lib/aws/api_config/DataPipeline-2012-10-29.yml +422 -0
  25. data/lib/aws/api_config/DirectConnect-2012-10-25.yml +735 -0
  26. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +1168 -0
  27. data/lib/aws/api_config/DynamoDB-2012-08-10.yml +2105 -0
  28. data/lib/aws/api_config/EC2-2013-08-15.yml +4708 -0
  29. data/lib/aws/api_config/EC2-2013-10-01.yml +4726 -0
  30. data/lib/aws/api_config/EC2-2013-10-15.yml +4651 -0
  31. data/lib/aws/api_config/EC2-2014-02-01.yml +4755 -0
  32. data/lib/aws/api_config/EC2-2014-05-01.yml +4812 -0
  33. data/lib/aws/api_config/ELB-2012-06-01.yml +766 -0
  34. data/lib/aws/api_config/EMR-2009-03-31.yml +972 -0
  35. data/lib/aws/api_config/ElastiCache-2013-06-15.yml +1188 -0
  36. data/lib/aws/api_config/ElastiCache-2014-03-24.yml +1375 -0
  37. data/lib/aws/api_config/ElastiCache-2014-07-15.yml +1385 -0
  38. data/lib/aws/api_config/ElasticBeanstalk-2010-12-01.yml +854 -0
  39. data/lib/aws/api_config/ElasticTranscoder-2012-09-25.yml +3082 -0
  40. data/lib/aws/api_config/Glacier-2012-06-01.yml +649 -0
  41. data/lib/aws/api_config/IAM-2010-05-08.yml +1339 -0
  42. data/lib/aws/api_config/ImportExport-2010-06-01.yml +109 -0
  43. data/lib/aws/api_config/Kinesis-2013-12-02.yml +201 -0
  44. data/lib/aws/api_config/OpsWorks-2013-02-18.yml +2025 -0
  45. data/lib/aws/api_config/RDS-2013-05-15.yml +2464 -0
  46. data/lib/aws/api_config/RDS-2013-09-09.yml +2640 -0
  47. data/lib/aws/api_config/Redshift-2012-12-01.yml +2161 -0
  48. data/lib/aws/api_config/Route53-2012-12-12.yml +547 -0
  49. data/lib/aws/api_config/Route53-2013-04-01.yml +889 -0
  50. data/lib/aws/api_config/SNS-2010-03-31.yml +448 -0
  51. data/lib/aws/api_config/SQS-2012-11-05.yml +404 -0
  52. data/lib/aws/api_config/STS-2011-06-15.yml +151 -0
  53. data/lib/aws/api_config/SimpleDB-2009-04-15.yml +306 -0
  54. data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +346 -0
  55. data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +2388 -0
  56. data/lib/aws/api_config/StorageGateway-2012-06-30.yml +748 -0
  57. data/lib/aws/api_config/StorageGateway-2013-06-30.yml +1025 -0
  58. data/lib/aws/api_config/Support-2013-04-15.yml +489 -0
  59. data/lib/aws/auto_scaling.rb +163 -0
  60. data/lib/aws/auto_scaling/activity.rb +102 -0
  61. data/lib/aws/auto_scaling/activity_collection.rb +81 -0
  62. data/lib/aws/auto_scaling/client.rb +48 -0
  63. data/lib/aws/auto_scaling/config.rb +18 -0
  64. data/lib/aws/auto_scaling/errors.rb +22 -0
  65. data/lib/aws/auto_scaling/group.rb +421 -0
  66. data/lib/aws/auto_scaling/group_collection.rb +96 -0
  67. data/lib/aws/auto_scaling/group_options.rb +155 -0
  68. data/lib/aws/auto_scaling/instance.rb +192 -0
  69. data/lib/aws/auto_scaling/instance_collection.rb +63 -0
  70. data/lib/aws/auto_scaling/launch_configuration.rb +162 -0
  71. data/lib/aws/auto_scaling/launch_configuration_collection.rb +160 -0
  72. data/lib/aws/auto_scaling/notification_configuration.rb +89 -0
  73. data/lib/aws/auto_scaling/notification_configuration_collection.rb +183 -0
  74. data/lib/aws/auto_scaling/scaling_policy.rb +142 -0
  75. data/lib/aws/auto_scaling/scaling_policy_collection.rb +72 -0
  76. data/lib/aws/auto_scaling/scaling_policy_options.rb +65 -0
  77. data/lib/aws/auto_scaling/scheduled_action.rb +141 -0
  78. data/lib/aws/auto_scaling/scheduled_action_collection.rb +202 -0
  79. data/lib/aws/auto_scaling/tag.rb +59 -0
  80. data/lib/aws/auto_scaling/tag_collection.rb +114 -0
  81. data/lib/aws/cloud_formation.rb +272 -0
  82. data/lib/aws/cloud_formation/client.rb +48 -0
  83. data/lib/aws/cloud_formation/config.rb +18 -0
  84. data/lib/aws/cloud_formation/errors.rb +22 -0
  85. data/lib/aws/cloud_formation/stack.rb +266 -0
  86. data/lib/aws/cloud_formation/stack_collection.rb +232 -0
  87. data/lib/aws/cloud_formation/stack_event.rb +73 -0
  88. data/lib/aws/cloud_formation/stack_event_collection.rb +47 -0
  89. data/lib/aws/cloud_formation/stack_options.rb +72 -0
  90. data/lib/aws/cloud_formation/stack_output.rb +53 -0
  91. data/lib/aws/cloud_formation/stack_resource.rb +117 -0
  92. data/lib/aws/cloud_formation/stack_resource_collection.rb +83 -0
  93. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +64 -0
  94. data/lib/aws/cloud_formation/stack_summary_collection.rb +123 -0
  95. data/lib/aws/cloud_front.rb +72 -0
  96. data/lib/aws/cloud_front/client.rb +57 -0
  97. data/lib/aws/cloud_front/config.rb +18 -0
  98. data/lib/aws/cloud_front/errors.rb +22 -0
  99. data/lib/aws/cloud_search.rb +73 -0
  100. data/lib/aws/cloud_search/client.rb +40 -0
  101. data/lib/aws/cloud_search/config.rb +18 -0
  102. data/lib/aws/cloud_search/errors.rb +22 -0
  103. data/lib/aws/cloud_trail.rb +72 -0
  104. data/lib/aws/cloud_trail/client.rb +35 -0
  105. data/lib/aws/cloud_trail/config.rb +18 -0
  106. data/lib/aws/cloud_trail/errors.rb +22 -0
  107. data/lib/aws/cloud_watch.rb +118 -0
  108. data/lib/aws/cloud_watch/alarm.rb +293 -0
  109. data/lib/aws/cloud_watch/alarm_collection.rb +153 -0
  110. data/lib/aws/cloud_watch/alarm_history_item.rb +50 -0
  111. data/lib/aws/cloud_watch/alarm_history_item_collection.rb +84 -0
  112. data/lib/aws/cloud_watch/client.rb +40 -0
  113. data/lib/aws/cloud_watch/config.rb +18 -0
  114. data/lib/aws/cloud_watch/errors.rb +22 -0
  115. data/lib/aws/cloud_watch/metric.rb +135 -0
  116. data/lib/aws/cloud_watch/metric_alarm_collection.rb +160 -0
  117. data/lib/aws/cloud_watch/metric_collection.rb +129 -0
  118. data/lib/aws/cloud_watch/metric_statistics.rb +69 -0
  119. data/lib/aws/core.rb +716 -0
  120. data/lib/aws/core/async_handle.rb +90 -0
  121. data/lib/aws/core/cacheable.rb +77 -0
  122. data/lib/aws/core/client.rb +787 -0
  123. data/lib/aws/core/collection.rb +263 -0
  124. data/lib/aws/core/collection/simple.rb +82 -0
  125. data/lib/aws/core/collection/with_limit_and_next_token.rb +71 -0
  126. data/lib/aws/core/collection/with_next_token.rb +97 -0
  127. data/lib/aws/core/configuration.rb +542 -0
  128. data/lib/aws/core/credential_providers.rb +639 -0
  129. data/lib/aws/core/data.rb +247 -0
  130. data/lib/aws/core/deprecations.rb +84 -0
  131. data/lib/aws/core/endpoints.rb +37 -0
  132. data/lib/aws/core/http/connection_pool.rb +369 -0
  133. data/lib/aws/core/http/curb_handler.rb +148 -0
  134. data/lib/aws/core/http/handler.rb +89 -0
  135. data/lib/aws/core/http/net_http_handler.rb +144 -0
  136. data/lib/aws/core/http/patch.rb +102 -0
  137. data/lib/aws/core/http/request.rb +259 -0
  138. data/lib/aws/core/http/response.rb +81 -0
  139. data/lib/aws/core/indifferent_hash.rb +88 -0
  140. data/lib/aws/core/inflection.rb +56 -0
  141. data/lib/aws/core/ini_parser.rb +42 -0
  142. data/lib/aws/core/json_client.rb +47 -0
  143. data/lib/aws/core/json_parser.rb +76 -0
  144. data/lib/aws/core/json_request_builder.rb +35 -0
  145. data/lib/aws/core/json_response_parser.rb +79 -0
  146. data/lib/aws/core/lazy_error_classes.rb +108 -0
  147. data/lib/aws/core/log_formatter.rb +428 -0
  148. data/lib/aws/core/managed_file.rb +32 -0
  149. data/lib/aws/core/meta_utils.rb +45 -0
  150. data/lib/aws/core/model.rb +62 -0
  151. data/lib/aws/core/naming.rb +30 -0
  152. data/lib/aws/core/option_grammar.rb +738 -0
  153. data/lib/aws/core/options/json_serializer.rb +82 -0
  154. data/lib/aws/core/options/validator.rb +155 -0
  155. data/lib/aws/core/options/xml_serializer.rb +118 -0
  156. data/lib/aws/core/page_result.rb +75 -0
  157. data/lib/aws/core/policy.rb +941 -0
  158. data/lib/aws/core/query_client.rb +41 -0
  159. data/lib/aws/core/query_error_parser.rb +24 -0
  160. data/lib/aws/core/query_request_builder.rb +47 -0
  161. data/lib/aws/core/query_response_parser.rb +35 -0
  162. data/lib/aws/core/region.rb +85 -0
  163. data/lib/aws/core/region_collection.rb +80 -0
  164. data/lib/aws/core/resource.rb +413 -0
  165. data/lib/aws/core/resource_cache.rb +40 -0
  166. data/lib/aws/core/response.rb +215 -0
  167. data/lib/aws/core/response_cache.rb +50 -0
  168. data/lib/aws/core/rest_error_parser.rb +24 -0
  169. data/lib/aws/core/rest_json_client.rb +40 -0
  170. data/lib/aws/core/rest_request_builder.rb +154 -0
  171. data/lib/aws/core/rest_response_parser.rb +66 -0
  172. data/lib/aws/core/rest_xml_client.rb +47 -0
  173. data/lib/aws/core/service_interface.rb +83 -0
  174. data/lib/aws/core/signers/base.rb +46 -0
  175. data/lib/aws/core/signers/cloud_front.rb +56 -0
  176. data/lib/aws/core/signers/s3.rb +159 -0
  177. data/lib/aws/core/signers/version_2.rb +72 -0
  178. data/lib/aws/core/signers/version_3.rb +86 -0
  179. data/lib/aws/core/signers/version_3_https.rb +61 -0
  180. data/lib/aws/core/signers/version_4.rb +228 -0
  181. data/lib/aws/core/signers/version_4/chunk_signed_stream.rb +191 -0
  182. data/lib/aws/core/uri_escape.rb +44 -0
  183. data/lib/aws/core/xml/frame.rb +245 -0
  184. data/lib/aws/core/xml/frame_stack.rb +85 -0
  185. data/lib/aws/core/xml/grammar.rb +307 -0
  186. data/lib/aws/core/xml/parser.rb +70 -0
  187. data/lib/aws/core/xml/root_frame.rb +65 -0
  188. data/lib/aws/core/xml/sax_handlers/libxml.rb +47 -0
  189. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +56 -0
  190. data/lib/aws/core/xml/sax_handlers/ox.rb +41 -0
  191. data/lib/aws/core/xml/sax_handlers/rexml.rb +47 -0
  192. data/lib/aws/core/xml/stub.rb +123 -0
  193. data/lib/aws/data_pipeline.rb +72 -0
  194. data/lib/aws/data_pipeline/client.rb +36 -0
  195. data/lib/aws/data_pipeline/config.rb +18 -0
  196. data/lib/aws/data_pipeline/errors.rb +20 -0
  197. data/lib/aws/direct_connect.rb +73 -0
  198. data/lib/aws/direct_connect/client.rb +36 -0
  199. data/lib/aws/direct_connect/config.rb +18 -0
  200. data/lib/aws/direct_connect/errors.rb +22 -0
  201. data/lib/aws/dynamo_db.rb +230 -0
  202. data/lib/aws/dynamo_db/attribute_collection.rb +456 -0
  203. data/lib/aws/dynamo_db/batch_get.rb +213 -0
  204. data/lib/aws/dynamo_db/batch_write.rb +254 -0
  205. data/lib/aws/dynamo_db/binary.rb +35 -0
  206. data/lib/aws/dynamo_db/client.rb +129 -0
  207. data/lib/aws/dynamo_db/client/v20111205.rb +1266 -0
  208. data/lib/aws/dynamo_db/client/v20120810.rb +1409 -0
  209. data/lib/aws/dynamo_db/client_v2.rb +44 -0
  210. data/lib/aws/dynamo_db/config.rb +24 -0
  211. data/lib/aws/dynamo_db/errors.rb +20 -0
  212. data/lib/aws/dynamo_db/expectations.rb +40 -0
  213. data/lib/aws/dynamo_db/item.rb +133 -0
  214. data/lib/aws/dynamo_db/item_collection.rb +856 -0
  215. data/lib/aws/dynamo_db/item_data.rb +31 -0
  216. data/lib/aws/dynamo_db/keys.rb +41 -0
  217. data/lib/aws/dynamo_db/primary_key_element.rb +48 -0
  218. data/lib/aws/dynamo_db/resource.rb +33 -0
  219. data/lib/aws/dynamo_db/table.rb +492 -0
  220. data/lib/aws/dynamo_db/table_collection.rb +165 -0
  221. data/lib/aws/dynamo_db/types.rb +111 -0
  222. data/lib/aws/ec2.rb +428 -0
  223. data/lib/aws/ec2/attachment.rb +135 -0
  224. data/lib/aws/ec2/attachment_collection.rb +54 -0
  225. data/lib/aws/ec2/availability_zone.rb +86 -0
  226. data/lib/aws/ec2/availability_zone_collection.rb +43 -0
  227. data/lib/aws/ec2/block_device_mappings.rb +53 -0
  228. data/lib/aws/ec2/client.rb +154 -0
  229. data/lib/aws/ec2/collection.rb +36 -0
  230. data/lib/aws/ec2/config.rb +21 -0
  231. data/lib/aws/ec2/customer_gateway.rb +90 -0
  232. data/lib/aws/ec2/customer_gateway_collection.rb +73 -0
  233. data/lib/aws/ec2/dhcp_options.rb +106 -0
  234. data/lib/aws/ec2/dhcp_options_collection.rb +87 -0
  235. data/lib/aws/ec2/elastic_ip.rb +209 -0
  236. data/lib/aws/ec2/elastic_ip_collection.rb +93 -0
  237. data/lib/aws/ec2/errors.rb +32 -0
  238. data/lib/aws/ec2/export_task.rb +120 -0
  239. data/lib/aws/ec2/export_task_collection.rb +67 -0
  240. data/lib/aws/ec2/filtered_collection.rb +87 -0
  241. data/lib/aws/ec2/has_permissions.rb +44 -0
  242. data/lib/aws/ec2/image.rb +270 -0
  243. data/lib/aws/ec2/image_collection.rb +219 -0
  244. data/lib/aws/ec2/instance.rb +803 -0
  245. data/lib/aws/ec2/instance_collection.rb +402 -0
  246. data/lib/aws/ec2/internet_gateway.rb +122 -0
  247. data/lib/aws/ec2/internet_gateway/attachment.rb +78 -0
  248. data/lib/aws/ec2/internet_gateway_collection.rb +54 -0
  249. data/lib/aws/ec2/key_pair.rb +82 -0
  250. data/lib/aws/ec2/key_pair_collection.rb +99 -0
  251. data/lib/aws/ec2/network_acl.rb +256 -0
  252. data/lib/aws/ec2/network_acl/association.rb +56 -0
  253. data/lib/aws/ec2/network_acl/entry.rb +147 -0
  254. data/lib/aws/ec2/network_acl_collection.rb +64 -0
  255. data/lib/aws/ec2/network_interface.rb +237 -0
  256. data/lib/aws/ec2/network_interface/attachment.rb +100 -0
  257. data/lib/aws/ec2/network_interface_collection.rb +103 -0
  258. data/lib/aws/ec2/permission_collection.rb +174 -0
  259. data/lib/aws/ec2/region.rb +106 -0
  260. data/lib/aws/ec2/region_collection.rb +51 -0
  261. data/lib/aws/ec2/reserved_instances.rb +57 -0
  262. data/lib/aws/ec2/reserved_instances_collection.rb +40 -0
  263. data/lib/aws/ec2/reserved_instances_offering.rb +60 -0
  264. data/lib/aws/ec2/reserved_instances_offering_collection.rb +45 -0
  265. data/lib/aws/ec2/resource.rb +161 -0
  266. data/lib/aws/ec2/resource_tag_collection.rb +211 -0
  267. data/lib/aws/ec2/route_table.rb +205 -0
  268. data/lib/aws/ec2/route_table/association.rb +119 -0
  269. data/lib/aws/ec2/route_table/route.rb +119 -0
  270. data/lib/aws/ec2/route_table_collection.rb +72 -0
  271. data/lib/aws/ec2/security_group.rb +482 -0
  272. data/lib/aws/ec2/security_group/ip_permission.rb +135 -0
  273. data/lib/aws/ec2/security_group/ip_permission_collection.rb +82 -0
  274. data/lib/aws/ec2/security_group_collection.rb +133 -0
  275. data/lib/aws/ec2/snapshot.rb +143 -0
  276. data/lib/aws/ec2/snapshot_collection.rb +131 -0
  277. data/lib/aws/ec2/subnet.rb +161 -0
  278. data/lib/aws/ec2/subnet_collection.rb +119 -0
  279. data/lib/aws/ec2/tag.rb +81 -0
  280. data/lib/aws/ec2/tag_collection.rb +107 -0
  281. data/lib/aws/ec2/tagged_collection.rb +67 -0
  282. data/lib/aws/ec2/tagged_item.rb +85 -0
  283. data/lib/aws/ec2/volume.rb +185 -0
  284. data/lib/aws/ec2/volume_collection.rb +102 -0
  285. data/lib/aws/ec2/vpc.rb +174 -0
  286. data/lib/aws/ec2/vpc_collection.rb +70 -0
  287. data/lib/aws/ec2/vpn_connection.rb +99 -0
  288. data/lib/aws/ec2/vpn_connection/telemetry.rb +49 -0
  289. data/lib/aws/ec2/vpn_connection_collection.rb +96 -0
  290. data/lib/aws/ec2/vpn_gateway.rb +123 -0
  291. data/lib/aws/ec2/vpn_gateway/attachment.rb +45 -0
  292. data/lib/aws/ec2/vpn_gateway_collection.rb +77 -0
  293. data/lib/aws/elastic_beanstalk.rb +49 -0
  294. data/lib/aws/elastic_beanstalk/client.rb +36 -0
  295. data/lib/aws/elastic_beanstalk/config.rb +18 -0
  296. data/lib/aws/elastic_beanstalk/errors.rb +22 -0
  297. data/lib/aws/elastic_transcoder.rb +29 -0
  298. data/lib/aws/elastic_transcoder/client.rb +48 -0
  299. data/lib/aws/elastic_transcoder/config.rb +18 -0
  300. data/lib/aws/elastic_transcoder/errors.rb +23 -0
  301. data/lib/aws/elasticache.rb +49 -0
  302. data/lib/aws/elasticache/client.rb +41 -0
  303. data/lib/aws/elasticache/config.rb +18 -0
  304. data/lib/aws/elasticache/errors.rb +22 -0
  305. data/lib/aws/elb.rb +66 -0
  306. data/lib/aws/elb/availability_zone_collection.rb +138 -0
  307. data/lib/aws/elb/backend_server_policy_collection.rb +139 -0
  308. data/lib/aws/elb/client.rb +35 -0
  309. data/lib/aws/elb/config.rb +18 -0
  310. data/lib/aws/elb/errors.rb +26 -0
  311. data/lib/aws/elb/instance_collection.rb +168 -0
  312. data/lib/aws/elb/listener.rb +190 -0
  313. data/lib/aws/elb/listener_collection.rb +113 -0
  314. data/lib/aws/elb/listener_opts.rb +45 -0
  315. data/lib/aws/elb/load_balancer.rb +280 -0
  316. data/lib/aws/elb/load_balancer_collection.rb +146 -0
  317. data/lib/aws/elb/load_balancer_policy.rb +93 -0
  318. data/lib/aws/elb/load_balancer_policy_collection.rb +208 -0
  319. data/lib/aws/emr.rb +87 -0
  320. data/lib/aws/emr/client.rb +35 -0
  321. data/lib/aws/emr/config.rb +18 -0
  322. data/lib/aws/emr/errors.rb +22 -0
  323. data/lib/aws/emr/instance_group.rb +138 -0
  324. data/lib/aws/emr/instance_group_collection.rb +82 -0
  325. data/lib/aws/emr/job_flow.rb +307 -0
  326. data/lib/aws/emr/job_flow_collection.rb +183 -0
  327. data/lib/aws/errors.rb +162 -0
  328. data/lib/aws/glacier.rb +79 -0
  329. data/lib/aws/glacier/archive.rb +56 -0
  330. data/lib/aws/glacier/archive_collection.rb +146 -0
  331. data/lib/aws/glacier/client.rb +49 -0
  332. data/lib/aws/glacier/config.rb +19 -0
  333. data/lib/aws/glacier/errors.rb +22 -0
  334. data/lib/aws/glacier/resource.rb +30 -0
  335. data/lib/aws/glacier/vault.rb +145 -0
  336. data/lib/aws/glacier/vault_collection.rb +75 -0
  337. data/lib/aws/glacier/vault_notification_configuration.rb +29 -0
  338. data/lib/aws/iam.rb +408 -0
  339. data/lib/aws/iam/access_key.rb +185 -0
  340. data/lib/aws/iam/access_key_collection.rb +128 -0
  341. data/lib/aws/iam/account_alias_collection.rb +79 -0
  342. data/lib/aws/iam/client.rb +49 -0
  343. data/lib/aws/iam/collection.rb +83 -0
  344. data/lib/aws/iam/config.rb +18 -0
  345. data/lib/aws/iam/errors.rb +22 -0
  346. data/lib/aws/iam/group.rb +111 -0
  347. data/lib/aws/iam/group_collection.rb +132 -0
  348. data/lib/aws/iam/group_policy_collection.rb +47 -0
  349. data/lib/aws/iam/group_user_collection.rb +84 -0
  350. data/lib/aws/iam/login_profile.rb +111 -0
  351. data/lib/aws/iam/mfa_device.rb +52 -0
  352. data/lib/aws/iam/mfa_device_collection.rb +127 -0
  353. data/lib/aws/iam/policy.rb +46 -0
  354. data/lib/aws/iam/policy_collection.rb +188 -0
  355. data/lib/aws/iam/resource.rb +62 -0
  356. data/lib/aws/iam/server_certificate.rb +148 -0
  357. data/lib/aws/iam/server_certificate_collection.rb +138 -0
  358. data/lib/aws/iam/signing_certificate.rb +186 -0
  359. data/lib/aws/iam/signing_certificate_collection.rb +131 -0
  360. data/lib/aws/iam/user.rb +200 -0
  361. data/lib/aws/iam/user_collection.rb +133 -0
  362. data/lib/aws/iam/user_group_collection.rb +98 -0
  363. data/lib/aws/iam/user_policy.rb +90 -0
  364. data/lib/aws/iam/user_policy_collection.rb +45 -0
  365. data/lib/aws/iam/virtual_mfa_device.rb +139 -0
  366. data/lib/aws/iam/virtual_mfa_device_collection.rb +73 -0
  367. data/lib/aws/import_export.rb +73 -0
  368. data/lib/aws/import_export/client.rb +35 -0
  369. data/lib/aws/import_export/config.rb +19 -0
  370. data/lib/aws/import_export/errors.rb +22 -0
  371. data/lib/aws/kinesis.rb +53 -0
  372. data/lib/aws/kinesis/client.rb +35 -0
  373. data/lib/aws/kinesis/config.rb +18 -0
  374. data/lib/aws/kinesis/errors.rb +20 -0
  375. data/lib/aws/ops_works.rb +29 -0
  376. data/lib/aws/ops_works/client.rb +35 -0
  377. data/lib/aws/ops_works/config.rb +18 -0
  378. data/lib/aws/ops_works/errors.rb +20 -0
  379. data/lib/aws/rails.rb +195 -0
  380. data/lib/aws/rds.rb +70 -0
  381. data/lib/aws/rds/client.rb +42 -0
  382. data/lib/aws/rds/config.rb +18 -0
  383. data/lib/aws/rds/db_instance.rb +215 -0
  384. data/lib/aws/rds/db_instance_collection.rb +75 -0
  385. data/lib/aws/rds/db_snapshot.rb +163 -0
  386. data/lib/aws/rds/db_snapshot_collection.rb +89 -0
  387. data/lib/aws/rds/errors.rb +22 -0
  388. data/lib/aws/record.rb +139 -0
  389. data/lib/aws/record/abstract_base.rb +689 -0
  390. data/lib/aws/record/attributes.rb +388 -0
  391. data/lib/aws/record/conversion.rb +38 -0
  392. data/lib/aws/record/dirty_tracking.rb +287 -0
  393. data/lib/aws/record/errors.rb +143 -0
  394. data/lib/aws/record/exceptions.rb +51 -0
  395. data/lib/aws/record/hash_model.rb +204 -0
  396. data/lib/aws/record/hash_model/attributes.rb +195 -0
  397. data/lib/aws/record/hash_model/finder_methods.rb +172 -0
  398. data/lib/aws/record/hash_model/scope.rb +108 -0
  399. data/lib/aws/record/model.rb +453 -0
  400. data/lib/aws/record/model/attributes.rb +377 -0
  401. data/lib/aws/record/model/finder_methods.rb +232 -0
  402. data/lib/aws/record/model/scope.rb +212 -0
  403. data/lib/aws/record/naming.rb +31 -0
  404. data/lib/aws/record/scope.rb +203 -0
  405. data/lib/aws/record/validations.rb +694 -0
  406. data/lib/aws/record/validator.rb +246 -0
  407. data/lib/aws/record/validators/acceptance.rb +49 -0
  408. data/lib/aws/record/validators/block.rb +36 -0
  409. data/lib/aws/record/validators/confirmation.rb +41 -0
  410. data/lib/aws/record/validators/count.rb +106 -0
  411. data/lib/aws/record/validators/exclusion.rb +41 -0
  412. data/lib/aws/record/validators/format.rb +55 -0
  413. data/lib/aws/record/validators/inclusion.rb +54 -0
  414. data/lib/aws/record/validators/length.rb +105 -0
  415. data/lib/aws/record/validators/method.rb +31 -0
  416. data/lib/aws/record/validators/numericality.rb +136 -0
  417. data/lib/aws/record/validators/presence.rb +43 -0
  418. data/lib/aws/redshift.rb +51 -0
  419. data/lib/aws/redshift/client.rb +35 -0
  420. data/lib/aws/redshift/config.rb +18 -0
  421. data/lib/aws/redshift/errors.rb +22 -0
  422. data/lib/aws/route_53.rb +86 -0
  423. data/lib/aws/route_53/change_batch.rb +161 -0
  424. data/lib/aws/route_53/change_info.rb +72 -0
  425. data/lib/aws/route_53/client.rb +38 -0
  426. data/lib/aws/route_53/config.rb +18 -0
  427. data/lib/aws/route_53/errors.rb +22 -0
  428. data/lib/aws/route_53/hosted_zone.rb +134 -0
  429. data/lib/aws/route_53/hosted_zone_collection.rb +101 -0
  430. data/lib/aws/route_53/resource_record_set.rb +251 -0
  431. data/lib/aws/route_53/resource_record_set_collection.rb +110 -0
  432. data/lib/aws/s3.rb +156 -0
  433. data/lib/aws/s3/access_control_list.rb +265 -0
  434. data/lib/aws/s3/acl_object.rb +264 -0
  435. data/lib/aws/s3/acl_options.rb +204 -0
  436. data/lib/aws/s3/bucket.rb +742 -0
  437. data/lib/aws/s3/bucket_collection.rb +162 -0
  438. data/lib/aws/s3/bucket_lifecycle_configuration.rb +473 -0
  439. data/lib/aws/s3/bucket_tag_collection.rb +111 -0
  440. data/lib/aws/s3/bucket_version_collection.rb +79 -0
  441. data/lib/aws/s3/cipher_io.rb +120 -0
  442. data/lib/aws/s3/client.rb +2067 -0
  443. data/lib/aws/s3/client/xml.rb +266 -0
  444. data/lib/aws/s3/config.rb +48 -0
  445. data/lib/aws/s3/cors_rule.rb +108 -0
  446. data/lib/aws/s3/cors_rule_collection.rb +194 -0
  447. data/lib/aws/s3/data_options.rb +191 -0
  448. data/lib/aws/s3/encryption_utils.rb +146 -0
  449. data/lib/aws/s3/errors.rb +94 -0
  450. data/lib/aws/s3/multipart_upload.rb +353 -0
  451. data/lib/aws/s3/multipart_upload_collection.rb +76 -0
  452. data/lib/aws/s3/object_collection.rb +353 -0
  453. data/lib/aws/s3/object_metadata.rb +103 -0
  454. data/lib/aws/s3/object_upload_collection.rb +77 -0
  455. data/lib/aws/s3/object_version.rb +154 -0
  456. data/lib/aws/s3/object_version_collection.rb +89 -0
  457. data/lib/aws/s3/paginated_collection.rb +75 -0
  458. data/lib/aws/s3/policy.rb +74 -0
  459. data/lib/aws/s3/prefix_and_delimiter_collection.rb +47 -0
  460. data/lib/aws/s3/prefixed_collection.rb +85 -0
  461. data/lib/aws/s3/presign_v4.rb +136 -0
  462. data/lib/aws/s3/presigned_post.rb +554 -0
  463. data/lib/aws/s3/request.rb +62 -0
  464. data/lib/aws/s3/s3_object.rb +1784 -0
  465. data/lib/aws/s3/tree.rb +116 -0
  466. data/lib/aws/s3/tree/branch_node.rb +68 -0
  467. data/lib/aws/s3/tree/child_collection.rb +104 -0
  468. data/lib/aws/s3/tree/leaf_node.rb +94 -0
  469. data/lib/aws/s3/tree/node.rb +22 -0
  470. data/lib/aws/s3/tree/parent.rb +87 -0
  471. data/lib/aws/s3/uploaded_part.rb +82 -0
  472. data/lib/aws/s3/uploaded_part_collection.rb +84 -0
  473. data/lib/aws/s3/website_configuration.rb +102 -0
  474. data/lib/aws/simple_db.rb +218 -0
  475. data/lib/aws/simple_db/attribute.rb +156 -0
  476. data/lib/aws/simple_db/attribute_collection.rb +240 -0
  477. data/lib/aws/simple_db/client.rb +67 -0
  478. data/lib/aws/simple_db/config.rb +20 -0
  479. data/lib/aws/simple_db/consistent_read_option.rb +42 -0
  480. data/lib/aws/simple_db/delete_attributes.rb +62 -0
  481. data/lib/aws/simple_db/domain.rb +123 -0
  482. data/lib/aws/simple_db/domain_collection.rb +86 -0
  483. data/lib/aws/simple_db/domain_metadata.rb +110 -0
  484. data/lib/aws/simple_db/errors.rb +55 -0
  485. data/lib/aws/simple_db/expect_condition_option.rb +45 -0
  486. data/lib/aws/simple_db/item.rb +93 -0
  487. data/lib/aws/simple_db/item_collection.rb +654 -0
  488. data/lib/aws/simple_db/item_data.rb +73 -0
  489. data/lib/aws/simple_db/put_attributes.rb +60 -0
  490. data/lib/aws/simple_email_service.rb +443 -0
  491. data/lib/aws/simple_email_service/client.rb +37 -0
  492. data/lib/aws/simple_email_service/config.rb +18 -0
  493. data/lib/aws/simple_email_service/email_address_collection.rb +69 -0
  494. data/lib/aws/simple_email_service/errors.rb +22 -0
  495. data/lib/aws/simple_email_service/identity.rb +230 -0
  496. data/lib/aws/simple_email_service/identity_collection.rb +81 -0
  497. data/lib/aws/simple_email_service/quotas.rb +66 -0
  498. data/lib/aws/simple_workflow.rb +227 -0
  499. data/lib/aws/simple_workflow/activity_task.rb +178 -0
  500. data/lib/aws/simple_workflow/activity_task_collection.rb +123 -0
  501. data/lib/aws/simple_workflow/activity_type.rb +131 -0
  502. data/lib/aws/simple_workflow/activity_type_collection.rb +93 -0
  503. data/lib/aws/simple_workflow/client.rb +69 -0
  504. data/lib/aws/simple_workflow/config.rb +18 -0
  505. data/lib/aws/simple_workflow/count.rb +49 -0
  506. data/lib/aws/simple_workflow/decision_task.rb +603 -0
  507. data/lib/aws/simple_workflow/decision_task_collection.rb +223 -0
  508. data/lib/aws/simple_workflow/domain.rb +122 -0
  509. data/lib/aws/simple_workflow/domain_collection.rb +169 -0
  510. data/lib/aws/simple_workflow/errors.rb +20 -0
  511. data/lib/aws/simple_workflow/history_event.rb +276 -0
  512. data/lib/aws/simple_workflow/history_event_collection.rb +76 -0
  513. data/lib/aws/simple_workflow/option_formatters.rb +82 -0
  514. data/lib/aws/simple_workflow/resource.rb +94 -0
  515. data/lib/aws/simple_workflow/type.rb +89 -0
  516. data/lib/aws/simple_workflow/type_collection.rb +140 -0
  517. data/lib/aws/simple_workflow/workflow_execution.rb +384 -0
  518. data/lib/aws/simple_workflow/workflow_execution_collection.rb +617 -0
  519. data/lib/aws/simple_workflow/workflow_type.rb +177 -0
  520. data/lib/aws/simple_workflow/workflow_type_collection.rb +91 -0
  521. data/lib/aws/sns.rb +76 -0
  522. data/lib/aws/sns/client.rb +35 -0
  523. data/lib/aws/sns/config.rb +18 -0
  524. data/lib/aws/sns/errors.rb +22 -0
  525. data/lib/aws/sns/has_delivery_policy.rb +68 -0
  526. data/lib/aws/sns/message.rb +204 -0
  527. data/lib/aws/sns/originators/from_auto_scaling.rb +68 -0
  528. data/lib/aws/sns/policy.rb +47 -0
  529. data/lib/aws/sns/subscription.rb +165 -0
  530. data/lib/aws/sns/subscription_collection.rb +78 -0
  531. data/lib/aws/sns/topic.rb +403 -0
  532. data/lib/aws/sns/topic_collection.rb +62 -0
  533. data/lib/aws/sns/topic_subscription_collection.rb +54 -0
  534. data/lib/aws/sqs.rb +80 -0
  535. data/lib/aws/sqs/client.rb +53 -0
  536. data/lib/aws/sqs/config.rb +20 -0
  537. data/lib/aws/sqs/errors.rb +125 -0
  538. data/lib/aws/sqs/policy.rb +48 -0
  539. data/lib/aws/sqs/queue.rb +856 -0
  540. data/lib/aws/sqs/queue_collection.rb +186 -0
  541. data/lib/aws/sqs/received_message.rb +190 -0
  542. data/lib/aws/sqs/received_sns_message.rb +116 -0
  543. data/lib/aws/storage_gateway.rb +72 -0
  544. data/lib/aws/storage_gateway/client.rb +42 -0
  545. data/lib/aws/storage_gateway/config.rb +18 -0
  546. data/lib/aws/storage_gateway/errors.rb +22 -0
  547. data/lib/aws/sts.rb +164 -0
  548. data/lib/aws/sts/client.rb +55 -0
  549. data/lib/aws/sts/config.rb +18 -0
  550. data/lib/aws/sts/errors.rb +22 -0
  551. data/lib/aws/sts/federated_session.rb +56 -0
  552. data/lib/aws/sts/policy.rb +30 -0
  553. data/lib/aws/sts/session.rb +48 -0
  554. data/lib/aws/support.rb +29 -0
  555. data/lib/aws/support/client.rb +35 -0
  556. data/lib/aws/support/config.rb +18 -0
  557. data/lib/aws/support/errors.rb +20 -0
  558. data/lib/aws/version.rb +17 -0
  559. data/rails/init.rb +15 -0
  560. metadata +634 -0
@@ -0,0 +1,94 @@
1
+ # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+
14
+ module AWS
15
+ class SimpleWorkflow
16
+
17
+ # @api private
18
+ class Resource < Core::Resource
19
+
20
+ # @return [Boolean] Returns true if the resource exists.
21
+ def exists?
22
+ !!get_resource
23
+ rescue Errors::UnknownResourceFault
24
+ false
25
+ end
26
+
27
+ # @api private
28
+ def self.attribute name, options = {}, &block
29
+
30
+ # the simple workflow attributes are all given as 'lowerCamelCase'
31
+ # this converts the :snake_case name to the correct format
32
+ unless options[:from]
33
+ parts = []
34
+ name.to_s.split(/_/).each_with_index do |part,n|
35
+ parts << (n == 0 ? part : part.capitalize)
36
+ end
37
+ options[:from] = parts.join.to_sym
38
+ end
39
+
40
+ if options[:duration]
41
+ super(name, options) do
42
+ translates_output do |v|
43
+ v.to_s =~ /^\d+$/ ? v.to_i : v.downcase.to_sym
44
+ end
45
+ end
46
+ else
47
+ super(name, options, &block)
48
+ end
49
+
50
+ end
51
+
52
+ protected
53
+ def get_resource attr_name = nil
54
+ method = "describe_#{Core::Inflection.ruby_name(self.class.name)}"
55
+ client.send(method, resource_options)
56
+ end
57
+
58
+ # @api private
59
+ def self.type_attributes
60
+ @type_attributes ||= {}
61
+ end
62
+
63
+ # @api private
64
+ def self.config_attributes
65
+ @config_attributes ||= {}
66
+ end
67
+
68
+ # @api private
69
+ def self.info_attributes
70
+ @info_attributes ||= {}
71
+ end
72
+
73
+ # @api private
74
+ def self.type_attribute name, options = {}, &block
75
+ options[:static] = true unless options.has_key?(:static)
76
+ attr = attribute(name, options, &block)
77
+ type_attributes[attr.name] = attr
78
+ end
79
+
80
+ # @api private
81
+ def self.config_attribute name, options = {}, &block
82
+ attr = attribute(name, options.merge(:static => true), &block)
83
+ config_attributes[attr.name] = attr
84
+ end
85
+
86
+ # @api private
87
+ def self.info_attribute name, options = {}
88
+ attr = attribute(name, options)
89
+ info_attributes[attr.name] = attr
90
+ end
91
+
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,89 @@
1
+ # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+
14
+ module AWS
15
+ class SimpleWorkflow
16
+
17
+ # Base class for {WorkflowType} and {ActivityType} objects.
18
+ class Type < Resource
19
+
20
+ # @param [Domain] domain The domain this type is registered to.
21
+ # @param [String] name The name of this type.
22
+ # @param [String] version The version of this type.
23
+ def initialize domain, name, version, options = {}
24
+ @domain = domain
25
+ @name = name.to_s
26
+ @version = version.to_s
27
+ super
28
+ end
29
+
30
+ # @return [Domain] Returns the domain this type is registered to.
31
+ attr_reader :domain
32
+
33
+ # @return [String] Returns the name of this type.
34
+ attr_reader :name
35
+
36
+ # @return [String] Returns the version of this type.
37
+ attr_reader :version
38
+
39
+ # Deprecates the type.
40
+ #
41
+ # After a type has been deprecated, you cannot create new
42
+ # executions of that type. Executions that were started before the
43
+ # type was deprecated will continue to run.
44
+ #
45
+ # @note This operation is eventually consistent. The results are best
46
+ # effort and may not exactly reflect recent updates and changes.
47
+ #
48
+ # @return [nil]
49
+ #
50
+ def deprecate
51
+ client.send("deprecate_#{self.class.ruby_name}", resource_options)
52
+ nil
53
+ end
54
+ alias_method :delete, :deprecate
55
+
56
+ # @return [Boolean] Returns true if the type is deprecated.
57
+ def deprecated?
58
+ status == :deprecated
59
+ end
60
+
61
+ protected
62
+ def resource_identifiers
63
+ [[:domain,domain.name], [:name,name], [:version,version]]
64
+ end
65
+
66
+ protected
67
+ def resource_options
68
+ {
69
+ :domain => domain.name,
70
+ :"#{self.class.ruby_name}" => {
71
+ :name => name,
72
+ :version => version
73
+ }
74
+ }
75
+ end
76
+
77
+ protected
78
+ def self.ruby_name
79
+ Core::Inflection.ruby_name(name.split(/::/).last)
80
+ end
81
+
82
+ protected
83
+ def self.type_key
84
+ "#{ruby_name.split(/_/).first}Type"
85
+ end
86
+
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,140 @@
1
+ # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+
14
+ module AWS
15
+ class SimpleWorkflow
16
+
17
+ # The base class for {WorkflowTypeCollection} and {ActivityTypeCollection}.
18
+ # @api private
19
+ class TypeCollection
20
+
21
+ include OptionFormatters
22
+ include Core::Collection::WithLimitAndNextToken
23
+
24
+ # @param [Domain] domain The domain the (workflow or activity types
25
+ # belong to.
26
+ def initialize domain, options = {}
27
+
28
+ @domain = domain
29
+
30
+ @named = options[:named]
31
+
32
+ @registration_status = options[:registration_status] ?
33
+ options[:registration_status].to_s.upcase : 'REGISTERED'
34
+
35
+ @reverse_order = options.key?(:reverse_order) ?
36
+ !!options[:reverse_order] : false
37
+
38
+ super
39
+
40
+ end
41
+
42
+ # @return [Domain]
43
+ attr_reader :domain
44
+
45
+ # Returns the type with the given name and version.
46
+ #
47
+ # # get a workflow type
48
+ # domain.workflow_types['name','version']
49
+ # domain.workflow_types.at('name','version')
50
+ #
51
+ # # get an activity type
52
+ # domain.activity_types['name','version']
53
+ # domain.activity_types.at('name','version')
54
+ #
55
+ # @param [String] name Name of the type.
56
+ #
57
+ # @param [String] version Version of the type.
58
+ #
59
+ # @return [ActivityType,WorkflowType]
60
+ #
61
+ def [] name, version
62
+ member_class.new(domain, name, version)
63
+ end
64
+ alias_method :at, :[]
65
+
66
+ def register
67
+ raise NotImplementedError # implemented in subclasses
68
+ end
69
+ alias_method :create, :register
70
+
71
+ # @return [TypeCollection] Returns a collection that
72
+ # will only enumerate deprecated types.
73
+ def deprecated
74
+ collection_with(:registration_status => 'DEPRECATED')
75
+ end
76
+
77
+ # @return [TypeCollection] Returns a collection that
78
+ # enumerates types in reverse alphabetical order. Default
79
+ # ordering is alphabetical.
80
+ def reverse_order
81
+ collection_with(:reverse_order => true)
82
+ end
83
+
84
+ # @return [TypeCollection] Returns a collection that
85
+ # enumerates types with the given name. Each instance
86
+ # will have a different version.
87
+ def named name
88
+ collection_with(:named => name.to_s)
89
+ end
90
+
91
+ protected
92
+ def collection_with options = {}
93
+ self.class.new(domain, {
94
+ :registration_status => @registration_status,
95
+ :reverse_order => @reverse_order,
96
+ :named => @named,
97
+ :config => config,
98
+ }.merge(options))
99
+ end
100
+
101
+ protected
102
+ def member_class
103
+ name = self.class.name.split(/::/).last.sub(/Collection/, '')
104
+ SimpleWorkflow.const_get(name)
105
+ end
106
+
107
+ protected
108
+ def _each_item next_token, limit, options = {}, &block
109
+
110
+ options[:domain] = domain.name
111
+ options[:next_page_token] = next_token if next_token
112
+ options[:maximum_page_size] = limit if limit
113
+ options[:registration_status] ||= @registration_status
114
+ options[:name] ||= @named if @named # may be nil
115
+ options[:reverse_order] = @reverse_order unless
116
+ options.has_key?(:reverse_order)
117
+
118
+
119
+ ruby_name = Core::Inflection.ruby_name(member_class.name)
120
+ type_key = member_class.type_key
121
+ client_method = :"list_#{ruby_name}s"
122
+
123
+ response = client.send(client_method, options)
124
+ response.data['typeInfos'].each do |desc|
125
+
126
+ type = member_class.new_from(client_method, desc, domain,
127
+ desc[type_key]['name'],
128
+ desc[type_key]['version'])
129
+
130
+ yield(type)
131
+
132
+ end
133
+
134
+ response.data['nextPageToken']
135
+
136
+ end
137
+
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,384 @@
1
+ # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+
14
+ module AWS
15
+ class SimpleWorkflow
16
+
17
+ # @attr_reader [Symbol] child_policy The policy to use for the child
18
+ # workflow executions if this workflow execution is terminated.
19
+ # The return value will be one of the following values:
20
+ #
21
+ # * `:terminate` - the child executions will be terminated.
22
+ # * `:request_cancel` - a request to cancel will be attempted for each
23
+ # child execution by recording a WorkflowExecutionCancelRequested
24
+ # event in its history. It is up to the decider to take appropriate
25
+ # actions when it receives an execution history with this event.
26
+ # * `:abandon` - no action will be taken. The child executions will
27
+ # continue to run.
28
+ #
29
+ # @attr_reader [String] start_to_close_timeout The total allowed
30
+ # duration for this workflow execution.
31
+ #
32
+ # The return value will be formatted as an ISO 8601 duration (e.g.
33
+ # 'PnYnMnDTnHnMnS').
34
+ #
35
+ # @attr_reader [String] task_list The task list used for the decision
36
+ # tasks generated for this workflow execution.
37
+ #
38
+ # @attr_reader [String] task_start_to_close_timeout The maximum duration
39
+ # allowed for decision tasks for this workflow execution.
40
+ #
41
+ # The return value will be formatted as an ISO 8601 duration (e.g.
42
+ # 'PnYnMnDTnHnMnS').
43
+ #
44
+ # @attr_reader [Time,nil] closed_at The time when the workflow execution
45
+ # was closed. Returns nil if this execution is not closed.
46
+ #
47
+ # @attr_reader [Time] started_at The time when the execution was started.
48
+ #
49
+ # @attr_reader [Time,nil] latest_activity_task_scheduled_at The time
50
+ # when the last activity task was scheduled for this workflow execution.
51
+ # You can use this information to determine if the workflow has not
52
+ # made progress for an unusually long period of time and might
53
+ # require a corrective action.
54
+ #
55
+ # @attr_reader [String,nil] latest_execution_context The latest execution
56
+ # context provided by the decider for this workflow execution. A decider
57
+ # can provide an execution context, which is a free form string, when
58
+ # closing a decision task.
59
+ #
60
+ # @attr_reader [Hash] open_counts Returns a hash of counts, including:
61
+ # `:open_timers`, `:open_child_workflow_executions`, `:open_decision_tasks`,
62
+ # and `:open_activity_tasks`.
63
+ #
64
+ class WorkflowExecution < Resource
65
+
66
+ def initialize domain, workflow_id, run_id, options = {}
67
+ @domain = domain
68
+ @workflow_id = workflow_id
69
+ @run_id = run_id
70
+ super
71
+ end
72
+
73
+ # @return [Domain] The domain this workflow execution was started in.
74
+ attr_reader :domain
75
+
76
+ # @return [String] The workflow id of this execution.
77
+ attr_reader :workflow_id
78
+
79
+ # @return [String] The run id of this execution.
80
+ attr_reader :run_id
81
+
82
+ config_attribute :child_policy, :to_sym => true
83
+
84
+ config_attribute :execution_start_to_close_timeout, :duration => true
85
+
86
+ config_attribute :task_list do
87
+ translates_output{|v| v['name'] }
88
+ end
89
+
90
+ config_attribute :task_start_to_close_timeout, :duration => true
91
+
92
+ info_attribute :cancel_requested
93
+
94
+ info_attribute :close_status, :to_sym => true
95
+ protected :close_status
96
+
97
+ info_attribute :closed_at, :from => 'closeTimestamp', :timestamp => true
98
+
99
+ info_attribute :execution_status, :to_sym => true
100
+ protected :execution_status
101
+
102
+ info_attribute :parent_details, :from => 'parent', :static => true
103
+ protected :parent_details
104
+
105
+ info_attribute :started_at,
106
+ :from => 'startTimestamp',
107
+ :timestamp => true,
108
+ :static => true
109
+
110
+ info_attribute :tag_list, :static => true
111
+ protected :tag_list
112
+
113
+ info_attribute :type_details, :from => 'workflowType', :static => true
114
+ protected :type_details
115
+
116
+ attribute :latest_activity_task_scheduled_at,
117
+ :from => 'latestActivityTaskTimestamp',
118
+ :timestamp => true
119
+
120
+ attribute :latest_execution_context
121
+
122
+ attribute :open_counts do
123
+ translates_output do |hash|
124
+ hash.inject({}) do |h,(k,v)|
125
+ h[Core::Inflection.ruby_name(k).to_sym] = v; h
126
+ end
127
+ end
128
+ end
129
+
130
+ # list_workflow_executions provides ONLY type attributes
131
+ provider(
132
+ :list_open_workflow_executions,
133
+ :list_closed_workflow_executions
134
+ ) do |provider|
135
+ provider.provides *info_attributes.keys
136
+ provider.find do |resp|
137
+ execution = { 'workflowId' => workflow_id, 'runId' => run_id }
138
+ resp.data['executionInfos'].find do |desc|
139
+ desc['execution'] == execution
140
+ end
141
+ end
142
+ end
143
+
144
+ # describe_workflow_execution provides ALL attributes
145
+ provider(:describe_workflow_execution) do |provider|
146
+ provider.provides *attributes.keys
147
+ provider.find do |resp|
148
+ execution = { 'workflowId' => workflow_id, 'runId' => run_id }
149
+ d = resp.data
150
+ if d['executionInfo']['execution'] == execution
151
+ d.merge(d['executionInfo']).merge(d['executionConfiguration'])
152
+ else
153
+ nil
154
+ end
155
+ end
156
+ end
157
+
158
+ # @return [Symbol] Returns the status of this execution. Possible
159
+ # return values are:
160
+ #
161
+ # * `:open` - The execution is still running.
162
+ # * `:completed` - The execution was successfully completed.
163
+ # * `:canceled` - The execution was canceled, cancellation allows
164
+ # the implementation to gracefully clean up before the execution
165
+ # is closed.
166
+ # * `:failed` - The execution failed to complete.
167
+ # and was automatically timed out.
168
+ # * `:continued_as_new` - The execution is logically continued. This
169
+ # means the current execution was completed and a new execution
170
+ # was started to carry on the workflow.
171
+ # * `:terminated` - The execution was force terminated.
172
+ # * `:timed_out` - The execution did not complete in the allotted
173
+ # time and was automatically timed out.
174
+ #
175
+ def status
176
+ AWS.memoize do
177
+ execution_status == :open ? :open : (close_status || :closed)
178
+ end
179
+ end
180
+
181
+ # @return [Boolean] Returns true if a request was made to cancel
182
+ # this workflow execution.
183
+ def cancel_requested?
184
+ cancel_requested
185
+ end
186
+
187
+ # @return [Boolean] Returns true if the workflow execution is still open.
188
+ def open?
189
+ status == :open
190
+ end
191
+
192
+ # @return [Boolean] Returns true if the workflow execution is closed.
193
+ def closed?
194
+ !open?
195
+ end
196
+
197
+ # @return [Boolean] Returns true if this workflow execution has an
198
+ # open decision task.
199
+ def open_child_workflow_execution_count
200
+ open_counts[:open_child_workflow_executions]
201
+ end
202
+
203
+ # @return [Integer] Returns the number of open activity tasks.
204
+ def open_activity_task_count
205
+ open_counts[:open_activity_tasks]
206
+ end
207
+
208
+ # @return [Integer] Returns the number of open timers.
209
+ def open_timer_count
210
+ open_counts[:open_timers]
211
+ end
212
+
213
+ # @return [Integer] Returns the number of closed activity tasks.
214
+ def open_decision_task_count
215
+ open_counts[:open_decision_tasks]
216
+ end
217
+
218
+ # @return [Array<String>] Returns an array of tags assigned to this
219
+ # execution.
220
+ def tags
221
+ tag_list || []
222
+ end
223
+
224
+ # @return [HistoryEventCollection] Returns a collection that enumerates
225
+ # history events for this workflow execution.
226
+ def history_events
227
+ HistoryEventCollection.new(self)
228
+ end
229
+ alias_method :events, :history_events
230
+
231
+ # @return [WorkflowType] Returns the type of this workflow execution.
232
+ def workflow_type
233
+ type = self.type_details
234
+ WorkflowType.new(domain, type['name'], type['version'])
235
+ end
236
+
237
+ # @return [WorkflowExecution,nil] Returns the parent workflow execution
238
+ # (if there is one).
239
+ def parent
240
+ if parent = self.parent_details
241
+ domain.workflow_executions[parent['workflowId'],parent['runId']]
242
+ else
243
+ nil
244
+ end
245
+ end
246
+
247
+ # Records a WorkflowExecutionSignaled event in the workflow execution
248
+ # history and creates a decision task for the workflow execution.
249
+ #
250
+ # workflow_execution.signal('signal_name', :input => '...')
251
+ #
252
+ # @param [String] signal_name The name of the signal. This name must be
253
+ # meaningful to the target workflow.
254
+ #
255
+ # @param [Hash] options
256
+ #
257
+ # @option options [String] :input (nil) Data to attach to the
258
+ # WorkflowExecutionSignaled event in the target workflow
259
+ # execution's history.
260
+ #
261
+ # @return [nil]
262
+ #
263
+ def signal signal_name, options = {}
264
+ options[:run_id] = run_id
265
+ domain.workflow_executions.signal(workflow_id, signal_name, options)
266
+ end
267
+
268
+ # Records a WorkflowExecutionCancelRequested event in the currently
269
+ # running workflow execution. This logically requests the cancellation
270
+ # of the workflow execution as a whole. It is up to the decider to
271
+ # take appropriate actions when it receives an execution history
272
+ # with this event.
273
+ #
274
+ # @note Because this action allows the workflow to properly clean up
275
+ # and gracefully close, it should be used instead of {#terminate}
276
+ # when possible.
277
+ #
278
+ # @return [nil]
279
+ #
280
+ def request_cancel
281
+ options = { :run_id => run_id }
282
+ domain.workflow_executions.request_cancel(workflow_id, options)
283
+ end
284
+
285
+ # Records a WorkflowExecutionTerminated event and forces closure of
286
+ # the workflow execution. The child policy, registered with the
287
+ # workflow type or specified when starting this execution, is applied
288
+ # to any open child workflow executions of this workflow execution.
289
+ #
290
+ # @note If the workflow execution was in progress, it is terminated
291
+ # immediately.
292
+ #
293
+ # @note You should consider canceling the workflow execution
294
+ # instead because it allows the workflow to gracefully close
295
+ # while terminate does not.
296
+ #
297
+ # @param [Hash] options
298
+ #
299
+ # @option options [Symbol] :child_policy (nil)
300
+ # If set, specifies the policy to use for the child workflow
301
+ # executions of the workflow execution being terminated. This
302
+ # policy overrides the default child policy. Valid policies include:
303
+ #
304
+ # * `:terminate` - the child executions will be terminated.
305
+ #
306
+ # * `:request_cancel` - a request to cancel will be attempted for each
307
+ # child execution by recording a WorkflowExecutionCancelRequested
308
+ # event in its history. It is up to the decider to take appropriate
309
+ # actions when it receives an execution history with this event.
310
+ #
311
+ # * `:abandon` - no action will be taken. The child executions will
312
+ # continue to run.
313
+ #
314
+ # @option options [String] :details (nil) Optional details for
315
+ # terminating the workflow execution.
316
+ #
317
+ # @option options [String] :reason (nil) An optional descriptive
318
+ # reason for terminating the workflow execution.
319
+ #
320
+ # @return [nil]
321
+ #
322
+ def terminate options = {}
323
+ options[:run_id] = run_id
324
+ domain.workflow_executions.terminate(workflow_id, options)
325
+ end
326
+
327
+ # Counts the number of executions that share the same workflow id.
328
+ #
329
+ # @note See {WorkflowExecutionCollection#count} for a broader count.
330
+ #
331
+ # @note This operation is eventually consistent. The results are best
332
+ # effort and may not exactly reflect recent updates and changes.
333
+ #
334
+ # @param [Hash] options
335
+ #
336
+ # @option options [Symbol] :status (:open) Specifies that
337
+ # status of the workflow executions to count. Defaults to
338
+ # open workflows.
339
+ #
340
+ # * `:open`
341
+ # * `:closed`
342
+ #
343
+ # @option options [Array<Time>] :started_between A start and end time
344
+ # to filter workflow execution start times by. You may pass an
345
+ # array with two time values or a range. Times should be
346
+ # timestamps (integers), Time, Date, DateTime or parseable time
347
+ # strings.
348
+ #
349
+ # You may not pass both `:started_between` and `:closed_between`.
350
+ #
351
+ # @option options [Array<Time>] :closed_between A start and end time
352
+ # to filter workflow execution closed times by. You may pass an
353
+ # array with two time values or a range. Times should be
354
+ # timestamps (integers), Time, Date, DateTime or parseable time
355
+ # strings.
356
+ #
357
+ # You may not pass both `:started_between` and `:closed_between`.
358
+ # You may also not pass `:closed_between` if the `:status` is
359
+ # `:open`.
360
+ #
361
+ # @return [Integer] Returns the count of executions that share
362
+ # workflow id with the current execution.
363
+ #
364
+ def count_executions options = {}
365
+ options[:workflow_id] = workflow_id
366
+ domain.workflow_executions.count(options)
367
+ end
368
+
369
+ protected
370
+ def resource_identifiers
371
+ [[:domain,domain.name], [:workflow_id,workflow_id], [:run_id,run_id]]
372
+ end
373
+
374
+ protected
375
+ def resource_options
376
+ {
377
+ :domain => domain.name,
378
+ :execution => { :workflow_id => workflow_id, :run_id => run_id },
379
+ }
380
+ end
381
+
382
+ end
383
+ end
384
+ end