aws-sdk 1.4.1 → 1.5.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 (193) hide show
  1. data/.yardopts +0 -1
  2. data/lib/aws/api_config/AutoScaling-2011-01-01.yml +772 -544
  3. data/lib/aws/api_config/CloudFormation-2010-05-15.yml +284 -185
  4. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +458 -738
  5. data/lib/aws/api_config/EC2-2011-12-15.yml +3502 -2653
  6. data/lib/aws/api_config/ELB-2011-08-15.yml +484 -352
  7. data/lib/aws/api_config/IAM-2010-05-08.yml +899 -711
  8. data/lib/aws/api_config/SNS-2010-03-31.yml +235 -167
  9. data/lib/aws/api_config/SQS-2011-10-01.yml +290 -251
  10. data/lib/aws/api_config/STS-2011-06-15.yml +35 -41
  11. data/lib/aws/api_config/SimpleDB-2009-04-15.yml +290 -263
  12. data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +144 -130
  13. data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +697 -1139
  14. data/lib/aws/auto_scaling/activity_collection.rb +1 -1
  15. data/lib/aws/auto_scaling/client.rb +724 -9
  16. data/lib/aws/auto_scaling/errors.rb +1 -5
  17. data/lib/aws/auto_scaling/group.rb +1 -1
  18. data/lib/aws/auto_scaling/group_collection.rb +1 -1
  19. data/lib/aws/auto_scaling/instance_collection.rb +1 -1
  20. data/lib/aws/auto_scaling/launch_configuration.rb +1 -1
  21. data/lib/aws/auto_scaling/launch_configuration_collection.rb +1 -1
  22. data/lib/aws/auto_scaling/notification_configuration_collection.rb +1 -1
  23. data/lib/aws/auto_scaling/request.rb +1 -2
  24. data/lib/aws/auto_scaling/scaling_policy_collection.rb +1 -1
  25. data/lib/aws/auto_scaling/scheduled_action_collection.rb +3 -3
  26. data/lib/aws/auto_scaling/tag_collection.rb +1 -1
  27. data/lib/aws/cloud_formation.rb +1 -18
  28. data/lib/aws/cloud_formation/client.rb +314 -8
  29. data/lib/aws/cloud_formation/errors.rb +1 -5
  30. data/lib/aws/cloud_formation/request.rb +1 -2
  31. data/lib/aws/cloud_formation/stack.rb +4 -3
  32. data/lib/aws/cloud_formation/stack_collection.rb +2 -2
  33. data/lib/aws/cloud_formation/stack_resource_collection.rb +1 -1
  34. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +2 -2
  35. data/lib/aws/cloud_formation/stack_summary_collection.rb +1 -1
  36. data/lib/aws/core.rb +29 -14
  37. data/lib/aws/core/async_handle.rb +11 -12
  38. data/lib/aws/core/client.rb +112 -102
  39. data/lib/aws/core/client/query_json.rb +110 -0
  40. data/lib/aws/core/client/query_xml.rb +122 -0
  41. data/lib/aws/core/data.rb +242 -0
  42. data/lib/aws/core/http/request.rb +7 -4
  43. data/lib/aws/core/lazy_error_classes.rb +60 -38
  44. data/lib/aws/core/option_grammar.rb +1 -0
  45. data/lib/aws/core/policy.rb +2 -1
  46. data/lib/aws/core/resource.rb +38 -33
  47. data/lib/aws/core/response.rb +109 -44
  48. data/lib/aws/core/signature/version_2.rb +42 -0
  49. data/lib/aws/core/signature/version_3.rb +73 -0
  50. data/lib/aws/core/signature/version_3_http.rb +72 -0
  51. data/lib/aws/core/signature/version_4.rb +138 -0
  52. data/lib/aws/core/uri_escape.rb +6 -9
  53. data/lib/aws/core/xml/frame.rb +242 -0
  54. data/lib/aws/core/xml/frame_stack.rb +85 -0
  55. data/lib/aws/core/xml/grammar.rb +299 -0
  56. data/lib/aws/core/xml/parser.rb +70 -0
  57. data/lib/aws/core/xml/root_frame.rb +65 -0
  58. data/lib/aws/core/{configured_xml_grammars.rb → xml/sax_handlers/libxml.rb} +22 -20
  59. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +55 -0
  60. data/lib/aws/core/{authorize_with_session_token.rb → xml/sax_handlers/ox.rb} +19 -7
  61. data/lib/aws/core/{configured_option_grammars.rb → xml/sax_handlers/rexml.rb} +22 -23
  62. data/lib/aws/core/xml/stub.rb +123 -0
  63. data/lib/aws/dynamo_db/batch_get.rb +1 -1
  64. data/lib/aws/dynamo_db/client.rb +796 -14
  65. data/lib/aws/dynamo_db/errors.rb +1 -38
  66. data/lib/aws/dynamo_db/item_collection.rb +29 -28
  67. data/lib/aws/dynamo_db/request.rb +3 -53
  68. data/lib/aws/dynamo_db/table.rb +6 -2
  69. data/lib/aws/ec2/attachment.rb +1 -1
  70. data/lib/aws/ec2/client.rb +3954 -9
  71. data/lib/aws/ec2/dhcp_options.rb +3 -3
  72. data/lib/aws/ec2/errors.rb +10 -4
  73. data/lib/aws/ec2/instance.rb +7 -6
  74. data/lib/aws/ec2/instance_collection.rb +2 -2
  75. data/lib/aws/ec2/key_pair_collection.rb +3 -3
  76. data/lib/aws/ec2/network_acl.rb +4 -2
  77. data/lib/aws/ec2/network_acl/entry.rb +10 -10
  78. data/lib/aws/ec2/network_interface.rb +2 -3
  79. data/lib/aws/ec2/network_interface/attachment.rb +8 -8
  80. data/lib/aws/ec2/permission_collection.rb +3 -3
  81. data/lib/aws/ec2/request.rb +1 -3
  82. data/lib/aws/ec2/resource_tag_collection.rb +4 -8
  83. data/lib/aws/ec2/route_table.rb +3 -2
  84. data/lib/aws/ec2/route_table/route.rb +7 -7
  85. data/lib/aws/ec2/security_group.rb +2 -2
  86. data/lib/aws/ec2/security_group/egress_ip_permission_collection.rb +16 -5
  87. data/lib/aws/ec2/security_group/ingress_ip_permission_collection.rb +4 -3
  88. data/lib/aws/ec2/security_group/ip_permission.rb +1 -2
  89. data/lib/aws/ec2/snapshot_collection.rb +6 -3
  90. data/lib/aws/ec2/subnet.rb +1 -1
  91. data/lib/aws/ec2/volume.rb +1 -3
  92. data/lib/aws/ec2/volume_collection.rb +2 -0
  93. data/lib/aws/elb/availability_zone_collection.rb +2 -2
  94. data/lib/aws/elb/backend_server_policy_collection.rb +1 -1
  95. data/lib/aws/elb/client.rb +513 -9
  96. data/lib/aws/elb/errors.rb +2 -6
  97. data/lib/aws/elb/instance_collection.rb +2 -2
  98. data/lib/aws/elb/request.rb +1 -1
  99. data/lib/aws/errors.rb +61 -74
  100. data/lib/aws/iam.rb +2 -3
  101. data/lib/aws/iam/client.rb +1178 -10
  102. data/lib/aws/iam/collection.rb +2 -1
  103. data/lib/aws/iam/errors.rb +1 -6
  104. data/lib/aws/iam/group.rb +8 -9
  105. data/lib/aws/iam/request.rb +1 -1
  106. data/lib/aws/iam/server_certificate_collection.rb +8 -5
  107. data/lib/aws/iam/signing_certificate.rb +1 -1
  108. data/lib/aws/iam/user.rb +2 -2
  109. data/lib/aws/iam/user_policy.rb +3 -2
  110. data/lib/aws/rails.rb +1 -2
  111. data/lib/aws/record.rb +3 -3
  112. data/lib/aws/record/abstract_base.rb +0 -3
  113. data/lib/aws/record/attributes.rb +7 -7
  114. data/lib/aws/record/model.rb +19 -19
  115. data/lib/aws/record/model/finder_methods.rb +7 -7
  116. data/lib/aws/s3/bucket.rb +7 -2
  117. data/lib/aws/s3/client.rb +391 -398
  118. data/lib/aws/s3/client/xml.rb +44 -71
  119. data/lib/aws/s3/data_options.rb +3 -2
  120. data/lib/aws/s3/errors.rb +8 -11
  121. data/lib/aws/s3/multipart_upload_collection.rb +1 -3
  122. data/lib/aws/s3/object_collection.rb +2 -1
  123. data/lib/aws/s3/object_metadata.rb +2 -2
  124. data/lib/aws/s3/paginated_collection.rb +2 -2
  125. data/lib/aws/s3/prefix_and_delimiter_collection.rb +1 -1
  126. data/lib/aws/s3/presigned_post.rb +18 -17
  127. data/lib/aws/s3/request.rb +4 -3
  128. data/lib/aws/s3/s3_object.rb +8 -10
  129. data/lib/aws/simple_db/attribute.rb +2 -2
  130. data/lib/aws/simple_db/attribute_collection.rb +14 -4
  131. data/lib/aws/simple_db/client.rb +313 -14
  132. data/lib/aws/simple_db/domain.rb +1 -1
  133. data/lib/aws/simple_db/domain_collection.rb +4 -4
  134. data/lib/aws/simple_db/domain_metadata.rb +1 -1
  135. data/lib/aws/simple_db/errors.rb +14 -2
  136. data/lib/aws/simple_db/expect_condition_option.rb +1 -1
  137. data/lib/aws/simple_db/item.rb +1 -1
  138. data/lib/aws/simple_db/item_collection.rb +9 -9
  139. data/lib/aws/simple_db/item_data.rb +9 -6
  140. data/lib/aws/simple_db/request.rb +1 -1
  141. data/lib/aws/simple_email_service.rb +8 -7
  142. data/lib/aws/simple_email_service/client.rb +174 -9
  143. data/lib/aws/simple_email_service/email_address_collection.rb +0 -1
  144. data/lib/aws/simple_email_service/errors.rb +1 -5
  145. data/lib/aws/simple_email_service/quotas.rb +8 -6
  146. data/lib/aws/simple_email_service/request.rb +7 -1
  147. data/lib/aws/simple_workflow/client.rb +1383 -6
  148. data/lib/aws/simple_workflow/decision_task.rb +1 -3
  149. data/lib/aws/simple_workflow/errors.rb +1 -38
  150. data/lib/aws/simple_workflow/history_event_collection.rb +2 -2
  151. data/lib/aws/simple_workflow/request.rb +5 -49
  152. data/lib/aws/simple_workflow/type.rb +1 -1
  153. data/lib/aws/simple_workflow/type_collection.rb +4 -3
  154. data/lib/aws/simple_workflow/workflow_execution_collection.rb +2 -2
  155. data/lib/aws/sns/client.rb +345 -9
  156. data/lib/aws/sns/errors.rb +1 -5
  157. data/lib/aws/sns/request.rb +1 -2
  158. data/lib/aws/sns/subscription_collection.rb +2 -2
  159. data/lib/aws/sns/topic.rb +15 -14
  160. data/lib/aws/sns/topic_collection.rb +1 -1
  161. data/lib/aws/sqs/client.rb +334 -9
  162. data/lib/aws/sqs/errors.rb +1 -6
  163. data/lib/aws/sqs/queue.rb +20 -21
  164. data/lib/aws/sqs/queue_collection.rb +3 -3
  165. data/lib/aws/sqs/request.rb +2 -2
  166. data/lib/aws/sts.rb +8 -10
  167. data/lib/aws/sts/client.rb +67 -10
  168. data/lib/aws/sts/errors.rb +1 -5
  169. data/lib/aws/sts/request.rb +1 -1
  170. data/lib/user.rb +49 -0
  171. metadata +21 -28
  172. data/lib/aws/auto_scaling/client/xml.rb +0 -32
  173. data/lib/aws/cloud_formation/client/xml.rb +0 -32
  174. data/lib/aws/core/api_config.rb +0 -44
  175. data/lib/aws/core/authorize_v2.rb +0 -39
  176. data/lib/aws/core/authorize_v3.rb +0 -38
  177. data/lib/aws/core/authorize_v4.rb +0 -149
  178. data/lib/aws/core/configured_client_methods.rb +0 -76
  179. data/lib/aws/core/configured_grammars.rb +0 -63
  180. data/lib/aws/core/configured_json_client_methods.rb +0 -74
  181. data/lib/aws/core/ignore_result_element.rb +0 -34
  182. data/lib/aws/core/json_client.rb +0 -41
  183. data/lib/aws/core/xml_grammar.rb +0 -957
  184. data/lib/aws/ec2/client/xml.rb +0 -175
  185. data/lib/aws/elb/client/xml.rb +0 -33
  186. data/lib/aws/elb/listener_spec.rb +0 -14
  187. data/lib/aws/iam/client/xml.rb +0 -34
  188. data/lib/aws/simple_db/client/options.rb +0 -32
  189. data/lib/aws/simple_db/client/xml.rb +0 -63
  190. data/lib/aws/simple_email_service/client/xml.rb +0 -34
  191. data/lib/aws/sns/client/xml.rb +0 -34
  192. data/lib/aws/sqs/client/xml.rb +0 -33
  193. data/lib/aws/sts/client/xml.rb +0 -34
