= Cheatsheets

[[AddressResolverOptions]]
== AddressResolverOptions

++++
Configuration options for Vert.x hostname resolver. The resolver uses the local <i>hosts</i> file and performs
DNS <i>A</i> and <i>AAAA</i> queries.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[cacheMaxTimeToLive]]`@cacheMaxTimeToLive`|`Number (int)`|+++
Set the cache maximum TTL value in seconds. After successful resolution IP addresses are cached with their DNS response TTL,
use this to set a maximum value to all responses TTL.
+++
|[[cacheMinTimeToLive]]`@cacheMinTimeToLive`|`Number (int)`|+++
Set the cache minimum TTL value in seconds. After resolution successful IP addresses are cached with their DNS response TTL,
use this to set a minimum value to all responses TTL.
+++
|[[cacheNegativeTimeToLive]]`@cacheNegativeTimeToLive`|`Number (int)`|+++
Set the negative cache TTL value in seconds. After a failed hostname resolution, DNS queries won't be retried
for a period of time equals to the negative TTL. This allows to reduce the response time of negative replies
and reduce the amount of messages to DNS servers.
+++
|[[hostsPath]]`@hostsPath`|`String`|+++
Set the path of an alternate hosts configuration file to use instead of the one provided by the os.
<p/>
The default value is null, so the operating system hosts config is used.
+++
|[[hostsValue]]`@hostsValue`|`Buffer`|+++
Set an alternate hosts configuration file to use instead of the one provided by the os.
<p/>
The value should contain the hosts content literaly, for instance <i>127.0.0.1 localhost</i>
<p/>
The default value is null, so the operating system hosts config is used.
+++
|[[maxQueries]]`@maxQueries`|`Number (int)`|+++
Set the maximum number of queries when an hostname is resolved.
+++
|[[ndots]]`@ndots`|`Number (int)`|+++
Set the ndots value used when resolving using search domains, the default value is <code>-1</code> which
determines the value from the OS on Linux or uses the value <code>1</code>.
+++
|[[optResourceEnabled]]`@optResourceEnabled`|`Boolean`|+++
Set to true to enable the automatic inclusion in DNS queries of an optional record that hints
the remote DNS server about how much data the resolver can read per response.
+++
|[[queryTimeout]]`@queryTimeout`|`Number (long)`|+++
Set the query timeout in milliseconds, i.e the amount of time after a query is considered to be failed.
+++
|[[rdFlag]]`@rdFlag`|`Boolean`|+++
Set the DNS queries <i>Recursion Desired</i> flag value.
+++
|[[rotateServers]]`@rotateServers`|`Boolean`|+++
Set to <code>true</code> to enable round-robin selection of the dns server to use. It spreads the query load
among the servers and avoids all lookup to hit the first server of the list.
+++
|[[searchDomains]]`@searchDomains`|`Array of String`|+++
Set the lists of DNS search domains.
<p/>
When the search domain list is null, the effective search domain list will be populated using
the system DNS search domains.
+++
|[[servers]]`@servers`|`Array of String`|+++
Set the list of DNS server addresses, an address is the IP  of the dns server, followed by an optional
colon and a port, e.g <code>8.8.8.8</code> or {code 192.168.0.1:40000}. When the list is empty, the resolver
will use the list of the system DNS server addresses from the environment, if that list cannot be retrieved
it will use Google's public DNS servers <code>"8.8.8.8"</code> and <code>"8.8.4.4"</code>.
+++
|===

[[Argument]]
== Argument

++++
Defines a command line argument. Unlike options, argument don't have names and are identified using an index. The
first index is 0 (because we are in the computer world).
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[argName]]`@argName`|`String`|+++
Sets the argument name of this link.
+++
|[[defaultValue]]`@defaultValue`|`String`|+++
Sets the default value of this link.
+++
|[[description]]`@description`|`String`|+++
Sets the description of the link.
+++
|[[hidden]]`@hidden`|`Boolean`|+++
Sets whether or not the current link is hidden.
+++
|[[index]]`@index`|`Number (int)`|+++
Sets the argument index.
+++
|[[multiValued]]`@multiValued`|`Boolean`|+++
Sets whether or not the argument can receive several values. Only the last argument can receive several values.
+++
|[[required]]`@required`|`Boolean`|+++
Sets whether or not the current link is required.
+++
|===

[[ClientOptionsBase]]
== ClientOptionsBase

++++
Base class for Client options
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[connectTimeout]]`@connectTimeout`|`Number (int)`|+++
Set the connect timeout
+++
|[[crlPaths]]`@crlPaths`|`Array of String`|+++
Add a CRL path
+++
|[[crlValues]]`@crlValues`|`Array of Buffer`|+++
Add a CRL value
+++
|[[enabledCipherSuites]]`@enabledCipherSuites`|`Array of String`|+++
Add an enabled cipher suite, appended to the ordered suites.
+++
|[[enabledSecureTransportProtocols]]`@enabledSecureTransportProtocols`|`Array of String`|+++
Sets the list of enabled SSL/TLS protocols.
+++
|[[idleTimeout]]`@idleTimeout`|`Number (int)`|+++
Set the idle timeout, default time unit is seconds. Zero means don't timeout.
This determines if a connection will timeout and be closed if no data is received within the timeout.

If you want change default time unit, use link
+++
|[[idleTimeoutUnit]]`@idleTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the idle timeout unit. If not specified, default is seconds.
+++
|[[jdkSslEngineOptions]]`@jdkSslEngineOptions`|`link:dataobjects.html#JdkSSLEngineOptions[JdkSSLEngineOptions]`|-
|[[keyStoreOptions]]`@keyStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|+++
Set the key/cert options in jks format, aka Java keystore.
+++
|[[localAddress]]`@localAddress`|`String`|+++
Set the local interface to bind for network connections. When the local address is null,
it will pick any local address, the default local address is null.
+++
|[[logActivity]]`@logActivity`|`Boolean`|+++
Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
+++
|[[metricsName]]`@metricsName`|`String`|+++
Set the metrics name identifying the reported metrics, useful for grouping metrics
with the same name.
+++
|[[openSslEngineOptions]]`@openSslEngineOptions`|`link:dataobjects.html#OpenSSLEngineOptions[OpenSSLEngineOptions]`|-
|[[pemKeyCertOptions]]`@pemKeyCertOptions`|`link:dataobjects.html#PemKeyCertOptions[PemKeyCertOptions]`|+++
Set the key/cert store options in pem format.
+++
|[[pemTrustOptions]]`@pemTrustOptions`|`link:dataobjects.html#PemTrustOptions[PemTrustOptions]`|+++
Set the trust options in pem format
+++
|[[pfxKeyCertOptions]]`@pfxKeyCertOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|+++
Set the key/cert options in pfx format.
+++
|[[pfxTrustOptions]]`@pfxTrustOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|+++
Set the trust options in pfx format
+++
|[[proxyOptions]]`@proxyOptions`|`link:dataobjects.html#ProxyOptions[ProxyOptions]`|+++
Set proxy options for connections via CONNECT proxy (e.g. Squid) or a SOCKS proxy.
+++
|[[receiveBufferSize]]`@receiveBufferSize`|`Number (int)`|+++
Set the TCP receive buffer size
+++
|[[reuseAddress]]`@reuseAddress`|`Boolean`|+++
Set the value of reuse address
+++
|[[reusePort]]`@reusePort`|`Boolean`|+++
Set the value of reuse port.
<p/>
This is only supported by native transports.
+++
|[[sendBufferSize]]`@sendBufferSize`|`Number (int)`|+++
Set the TCP send buffer size
+++
|[[soLinger]]`@soLinger`|`Number (int)`|+++
Set whether SO_linger keep alive is enabled
+++
|[[ssl]]`@ssl`|`Boolean`|+++
Set whether SSL/TLS is enabled
+++
|[[sslHandshakeTimeout]]`@sslHandshakeTimeout`|`Number (long)`|+++
Set the SSL handshake timeout, default time unit is seconds.
+++
|[[sslHandshakeTimeoutUnit]]`@sslHandshakeTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the SSL handshake timeout unit. If not specified, default is seconds.
+++
|[[tcpCork]]`@tcpCork`|`Boolean`|+++
Enable the <code>TCP_CORK</code> option - only with linux native transport.
+++
|[[tcpFastOpen]]`@tcpFastOpen`|`Boolean`|+++
Enable the <code>TCP_FASTOPEN</code> option - only with linux native transport.
+++
|[[tcpKeepAlive]]`@tcpKeepAlive`|`Boolean`|+++
Set whether TCP keep alive is enabled
+++
|[[tcpNoDelay]]`@tcpNoDelay`|`Boolean`|+++
Set whether TCP no delay is enabled
+++
|[[tcpQuickAck]]`@tcpQuickAck`|`Boolean`|+++
Enable the <code>TCP_QUICKACK</code> option - only with linux native transport.
+++
|[[trafficClass]]`@trafficClass`|`Number (int)`|+++
Set the value of traffic class
+++
|[[trustAll]]`@trustAll`|`Boolean`|+++
Set whether all server certificates should be trusted
+++
|[[trustStoreOptions]]`@trustStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|+++
Set the trust options in jks format, aka Java truststore
+++
|[[useAlpn]]`@useAlpn`|`Boolean`|+++
Set the ALPN usage.
+++
|[[usePooledBuffers]]`@usePooledBuffers`|`Boolean`|+++
Set whether Netty pooled buffers are enabled
+++
|===

[[CopyOptions]]
== CopyOptions

++++
Describes the copy (and move) options.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[atomicMove]]`@atomicMove`|`Boolean`|+++
Whether move should be performed as an atomic filesystem operation. Defaults to <code>false</code>.
+++
|[[copyAttributes]]`@copyAttributes`|`Boolean`|+++
Whether the file attributes should be copied. Defaults to <code>false</code>.
+++
|[[nofollowLinks]]`@nofollowLinks`|`Boolean`|+++
Whether symbolic links should not be followed during copy or move operations. Defaults to <code>false</code>.
+++
|[[replaceExisting]]`@replaceExisting`|`Boolean`|+++
Whether an existing file, empty directory, or link should be replaced. Defaults to <code>false</code>.
+++
|===

