AWS IoT Device SDK C++ v2: Aws::Iot::MqttClientConnectionConfigBuilder Class Reference

AWS IoT Device SDK C++ v2 1.14.0 AWS IoT Device SDK C++ v2

Public Member Functions | List of all members
Aws::Iot::MqttClientConnectionConfigBuilder Class Referencefinal

`#include <MqttClient.h>`

## Public Member Functions
| MqttClientConnectionConfigBuilder ()
| MqttClientConnectionConfigBuilder (const char *certPath, const char *pkeyPath, Crt::Allocator *allocator=Crt::g_allocator) noexcept
| MqttClientConnectionConfigBuilder (const Crt::ByteCursor &cert, const Crt::ByteCursor &pkey, Crt::Allocator *allocator=Crt::g_allocator) noexcept
| MqttClientConnectionConfigBuilder (const Crt::Io::TlsContextPkcs11Options &pkcs11Options, Crt::Allocator *allocator=Crt::g_allocator) noexcept
| MqttClientConnectionConfigBuilder (const WebsocketConfig &config, Crt::Allocator *allocator=Crt::g_allocator) noexcept
MqttClientConnectionConfigBuilder & | WithEndpoint (const Crt::String &endpoint)
MqttClientConnectionConfigBuilder & | WithEndpoint (Crt::String &&endpoint)
MqttClientConnectionConfigBuilder & | WithPortOverride (uint16_t port) noexcept
MqttClientConnectionConfigBuilder & | WithCertificateAuthority (const char *caPath) noexcept
MqttClientConnectionConfigBuilder & | WithCertificateAuthority (const Crt::ByteCursor &cert) noexcept
MqttClientConnectionConfigBuilder & | WithTcpKeepAlive () noexcept
MqttClientConnectionConfigBuilder & | WithTcpConnectTimeout (uint32_t connectTimeoutMs) noexcept
MqttClientConnectionConfigBuilder & | WithTcpKeepAliveTimeout (uint16_t keepAliveTimeoutSecs) noexcept
MqttClientConnectionConfigBuilder & | WithTcpKeepAliveInterval (uint16_t keepAliveIntervalSecs) noexcept
MqttClientConnectionConfigBuilder & | WithTcpKeepAliveMaxProbes (uint16_t maxProbes) noexcept
MqttClientConnectionConfigBuilder & | WithMinimumTlsVersion (aws_tls_versions minimumTlsVersion) noexcept
MqttClientConnectionConfigBuilder & | WithHttpProxyOptions (const Crt::Http::HttpClientConnectionProxyOptions &proxyOptions) noexcept
MqttClientConnectionConfigBuilder & | WithMetricsCollection (bool enabled)
MqttClientConnectionConfigBuilder & | WithSdkName (const Crt::String &sdkName)
MqttClientConnectionConfigBuilder & | WithSdkVersion (const Crt::String &sdkVersion)
MqttClientConnectionConfig | Build () noexcept
| operator bool () const noexcept
int | LastError () const noexcept

## Detailed Description

Represents configuration parameters for building a MqttClientConnectionConfig object. You can use a single instance of this class PER MqttClientConnectionConfig you want to generate. If you want to generate a config for a different endpoint or port etc... you need a new instance of this class.

## Constructor & Destructor Documentation

## ◆ MqttClientConnectionConfigBuilder() [1/5]

Aws::Iot::MqttClientConnectionConfigBuilder::MqttClientConnectionConfigBuilder | ( |  | ) |

## ◆ MqttClientConnectionConfigBuilder() [2/5]

Aws::Iot::MqttClientConnectionConfigBuilder::MqttClientConnectionConfigBuilder | ( | const char * | certPath,
|  | const char * | pkeyPath,
|  | Crt::Allocator * | allocator = `Crt::g_allocator`
| ) |  |
| noexcept

Sets the builder up for MTLS using certPath and pkeyPath. These are files on disk and must be in the PEM format.

Parameters

  certPath | path to the X509 certificate (pem file) to use
  pkeyPath | path to the private key (pem file) to use

## ◆ MqttClientConnectionConfigBuilder() [3/5]

