aws-sdk-core 2.0.48 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (197) hide show
  1. checksums.yaml +4 -4
  2. data/apis/autoscaling/2011-01-01/api-2.json +636 -33
  3. data/apis/cloudhsm/2014-05-30/api-2.json +3 -6
  4. data/apis/ec2/2014-10-01/api-2.json +10267 -0
  5. data/apis/ec2/2014-10-01/paginators-1.json +125 -0
  6. data/apis/ec2/2014-10-01/resources-1.json +2289 -0
  7. data/apis/ec2/2014-10-01/waiters-2.json +453 -0
  8. data/apis/ec2/2015-03-01/api-2.json +11245 -0
  9. data/apis/ec2/2015-03-01/paginators-1.json +125 -0
  10. data/apis/ec2/2015-03-01/resources-1.json +2479 -0
  11. data/apis/ec2/2015-03-01/waiters-2.json +458 -0
  12. data/apis/ec2/2015-04-15/api-2.json +182 -2
  13. data/apis/ecs/2014-11-13/api-2.json +316 -7
  14. data/apis/ecs/2014-11-13/paginators-1.json +40 -0
  15. data/apis/ecs/2014-11-13/waiters-2.json +93 -0
  16. data/apis/redshift/2012-12-01/waiters-2.json +19 -0
  17. data/apis/s3/2006-03-01/api-2.json +1 -2
  18. data/apis/sqs/2012-11-05/api-2.json +5 -6
  19. data/ca-bundle.crt +3554 -0
  20. data/lib/aws-sdk-core.rb +127 -44
  21. data/lib/aws-sdk-core/api/builder.rb +95 -0
  22. data/lib/aws-sdk-core/api/customizations.rb +152 -0
  23. data/lib/aws-sdk-core/api/docs/builder.rb +220 -0
  24. data/lib/aws-sdk-core/api/docs/client_type_documenter.rb +109 -0
  25. data/lib/aws-sdk-core/api/docs/docstring_provider.rb +66 -0
  26. data/lib/aws-sdk-core/api/docs/operation_documenter.rb +107 -0
  27. data/lib/aws-sdk-core/api/docs/param_formatter.rb +163 -0
  28. data/lib/aws-sdk-core/api/docs/request_syntax_example.rb +22 -0
  29. data/lib/aws-sdk-core/api/docs/response_structure_example.rb +91 -0
  30. data/lib/aws-sdk-core/api/docs/utils.rb +133 -0
  31. data/lib/aws-sdk-core/api/shape_map.rb +140 -0
  32. data/lib/aws-sdk-core/assume_role_credentials.rb +9 -6
  33. data/lib/aws-sdk-core/client.rb +9 -6
  34. data/lib/aws-sdk-core/client_stubs.rb +127 -133
  35. data/lib/aws-sdk-core/client_waiters.rb +1 -1
  36. data/lib/aws-sdk-core/credential_provider.rb +44 -0
  37. data/lib/aws-sdk-core/credential_provider_chain.rb +3 -2
  38. data/lib/aws-sdk-core/credentials.rb +5 -0
  39. data/lib/aws-sdk-core/deprecations.rb +69 -0
  40. data/lib/aws-sdk-core/dynamodb.rb +12 -0
  41. data/lib/aws-sdk-core/eager_loader.rb +31 -0
  42. data/lib/aws-sdk-core/ecs.rb +2 -0
  43. data/lib/aws-sdk-core/empty_structure.rb +1 -82
  44. data/lib/aws-sdk-core/endpoint_provider.rb +1 -1
  45. data/lib/aws-sdk-core/instance_profile_credentials.rb +9 -10
  46. data/lib/aws-sdk-core/json.rb +56 -0
  47. data/lib/aws-sdk-core/json/builder.rb +33 -34
  48. data/lib/aws-sdk-core/json/error_handler.rb +2 -2
  49. data/lib/aws-sdk-core/json/handler.rb +67 -0
  50. data/lib/aws-sdk-core/json/json_engine.rb +15 -0
  51. data/lib/aws-sdk-core/json/oj_engine.rb +15 -0
  52. data/lib/aws-sdk-core/json/parser.rb +30 -38
  53. data/lib/aws-sdk-core/pageable_response.rb +9 -12
  54. data/lib/aws-sdk-core/pager.rb +69 -0
  55. data/lib/aws-sdk-core/param_converter.rb +203 -0
  56. data/lib/aws-sdk-core/param_validator.rb +148 -0
  57. data/lib/aws-sdk-core/plugins/dynamodb_simple_attributes.rb +21 -18
  58. data/lib/aws-sdk-core/plugins/glacier_account_id.rb +9 -1
  59. data/lib/aws-sdk-core/plugins/glacier_checksums.rb +2 -3
  60. data/lib/aws-sdk-core/plugins/param_converter.rb +27 -0
  61. data/lib/aws-sdk-core/plugins/param_validator.rb +28 -0
  62. data/lib/aws-sdk-core/plugins/protocols/json_rpc.rb +3 -7
  63. data/lib/aws-sdk-core/plugins/protocols/rest_json.rb +1 -2
  64. data/lib/aws-sdk-core/plugins/protocols/rest_xml.rb +1 -1
  65. data/lib/aws-sdk-core/plugins/regional_endpoint.rb +1 -1
  66. data/lib/aws-sdk-core/plugins/request_signer.rb +5 -5
  67. data/lib/aws-sdk-core/plugins/response_paging.rb +20 -11
  68. data/lib/aws-sdk-core/plugins/s3_get_bucket_location_fix.rb +1 -1
  69. data/lib/aws-sdk-core/plugins/s3_request_signer.rb +1 -2
  70. data/lib/aws-sdk-core/plugins/stub_responses.rb +25 -27
  71. data/lib/aws-sdk-core/query/ec2_param_builder.rb +29 -34
  72. data/lib/aws-sdk-core/query/handler.rb +32 -18
  73. data/lib/aws-sdk-core/query/param_builder.rb +45 -53
  74. data/lib/aws-sdk-core/refreshing_credentials.rb +3 -15
  75. data/lib/aws-sdk-core/rest/handler.rb +22 -0
  76. data/lib/aws-sdk-core/rest/request/body.rb +58 -0
  77. data/lib/aws-sdk-core/rest/request/builder.rb +50 -0
  78. data/lib/aws-sdk-core/rest/request/endpoint.rb +70 -0
  79. data/lib/aws-sdk-core/rest/request/headers.rb +48 -0
  80. data/lib/aws-sdk-core/rest/response/body.rb +43 -0
  81. data/lib/aws-sdk-core/rest/response/headers.rb +60 -0
  82. data/lib/aws-sdk-core/rest/response/parser.rb +47 -0
  83. data/lib/aws-sdk-core/rest/response/status_code.rb +24 -0
  84. data/lib/aws-sdk-core/shared_credentials.rb +11 -6
  85. data/lib/aws-sdk-core/signers/base.rb +1 -1
  86. data/lib/aws-sdk-core/signers/s3.rb +2 -3
  87. data/lib/aws-sdk-core/signers/v2.rb +7 -4
  88. data/lib/aws-sdk-core/signers/v4.rb +11 -22
  89. data/lib/aws-sdk-core/structure.rb +26 -145
  90. data/lib/aws-sdk-core/stubbing/data_applicator.rb +46 -0
  91. data/lib/aws-sdk-core/stubbing/empty_stub.rb +53 -0
  92. data/lib/aws-sdk-core/stubbing/protocols/ec2.rb +49 -0
  93. data/lib/aws-sdk-core/stubbing/protocols/json.rb +40 -0
  94. data/lib/aws-sdk-core/stubbing/protocols/query.rb +40 -0
  95. data/lib/aws-sdk-core/stubbing/protocols/rest.rb +67 -0
  96. data/lib/aws-sdk-core/stubbing/protocols/rest_json.rb +25 -0
  97. data/lib/aws-sdk-core/stubbing/protocols/rest_xml.rb +38 -0
  98. data/lib/aws-sdk-core/stubbing/stub_data.rb +34 -0
  99. data/lib/aws-sdk-core/version.rb +1 -1
  100. data/lib/aws-sdk-core/xml/builder.rb +58 -52
  101. data/lib/aws-sdk-core/xml/default_map.rb +10 -0
  102. data/lib/aws-sdk-core/xml/doc_builder.rb +86 -0
  103. data/lib/aws-sdk-core/xml/error_handler.rb +7 -2
  104. data/lib/aws-sdk-core/xml/parser.rb +4 -4
  105. data/lib/aws-sdk-core/xml/parser/frame.rb +75 -70
  106. data/lib/aws-sdk-core/xml/parser/stack.rb +4 -4
  107. data/lib/seahorse.rb +0 -11
  108. data/lib/seahorse/client/base.rb +3 -12
  109. data/lib/seahorse/client/http/request.rb +9 -5
  110. data/lib/seahorse/client/plugins/endpoint.rb +5 -56
  111. data/lib/seahorse/client/plugins/restful_bindings.rb +38 -31
  112. data/lib/seahorse/client/request_context.rb +2 -2
  113. data/lib/seahorse/client/response.rb +6 -5
  114. data/lib/seahorse/model/api.rb +18 -61
  115. data/lib/seahorse/model/operation.rb +24 -54
  116. data/lib/seahorse/model/shapes.rb +120 -364
  117. data/lib/seahorse/util.rb +2 -6
  118. metadata +56 -109
  119. data/apis/autoscaling/2011-01-01/docs-2.json +0 -1246
  120. data/apis/cloudformation/2010-05-15/docs-2.json +0 -725
  121. data/apis/cloudfront/2014-11-06/docs-2.json +0 -1125
  122. data/apis/cloudhsm/2014-05-30/docs-2.json +0 -472
  123. data/apis/cloudsearch/2013-01-01/docs-2.json +0 -865
  124. data/apis/cloudsearchdomain/2013-01-01/docs-2.json +0 -311
  125. data/apis/cloudtrail/2013-11-01/docs-2.json +0 -328
  126. data/apis/codedeploy/2014-10-06/docs-2.json +0 -1261
  127. data/apis/cognito-identity/2014-06-30/docs-2.json +0 -506
  128. data/apis/cognito-sync/2014-06-30/docs-2.json +0 -582
  129. data/apis/config/2014-10-17/docs-2.json +0 -513
  130. data/apis/config/2014-11-12/docs-2.json +0 -514
  131. data/apis/datapipeline/2012-10-29/docs-2.json +0 -607
  132. data/apis/directconnect/2012-10-25/docs-2.json +0 -494
  133. data/apis/ds/2015-04-16/docs-2.json +0 -753
  134. data/apis/dynamodb/2011-12-05/api-2.json +0 -949
  135. data/apis/dynamodb/2011-12-05/docs-2.json +0 -606
  136. data/apis/dynamodb/2011-12-05/paginators-1.json +0 -26
  137. data/apis/dynamodb/2011-12-05/waiters-2.json +0 -35
  138. data/apis/dynamodb/2012-08-10/docs-2.json +0 -977
  139. data/apis/ec2/2015-04-15/docs-2.json +0 -5368
  140. data/apis/ecs/2014-11-13/docs-2.json +0 -791
  141. data/apis/elasticache/2015-02-02/docs-2.json +0 -1390
  142. data/apis/elasticbeanstalk/2010-12-01/docs-2.json +0 -1114
  143. data/apis/elasticfilesystem/2015-02-01/docs-2.json +0 -414
  144. data/apis/elasticloadbalancing/2012-06-01/docs-2.json +0 -1078
  145. data/apis/elasticmapreduce/2009-03-31/docs-2.json +0 -969
  146. data/apis/elastictranscoder/2012-09-25/docs-2.json +0 -1152
  147. data/apis/email/2010-12-01/docs-2.json +0 -441
  148. data/apis/glacier/2012-06-01/docs-2.json +0 -575
  149. data/apis/iam/2010-05-08/docs-2.json +0 -2138
  150. data/apis/importexport/2010-06-01/docs-2.json +0 -432
  151. data/apis/kinesis/2013-12-02/docs-2.json +0 -424
  152. data/apis/kms/2014-11-01/docs-2.json +0 -628
  153. data/apis/lambda/2014-11-11/docs-2.json +0 -303
  154. data/apis/lambda/2015-03-31/docs-2.json +0 -490
  155. data/apis/logs/2014-03-28/docs-2.json +0 -599
  156. data/apis/machinelearning/2014-12-12/docs-2.json +0 -1034
  157. data/apis/monitoring/2010-08-01/docs-2.json +0 -514
  158. data/apis/opsworks/2013-02-18/docs-2.json +0 -1592
  159. data/apis/rds/2014-10-31/docs-2.json +0 -2074
  160. data/apis/redshift/2012-12-01/docs-2.json +0 -1890
  161. data/apis/route53/2013-04-01/docs-2.json +0 -1159
  162. data/apis/route53domains/2014-05-15/docs-2.json +0 -620
  163. data/apis/s3/2006-03-01/docs-2.json +0 -2213
  164. data/apis/sdb/2009-04-15/docs-2.json +0 -339
  165. data/apis/sns/2010-03-31/docs-2.json +0 -564
  166. data/apis/sqs/2012-11-05/docs-2.json +0 -503
  167. data/apis/ssm/2014-11-06/docs-2.json +0 -440
  168. data/apis/storagegateway/2013-06-30/docs-2.json +0 -1331
  169. data/apis/sts/2011-06-15/docs-2.json +0 -351
  170. data/apis/support/2013-04-15/docs-2.json +0 -680
  171. data/apis/swf/2012-01-25/docs-2.json +0 -1569
  172. data/apis/workspaces/2015-04-08/docs-2.json +0 -457
  173. data/lib/aws-sdk-core/api/customizer.rb +0 -75
  174. data/lib/aws-sdk-core/api/docstrings.rb +0 -38
  175. data/lib/aws-sdk-core/api/documenter.rb +0 -241
  176. data/lib/aws-sdk-core/api/operation_documenter.rb +0 -173
  177. data/lib/aws-sdk-core/api/operation_example.rb +0 -133
  178. data/lib/aws-sdk-core/api/service_customizations.rb +0 -140
  179. data/lib/aws-sdk-core/client_paging.rb +0 -31
  180. data/lib/aws-sdk-core/json/rest_handler.rb +0 -20
  181. data/lib/aws-sdk-core/json/rpc_body_handler.rb +0 -38
  182. data/lib/aws-sdk-core/json/rpc_headers_handler.rb +0 -34
  183. data/lib/aws-sdk-core/json/simple_body_handler.rb +0 -34
  184. data/lib/aws-sdk-core/paging/null_pager.rb +0 -20
  185. data/lib/aws-sdk-core/paging/null_provider.rb +0 -13
  186. data/lib/aws-sdk-core/paging/pager.rb +0 -70
  187. data/lib/aws-sdk-core/paging/provider.rb +0 -22
  188. data/lib/aws-sdk-core/rest_body_handler.rb +0 -111
  189. data/lib/aws-sdk-core/signers/handler.rb +0 -18
  190. data/lib/aws-sdk-core/xml/rest_handler.rb +0 -20
  191. data/lib/seahorse/client/param_converter.rb +0 -207
  192. data/lib/seahorse/client/param_validator.rb +0 -139
  193. data/lib/seahorse/client/plugins/json_simple.rb +0 -33
  194. data/lib/seahorse/client/plugins/param_conversion.rb +0 -29
  195. data/lib/seahorse/client/plugins/param_validation.rb +0 -30
  196. data/lib/seahorse/client/xml/builder.rb +0 -91
  197. data/lib/seahorse/model/shape_map.rb +0 -47
