aws-sdk-core 3.46.2 → 3.47.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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/lib/aws-sdk-core.rb +1 -0
  4. data/lib/aws-sdk-core/async_client_stubs.rb +80 -0
  5. data/lib/aws-sdk-core/binary.rb +3 -0
  6. data/lib/aws-sdk-core/binary/decode_handler.rb +21 -1
  7. data/lib/aws-sdk-core/binary/encode_handler.rb +32 -0
  8. data/lib/aws-sdk-core/binary/event_builder.rb +122 -0
  9. data/lib/aws-sdk-core/binary/event_parser.rb +48 -18
  10. data/lib/aws-sdk-core/binary/event_stream_decoder.rb +5 -2
  11. data/lib/aws-sdk-core/binary/event_stream_encoder.rb +53 -0
  12. data/lib/aws-sdk-core/client_stubs.rb +1 -1
  13. data/lib/aws-sdk-core/errors.rb +4 -0
  14. data/lib/aws-sdk-core/event_emitter.rb +42 -0
  15. data/lib/aws-sdk-core/json/handler.rb +19 -1
  16. data/lib/aws-sdk-core/param_validator.rb +9 -1
  17. data/lib/aws-sdk-core/plugins/event_stream_configuration.rb +14 -0
  18. data/lib/aws-sdk-core/plugins/invocation_id.rb +33 -0
  19. data/lib/aws-sdk-core/plugins/stub_responses.rb +19 -7
  20. data/lib/aws-sdk-core/stubbing/protocols/rest.rb +19 -0
  21. data/lib/aws-sdk-core/stubbing/stub_data.rb +1 -1
  22. data/lib/aws-sdk-sts.rb +1 -1
  23. data/lib/aws-sdk-sts/client.rb +1 -1
  24. data/lib/seahorse.rb +9 -0
  25. data/lib/seahorse/client/async_base.rb +50 -0
  26. data/lib/seahorse/client/async_response.rb +73 -0
  27. data/lib/seahorse/client/base.rb +1 -1
  28. data/lib/seahorse/client/h2/connection.rb +242 -0
  29. data/lib/seahorse/client/h2/handler.rb +149 -0
  30. data/lib/seahorse/client/http/async_response.rb +42 -0
  31. data/lib/seahorse/client/http/response.rb +10 -5
  32. data/lib/seahorse/client/networking_error.rb +28 -0
  33. data/lib/seahorse/client/plugins/h2.rb +64 -0
  34. data/lib/seahorse/model/api.rb +4 -0
  35. data/lib/seahorse/model/operation.rb +4 -0
  36. metadata +35 -4
@@ -11,5 +11,33 @@ module Seahorse
11
11
  attr_reader :original_error
12
12
 
13
13
  end
14
+
15
+ # Raised when sending initial headers and data failed
16
+ # for event stream requests over Http2
17
+ class Http2InitialRequestError < StandardError
18
+
19
+ def initialize(error)
20
+ @original_error = error
21
+ end
22
+
23
+ # @return [HTTP2::Error]
24
+ attr_reader :original_error
25
+
26
+ end
27
+
28
+ # Raised when connection failed to initialize a new stream
29
+ class Http2StreamInitializeError < StandardError
30
+
31
+ def initialize(error)
32
+ @original_error = error
33
+ end
34
+
35
+ # @return [HTTP2::Error]
36
+ attr_reader :original_error
37
+
38
+ end
39
+
40
+ # Rasied when trying to use an closed connection
41
+ class Http2ConnectionClosedError < StandardError; end
14
42
  end
15
43
  end
@@ -0,0 +1,64 @@
1
+ require 'seahorse/client/h2/handler'
2
+
3
+ module Seahorse
4
+ module Client
5
+ module Plugins
6
+ class H2 < Plugin
7
+
8
+ # H2 Client
9
+ option(:max_concurrent_streams, default: 100, doc_type: Integer, docstring: <<-DOCS)
10
+ Maximum concurrent streams used in HTTP2 connection, defaults to 100. Note that server may send back
11
+ :settings_max_concurrent_streams value which will take priority when initializing new streams.
12
+ DOCS
13
+
14
+ option(:connection_timeout, default: 60, doc_type: Integer, docstring: <<-DOCS)
15
+ Connection timeout in seconds, defaults to 60 sec.
16
+ DOCS
17
+
18
+ option(:connection_read_timeout, default: 60, doc_type: Integer, docstring: <<-DOCS)
19
+ Connection read timeout in seconds, defaults to 60 sec.
20
+ DOCS
21
+
22
+ option(:read_chunk_size, default: 1024, doc_type: Integer, docstring: '')
23
+
24
+ option(:raise_response_errors, default: true, doc_type: 'Boolean', docstring: <<-DOCS)
25
+ Defaults to `true`, raises errors if exist when #wait or #join! is called upon async response.
26
+ DOCS
27
+
28
+ # SSL Context
29
+ option(:ssl_ca_bundle, default: nil, doc_type: String, docstring: <<-DOCS)
30
+ Full path to the SSL certificate authority bundle file that should be used when
31
+ verifying peer certificates. If you do not pass `:ssl_ca_directory` or `:ssl_ca_bundle`
32
+ the system default will be used if available.
33
+ DOCS
34
+
35
+ option(:ssl_ca_directory, default: nil, doc_type: String, docstring: <<-DOCS)
36
+ Full path of the directory that contains the unbundled SSL certificate authority
37
+ files for verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
38
+ `:ssl_ca_directory` the system default will be used if available.
39
+ DOCS
40
+
41
+ option(:ssl_ca_store, default: nil, doc_type: String, docstring: '')
42
+
43
+ option(:ssl_verify_peer, default: true, doc_type: 'Boolean', docstring: <<-DOCS)
44
+ When `true`, SSL peer certificates are verified when establishing a connection.
45
+ DOCS
46
+
47
+ option(:http_wire_trace, default: false, doc_type: 'Boolean', docstring: <<-DOCS)
48
+ When `true`, HTTP2 debug output will be sent to the `:logger`.
49
+ DOCS
50
+
51
+ option(:enable_alpn, default: false, doc_type: 'Boolean', docstring: <<-DOCS)
52
+ Setting to `true` to enable ALPN in HTTP2 over TLS, requires Ruby version >= 2.3 and
53
+ Openssl version >= 1.0.2. Defaults to false. Note: not all service HTTP2 operations
54
+ supports ALPN on server side, please refer to service documentation.
55
+ DOCS
56
+
57
+ option(:logger)
58
+
59
+ handler(Client::H2::Handler, step: :send)
60
+
61
+ end
62
+ end
63
+ end
64
+ end
@@ -38,6 +38,10 @@ module Seahorse
38
38
  @operations.keys
39
39
  end
40
40
 
41
+ def async_operation_names
42
+ @operations.select {|_, op| op.async }.keys
43
+ end
44
+
41
45
  def add_operation(name, operation)
42
46
  @operations[name.to_sym] = operation
43
47
  end
@@ -8,6 +8,7 @@ module Seahorse
8
8
  @deprecated = false
9
9
  @errors = []
10
10
  @metadata = {}
11
+ @async = false
11
12
  end
12
13
 
13
14
  # @return [String, nil]
@@ -50,6 +51,9 @@ module Seahorse
50
51
  # @return [Boolean]
51
52
  attr_accessor :require_apikey
52
53
 
54
+ # @return [Boolean]
55
+ attr_accessor :async
56
+
53
57
  def [](key)
54
58
  @metadata[key.to_s]
55
59
  end
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.46.2
4
+ version: 3.47.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: 2019-02-19 00:00:00.000000000 Z
11
+ date: 2019-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jmespath
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.0'
47
+ version: '1.1'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.0'
54
+ version: '1.1'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: aws-eventstream
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -59,6 +59,9 @@ dependencies:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.0'
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 1.0.2
62
65
  type: :runtime
