aws-sdk 1.1.3 → 1.1.4
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.
- data/ca-bundle.crt +2 -348
- data/lib/aws.rb +24 -49
- data/lib/aws/{common.rb → core.rb} +120 -9
- data/lib/aws/{api_config.rb → core/api_config.rb} +19 -20
- data/lib/aws/core/api_config_transform.rb +36 -0
- data/lib/aws/core/async_handle.rb +91 -0
- data/lib/aws/core/authorize_v2.rb +39 -0
- data/lib/aws/{authorize_v3.rb → core/authorize_v3.rb} +16 -15
- data/lib/aws/{api_config_transform.rb → core/authorize_with_session_token.rb} +9 -12
- data/lib/aws/core/autoloader.rb +64 -0
- data/lib/aws/core/cacheable.rb +78 -0
- data/lib/aws/core/client.rb +471 -0
- data/lib/aws/core/client_logging.rb +125 -0
- data/lib/aws/core/collections.rb +229 -0
- data/lib/aws/core/configuration.rb +358 -0
- data/lib/aws/core/configured_client_methods.rb +76 -0
- data/lib/aws/core/configured_grammars.rb +63 -0
- data/lib/aws/{configured_option_grammars.rb → core/configured_option_grammars.rb} +18 -20
- data/lib/aws/{configured_xml_grammars.rb → core/configured_xml_grammars.rb} +19 -21
- data/lib/aws/core/default_signer.rb +67 -0
- data/lib/aws/core/http/curb_handler.rb +129 -0
- data/lib/aws/core/http/handler.rb +77 -0
- data/lib/aws/core/http/httparty_handler.rb +113 -0
- data/lib/aws/core/http/net_http_handler.rb +124 -0
- data/lib/aws/core/http/request.rb +207 -0
- data/lib/aws/core/http/response.rb +73 -0
- data/lib/aws/{ignore_result_element.rb → core/ignore_result_element.rb} +14 -18
- data/lib/aws/core/indifferent_hash.rb +88 -0
- data/lib/aws/core/inflection.rb +47 -0
- data/lib/aws/core/lazy_error_classes.rb +62 -0
- data/lib/aws/{uri_escape.rb → core/meta_utils.rb} +24 -23
- data/lib/aws/core/model.rb +57 -0
- data/lib/aws/{authorize_with_session_token.rb → core/naming.rb} +9 -8
- data/lib/aws/core/option_grammar.rb +562 -0
- data/lib/aws/core/policy.rb +914 -0
- data/lib/aws/core/resource.rb +380 -0
- data/lib/aws/core/resource_cache.rb +40 -0
- data/lib/aws/core/response.rb +125 -0
- data/lib/aws/core/response_cache.rb +50 -0
- data/lib/aws/core/service_interface.rb +60 -0
- data/lib/aws/core/uri_escape.rb +46 -0
- data/lib/aws/core/xml_grammar.rb +926 -0
- data/lib/aws/ec2.rb +47 -16
- data/lib/aws/ec2/attachment.rb +0 -2
- data/lib/aws/ec2/attachment_collection.rb +1 -6
- data/lib/aws/ec2/availability_zone.rb +0 -2
- data/lib/aws/ec2/availability_zone_collection.rb +0 -3
- data/lib/aws/ec2/client.rb +6 -9
- data/lib/aws/ec2/client/xml.rb +3 -6
- data/lib/aws/ec2/collection.rb +1 -4
- data/lib/aws/ec2/config.rb +18 -0
- data/lib/aws/ec2/elastic_ip.rb +0 -2
- data/lib/aws/ec2/elastic_ip_collection.rb +0 -4
- data/lib/aws/ec2/errors.rb +1 -4
- data/lib/aws/ec2/has_permissions.rb +0 -2
- data/lib/aws/ec2/image.rb +0 -5
- data/lib/aws/ec2/image_collection.rb +0 -6
- data/lib/aws/ec2/instance.rb +23 -9
- data/lib/aws/ec2/instance_collection.rb +85 -22
- data/lib/aws/ec2/key_pair.rb +0 -2
- data/lib/aws/ec2/key_pair_collection.rb +1 -4
- data/lib/aws/ec2/permission_collection.rb +2 -5
- data/lib/aws/ec2/region.rb +0 -2
- data/lib/aws/ec2/region_collection.rb +0 -4
- data/lib/aws/ec2/request.rb +4 -9
- data/lib/aws/ec2/reserved_instances.rb +0 -3
- data/lib/aws/ec2/reserved_instances_collection.rb +0 -4
- data/lib/aws/ec2/reserved_instances_offering.rb +0 -3
- data/lib/aws/ec2/reserved_instances_offering_collection.rb +0 -4
- data/lib/aws/ec2/resource.rb +3 -5
- data/lib/aws/ec2/resource_tag_collection.rb +1 -6
- data/lib/aws/ec2/security_group.rb +204 -72
- data/lib/aws/ec2/security_group/egress_ip_permission_collection.rb +53 -0
- data/lib/aws/ec2/security_group/ip_permission.rb +92 -10
- data/lib/aws/ec2/security_group/ip_permission_collection.rb +14 -15
- data/lib/aws/ec2/security_group_collection.rb +11 -8
- data/lib/aws/ec2/snapshot.rb +0 -4
- data/lib/aws/ec2/snapshot_collection.rb +0 -4
- data/lib/aws/ec2/tag.rb +0 -3
- data/lib/aws/ec2/tag_collection.rb +1 -8
- data/lib/aws/ec2/tagged_item.rb +1 -3
- data/lib/aws/ec2/volume.rb +0 -6
- data/lib/aws/ec2/volume_collection.rb +0 -4
- data/lib/aws/errors.rb +0 -3
- data/lib/aws/iam.rb +33 -12
- data/lib/aws/iam/access_key.rb +0 -3
- data/lib/aws/iam/access_key_collection.rb +0 -3
- data/lib/aws/iam/account_alias_collection.rb +0 -2
- data/lib/aws/iam/client.rb +6 -8
- data/lib/aws/iam/client/xml.rb +4 -8
- data/lib/aws/iam/collection.rb +2 -5
- data/lib/aws/iam/config.rb +18 -0
- data/lib/aws/iam/errors.rb +2 -4
- data/lib/aws/iam/group.rb +0 -5
- data/lib/aws/iam/group_collection.rb +0 -3
- data/lib/aws/iam/group_policy_collection.rb +0 -2
- data/lib/aws/iam/group_user_collection.rb +1 -4
- data/lib/aws/iam/login_profile.rb +0 -2
- data/lib/aws/iam/mfa_device.rb +1 -3
- data/lib/aws/iam/mfa_device_collection.rb +0 -3
- data/lib/aws/iam/policy.rb +2 -4
- data/lib/aws/iam/policy_collection.rb +0 -3
- data/lib/aws/iam/request.rb +3 -7
- data/lib/aws/iam/resource.rb +1 -4
- data/lib/aws/iam/server_certificate.rb +0 -2
- data/lib/aws/iam/server_certificate_collection.rb +0 -3
- data/lib/aws/iam/signing_certificate.rb +0 -2
- data/lib/aws/iam/signing_certificate_collection.rb +0 -3
- data/lib/aws/iam/user.rb +0 -7
- data/lib/aws/iam/user_collection.rb +0 -3
- data/lib/aws/iam/user_group_collection.rb +0 -3
- data/lib/aws/iam/user_policy.rb +0 -2
- data/lib/aws/iam/user_policy_collection.rb +0 -3
- data/lib/aws/rails.rb +5 -4
- data/lib/aws/record.rb +4 -1
- data/lib/aws/record/base.rb +3 -2
- data/lib/aws/record/errors.rb +1 -3
- data/lib/aws/s3.rb +31 -6
- data/lib/aws/s3/access_control_list.rb +0 -2
- data/lib/aws/s3/acl_object.rb +10 -12
- data/lib/aws/s3/bucket.rb +1 -9
- data/lib/aws/s3/bucket_collection.rb +2 -5
- data/lib/aws/s3/bucket_version_collection.rb +1 -5
- data/lib/aws/s3/client.rb +34 -37
- data/lib/aws/s3/client/xml.rb +11 -14
- data/lib/aws/{resource_cache.rb → s3/config.rb} +6 -20
- data/lib/aws/s3/errors.rb +6 -7
- data/lib/aws/s3/multipart_upload.rb +1 -4
- data/lib/aws/s3/multipart_upload_collection.rb +1 -6
- data/lib/aws/s3/object_collection.rb +1 -5
- data/lib/aws/s3/object_metadata.rb +1 -3
- data/lib/aws/s3/object_upload_collection.rb +1 -7
- data/lib/aws/s3/object_version.rb +1 -4
- data/lib/aws/s3/object_version_collection.rb +1 -4
- data/lib/aws/s3/policy.rb +3 -5
- data/lib/aws/s3/prefix_and_delimiter_collection.rb +0 -2
- data/lib/aws/s3/prefixed_collection.rb +0 -2
- data/lib/aws/s3/presigned_post.rb +1 -3
- data/lib/aws/s3/request.rb +2 -5
- data/lib/aws/s3/s3_object.rb +1 -8
- data/lib/aws/s3/tree.rb +8 -6
- data/lib/aws/s3/tree/branch_node.rb +0 -3
- data/lib/aws/s3/tree/child_collection.rb +1 -5
- data/lib/aws/s3/tree/leaf_node.rb +0 -5
- data/lib/aws/s3/tree/parent.rb +1 -4
- data/lib/aws/s3/uploaded_part.rb +1 -3
- data/lib/aws/s3/uploaded_part_collection.rb +1 -5
- data/lib/aws/simple_db.rb +21 -6
- data/lib/aws/simple_db/attribute.rb +1 -6
- data/lib/aws/simple_db/attribute_collection.rb +1 -7
- data/lib/aws/simple_db/client.rb +7 -9
- data/lib/aws/simple_db/client/options.rb +2 -4
- data/lib/aws/simple_db/client/xml.rb +5 -10
- data/lib/aws/{naming.rb → simple_db/config.rb} +3 -14
- data/lib/aws/simple_db/delete_attributes.rb +0 -2
- data/lib/aws/simple_db/domain.rb +1 -6
- data/lib/aws/simple_db/domain_collection.rb +1 -4
- data/lib/aws/simple_db/domain_metadata.rb +1 -3
- data/lib/aws/simple_db/errors.rb +1 -4
- data/lib/aws/simple_db/item.rb +1 -7
- data/lib/aws/simple_db/item_collection.rb +22 -23
- data/lib/aws/simple_db/put_attributes.rb +0 -2
- data/lib/aws/simple_db/request.rb +3 -7
- data/lib/aws/simple_email_service.rb +11 -6
- data/lib/aws/simple_email_service/client.rb +7 -9
- data/lib/aws/simple_email_service/client/options.rb +3 -6
- data/lib/aws/simple_email_service/client/xml.rb +4 -8
- data/lib/aws/simple_email_service/config.rb +19 -0
- data/lib/aws/simple_email_service/email_address_collection.rb +1 -3
- data/lib/aws/simple_email_service/errors.rb +1 -4
- data/lib/aws/simple_email_service/quotas.rb +1 -3
- data/lib/aws/simple_email_service/request.rb +3 -7
- data/lib/aws/sns.rb +15 -8
- data/lib/aws/sns/client.rb +7 -8
- data/lib/aws/sns/client/options.rb +3 -6
- data/lib/aws/sns/client/xml.rb +4 -8
- data/lib/aws/sns/config.rb +18 -0
- data/lib/aws/sns/errors.rb +1 -4
- data/lib/aws/sns/policy.rb +3 -5
- data/lib/aws/sns/request.rb +4 -9
- data/lib/aws/sns/subscription.rb +1 -5
- data/lib/aws/sns/subscription_collection.rb +1 -5
- data/lib/aws/sns/topic.rb +1 -6
- data/lib/aws/sns/topic_collection.rb +1 -4
- data/lib/aws/sns/topic_subscription_collection.rb +1 -4
- data/lib/aws/sqs.rb +14 -5
- data/lib/aws/sqs/client.rb +6 -9
- data/lib/aws/sqs/client/xml.rb +4 -7
- data/lib/aws/sqs/config.rb +18 -0
- data/lib/aws/sqs/errors.rb +1 -4
- data/lib/aws/sqs/policy.rb +3 -5
- data/lib/aws/sqs/queue.rb +2 -7
- data/lib/aws/sqs/queue_collection.rb +4 -5
- data/lib/aws/sqs/received_message.rb +1 -3
- data/lib/aws/sqs/received_sns_message.rb +2 -2
- data/lib/aws/sqs/request.rb +4 -7
- data/lib/aws/sts.rb +12 -6
- data/lib/aws/sts/client.rb +6 -8
- data/lib/aws/sts/client/xml.rb +4 -8
- data/lib/aws/sts/config.rb +18 -0
- data/lib/aws/sts/errors.rb +1 -4
- data/lib/aws/sts/federated_session.rb +0 -2
- data/lib/aws/sts/policy.rb +3 -5
- data/lib/aws/sts/request.rb +3 -7
- metadata +60 -50
- data/lib/aws/async_handle.rb +0 -90
- data/lib/aws/authorize_v2.rb +0 -37
- data/lib/aws/base_client.rb +0 -488
- data/lib/aws/cacheable.rb +0 -79
- data/lib/aws/client_logging.rb +0 -122
- data/lib/aws/collections.rb +0 -230
- data/lib/aws/configuration.rb +0 -357
- data/lib/aws/configured_client_methods.rb +0 -81
- data/lib/aws/configured_grammars.rb +0 -65
- data/lib/aws/default_signer.rb +0 -65
- data/lib/aws/http/curb_handler.rb +0 -127
- data/lib/aws/http/handler.rb +0 -77
- data/lib/aws/http/httparty_handler.rb +0 -103
- data/lib/aws/http/request.rb +0 -165
- data/lib/aws/http/request_param.rb +0 -64
- data/lib/aws/http/response.rb +0 -72
- data/lib/aws/indifferent_hash.rb +0 -86
- data/lib/aws/inflection.rb +0 -46
- data/lib/aws/lazy_error_classes.rb +0 -64
- data/lib/aws/meta_utils.rb +0 -43
- data/lib/aws/model.rb +0 -57
- data/lib/aws/option_grammar.rb +0 -565
- data/lib/aws/policy.rb +0 -914
- data/lib/aws/resource.rb +0 -381
- data/lib/aws/response.rb +0 -125
- data/lib/aws/response_cache.rb +0 -50
- data/lib/aws/service_interface.rb +0 -60
- data/lib/aws/xml_grammar.rb +0 -925
data/lib/aws/http/request.rb
DELETED
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
# Copyright 2011 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 'stringio'
|
|
15
|
-
require 'aws/http/request_param'
|
|
16
|
-
|
|
17
|
-
module AWS
|
|
18
|
-
module Http
|
|
19
|
-
|
|
20
|
-
# Base class for all service reqeusts.
|
|
21
|
-
class Request
|
|
22
|
-
|
|
23
|
-
# Returns a new empty http request object.
|
|
24
|
-
def initialize
|
|
25
|
-
@host = nil
|
|
26
|
-
@http_method = 'POST'
|
|
27
|
-
@path = '/'
|
|
28
|
-
@headers = CaseInsensitiveHash.new
|
|
29
|
-
@params = []
|
|
30
|
-
@use_ssl = true
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
# @return [String] hostname of the request
|
|
34
|
-
attr_accessor :host
|
|
35
|
-
|
|
36
|
-
# @return [CaseInsensitiveHash] request headers
|
|
37
|
-
attr_reader :headers
|
|
38
|
-
|
|
39
|
-
# @return [Array] An array of request params, each param responds to
|
|
40
|
-
# #name and #value.
|
|
41
|
-
attr_reader :params
|
|
42
|
-
|
|
43
|
-
# @return [String] GET, PUT POST, HEAD or DELETE, defaults to POST
|
|
44
|
-
attr_accessor :http_method
|
|
45
|
-
|
|
46
|
-
# @return [String] path of the request URI, defaults to /
|
|
47
|
-
attr_reader :path
|
|
48
|
-
|
|
49
|
-
# @return [String] the AWS access key ID used to authorize the
|
|
50
|
-
# request
|
|
51
|
-
attr_accessor :access_key_id
|
|
52
|
-
|
|
53
|
-
# @return [nil, URI] The URI to the proxy server requests are
|
|
54
|
-
# sent through if configured. Returns nil if there is no proxy.
|
|
55
|
-
attr_accessor :proxy_uri
|
|
56
|
-
|
|
57
|
-
# @param [Boolean] ssl If the request should be sent over ssl or not.
|
|
58
|
-
def use_ssl= use_ssl
|
|
59
|
-
@use_ssl = use_ssl
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
# @return [Boolean] If this request should be sent over ssl or not.
|
|
63
|
-
def use_ssl?
|
|
64
|
-
@use_ssl
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
# @param [Boolean] verify_peer If the client should verify the
|
|
68
|
-
# peer certificate or not.
|
|
69
|
-
def ssl_verify_peer=(verify_peer)
|
|
70
|
-
@ssl_verify_peer = verify_peer
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
# @return [Boolean] If the client should verify the peer
|
|
74
|
-
# certificate or not.
|
|
75
|
-
def ssl_verify_peer?
|
|
76
|
-
@ssl_verify_peer
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
# @param [String] ca_file Path to a bundle of CA certs in PEM
|
|
80
|
-
# format; the HTTP handler should use this to verify all HTTPS
|
|
81
|
-
# requests if {#ssl_verify_peer?} is true.
|
|
82
|
-
def ssl_ca_file=(ca_file)
|
|
83
|
-
@ssl_ca_file = ca_file
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
# @return [String] Path to a bundle of CA certs in PEM format;
|
|
87
|
-
# the HTTP handler should use this to verify all HTTPS
|
|
88
|
-
# requests if {#ssl_verify_peer?} is true.
|
|
89
|
-
def ssl_ca_file
|
|
90
|
-
@ssl_ca_file
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
# Adds a request param.
|
|
94
|
-
#
|
|
95
|
-
# @overload add_param(param_name, param_value = nil)
|
|
96
|
-
# Add a param (name/value)
|
|
97
|
-
# @param [String] param_name
|
|
98
|
-
# @param [String] param_value Leave blank for sub resources
|
|
99
|
-
#
|
|
100
|
-
# @overload add_param(param_obj)
|
|
101
|
-
# Add a param (object)
|
|
102
|
-
# @param [Param] param_obj
|
|
103
|
-
#
|
|
104
|
-
def add_param name_or_param, value = nil
|
|
105
|
-
if name_or_param.kind_of?(Param)
|
|
106
|
-
@params << name_or_param
|
|
107
|
-
else
|
|
108
|
-
@params << Param.new(name_or_param, value)
|
|
109
|
-
end
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
# @private
|
|
113
|
-
def get_param param_name
|
|
114
|
-
@params.detect{|p| p.name == param_name } ||
|
|
115
|
-
raise("undefined param #{param_name}")
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
# @return [String] the request uri
|
|
119
|
-
def uri
|
|
120
|
-
querystring ? "#{path}?#{querystring}" : path
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
# @return [String] Returns the request params url encoded, or nil if
|
|
124
|
-
# this request has no params.
|
|
125
|
-
def url_encoded_params
|
|
126
|
-
if @params.empty?
|
|
127
|
-
nil
|
|
128
|
-
else
|
|
129
|
-
@params.sort.collect{|p| p.encoded }.join('&')
|
|
130
|
-
end
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
# @return [String, nil] Returns the requesty querystring.
|
|
134
|
-
def querystring
|
|
135
|
-
nil
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
# @return [String, nil] Returns the request body.
|
|
139
|
-
def body
|
|
140
|
-
url_encoded_params
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
# @private
|
|
144
|
-
class CaseInsensitiveHash < Hash
|
|
145
|
-
|
|
146
|
-
def []= key, value
|
|
147
|
-
super(key.to_s.downcase, value)
|
|
148
|
-
end
|
|
149
|
-
|
|
150
|
-
def [] key
|
|
151
|
-
super(key.to_s.downcase)
|
|
152
|
-
end
|
|
153
|
-
|
|
154
|
-
def has_key?(key)
|
|
155
|
-
super(key.to_s.downcase)
|
|
156
|
-
end
|
|
157
|
-
alias_method :key?, :has_key?
|
|
158
|
-
alias_method :include?, :has_key?
|
|
159
|
-
alias_method :member?, :has_key?
|
|
160
|
-
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
end
|
|
164
|
-
end
|
|
165
|
-
end
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
# Copyright 2011 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/uri_escape'
|
|
15
|
-
|
|
16
|
-
module AWS
|
|
17
|
-
module Http
|
|
18
|
-
class Request
|
|
19
|
-
|
|
20
|
-
# Represents a single request paramater. Some services accept this
|
|
21
|
-
# in a form encoded body string, others as query parameters.
|
|
22
|
-
# It is up to each service's Request class to determine how to
|
|
23
|
-
# consume these params.
|
|
24
|
-
# @private
|
|
25
|
-
class Param
|
|
26
|
-
|
|
27
|
-
include UriEscape
|
|
28
|
-
|
|
29
|
-
attr_accessor :name, :value
|
|
30
|
-
|
|
31
|
-
def initialize name, value = nil
|
|
32
|
-
@name = name
|
|
33
|
-
@value = value
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def <=> other
|
|
37
|
-
@name <=> other.name
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def to_s
|
|
41
|
-
if value
|
|
42
|
-
"#{name}=#{value}"
|
|
43
|
-
else
|
|
44
|
-
name
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def ==(other)
|
|
49
|
-
other.kind_of?(Param) &&
|
|
50
|
-
to_s == other.to_s
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def encoded
|
|
54
|
-
if value
|
|
55
|
-
"#{escape(name)}=#{escape(value)}"
|
|
56
|
-
else
|
|
57
|
-
escape(name)
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
end
|
data/lib/aws/http/response.rb
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# Copyright 2011 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
|
-
|
|
16
|
-
module Http
|
|
17
|
-
|
|
18
|
-
# Represents the http response from a service request.
|
|
19
|
-
#
|
|
20
|
-
# Responses have:
|
|
21
|
-
#
|
|
22
|
-
# * status (200, 404, 500, etc)
|
|
23
|
-
# * headers (hash of response headers)
|
|
24
|
-
# * body (the response body)
|
|
25
|
-
class Response
|
|
26
|
-
|
|
27
|
-
# @return [Integer] (200) response http status code
|
|
28
|
-
attr_accessor :status
|
|
29
|
-
|
|
30
|
-
# @return [Hash] ({}) response http headers
|
|
31
|
-
attr_accessor :headers
|
|
32
|
-
|
|
33
|
-
# @return [String] ('') response http body
|
|
34
|
-
attr_accessor :body
|
|
35
|
-
|
|
36
|
-
# @return [String] (false) set to true if the client gives up
|
|
37
|
-
# before getting a response from the service.
|
|
38
|
-
attr_accessor :timeout
|
|
39
|
-
alias_method :timeout?, :timeout
|
|
40
|
-
|
|
41
|
-
# @param [Hash] options
|
|
42
|
-
# @option options [Integer] :status (200) HTTP status code
|
|
43
|
-
# @option options [Hash] :headers ({}) HTTP response headers
|
|
44
|
-
# @option options [String] :body ('') HTTP response body
|
|
45
|
-
def initialize options = {}, &block
|
|
46
|
-
@status = options[:status] || 200
|
|
47
|
-
@headers = options[:headers] || {}
|
|
48
|
-
@body = options[:body] || ''
|
|
49
|
-
yield(self) if block_given?
|
|
50
|
-
self
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
# Returns the header value with the given name.
|
|
54
|
-
#
|
|
55
|
-
# The value is matched case-insensitively so if the headers hash
|
|
56
|
-
# contains a key like 'Date' and you request the value for
|
|
57
|
-
# 'date' the 'Date' value will be returned.
|
|
58
|
-
#
|
|
59
|
-
# @param [String,Symbol] name The name of the header to fetch a value for.
|
|
60
|
-
# @return [String,nil] The value of the given header
|
|
61
|
-
def header name
|
|
62
|
-
headers.each_pair do |header_name, header_value|
|
|
63
|
-
if header_name.downcase == name.to_s.downcase
|
|
64
|
-
return header_value.is_a?(Array) ? header_value.first : header_value
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
nil
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
data/lib/aws/indifferent_hash.rb
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
# Copyright 2011 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
|
-
|
|
16
|
-
# A utility class to provide indifferent access to hash data.
|
|
17
|
-
#
|
|
18
|
-
# Inspired by ActiveSupport's HashWithIndifferentAccess, this class
|
|
19
|
-
# has a few notable differences:
|
|
20
|
-
#
|
|
21
|
-
# * ALL keys are converted to strings (via #to_s)
|
|
22
|
-
# * It does not deep merge/convert hashes indifferently
|
|
23
|
-
# * It will not perserve default value behaviours
|
|
24
|
-
#
|
|
25
|
-
# These features were omitted because our primary use for this class is to
|
|
26
|
-
# wrap a 1-level hash as a return value, but we want the user to access
|
|
27
|
-
# the values with string or symbol keys.
|
|
28
|
-
#
|
|
29
|
-
# @private
|
|
30
|
-
class IndifferentHash < Hash
|
|
31
|
-
|
|
32
|
-
def initialize *args
|
|
33
|
-
if args.first.is_a?(Hash)
|
|
34
|
-
super()
|
|
35
|
-
merge!(*args)
|
|
36
|
-
else
|
|
37
|
-
super(*args)
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
alias_method :_getter, :[]
|
|
42
|
-
alias_method :_setter, :[]=
|
|
43
|
-
|
|
44
|
-
def []=(key, value)
|
|
45
|
-
_setter(_convert_key(key), value)
|
|
46
|
-
end
|
|
47
|
-
alias_method :store, :[]=
|
|
48
|
-
|
|
49
|
-
def [] key
|
|
50
|
-
_getter(_convert_key(key))
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def merge! hash
|
|
54
|
-
hash.each_pair do |key,value|
|
|
55
|
-
self[key] = value
|
|
56
|
-
end
|
|
57
|
-
self
|
|
58
|
-
end
|
|
59
|
-
alias_method :update, :merge!
|
|
60
|
-
|
|
61
|
-
def merge hash
|
|
62
|
-
self.dup.merge!(hash)
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
def has_key? key
|
|
66
|
-
super(_convert_key(key))
|
|
67
|
-
end
|
|
68
|
-
alias_method :key?, :has_key?
|
|
69
|
-
alias_method :member?, :has_key?
|
|
70
|
-
alias_method :include?, :has_key?
|
|
71
|
-
|
|
72
|
-
def fetch key, *extras, &block
|
|
73
|
-
super(_convert_key(key), *extras, &block)
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
def delete key
|
|
77
|
-
super(_convert_key(key))
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
private
|
|
81
|
-
def _convert_key key
|
|
82
|
-
key.is_a?(String) ? key : key.to_s
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
end
|
|
86
|
-
end
|
data/lib/aws/inflection.rb
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# Copyright 2011 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
|
-
|
|
16
|
-
# @private
|
|
17
|
-
module Inflection
|
|
18
|
-
|
|
19
|
-
def ruby_name(aws_name)
|
|
20
|
-
|
|
21
|
-
#aws_name.sub(/^.*:/, '').
|
|
22
|
-
# gsub(/[A-Z]+[a-z]+/){|str| "_#{str.downcase}_" }.
|
|
23
|
-
# gsub(/(^_|_$)/, '').
|
|
24
|
-
# gsub(/__/, '_').
|
|
25
|
-
# downcase
|
|
26
|
-
|
|
27
|
-
return 'etag' if aws_name == 'ETag'
|
|
28
|
-
|
|
29
|
-
aws_name.
|
|
30
|
-
sub(/^.*:/, ''). # strip namespace
|
|
31
|
-
gsub(/([A-Z0-9]+)([A-Z][a-z])/, '\1_\2'). # split acronyms from words
|
|
32
|
-
scan(/[a-z]+|\d+|[A-Z0-9]+[a-z]*/). # split remaining words
|
|
33
|
-
join('_').downcase # join parts _ and downcase
|
|
34
|
-
|
|
35
|
-
end
|
|
36
|
-
module_function :ruby_name
|
|
37
|
-
|
|
38
|
-
def class_name(name)
|
|
39
|
-
name.sub(/^(.)/) { |m| m.upcase }.
|
|
40
|
-
gsub(/[-_]([a-z])/i) { |m| m[1,1].upcase }
|
|
41
|
-
end
|
|
42
|
-
module_function :class_name
|
|
43
|
-
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
end
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
# Copyright 2011 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/xml_grammar'
|
|
15
|
-
require 'aws/errors'
|
|
16
|
-
|
|
17
|
-
module AWS
|
|
18
|
-
|
|
19
|
-
# @private
|
|
20
|
-
module LazyErrorClasses
|
|
21
|
-
|
|
22
|
-
# @private
|
|
23
|
-
module ClassMethods
|
|
24
|
-
|
|
25
|
-
def const_missing(name)
|
|
26
|
-
base_error_grammar = self::BASE_ERROR_GRAMMAR
|
|
27
|
-
const_missing_mutex.synchronize do
|
|
28
|
-
return if const_defined?(name)
|
|
29
|
-
const_set(name,
|
|
30
|
-
Class.new(self::Base) do
|
|
31
|
-
include Errors::ModeledError
|
|
32
|
-
|
|
33
|
-
# so that MyService::Errors::Foo::Bar will work
|
|
34
|
-
const_set(:BASE_ERROR_GRAMMAR, base_error_grammar)
|
|
35
|
-
include LazyErrorClasses
|
|
36
|
-
end)
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def error_class(code)
|
|
41
|
-
module_eval(code.gsub(".","::"))
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def included(mod)
|
|
45
|
-
raise NotImplementedError.new("#{self} lazy-generates error classes; "+
|
|
46
|
-
"therefore it is not suitable for "+
|
|
47
|
-
"inclusion in other modules")
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def self.included(mod)
|
|
53
|
-
unless mod.const_defined?(:BASE_ERROR_GRAMMAR)
|
|
54
|
-
mod.const_set(:BASE_ERROR_GRAMMAR, XmlGrammar)
|
|
55
|
-
end
|
|
56
|
-
mutex = Mutex.new
|
|
57
|
-
MetaUtils.extend_method(mod, :const_missing_mutex) { mutex }
|
|
58
|
-
mod.send(:include, Errors)
|
|
59
|
-
mod.extend(ClassMethods)
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
end
|