/** @mainpage Overview @anchor jobs @brief AWS IoT Jobs client library, part of the AWS IoT Device SDK for Embedded C
AWS IoT jobs can be used to define a set of remote operations that are sent to and executed on one or more devices connected to AWS IoT. For documentation of the service, please see the [AWS IoT Developer Guide](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs.html). Interactions with the jobs service use MQTT, a lightweight publish-subscribe protocol. This library provides a convenience API to compose and recognize the MQTT topic strings used by the jobs service. The library is written in C and designed to be compliant with ISO C90 and MISRA C:2012. It has proofs showing safe memory use and no heap allocation, making it suitable for IoT microcontrollers, but also fully portable to other platforms.
> **NOTE**: > If your application uses both AWS IoT Jobs library and [OTA library](https://github.com/aws/ota-for-aws-iot-embedded-sdk) to communicate with AWS IoT through a shared MQTT connection, we suggest that you keep the application logic that uses these libraries within a single task/thread. > As the OTA agent also makes calls to the AWS IoT Jobs service, keeping the use of libraries within the same thread context will avoid complexity of synchronizing communication with AWS IoT Jobs topics between multiple tasks/threads. > However, if you choose to use different tasks/threads for calling these libraries, please be aware that the OTA library will subscribe and configurably, unsubscribe from AWS IoT Jobs topics, and also attempt to send status updates for incoming non-OTA jobs, if your application configures the OTA library to handle custom jobs. @section jobs_memory_requirements Memory Requirements @brief Memory requirements of the jobs library. @include{doc} size_table.html */ /** @page jobs_features Features Jobs Library FeaturesAll functions in the jobs library operate only on the buffers provided, and use only local variables on the stack.
The jobs library is designed to be compliant with ISO C90 and MISRA C:2012. All functions are written to have minimal complexity. Unit tests and [CBMC](https://www.cprover.org/cbmc/) proofs are written to cover every path of execution and achieve 100% branch coverage.
*/ /** @page jobs_config Configurations @brief Configurations of the Jobs Library. @par configpagestyle These configuration settings are C pre-processor constants they are set using a compiler option such as -D in gcc. @section THINGNAME_MAX_LENGTH @copydoc THINGNAME_MAX_LENGTH @section JOBID_MAX_LENGTH @copydoc JOBID_MAX_LENGTH */ /** @page jobs_functions Functions @brief Primary functions of the Jobs library: