Zequent Client SDK — Mission Autonomy API Reference

Beta preview: an unmerged 2.0.x branch replaces this entire interface with an Application → Skill → SkillExecution model — see the 2.0.x Beta reference if you want to see where this is headed. Not on main/the current 1.3.x release yet.

Exhaustive method reference for client.missionAutonomy(). All methods return a CompletableFuture; MissionResponse/TaskResponse/SchedulerResponse use isSuccess() + getError() — see Functional Responses.

This is not just a second copy of Connector's CRUD

client.connector() also has createMission/createTask/updateMission/updateTask and the rest of Mission/Task/Scheduler CRUD (see the Connector reference) — the two look redundant, but they aren't equivalent. Confirmed against the real backend (MissionAutonomyGrpcService, core/services/mission-autonomy):

  • missionAutonomy().createMission/updateMission run the mission through missionRouteOptimizer.optimize(...) before delegating to the exact same connector-service call connector() would make directly.
  • missionAutonomy().createTask/updateTask (for a waypoint task with a missionId) run expandAndOptimize(...) — routing the task's waypoints around that mission's no-fly zones — before the same delegation.
  • connector()'s versions skip both of these. They write the same record, but with no optimization or NFZ-aware expansion applied.

Use missionAutonomy() for missions and waypoint tasks in the normal case. Reach for connector()'s copies only if you specifically want the raw, unoptimized write.

Missions

MethodReturnsPurpose
createMission(MissionDTO)MissionResponseCreate a mission (route-optimized)
updateMission(missionId, MissionDTO)MissionResponseUpdate a mission (route-optimized)
getMission(missionId)MissionResponseGet a mission by ID
deleteMission(missionId)MissionResponseDelete a mission
uploadMissionNfzZones(missionId, List<MissionZoneDTO>, replaceExisting)MissionResponseAttach no-fly zones to a mission — do this before creating tasks against it, so task creation/update can actually route around them

Tasks

MethodReturnsPurpose
createTask(TaskDTO)TaskResponseCreate a task (NFZ-expanded/optimized if it's a waypoint task with a missionId)
updateTask(taskId, TaskDTO)TaskResponseUpdate a task (same optimization applied)
getTask(taskId)TaskResponseGet a task by ID
getTaskByFlightId(flightId)TaskResponseGet a task by its external flight ID
deleteTask(taskId)TaskResponseDelete a task

Task execution lifecycle — exclusive to this interface

MethodReturnsPurpose
startTask(taskId)TaskResponseStart executing a task
stopTask(taskId)TaskResponseStop a running task
pauseTask(taskId)TaskResponsePause a running task
resumeTask(taskId)TaskResponseResume a paused task

Connector has no equivalent of any of these four — this is the only interface that can actually trigger, halt, or resume a task on the device. They forward a bare task ID to the adapter, which works only where the adapter implements the task lifecycle (DJI, SAPIENT) — see Waypoint Missions for the full per-adapter picture, including the command-based alternative (MAVLink, the simulator) that doesn't use this lifecycle at all.

Schedulers

MethodReturnsPurpose
createScheduler(SchedulerDTO)SchedulerResponseCreate a scheduler
updateScheduler(schedulerId, SchedulerDTO)SchedulerResponseUpdate a scheduler
getScheduler(schedulerId)SchedulerResponseGet a scheduler by ID
deleteScheduler(schedulerId)SchedulerResponseDelete a scheduler
createSchedulers(List<SchedulerDTO>)SchedulerResponseCreate several schedulers in one call
deleteSchedulers(List<String>)SchedulerResponseDelete several schedulers in one call
deleteAllSchedulersByTaskId(taskId)SchedulerResponseDelete every scheduler tied to one task

Unlike Missions/Tasks, no optimization pass applies here — scheduler CRUD is identical whether called through missionAutonomy() or connector() (the latter's scheduler methods aren't route-related, so there's nothing to optimize either way).

Was this page helpful?