aws_sdk 3.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. data/lib/aws-sdk.rb +14 -0
  2. data/lib/aws.rb +49 -0
  3. data/lib/aws/api_config/AutoScaling-2011-01-01.yml +791 -0
  4. data/lib/aws/api_config/CloudFormation-2010-05-15.yml +303 -0
  5. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +540 -0
  6. data/lib/aws/api_config/EC2-2011-12-15.yml +3638 -0
  7. data/lib/aws/api_config/EC2-2012-04-01.yml +3739 -0
  8. data/lib/aws/api_config/ELB-2011-08-15.yml +512 -0
  9. data/lib/aws/api_config/IAM-2010-05-08.yml +1221 -0
  10. data/lib/aws/api_config/SNS-2010-03-31.yml +248 -0
  11. data/lib/aws/api_config/SQS-2011-10-01.yml +314 -0
  12. data/lib/aws/api_config/STS-2011-06-15.yml +54 -0
  13. data/lib/aws/api_config/SimpleDB-2009-04-15.yml +305 -0
  14. data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +231 -0
  15. data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +721 -0
  16. data/lib/aws/auto_scaling.rb +162 -0
  17. data/lib/aws/auto_scaling/activity.rb +102 -0
  18. data/lib/aws/auto_scaling/activity_collection.rb +82 -0
  19. data/lib/aws/auto_scaling/client.rb +765 -0
  20. data/lib/aws/auto_scaling/config.rb +18 -0
  21. data/lib/aws/auto_scaling/errors.rb +22 -0
  22. data/lib/aws/auto_scaling/group.rb +420 -0
  23. data/lib/aws/auto_scaling/group_collection.rb +96 -0
  24. data/lib/aws/auto_scaling/group_options.rb +146 -0
  25. data/lib/aws/auto_scaling/instance.rb +192 -0
  26. data/lib/aws/auto_scaling/instance_collection.rb +63 -0
  27. data/lib/aws/auto_scaling/launch_configuration.rb +150 -0
  28. data/lib/aws/auto_scaling/launch_configuration_collection.rb +144 -0
  29. data/lib/aws/auto_scaling/notification_configuration.rb +89 -0
  30. data/lib/aws/auto_scaling/notification_configuration_collection.rb +184 -0
  31. data/lib/aws/auto_scaling/request.rb +23 -0
  32. data/lib/aws/auto_scaling/scaling_policy.rb +125 -0
  33. data/lib/aws/auto_scaling/scaling_policy_collection.rb +72 -0
  34. data/lib/aws/auto_scaling/scaling_policy_options.rb +61 -0
  35. data/lib/aws/auto_scaling/scheduled_action.rb +145 -0
  36. data/lib/aws/auto_scaling/scheduled_action_collection.rb +195 -0
  37. data/lib/aws/auto_scaling/tag.rb +59 -0
  38. data/lib/aws/auto_scaling/tag_collection.rb +112 -0
  39. data/lib/aws/cloud_formation.rb +270 -0
  40. data/lib/aws/cloud_formation/client.rb +339 -0
  41. data/lib/aws/cloud_formation/config.rb +18 -0
  42. data/lib/aws/cloud_formation/errors.rb +22 -0
  43. data/lib/aws/cloud_formation/request.rb +29 -0
  44. data/lib/aws/cloud_formation/stack.rb +256 -0
  45. data/lib/aws/cloud_formation/stack_collection.rb +206 -0
  46. data/lib/aws/cloud_formation/stack_event.rb +75 -0
  47. data/lib/aws/cloud_formation/stack_event_collection.rb +47 -0
  48. data/lib/aws/cloud_formation/stack_options.rb +72 -0
  49. data/lib/aws/cloud_formation/stack_output.rb +53 -0
  50. data/lib/aws/cloud_formation/stack_resource.rb +117 -0
  51. data/lib/aws/cloud_formation/stack_resource_collection.rb +84 -0
  52. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +72 -0
  53. data/lib/aws/cloud_formation/stack_summary.rb +71 -0
  54. data/lib/aws/cloud_formation/stack_summary_collection.rb +127 -0
  55. data/lib/aws/core.rb +474 -0
  56. data/lib/aws/core/async_handle.rb +90 -0
  57. data/lib/aws/core/autoloader.rb +64 -0
  58. data/lib/aws/core/cacheable.rb +78 -0
  59. data/lib/aws/core/client.rb +541 -0
  60. data/lib/aws/core/client/query_json.rb +110 -0
  61. data/lib/aws/core/client/query_xml.rb +122 -0
  62. data/lib/aws/core/collection.rb +234 -0
  63. data/lib/aws/core/collection/limitable.rb +99 -0
  64. data/lib/aws/core/collection/simple.rb +90 -0
  65. data/lib/aws/core/configuration.rb +445 -0
  66. data/lib/aws/core/data.rb +242 -0
  67. data/lib/aws/core/default_signer.rb +67 -0
  68. data/lib/aws/core/http/curb_handler.rb +136 -0
  69. data/lib/aws/core/http/handler.rb +77 -0
  70. data/lib/aws/core/http/httparty_handler.rb +114 -0
  71. data/lib/aws/core/http/net_http_handler.rb +85 -0
  72. data/lib/aws/core/http/request.rb +250 -0
  73. data/lib/aws/core/http/response.rb +74 -0
  74. data/lib/aws/core/indifferent_hash.rb +88 -0
  75. data/lib/aws/core/inflection.rb +47 -0
  76. data/lib/aws/core/lazy_error_classes.rb +90 -0
  77. data/lib/aws/core/log_formatter.rb +454 -0
  78. data/lib/aws/core/meta_utils.rb +45 -0
  79. data/lib/aws/core/model.rb +57 -0
  80. data/lib/aws/core/naming.rb +30 -0
  81. data/lib/aws/core/option_grammar.rb +700 -0
  82. data/lib/aws/core/page_result.rb +73 -0
  83. data/lib/aws/core/policy.rb +916 -0
  84. data/lib/aws/core/resource.rb +408 -0
  85. data/lib/aws/core/resource_cache.rb +40 -0
  86. data/lib/aws/core/response.rb +202 -0
  87. data/lib/aws/core/response_cache.rb +50 -0
  88. data/lib/aws/core/service_interface.rb +61 -0
  89. data/lib/aws/core/session_signer.rb +90 -0
  90. data/lib/aws/core/signature/version_2.rb +42 -0
  91. data/lib/aws/core/signature/version_3.rb +73 -0
  92. data/lib/aws/core/signature/version_3_http.rb +72 -0
  93. data/lib/aws/core/signature/version_4.rb +138 -0
  94. data/lib/aws/core/uri_escape.rb +42 -0
  95. data/lib/aws/core/xml/frame.rb +242 -0
  96. data/lib/aws/core/xml/frame_stack.rb +85 -0
  97. data/lib/aws/core/xml/grammar.rb +299 -0
  98. data/lib/aws/core/xml/parser.rb +70 -0
  99. data/lib/aws/core/xml/root_frame.rb +65 -0
  100. data/lib/aws/core/xml/sax_handlers/libxml.rb +47 -0
  101. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +55 -0
  102. data/lib/aws/core/xml/sax_handlers/ox.rb +41 -0
  103. data/lib/aws/core/xml/sax_handlers/rexml.rb +43 -0
  104. data/lib/aws/core/xml/stub.rb +123 -0
  105. data/lib/aws/dynamo_db.rb +213 -0
  106. data/lib/aws/dynamo_db/attribute_collection.rb +460 -0
  107. data/lib/aws/dynamo_db/batch_get.rb +206 -0
  108. data/lib/aws/dynamo_db/batch_write.rb +251 -0
  109. data/lib/aws/dynamo_db/client.rb +888 -0
  110. data/lib/aws/dynamo_db/config.rb +20 -0
  111. data/lib/aws/dynamo_db/errors.rb +20 -0
  112. data/lib/aws/dynamo_db/expectations.rb +40 -0
  113. data/lib/aws/dynamo_db/item.rb +130 -0
  114. data/lib/aws/dynamo_db/item_collection.rb +852 -0
  115. data/lib/aws/dynamo_db/item_data.rb +31 -0
  116. data/lib/aws/dynamo_db/keys.rb +41 -0
  117. data/lib/aws/dynamo_db/primary_key_element.rb +47 -0
  118. data/lib/aws/dynamo_db/request.rb +28 -0
  119. data/lib/aws/dynamo_db/resource.rb +33 -0
  120. data/lib/aws/dynamo_db/table.rb +489 -0
  121. data/lib/aws/dynamo_db/table_collection.rb +165 -0
  122. data/lib/aws/dynamo_db/types.rb +86 -0
  123. data/lib/aws/ec2.rb +431 -0
  124. data/lib/aws/ec2/attachment.rb +140 -0
  125. data/lib/aws/ec2/attachment_collection.rb +54 -0
  126. data/lib/aws/ec2/availability_zone.rb +87 -0
  127. data/lib/aws/ec2/availability_zone_collection.rb +43 -0
  128. data/lib/aws/ec2/block_device_mappings.rb +53 -0
  129. data/lib/aws/ec2/client.rb +4121 -0
  130. data/lib/aws/ec2/collection.rb +36 -0
  131. data/lib/aws/ec2/config.rb +18 -0
  132. data/lib/aws/ec2/config_transform.rb +63 -0
  133. data/lib/aws/ec2/customer_gateway.rb +90 -0
  134. data/lib/aws/ec2/customer_gateway_collection.rb +73 -0
  135. data/lib/aws/ec2/dhcp_options.rb +106 -0
  136. data/lib/aws/ec2/dhcp_options_collection.rb +87 -0
  137. data/lib/aws/ec2/elastic_ip.rb +157 -0
  138. data/lib/aws/ec2/elastic_ip_collection.rb +97 -0
  139. data/lib/aws/ec2/errors.rb +32 -0
  140. data/lib/aws/ec2/filtered_collection.rb +90 -0
  141. data/lib/aws/ec2/has_permissions.rb +44 -0
  142. data/lib/aws/ec2/image.rb +254 -0
  143. data/lib/aws/ec2/image_collection.rb +228 -0
  144. data/lib/aws/ec2/instance.rb +669 -0
  145. data/lib/aws/ec2/instance_collection.rb +346 -0
  146. data/lib/aws/ec2/internet_gateway.rb +122 -0
  147. data/lib/aws/ec2/internet_gateway/attachment.rb +78 -0
  148. data/lib/aws/ec2/internet_gateway_collection.rb +54 -0
  149. data/lib/aws/ec2/key_pair.rb +82 -0
  150. data/lib/aws/ec2/key_pair_collection.rb +99 -0
  151. data/lib/aws/ec2/network_acl.rb +256 -0
  152. data/lib/aws/ec2/network_acl/association.rb +56 -0
  153. data/lib/aws/ec2/network_acl/entry.rb +147 -0
  154. data/lib/aws/ec2/network_acl_collection.rb +64 -0
  155. data/lib/aws/ec2/network_interface.rb +228 -0
  156. data/lib/aws/ec2/network_interface/attachment.rb +100 -0
  157. data/lib/aws/ec2/network_interface_collection.rb +103 -0
  158. data/lib/aws/ec2/permission_collection.rb +174 -0
  159. data/lib/aws/ec2/region.rb +97 -0
  160. data/lib/aws/ec2/region_collection.rb +51 -0
  161. data/lib/aws/ec2/request.rb +22 -0
  162. data/lib/aws/ec2/reserved_instances.rb +53 -0
  163. data/lib/aws/ec2/reserved_instances_collection.rb +40 -0
  164. data/lib/aws/ec2/reserved_instances_offering.rb +58 -0
  165. data/lib/aws/ec2/reserved_instances_offering_collection.rb +39 -0
  166. data/lib/aws/ec2/resource.rb +161 -0
  167. data/lib/aws/ec2/resource_tag_collection.rb +211 -0
  168. data/lib/aws/ec2/route_table.rb +205 -0
  169. data/lib/aws/ec2/route_table/association.rb +119 -0
  170. data/lib/aws/ec2/route_table/route.rb +113 -0
  171. data/lib/aws/ec2/route_table_collection.rb +72 -0
  172. data/lib/aws/ec2/security_group.rb +458 -0
  173. data/lib/aws/ec2/security_group/egress_ip_permission_collection.rb +63 -0
  174. data/lib/aws/ec2/security_group/ingress_ip_permission_collection.rb +61 -0
  175. data/lib/aws/ec2/security_group/ip_permission.rb +128 -0
  176. data/lib/aws/ec2/security_group_collection.rb +135 -0
  177. data/lib/aws/ec2/snapshot.rb +143 -0
  178. data/lib/aws/ec2/snapshot_collection.rb +131 -0
  179. data/lib/aws/ec2/subnet.rb +161 -0
  180. data/lib/aws/ec2/subnet_collection.rb +115 -0
  181. data/lib/aws/ec2/tag.rb +81 -0
  182. data/lib/aws/ec2/tag_collection.rb +107 -0
  183. data/lib/aws/ec2/tagged_collection.rb +53 -0
  184. data/lib/aws/ec2/tagged_item.rb +85 -0
  185. data/lib/aws/ec2/volume.rb +170 -0
  186. data/lib/aws/ec2/volume_collection.rb +97 -0
  187. data/lib/aws/ec2/vpc.rb +166 -0
  188. data/lib/aws/ec2/vpc_collection.rb +70 -0
  189. data/lib/aws/ec2/vpn_connection.rb +99 -0
  190. data/lib/aws/ec2/vpn_connection/telemetry.rb +49 -0
  191. data/lib/aws/ec2/vpn_connection_collection.rb +96 -0
  192. data/lib/aws/ec2/vpn_gateway.rb +123 -0
  193. data/lib/aws/ec2/vpn_gateway/attachment.rb +45 -0
  194. data/lib/aws/ec2/vpn_gateway_collection.rb +77 -0
  195. data/lib/aws/elb.rb +65 -0
  196. data/lib/aws/elb/availability_zone_collection.rb +138 -0
  197. data/lib/aws/elb/backend_server_policy_collection.rb +140 -0
  198. data/lib/aws/elb/client.rb +539 -0
  199. data/lib/aws/elb/config.rb +18 -0
  200. data/lib/aws/elb/errors.rb +26 -0
  201. data/lib/aws/elb/instance_collection.rb +174 -0
  202. data/lib/aws/elb/listener.rb +189 -0
  203. data/lib/aws/elb/listener_collection.rb +119 -0
  204. data/lib/aws/elb/listener_opts.rb +45 -0
  205. data/lib/aws/elb/load_balancer.rb +253 -0
  206. data/lib/aws/elb/load_balancer_collection.rb +113 -0
  207. data/lib/aws/elb/load_balancer_policy.rb +93 -0
  208. data/lib/aws/elb/load_balancer_policy_collection.rb +208 -0
  209. data/lib/aws/elb/request.rb +23 -0
  210. data/lib/aws/errors.rb +122 -0
  211. data/lib/aws/iam.rb +418 -0
  212. data/lib/aws/iam/access_key.rb +180 -0
  213. data/lib/aws/iam/access_key_collection.rb +128 -0
  214. data/lib/aws/iam/account_alias_collection.rb +79 -0
  215. data/lib/aws/iam/client.rb +1609 -0
  216. data/lib/aws/iam/collection.rb +83 -0
  217. data/lib/aws/iam/config.rb +18 -0
  218. data/lib/aws/iam/errors.rb +22 -0
  219. data/lib/aws/iam/group.rb +111 -0
  220. data/lib/aws/iam/group_collection.rb +132 -0
  221. data/lib/aws/iam/group_policy_collection.rb +47 -0
  222. data/lib/aws/iam/group_user_collection.rb +84 -0
  223. data/lib/aws/iam/login_profile.rb +99 -0
  224. data/lib/aws/iam/mfa_device.rb +52 -0
  225. data/lib/aws/iam/mfa_device_collection.rb +127 -0
  226. data/lib/aws/iam/policy.rb +46 -0
  227. data/lib/aws/iam/policy_collection.rb +188 -0
  228. data/lib/aws/iam/request.rb +29 -0
  229. data/lib/aws/iam/resource.rb +71 -0
  230. data/lib/aws/iam/server_certificate.rb +141 -0
  231. data/lib/aws/iam/server_certificate_collection.rb +138 -0
  232. data/lib/aws/iam/signing_certificate.rb +169 -0
  233. data/lib/aws/iam/signing_certificate_collection.rb +131 -0
  234. data/lib/aws/iam/user.rb +205 -0
  235. data/lib/aws/iam/user_collection.rb +133 -0
  236. data/lib/aws/iam/user_group_collection.rb +98 -0
  237. data/lib/aws/iam/user_policy.rb +90 -0
  238. data/lib/aws/iam/user_policy_collection.rb +45 -0
  239. data/lib/aws/iam/virtual_mfa_device.rb +139 -0
  240. data/lib/aws/iam/virtual_mfa_device_collection.rb +73 -0
  241. data/lib/aws/rails.rb +195 -0
  242. data/lib/aws/record.rb +116 -0
  243. data/lib/aws/record/abstract_base.rb +645 -0
  244. data/lib/aws/record/attributes.rb +384 -0
  245. data/lib/aws/record/conversion.rb +38 -0
  246. data/lib/aws/record/dirty_tracking.rb +285 -0
  247. data/lib/aws/record/errors.rb +143 -0
  248. data/lib/aws/record/exceptions.rb +48 -0
  249. data/lib/aws/record/hash_model.rb +161 -0
  250. data/lib/aws/record/hash_model/attributes.rb +182 -0
  251. data/lib/aws/record/hash_model/finder_methods.rb +172 -0
  252. data/lib/aws/record/hash_model/scope.rb +108 -0
  253. data/lib/aws/record/model.rb +427 -0
  254. data/lib/aws/record/model/attributes.rb +379 -0
  255. data/lib/aws/record/model/finder_methods.rb +232 -0
  256. data/lib/aws/record/model/scope.rb +213 -0
  257. data/lib/aws/record/naming.rb +31 -0
  258. data/lib/aws/record/scope.rb +199 -0
  259. data/lib/aws/record/validations.rb +694 -0
  260. data/lib/aws/record/validator.rb +237 -0
  261. data/lib/aws/record/validators/acceptance.rb +51 -0
  262. data/lib/aws/record/validators/block.rb +38 -0
  263. data/lib/aws/record/validators/confirmation.rb +43 -0
  264. data/lib/aws/record/validators/count.rb +108 -0
  265. data/lib/aws/record/validators/exclusion.rb +43 -0
  266. data/lib/aws/record/validators/format.rb +57 -0
  267. data/lib/aws/record/validators/inclusion.rb +56 -0
  268. data/lib/aws/record/validators/length.rb +107 -0
  269. data/lib/aws/record/validators/method.rb +33 -0
  270. data/lib/aws/record/validators/numericality.rb +138 -0
  271. data/lib/aws/record/validators/presence.rb +45 -0
  272. data/lib/aws/s3.rb +135 -0
  273. data/lib/aws/s3/access_control_list.rb +250 -0
  274. data/lib/aws/s3/acl_object.rb +264 -0
  275. data/lib/aws/s3/bucket.rb +393 -0
  276. data/lib/aws/s3/bucket_collection.rb +143 -0
  277. data/lib/aws/s3/bucket_lifecycle_configuration.rb +360 -0
  278. data/lib/aws/s3/bucket_version_collection.rb +77 -0
  279. data/lib/aws/s3/client.rb +1184 -0
  280. data/lib/aws/s3/client/xml.rb +177 -0
  281. data/lib/aws/s3/config.rb +26 -0
  282. data/lib/aws/s3/data_options.rb +100 -0
  283. data/lib/aws/s3/errors.rb +81 -0
  284. data/lib/aws/s3/multipart_upload.rb +317 -0
  285. data/lib/aws/s3/multipart_upload_collection.rb +68 -0
  286. data/lib/aws/s3/object_collection.rb +337 -0
  287. data/lib/aws/s3/object_metadata.rb +96 -0
  288. data/lib/aws/s3/object_upload_collection.rb +77 -0
  289. data/lib/aws/s3/object_version.rb +143 -0
  290. data/lib/aws/s3/object_version_collection.rb +89 -0
  291. data/lib/aws/s3/paginated_collection.rb +75 -0
  292. data/lib/aws/s3/policy.rb +74 -0
  293. data/lib/aws/s3/prefix_and_delimiter_collection.rb +47 -0
  294. data/lib/aws/s3/prefixed_collection.rb +81 -0
  295. data/lib/aws/s3/presigned_post.rb +553 -0
  296. data/lib/aws/s3/request.rb +201 -0
  297. data/lib/aws/s3/s3_object.rb +1037 -0
  298. data/lib/aws/s3/tree.rb +118 -0
  299. data/lib/aws/s3/tree/branch_node.rb +68 -0
  300. data/lib/aws/s3/tree/child_collection.rb +104 -0
  301. data/lib/aws/s3/tree/leaf_node.rb +94 -0
  302. data/lib/aws/s3/tree/node.rb +22 -0
  303. data/lib/aws/s3/tree/parent.rb +87 -0
  304. data/lib/aws/s3/uploaded_part.rb +80 -0
  305. data/lib/aws/s3/uploaded_part_collection.rb +84 -0
  306. data/lib/aws/simple_db.rb +217 -0
  307. data/lib/aws/simple_db/attribute.rb +154 -0
  308. data/lib/aws/simple_db/attribute_collection.rb +231 -0
  309. data/lib/aws/simple_db/client.rb +349 -0
  310. data/lib/aws/simple_db/config.rb +20 -0
  311. data/lib/aws/simple_db/consistent_read_option.rb +42 -0
  312. data/lib/aws/simple_db/delete_attributes.rb +62 -0
  313. data/lib/aws/simple_db/domain.rb +121 -0
  314. data/lib/aws/simple_db/domain_collection.rb +113 -0
  315. data/lib/aws/simple_db/domain_metadata.rb +110 -0
  316. data/lib/aws/simple_db/errors.rb +55 -0
  317. data/lib/aws/simple_db/expect_condition_option.rb +45 -0
  318. data/lib/aws/simple_db/item.rb +93 -0
  319. data/lib/aws/simple_db/item_collection.rb +649 -0
  320. data/lib/aws/simple_db/item_data.rb +73 -0
  321. data/lib/aws/simple_db/put_attributes.rb +60 -0
  322. data/lib/aws/simple_db/request.rb +23 -0
  323. data/lib/aws/simple_email_service.rb +426 -0
  324. data/lib/aws/simple_email_service/client.rb +286 -0
  325. data/lib/aws/simple_email_service/config.rb +19 -0
  326. data/lib/aws/simple_email_service/email_address_collection.rb +69 -0
  327. data/lib/aws/simple_email_service/errors.rb +22 -0
  328. data/lib/aws/simple_email_service/identity.rb +91 -0
  329. data/lib/aws/simple_email_service/identity_collection.rb +81 -0
  330. data/lib/aws/simple_email_service/quotas.rb +64 -0
  331. data/lib/aws/simple_email_service/request.rb +29 -0
  332. data/lib/aws/simple_workflow.rb +226 -0
  333. data/lib/aws/simple_workflow/activity_task.rb +173 -0
  334. data/lib/aws/simple_workflow/activity_task_collection.rb +123 -0
  335. data/lib/aws/simple_workflow/activity_type.rb +131 -0
  336. data/lib/aws/simple_workflow/activity_type_collection.rb +93 -0
  337. data/lib/aws/simple_workflow/client.rb +1434 -0
  338. data/lib/aws/simple_workflow/config.rb +18 -0
  339. data/lib/aws/simple_workflow/count.rb +49 -0
  340. data/lib/aws/simple_workflow/decision_task.rb +601 -0
  341. data/lib/aws/simple_workflow/decision_task_collection.rb +225 -0
  342. data/lib/aws/simple_workflow/domain.rb +122 -0
  343. data/lib/aws/simple_workflow/domain_collection.rb +169 -0
  344. data/lib/aws/simple_workflow/errors.rb +20 -0
  345. data/lib/aws/simple_workflow/history_event.rb +276 -0
  346. data/lib/aws/simple_workflow/history_event_collection.rb +76 -0
  347. data/lib/aws/simple_workflow/option_formatters.rb +82 -0
  348. data/lib/aws/simple_workflow/request.rb +36 -0
  349. data/lib/aws/simple_workflow/resource.rb +94 -0
  350. data/lib/aws/simple_workflow/type.rb +89 -0
  351. data/lib/aws/simple_workflow/type_collection.rb +140 -0
  352. data/lib/aws/simple_workflow/workflow_execution.rb +386 -0
  353. data/lib/aws/simple_workflow/workflow_execution_collection.rb +617 -0
  354. data/lib/aws/simple_workflow/workflow_type.rb +177 -0
  355. data/lib/aws/simple_workflow/workflow_type_collection.rb +91 -0
  356. data/lib/aws/sns.rb +74 -0
  357. data/lib/aws/sns/client.rb +371 -0
  358. data/lib/aws/sns/config.rb +18 -0
  359. data/lib/aws/sns/errors.rb +22 -0
  360. data/lib/aws/sns/has_delivery_policy.rb +68 -0
  361. data/lib/aws/sns/policy.rb +47 -0
  362. data/lib/aws/sns/request.rb +23 -0
  363. data/lib/aws/sns/subscription.rb +144 -0
  364. data/lib/aws/sns/subscription_collection.rb +80 -0
  365. data/lib/aws/sns/topic.rb +403 -0
  366. data/lib/aws/sns/topic_collection.rb +67 -0
  367. data/lib/aws/sns/topic_subscription_collection.rb +55 -0
  368. data/lib/aws/sqs.rb +79 -0
  369. data/lib/aws/sqs/client.rb +360 -0
  370. data/lib/aws/sqs/config.rb +18 -0
  371. data/lib/aws/sqs/errors.rb +101 -0
  372. data/lib/aws/sqs/policy.rb +48 -0
  373. data/lib/aws/sqs/queue.rb +725 -0
  374. data/lib/aws/sqs/queue_collection.rb +170 -0
  375. data/lib/aws/sqs/received_message.rb +181 -0
  376. data/lib/aws/sqs/received_sns_message.rb +112 -0
  377. data/lib/aws/sqs/request.rb +43 -0
  378. data/lib/aws/sts.rb +152 -0
  379. data/lib/aws/sts/client.rb +105 -0
  380. data/lib/aws/sts/config.rb +18 -0
  381. data/lib/aws/sts/errors.rb +22 -0
  382. data/lib/aws/sts/federated_session.rb +56 -0
  383. data/lib/aws/sts/policy.rb +30 -0
  384. data/lib/aws/sts/request.rb +29 -0
  385. data/lib/aws/sts/session.rb +48 -0
  386. data/lib/net/http/connection_pool.rb +210 -0
  387. data/lib/net/http/connection_pool/connection.rb +132 -0
  388. data/lib/net/http/connection_pool/session.rb +93 -0
  389. data/lib/user.rb +49 -0
  390. metadata +433 -0
