aws-sdk-core 3.20.2 → 3.21.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: efaec09c7ee51c9d33f4ed340797d37512360e73
4
- data.tar.gz: 2a7a2853113d145e50f001011184841783863209
3
+ metadata.gz: e3a585a1201cb947b02277c975d145eaccd64a2d
4
+ data.tar.gz: 3291a88b44edce997e8fec94a138f9de101720f6
5
5
  SHA512:
6
- metadata.gz: 8d425634611c8e298877452b0a0ee49d6765b7999e77c5a9c70f5fcd9d2e4d8667ea7bec7bb6566187dddef0720316f0c5b0ee6e18625c122e5acf30f6fee7fd
7
- data.tar.gz: 007c6ed14f300708ff9d55e47b06e58f11642f6f35768338ee706bfacff5b7c7784fc150856ad163c5f1d4ddd757c2e376c33a9a3ca2e6bf8a8cf6fa832f4202
6
+ metadata.gz: 2e346bb0c9d68b0fd570ce16b18496399659d373b2f480b6f7bd80a4b6c2fd9d392b7d3ae0e4cabb1bf135c13d9c5c2450dbd81a7a2594af6fad4646a45a05ca
7
+ data.tar.gz: ff787ba1c2d818247b7d2ff4552a54b9b3b9573b7f4c19a5793bad2e5196a8c958e1ef1d5d62c4290bd2d6eb93a47339203baf90cb242c71334160c7678a642d
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.20.2
1
+ 3.21.0
@@ -62,6 +62,10 @@ require_relative 'aws-sdk-core/rest'
62
62
  require_relative 'aws-sdk-core/xml'
63
63
  require_relative 'aws-sdk-core/json'
64
64
 
65
+ # event stream
66
+ require_relative 'aws-sdk-core/binary'
67
+ require_relative 'aws-sdk-core/event_emitter'
68
+
65
69
  # aws-sdk-sts is vendored to support Aws::AssumeRoleCredentials
66
70
 
67
71
  require 'aws-sdk-sts'