@@ -1,32 +0,0 @@
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 AutoScaling
16
- class Client < Core::Client
17
- module XML
18
-
19
- include Core::ConfiguredXmlGrammars
20
-
21
- extend Core::IgnoreResultElement
22
-
23
- BaseError = Core::XmlGrammar.customize do
24
- element("Error") { ignore }
25
- end
26
-
27
- define_configured_grammars
28
-
29
- end
30
- end
31
- end
32
- end
@@ -1,32 +0,0 @@
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 CloudFormation
16
- class Client < Core::Client
17
- # @private
18
- module XML
19
-
20
- include Core::ConfiguredXmlGrammars
21
- extend Core::IgnoreResultElement
22
-
23
- BaseError = Core::XmlGrammar.customize do
24
- element("Error") { ignore }
25
- end
26
-
27
- define_configured_grammars
28
-
29
- end
30
- end
31
- end
32
- end
@@ -1,44 +0,0 @@
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 'yaml'
15
- require 'pathname'
16
-
17
- module AWS
18
- module Core
19
-
20
- # @private
21
- module ApiConfig
22
-
23
- include Naming
24
-
25
- protected
26
- def api_config
27
-
28
- config_file = $:.map do |load_path|
29
- if config_dir = Pathname.new(load_path) +
30
- "aws" + "api_config" and
31
- config_dir.directory?
32
- config_dir.children.select do |child|
33
- child.basename.to_s =~ /^#{service_name}/
34
- end.sort.last
35
- end
36
- end.compact.sort.last
37
-
38
- YAML.load(config_file.read)
39
-
40
- end
41
-
42
- end
43
- end
44
- end
@@ -1,39 +0,0 @@
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
- module Core
16
-
17
- # Mixed into clients that use signature v2 authorization.
18
- # @private
19
- module AuthorizeV2
20
-
21
- def string_to_sign
22
- parts = [http_method,
23
- host,
24
- path,
25
- params.sort.collect { |p| p.encoded }.join('&')]
26
- parts.join("\n")
27
- end
28
-
29
- def add_authorization! signer
30
- self.access_key_id = signer.access_key_id
31
- add_param('AWSAccessKeyId', access_key_id)
32
- add_param('SignatureVersion', '2')
33
- add_param('SignatureMethod', 'HmacSHA256')
34
- add_param('Signature', signer.sign(string_to_sign))
35
- end
36
-
37
- end
38
- end
39
- end
@@ -1,38 +0,0 @@
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 'time'
15
-
16
- module AWS
17
- module Core
18
-
19
- # Mixed into clients that use signature v3 authorization.
20
- # @private
21
- module AuthorizeV3
22
-
23
- def string_to_sign
24
- headers['date'] ||= Time.now.rfc822
25
- end
26
-
27
- def add_authorization! signer
28
- self.access_key_id = signer.access_key_id
29
- parts = []
30
- parts << "AWS3-HTTPS AWSAccessKeyId=#{access_key_id}"
31
- parts << "Algorithm=HmacSHA256"
32
- parts << "Signature=#{signer.sign(string_to_sign)}"
33
- headers['x-amzn-authorization'] = parts.join(',')
34
- end
35
-
36
- end
37
- end
38
- end
@@ -1,149 +0,0 @@
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
- # - docs don't match in task 2 between the sample and the detailed
15
- # instructions, is the canonical request hex/hashed or just hexed?
16
- # - the hashing method is never defined, is it a md5 hash?
17
- # - the documentation does not discuss how to add the authorization
18
- # to your get or post request, 2 simple examples are provided, but with
19
- # no information about how to join the parts in the post request
20
- # (not clear about spaces vs newlines, etc)
21
- # - document does not displ
22
-
23
- require 'time'
24
- require 'openssl'
25
- require 'digest'
26
-
27
- # bug resigning
28
-
29
- module AWS
30
- module Core
31
-
32
- # Mixed into clients that use signature v4 authorization.
33
- module AuthorizeV4
34
-
35
- def add_authorization! signer
36
- self.access_key_id = signer.access_key_id
37
- datetime = Time.now.utc.strftime("%Y%m%dT%H%M%SZ")
38
- headers['content-type'] ||= 'application/x-www-form-urlencoded'
39
- headers['host'] = host
40
- headers['x-amz-date'] = datetime
41
- headers['x-amz-security-token'] = signer.session_token if signer.session_token
42
- headers['authorization'] = authorization(signer, datetime)
43
- end
44
-
45
- protected
46
-
47
- def authorization signer, datetime
48
- parts = []
49
- parts << "AWS4-HMAC-SHA256 Credential=#{access_key_id}/#{credential_string(datetime)}"
50
- parts << "SignedHeaders=#{signed_headers}"
51
- parts << "Signature=#{hex16(signature(signer, datetime))}"
52
- parts.join(', ')
53
- end
54
-
55
- def signature signer, datetime
56
- k_secret = signer.secret_access_key
57
- k_date = hmac("AWS4" + k_secret, datetime[0,8])
58
- k_region = hmac(k_date, region)
59
- k_service = hmac(k_region, service)
60
- k_credentials = hmac(k_service, 'aws4_request')
61
- hmac(k_credentials, string_to_sign(datetime))
62
- end
63
-
64
- def string_to_sign datetime
65
- parts = []
66
- parts << 'AWS4-HMAC-SHA256'
67
- parts << datetime
68
- parts << credential_string(datetime)
69
- parts << hex16(hash(canonical_request))
70
- parts.join("\n")
71
- end
72
-
73
- def credential_string datetime
74
- parts = []
75
- parts << datetime[0,8]
76
- parts << region
77
- parts << service
78
- parts << 'aws4_request'
79
- parts.join("/")
80
- end
81
-
82
- def canonical_request
83
- parts = []
84
- parts << action_name
85
- parts << canonical_uri
86
- parts << canonical_querystring
87
- parts << canonical_headers + "\n"
88
- parts << signed_headers
89
- parts << hex16(hash(payload))
90
- parts.join("\n")
91
- end
92
-
93
- def service
94
- # this method is implemented in the request class for each service
95
- raise NotImplementedError
96
- end
97
-
98
- def action_name
99
- http_method.to_s.upcase
100
- end
101
-
102
- def canonical_uri
103
- path
104
- end
105
-
106
- def payload
107
- body || ''
108
- end
109
-
110
- def canonical_querystring
111
- http_method.to_s.upcase == 'GET' ? url_encoded_params : ''
112
- end
113
-
114
- def signed_headers
115
- to_sign = headers.keys.map{|k| k.to_s.downcase }
116
- to_sign.delete('authorization')
117
- to_sign.sort.join(";")
118
- end
119
-
120
- def canonical_headers
121
- headers = []
122
- self.headers.each_pair do |k,v|
123
- header = [k.to_s.downcase, v]
124
- headers << header unless header.first == 'authorization'
125
- end
126
- headers = headers.sort_by(&:first)
127
- headers.map{|k,v| "#{k}:#{canonical_header_values(v)}" }.join("\n")
128
- end
129
-
130
- def canonical_header_values values
131
- values = [values] unless values.is_a?(Array)
132
- values.map(&:to_s).map(&:strip).join(',')
133
- end
134
-
135
- def hex16 string
136
- string.unpack('H*').first
137
- end
138
-
139
- def hmac key, string
140
- OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('sha256'), key, string)
141
- end
142
-
143
- def hash string
144
- Digest::SHA256.digest(string)
145
- end
146
-
147
- end
148
- end
149
- end
@@ -1,76 +0,0 @@
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
- module Core
16
-
17
- # @private
18
- module ConfiguredClientMethods
19
-
20
- # @private
21
- module ClassMethods
22
-
23
- include ApiConfig
24
-
25
- def configure_client
26
-
27
- super
28
-
29
- unless self::XML.include?(ConfiguredXmlGrammars)
30
- self::XML.module_eval do
31
- include(ConfiguredXmlGrammars)
32
- define_configured_grammars
33
- end
34
- end
35
-
36
- unless self::Options.include?(ConfiguredOptionGrammars)
37
- self::Options.module_eval do
38
- include(ConfiguredOptionGrammars)
39
- define_configured_grammars
40
- end
41
- end
42
-
43
- api_config[:operations].each do |name, customizations|
44
- option_grammar = self::Options.operation_grammar(name)
45
- add_client_request_method(Inflection.ruby_name(name).to_sym,
46
- :xml_grammar =>
47
- self::XML.operation_grammar(name)) do
48
- configure_request do |request, options|
49
- request.add_param("Action", name)
50
- option_grammar.request_params(options).each do |param|
51
- request.add_param(param)
52
- end
53
- end
54
- end
55
- end
56
-
57
- end
58
-
59
- def operation_xml_grammar(name)
60
- customized_name = "Customized#{name}"
61
- if self::XML.const_defined?(customized_name)
62
- self::XML.const_get(customized_name)
63
- else
64
- self::XML.const_get(name)
65
- end
66
- end
67
-
68
- end
69
-
70
- def self.included(mod)
71
- mod.extend(ClassMethods)
72
- end
73
-
74
- end
75
- end
76
- end
@@ -1,63 +0,0 @@
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
- module Core
16
-
17
- # @private
18
- module ConfiguredGrammars
19
-
20
- # @private
21
- module ClassMethods
22
-
23
- include ApiConfig
24
-
25
- def base_grammar
26
- raise NotImplementedError
27
- end
28
-
29
- def operation_grammar(name)
30
- customized_name = "Customized#{name}"
31
- if const_defined?(customized_name)
32
- const_get(customized_name)
33
- else
34
- const_get(name)
35
- end
36
- end
37
-
38
- def input_or_output
39
- raise NotImplementedError
40
- end
41
-
42
- def process_customizations(name, customizations)
43
- customizations
44
- end
45
-
46
- def define_configured_grammars
47
- api_config[:operations].each do |name, data|
48
- customizations = process_customizations(name,
49
- data[input_or_output])
50
- const_set(name,
51
- base_grammar.customize(customizations))
52
- # BaseResponse.customize([{
53
- # "#{name}Result" =>
54
- # [:ignore, *data[:output]]
55
- # }]))
56
- end
57
- end
58
-
59
- end
60
-
61
- end
62
- end
63
- end