AWS IoT Jobs
v1.1.0
Client library for AWS IoT Jobs
|
|
Go to the documentation of this file.
40 #define JOBS_THINGNAME_MAX_LENGTH 128U
46 #define JOBS_JOBID_MAX_LENGTH 64U
48 #ifndef THINGNAME_MAX_LENGTH
55 #define THINGNAME_MAX_LENGTH JOBS_THINGNAME_MAX_LENGTH
58 #ifndef JOBID_MAX_LENGTH
65 #define JOBID_MAX_LENGTH JOBS_JOBID_MAX_LENGTH
68 #if ( THINGNAME_MAX_LENGTH > JOBS_THINGNAME_MAX_LENGTH )
69 #error "The value of THINGNAME_MAX_LENGTH exceeds the AWS IoT Jobs Service limit."
72 #if ( JOBID_MAX_LENGTH > JOBS_JOBID_MAX_LENGTH )
73 #error "The value of JOBID_MAX_LENGTH exceeds the AWS IoT Jobs Service limit."
81 #define JOBS_API_PREFIX "$aws/things/"
82 #define JOBS_API_PREFIX_LENGTH ( sizeof( JOBS_API_PREFIX ) - 1U )
84 #define JOBS_API_BRIDGE "/jobs/"
85 #define JOBS_API_BRIDGE_LENGTH ( sizeof( JOBS_API_BRIDGE ) - 1U )
87 #define JOBS_API_SUCCESS "/accepted"
88 #define JOBS_API_SUCCESS_LENGTH ( sizeof( JOBS_API_SUCCESS ) - 1U )
90 #define JOBS_API_FAILURE "/rejected"
91 #define JOBS_API_FAILURE_LENGTH ( sizeof( JOBS_API_FAILURE ) - 1U )
93 #define JOBS_API_JOBSCHANGED "notify"
94 #define JOBS_API_JOBSCHANGED_LENGTH ( sizeof( JOBS_API_JOBSCHANGED ) - 1U )
96 #define JOBS_API_NEXTJOBCHANGED "notify-next"
97 #define JOBS_API_NEXTJOBCHANGED_LENGTH ( sizeof( JOBS_API_NEXTJOBCHANGED ) - 1U )
99 #define JOBS_API_GETPENDING "get"
100 #define JOBS_API_GETPENDING_LENGTH ( sizeof( JOBS_API_GETPENDING ) - 1U )
102 #define JOBS_API_STARTNEXT "start-next"
103 #define JOBS_API_STARTNEXT_LENGTH ( sizeof( JOBS_API_STARTNEXT ) - 1U )
105 #define JOBS_API_DESCRIBE "get"
106 #define JOBS_API_DESCRIBE_LENGTH ( sizeof( JOBS_API_DESCRIBE ) - 1U )
108 #define JOBS_API_UPDATE "update"
109 #define JOBS_API_UPDATE_LENGTH ( sizeof( JOBS_API_UPDATE ) - 1U )
111 #define JOBS_API_JOBID_NEXT "$next"
112 #define JOBS_API_JOBID_NEXT_LENGTH ( sizeof( JOBS_API_JOBID_NEXT ) - 1U )
114 #define JOBS_API_JOBID_NULL ""
115 #define JOBS_API_LEVEL_SEPARATOR "/"
117 #define JOBS_API_COMMON_LENGTH( thingNameLength ) \
118 ( JOBS_API_PREFIX_LENGTH + ( thingNameLength ) + JOBS_API_BRIDGE_LENGTH )
129 #define JOBS_TOPIC_COMMON( thingName, jobId, jobsApi ) \
147 #define JOBS_API_SUBSCRIBE_NEXTJOBCHANGED( thingName ) \
148 JOBS_TOPIC_COMMON( thingName, JOBS_API_JOBID_NULL, JOBS_API_NEXTJOBCHANGED )
160 #define JOBS_API_SUBSCRIBE_JOBSCHANGED( thingName ) \
161 JOBS_TOPIC_COMMON( thingName, JOBS_API_JOBID_NULL, JOBS_API_JOBSCHANGED )
173 #define JOBS_API_PUBLISH_STARTNEXT( thingName ) \
174 JOBS_TOPIC_COMMON( thingName, JOBS_API_JOBID_NULL, JOBS_API_STARTNEXT )
186 #define JOBS_API_PUBLISH_GETPENDING( thingName ) \
187 JOBS_TOPIC_COMMON( thingName, JOBS_API_JOBID_NULL, JOBS_API_GETPENDING )
201 #define JOBS_API_PUBLISH_DESCRIBENEXTJOB( thingName ) \
202 JOBS_TOPIC_COMMON( thingName, JOBS_API_JOBID_NEXT JOBS_API_LEVEL_SEPARATOR, JOBS_API_DESCRIBE )
209 #define JOBS_API_MAX_LENGTH( thingNameLength ) \
210 ( JOBS_API_COMMON_LENGTH( thingNameLength ) + \
211 JOBID_MAX_LENGTH + sizeof( '/' ) + JOBS_API_UPDATE_LENGTH + \
212 JOBS_API_SUCCESS_LENGTH + 1U )
245 JobsInvalidTopic = -1,
248 JobsGetPendingSuccess,
249 JobsGetPendingFailed,
250 JobsStartNextSuccess,
323 const char * thingName,
324 uint16_t thingNameLength,
326 size_t * outLength );
441 const char * thingName,
442 uint16_t thingNameLength,
445 uint16_t * outJobIdLength );
509 const char * thingName,
510 uint16_t thingNameLength,
511 size_t * outLength );
575 const char * thingName,
576 uint16_t thingNameLength,
577 size_t * outLength );
653 const char * thingName,
654 uint16_t thingNameLength,
656 uint16_t jobIdLength,
657 size_t * outLength );
730 const char * thingName,
731 uint16_t thingNameLength,
733 uint16_t jobIdLength,
734 size_t * outLength );
JobsTopic_t
Topic values for subscription requests.
Definition: jobs.h:244
@ JobsSuccess
The buffer was properly written or a match was found.
Definition: jobs.h:221
@ JobsBufferTooSmall
The buffer write was truncated.
Definition: jobs.h:224
@ JobsNoMatch
The buffer does not contain a jobs topic.
Definition: jobs.h:222
JobsStatus_t Jobs_GetTopic(char *buffer, size_t length, const char *thingName, uint16_t thingNameLength, JobsTopic_t api, size_t *outLength)
Populate a topic string for a subscription request.
Definition: jobs.c:264
JobsStatus_t Jobs_Update(char *buffer, size_t length, const char *thingName, uint16_t thingNameLength, const char *jobId, uint16_t jobIdLength, size_t *outLength)
Populate a topic string for an UpdateJobExecution request.
Definition: jobs.c:675
JobsStatus_t
Return codes from jobs functions.
Definition: jobs.h:219
@ JobsBadParameter
A function parameter was NULL or has an illegal value.
Definition: jobs.h:223
JobsStatus_t Jobs_Describe(char *buffer, size_t length, const char *thingName, uint16_t thingNameLength, const char *jobId, uint16_t jobIdLength, size_t *outLength)
Populate a topic string for a DescribeJobExecution request.
Definition: jobs.c:634
JobsStatus_t Jobs_GetPending(char *buffer, size_t length, const char *thingName, uint16_t thingNameLength, size_t *outLength)
Populate a topic string for a GetPendingJobExecutions request.
Definition: jobs.c:567
JobsStatus_t Jobs_MatchTopic(char *topic, size_t length, const char *thingName, uint16_t thingNameLength, JobsTopic_t *outApi, char **outJobId, uint16_t *outJobIdLength)
Output a topic value if a Jobs API topic string is present. Optionally, output a pointer to a jobID w...
Definition: jobs.c:509
JobsStatus_t Jobs_StartNext(char *buffer, size_t length, const char *thingName, uint16_t thingNameLength, size_t *outLength)
Populate a topic string for a StartNextPendingJobExecution request.
Definition: jobs.c:600