@@ -0,0 +1,3 @@
1
+ require_relative 'binary/decode_handler'
2
+ require_relative 'binary/event_stream_decoder'
3
+ require_relative 'binary/event_parser'
@@ -0,0 +1,46 @@
1
+ module Aws
2
+ module Binary
3
+
4
+ # @api private
5
+ class DecodeHandler < Seahorse::Client::Handler
6
+
7
+ def call(context)
8
+ if eventstream_member = eventstream?(context)
9
+ attach_eventstream_listeners(context, eventstream_member)
10
+ end
11
+ @handler.call(context)
12
+ end
13
+
14
+ private
15
+
16
+ def eventstream?(ctx)
17
+ ctx.operation.output.shape.members.each do |_, ref|
18
+ return ref if ref.eventstream
19
+ end
20
+ end
21
+
22
+ def attach_eventstream_listeners(context, rules)
23
+
24
+ context.http_response.on_headers(200) do
25
+ protocol = context.config.api.metadata['protocol']
26
+ context.http_response.body = EventStreamDecoder.new(
27
+ protocol,
28
+ rules,
29
+ context.http_response.body,
30
+ context[:event_stream_handler])
31
+ end
32
+
33
+ context.http_response.on_success(200) do
34
+ context.http_response.body = context.http_response.body.events
35
+ end
36
+
37
+ context.http_response.on_error do
38
+ context.http_response.body = context.http_response.raw_stream
39
+ end
40
+
41
+ end
42
+
43
+ end
44
+
45
+ end
46
+ end
@@ -0,0 +1,104 @@
1
+ module Aws
2
+ module Binary
3
+ # @api private
4
+ class EventParser
5
+
6
+ include Seahorse::Model::Shapes
7
+
8
+ # @param [Class] parser_class
9
+ # @param [Seahorse::Model::ShapeRef] rules
10
+ def initialize(parser_class, rules)
11
+ @parser_class = parser_class
12
+ @rules = rules
13
+ end
14
+
15
+ # Parse raw event message into event struct
16
+ # based on its ShapeRef
17
+ #
18
+ # @return [Struct] Event Struct
19
+ def apply(raw_event)
20
+ parse(raw_event)
21
+ end
22
+
23
+ private
24
+
25
+ def parse(raw_event)
26
+ message_type = raw_event.headers.delete(":message-type")
27
+ if message_type
28
+ case message_type.value
29
+ when 'error'
30
+ parse_error_event(raw_event)
31
+ when 'event'
32
+ parse_event(raw_event)
33
+ when 'exception'
34
+ # Pending
35
+ raise Aws::Errors::EventStreamParserError.new(
36
+ ':exception event parsing is not supported')
37
+ else
38
+ raise Aws::Errors::EventStreamParserError.new(
39
+ 'Unrecognized :message-type value for the event')
40
+ end
41
+ else
42
+ # no :message-type header, regular event by default
43
+ parse_event(raw_event)
44
+ end
45
+ end
46
+
47
+ def parse_error_event(raw_event)
48
+ error_code = raw_event.headers.delete(":error-code")
49
+ error_message = raw_event.headers.delete(":error-message")
50
+ Aws::Errors::EventError.new(
51
+ :error,
52
+ error_code ? error_code.value : error_code,
53
+ error_message ? error_message.value : error_message
54
+ )
55
+ end
56
+
57
+ def parse_event(raw_event)
58
+ event_type = raw_event.headers.delete(":event-type").value
59
+ # content_type = raw_event.headers.delete(":content-type").value
60
+
61
+ # Pending
62
+ if event_type == 'initial-response'
63
+ raise Aws::Errors::EventStreamParserError.new(
64
+ 'non eventstream member at response is not supported yet'
65
+ )
66
+ end
67
+
68
+ # locate event from eventstream
69
+ name, ref = @rules.shape.member_by_location_name(event_type)
70
+ raise "Non event member found at eventstream" unless ref.event
71
+
72
+ event = ref.shape.struct_class.new
73
+ event.event_type = name
74
+ # locate payload and headers in the event
75
+ ref.shape.members.each do |member_name, member_ref|
76
+ if member_ref.eventpayload
77
+ eventpayload_streaming?(member_ref) ?
78
+ event.send("#{member_name}=", raw_event.payload) :
79
+ event.send("#{member_name}=", parse_payload(raw_event.payload.read, member_ref))
80
+ elsif member_ref.eventheader
81
+ # allow incomplete event members in response
82
+ if raw_event.headers.key?(member_ref.location_name)
83
+ event.send("#{member_name}=", raw_event.headers[member_ref.location_name].value)
84
+ end
85
+ else
86
+ raise "Non eventpayload or eventheader member found at event"
87
+ end
88
+ end
89
+
90
+ event
91
+ end
92
+
93
+ def eventpayload_streaming?(ref)
94
+ BlobShape === ref.shape || StringShape === ref.shape
95
+ end
96
+
97
+ def parse_payload(body, rules)
98
+ @parser_class.new(rules).parse(body) if body.size > 0
99
+ end
100
+
101
+ end
102
+
103
+ end
104
+ end
@@ -0,0 +1,59 @@
1
+ require 'aws-eventstream'
2
+
3
+ module Aws
4
+ module Binary
5
+ # @api private
6
+ class EventStreamDecoder
7
+
8
+ # @param [String] protocol
9
+ # @param [ShapeRef] rules ShapeRef of the eventstream member
10
+ # @param [EventStream|nil] event_stream_handler A Service EventStream object
11
+ # that registered with callbacks for processing events when they arrive
12
+ def initialize(protocol, rules, io, event_stream_handler = nil)
13
+ @decoder = Aws::EventStream::Decoder.new
14
+ @event_parser = EventParser.new(parser_class(protocol), rules)
15
+ @stream_class = extract_stream_class(rules.shape.struct_class)
16
+ @emitter = event_stream_handler.event_emitter
17
+ @events = []
18
+ end
19
+
20
+ # @return [Array] events Array of arrived event objects
21
+ attr_reader :events
22
+
23
+ def write(chunk)
24
+ raw_event, eof = @decoder.decode_chunk(chunk)
25
+ emit_event(raw_event) if raw_event
26
+ while !eof
27
+ # exhaust message_buffer data
28
+ raw_event, eof = @decoder.decode_chunk
29
+ emit_event(raw_event) if raw_event
30
+ end
31
+ end
32
+
33
+ private
34
+
35
+ def emit_event(raw_event)
36
+ event = @event_parser.apply(raw_event)
37
+ @events << event
38
+ @emitter.signal(event.event_type, event) unless @emitter.nil?
39
+ end
40
+
41
+ def parser_class(protocol)
42
+ case protocol
43
+ when 'rest-xml' then Aws::Xml::Parser
44
+ when 'rest-json' then Aws::Json::Parser
45
+ else raise "unsupported protocol #{protocol} for event stream"
46
+ end
47
+ end
48
+
49
+ def extract_stream_class(type_class)
50
+ parts = type_class.to_s.split('::')
51
+ parts.inject(Kernel) do |const, part_name|
52
+ part_name == 'Types' ? const.const_get('EventStreams')
53
+ : const.const_get(part_name)
54
+ end
55
+ end
56
+ end
57
+
58
+ end
59
+ end
@@ -34,6 +34,41 @@ module Aws
34
34
  end
