Edge SDK — Mission Autonomy API Reference

Beta preview: an unmerged 2.0.x branch shrinks this interface to getScheduler alone — 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 MissionAutonomyService. For a narrative introduction, see the Mission Autonomy guide.

No confirmed real-adapter usage of any method on this interface. edge-dji (the one production Java adapter) wires up a MissionAutonomyService bean via its own CDI producer, but calls none of its six methods anywhere — its one Mission Autonomy-shaped call (getTaskByFlightId) actually goes through ConnectorService, not this interface. Confirmed by grepping for every method name across the adapter's source.

public interface MissionAutonomyService {
    CompletableFuture<MissionDTO> createMission(CreateMissionRequest createMissionRequest);
    CompletableFuture<MissionDTO> updateMission(UpdateMissionRequest updateMissionRequest);
    CompletableFuture<MissionDTO> getMission(GetMissionRequest getRequest);
    CompletableFuture<TaskDTO> getTask(GetTaskRequest getTaskRequest);
    CompletableFuture<TaskDTO> getTaskByFlightId(GetTaskByFlightIdRequest getTaskRequest);
    CompletableFuture<SchedulerDTO> getScheduler(GetSchedulerRequest getSchedulerRequest);
}

Missions

MethodReturnsPurpose
createMission(CreateMissionRequest)MissionDTOCreate a mission — route-optimized, see below
updateMission(UpdateMissionRequest)MissionDTOUpdate a mission — same optimization
getMission(GetMissionRequest)MissionDTOGet a mission by ID (request.getMissionId())

createMission/updateMission are confirmed, via MissionAutonomyGrpcService on the platform side, to run the mission through missionRouteOptimizer.optimize(...) before delegating to connector-service — the exact same optimization the Client SDK's client.missionAutonomy() applies. This is the one place this interface differs functionally from ConnectorService's own createMission/updateMission, which write the unoptimized record directly.

Tasks

MethodReturnsPurpose
getTask(GetTaskRequest)TaskDTOGet a task by ID (request.getTaskId())
getTaskByFlightId(GetTaskByFlightIdRequest)TaskDTOGet a task by its external flight ID (request.getFlightId())

Confirmed, on the platform side, to be a plain passthrough to connector-service — no optimization applies to reads. Functionally identical to calling ConnectorService.getTaskById/getTaskByFlightId directly; this interface adds nothing for these two beyond a different gRPC endpoint to reach the same result.

Schedulers

MethodReturnsPurpose
getScheduler(GetSchedulerRequest)SchedulerDTOGet a scheduler by ID (request.getSchedulerId())

Also a plain passthrough to connector-service — identical in effect to ConnectorService.getSchedulerById. Scheduler create/update/delete stay on ConnectorService only; this interface has no write methods for schedulers at all.

Was this page helpful?