//
//  Licensed to the Apache Software Foundation (ASF) under one or more
//  contributor license agreements.  See the NOTICE file distributed with
//  this work for additional information regarding copyright ownership.
//  The ASF licenses this file to You under the Apache License, Version 2.0
//  (the "License"); you may not use this file except in compliance with
//  the License.  You may obtain a copy of the License at
//
//      https://www.apache.org/licenses/LICENSE-2.0
//
//  Unless required by applicable law or agreed to in writing, software
//  distributed under the License is distributed on an "AS IS" BASIS,
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//  See the License for the specific language governing permissions and
//  limitations under the License.
//

// Code generated by code-generation. DO NOT EDIT.

[cols="2,2a,2a,2a,4a"]
|===
|Name |Type |Default Value |Required |Description
|Name 4+|Opcua
|Code 4+|`opcua`
|Maven Dependency 4+|

[subs=attributes+]
----
<dependency>
  <groupId>org.apache.plc4x</groupId>
  <artifactId>plc4j-driver-opcua</artifactId>
  <version>{page-component-version}</version>
</dependency>
----
|Default Transport 4+|`tcp`
|Supported Transports 4+|
 - `tcp`
5+|Config options:
|`protocol-code` |STRING | | |
|`transport-code` |STRING | | |
|`transport-config` |STRING | | |
|`discovery` |BOOLEAN |true| |Controls the feature of the discovery endpoint of an OPC UA server which every server +
will propagate over an '<address>/discovery' endpoint. The most common issue here is that most servers are not correctly +
configured and propagate the wrong external IP or URL address. If that is the case you can disable the discovery by +
configuring it with a `false` value. +
 +
The discovery phase is always conducted using `NONE` security policy.
|`username` |STRING | | |A username to authenticate to the OPCUA server with.
|`password` |STRING | | |A password to authenticate to the OPCUA server with.
|`security-policy` |STRING |NONE| |The security policy applied to communication channel between driver and OPC UA server. +
Default value assumes. Possible options are `NONE`, `Basic128Rsa15`, `Basic256`, `Basic256Sha256`, `Aes128_Sha256_RsaOaep`, `Aes256_Sha256_RsaPss`.
|`message-security` |STRING |SIGN_ENCRYPT| |The security policy applied to messages exchanged after handshake phase. +
Possible options are `NONE`, `SIGN`, `SIGN_ENCRYPT`. +
This option is effective only when `securityPolicy` turns encryption (anything beyond `NONE`).
|`key-store-file` |STRING | | |The Keystore file used to lookup client certificate and its private key.
|`key-store-type` |STRING |pkcs12| |Keystore type used to access keystore and private key, defaults to PKCS (for Java 11+). +
Possible values are between others `jks`, `pkcs11`, `dks`, `jceks`.
|`key-store-password` |STRING | | |Java keystore password used to access keystore and private key.
|`server-certificate-file` |STRING | | |Filesystem location where server certificate is located, supported formats are `DER` and `PEM`.
|`trust-store-file` |STRING | | |The trust store file used to verify server certificates and its chain.
|`trust-store-type` |STRING |pkcs12| |Keystore type used to access keystore and private key, defaults to PKCS (for Java 11+). +
Possible values are between others `jks`, `pkcs11`, `dks`, `jceks`.
|`trust-store-password` |STRING | | |Password used to open trust store.
|`channel-lifetime` |LONG |3600000| |Time for which negotiated secure channel, its keys and session remains open. Value in milliseconds, by default 60 minutes.
|`session-timeout` |LONG |120000| |Expiry time for opened secure session, value in milliseconds. Defaults to 2 minutes.
|`negotiation-timeout` |LONG |60000| |Timeout for all negotiation steps prior acceptance of application level operations - this timeout applies to open secure channel, create session and close calls. Defaults to 60 seconds.
|`request-timeout` |LONG |30000| |Timeout for read/write/subscribe calls. Value in milliseconds.
|`encoding.receive-buffer-size` |INT |65535| |Maximum size of received TCP transport message chunk value in bytes.
|`encoding.send-buffer-size` |INT |65535| |Maximum size of sent transport message chunk.
|`encoding.max-message-size` |INT |2097152| |Maximum size of complete message.
|`encoding.max-chunk-count` |INT |64| |Maximum number of chunks for both sent and received messages.
|`endpoint-host` |STRING | | |Endpoint host used to establish secure channel connection. Used when client made connection to server which advertises different hostname than one used for network connection.
|`endpoint-port` |INT | | |Endpoint port used to establish secure channel. Used when client made connection to server which advertises different port number than one used for network connection.
5+|Transport config options:
5+|
+++
<h4>tcp</h4>
+++
|`tcp.keep-alive` |BOOLEAN |false| |Should keep-alive packets be sent?
|`tcp.no-delay` |BOOLEAN |true| |Should packets be sent instantly or should we give the OS some time to aggregate data.
|`tcp.default-timeout` |INT |1000| |Timeout after which a connection will be treated as disconnected.
|===