[[DatagramSocketOptions]]
== DatagramSocketOptions

++++
Options used to configure a datagram socket.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[broadcast]]`@broadcast`|`Boolean`|+++
Set if the socket can send or receive broadcast packets
+++
|[[ipV6]]`@ipV6`|`Boolean`|+++
Set if IP v6 should be used
+++
|[[logActivity]]`@logActivity`|`Boolean`|+++
Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
+++
|[[loopbackModeDisabled]]`@loopbackModeDisabled`|`Boolean`|+++
Set if loopback mode is disabled
+++
|[[multicastNetworkInterface]]`@multicastNetworkInterface`|`String`|+++
Set the multicast network interface address
+++
|[[multicastTimeToLive]]`@multicastTimeToLive`|`Number (int)`|+++
Set the multicast ttl value
+++
|[[receiveBufferSize]]`@receiveBufferSize`|`Number (int)`|+++
Set the TCP receive buffer size
+++
|[[reuseAddress]]`@reuseAddress`|`Boolean`|+++
Set the value of reuse address
+++
|[[reusePort]]`@reusePort`|`Boolean`|+++
Set the value of reuse port.
<p/>
This is only supported by native transports.
+++
|[[sendBufferSize]]`@sendBufferSize`|`Number (int)`|+++
Set the TCP send buffer size
+++
|[[trafficClass]]`@trafficClass`|`Number (int)`|+++
Set the value of traffic class
+++
|===

[[DeliveryOptions]]
== DeliveryOptions

++++
Delivery options are used to configure message delivery.
<p>
Delivery options allow to configure delivery timeout and message codec name, and to provide any headers
that you wish to send with the message.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[codecName]]`@codecName`|`String`|+++
Set the codec name.
+++
|[[headers]]`@headers`|`String`|+++
Add a message header.
<p>
Message headers can be sent with any message and will be accessible with link
at the recipient.
+++
|[[localOnly]]`@localOnly`|`Boolean`|+++
Whether a message should be delivered to local consumers only. Defaults to <code>false</code>.

<p>
<strong>This option is effective in clustered mode only and does not apply to reply messages</strong>.
+++
|[[sendTimeout]]`@sendTimeout`|`Number (long)`|+++
Set the send timeout.
+++
|===

[[DeploymentOptions]]
== DeploymentOptions

++++
Options for configuring a verticle deployment.
<p>
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[config]]`@config`|`Json object`|+++
Set the JSON configuration that will be passed to the verticle(s) when it's deployed
+++
|[[extraClasspath]]`@extraClasspath`|`Array of String`|+++
Set any extra classpath to be used when deploying the verticle.
<p>
Ignored if no isolation group is set.
+++
|[[ha]]`@ha`|`Boolean`|+++
Set whether the verticle(s) will be deployed as HA.
+++
|[[instances]]`@instances`|`Number (int)`|+++
Set the number of instances that should be deployed.
+++
|[[isolatedClasses]]`@isolatedClasses`|`Array of String`|+++
Set the isolated class names.
+++
|[[isolationGroup]]`@isolationGroup`|`String`|+++
Set the isolation group that will be used when deploying the verticle(s)
+++
|[[maxWorkerExecuteTime]]`@maxWorkerExecuteTime`|`Number (long)`|+++
Sets the value of max worker execute time, in link.
<p>
The default value of link is
+++
|[[maxWorkerExecuteTimeUnit]]`@maxWorkerExecuteTimeUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the time unit of <code>maxWorkerExecuteTime</code>
+++
|[[multiThreaded]]`@multiThreaded`|`Boolean`|+++
Set whether the verticle(s) should be deployed as a multi-threaded worker verticle.
<p>
<strong>WARNING</strong>: Multi-threaded worker verticles are a deprecated feature.
<p>
Most applications will have no need for them. Because of the concurrency in these verticles you have to be
very careful to keep the verticle in a consistent state using standard Java techniques for multi-threaded
programming.
<p>
You can read the documentation that explains how you can replace this feature by the usage of custom worker
pools or <code>executeBlocking</code> calls.
+++
|[[worker]]`@worker`|`Boolean`|+++
Set whether the verticle(s) should be deployed as a worker verticle
+++
|[[workerPoolName]]`@workerPoolName`|`String`|+++
Set the worker pool name to use for this verticle. When no name is set, the Vert.x
worker pool will be used, when a name is set, the verticle will use a named worker pool.
+++
|[[workerPoolSize]]`@workerPoolSize`|`Number (int)`|+++
Set the maximum number of worker threads to be used by the Vert.x instance.
+++
|===

[[DnsClientOptions]]
== DnsClientOptions

++++
Configuration options for Vert.x DNS client.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[host]]`@host`|`String`|+++
Set the host name to be used by this client in requests.
+++
|[[logActivity]]`@logActivity`|`Boolean`|+++
Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
+++
|[[port]]`@port`|`Number (int)`|+++
Set the port to be used by this client in requests.
+++
|[[queryTimeout]]`@queryTimeout`|`Number (long)`|+++
Set the query timeout in milliseconds, i.e the amount of time after a query is considered to be failed.
+++
|[[recursionDesired]]`@recursionDesired`|`Boolean`|+++
Set whether or not recursion is desired
+++
|===

[[EventBusOptions]]
== EventBusOptions

++++
Options to configure the event bus.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[acceptBacklog]]`@acceptBacklog`|`Number (int)`|+++
Set the accept back log.
+++
|[[clientAuth]]`@clientAuth`|`link:enums.html#ClientAuth[ClientAuth]`|+++
Set whether client auth is required
+++
|[[clusterPingInterval]]`@clusterPingInterval`|`Number (long)`|+++
Set the value of cluster ping interval, in ms.
+++
|[[clusterPingReplyInterval]]`@clusterPingReplyInterval`|`Number (long)`|+++
Set the value of cluster ping reply interval, in ms.
+++
|[[clusterPublicHost]]`@clusterPublicHost`|`String`|+++
Set the public facing hostname to be used for clustering.
Sometimes, e.g. when running on certain clouds, the local address the server listens on for clustering is
not the same address that other nodes connect to it at, as the OS / cloud infrastructure does some kind of
proxying. If this is the case you can specify a public hostname which is different from the hostname the
server listens at.
<p>
The default value is null which means use the same as the cluster hostname.
+++
|[[clusterPublicPort]]`@clusterPublicPort`|`Number (int)`|+++
See link for an explanation.
+++
|[[clustered]]`@clustered`|`Boolean`|+++
Sets whether or not the event bus is clustered.
+++
|[[connectTimeout]]`@connectTimeout`|`Number (int)`|+++
Sets the connect timeout
+++
|[[crlPaths]]`@crlPaths`|`Array of String`|+++
Add a CRL path
+++
|[[crlValues]]`@crlValues`|`Array of Buffer`|+++
Add a CRL value
+++
|[[enabledCipherSuites]]`@enabledCipherSuites`|`Array of String`|+++
Add an enabled cipher suite, appended to the ordered suites.
+++
|[[enabledSecureTransportProtocols]]`@enabledSecureTransportProtocols`|`Array of String`|+++
Sets the list of enabled SSL/TLS protocols.
+++
|[[host]]`@host`|`String`|+++
Sets the host.
+++
|[[idleTimeout]]`@idleTimeout`|`Number (int)`|+++
Set the idle timeout, default time unit is seconds. Zero means don't timeout.
This determines if a connection will timeout and be closed if no data is received within the timeout.

If you want change default time unit, use link
+++
|[[idleTimeoutUnit]]`@idleTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the idle timeout unit. If not specified, default is seconds.
+++
|[[jdkSslEngineOptions]]`@jdkSslEngineOptions`|`link:dataobjects.html#JdkSSLEngineOptions[JdkSSLEngineOptions]`|-
|[[keyStoreOptions]]`@keyStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|+++
Set the key/cert options in jks format, aka Java keystore.
+++
|[[logActivity]]`@logActivity`|`Boolean`|+++
Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
+++
|[[openSslEngineOptions]]`@openSslEngineOptions`|`link:dataobjects.html#OpenSSLEngineOptions[OpenSSLEngineOptions]`|-
|[[pemKeyCertOptions]]`@pemKeyCertOptions`|`link:dataobjects.html#PemKeyCertOptions[PemKeyCertOptions]`|+++
Set the key/cert store options in pem format.
+++
|[[pemTrustOptions]]`@pemTrustOptions`|`link:dataobjects.html#PemTrustOptions[PemTrustOptions]`|+++
Set the trust options in pem format
+++
|[[pfxKeyCertOptions]]`@pfxKeyCertOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|+++
Set the key/cert options in pfx format.
+++
|[[pfxTrustOptions]]`@pfxTrustOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|+++
Set the trust options in pfx format
+++
|[[port]]`@port`|`Number (int)`|+++
Sets the port.
+++
|[[receiveBufferSize]]`@receiveBufferSize`|`Number (int)`|+++
Set the TCP receive buffer size
+++
|[[reconnectAttempts]]`@reconnectAttempts`|`Number (int)`|+++
Sets the value of reconnect attempts.
+++
|[[reconnectInterval]]`@reconnectInterval`|`Number (long)`|+++
Set the reconnect interval.
+++
|[[reuseAddress]]`@reuseAddress`|`Boolean`|+++
Set the value of reuse address
+++
|[[reusePort]]`@reusePort`|`Boolean`|+++
Set the value of reuse port.
<p/>
This is only supported by native transports.
+++
|[[sendBufferSize]]`@sendBufferSize`|`Number (int)`|+++
Set the TCP send buffer size
+++
|[[soLinger]]`@soLinger`|`Number (int)`|+++
Set whether SO_linger keep alive is enabled
+++
|[[ssl]]`@ssl`|`Boolean`|+++
Set whether SSL/TLS is enabled
+++
|[[sslHandshakeTimeout]]`@sslHandshakeTimeout`|`Number (long)`|+++
Set the SSL handshake timeout, default time unit is seconds.
+++
|[[sslHandshakeTimeoutUnit]]`@sslHandshakeTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the SSL handshake timeout unit. If not specified, default is seconds.
+++
|[[tcpCork]]`@tcpCork`|`Boolean`|+++
Enable the <code>TCP_CORK</code> option - only with linux native transport.
+++
|[[tcpFastOpen]]`@tcpFastOpen`|`Boolean`|+++
Enable the <code>TCP_FASTOPEN</code> option - only with linux native transport.
+++
|[[tcpKeepAlive]]`@tcpKeepAlive`|`Boolean`|+++
Set whether TCP keep alive is enabled
+++
|[[tcpNoDelay]]`@tcpNoDelay`|`Boolean`|+++
Set whether TCP no delay is enabled
+++
|[[tcpQuickAck]]`@tcpQuickAck`|`Boolean`|+++
Enable the <code>TCP_QUICKACK</code> option - only with linux native transport.
+++
|[[trafficClass]]`@trafficClass`|`Number (int)`|+++
Set the value of traffic class
+++
|[[trustAll]]`@trustAll`|`Boolean`|+++
Set whether all server certificates should be trusted.
+++
|[[trustStoreOptions]]`@trustStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|+++
Set the trust options in jks format, aka Java truststore
+++
|[[useAlpn]]`@useAlpn`|`Boolean`|+++
Set the ALPN usage.
+++
|[[usePooledBuffers]]`@usePooledBuffers`|`Boolean`|+++
Set whether Netty pooled buffers are enabled
+++
|===