Aws::Iot::MqttClientConnectionConfigBuilder::MqttClientConnectionConfigBuilder | ( | const Crt::ByteCursor & | cert,
|  | const Crt::ByteCursor & | pkey,
|  | Crt::Allocator * | allocator = `Crt::g_allocator`
| ) |  |
| noexcept

Sets the builder up for MTLS using cert and pkey. These are in-memory buffers and must be in the PEM format.

Parameters

  cert | buffer containing the X509 certificate in a PEM format
  pkey | buffer containing the private key in a PEM format

## ◆ MqttClientConnectionConfigBuilder() [4/5]

Aws::Iot::MqttClientConnectionConfigBuilder::MqttClientConnectionConfigBuilder | ( | const Crt::Io::TlsContextPkcs11Options & | pkcs11Options,
|  | Crt::Allocator * | allocator = `Crt::g_allocator`
| ) |  |
| noexcept

Sets the builder up for MTLS, using a PKCS#11 library for private key operations.

## ◆ MqttClientConnectionConfigBuilder() [5/5]

Aws::Iot::MqttClientConnectionConfigBuilder::MqttClientConnectionConfigBuilder | ( | const WebsocketConfig & | config,
|  | Crt::Allocator * | allocator = `Crt::g_allocator`
| ) |  |
| noexcept

Sets the builder up for Websocket connection.

Parameters

  config | websocket configuration information

## Member Function Documentation

## ◆ Build()

MqttClientConnectionConfig Aws::Iot::MqttClientConnectionConfigBuilder::Build | ( |  | ) |
| noexcept

Builds a client configuration object from the set options.

Returns
  a new client connection config instance

## ◆ LastError()

int Aws::Iot::MqttClientConnectionConfigBuilder::LastError | ( |  | ) | const
| inlinenoexcept

Returns
  the value of the last aws error encountered by operations on this instance.

## ◆ operator bool()

Aws::Iot::MqttClientConnectionConfigBuilder::operator bool | ( |  | ) | const
| inlineexplicitnoexcept

Returns
  true if the instance is in a valid state, false otherwise.

## ◆ WithCertificateAuthority() [1/2]

MqttClientConnectionConfigBuilder & Aws::Iot::MqttClientConnectionConfigBuilder::WithCertificateAuthority | ( | const char * | caPath | ) |
| noexcept

Sets the certificate authority for the endpoint you're connecting to. This is a path to a file on disk and must be in PEM format.

Parameters

  caPath | path to the CA file in PEM format

Returns
  this builder object

## ◆ WithCertificateAuthority() [2/2]

MqttClientConnectionConfigBuilder & Aws::Iot::MqttClientConnectionConfigBuilder::WithCertificateAuthority | ( | const Crt::ByteCursor & | cert | ) |
| noexcept

Sets the certificate authority for the endpoint you're connecting to. This is an in-memory buffer and must be in PEM format.

Parameters

  cert | buffer containing the CA certificate in a PEM format

Returns
  this builder object

## ◆ WithEndpoint() [1/2]

MqttClientConnectionConfigBuilder & Aws::Iot::MqttClientConnectionConfigBuilder::WithEndpoint | ( | const Crt::String & | endpoint | ) |

Sets endpoint to connect to.

Parameters

  endpoint | endpoint to connect to

Returns
  this builder object

## ◆ WithEndpoint() [2/2]

MqttClientConnectionConfigBuilder & Aws::Iot::MqttClientConnectionConfigBuilder::WithEndpoint | ( | Crt::String && | endpoint | ) |

Sets endpoint to connect to.

Parameters

  endpoint | endpoint to connect to

Returns
  this builder object

## ◆ WithHttpProxyOptions()

MqttClientConnectionConfigBuilder & Aws::Iot::MqttClientConnectionConfigBuilder::WithHttpProxyOptions | ( | const Crt::Http::HttpClientConnectionProxyOptions & | proxyOptions | ) |
| noexcept

Sets http proxy options.

Parameters

  proxyOptions | proxy configuration options for connection establishment

Returns
  this builder object

## ◆ WithMetricsCollection()

MqttClientConnectionConfigBuilder & Aws::Iot::MqttClientConnectionConfigBuilder::WithMetricsCollection | ( | bool | enabled | ) |

Whether to send the SDK name and version number in the MQTT CONNECT packet. Default is True.

