require 'seahorse/client/h2/handler' module Seahorse module Client module Plugins class H2 < Plugin # H2 Client option(:max_concurrent_streams, default: 100, doc_type: Integer, docstring: <<-DOCS) Maximum concurrent streams used in HTTP2 connection, defaults to 100. Note that server may send back :settings_max_concurrent_streams value which will take priority when initializing new streams. DOCS option(:connection_timeout, default: 60, doc_type: Integer, docstring: <<-DOCS) Connection timeout in seconds, defaults to 60 sec. DOCS option(:connection_read_timeout, default: 60, doc_type: Integer, docstring: <<-DOCS) Connection read timeout in seconds, defaults to 60 sec. DOCS option(:read_chunk_size, default: 1024, doc_type: Integer, docstring: '') option(:raise_response_errors, default: true, doc_type: 'Boolean', docstring: <<-DOCS) Defaults to `true`, raises errors if exist when #wait or #join! is called upon async response. DOCS # SSL Context option(:ssl_ca_bundle, default: nil, doc_type: String, docstring: <<-DOCS) Full path to the SSL certificate authority bundle file that should be used when verifying peer certificates. If you do not pass `:ssl_ca_directory` or `:ssl_ca_bundle` the system default will be used if available. DOCS option(:ssl_ca_directory, default: nil, doc_type: String, docstring: <<-DOCS) Full path of the directory that contains the unbundled SSL certificate authority files for verifying peer certificates. If you do not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the system default will be used if available. DOCS option(:ssl_ca_store, default: nil, doc_type: String, docstring: '') option(:ssl_verify_peer, default: true, doc_type: 'Boolean', docstring: <<-DOCS) When `true`, SSL peer certificates are verified when establishing a connection. DOCS option(:http_wire_trace, default: false, doc_type: 'Boolean', docstring: <<-DOCS) When `true`, HTTP2 debug output will be sent to the `:logger`. DOCS option(:enable_alpn, default: false, doc_type: 'Boolean', docstring: <<-DOCS) Setting to `true` to enable ALPN in HTTP2 over TLS, requires Ruby version >= 2.3 and Openssl version >= 1.0.2. Defaults to false. Note: not all service HTTP2 operations supports ALPN on server side, please refer to service documentation. DOCS option(:logger) handler(Client::H2::Handler, step: :send) end end end end