[[FileSystemOptions]]
== FileSystemOptions

++++
Vert.x file system base configuration, this class can be extended by provider implementations to configure
those specific implementations.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[classPathResolvingEnabled]]`@classPathResolvingEnabled`|`Boolean`|+++
When vert.x cannot find the file on the filesystem it tries to resolve the
file from the class path when this is set to <code>true</code>.
+++
|[[fileCacheDir]]`@fileCacheDir`|`String`|+++
When vert.x reads a file that is packaged with the application it gets
extracted to this directory first and subsequent reads will use the extracted
file to get better IO performance.
+++
|[[fileCachingEnabled]]`@fileCachingEnabled`|`Boolean`|+++
Set to <code>true</code> to cache files on the real file system
when the filesystem performs class path resolving.
+++
|===

[[GoAway]]
== GoAway

++++
A  frame.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[debugData]]`@debugData`|`Buffer`|+++
Set the additional debug data
+++
|[[errorCode]]`@errorCode`|`Number (long)`|+++

+++
|[[lastStreamId]]`@lastStreamId`|`Number (int)`|+++
Set the last stream id.
+++
|===

[[Http2Settings]]
== Http2Settings

++++
HTTP2 settings, the settings is initialized with the default HTTP/2 values.<p>

The settings expose the parameters defined by the HTTP/2 specification, as well as extra settings for
protocol extensions.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[headerTableSize]]`@headerTableSize`|`Number (long)`|+++
Set  HTTP/2 setting.
+++
|[[initialWindowSize]]`@initialWindowSize`|`Number (int)`|+++
Set the  HTTP/2 setting
+++
|[[maxConcurrentStreams]]`@maxConcurrentStreams`|`Number (long)`|+++
Set the  HTTP/2 setting
+++
|[[maxFrameSize]]`@maxFrameSize`|`Number (int)`|+++
Set the  HTTP/2 setting
+++
|[[maxHeaderListSize]]`@maxHeaderListSize`|`Number (long)`|+++
Set the  HTTP/2 setting
+++
|[[pushEnabled]]`@pushEnabled`|`Boolean`|+++
Set the  HTTP/2 setting
+++
|===

[[HttpClientOptions]]
== HttpClientOptions

++++
Options describing how an link will make connections.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[alpnVersions]]`@alpnVersions`|`Array of link:enums.html#HttpVersion[HttpVersion]`|+++
Set the list of protocol versions to provide to the server during the Application-Layer Protocol Negotiation.
When the list is empty, the client provides a best effort list according to link:

<ul>
  <li>: [ "h2", "http/1.1" ]</li>
  <li>otherwise: [link]</li>
</ul>
+++
|[[connectTimeout]]`@connectTimeout`|`Number (int)`|+++
Set the connect timeout
+++
|[[crlPaths]]`@crlPaths`|`Array of String`|+++
Add a CRL path
+++
|[[crlValues]]`@crlValues`|`Array of Buffer`|+++
Add a CRL value
+++
|[[decoderInitialBufferSize]]`@decoderInitialBufferSize`|`Number (int)`|+++
set to <code>initialBufferSizeHttpDecoder</code> the initial buffer of the HttpDecoder.
+++
|[[defaultHost]]`@defaultHost`|`String`|+++
Set the default host name to be used by this client in requests if none is provided when making the request.
+++
|[[defaultPort]]`@defaultPort`|`Number (int)`|+++
Set the default port to be used by this client in requests if none is provided when making the request.
+++
|[[enabledCipherSuites]]`@enabledCipherSuites`|`Array of String`|+++
Add an enabled cipher suite, appended to the ordered suites.
+++
|[[enabledSecureTransportProtocols]]`@enabledSecureTransportProtocols`|`Array of String`|+++
Sets the list of enabled SSL/TLS protocols.
+++
|[[forceSni]]`@forceSni`|`Boolean`|+++
By default, the server name is only sent for Fully Qualified Domain Name (FQDN), setting
this property to <code>true</code> forces the server name to be always sent.
+++
|[[http2ClearTextUpgrade]]`@http2ClearTextUpgrade`|`Boolean`|+++
Set to <code>true</code> when an <i>h2c</i> connection is established using an HTTP/1.1 upgrade request, and <code>false</code>
when an <i>h2c</i> connection is established directly (with prior knowledge).
+++
|[[http2ConnectionWindowSize]]`@http2ConnectionWindowSize`|`Number (int)`|+++
Set the default HTTP/2 connection window size. It overrides the initial window
size set by link, so the connection window size
is greater than for its streams, in order the data throughput.
<p/>
A value of <code>-1</code> reuses the initial window size setting.
+++
|[[http2KeepAliveTimeout]]`@http2KeepAliveTimeout`|`Number (int)`|+++
Set the keep alive timeout for HTTP/2 connections, in seconds.
<p/>
This value determines how long a connection remains unused in the pool before being evicted and closed.
+++
|[[http2MaxPoolSize]]`@http2MaxPoolSize`|`Number (int)`|+++
Set the maximum pool size for HTTP/2 connections
+++
|[[http2MultiplexingLimit]]`@http2MultiplexingLimit`|`Number (int)`|+++
Set a client limit of the number concurrent streams for each HTTP/2 connection, this limits the number
of streams the client can create for a connection. The effective number of streams for a
connection is the min of this value and the server's initial settings.
<p/>
Setting the value to <code>-1</code> means to use the value sent by the server's initial settings.
<code>-1</code> is the default value.
+++
|[[idleTimeout]]`@idleTimeout`|`Number (int)`|+++
Set the idle timeout, default time unit is seconds. Zero means don't timeout.
This determines if a connection will timeout and be closed if no data is received within the timeout.