63
66
  prerelease: false
64
67
  version_requirements: !ruby/object:Gem::Requirement
@@ -66,6 +69,23 @@ dependencies:
66
69
  - - "~>"
67
70
  - !ruby/object:Gem::Version
68
71
  version: '1.0'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.0.2
75
+ - !ruby/object:Gem::Dependency
76
+ name: http-2
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '0.10'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.10'
69
89
  description: Provides API clients for AWS. This gem is part of the official AWS SDK
70
90
  for Ruby.
71
91
  email:
@@ -77,10 +97,14 @@ files:
77
97
  - ca-bundle.crt
78
98
  - lib/aws-sdk-core.rb
79
99
  - lib/aws-sdk-core/assume_role_credentials.rb
100
+ - lib/aws-sdk-core/async_client_stubs.rb
80
101
  - lib/aws-sdk-core/binary.rb
81
102
  - lib/aws-sdk-core/binary/decode_handler.rb
103
+ - lib/aws-sdk-core/binary/encode_handler.rb
104
+ - lib/aws-sdk-core/binary/event_builder.rb
82
105
  - lib/aws-sdk-core/binary/event_parser.rb
83
106
  - lib/aws-sdk-core/binary/event_stream_decoder.rb
107
+ - lib/aws-sdk-core/binary/event_stream_encoder.rb
84
108
  - lib/aws-sdk-core/client_side_monitoring/publisher.rb
85
109
  - lib/aws-sdk-core/client_side_monitoring/request_metrics.rb
86
110
  - lib/aws-sdk-core/client_stubs.rb
@@ -123,6 +147,7 @@ files:
123
147
  - lib/aws-sdk-core/plugins/global_configuration.rb
124
148
  - lib/aws-sdk-core/plugins/helpful_socket_errors.rb
125
149
  - lib/aws-sdk-core/plugins/idempotency_token.rb
150
+ - lib/aws-sdk-core/plugins/invocation_id.rb
126
151
  - lib/aws-sdk-core/plugins/jsonvalue_converter.rb
127
152
  - lib/aws-sdk-core/plugins/logging.rb
128
153
  - lib/aws-sdk-core/plugins/param_converter.rb
@@ -203,14 +228,19 @@ files:
203
228
  - lib/aws-sdk-sts/resource.rb
204
229
  - lib/aws-sdk-sts/types.rb
205
230
  - lib/seahorse.rb
231
+ - lib/seahorse/client/async_base.rb
232
+ - lib/seahorse/client/async_response.rb
206
233
  - lib/seahorse/client/base.rb
207
234
  - lib/seahorse/client/block_io.rb
208
235
  - lib/seahorse/client/configuration.rb
209
236
  - lib/seahorse/client/events.rb
237
+ - lib/seahorse/client/h2/connection.rb
238
+ - lib/seahorse/client/h2/handler.rb
210
239
  - lib/seahorse/client/handler.rb
211
240
  - lib/seahorse/client/handler_builder.rb
212
241
  - lib/seahorse/client/handler_list.rb
213
242
  - lib/seahorse/client/handler_list_entry.rb
243
+ - lib/seahorse/client/http/async_response.rb
214
244
  - lib/seahorse/client/http/headers.rb
215
245
  - lib/seahorse/client/http/request.rb
216
246
  - lib/seahorse/client/http/response.rb
@@ -225,6 +255,7 @@ files:
225
255
  - lib/seahorse/client/plugin_list.rb
226
256
  - lib/seahorse/client/plugins/content_length.rb
227
257
  - lib/seahorse/client/plugins/endpoint.rb
258
+ - lib/seahorse/client/plugins/h2.rb
228
259
  - lib/seahorse/client/plugins/logging.rb
229
260
  - lib/seahorse/client/plugins/net_http.rb
230
261
  - lib/seahorse/client/plugins/operation_methods.rb