35
35
  end
36
36
 
37
+ # Raised when EventStream Parser failed to parse
38
+ # a raw event message
39
+ class EventStreamParserError < RuntimeError; end
40
+
41
+ # Error event in an event stream which has event_type :error
42
+ # error code and error message can be retrieved when available.
43
+ #
44
+ # example usage:
45
+ #
46
+ # client.stream_foo(name: 'bar') do |event|
47
+ # stream.on_error_event do |event|
48
+ # puts "Error #{event.error_code}: #{event.error_message}"
49
+ # raise event
50
+ # end
51
+ # end
52
+ #
53
+ class EventError < RuntimeError
54
+
55
+ def initialize(event_type, code, message)
56
+ @event_type = event_type
57
+ @error_code = code
58
+ @error_message = message
59
+ end
60
+
61
+ # @return [Symbol]
62
+ attr_reader :event_type
63
+
64
+ # @return [String]
65
+ attr_reader :error_code
66
+
67
+ # @return [String]
68
+ attr_reader :error_message
69
+
70
+ end
71
+
37
72
  # Various plugins perform client-side checksums of responses.
38
73
  # This error indicates a checksum failed.
39
74
  class ChecksumError < RuntimeError; end
@@ -0,0 +1,18 @@
1
+ class EventEmitter
2
+
3
+ def initialize
4
+ @listeners = {}
5
+ end
6
+
7
+ def on(type, callback)
8
+ (@listeners[type] ||= []) << callback
9
+ end
10
+
11
+ def signal(type, event)
12
+ return unless @listeners[type]
13
+ @listeners[type].each do |listener|
14
+ listener.call(event) if event.event_type == type
15
+ end
16
+ end
17
+
18
+ end
@@ -38,28 +38,48 @@ module Aws
38
38
  # ensure the value is hash like
39
39
  return unless correct_type?(ref, values, errors, context)
40
40
 
41
- shape = ref.shape
42
-
43
- # ensure required members are present
44
- if @validate_required
45
- shape.required.each do |member_name|
46
- if values[member_name].nil?
47
- param = "#{context}[#{member_name.inspect}]"
48
- errors << "missing required parameter #{param}"
41
+ if ref.eventstream
42
+ values.each do |value|
43
+ # each event is structure type
44
+ case value[:message_type]
45
+ when 'event'
46
+ val = value.dup
47
+ val.delete(:message_type)
48
+ structure(ref.shape.member(val[:event_type]), val, errors, context)
49
+ when 'error' # Error is unmodeled
50
+ when 'exception' # Pending
51
+ raise Aws::Errors::EventStreamParserError.new(
52
+ ':exception event validation is not supported')
53
+ end
54
+ end
55
+ else
56
+ shape = ref.shape
57
+
58
+ # ensure required members are present
59
+ if @validate_required
60
+ shape.required.each do |member_name|
61
+ if values[member_name].nil?
62
+ param = "#{context}[#{member_name.inspect}]"
63
+ errors << "missing required parameter #{param}"
64
+ end
49
65
  end
50
66
  end
51
- end
52
67
 
53
- # validate non-nil members
54
- values.each_pair do |name, value|
55
- unless value.nil?
56
- if shape.member?(name)
57
- member_ref = shape.member(name)
58
- shape(member_ref, value, errors, context + "[#{name.inspect}]")
59
- else
60
- errors << "unexpected value at #{context}[#{name.inspect}]"
68
+ # validate non-nil members
69
+ values.each_pair do |name, value|
70
+ unless value.nil?
71
+ # :event_type is not modeled
72
+ # and also needed when construct body
73
+ next if name == :event_type
74
+ if shape.member?(name)
75
+ member_ref = shape.member(name)
76
+ shape(member_ref, value, errors, context + "[#{name.inspect}]")
77
+ else
78
+ errors << "unexpected value at #{context}[#{name.inspect}]"
79
+ end
61
80
  end