If you want change default time unit, use link
+++
|[[idleTimeoutUnit]]`@idleTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the idle timeout unit. If not specified, default is seconds.
+++
|[[initialSettings]]`@initialSettings`|`link:dataobjects.html#Http2Settings[Http2Settings]`|+++
Set the HTTP/2 connection settings immediately sent by to the server when the client connects.
+++
|[[jdkSslEngineOptions]]`@jdkSslEngineOptions`|`link:dataobjects.html#JdkSSLEngineOptions[JdkSSLEngineOptions]`|-
|[[keepAlive]]`@keepAlive`|`Boolean`|+++
Set whether keep alive is enabled on the client
+++
|[[keepAliveTimeout]]`@keepAliveTimeout`|`Number (int)`|+++
Set the keep alive timeout for HTTP/1.x, in seconds.
<p/>
This value determines how long a connection remains unused in the pool before being evicted and closed.
+++
|[[keyStoreOptions]]`@keyStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|+++
Set the key/cert options in jks format, aka Java keystore.
+++
|[[localAddress]]`@localAddress`|`String`|+++
Set the local interface to bind for network connections. When the local address is null,
it will pick any local address, the default local address is null.
+++
|[[logActivity]]`@logActivity`|`Boolean`|+++
Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
+++
|[[maxChunkSize]]`@maxChunkSize`|`Number (int)`|+++
Set the maximum HTTP chunk size
+++
|[[maxHeaderSize]]`@maxHeaderSize`|`Number (int)`|+++
Set the maximum length of all headers for HTTP/1.x .
+++
|[[maxInitialLineLength]]`@maxInitialLineLength`|`Number (int)`|+++
Set the maximum length of the initial line for HTTP/1.x (e.g. <code>"HTTP/1.1 200 OK"</code>)
+++
|[[maxPoolSize]]`@maxPoolSize`|`Number (int)`|+++
Set the maximum pool size for connections
+++
|[[maxRedirects]]`@maxRedirects`|`Number (int)`|+++
Set to <code>maxRedirects</code> the maximum number of redirection a request can follow.
+++
|[[maxWaitQueueSize]]`@maxWaitQueueSize`|`Number (int)`|+++
Set the maximum requests allowed in the wait queue, any requests beyond the max size will result in
a ConnectionPoolTooBusyException.  If the value is set to a negative number then the queue will be unbounded.
+++
|[[maxWebsocketFrameSize]]`@maxWebsocketFrameSize`|`Number (int)`|+++
Set the max WebSocket frame size
+++
|[[maxWebsocketMessageSize]]`@maxWebsocketMessageSize`|`Number (int)`|+++
Set the max WebSocket message size
+++
|[[metricsName]]`@metricsName`|`String`|+++
Set the metrics name identifying the reported metrics, useful for grouping metrics
with the same name.
+++
|[[openSslEngineOptions]]`@openSslEngineOptions`|`link:dataobjects.html#OpenSSLEngineOptions[OpenSSLEngineOptions]`|-
|[[pemKeyCertOptions]]`@pemKeyCertOptions`|`link:dataobjects.html#PemKeyCertOptions[PemKeyCertOptions]`|+++
Set the key/cert store options in pem format.
+++
|[[pemTrustOptions]]`@pemTrustOptions`|`link:dataobjects.html#PemTrustOptions[PemTrustOptions]`|+++
Set the trust options in pem format
+++
|[[pfxKeyCertOptions]]`@pfxKeyCertOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|+++
Set the key/cert options in pfx format.
+++
|[[pfxTrustOptions]]`@pfxTrustOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|+++
Set the trust options in pfx format
+++
|[[pipelining]]`@pipelining`|`Boolean`|+++
Set whether pipe-lining is enabled on the client
+++
|[[pipeliningLimit]]`@pipeliningLimit`|`Number (int)`|+++
Set the limit of pending requests a pipe-lined HTTP/1 connection can send.
+++
|[[poolCleanerPeriod]]`@poolCleanerPeriod`|`Number (int)`|+++
Set the connection pool cleaner period in milli seconds, a non positive value disables expiration checks and connections
will remain in the pool until they are closed.
+++
|[[protocolVersion]]`@protocolVersion`|`link:enums.html#HttpVersion[HttpVersion]`|+++
Set the protocol version.
+++
|[[proxyOptions]]`@proxyOptions`|`link:dataobjects.html#ProxyOptions[ProxyOptions]`|+++
Set proxy options for connections via CONNECT proxy (e.g. Squid) or a SOCKS proxy.
+++
|[[receiveBufferSize]]`@receiveBufferSize`|`Number (int)`|+++
Set the TCP receive buffer size
+++
|[[reuseAddress]]`@reuseAddress`|`Boolean`|+++
Set the value of reuse address
+++
|[[reusePort]]`@reusePort`|`Boolean`|+++
Set the value of reuse port.
<p/>
This is only supported by native transports.
+++
|[[sendBufferSize]]`@sendBufferSize`|`Number (int)`|+++
Set the TCP send buffer size
+++
|[[sendUnmaskedFrames]]`@sendUnmaskedFrames`|`Boolean`|+++
Set <code>true</code> when the client wants to skip frame masking.
<p>
You may want to set it <code>true</code> on server by server WebSocket communication: in this case you are by passing
RFC6455 protocol.
<p>
It's <code>false</code> as default.
+++
|[[soLinger]]`@soLinger`|`Number (int)`|+++
Set whether SO_linger keep alive is enabled
+++
|[[ssl]]`@ssl`|`Boolean`|+++
Set whether SSL/TLS is enabled
+++
|[[sslHandshakeTimeout]]`@sslHandshakeTimeout`|`Number (long)`|+++
Set the SSL handshake timeout, default time unit is seconds.
+++
|[[sslHandshakeTimeoutUnit]]`@sslHandshakeTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the SSL handshake timeout unit. If not specified, default is seconds.
+++
|[[tcpCork]]`@tcpCork`|`Boolean`|+++
Enable the <code>TCP_CORK</code> option - only with linux native transport.
+++
|[[tcpFastOpen]]`@tcpFastOpen`|`Boolean`|+++
Enable the <code>TCP_FASTOPEN</code> option - only with linux native transport.
+++
|[[tcpKeepAlive]]`@tcpKeepAlive`|`Boolean`|+++
Set whether TCP keep alive is enabled
+++
|[[tcpNoDelay]]`@tcpNoDelay`|`Boolean`|+++
Set whether TCP no delay is enabled
+++
|[[tcpQuickAck]]`@tcpQuickAck`|`Boolean`|+++
Enable the <code>TCP_QUICKACK</code> option - only with linux native transport.
+++
|[[trafficClass]]`@trafficClass`|`Number (int)`|+++
Set the value of traffic class
+++
|[[trustAll]]`@trustAll`|`Boolean`|+++
Set whether all server certificates should be trusted
+++
|[[trustStoreOptions]]`@trustStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|+++
Set the trust options in jks format, aka Java truststore
+++
|[[tryUseCompression]]`@tryUseCompression`|`Boolean`|+++
Set whether compression is enabled
+++
|[[tryUsePerFrameWebsocketCompression]]`@tryUsePerFrameWebsocketCompression`|`Boolean`|+++
Set whether the client will offer the WebSocket per-frame deflate compression extension.
+++
|[[tryUsePerMessageWebsocketCompression]]`@tryUsePerMessageWebsocketCompression`|`Boolean`|+++
Set whether the client will offer the WebSocket per-message deflate compression extension.
+++
|[[tryWebsocketDeflateFrameCompression]]`@tryWebsocketDeflateFrameCompression`|`Boolean`|+++

+++
|[[useAlpn]]`@useAlpn`|`Boolean`|+++
Set the ALPN usage.
+++
|[[usePooledBuffers]]`@usePooledBuffers`|`Boolean`|+++
Set whether Netty pooled buffers are enabled
+++
|[[verifyHost]]`@verifyHost`|`Boolean`|+++
Set whether hostname verification is enabled
+++
|[[websocketCompressionAllowClientNoContext]]`@websocketCompressionAllowClientNoContext`|`Boolean`|+++
Set whether the <code>client_no_context_takeover</code> parameter of the WebSocket per-message
deflate compression extension will be offered.
+++
|[[websocketCompressionLevel]]`@websocketCompressionLevel`|`Number (int)`|+++
Set the Websocket deflate compression level.
+++
|[[websocketCompressionRequestServerNoContext]]`@websocketCompressionRequestServerNoContext`|`Boolean`|+++
Set whether the <code>server_no_context_takeover</code> parameter of the WebSocket per-message
deflate compression extension will be offered.
+++
|===

[[HttpServerOptions]]
== HttpServerOptions

++++
Represents options used by an link instance
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[acceptBacklog]]`@acceptBacklog`|`Number (int)`|+++
Set the accept back log
+++
|[[acceptUnmaskedFrames]]`@acceptUnmaskedFrames`|`Boolean`|+++
Set <code>true</code> when the server accepts unmasked frame.
As default Server doesn't accept unmasked frame, you can bypass this behaviour (RFC 6455) setting <code>true</code>.
It's set to <code>false</code> as default.
+++
|[[alpnVersions]]`@alpnVersions`|`Array of link:enums.html#HttpVersion[HttpVersion]`|+++
Set the list of protocol versions to provide to the server during the Application-Layer Protocol Negotiatiation.
+++
|[[clientAuth]]`@clientAuth`|`link:enums.html#ClientAuth[ClientAuth]`|+++
Set whether client auth is required
+++
|[[clientAuthRequired]]`@clientAuthRequired`|`Boolean`|+++
Set whether client auth is required
+++
|[[compressionLevel]]`@compressionLevel`|`Number (int)`|+++
This method allows to set the compression level to be used in http1.x/2 response bodies
when compression support is turned on (@see setCompressionSupported) and the client advertises
to support <code>deflate/gzip</code> compression in the <code>Accept-Encoding</code> header

default value is : 6 (Netty legacy)

The compression level determines how much the data is compressed on a scale from 1 to 9,
where '9' is trying to achieve the maximum compression ratio while '1' instead is giving
priority to speed instead of compression ratio using some algorithm optimizations and skipping
pedantic loops that usually gives just little improvements

While one can think that best value is always the maximum compression ratio,
there's a trade-off to consider: the most compressed level requires the most
computational work to compress/decompress data, e.g. more dictionary lookups and loops.

E.g. you have it set fairly high on a high-volume website, you may experience performance degradation
and latency on resource serving due to CPU overload, and, however - as the computational work is required also client side
while decompressing - setting an higher compression level can result in an overall higher page load time
especially nowadays when many clients are handled mobile devices with a low CPU profile.

see also: http://www.gzip.org/algorithm.txt
+++
|[[compressionSupported]]`@compressionSupported`|`Boolean`|+++
Set whether the server should support gzip/deflate compression
(serving compressed responses to clients advertising support for them with Accept-Encoding header)
+++
|[[crlPaths]]`@crlPaths`|`Array of String`|+++
Add a CRL path
+++
|[[crlValues]]`@crlValues`|`Array of Buffer`|+++
Add a CRL value
+++
|[[decoderInitialBufferSize]]`@decoderInitialBufferSize`|`Number (int)`|+++
Set the initial buffer size for the HTTP decoder
+++
|[[decompressionSupported]]`@decompressionSupported`|`Boolean`|+++
Set whether the server supports decompression
+++
|[[enabledCipherSuites]]`@enabledCipherSuites`|`Array of String`|+++
Add an enabled cipher suite, appended to the ordered suites.
+++
|[[enabledSecureTransportProtocols]]`@enabledSecureTransportProtocols`|`Array of String`|+++
Sets the list of enabled SSL/TLS protocols.
+++
|[[handle100ContinueAutomatically]]`@handle100ContinueAutomatically`|`Boolean`|+++
Set whether 100 Continue should be handled automatically
+++
|[[host]]`@host`|`String`|+++
Set the host
+++
|[[http2ConnectionWindowSize]]`@http2ConnectionWindowSize`|`Number (int)`|+++
Set the default HTTP/2 connection window size. It overrides the initial window
size set by link, so the connection window size
is greater than for its streams, in order the data throughput.
<p/>
A value of <code>-1</code> reuses the initial window size setting.
+++
|[[idleTimeout]]`@idleTimeout`|`Number (int)`|+++
Set the idle timeout, default time unit is seconds. Zero means don't timeout.
This determines if a connection will timeout and be closed if no data is received within the timeout.