Parameters

  enabled | true to send SDK version/name in the connect for metrics gathering purposes

Returns
  this builder object

## ◆ WithMinimumTlsVersion()

MqttClientConnectionConfigBuilder & Aws::Iot::MqttClientConnectionConfigBuilder::WithMinimumTlsVersion | ( | aws_tls_versions | minimumTlsVersion | ) |
| noexcept

Sets the minimum tls version that is acceptable for connection establishment

Parameters

  minimumTlsVersion | minimum tls version allowed in client connections

Returns
  this builder object

## ◆ WithPortOverride()

MqttClientConnectionConfigBuilder & Aws::Iot::MqttClientConnectionConfigBuilder::WithPortOverride | ( | uint16_t | port | ) |
| noexcept

Overrides the default port. By default, if ALPN is supported, 443 will be used. Otherwise 8883 will be used. If you specify 443 and ALPN is not supported, we will still attempt to connect over 443 without ALPN.

Parameters

  port | port to connect to

Returns
  this builder object

## ◆ WithSdkName()

MqttClientConnectionConfigBuilder & Aws::Iot::MqttClientConnectionConfigBuilder::WithSdkName | ( | const Crt::String & | sdkName | ) |

Overrides the default SDK Name to send as a metric in the MQTT CONNECT packet.

Parameters

  sdkName | string to use as the SDK name parameter in the connection string

Returns
  this builder object

## ◆ WithSdkVersion()

MqttClientConnectionConfigBuilder & Aws::Iot::MqttClientConnectionConfigBuilder::WithSdkVersion | ( | const Crt::String & | sdkVersion | ) |

Overrides the default SDK Version to send as a metric in the MQTT CONNECT packet.

Parameters

  sdkVersion | string to use as the SDK version parameter in the connection string

Returns
  this builder object

## ◆ WithTcpConnectTimeout()

MqttClientConnectionConfigBuilder & Aws::Iot::MqttClientConnectionConfigBuilder::WithTcpConnectTimeout | ( | uint32_t | connectTimeoutMs | ) |
| noexcept

TCP option: Sets the connect timeout. Defaults to 3 seconds.

Parameters

  connectTimeoutMs | socket connection timeout

Returns
  this builder object

## ◆ WithTcpKeepAlive()

MqttClientConnectionConfigBuilder & Aws::Iot::MqttClientConnectionConfigBuilder::WithTcpKeepAlive | ( |  | ) |
| noexcept

TCP option: Enables TCP keep alive. Defaults to off.

Returns
  this builder object

## ◆ WithTcpKeepAliveInterval()

MqttClientConnectionConfigBuilder & Aws::Iot::MqttClientConnectionConfigBuilder::WithTcpKeepAliveInterval | ( | uint16_t | keepAliveIntervalSecs | ) |
| noexcept

TCP option: Sets the frequency of sending keep alive probes in seconds once the keep alive timeout expires. Defaults to kernel defaults.

Parameters

  keepAliveIntervalSecs | the frequency of sending keep alive probes in seconds once the keep alive timeout expires

Returns
  this builder object

## ◆ WithTcpKeepAliveMaxProbes()

MqttClientConnectionConfigBuilder & Aws::Iot::MqttClientConnectionConfigBuilder::WithTcpKeepAliveMaxProbes | ( | uint16_t | maxProbes | ) |
| noexcept

TCP option: Sets the amount of keep alive probes allowed to fail before the connection is terminated. Defaults to kernel defaults.

Parameters

  maxProbes | the amount of keep alive probes allowed to fail before the connection is terminated

Returns
  this builder object

## ◆ WithTcpKeepAliveTimeout()

MqttClientConnectionConfigBuilder & Aws::Iot::MqttClientConnectionConfigBuilder::WithTcpKeepAliveTimeout | ( | uint16_t | keepAliveTimeoutSecs | ) |
| noexcept

TCP option: Sets time before keep alive probes are sent. Defaults to kernel defaults

Parameters

  keepAliveTimeoutSecs | time interval of no activity, in seconds, before keep alive probes get sent

Returns
  this builder object

The documentation for this class was generated from the following files:

- crt/aws-crt-cpp/include/aws/iot/MqttClient.h
- crt/aws-crt-cpp/source/iot/MqttClient.cpp