62
81
  end
82
+
63
83
  end
64
84
  end
65
85
 
@@ -130,6 +150,7 @@ module Aws
130
150
  case value
131
151
  when Hash then true
132
152
  when ref.shape.struct_class then true
153
+ when Enumerator then ref.eventstream && value.respond_to?(:event_types)
133
154
  else
134
155
  errors << expected_got(context, "a hash", value)
135
156
  false
@@ -0,0 +1,16 @@
1
+ module Aws
2
+ module Plugins
3
+
4
+ class EventStreamConfiguration < Seahorse::Client::Plugin
5
+
6
+ option(:event_stream_handler,
7
+ default: nil,
8
+ doc_type: 'Proc',
9
+ docstring: <<-DOCS)
10
+ When an EventStream or Proc object is provided, it will be used as callback for each chunk of event stream response received along the way.
11
+ DOCS
12
+
13
+ end
14
+
15
+ end
16
+ end
@@ -15,7 +15,9 @@ module Aws
15
15
  # @param [IO] body
16
16
  # @param [Hash, Struct] data
17
17
  def apply(body, data)
18
- if streaming?
18
+ if event_stream?
19
+ data[@rules[:payload]] = parse_eventstream(body)
20
+ elsif streaming?
19
21
  data[@rules[:payload]] = body
20
22
  elsif @rules[:payload]
21
23
  data[@rules[:payload]] = parse(body.read, @rules[:payload_member])
@@ -26,6 +28,10 @@ module Aws
26
28
 
27
29
  private
28
30
 
31
+ def event_stream?
32
+ @rules[:payload] && @rules[:payload_member].eventstream
33
+ end
34
+
29
35
  def streaming?