If you want change default time unit, use link
+++
|[[idleTimeoutUnit]]`@idleTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the idle timeout unit. If not specified, default is seconds.
+++
|[[initialSettings]]`@initialSettings`|`link:dataobjects.html#Http2Settings[Http2Settings]`|+++
Set the HTTP/2 connection settings immediatly sent by the server when a client connects.
+++
|[[jdkSslEngineOptions]]`@jdkSslEngineOptions`|`link:dataobjects.html#JdkSSLEngineOptions[JdkSSLEngineOptions]`|-
|[[keyStoreOptions]]`@keyStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|+++
Set the key/cert options in jks format, aka Java keystore.
+++
|[[logActivity]]`@logActivity`|`Boolean`|+++
Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
+++
|[[maxChunkSize]]`@maxChunkSize`|`Number (int)`|+++
Set the maximum HTTP chunk size that link will receive
+++
|[[maxHeaderSize]]`@maxHeaderSize`|`Number (int)`|+++
Set the maximum length of all headers for HTTP/1.x .
+++
|[[maxInitialLineLength]]`@maxInitialLineLength`|`Number (int)`|+++
Set the maximum length of the initial line for HTTP/1.x (e.g. <code>"GET / HTTP/1.0"</code>)
+++
|[[maxWebsocketFrameSize]]`@maxWebsocketFrameSize`|`Number (int)`|+++
Set the maximum WebSocket frames size
+++
|[[maxWebsocketMessageSize]]`@maxWebsocketMessageSize`|`Number (int)`|+++
Set the maximum WebSocket message size
+++
|[[openSslEngineOptions]]`@openSslEngineOptions`|`link:dataobjects.html#OpenSSLEngineOptions[OpenSSLEngineOptions]`|-
|[[pemKeyCertOptions]]`@pemKeyCertOptions`|`link:dataobjects.html#PemKeyCertOptions[PemKeyCertOptions]`|+++
Set the key/cert store options in pem format.
+++
|[[pemTrustOptions]]`@pemTrustOptions`|`link:dataobjects.html#PemTrustOptions[PemTrustOptions]`|+++
Set the trust options in pem format
+++
|[[perFrameWebsocketCompressionSupported]]`@perFrameWebsocketCompressionSupported`|`Boolean`|+++
Enable or disable support for the WebSocket per-frame deflate compression extension.
+++
|[[perMessageWebsocketCompressionSupported]]`@perMessageWebsocketCompressionSupported`|`Boolean`|+++
Enable or disable support for WebSocket per-message deflate compression extension.
+++
|[[pfxKeyCertOptions]]`@pfxKeyCertOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|+++
Set the key/cert options in pfx format.
+++
|[[pfxTrustOptions]]`@pfxTrustOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|+++
Set the trust options in pfx format
+++
|[[port]]`@port`|`Number (int)`|+++
Set the port
+++
|[[receiveBufferSize]]`@receiveBufferSize`|`Number (int)`|+++
Set the TCP receive buffer size
+++
|[[reuseAddress]]`@reuseAddress`|`Boolean`|+++
Set the value of reuse address
+++
|[[reusePort]]`@reusePort`|`Boolean`|+++
Set the value of reuse port.
<p/>
This is only supported by native transports.
+++
|[[sendBufferSize]]`@sendBufferSize`|`Number (int)`|+++
Set the TCP send buffer size
+++
|[[sni]]`@sni`|`Boolean`|+++
Set whether the server supports Server Name Indiciation
+++
|[[soLinger]]`@soLinger`|`Number (int)`|+++
Set whether SO_linger keep alive is enabled
+++
|[[ssl]]`@ssl`|`Boolean`|+++
Set whether SSL/TLS is enabled
+++
|[[sslHandshakeTimeout]]`@sslHandshakeTimeout`|`Number (long)`|+++
Set the SSL handshake timeout, default time unit is seconds.
+++
|[[sslHandshakeTimeoutUnit]]`@sslHandshakeTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the SSL handshake timeout unit. If not specified, default is seconds.
+++
|[[tcpCork]]`@tcpCork`|`Boolean`|+++
Enable the <code>TCP_CORK</code> option - only with linux native transport.
+++
|[[tcpFastOpen]]`@tcpFastOpen`|`Boolean`|+++
Enable the <code>TCP_FASTOPEN</code> option - only with linux native transport.
+++
|[[tcpKeepAlive]]`@tcpKeepAlive`|`Boolean`|+++
Set whether TCP keep alive is enabled
+++
|[[tcpNoDelay]]`@tcpNoDelay`|`Boolean`|+++
Set whether TCP no delay is enabled
+++
|[[tcpQuickAck]]`@tcpQuickAck`|`Boolean`|+++
Enable the <code>TCP_QUICKACK</code> option - only with linux native transport.
+++
|[[trafficClass]]`@trafficClass`|`Number (int)`|+++
Set the value of traffic class
+++
|[[trustStoreOptions]]`@trustStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|+++
Set the trust options in jks format, aka Java truststore
+++
|[[useAlpn]]`@useAlpn`|`Boolean`|+++
Set the ALPN usage.
+++
|[[usePooledBuffers]]`@usePooledBuffers`|`Boolean`|+++
Set whether Netty pooled buffers are enabled
+++
|[[websocketAllowServerNoContext]]`@websocketAllowServerNoContext`|`Boolean`|+++
Set whether the WebSocket server will accept the <code>server_no_context_takeover</code> parameter of the per-message
deflate compression extension offered by the client.
+++
|[[websocketCompressionLevel]]`@websocketCompressionLevel`|`Number (int)`|+++
Set the WebSocket compression level.
+++
|[[websocketPreferredClientNoContext]]`@websocketPreferredClientNoContext`|`Boolean`|+++
Set whether the WebSocket server will accept the <code>client_no_context_takeover</code> parameter of the per-message
deflate compression extension offered by the client.
+++
|[[websocketSubProtocols]]`@websocketSubProtocols`|`String`|+++
Set the WebSocket sub-protocols supported by the server.
+++
|===

[[JdkSSLEngineOptions]]
== JdkSSLEngineOptions

++++
Configures a link to use the JDK ssl engine implementation.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|===

[[JksOptions]]
== JksOptions

++++
Key or trust store options configuring private key and/or certificates based on Java Keystore files.
<p>
When used as a key store, it should point to a store containing a private key and its certificate.
When used as a trust store, it should point to a store containing a list of trusted certificates.
<p>
The store can either be loaded by Vert.x from the filesystem:
<p>
<pre>
HttpServerOptions options = HttpServerOptions.httpServerOptions();
options.setKeyStore(new JKSOptions().setPath("/mykeystore.jks").setPassword("foo"));
</pre>

Or directly provided as a buffer:
<p>

<pre>
Buffer store = vertx.fileSystem().readFileSync("/mykeystore.jks");
options.setKeyStore(new JKSOptions().setValue(store).setPassword("foo"));
</pre>
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[password]]`@password`|`String`|+++
Set the password for the key store
+++
|[[path]]`@path`|`String`|+++
Set the path to the key store
+++
|[[value]]`@value`|`Buffer`|+++
Set the key store as a buffer
+++
|===

[[MetricsOptions]]
== MetricsOptions

++++
Vert.x metrics base configuration, this class can be extended by provider implementations to configure
those specific implementations.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[enabled]]`@enabled`|`Boolean`|+++
Set whether metrics will be enabled on the Vert.x instance.
+++
|===

[[NetClientOptions]]
== NetClientOptions

++++
Options for configuring a link.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[connectTimeout]]`@connectTimeout`|`Number (int)`|+++
Set the connect timeout
+++
|[[crlPaths]]`@crlPaths`|`Array of String`|+++
Add a CRL path
+++
|[[crlValues]]`@crlValues`|`Array of Buffer`|+++
Add a CRL value
+++
|[[enabledCipherSuites]]`@enabledCipherSuites`|`Array of String`|+++
Add an enabled cipher suite, appended to the ordered suites.
+++
|[[enabledSecureTransportProtocols]]`@enabledSecureTransportProtocols`|`Array of String`|+++
Sets the list of enabled SSL/TLS protocols.
+++
|[[hostnameVerificationAlgorithm]]`@hostnameVerificationAlgorithm`|`String`|+++
Set the hostname verification algorithm interval
To disable hostname verification, set hostnameVerificationAlgorithm to an empty String
+++
|[[idleTimeout]]`@idleTimeout`|`Number (int)`|+++
Set the idle timeout, default time unit is seconds. Zero means don't timeout.
This determines if a connection will timeout and be closed if no data is received within the timeout.