@@ -15,7 +15,12 @@ module Aws
15
15
 
16
16
  def error(context)
17
17
  body = context.http_response.body_contents
18
- code, message = extract_error(body, context)
18
+ if body.empty?
19
+ code = http_status_error_code(context)
20
+ message = ''
21
+ else
22
+ code, message = extract_error(body, context)
23
+ end
19
24
  svc = context.client.class.name.split('::')[1]
20
25
  errors_module = Aws.const_get(svc).const_get(:Errors)
21
26
  errors_module.error_class(code).new(context, message)
@@ -50,7 +55,7 @@ module Aws
50
55
  end
51
56
 
52
57
  def remove_prefix(error_code, context)
53
- if prefix = context.config.api.metadata('errorPrefix')
58
+ if prefix = context.config.api.metadata['errorPrefix']
54
59
  error_code.sub(/^#{prefix}/, '')
55
60
  else
56
61
  error_code
@@ -13,9 +13,9 @@ module Aws
13
13
  autoload :OxEngine, 'aws-sdk-core/xml/parser/engines/ox'
14
14
  autoload :RexmlEngine, 'aws-sdk-core/xml/parser/engines/rexml'
15
15
 
16
- # @param [Seahorse::Model::Shapes::Structure] shape
17
- def initialize(shape, options = {})
18
- @shape = shape
16
+ # @param [Seahorse::Model::ShapeRef] rules
17
+ def initialize(rules, options = {})
18
+ @rules = rules
19
19
  @engine = options[:engine] || self.class.engine
20
20
  end
21
21
 
@@ -24,7 +24,7 @@ module Aws
24
24
  # @return [Structure]
25
25
  def parse(xml, target = nil)
26
26
  xml = '<xml/>' if xml.nil? or xml.empty?
27
- stack = Stack.new(@shape, target)
27
+ stack = Stack.new(@rules, target)
28
28
  @engine.new(stack).parse(xml.to_s)
29
29
  stack.result
30
30
  end
@@ -6,16 +6,45 @@ module Aws
6
6
  class Parser
7
7
  class Frame
8
8
 
9
- def initialize(parent, shape, result = nil)
9
+ include Seahorse::Model::Shapes
10
+
11
+ class << self
12
+
13
+ def new(parent, ref, result = nil)
14
+ if self == Frame
15
+ frame = frame_class(ref && ref.shape).allocate
16
+ frame.send(:initialize, parent, ref, result)
17
+ frame
18
+ else
19
+ super
20
+ end
21
+ end
22
+
23
+ private
24
+
25
+ def frame_class(shape)
26
+ klass = FRAME_CLASSES[shape.class]
27
+ if ListFrame == klass && shape[:flattened]
28
+ FlatListFrame
29
+ elsif MapFrame == klass && shape[:flattened]
30
+ MapEntryFrame
31
+ else
32
+ klass
33
+ end
34
+ end
35
+
36
+ end
37
+
38
+ def initialize(parent, ref, result = nil)
10
39
  @parent = parent
11
- @shape = shape
40
+ @ref = ref
12
41
  @result = result
13
42
  @text = []
14
43
  end
15
44
 
16
45
  attr_reader :parent
17
46
 
18
- attr_reader :shape
47
+ attr_reader :ref
19
48
 
20
49
  attr_reader :result
21
50
 
@@ -29,70 +58,26 @@ module Aws
29
58
 
30
59
  def consume_child_frame(child); end
31
60
 
32
- private
33
-
34
- class << self
35
-
36
- def new(parent, shape, result = nil)
37
- if self == Frame
38
- frame = frame_class(shape).allocate
39
- frame.send(:initialize, parent, shape, result)
40
- frame
41
- else
42
- super
43
- end
44
- end
45
-
46
- private
47
-
48
- def frame_class(shape)
49
- @classes ||= {
50
- 'blob' => BlobFrame,
51
- 'boolean' => BooleanFrame,
52
- 'byte' => BlobFrame,
53
- 'character' => StringFrame,
54
- 'double' => FloatFrame,
55
- 'float' => FloatFrame,
56
- 'integer' => IntegerFrame,
57
- 'list' => ListFrame,
58
- 'list:flat' => FlatListFrame,
59
- 'long' => IntegerFrame,
60
- 'map' => MapFrame,
61
- 'map:flat' => MapEntryFrame,
62
- 'string' => StringFrame,
63
- 'structure' => StructureFrame,
64
- 'timestamp' => TimestampFrame,
65
- }
66
- if shape
67
- type = shape.type
68
- type += ':flat' if shape.definition['flattened']
69
- @classes[type]
70
- else
71
- NullFrame
72
- end
73
- end
74
-
75
- end
76
61
  end
77
62
 
78
63
  class StructureFrame < Frame
79
64
 
80
- def initialize(parent, shape, result = nil)
65
+ def initialize(parent, ref, result = nil)
81
66
  super
82
- @result ||= Structure.new(shape.member_names)
67
+ @result ||= ref[:struct_class].new
83
68
  @members = {}
84
- shape.members.each do |member_name, member_shape|
85
- apply_default_value(member_name, member_shape)
86
- @members[xml_name(member_shape)] = {
69
+ ref.shape.members.each do |member_name, member_ref|
70
+ apply_default_value(member_name, member_ref)
71
+ @members[xml_name(member_ref)] = {
87
72
  name: member_name,
88
- shape: member_shape,
73
+ ref: member_ref,
89
74
  }
90
75
  end
91
76
  end
92
77
 
93
78
  def child_frame(xml_name)
94
79
  if @member = @members[xml_name]
95
- Frame.new(self, @member[:shape])
80
+ Frame.new(self, @member[:ref])
96
81
  else
97
82
  NullFrame.new(self)
98
83
  end
@@ -112,21 +97,25 @@ module Aws
112
97
 
113
98
  private
114
99
 
115
- def apply_default_value(name, shape)
116
- case shape
117
- when Seahorse::Model::Shapes::List then @result[name] = DefaultList.new
118
- when Seahorse::Model::Shapes::Map then @result[name] = {}
100
+ def apply_default_value(name, ref)
101
+ case ref.shape
102
+ when ListShape then @result[name] = DefaultList.new
103
+ when MapShape then @result[name] = DefaultMap.new
119
104
  end
120
105
  end
121
106
 
122
- def xml_name(member_shape)
123
- if member_shape.type == 'list' && member_shape.definition['flattened']
124
- member_shape.member.location_name || member_shape.location_name
107
+ def xml_name(ref)
108
+ if flattened_list?(ref.shape)
109
+ ref.shape.member.location_name || ref.location_name
125
110
  else
126
- member_shape.location_name
111
+ ref.location_name
127
112
  end
128
113
  end
129
114
 
115
+ def flattened_list?(shape)
116
+ ListShape === shape && shape['flattened']
117
+ end
118
+
130
119
  end
131
120
 
132
121
  class ListFrame < Frame
@@ -134,12 +123,12 @@ module Aws
134
123
  def initialize(*args)
135
124
  super
136
125
  @result = []
137
- @member_xml_name = @shape.member.location_name || 'member'
126
+ @member_xml_name = @ref.shape.member.location_name || 'member'
138
127
  end
139
128
 
140
129
  def child_frame(xml_name)
141
130
  if xml_name == @member_xml_name
142
- Frame.new(self, @shape.member)
131
+ Frame.new(self, @ref.shape.member)
143
132
  else
144
133
  raise NotImplementedError
145
134
  end
@@ -155,7 +144,7 @@ module Aws
155
144
 
156
145
  def initialize(*args)
157
146
  super
158
- @member = Frame.new(self, @shape.member)
147
+ @member = Frame.new(self, @ref.shape.member)
159
148
  end
160
149
 
161
150
  def result
@@ -185,7 +174,7 @@ module Aws
185
174
 
186
175
  def child_frame(xml_name)
187
176
  if xml_name == 'entry'
188
- MapEntryFrame.new(self, @shape)
177
+ MapEntryFrame.new(self, @ref)
189
178
  else
190
179
  raise NotImplementedError
191
180
  end
@@ -201,10 +190,10 @@ module Aws
201
190
 
202
191
  def initialize(*args)
203
192
  super
204
- @key_name = @shape.key.location_name || 'key'
205
- @key = Frame.new(self, @shape.key)
206
- @value_name = @shape.value.location_name || 'value'
207
- @value = Frame.new(self, @shape.value)
193
+ @key_name = @ref.shape.key.location_name || 'key'
194
+ @key = Frame.new(self, @ref.shape.key)
195
+ @value_name = @ref.shape.value.location_name || 'value'
196
+ @value = Frame.new(self, @ref.shape.value)
208
197
  end
209
198
 
210
199
  # @return [StringFrame]
@@ -278,6 +267,22 @@ module Aws
278
267
  end
279
268
  end
280
269
  end
270
+
271
+ include Seahorse::Model::Shapes
272
+
273
+ FRAME_CLASSES = {
274
+ NilClass => NullFrame,
275
+ BlobShape => BlobFrame,
276
+ BooleanShape => BooleanFrame,
277
+ FloatShape => FloatFrame,
278
+ IntegerShape => IntegerFrame,
279
+ ListShape => ListFrame,
280
+ MapShape => MapFrame,
281
+ StringShape => StringFrame,
282
+ StructureShape => StructureFrame,
283
+ TimestampShape => TimestampFrame,
284
+ }
285
+
281
286
  end
282
287
  end
283
288
  end
@@ -3,8 +3,8 @@ module Aws
3
3
  class Parser
4
4
  class Stack
5
5
 
6
- def initialize(shape, result = nil)
7
- @shape = shape
6
+ def initialize(ref, result = nil)
7
+ @ref = ref
8
8
  @frame = self
9
9
  @result = result
10
10
  end
@@ -19,7 +19,7 @@ module Aws
19
19
 
20
20
  def attr(name, value)
21
21
  if name.to_s == 'encoding' && value.to_s == 'base64'
22
- @frame = BlobFrame.new(@frame.parent, @frame.shape)
22
+ @frame = BlobFrame.new(@frame.parent, @frame.ref)
23
23
  else
24
24
  start_element(name)
25
25
  text(value)
@@ -45,7 +45,7 @@ module Aws
45
45
  end
46
46
 
47
47
  def child_frame(name)
48
- Frame.new(self, @shape, @result)
48
+ Frame.new(self, @ref, @result)
49
49
  end
50
50
 
51
51
  def consume_child_frame(frame)
@@ -13,8 +13,6 @@ module Seahorse
13
13
  autoload :HandlerListEntry, 'seahorse/client/handler_list_entry'
14
14
  autoload :ManagedFile, 'seahorse/client/managed_file'
15
15
  autoload :NetworkingError, 'seahorse/client/networking_error'
16
- autoload :ParamConverter, 'seahorse/client/param_converter'
17
- autoload :ParamValidator, 'seahorse/client/param_validator'
18
16
  autoload :Plugin, 'seahorse/client/plugin'
19
17
  autoload :PluginList, 'seahorse/client/plugin_list'
20
18
  autoload :Request, 'seahorse/client/request'
@@ -42,27 +40,18 @@ module Seahorse
42
40
  module Plugins
43
41
  autoload :ContentLength, 'seahorse/client/plugins/content_length'
44
42
  autoload :Endpoint, 'seahorse/client/plugins/endpoint'
45
- autoload :JsonSimple, 'seahorse/client/plugins/json_simple'
46
43
  autoload :Logging, 'seahorse/client/plugins/logging'
47
44
  autoload :NetHttp, 'seahorse/client/plugins/net_http'
48
- autoload :ParamConversion, 'seahorse/client/plugins/param_conversion'
49
- autoload :ParamValidation, 'seahorse/client/plugins/param_validation'
50
45
  autoload :RaiseResponseErrors, 'seahorse/client/plugins/raise_response_errors'
51
46
  autoload :ResponseTarget, 'seahorse/client/plugins/response_target'
52
47
  autoload :RestfulBindings, 'seahorse/client/plugins/restful_bindings'
53
48
  end
54
49
 
55
- # @api private
56
- module Xml
57
- autoload :Builder, 'seahorse/client/xml/builder'
58
- end
59
-
60
50
  end
61
51
 
62
52
  module Model
63
53
  autoload :Api, 'seahorse/model/api'
64
54
  autoload :Operation, 'seahorse/model/operation'
65
- autoload :ShapeMap, 'seahorse/model/shape_map'
66
55
  autoload :Shapes, 'seahorse/model/shapes'
67
56
  end
68
57
 
@@ -10,8 +10,6 @@ module Seahorse
10
10
  @plugins = PluginList.new([
11
11
  Plugins::Endpoint,
12
12
  Plugins::NetHttp,
13
- Plugins::ParamConversion,
14
- Plugins::ParamValidation,
15
13
  Plugins::RaiseResponseErrors,
16
14
  Plugins::ResponseTarget,
17
15
  ])
@@ -90,7 +88,7 @@ module Seahorse
90
88
  # @return [RequestContext]
91
89
  def context_for(operation_name, params)
92
90
  RequestContext.new(
93
- operation_name: operation_name.to_s,
91
+ operation_name: operation_name,
94
92
  operation: operation(operation_name),
95
93
  client: self,
96
94
  params: params,
@@ -177,17 +175,10 @@ module Seahorse
177
175
  @api ||= Model::Api.new
178
176
  end
179
177
 
180
- # @param [Model::Api, Hash] api
178
+ # @param [Model::Api] api
181
179
  # @return [Model::Api]
182
180
  def set_api(api)
183
- @api =
184
- case api
185
- when nil then Model::Api.new({})
186
- when Model::Api then api
187
- when Hash then Model::Api.new(api)
188
- when String, Pathname then Model::Api.new(Util.load_json(api))
189
- else raise ArgumentError, "invalid api definition #{api}"
190
- end
181
+ @api = api
191
182
  define_operation_methods
192
183
  @api
193
184
  end
@@ -17,17 +17,16 @@ module Seahorse
17
17
  self.body = options[:body]
18
18
  end
19
19
 
20
- # @return [URI::HTTP, URI::HTTPS, nil]
21
- attr_accessor :endpoint
22
-
23
20
  # @return [String] The HTTP request method, e.g. `GET`, `PUT`, etc.
24
21
  attr_accessor :http_method
25
22
 
26
23
  # @return [Headers] The hash of request headers.
27
24
  attr_accessor :headers
28
25
 
29
- # @return [IO]
30
- attr_reader :body
26
+ # @return [URI::HTTP, URI::HTTPS, nil]
27
+ def endpoint
28
+ @endpoint
29
+ end
31
30
 
32
31
  # @param [String, URI::HTTP, URI::HTTPS, nil] endpoint
33
32
  def endpoint=(endpoint)
@@ -41,6 +40,11 @@ module Seahorse
41
40
  end
42
41
  end
43
42
 
43
+ # @return [IO]
44
+ def body
45
+ @body
46
+ end
47
+
44
48
  # @return [String]
45
49
  def body_contents
46
50
  body.rewind
@@ -1,7 +1,6 @@
1
1
  module Seahorse
2
2
  module Client
3
3
  module Plugins
4
-
5
4
  # @seahorse.client.option [String] :endpoint
6
5
  # The HTTP or HTTPS endpoint to send requests to.
7
6
  # For example:
@@ -14,6 +13,10 @@ module Seahorse
14
13
 
15
14
  option(:endpoint)
16
15
 
16
+ def add_handlers(handlers, config)
17
+ handlers.add(Handler, priority: 90)
18
+ end
19
+
17
20
  def after_initialize(client)
18
21
  endpoint = URI.parse(client.config.endpoint.to_s)
19
22
  if URI::HTTPS === endpoint or URI::HTTP === endpoint
@@ -27,65 +30,11 @@ module Seahorse
27
30
  class Handler < Client::Handler
28
31
 
29
32
  def call(context)
30
- context.http_request.endpoint = build_endpoint(context)
33
+ context.http_request.endpoint = URI.parse(context.config.endpoint.to_s)
31
34
  @handler.call(context)
32
35
  end
33
36
 
34
- private
35
-
36
- def build_endpoint(context)
37
- uri = URI.parse(context.config.endpoint.to_s)
38
- apply_path_params(uri, context)
39
- apply_querystring_params(uri, context)
40
- uri
41
- end
42
-
43
- def apply_path_params(uri, context)
44
- path = uri.path.sub(/\/$/, '')
45
- path += context.operation.http_request_uri.split('?')[0]
46
- input = context.operation.input
47
- uri.path = path.gsub(/{\w+\+?}/) do |placeholder|
48
- if placeholder.include?('+')
49
- placeholder = placeholder[1..-3]
50
- greedy = true
51
- else
52
- placeholder = placeholder[1..-2]
53
- end
54
- name, shape = input.member_by_location_name(placeholder)
55
- param = context.params[name]
56
- if greedy
57
- param = param.gsub(/[^\/]+/) { |v| escape(v) }
58
- else
59
- escape(param)
60
- end
61
- end
62
- end
63
-
64
- def apply_querystring_params(uri, context)
65
- parts = []
66
- parts << context.operation.http_request_uri.split('?')[1]
67
- parts.compact!
68
- if input = context.operation.input
69
- params = context.params
70
- input.members.each do |member_name, member|
71
- if member.location == 'querystring' && !params[member_name].nil?
72
- param_name = member.location_name
73
- param_value = params[member_name]
74
- parts << "#{param_name}=#{escape(param_value.to_s)}"
75
- end
76
- end
77
- end
78
- uri.query = parts.empty? ? nil : parts.join('&')
79
- end
80
-
81
- def escape(string)
82
- Util.uri_escape(string)
83
- end
84
-
85
37
  end
86
-
87
- handle(Handler, priority: 90)
88
-
89
38
  end
90
39
  end
91
40
  end