com.microsoft.azure.sdk.iot.device

The API for a device to communicate with an IoT Hub.

Classes

BatchMessage

Used to construct batch messages to be sent to the IoT Hub com.microsoft.azure.sdk.iot.device.InternalClient#sendEventsAsync(List, MessagesSentCallback, Object)

ClientConfiguration

Configuration settings for an IoT Hub client. Validates all user-defined settings.

ClientOptions

Options that allow configuration of the device client instance during initialization.

ConnectionStatusChangeContext

The context surrounding a connection status change event for this client.

DeviceClient

The public-facing API. Allows a single logical or physical device to connect to an IoT Hub. The IoT Hub client supports sending events to and receiving messages from an IoT Hub.

To support these workflows, the client library will provide the following abstractions: a message, with its payload and associated properties; and a client, which sends and receives messages.

The client buffers messages while the network is down, and re-sends them when the network comes back online. It also batches messages to improve communication efficiency (HTTPS only).

The client supports HTTPS 1.1 and AMQPS 1.0 transports.

FileUploadCompletionNotification

The request payload to send to IoT Hub to notify it when a file upload is completed, whether successful or not. Must set whether the file upload was a success or not, and must set the correlation Id, but all other fields are optional.

FileUploadSasUriRequest

The request parameters when getting a file upload sas uri from IoT Hub.

FileUploadSasUriResponse

The information provided from IoT Hub that can be used with the Azure Storage SDK to upload a file from your device, including authentication.

InternalClient
IotHubConnectionString

Parser for the Iothub connection string.

Message
MessageProperty

An IoT Hub message property.

ModuleClient

Public API for communicating from Edge Modules. A ModuleClient can be used to send messages from an Edge module to an EdgeHub or an IotHub. It can also send twin updates and listen for method calls from an EdgeHub or IotHub as well

MultiplexingClient

A client for creating multiplexed connections to IoT hub. A multiplexed connection allows for multiple device clients to communicate to the service through a single AMQPS connection.

A given AMQPS connection requires a TLS connection, so multiplexing may be worthwhile if you want to limit the number of TLS connections needed to connect multiple device clients to IoT hub.

A given multiplexing client also has a fixed amount of worker threads regardless of how many device clients are being multiplexed. Comparatively, every non-multiplexed device client instance has its own set of worker threads. Multiplexing may be worthwhile if you want fewer worker threads.

Only AMQPS and AMQPS_WS support multiplexing, and only symmetric key authenticated devices can be multiplexed.

ModuleClient instances cannot be multiplexed.

MultiplexingClientOptions

The optional settings for creating a MultiplexingClient. If set, these values will supersede any device client level settings on these parameters.

ProductInfo

Represents the complete user agent string to be included in all D2C communication.

ProxySettings

Interfaces

CorrelatingMessageCallback

This interface has a number of call backs to notify when a message is in a specific part of the IotHubTransport lifecycle.

There is no default implementation of this interface and will be up to the developer to implement.

IotHubConnectionStatusChangeCallback

Callback interface for allowing users to respond to changes in the connectivity of this sdk to Iot Hub.

MessageCallback

An interface for an IoT Hub message callback.

The developer is expected to create an implementation of this interface, and the transport will call onCloudToDeviceMessageReceived(Message message, Object callbackContext) upon receiving a message from an IoT Hub.

MessageSentCallback

The callback interface that defines how this client will notify you once a particular message has been sent and acknowledged by the service. Used by sendEventAsync(Message message, MessageSentCallback callback, Object callbackContext)

MessagesSentCallback

The callback interface that defines how this client will notify you once a batch of messages has been sent and acknowledged by the service. Used by InternalClient#sendEventsAsync(List, MessagesSentCallback, Object)

SasTokenProvider

Interface for allowing users to control SAS token generation. To see an example of how SAS tokens can be generated from device connection strings, see IotHubSasToken.

Enums

IotHubClientProtocol

The application-layer protocol used by the client to communicate with an IoT Hub.

IotHubConnectionStatusChangeReason
IotHubMessageResult

A return value from a message callback that instructs an IoT hub to complete, abandon, or reject the message. These states are only valid for AMQP messages.

See The cloud-to-device message life cycle for more details on the states and what it means for message delivery and retry.

IotHubStatusCode

An IoT Hub status code. Included in a message from an IoT Hub to a device.

MessageType

The IoTHub message type

ClientConfiguration.AuthType