If you want change default time unit, use link
+++
|[[idleTimeoutUnit]]`@idleTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the idle timeout unit. If not specified, default is seconds.
+++
|[[jdkSslEngineOptions]]`@jdkSslEngineOptions`|`link:dataobjects.html#JdkSSLEngineOptions[JdkSSLEngineOptions]`|-
|[[keyStoreOptions]]`@keyStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|+++
Set the key/cert options in jks format, aka Java keystore.
+++
|[[localAddress]]`@localAddress`|`String`|+++
Set the local interface to bind for network connections. When the local address is null,
it will pick any local address, the default local address is null.
+++
|[[logActivity]]`@logActivity`|`Boolean`|+++
Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
+++
|[[metricsName]]`@metricsName`|`String`|+++
Set the metrics name identifying the reported metrics, useful for grouping metrics
with the same name.
+++
|[[openSslEngineOptions]]`@openSslEngineOptions`|`link:dataobjects.html#OpenSSLEngineOptions[OpenSSLEngineOptions]`|-
|[[pemKeyCertOptions]]`@pemKeyCertOptions`|`link:dataobjects.html#PemKeyCertOptions[PemKeyCertOptions]`|+++
Set the key/cert store options in pem format.
+++
|[[pemTrustOptions]]`@pemTrustOptions`|`link:dataobjects.html#PemTrustOptions[PemTrustOptions]`|+++
Set the trust options in pem format
+++
|[[pfxKeyCertOptions]]`@pfxKeyCertOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|+++
Set the key/cert options in pfx format.
+++
|[[pfxTrustOptions]]`@pfxTrustOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|+++
Set the trust options in pfx format
+++
|[[proxyOptions]]`@proxyOptions`|`link:dataobjects.html#ProxyOptions[ProxyOptions]`|+++
Set proxy options for connections via CONNECT proxy (e.g. Squid) or a SOCKS proxy.
+++
|[[receiveBufferSize]]`@receiveBufferSize`|`Number (int)`|+++
Set the TCP receive buffer size
+++
|[[reconnectAttempts]]`@reconnectAttempts`|`Number (int)`|+++
Set the value of reconnect attempts
+++
|[[reconnectInterval]]`@reconnectInterval`|`Number (long)`|+++
Set the reconnect interval
+++
|[[reuseAddress]]`@reuseAddress`|`Boolean`|+++
Set the value of reuse address
+++
|[[reusePort]]`@reusePort`|`Boolean`|+++
Set the value of reuse port.
<p/>
This is only supported by native transports.
+++
|[[sendBufferSize]]`@sendBufferSize`|`Number (int)`|+++
Set the TCP send buffer size
+++
|[[soLinger]]`@soLinger`|`Number (int)`|+++
Set whether SO_linger keep alive is enabled
+++
|[[ssl]]`@ssl`|`Boolean`|+++
Set whether SSL/TLS is enabled
+++
|[[sslHandshakeTimeout]]`@sslHandshakeTimeout`|`Number (long)`|+++
Set the SSL handshake timeout, default time unit is seconds.
+++
|[[sslHandshakeTimeoutUnit]]`@sslHandshakeTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the SSL handshake timeout unit. If not specified, default is seconds.
+++
|[[tcpCork]]`@tcpCork`|`Boolean`|+++
Enable the <code>TCP_CORK</code> option - only with linux native transport.
+++
|[[tcpFastOpen]]`@tcpFastOpen`|`Boolean`|+++
Enable the <code>TCP_FASTOPEN</code> option - only with linux native transport.
+++
|[[tcpKeepAlive]]`@tcpKeepAlive`|`Boolean`|+++
Set whether TCP keep alive is enabled
+++
|[[tcpNoDelay]]`@tcpNoDelay`|`Boolean`|+++
Set whether TCP no delay is enabled
+++
|[[tcpQuickAck]]`@tcpQuickAck`|`Boolean`|+++
Enable the <code>TCP_QUICKACK</code> option - only with linux native transport.
+++
|[[trafficClass]]`@trafficClass`|`Number (int)`|+++
Set the value of traffic class
+++
|[[trustAll]]`@trustAll`|`Boolean`|+++
Set whether all server certificates should be trusted
+++
|[[trustStoreOptions]]`@trustStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|+++
Set the trust options in jks format, aka Java truststore
+++
|[[useAlpn]]`@useAlpn`|`Boolean`|+++
Set the ALPN usage.
+++
|[[usePooledBuffers]]`@usePooledBuffers`|`Boolean`|+++
Set whether Netty pooled buffers are enabled
+++
|===

[[NetServerOptions]]
== NetServerOptions

++++
Options for configuring a link.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[acceptBacklog]]`@acceptBacklog`|`Number (int)`|+++
Set the accept back log
+++
|[[clientAuth]]`@clientAuth`|`link:enums.html#ClientAuth[ClientAuth]`|+++
Set whether client auth is required
+++
|[[clientAuthRequired]]`@clientAuthRequired`|`Boolean`|+++
Set whether client auth is required
+++
|[[crlPaths]]`@crlPaths`|`Array of String`|+++
Add a CRL path
+++
|[[crlValues]]`@crlValues`|`Array of Buffer`|+++
Add a CRL value
+++
|[[enabledCipherSuites]]`@enabledCipherSuites`|`Array of String`|+++
Add an enabled cipher suite, appended to the ordered suites.
+++
|[[enabledSecureTransportProtocols]]`@enabledSecureTransportProtocols`|`Array of String`|+++
Sets the list of enabled SSL/TLS protocols.
+++
|[[host]]`@host`|`String`|+++
Set the host
+++
|[[idleTimeout]]`@idleTimeout`|`Number (int)`|+++
Set the idle timeout, default time unit is seconds. Zero means don't timeout.
This determines if a connection will timeout and be closed if no data is received within the timeout.

If you want change default time unit, use link
+++
|[[idleTimeoutUnit]]`@idleTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the idle timeout unit. If not specified, default is seconds.
+++
|[[jdkSslEngineOptions]]`@jdkSslEngineOptions`|`link:dataobjects.html#JdkSSLEngineOptions[JdkSSLEngineOptions]`|-
|[[keyStoreOptions]]`@keyStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|+++
Set the key/cert options in jks format, aka Java keystore.
+++
|[[logActivity]]`@logActivity`|`Boolean`|+++
Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
+++
|[[openSslEngineOptions]]`@openSslEngineOptions`|`link:dataobjects.html#OpenSSLEngineOptions[OpenSSLEngineOptions]`|-
|[[pemKeyCertOptions]]`@pemKeyCertOptions`|`link:dataobjects.html#PemKeyCertOptions[PemKeyCertOptions]`|+++
Set the key/cert store options in pem format.
+++
|[[pemTrustOptions]]`@pemTrustOptions`|`link:dataobjects.html#PemTrustOptions[PemTrustOptions]`|+++
Set the trust options in pem format
+++
|[[pfxKeyCertOptions]]`@pfxKeyCertOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|+++
Set the key/cert options in pfx format.
+++
|[[pfxTrustOptions]]`@pfxTrustOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|+++
Set the trust options in pfx format
+++
|[[port]]`@port`|`Number (int)`|+++
Set the port
+++
|[[receiveBufferSize]]`@receiveBufferSize`|`Number (int)`|+++
Set the TCP receive buffer size
+++
|[[reuseAddress]]`@reuseAddress`|`Boolean`|+++
Set the value of reuse address
+++
|[[reusePort]]`@reusePort`|`Boolean`|+++
Set the value of reuse port.
<p/>
This is only supported by native transports.
+++
|[[sendBufferSize]]`@sendBufferSize`|`Number (int)`|+++
Set the TCP send buffer size
+++
|[[sni]]`@sni`|`Boolean`|+++
Set whether the server supports Server Name Indiciation
+++
|[[soLinger]]`@soLinger`|`Number (int)`|+++
Set whether SO_linger keep alive is enabled
+++
|[[ssl]]`@ssl`|`Boolean`|+++
Set whether SSL/TLS is enabled
+++
|[[sslHandshakeTimeout]]`@sslHandshakeTimeout`|`Number (long)`|+++
Set the SSL handshake timeout, default time unit is seconds.
+++
|[[sslHandshakeTimeoutUnit]]`@sslHandshakeTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the SSL handshake timeout unit. If not specified, default is seconds.
+++
|[[tcpCork]]`@tcpCork`|`Boolean`|+++
Enable the <code>TCP_CORK</code> option - only with linux native transport.
+++
|[[tcpFastOpen]]`@tcpFastOpen`|`Boolean`|+++
Enable the <code>TCP_FASTOPEN</code> option - only with linux native transport.
+++
|[[tcpKeepAlive]]`@tcpKeepAlive`|`Boolean`|+++
Set whether TCP keep alive is enabled
+++
|[[tcpNoDelay]]`@tcpNoDelay`|`Boolean`|+++
Set whether TCP no delay is enabled
+++
|[[tcpQuickAck]]`@tcpQuickAck`|`Boolean`|+++
Enable the <code>TCP_QUICKACK</code> option - only with linux native transport.
+++
|[[trafficClass]]`@trafficClass`|`Number (int)`|+++
Set the value of traffic class
+++
|[[trustStoreOptions]]`@trustStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|+++
Set the trust options in jks format, aka Java truststore
+++
|[[useAlpn]]`@useAlpn`|`Boolean`|+++
Set the ALPN usage.
+++
|[[usePooledBuffers]]`@usePooledBuffers`|`Boolean`|+++
Set whether Netty pooled buffers are enabled
+++
|===

[[NetworkOptions]]
== NetworkOptions

++++
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[logActivity]]`@logActivity`|`Boolean`|+++
Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
+++
|[[receiveBufferSize]]`@receiveBufferSize`|`Number (int)`|+++
Set the TCP receive buffer size
+++
|[[reuseAddress]]`@reuseAddress`|`Boolean`|+++
Set the value of reuse address
+++
|[[reusePort]]`@reusePort`|`Boolean`|+++
Set the value of reuse port.
<p/>
This is only supported by native transports.
+++
|[[sendBufferSize]]`@sendBufferSize`|`Number (int)`|+++
Set the TCP send buffer size
+++
|[[trafficClass]]`@trafficClass`|`Number (int)`|+++
Set the value of traffic class
+++
|===

[[OpenOptions]]
== OpenOptions

++++
Describes how an link should be opened.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[append]]`@append`|`Boolean`|+++
Whether the file should be opened in append mode. Defaults to <code>false</code>.
+++
|[[create]]`@create`|`Boolean`|+++
Set whether the file should be created if it does not already exist.
+++
|[[createNew]]`@createNew`|`Boolean`|+++
Set whether the file should be created and fail if it does exist already.
+++
|[[deleteOnClose]]`@deleteOnClose`|`Boolean`|+++
Set whether the file should be deleted when it's closed, or the JVM is shutdown.
+++
|[[dsync]]`@dsync`|`Boolean`|+++
Set whether every write to the file's content  ill be written synchronously to the underlying hardware.
+++
|[[perms]]`@perms`|`String`|+++
Set the permissions string
+++
|[[read]]`@read`|`Boolean`|+++
Set whether the file is to be opened for reading
+++
|[[sparse]]`@sparse`|`Boolean`|+++
Set whether a hint should be provided that the file to created is sparse
+++
|[[sync]]`@sync`|`Boolean`|+++
Set whether every write to the file's content and meta-data will be written synchronously to the underlying hardware.
+++
|[[truncateExisting]]`@truncateExisting`|`Boolean`|+++
Set whether the file should be truncated to zero length on opening if it exists and is opened for write
+++
|[[write]]`@write`|`Boolean`|+++
Set whether the file is to be opened for writing
+++
|===

