Microsoft Azure IoTHub client libraries

Dependents:   sht15_remote_monitoring RobotArmDemo iothub_client_sample_amqp f767zi_mqtt ... more

This library implements the Microsoft Azure IoTHub client library. The code is replicated from https://github.com/Azure/azure-iot-sdks

Committer:
AzureIoTClient
Date:
Thu Oct 04 09:15:49 2018 -0700
Revision:
93:7c0bbb86b167
Parent:
92:97148cf9aa2a
1.2.10

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AzureIoTClient 48:cc5d91f2b06d 1 // Copyright (c) Microsoft. All rights reserved.
AzureIoTClient 48:cc5d91f2b06d 2 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
AzureIoTClient 48:cc5d91f2b06d 3
AzureIoTClient 48:cc5d91f2b06d 4 #ifndef IOTHUB_CLIENT_OPTIONS_H
AzureIoTClient 48:cc5d91f2b06d 5 #define IOTHUB_CLIENT_OPTIONS_H
AzureIoTClient 48:cc5d91f2b06d 6
AzureIoTClient 87:127f440f845b 7 #include "azure_c_shared_utility/const_defines.h"
AzureIoTClient 87:127f440f845b 8
AzureIoTClient 48:cc5d91f2b06d 9 #ifdef __cplusplus
AzureIoTClient 48:cc5d91f2b06d 10 extern "C"
AzureIoTClient 48:cc5d91f2b06d 11 {
AzureIoTClient 48:cc5d91f2b06d 12 #endif
AzureIoTClient 48:cc5d91f2b06d 13
AzureIoTClient 48:cc5d91f2b06d 14 typedef struct IOTHUB_PROXY_OPTIONS_TAG
AzureIoTClient 48:cc5d91f2b06d 15 {
AzureIoTClient 48:cc5d91f2b06d 16 const char* host_address;
AzureIoTClient 48:cc5d91f2b06d 17 const char* username;
AzureIoTClient 48:cc5d91f2b06d 18 const char* password;
AzureIoTClient 48:cc5d91f2b06d 19 } IOTHUB_PROXY_OPTIONS;
AzureIoTClient 48:cc5d91f2b06d 20
AzureIoTClient 87:127f440f845b 21 static STATIC_VAR_UNUSED const char* OPTION_LOG_TRACE = "logtrace";
AzureIoTClient 87:127f440f845b 22 static STATIC_VAR_UNUSED const char* OPTION_X509_CERT = "x509certificate";
AzureIoTClient 87:127f440f845b 23 static STATIC_VAR_UNUSED const char* OPTION_X509_PRIVATE_KEY = "x509privatekey";
AzureIoTClient 87:127f440f845b 24 static STATIC_VAR_UNUSED const char* OPTION_KEEP_ALIVE = "keepalive";
AzureIoTClient 87:127f440f845b 25 static STATIC_VAR_UNUSED const char* OPTION_CONNECTION_TIMEOUT = "connect_timeout";
AzureIoTClient 48:cc5d91f2b06d 26
AzureIoTClient 87:127f440f845b 27 static STATIC_VAR_UNUSED const char* OPTION_PROXY_HOST = "proxy_address";
AzureIoTClient 87:127f440f845b 28 static STATIC_VAR_UNUSED const char* OPTION_PROXY_USERNAME = "proxy_username";
AzureIoTClient 87:127f440f845b 29 static STATIC_VAR_UNUSED const char* OPTION_PROXY_PASSWORD = "proxy_password";
AzureIoTClient 48:cc5d91f2b06d 30
AzureIoTClient 87:127f440f845b 31 static STATIC_VAR_UNUSED const char* OPTION_SAS_TOKEN_LIFETIME = "sas_token_lifetime";
AzureIoTClient 87:127f440f845b 32 static STATIC_VAR_UNUSED const char* OPTION_SAS_TOKEN_REFRESH_TIME = "sas_token_refresh_time";
AzureIoTClient 87:127f440f845b 33 static STATIC_VAR_UNUSED const char* OPTION_CBS_REQUEST_TIMEOUT = "cbs_request_timeout";
AzureIoTClient 48:cc5d91f2b06d 34
AzureIoTClient 87:127f440f845b 35 static STATIC_VAR_UNUSED const char* OPTION_MIN_POLLING_TIME = "MinimumPollingTime";
AzureIoTClient 87:127f440f845b 36 static STATIC_VAR_UNUSED const char* OPTION_BATCHING = "Batching";
AzureIoTClient 48:cc5d91f2b06d 37
AzureIoTClient 92:97148cf9aa2a 38 /* DEPRECATED:: OPTION_MESSAGE_TIMEOUT is DEPRECATED! Use OPTION_SERVICE_SIDE_KEEP_ALIVE_FREQ_SECS for AMQP; MQTT has no option available. OPTION_MESSAGE_TIMEOUT legacy variable will be kept for back-compat. */
AzureIoTClient 87:127f440f845b 39 static STATIC_VAR_UNUSED const char* OPTION_MESSAGE_TIMEOUT = "messageTimeout";
AzureIoTClient 87:127f440f845b 40 static STATIC_VAR_UNUSED const char* OPTION_BLOB_UPLOAD_TIMEOUT_SECS = "blob_upload_timeout_secs";
AzureIoTClient 87:127f440f845b 41 static STATIC_VAR_UNUSED const char* OPTION_PRODUCT_INFO = "product_info";
AzureIoTClient 86:a1352899ea45 42
AzureIoTClient 86:a1352899ea45 43 /*
AzureIoTClient 86:a1352899ea45 44 * @brief Turns on automatic URL encoding of message properties + system properties. Only valid for use with MQTT Transport
AzureIoTClient 86:a1352899ea45 45 */
AzureIoTClient 87:127f440f845b 46 static STATIC_VAR_UNUSED const char* OPTION_AUTO_URL_ENCODE_DECODE = "auto_url_encode_decode";
AzureIoTClient 89:a2ed767a532e 47
AzureIoTClient 75:86205ca63a59 48 /*
AzureIoTClient 75:86205ca63a59 49 * @brief Informs the service of what is the maximum period the client will wait for a keep-alive message from the service.
AzureIoTClient 75:86205ca63a59 50 * The service must send keep-alives before this timeout is reached, otherwise the client will trigger its re-connection logic.
AzureIoTClient 75:86205ca63a59 51 * Setting this option to a low value results in more aggressive/responsive re-connection by the client.
AzureIoTClient 75:86205ca63a59 52 * The default value for this option is 240 seconds, and the minimum allowed is usually 5 seconds.
AzureIoTClient 75:86205ca63a59 53 * To virtually disable the keep-alives from the service (and consequently the keep-alive timeout control on the client-side), set this option to a high value (e.g., UINT_MAX).
AzureIoTClient 75:86205ca63a59 54 */
AzureIoTClient 87:127f440f845b 55 static STATIC_VAR_UNUSED const char* OPTION_SERVICE_SIDE_KEEP_ALIVE_FREQ_SECS = "svc2cl_keep_alive_timeout_secs";
AzureIoTClient 81:8de701563187 56
AzureIoTClient 92:97148cf9aa2a 57 /* DEPRECATED:: OPTION_C2D_KEEP_ALIVE_FREQ_SECS is DEPRECATED! Use OPTION_SERVICE_SIDE_KEEP_ALIVE_FREQ_SECS, but OPTION_C2D_KEEP_ALIVE_FREQ_SECS legacy variable kept for back-compat. */
AzureIoTClient 92:97148cf9aa2a 58 static STATIC_VAR_UNUSED const char* OPTION_C2D_KEEP_ALIVE_FREQ_SECS = "c2d_keep_alive_freq_secs";
AzureIoTClient 83:18ccaa6567d0 59
AzureIoTClient 83:18ccaa6567d0 60 /*
AzureIoTClient 83:18ccaa6567d0 61 * @brief Ratio to be used for client side pings in AMQP protocol.
AzureIoTClient 83:18ccaa6567d0 62 * The client must use this ratio to send keep-alives before service side remote idle timeout is reached, otherwise the service will disconnect the client.
AzureIoTClient 92:97148cf9aa2a 63 * The default value for this option is 1/2 of the remote idle value sent by the service.
AzureIoTClient 83:18ccaa6567d0 64 * For AMQP remote idle set to 4 minutes, default client ping will be 2 minutes. For AMQP remote idle set to 25 minutes configured via per Hub basis, the default ping will be 12.5 minutes.
AzureIoTClient 83:18ccaa6567d0 65 */
AzureIoTClient 92:97148cf9aa2a 66 static STATIC_VAR_UNUSED const char* OPTION_REMOTE_IDLE_TIMEOUT_RATIO = "cl2svc_keep_alive_send_ratio";
AzureIoTClient 66:a419827cb051 67
AzureIoTClient 92:97148cf9aa2a 68 /*
AzureIoTClient 92:97148cf9aa2a 69 * @brief This option should be used instead of OPTION_MESSAGE_TIMEOUT if using AMQP protocol.
AzureIoTClient 92:97148cf9aa2a 70 * It defines the maximum ammount of time, in seconds, the client will wait for a telemetry message to complete sending before returning it with a IOTHUB_CLIENT_CONFIRMATION_MESSAGE_TIMEOUT error.
AzureIoTClient 92:97148cf9aa2a 71 * The default value 5 (five) minutes.
AzureIoTClient 92:97148cf9aa2a 72 * This option is applicable only to AMQP protocol.
AzureIoTClient 92:97148cf9aa2a 73 */
AzureIoTClient 92:97148cf9aa2a 74 static STATIC_VAR_UNUSED const char* OPTION_EVENT_SEND_TIMEOUT_SECS = "event_send_timeout_secs";
AzureIoTClient 91:bbf806070c5f 75
AzureIoTClient 77:e4e36df9caee 76 //diagnostic sampling percentage value, [0-100]
AzureIoTClient 87:127f440f845b 77 static STATIC_VAR_UNUSED const char* OPTION_DIAGNOSTIC_SAMPLING_PERCENTAGE = "diag_sampling_percentage";
AzureIoTClient 77:e4e36df9caee 78
AzureIoTClient 48:cc5d91f2b06d 79 #ifdef __cplusplus
AzureIoTClient 48:cc5d91f2b06d 80 }
AzureIoTClient 48:cc5d91f2b06d 81 #endif
AzureIoTClient 48:cc5d91f2b06d 82
AzureIoTClient 48:cc5d91f2b06d 83 #endif /* IOTHUB_CLIENT_OPTIONS_H */