30
36
  @rules[:payload] && (
31
37
  BlobShape === @rules[:payload_member].shape ||
@@ -37,6 +43,13 @@ module Aws
37
43
  @parser_class.new(rules).parse(body, target) if body.size > 0
38
44
  end
39
45
 
46
+ def parse_eventstream(body)
47
+ # body contains an array of parsed event when they arrive
48
+ @rules[:payload_member].shape.struct_class.new do |payload|
49
+ body.each { |event| payload << event }
50
+ end
51
+ end
52
+
40
53
  end
41
54
  end
42
55
  end
@@ -29,7 +29,10 @@ module Aws
29
29
 
30
30
  def extract_body(rules, response)
31
31
  Body.new(parser_class(response), rules).
32
- apply(response.context.http_response.body, response.data)
32
+ apply(
33
+ response.context.http_response.body,
34
+ response.data
35
+ )
33
36
  end
34
37
 
35
38
  def parser_class(response)
@@ -36,7 +36,10 @@ module Aws
36
36
 
37
37
  def stub_structure(ref, visited)
38
38
  ref.shape.members.inject(ref.shape.struct_class.new) do |struct, (mname, mref)|
39
- struct[mname] = stub_ref(mref, visited)
39
+ # For eventstream shape, it returns an Enumerator
40
+ unless mref.eventstream
41
+ struct[mname] = stub_ref(mref, visited)
42
+ end
40
43
  struct
41
44
  end
42
45
  end
@@ -1,3 +1,5 @@
1
+ require 'aws-eventstream'
2
+
1
3
  module Aws
2
4
  module Stubbing
3
5
  module Protocols
@@ -74,6 +76,77 @@ module Aws
74
76
  operation.http_method == "HEAD"
75
77
  end
76
78
 
79
+ def eventstream?(rules)
80
+ rules.eventstream
81
+ end
82
+
83
+ def encode_eventstream_response(rules, data, builder)
84
+ data.inject('') do |stream, event_data|
85
+ # construct message headers and payload
86
+ opts = {headers: {}}
87
+ case event_data.delete(:message_type)
88
+ when 'event'
89
+ encode_event(opts, rules, event_data, builder)
90
+ when 'error'
91
+ # errors are unmodeled
92
+ encode_error(opts, event_data)
93
+ when 'exception'
94
+ # Pending
95
+ raise 'Stubbing :exception event is not supported'
96
+ end
97
+ stream << Aws::EventStream::Encoder.new.encode(
98
+ Aws::EventStream::Message.new(opts))
99
+ stream
100
+ end
101
+ end
102
+
103
+ def encode_error(opts, event_data)
104
+ opts[:headers][':error-message'] = Aws::EventStream::HeaderValue.new(
105
+ value: event_data[:error_message],
106
+ type: 'string'
107
+ )
108
+ opts[:headers][':error-code'] = Aws::EventStream::HeaderValue.new(
109
+ value: event_data[:error_code],
110
+ type: 'string'
111
+ )
112
+ opts[:headers][':message-type'] = Aws::EventStream::HeaderValue.new(
113
+ value: 'error',
114
+ type: 'string'
115
+ )
116
+ opts
117
+ end
118
+
119
+ def encode_event(opts, rules, event_data, builder)
120
+ event_ref = rules.shape.member(event_data.delete(:event_type))
121
+ event_data.each do |k, v|
122
+ member_ref = event_ref.shape.member(k)
123
+ if member_ref.eventheader
124
+ opts[:headers][member_ref.location_name] = Aws::EventStream::HeaderValue.new(
125
+ value: v,
126
+ type: member_ref.eventheader_type
127
+ )
128
+ elsif member_ref.eventpayload
129
+ case member_ref.eventpayload_type
130
+ when 'string'
131
+ opts[:payload] = StringIO.new(v)
132
+ when 'blob'
133
+ opts[:payload] = v
134
+ when 'structure'
135
+ opts[:payload] = StringIO.new(builder.new(member_ref).serialize(v))
136
+ end
137
+ end
138
+ end
139
+ opts[:headers][':event-type'] = Aws::EventStream::HeaderValue.new(
140
+ value: event_ref.location_name,
141
+ type: 'string'
142
+ )
143
+ opts[:headers][':message-type'] = Aws::EventStream::HeaderValue.new(
144
+ value: 'event',
145
+ type: 'string'
146
+ )
147
+ opts
148
+ end
149
+
77
150
  end
78
151
  end
79
152
  end
@@ -4,7 +4,11 @@ module Aws
4
4
  class RestJson < Rest
5
5
 
6
6
  def body_for(_, _, rules, data)
7
- Aws::Json::Builder.new(rules).serialize(data)
7
+ if eventstream?(rules)
8
+ encode_eventstream_response(rules, data, Aws::Json::Builder)
9
+ else
10
+ Aws::Json::Builder.new(rules).serialize(data)
11
+ end
8
12
  end
9
13
 
10
14
  def stub_error(error_code)
@@ -6,11 +6,15 @@ module Aws
6
6
  include Seahorse::Model::Shapes
7
7
 
8
8
  def body_for(api, operation, rules, data)
9
- xml = []
10
- rules.location_name = operation.name + 'Result'
11
- rules['xmlNamespace'] = { 'uri' => api.metadata['xmlNamespace'] }
12
- Xml::Builder.new(rules, target:xml).to_xml(data)
13
- xml.join
9
+ if eventstream?(rules)
10
+ encode_eventstream_response(rules, data, Xml::Builder)
11
+ else
12
+ xml = []
13
+ rules.location_name = operation.name + 'Result'
14
+ rules['xmlNamespace'] = { 'uri' => api.metadata['xmlNamespace'] }
15
+ Xml::Builder.new(rules, target:xml).to_xml(data)
16
+ xml.join
17
+ end
14
18
  end
15
19
 
16
20
  def stub_error(error_code)
@@ -40,6 +40,6 @@ require_relative 'aws-sdk-sts/customizations'
40
40
  # @service
41
41
  module Aws::STS
42
42
 
43
- GEM_VERSION = '3.20.2'
43
+ GEM_VERSION = '3.21.0'
44
44
 
45
45
  end
@@ -1475,7 +1475,7 @@ module Aws::STS
1475
1475
  params: params,
1476
1476
  config: config)
1477
1477
  context[:gem_name] = 'aws-sdk-core'
1478
- context[:gem_version] = '3.20.2'
1478
+ context[:gem_version] = '3.21.0'
1479
1479
  Seahorse::Client::Request.new(handlers, context)
1480
1480
  end
1481
1481
 
@@ -10,6 +10,7 @@ module Seahorse
10
10
  @status_code = options[:status_code] || 0
11
11
  @headers = options[:headers] || Headers.new
12
12
  @body = options[:body] || StringIO.new