[[OpenSSLEngineOptions]]
== OpenSSLEngineOptions

++++
Configures a link to use OpenSsl.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[sessionCacheEnabled]]`@sessionCacheEnabled`|`Boolean`|+++
Set whether session cache is enabled in open SSL session server context
+++
|===

[[Option]]
== Option

++++
Models command line options. Options are values passed to a command line interface using -x or --x. Supported
syntaxes depend on the parser.
<p/>
Short name is generally used with a single dash, while long name requires a double-dash.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[argName]]`@argName`|`String`|+++
Sets te arg name for this option.
+++
|[[choices]]`@choices`|`Array of String`|+++
Sets the list of values accepted by this option. If the value set by the user does not match once of these
values, a link exception is thrown.
+++
|[[defaultValue]]`@defaultValue`|`String`|+++
Sets the default value of this option
+++
|[[description]]`@description`|`String`|+++
Sets te description of this option.
+++
|[[flag]]`@flag`|`Boolean`|+++
Configures the current link to be a flag. It will be evaluated to <code>true</code> if it's found in
the command line. If you need a flag that may receive a value, use, in this order:
<code><pre>
  option.setFlag(true).setSingleValued(true)
</pre></code>
+++
|[[help]]`@help`|`Boolean`|+++
Sets whether or not this option is a "help" option
+++
|[[hidden]]`@hidden`|`Boolean`|+++
Sets whether or not this option should be hidden
+++
|[[longName]]`@longName`|`String`|+++
Sets the long name of this option.
+++
|[[multiValued]]`@multiValued`|`Boolean`|+++
Sets whether or not this option can receive several values.
+++
|[[name]]`@name`|`String`|+++

+++
|[[required]]`@required`|`Boolean`|+++
Sets whether or not this option is mandatory.
+++
|[[shortName]]`@shortName`|`String`|+++
Sets the short name of this option.
+++
|[[singleValued]]`@singleValued`|`Boolean`|+++
Sets whether or not this option can receive a value.
+++
|===

[[PemKeyCertOptions]]
== PemKeyCertOptions

++++
Key store options configuring a list of private key and its certificate based on
<i>Privacy-enhanced Electronic Email</i> (PEM) files.
<p>

A key file must contain a <b>non encrypted</b> private key in <b>PKCS8</b> format wrapped in a PEM
block, for example:
<p>

<pre>
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV6zPk5WqLwS0a
...
K5xBhtm1AhdnZjx5KfW3BecE
-----END PRIVATE KEY-----
</pre><p>

Or contain a <b>non encrypted</b> private key in <b>PKCS1</b> format wrapped in a PEM
block, for example:
<p>

<pre>
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAlO4gbHeFb/fmbUF/tOJfNPJumJUEqgzAzx8MBXv9Acyw9IRa
...
zJ14Yd+t2fsLYVs2H0gxaA4DW6neCzgY3eKpSU0EBHUCFSXp/1+/
-----END RSA PRIVATE KEY-----
</pre><p>

A certificate file must contain an X.509 certificate wrapped in a PEM block, for example:
<p>

<pre>
-----BEGIN CERTIFICATE-----
MIIDezCCAmOgAwIBAgIEZOI/3TANBgkqhkiG9w0BAQsFADBuMRAwDgYDVQQGEwdV
...
+tmLSvYS39O2nqIzzAUfztkYnUlZmB0l/mKkVqbGJA==
-----END CERTIFICATE-----
</pre>

Keys and certificates can either be loaded by Vert.x from the filesystem:
<p>
<pre>
HttpServerOptions options = new HttpServerOptions();
options.setPemKeyCertOptions(new PemKeyCertOptions().setKeyPath("/mykey.pem").setCertPath("/mycert.pem"));
</pre>

Or directly provided as a buffer:<p>

<pre>
Buffer key = vertx.fileSystem().readFileSync("/mykey.pem");
Buffer cert = vertx.fileSystem().readFileSync("/mycert.pem");
options.setPemKeyCertOptions(new PemKeyCertOptions().setKeyValue(key).setCertValue(cert));
</pre>

Several key/certificate pairs can be used:
<p>
<pre>
HttpServerOptions options = new HttpServerOptions();
options.setPemKeyCertOptions(new PemKeyCertOptions()
   .addKeyPath("/mykey1.pem").addCertPath("/mycert1.pem")
   .addKeyPath("/mykey2.pem").addCertPath("/mycert2.pem"));
</pre>
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[certPath]]`@certPath`|`String`|+++
Set the path of the first certificate, replacing the previous certificates paths
+++
|[[certPaths]]`@certPaths`|`Array of String`|+++
Set all the paths to the certificates files
+++
|[[certValue]]`@certValue`|`Buffer`|+++
Set the first certificate as a buffer, replacing the previous certificates buffers
+++
|[[certValues]]`@certValues`|`Array of Buffer`|+++
Set all the certificates as a list of buffer
+++
|[[keyPath]]`@keyPath`|`String`|+++
Set the path of the first key file, replacing the keys paths
+++
|[[keyPaths]]`@keyPaths`|`Array of String`|+++
Set all the paths to the keys files
+++
|[[keyValue]]`@keyValue`|`Buffer`|+++
Set the first key a a buffer, replacing the previous keys buffers
+++
|[[keyValues]]`@keyValues`|`Array of Buffer`|+++
Set all the keys as a list of buffer
+++
|===

[[PemTrustOptions]]
== PemTrustOptions

++++
Certificate Authority options configuring certificates based on
<i>Privacy-enhanced Electronic Email</i> (PEM) files. The options is configured with a list of
validating certificates.
<p>
Validating certificates must contain X.509 certificates wrapped in a PEM block:<p>

<pre>
-----BEGIN CERTIFICATE-----
MIIDezCCAmOgAwIBAgIEVmLkwTANBgkqhkiG9w0BAQsFADBuMRAwDgYDVQQGEwdV
...
z5+DuODBJUQst141Jmgq8bS543IU/5apcKQeGNxEyQ==
-----END CERTIFICATE-----
</pre>

The certificates can either be loaded by Vert.x from the filesystem:
<p>
<pre>
HttpServerOptions options = new HttpServerOptions();
options.setPemTrustOptions(new PemTrustOptions().addCertPath("/cert.pem"));
</pre>

Or directly provided as a buffer:
<p>

<pre>
Buffer cert = vertx.fileSystem().readFileSync("/cert.pem");
HttpServerOptions options = new HttpServerOptions();
options.setPemTrustOptions(new PemTrustOptions().addCertValue(cert));
</pre>
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[certPaths]]`@certPaths`|`Array of String`|+++
Add a certificate path
+++
|[[certValues]]`@certValues`|`Array of Buffer`|+++
Add a certificate value
+++
|===

[[PfxOptions]]
== PfxOptions

++++
Key or trust store options configuring private key and/or certificates based on PKCS#12 files.
<p>
When used as a key store, it should point to a store containing a private key and its certificate.
When used as a trust store, it should point to a store containing a list of accepted certificates.
<p>

The store can either be loaded by Vert.x from the filesystem:
<p>
<pre>
HttpServerOptions options = new HttpServerOptions();
options.setPfxKeyCertOptions(new PfxOptions().setPath("/mykeystore.p12").setPassword("foo"));
</pre>

Or directly provided as a buffer:<p>

<pre>
Buffer store = vertx.fileSystem().readFileSync("/mykeystore.p12");
options.setPfxKeyCertOptions(new PfxOptions().setValue(store).setPassword("foo"));
</pre>
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[password]]`@password`|`String`|+++
Set the password
+++
|[[path]]`@path`|`String`|+++
Set the path
+++
|[[value]]`@value`|`Buffer`|+++
Set the store as a buffer
+++
|===

[[ProxyOptions]]
== ProxyOptions

++++
Proxy options for a net client or a net client.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[host]]`@host`|`String`|+++
Set proxy host.
+++
|[[password]]`@password`|`String`|+++
Set proxy password.
+++
|[[port]]`@port`|`Number (int)`|+++
Set proxy port.
+++
|[[type]]`@type`|`link:enums.html#ProxyType[ProxyType]`|+++
Set proxy type.

<p>ProxyType can be HTTP, SOCKS4 and SOCKS5
+++
|[[username]]`@username`|`String`|+++
Set proxy username.
+++
|===

[[RequestOptions]]
== RequestOptions

++++
Options describing how an link will make connect to make a request.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[headers]]`@headers`|`String`|+++
Add a request header.
+++
|[[host]]`@host`|`String`|+++
Set the host name to be used by the client request.
+++
|[[port]]`@port`|`Number (int)`|+++
Set the port to be used by the client request.
+++
|[[ssl]]`@ssl`|`Boolean`|+++
Set whether SSL/TLS is enabled
+++
|[[uri]]`@uri`|`String`|+++
Set the request relative URI
+++
|===

[[StreamPriority]]
== StreamPriority

++++
This class represents HTTP/2 stream priority defined in RFC 7540 clause 5.3
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[dependency]]`@dependency`|`Number (int)`|+++
Set the priority dependency value.
+++
|[[exclusive]]`@exclusive`|`Boolean`|+++
Set the priority exclusive value.
+++
|[[weight]]`@weight`|`Number (short)`|+++
Set the priority weight.
+++
|===

[[TCPSSLOptions]]
== TCPSSLOptions

