= Cheatsheets

[[ProtonClientOptions]]
== ProtonClientOptions

++++
Options for configuring link connect operations.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[connectTimeout]]`@connectTimeout`|`Number (int)`|-
|[[crlPaths]]`@crlPaths`|`Array of String`|-
|[[crlValues]]`@crlValues`|`Array of Buffer`|-
|[[enabledCipherSuites]]`@enabledCipherSuites`|`Array of String`|-
|[[enabledSaslMechanisms]]`@enabledSaslMechanisms`|`Array of String`|+++
Adds a mechanism name that the client may use during SASL negotiation.
+++
|[[enabledSecureTransportProtocols]]`@enabledSecureTransportProtocols`|`Array of String`|-
|[[heartbeat]]`@heartbeat`|`Number (int)`|+++
Set the heartbeat (in milliseconds) as maximum delay between sending frames for the remote peers.
If no frames are received within 2*heartbeat, the connection is closed
+++
|[[hostnameVerificationAlgorithm]]`@hostnameVerificationAlgorithm`|`String`|-
|[[idleTimeout]]`@idleTimeout`|`Number (int)`|-
|[[idleTimeoutUnit]]`@idleTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|-
|[[jdkSslEngineOptions]]`@jdkSslEngineOptions`|`link:dataobjects.html#JdkSSLEngineOptions[JdkSSLEngineOptions]`|-
|[[keyStoreOptions]]`@keyStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|-
|[[localAddress]]`@localAddress`|`String`|-
|[[logActivity]]`@logActivity`|`Boolean`|-
|[[maxFrameSize]]`@maxFrameSize`|`Number (int)`|+++
Sets the maximum frame size for the connection.
<p>
If this property is not set explicitly, a reasonable default value is used.
<p>
Setting this property to a negative value will result in no maximum frame size being announced at all.
+++
|[[metricsName]]`@metricsName`|`String`|-
|[[openSslEngineOptions]]`@openSslEngineOptions`|`link:dataobjects.html#OpenSSLEngineOptions[OpenSSLEngineOptions]`|-
|[[pemKeyCertOptions]]`@pemKeyCertOptions`|`link:dataobjects.html#PemKeyCertOptions[PemKeyCertOptions]`|-
|[[pemTrustOptions]]`@pemTrustOptions`|`link:dataobjects.html#PemTrustOptions[PemTrustOptions]`|-
|[[pfxKeyCertOptions]]`@pfxKeyCertOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|-
|[[pfxTrustOptions]]`@pfxTrustOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|-
|[[proxyOptions]]`@proxyOptions`|`link:dataobjects.html#ProxyOptions[ProxyOptions]`|-
|[[receiveBufferSize]]`@receiveBufferSize`|`Number (int)`|-
|[[reconnectAttempts]]`@reconnectAttempts`|`Number (int)`|-
|[[reconnectInterval]]`@reconnectInterval`|`Number (long)`|-
|[[reuseAddress]]`@reuseAddress`|`Boolean`|-
|[[reusePort]]`@reusePort`|`Boolean`|-
|[[sendBufferSize]]`@sendBufferSize`|`Number (int)`|-
|[[sniServerName]]`@sniServerName`|`String`|+++
Explicitly override the hostname to use for the TLS SNI server name.

If neither the link or SNI server name is explicitly
overridden, the hostname specified in link will be used, with SNI performed implicitly
where a FQDN was specified.