13
+ @raw_stream = options[:raw_stream] || StringIO.new
13
14
  @listeners = Hash.new { |h,k| h[k] = [] }
14
15
  @complete = false
15
16
  @done = nil
@@ -26,6 +27,12 @@ module Seahorse
26
27
  # @return [StandardError, nil]
27
28
  attr_reader :error
28
29
 
30
+ # Raw binary stream data used for eventstream only
31
+ # body is concatenated parsed event structs in StringIO
32
+ #
33
+ # @return [IO]
34
+ attr_accessor :raw_stream
35
+
29
36
  # @return [IO]
30
37
  def body
31
38
  @body
@@ -59,6 +66,9 @@ module Seahorse
59
66
  # @param [string] chunk
60
67
  def signal_data(chunk)
61
68
  unless chunk == ''
69
+ # record raw binary stream for eventstream
70
+ # in case error happens, body is used for emit/track events
71
+ @raw_stream.write(chunk)
62
72
  @body.write(chunk)
63
73
  emit(:data, chunk)
64
74
  end
@@ -10,6 +10,12 @@ module Seahorse
10
10
  @metadata = {}
11
11
  @required = false
12
12
  @deprecated = false
13
+ @event = false
14
+ @eventstream = false
15
+ @eventpayload = false
16
+ @eventpayload_type = ''
17
+ @eventheader = false
18
+ @eventheader_type = ''
13
19
  options.each do |key, value|
14
20
  if key == :metadata
15
21
  value.each do |k,v|
@@ -33,6 +39,24 @@ module Seahorse
33
39
  # @return [Boolean]
34
40
  attr_accessor :deprecated
35
41
 
42
+ # @return [Boolean]
43
+ attr_accessor :event
44
+
45
+ # @return [Boolean]
46
+ attr_accessor :eventstream
47
+
48
+ # @return [Boolean]
49
+ attr_accessor :eventpayload
50
+
51
+ # @return [Boolean]
52
+ attr_accessor :eventheader
53
+
54
+ # @return [String]
55
+ attr_accessor :eventpayload_type
56
+
57
+ # @return [Boolean]
58
+ attr_accessor :eventheader_type
59
+
36
60
  # @return [String, nil]
37
61
  def location
38
62
  @location || (shape && shape[:location])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.20.2
4
+ version: 3.21.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-26 00:00:00.000000000 Z
11
+ date: 2018-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jmespath
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: aws-eventstream
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.0'
55
69
  description: Provides API clients for AWS. This gem is part of the official AWS SDK
56
70
  for Ruby.
57
71
  email:
@@ -63,6 +77,10 @@ files:
63
77
  - ca-bundle.crt
64
78
  - lib/aws-sdk-core.rb
65
79
  - lib/aws-sdk-core/assume_role_credentials.rb
80
+ - lib/aws-sdk-core/binary.rb
81
+ - lib/aws-sdk-core/binary/decode_handler.rb
82
+ - lib/aws-sdk-core/binary/event_parser.rb
83
+ - lib/aws-sdk-core/binary/event_stream_decoder.rb
66
84
  - lib/aws-sdk-core/client_stubs.rb
67
85
  - lib/aws-sdk-core/credential_provider.rb
68
86
  - lib/aws-sdk-core/credential_provider_chain.rb
@@ -71,6 +89,7 @@ files:
71
89
  - lib/aws-sdk-core/eager_loader.rb
72
90
  - lib/aws-sdk-core/ecs_credentials.rb
73
91
  - lib/aws-sdk-core/errors.rb
92
+ - lib/aws-sdk-core/event_emitter.rb
74
93
  - lib/aws-sdk-core/ini_parser.rb
75
94
  - lib/aws-sdk-core/instance_profile_credentials.rb
76
95
  - lib/aws-sdk-core/json.rb
@@ -93,6 +112,7 @@ files:
93
112
  - lib/aws-sdk-core/plugins/apig_credentials_configuration.rb
94
113
  - lib/aws-sdk-core/plugins/apig_user_agent.rb
95
114
  - lib/aws-sdk-core/plugins/credentials_configuration.rb
115
+ - lib/aws-sdk-core/plugins/event_stream_configuration.rb
96
116
  - lib/aws-sdk-core/plugins/global_configuration.rb
97
117
  - lib/aws-sdk-core/plugins/helpful_socket_errors.rb
98
118
  - lib/aws-sdk-core/plugins/idempotency_token.rb