@@ -0,0 +1,177 @@
1
+ # Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+
14
+ require 'uuidtools'
15
+
16
+ module AWS
17
+ class SimpleWorkflow
18
+
19
+ # == Registering a WorkflowType
20
+ #
21
+ # To register a workflow type you should use the #workflow_types method
22
+ # on the domain:
23
+ #
24
+ # domain.workflow_types.register('name', 'version', { ... })
25
+ #
26
+ # See {WorkflowTypeCollection#register} for a complete list of options.
27
+ #
28
+ # == Deprecating a workflwo type
29
+ #
30
+ # WorkflowType inherits from the generic {Type} base class. Defined in
31
+ # {Type} are a few useful methods including:
32
+ #
33
+ # * {Type#deprecate}
34
+ # * {Type#deprecated?}
35
+ #
36
+ # You can use these to deprecate a workflow type:
37
+ #
38
+ # domain.workflow_types['name','version'].deprecate
39
+ #
40
+ # @attr_reader [Time] creation_date When the workflow type was registered.
41
+ #
42
+ # @attr_reader [Time,nil] deprecation_date When the workflow type
43
+ # was deprecated, or nil if the workflow type has not been deprecated.
44
+ #
45
+ # @attr_reader [String,nil] description The description of this workflow
46
+ # type, or nil if was not set when it was registered.
47
+ #
48
+ # @attr_reader [Symbol] status The status of this workflow type. The
49
+ # status will either be +:registered+ or +:deprecated+.
50
+ #
51
+ # @attr_reader [Symbol,nil] default_child_policy Specifies the default
52
+ # policy to use for the child workflow executions when a workflow
53
+ # execution of this type is terminated. Values may be one of the
54
+ # following (or nil):
55
+ #
56
+ # * +:terminate+ - the child executions will be terminated.
57
+ #
58
+ # * +:request_cancel+ - a request to cancel will be attempted for each
59
+ # child execution by recording a WorkflowExecutionCancelRequested
60
+ # event in its history. It is up to the decider to take appropriate
61
+ # actions when it receives an execution history with this event.
62
+ #
63
+ # * +:abandon+ - no action will be taken. The child executions will
64
+ # continue to run.
65
+ #
66
+ # @attr_reader [Integer,:none,nil] default_execution_start_to_close_timeout
67
+ # The default maximum duration for executions of this workflow type.
68
+ #
69
+ # The return value may be an integer (number of seconds), the
70
+ # symbol +:none+ (implying no timeout) or +nil+ (not specified).
71
+ #
72
+ # @attr_reader [String,nil] default_task_list Specifies
73
+ # the default task list to use for scheduling decision tasks for
74
+ # executions of this workflow type.
75
+ #
76
+ # @attr_reader [Integer,:none,nil] default_task_start_to_close_timeout
77
+ # The default maximum duration of decision tasks for this workflow type.
78
+ #
79
+ # The return value may be an integer (number of seconds), the
80
+ # symbol +:none+ (implying no timeout) or +nil+ (not specified).
81
+ #
82
+ class WorkflowType < Type
83
+
84
+ include OptionFormatters
85
+
86
+ type_attribute :creation_date, :timestamp => true
87
+
88
+ type_attribute :deprecation_date, :timestamp => true, :static => false
89
+
90
+ type_attribute :description
91
+
92
+ type_attribute :status, :to_sym => true, :static => false
93
+
94
+ config_attribute :default_child_policy, :to_sym => true
95
+
96
+ config_attribute :default_execution_start_to_close_timeout,
97
+ :duration => true
98
+
99
+ config_attribute :default_task_list do
100
+ translates_output {|v| v['name'] }
101
+ end
102
+
103
+ config_attribute :default_task_start_to_close_timeout,
104
+ :duration => true
105
+
106
+ # @param [Hash] options
107
+ #
108
+ # @option (see DecisionTask#continue_as_new_workflow_execution)
109
+ #
110
+ # @option options [String] :workflow_id
111
+ # A user defined identifier associated with the workflow execution.
112
+ # You can use this to associate a custom identifier with the
113
+ # workflow execution. You may specify the same identifier if a
114
+ # workflow execution is logically a restart of a previous execution.
115
+ # You cannot have two open workflow executions with the same
116
+ # :workflow_id at the same time.
117
+ #
118
+ # If you do not provide +:workflow_id+ a random UUID will be generated.
119
+ #
120
+ # @return [WorkflowExecution] Returns the new workflow execution.
121
+ #
122
+ def start_execution options = {}
123
+
124
+ options[:domain] = domain.name
125
+ start_execution_opts(options, self)
126
+ response = client.start_workflow_execution(options)
127
+
128
+ workflow_id = options[:workflow_id]
129
+ run_id = response.data['runId']
130
+
131
+ domain.workflow_executions[workflow_id, run_id]
132
+
133
+ end
134
+
135
+ # Returns a count of workflow executions of this workflow type.
136
+ #
137
+ # domain.workflow_types['name','version'].count
138
+ #
139
+ # @note (see WorkflowExecution#count_executions)
140
+ # @param (see WorkflowExecution#count_executions)
141
+ # @option (see WorkflowExecution#count_executions)
142
+ # @return [Integer] Returns the count of workflow execution of this type.
143
+ def count_executions options = {}
144
+ options[:workflow_type] = self
145
+ domain.workflow_executions.count(options)
146
+ end
147
+
148
+ # @return [WorkflowExecutionCollection] Returns a collection that
149
+ # enumerates only workflow executions of this type.
150
+ def workflow_executions
151
+ WorkflowExecutionCollection.new(domain).with_workflow_type(self)
152
+ end
153
+
154
+ # list workflow type only provides type attributes
155
+ provider(:list_workflow_types) do |provider|
156
+ provider.provides *type_attributes.keys
157
+ provider.find do |resp|
158
+ desc = resp.data['typeInfos'].find do |info|
159
+ info[self.class.type_key] == { 'name' => name, 'version' => version }
160
+ end
161
+ end
162
+ end
163
+
164
+ # describe workflow type provides type and config attributes
165
+ provider(:describe_workflow_type) do |provider|
166
+ provider.provides *type_attributes.keys
167
+ provider.provides *config_attributes.keys
168
+ provider.find do |resp|
169
+ type = { 'name' => name, 'version' => version }
170
+ resp.data['typeInfo'][self.class.type_key] == type ?
171
+ resp.data['typeInfo'].merge(resp.data['configuration']) : nil
172
+ end
173
+ end
174
+
175
+ end
176
+ end
177
+ end
@@ -0,0 +1,91 @@
1
+ # Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+
14
+ module AWS
15
+ class SimpleWorkflow
16
+
17
+ class WorkflowTypeCollection < TypeCollection
18
+
19
+ # Registers a new workflow type and its configuration settings for
20
+ # in the current domain.
21
+ #
22
+ # @param [String] name The name of the workflow type.
23
+ #
24
+ # @param [String] version The version of the workflow type.
25
+ # The workflow type consists of the name and version, the
26
+ # combination of which must be unique within the domain.
27
+ #
28
+ # @param [Hash] options
29
+ #
30
+ # @option options [Symbol] :default_child_policy (nil) Specifies the default
31
+ # policy to use for the child workflow executions when a workflow
32
+ # execution of this type is terminated. This default can be
33
+ # overridden when starting a workflow execution. The supported child
34
+ # policies are:
35
+ #
36
+ # * +:terminate+ - the child executions will be terminated.
37
+ #
38
+ # * +:request_cancel+ - a request to cancel will be attempted for each
39
+ # child execution by recording a WorkflowExecutionCancelRequested
40
+ # event in its history. It is up to the decider to take appropriate
41
+ # actions when it receives an execution history with this event.
42
+ #
43
+ # * +:abandon+ - no action will be taken. The child executions will
44
+ # continue to run.
45
+ #
46
+ # @option options [Integer,:none] :default_execution_start_to_close_timeout (nil)
47
+ # The default maximum duration for executions of this workflow type.
48
+ # You can override this default when starting an execution.
49
+ # The value should be a number of seconds (integer) or the symbol
50
+ # +:none+ (implying no timeout).
51
+ #
52
+ # @option options [String] :default_task_list (nil) Specifies
53
+ # the default task list to use for scheduling decision tasks for
54
+ # executions of this workflow type. This default is used only if
55
+ # a task list is not provided when starting the workflow execution.
56
+ #
57
+ # @option options [Integer,:none] :default_task_start_to_close_timeout (nil)
58
+ # The default maximum duration of decision tasks for this workflow type.
59
+ #
60
+ # The value should be a number of seconds (integer) or the symbol
61
+ # +:none+ (implying no timeout).
62
+ #
63
+ # @option options [String] :description (nil) Textual description of
64
+ # the workflow type.
65
+ #
66
+ def register name, version, options = {}
67
+
68
+ options[:domain] = domain.name
69
+ options[:name] = name
70
+ options[:version] = version
71
+
72
+ upcase_opts(options, :default_child_policy)
73
+
74
+ duration_opts(options,
75
+ :default_execution_start_to_close_timeout,
76
+ :default_task_start_to_close_timeout)
77
+
78
+ if task_list = options[:default_task_list]
79
+ options[:default_task_list] = { :name => task_list.to_s }
80
+ end
81
+
82
+ client.register_workflow_type(options)
83
+
84
+ self[name, version]
85
+
86
+ end
87
+ alias_method :create, :register
88
+
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,74 @@
1
+ # Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+
14
+ require 'aws/core'
15
+ require 'aws/sns/config'
16
+
17
+ module AWS
18
+
19
+ # This class is the starting point for working with Amazon Simple
20
+ # Notification Service (SNS).
21
+ #
22
+ # To use Amazon SNS you must first {sign up here}[http://aws.amazon.com/sns/].
23
+ #
24
+ # For more information about Amazon SNS:
25
+ #
26
+ # * {Amazon SNS}[http://aws.amazon.com/sns/]
27
+ # * {Amazon SNS Documentation}[http://aws.amazon.com/documentation/sns/]
28
+ #
29
+ # = Credentials
30
+ #
31
+ # You can setup default credentials for all AWS services via
32
+ # AWS.config:
33
+ #
34
+ # AWS.config(
35
+ # :access_key_id => 'YOUR_ACCESS_KEY_ID',
36
+ # :secret_access_key => 'YOUR_SECRET_ACCESS_KEY')
37
+ #
38
+ # Or you can set them directly on the SNS interface:
39
+ #
40
+ # sns = AWS::SNS.new(
41
+ # :access_key_id => 'YOUR_ACCESS_KEY_ID',
42
+ # :secret_access_key => 'YOUR_SECRET_ACCESS_KEY')
43
+ #
44
+ class SNS
45
+
46
+ AWS.register_autoloads(self) do
47
+ autoload :Client, 'client'
48
+ autoload :Errors, 'errors'
49
+ autoload :Policy, 'policy'
50
+ autoload :HasDeliveryPolicy, 'has_delivery_policy'
51
+ autoload :Request, 'request'
52
+ autoload :Subscription, 'subscription'
53
+ autoload :SubscriptionCollection, 'subscription_collection'
54
+ autoload :Topic, 'topic'
55
+ autoload :TopicCollection, 'topic_collection'
56
+ autoload :TopicSubscriptionCollection, 'topic_subscription_collection'
57
+ end
58
+
59
+ include Core::ServiceInterface
60
+
61
+ # @return [TopicCollection] Returns a topic collection for managing
62
+ # SNS topics.
63
+ def topics
64
+ TopicCollection.new(:config => config)
65
+ end
66
+
67
+ # @return [SubscriptionCollection] Returns a subscription
68
+ # collection for managing SNS subscriptions.
69
+ def subscriptions
70
+ SubscriptionCollection.new(:config => config)
71
+ end
72
+
73
+ end
74
+ end
@@ -0,0 +1,371 @@
1
+ # Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+
14
+ module AWS
15
+ class SNS
16
+
17
+ # Client class for Amazon Simple Notifications Service (SNS).
18
+ class Client < Core::Client
19
+
20
+ API_VERSION = '2010-03-31'
21
+
22
+ extend Core::Client::QueryXML
23
+
24
+ # @private
25
+ CACHEABLE_REQUESTS = Set[]
26
+
27
+ ## client methods ##
28
+
29
+ # Calls the AddPermission API operation.
30
+ # @method add_permission(options = {})
31
+ #
32
+ # === Options:
33
+ #
34
+ # * +:topic_arn+ - *required* - (String) The ARN of the topic whose
35
+ # access control policy you wish to modify.
36
+ # * +:label+ - *required* - (String) A unique identifier for the new
37
+ # policy statement.
38
+ # * +:aws_account_id+ - *required* - (Array<String>) The AWS account IDs
39
+ # of the users (principals) who will be given access to the specified
40
+ # actions. The users must have AWS accounts, but do not need to be
41
+ # signed up for this service.
42
+ # * +:action_name+ - *required* - (Array<String>) The action you want to
43
+ # allow for the specified principal(s). Valid values: any Amazon SNS
44
+ # action name.
45
+ #
46
+ # === Response Structure:
47
+ #
48
+ # This method returns no response data.
49
+ #
50
+ # @return [Core::Response]
51
+ #
52
+ define_client_method :add_permission, 'AddPermission'
53
+
54
+ # Calls the ConfirmSubscription API operation.
55
+ # @method confirm_subscription(options = {})
56
+ #
57
+ # === Options:
58
+ #
59
+ # * +:topic_arn+ - *required* - (String) The ARN of the topic for which
60
+ # you wish to confirm a subscription.
61
+ # * +:token+ - *required* - (String) Short-lived token sent to an
62
+ # endpoint during the Subscribe action.
63
+ # * +:authenticate_on_unsubscribe+ - (String) Disallows unauthenticated
64
+ # unsubscribes of the subscription. If the value of this parameter is
65
+ # +true+ and the request has an AWS signature, then only the topic
66
+ # owner and the subscription owner can unsubscribe the endpoint. The
67
+ # unsubscribe action will require AWS authentication.
68
+ #
69
+ # === Response Structure:
70
+ #
71
+ # * +:subscription_arn+ - (String)
72
+ #
73
+ # @return [Core::Response]
74
+ #
75
+ define_client_method :confirm_subscription, 'ConfirmSubscription'
76
+
77
+ # Calls the CreateTopic API operation.
78
+ # @method create_topic(options = {})
79
+ #
80
+ # === Options:
81
+ #
82
+ # * +:name+ - *required* - (String) The name of the topic you want to
83
+ # create. Constraints: Topic names must be made up of only uppercase
84
+ # and lowercase ASCII letters, numbers, and hyphens, and must be
85
+ # between 1 and 256 characters long.
86
+ #
87
+ # === Response Structure:
88
+ #
89
+ # * +:topic_arn+ - (String)
90
+ #
91
+ # @return [Core::Response]
92
+ #
93
+ define_client_method :create_topic, 'CreateTopic'
94
+
95
+ # Calls the DeleteTopic API operation.
96
+ # @method delete_topic(options = {})
97
+ #
98
+ # === Options:
99
+ #
100
+ # * +:topic_arn+ - *required* - (String) The ARN of the topic you want to
101
+ # delete. http://sns.us-east-1.amazonaws.com/
102
+ # ?TopicArn=arn%3Aaws%3Asns%3Aus-east-1%3A123456789012%3AMy-Topic
103
+ # &Action=DeleteTopic &SignatureVersion=2 &SignatureMethod=HmacSHA256
104
+ # &Timestamp=2010-03-31T12%3A00%3A00.000Z &AWSAccessKeyId=(AWS Access
105
+ # Key ID)
106
+ # &Signature=DjHBa%2BbYCKQAzctOPnLP7MbHnrHT3%2FK3kFEZjwcf9%2FU%3D
107
+ # <DeleteTopicResponse
108
+ # xmlns="http://sns.amazonaws.com/doc/2010-03-31/"> <ResponseMetadata>
109
+ # <RequestId>fba800b9-3765-11df-8cf3-c58c53254dfb</RequestId>
110
+ # </ResponseMetadata> </DeleteTopicResponse>
111
+ #
112
+ # === Response Structure:
113
+ #
114
+ # This method returns no response data.
115
+ #
116
+ # @return [Core::Response]
117
+ #
118
+ define_client_method :delete_topic, 'DeleteTopic'
119
+
120
+ # Calls the GetSubscriptionAttributes API operation.
121
+ # @method get_subscription_attributes(options = {})
122
+ #
123
+ # === Options:
124
+ #
125
+ # * +:subscription_arn+ - *required* - (String) The ARN of the
126
+ # subscription whose properties you want to get.
127
+ #
128
+ # === Response Structure:
129
+ #
130
+ # * +:attributes+ - (Hash<String,String>)
131
+ #
132
+ # @return [Core::Response]
133
+ #
134
+ define_client_method :get_subscription_attributes, 'GetSubscriptionAttributes'
135
+
136
+ # Calls the GetTopicAttributes API operation.
137
+ # @method get_topic_attributes(options = {})
138
+ #
139
+ # === Options:
140
+ #
141
+ # * +:topic_arn+ - *required* - (String) The ARN of the topic whose
142
+ # properties you want to get.
143
+ #
144
+ # === Response Structure:
145
+ #
146
+ # * +:attributes+ - (Hash<String,String>)
147
+ #
148
+ # @return [Core::Response]
149
+ #
150
+ define_client_method :get_topic_attributes, 'GetTopicAttributes'
151
+
152
+ # Calls the ListSubscriptions API operation.
153
+ # @method list_subscriptions(options = {})
154
+ #
155
+ # === Options:
156
+ #
157
+ # * +:next_token+ - (String) Token returned by the previous
158
+ # ListSubscriptions request.
159
+ #
160
+ # === Response Structure:
161
+ #
162
+ # * +:subscriptions+ - (Array<Hash>)
163
+ # * +:subscription_arn+ - (String)
164
+ # * +:owner+ - (String)
165
+ # * +:protocol+ - (String)
166
+ # * +:endpoint+ - (String)
167
+ # * +:topic_arn+ - (String)
168
+ # * +:next_token+ - (String)
169
+ #
170
+ # @return [Core::Response]
171
+ #
172
+ define_client_method :list_subscriptions, 'ListSubscriptions'
173
+
174
+ # Calls the ListSubscriptionsByTopic API operation.
175
+ # @method list_subscriptions_by_topic(options = {})
176
+ #
177
+ # === Options:
178
+ #
179
+ # * +:topic_arn+ - *required* - (String) The ARN of the topic for which
180
+ # you wish to find subscriptions.
181
+ # * +:next_token+ - (String) Token returned by the previous
182
+ # ListSubscriptionsByTopic request.
183
+ #
184
+ # === Response Structure:
185
+ #
186
+ # * +:subscriptions+ - (Array<Hash>)
187
+ # * +:subscription_arn+ - (String)
188
+ # * +:owner+ - (String)
189
+ # * +:protocol+ - (String)
190
+ # * +:endpoint+ - (String)
191
+ # * +:topic_arn+ - (String)
192
+ # * +:next_token+ - (String)
193
+ #
194
+ # @return [Core::Response]
195
+ #
196
+ define_client_method :list_subscriptions_by_topic, 'ListSubscriptionsByTopic'
197
+
198
+ # Calls the ListTopics API operation.
199
+ # @method list_topics(options = {})
200
+ #
201
+ # === Options:
202
+ #
203
+ # * +:next_token+ - (String) Token returned by the previous ListTopics
204
+ # request.
205
+ #
206
+ # === Response Structure:
207
+ #
208
+ # * +:topics+ - (Array<Hash>)
209
+ # * +:topic_arn+ - (String)
210
+ # * +:next_token+ - (String)
211
+ #
212
+ # @return [Core::Response]
213
+ #
214
+ define_client_method :list_topics, 'ListTopics'
215
+
216
+ # Calls the Publish API operation.
217
+ # @method publish(options = {})
218
+ #
219
+ # === Options:
220
+ #
221
+ # * +:topic_arn+ - *required* - (String) The topic you want to publish
222
+ # to.
223
+ # * +:message+ - *required* - (String) The message you want to send to
224
+ # the topic. Constraints: Messages must be UTF-8 encoded strings at
225
+ # most 8 KB in size (8192 bytes, not 8192 characters).
226
+ # * +:subject+ - (String) Optional parameter to be used as the "Subject"
227
+ # line of when the message is delivered to e-mail endpoints. This field
228
+ # will also be included, if present, in the standard JSON messages
229
+ # delivered to other endpoints. Constraints: Subjects must be ASCII
230
+ # text that begins with a letter, number or punctuation mark; must not
231
+ # include line breaks or control characters; and must be less than 100
232
+ # characters long.
233
+ # * +:message_structure+ - (String) Optional parameter. It will have one
234
+ # valid value: "json". If this option, Message is present and set to
235
+ # "json", the value of Message must: be a syntactically valid JSON
236
+ # object. It must contain at least a top level JSON key of "default"
237
+ # with a value that is a string. For any other top level key that
238
+ # matches one of our transport protocols (e.g. "http"), then the
239
+ # corresponding value (if it is a string) will be used for the message
240
+ # published for that protocol Constraints: Keys in the JSON object that
241
+ # correspond to supported transport protocols must have simple JSON
242
+ # string values. The values will be parsed (unescaped) before they are
243
+ # used in outgoing messages. Typically, outbound notifications are JSON
244
+ # encoded (meaning, the characters will be reescaped for sending). JSON
245
+ # strings are UTF-8. Values have a minimum length of 0 (the empty
246
+ # string, "", is allowed). Values have a maximum length bounded by the
247
+ # overall message size (so, including multiple protocols may limit
248
+ # message sizes). Non-string values will cause the key to be ignored.
249
+ # Keys that do not correspond to supported transport protocols will be
250
+ # ignored. Duplicate keys are not allowed. Failure to parse or validate
251
+ # any key or value in the message will cause the Publish call to return
252
+ # an error (no partial delivery).
253
+ #
254
+ # === Response Structure:
255
+ #
256
+ # * +:message_id+ - (String)
257
+ #
258
+ # @return [Core::Response]
259
+ #
260
+ define_client_method :publish, 'Publish'
261
+
262
+ # Calls the RemovePermission API operation.
263
+ # @method remove_permission(options = {})
264
+ #
265
+ # === Options:
266
+ #
267
+ # * +:topic_arn+ - *required* - (String) The ARN of the topic whose
268
+ # access control policy you wish to modify.
269
+ # * +:label+ - *required* - (String) The unique label of the statement
270
+ # you want to remove.
271
+ #
272
+ # === Response Structure:
273
+ #
274
+ # This method returns no response data.
275
+ #
276
+ # @return [Core::Response]
277
+ #
278
+ define_client_method :remove_permission, 'RemovePermission'
279
+
280
+ # Calls the SetSubscriptionAttributes API operation.
281
+ # @method set_subscription_attributes(options = {})
282
+ #
283
+ # === Options:
284
+ #
285
+ # * +:subscription_arn+ - *required* - (String) The ARN of the
286
+ # subscription to modify.
287
+ # * +:attribute_name+ - *required* - (String) The name of the attribute
288
+ # you want to set. Only a subset of the subscriptions attributes are
289
+ # mutable. Valid values: DeliveryPolicy
290
+ # * +:attribute_value+ - *required* - (String) The new value for the
291
+ # attribute.
292
+ #
293
+ # === Response Structure:
294
+ #
295
+ # This method returns no response data.
296
+ #
297
+ # @return [Core::Response]
298
+ #
299
+ define_client_method :set_subscription_attributes, 'SetSubscriptionAttributes'
300
+
301
+ # Calls the SetTopicAttributes API operation.
302
+ # @method set_topic_attributes(options = {})
303
+ #
304
+ # === Options:
305
+ #
306
+ # * +:topic_arn+ - *required* - (String) The ARN of the topic to modify.
307
+ # * +:attribute_name+ - *required* - (String) The name of the attribute
308
+ # you want to set. Only a subset of the topic's attributes are mutable.
309
+ # Valid values: Policy | DisplayName
310
+ # * +:attribute_value+ - *required* - (String) The new value for the
311
+ # attribute.
312
+ #
313
+ # === Response Structure:
314
+ #
315
+ # This method returns no response data.
316
+ #
317
+ # @return [Core::Response]
318
+ #
319
+ define_client_method :set_topic_attributes, 'SetTopicAttributes'
320
+
321
+ # Calls the Subscribe API operation.
322
+ # @method subscribe(options = {})
323
+ #
324
+ # === Options:
325
+ #
326
+ # * +:topic_arn+ - *required* - (String) The ARN of topic you want to
327
+ # subscribe to.
328
+ # * +:protocol+ - *required* - (String) The protocol you want to use.
329
+ # Supported protocols include: http -- delivery of JSON-encoded message
330
+ # via HTTP POST https -- delivery of JSON-encoded message via HTTPS
331
+ # POST email -- delivery of message via SMTP email-json -- delivery of
332
+ # JSON-encoded message via SMTP sms -- delivery of message via SMS sqs
333
+ # -- delivery of JSON-encoded message to an Amazon SQS queue
334
+ # * +:endpoint+ - *required* - (String) The endpoint that you want to
335
+ # receive notifications. Endpoints vary by protocol: For the http
336
+ # protocol, the endpoint is an URL beginning with "http://" For the
337
+ # https protocol, the endpoint is a URL beginning with "https://" For
338
+ # the email protocol, the endpoint is an e-mail address For the
339
+ # email-json protocol, the endpoint is an e-mail address For the sms
340
+ # protocol, the endpoint is a phone number of an SMS-enabled device For
341
+ # the sqs protocol, the endpoint is the ARN of an Amazon SQS queue
342
+ #
343
+ # === Response Structure:
344
+ #
345
+ # * +:subscription_arn+ - (String)
346
+ #
347
+ # @return [Core::Response]
348
+ #
349
+ define_client_method :subscribe, 'Subscribe'
350
+
351
+ # Calls the Unsubscribe API operation.
352
+ # @method unsubscribe(options = {})
353
+ #
354
+ # === Options:
355
+ #
356
+ # * +:subscription_arn+ - *required* - (String) The ARN of the
357
+ # subscription to be deleted.
358
+ #
359
+ # === Response Structure:
360
+ #
361
+ # This method returns no response data.
362
+ #
363
+ # @return [Core::Response]
364
+ #
365
+ define_client_method :unsubscribe, 'Unsubscribe'
366
+
367
+ ## end client methods ##
368
+
369
+ end
370
+ end
371
+ end