This method should typically only be needed to set different values for the [virtual] hostname and SNI server name.
+++
|[[soLinger]]`@soLinger`|`Number (int)`|-
|[[ssl]]`@ssl`|`Boolean`|-
|[[tcpCork]]`@tcpCork`|`Boolean`|-
|[[tcpFastOpen]]`@tcpFastOpen`|`Boolean`|-
|[[tcpKeepAlive]]`@tcpKeepAlive`|`Boolean`|-
|[[tcpNoDelay]]`@tcpNoDelay`|`Boolean`|-
|[[tcpQuickAck]]`@tcpQuickAck`|`Boolean`|-
|[[trafficClass]]`@trafficClass`|`Number (int)`|-
|[[trustAll]]`@trustAll`|`Boolean`|-
|[[trustStoreOptions]]`@trustStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|-
|[[useAlpn]]`@useAlpn`|`Boolean`|-
|[[usePooledBuffers]]`@usePooledBuffers`|`Boolean`|-
|[[virtualHost]]`@virtualHost`|`String`|+++
Override the hostname value used in the connection AMQP Open frame and TLS SNI server name (if TLS is in use).
By default, the hostname specified in link will be used for both, with SNI performed
implicit where a FQDN was specified.

The SNI server name can also be overridden explicitly using link.
+++
|===

[[ProtonLinkOptions]]
== ProtonLinkOptions

++++
Options for configuring link attributes.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[dynamic]]`@dynamic`|`Boolean`|+++
Sets whether the link remote terminus to be used should indicate it is
'dynamic', requesting the peer names it with a dynamic address.
The address provided by the peer can then be inspected using
link (or inspecting the remote
terminus details directly) after the link has remotely opened.
+++
|[[linkName]]`@linkName`|`String`|-
|===

[[ProtonServerOptions]]
== ProtonServerOptions

++++
Options for configuring link creation.
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[acceptBacklog]]`@acceptBacklog`|`Number (int)`|-
|[[clientAuth]]`@clientAuth`|`link:enums.html#ClientAuth[ClientAuth]`|-
|[[clientAuthRequired]]`@clientAuthRequired`|`Boolean`|-
|[[crlPaths]]`@crlPaths`|`Array of String`|-
|[[crlValues]]`@crlValues`|`Array of Buffer`|-
|[[enabledCipherSuites]]`@enabledCipherSuites`|`Array of String`|-
|[[enabledSecureTransportProtocols]]`@enabledSecureTransportProtocols`|`Array of String`|-
|[[heartbeat]]`@heartbeat`|`Number (int)`|+++
Sets the heart beat (in milliseconds) as maximum delay between sending frames for the remote peers.
If no frames are received within 2 * heart beat, the connection is closed.
+++
|[[host]]`@host`|`String`|-
|[[idleTimeout]]`@idleTimeout`|`Number (int)`|-
|[[idleTimeoutUnit]]`@idleTimeoutUnit`|`link:enums.html#TimeUnit[TimeUnit]`|-
|[[jdkSslEngineOptions]]`@jdkSslEngineOptions`|`link:dataobjects.html#JdkSSLEngineOptions[JdkSSLEngineOptions]`|-
|[[keyStoreOptions]]`@keyStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|-
|[[logActivity]]`@logActivity`|`Boolean`|-
|[[maxFrameSize]]`@maxFrameSize`|`Number (int)`|+++
Sets the maximum frame size for connections.
<p>
If this property is not set explicitly, a reasonable default value is used.
<p>
Setting this property to a negative value will result in no maximum frame size being announced at all.
+++
|[[openSslEngineOptions]]`@openSslEngineOptions`|`link:dataobjects.html#OpenSSLEngineOptions[OpenSSLEngineOptions]`|-
|[[pemKeyCertOptions]]`@pemKeyCertOptions`|`link:dataobjects.html#PemKeyCertOptions[PemKeyCertOptions]`|-
|[[pemTrustOptions]]`@pemTrustOptions`|`link:dataobjects.html#PemTrustOptions[PemTrustOptions]`|-
|[[pfxKeyCertOptions]]`@pfxKeyCertOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|-
|[[pfxTrustOptions]]`@pfxTrustOptions`|`link:dataobjects.html#PfxOptions[PfxOptions]`|-
|[[port]]`@port`|`Number (int)`|-
|[[receiveBufferSize]]`@receiveBufferSize`|`Number (int)`|-
|[[reuseAddress]]`@reuseAddress`|`Boolean`|-
|[[reusePort]]`@reusePort`|`Boolean`|-
|[[sendBufferSize]]`@sendBufferSize`|`Number (int)`|-
|[[sni]]`@sni`|`Boolean`|-
|[[soLinger]]`@soLinger`|`Number (int)`|-
|[[ssl]]`@ssl`|`Boolean`|-
|[[tcpCork]]`@tcpCork`|`Boolean`|-
|[[tcpFastOpen]]`@tcpFastOpen`|`Boolean`|-
|[[tcpKeepAlive]]`@tcpKeepAlive`|`Boolean`|-
|[[tcpNoDelay]]`@tcpNoDelay`|`Boolean`|-
|[[tcpQuickAck]]`@tcpQuickAck`|`Boolean`|-
|[[trafficClass]]`@trafficClass`|`Number (int)`|-
|[[trustStoreOptions]]`@trustStoreOptions`|`link:dataobjects.html#JksOptions[JksOptions]`|-
|[[useAlpn]]`@useAlpn`|`Boolean`|-
|[[usePooledBuffers]]`@usePooledBuffers`|`Boolean`|-
|===

[[ProtonTransportOptions]]
== ProtonTransportOptions

++++
Options for configuring transport layer
++++
'''

[cols=">25%,25%,50%"]
[frame="topbot"]
|===
^|Name | Type ^| Description
|[[heartbeat]]`@heartbeat`|`Number (int)`|+++
Set the heart beat as maximum delay between sending frames for the remote peers.
If no frames are received within 2 * heart beat, the connection is closed
+++
|[[maxFrameSize]]`@maxFrameSize`|`Number (int)`|+++
Sets the maximum frame size for the connection.
<p>
If this property is not set explicitly, a reasonable default value is used.
<p>
Setting this property to a negative value will result in no maximum frame size being announced at all.
+++
|===