++++
Base class. TCP and SSL related options
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[crlPaths]]`@crlPaths`|`Array of String`|+++
Add a CRL path
+++
|[[crlValues]]`@crlValues`|`Array of Buffer`|+++
Add a CRL value
+++
|[[enabledCipherSuites]]`@enabledCipherSuites`|`Array of String`|+++
Add an enabled cipher suite, appended to the ordered suites.
+++
|[[enabledSecureTransportProtocols]]`@enabledSecureTransportProtocols`|`Array of String`|+++
Sets the list of enabled SSL/TLS protocols.
+++
|[[idleTimeout]]`@idleTimeout`|`Number (int)`|+++
Set the idle timeout, default time unit is seconds. Zero means don't timeout.
This determines if a connection will timeout and be closed if no data is received within the timeout.

If you want change default time unit, use link
+++
|[[idleTimeoutUnit]]`@idleTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the idle timeout unit. If not specified, default is seconds.
+++
|[[jdkSslEngineOptions]]`@jdkSslEngineOptions`|`link:dataobjects.html#JdkSSLEngineOptions[JdkSSLEngineOptions]`|-
|[[keyStoreOptions]]`@keyStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|+++
Set the key/cert options in jks format, aka Java keystore.
+++
|[[logActivity]]`@logActivity`|`Boolean`|+++
Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
+++
|[[openSslEngineOptions]]`@openSslEngineOptions`|`link:dataobjects.html#OpenSSLEngineOptions[OpenSSLEngineOptions]`|-
|[[pemKeyCertOptions]]`@pemKeyCertOptions`|`link:dataobjects.html#PemKeyCertOptions[PemKeyCertOptions]`|+++
Set the key/cert store options in pem format.
+++
|[[pemTrustOptions]]`@pemTrustOptions`|`link:dataobjects.html#PemTrustOptions[PemTrustOptions]`|+++
Set the trust options in pem format
+++
|[[pfxKeyCertOptions]]`@pfxKeyCertOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|+++
Set the key/cert options in pfx format.
+++
|[[pfxTrustOptions]]`@pfxTrustOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|+++
Set the trust options in pfx format
+++
|[[receiveBufferSize]]`@receiveBufferSize`|`Number (int)`|+++
Set the TCP receive buffer size
+++
|[[reuseAddress]]`@reuseAddress`|`Boolean`|+++
Set the value of reuse address
+++
|[[reusePort]]`@reusePort`|`Boolean`|+++
Set the value of reuse port.
<p/>
This is only supported by native transports.
+++
|[[sendBufferSize]]`@sendBufferSize`|`Number (int)`|+++
Set the TCP send buffer size
+++
|[[soLinger]]`@soLinger`|`Number (int)`|+++
Set whether SO_linger keep alive is enabled
+++
|[[ssl]]`@ssl`|`Boolean`|+++
Set whether SSL/TLS is enabled
+++
|[[sslHandshakeTimeout]]`@sslHandshakeTimeout`|`Number (long)`|+++
Set the SSL handshake timeout, default time unit is seconds.
+++
|[[sslHandshakeTimeoutUnit]]`@sslHandshakeTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the SSL handshake timeout unit. If not specified, default is seconds.
+++
|[[tcpCork]]`@tcpCork`|`Boolean`|+++
Enable the <code>TCP_CORK</code> option - only with linux native transport.
+++
|[[tcpFastOpen]]`@tcpFastOpen`|`Boolean`|+++
Enable the <code>TCP_FASTOPEN</code> option - only with linux native transport.
+++
|[[tcpKeepAlive]]`@tcpKeepAlive`|`Boolean`|+++
Set whether TCP keep alive is enabled
+++
|[[tcpNoDelay]]`@tcpNoDelay`|`Boolean`|+++
Set whether TCP no delay is enabled
+++
|[[tcpQuickAck]]`@tcpQuickAck`|`Boolean`|+++
Enable the <code>TCP_QUICKACK</code> option - only with linux native transport.
+++
|[[trafficClass]]`@trafficClass`|`Number (int)`|+++
Set the value of traffic class
+++
|[[trustStoreOptions]]`@trustStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|+++
Set the trust options in jks format, aka Java truststore
+++
|[[useAlpn]]`@useAlpn`|`Boolean`|+++
Set the ALPN usage.
+++
|[[usePooledBuffers]]`@usePooledBuffers`|`Boolean`|+++
Set whether Netty pooled buffers are enabled
+++
|===

[[VertxOptions]]
== VertxOptions

++++
Instances of this class are used to configure link instances.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[addressResolverOptions]]`@addressResolverOptions`|`link:dataobjects.html#AddressResolverOptions[AddressResolverOptions]`|+++
Sets the address resolver configuration to configure resolving DNS servers, cache TTL, etc...
+++
|[[blockedThreadCheckInterval]]`@blockedThreadCheckInterval`|`Number (long)`|+++
Sets the value of blocked thread check period, in link.
<p>
The default value of link is
+++
|[[blockedThreadCheckIntervalUnit]]`@blockedThreadCheckIntervalUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the time unit of <code>blockedThreadCheckInterval</code>.
+++
|[[clusterHost]]`@clusterHost`|`String`|+++
Set the hostname to be used for clustering.
+++
|[[clusterPingInterval]]`@clusterPingInterval`|`Number (long)`|+++
Set the value of cluster ping interval, in ms.
+++
|[[clusterPingReplyInterval]]`@clusterPingReplyInterval`|`Number (long)`|+++
Set the value of cluster ping reply interval, in ms.
+++
|[[clusterPort]]`@clusterPort`|`Number (int)`|+++
Set the port to be used for clustering.
+++
|[[clusterPublicHost]]`@clusterPublicHost`|`String`|+++
Set the public facing hostname to be used for clustering.
Sometimes, e.g. when running on certain clouds, the local address the server listens on for clustering is not the same
address that other nodes connect to it at, as the OS / cloud infrastructure does some kind of proxying.
If this is the case you can specify a public hostname which is different from the hostname the server listens at.
The default value is null which means use the same as the cluster hostname.
+++
|[[clusterPublicPort]]`@clusterPublicPort`|`Number (int)`|+++
See link for an explanation.
+++
|[[clustered]]`@clustered`|`Boolean`|+++
Set whether or not the Vert.x instance will be clustered.
+++
|[[eventBusOptions]]`@eventBusOptions`|`link:dataobjects.html#EventBusOptions[EventBusOptions]`|+++
Sets the event bus configuration to configure the host, port, ssl...
+++
|[[eventLoopPoolSize]]`@eventLoopPoolSize`|`Number (int)`|+++
Set the number of event loop threads to be used by the Vert.x instance.
+++
|[[fileResolverCachingEnabled]]`@fileResolverCachingEnabled`|`Boolean`|+++
Set whether the Vert.x file resolver uses caching for classpath resources.
+++
|[[fileSystemOptions]]`@fileSystemOptions`|`link:dataobjects.html#FileSystemOptions[FileSystemOptions]`|+++
Set the file system options
+++
|[[haEnabled]]`@haEnabled`|`Boolean`|+++
Set whether HA will be enabled on the Vert.x instance.
+++
|[[haGroup]]`@haGroup`|`String`|+++
Set the HA group to be used when HA is enabled.
+++
|[[internalBlockingPoolSize]]`@internalBlockingPoolSize`|`Number (int)`|+++
Set the value of internal blocking pool size
+++
|[[maxEventLoopExecuteTime]]`@maxEventLoopExecuteTime`|`Number (long)`|+++
Sets the value of max event loop execute time, in link.
<p>
The default value of linkis
+++
|[[maxEventLoopExecuteTimeUnit]]`@maxEventLoopExecuteTimeUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the time unit of <code>maxEventLoopExecuteTime</code>.
+++
|[[maxWorkerExecuteTime]]`@maxWorkerExecuteTime`|`Number (long)`|+++
Sets the value of max worker execute time, in link.
<p>
The default value of link is
+++
|[[maxWorkerExecuteTimeUnit]]`@maxWorkerExecuteTimeUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the time unit of <code>maxWorkerExecuteTime</code>.
+++
|[[metricsOptions]]`@metricsOptions`|`link:dataobjects.html#MetricsOptions[MetricsOptions]`|+++
Set the metrics options
+++
|[[preferNativeTransport]]`@preferNativeTransport`|`Boolean`|+++
Set wether to prefer the native transport to the JDK transport.
+++
|[[quorumSize]]`@quorumSize`|`Number (int)`|+++
Set the quorum size to be used when HA is enabled.
+++
|[[warningExceptionTime]]`@warningExceptionTime`|`Number (long)`|+++
Set the threshold value above this, the blocked warning contains a stack trace. in link.
The default value of link is
+++
|[[warningExceptionTimeUnit]]`@warningExceptionTimeUnit`|`link:enums.html#TimeUnit[TimeUnit]`|+++
Set the time unit of <code>warningExceptionTime</code>.
+++
|[[workerPoolSize]]`@workerPoolSize`|`Number (int)`|+++
Set the maximum number of worker threads to be used by the Vert.x instance.
+++
|===

[[WebSocketConnectOptions]]
== WebSocketConnectOptions

++++
Options describing how an link connect a link.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[headers]]`@headers`|`String`|+++
Add a request header.
+++
|[[host]]`@host`|`String`|+++
Set the host name to be used by the client request.
+++
|[[port]]`@port`|`Number (int)`|+++
Set the port to be used by the client request.
+++
|[[ssl]]`@ssl`|`Boolean`|+++
Set whether SSL/TLS is enabled
+++
|[[subProtocols]]`@subProtocols`|`Array of String`|+++
Set the WebSocket sub protocols to use.
+++
|[[uri]]`@uri`|`String`|+++
Set the request relative URI
+++
|[[version]]`@version`|`link:enums.html#WebsocketVersion[WebsocketVersion]`|+++
Set the WebSocket version.
+++
|===