Zequent Client SDK — Connector API Reference

Exhaustive method reference for client.connector(). For a narrative introduction, request-context handling, and worked examples, see the Connector guide. For Python, see CONNECTOR_PYTHON.md.

All methods return a CompletableFuture. MissionResponse/TaskResponse/WaypointsResponse/ SchedulerResponse use isSuccess() + getError(); everything else uses getHasErrors() + getError() — see Functional Responses for what these actually mean.

Assets

MethodReturnsPurpose
getAssetBySn(GetAssetBySnRequest)ConnectorResponseLook up an asset by its serial number
getAssetById(GetAssetByIdRequest)ConnectorResponseLook up an asset by its platform ID
getSubAssetBySn(GetSubAssetBySnRequest)ConnectorResponseLook up a sub-asset (e.g. the drone paired to a dock)
registerAsset(RegisterAssetRequest)ConnectorResponseRegister a new asset (normally done by an edge adapter, not a customer app)
updateAsset(UpdateAssetRequest)ConnectorResponseUpdate asset metadata
updateSubAsset(UpdateSubAssetRequest)ConnectorResponseUpdate sub-asset metadata
deregisterAsset(DeregisterAssetRequest)ConnectorResponseRemove an asset

Asset payloads

Arbitrary, versioned metadata blobs attached to an asset (e.g. flight-plan artifacts, calibration data).

MethodReturnsPurpose
upsertAssetPayload(UpsertAssetPayloadRequest)AssetPayloadResponseCreate or update a payload
listAssetPayloads(ListAssetPayloadsRequest)AssetPayloadListResponseList payloads for an asset
deleteAssetPayload(DeleteAssetPayloadRequest)AssetPayloadResponseRemove a payload

Organizations

MethodReturnsPurpose
getOrganization(GetOrganizationRequest)ConnectorResponseGet the calling application's organization info

Missions

Mission methods create and read mission records — creating one does not fly anything by itself. How a flight is actually triggered depends on the adapter; see Waypoint Missions.

Prefer missionAutonomy()'s copies of createMission/updateMission for anything real. Confirmed against the backend: they run the mission through route optimization before writing the exact same record these methods write directly, unoptimized. Use these only if you specifically want the raw write.

MethodReturnsPurpose
getMission(GetMissionRequest)MissionResponseGet a mission by ID
createMission(CreateMissionRequest)MissionResponseCreate a mission
updateMission(UpdateMissionRequest)MissionResponseUpdate a mission
deleteMission(DeleteMissionRequest)MissionResponseDelete a mission
uploadMissionNfzZones(UploadMissionZonesRequest)MissionResponseAttach no-fly zones to a mission

GeoAreaDTO.type requirements

TypeRequires
GEO_AREA_TYPE_POLYGON3+ vertices
GEO_AREA_TYPE_BOUNDING_BOXexactly 2 vertices
GEO_AREA_TYPE_CIRCLEcenter + a positive radiusMeters
GEO_AREA_TYPE_GEO_JSONgeoJson

UploadMissionZonesRequest.replaceExisting(true) replaces the mission's whole zone set instead of appending to it.

Tasks

Task methods create and read task records — creating a task does not start it. startTask (on MissionAutonomy, not Connector) reaches the device only where the adapter implements the task methods (DJI, SAPIENT) — see Waypoint Missions.

Prefer missionAutonomy()'s copies of createTask/updateTask for a waypoint task. Confirmed against the backend: for a task with a missionId and waypoints, they route the task around that mission's no-fly zones before writing the exact same record these methods write directly, unoptimized.

MethodReturnsPurpose
getTask(GetTaskRequest)TaskResponseGet a task by ID
getTaskByFlightId(GetTaskByFlightIdRequest)TaskResponseGet a task by its external flight ID (TaskDTO.externalTaskId — the ID an edge adapter assigned it)
getWaypointsByTaskId(GetWaypointsByTaskIdRequest)WaypointsResponseGet the resolved waypoint list for a task
createTask(CreateTaskRequest)TaskResponseCreate a task
updateTask(UpdateTaskRequest)TaskResponseUpdate a task
deleteTask(DeleteTaskRequest)TaskResponseDelete a task

Schedulers

Schedulers define when and how often a task or command runs.

MethodReturnsPurpose
getScheduler(GetSchedulerRequest)SchedulerResponseGet a scheduler by ID
createScheduler(CreateSchedulerRequest)SchedulerResponseCreate a scheduler
createSchedulers(CreateSchedulersRequest)SchedulerResponseCreate several schedulers in one call
updateScheduler(UpdateSchedulerRequest)SchedulerResponseUpdate a scheduler
deleteScheduler(DeleteSchedulerRequest)SchedulerResponseDelete a scheduler
deleteSchedulers(DeleteSchedulersRequest)SchedulerResponseDelete several schedulers in one call
deleteSchedulersByTask(DeleteSchedulersByTaskRequest)SchedulerResponseDelete every scheduler tied to one task

Technical configuration & policies

Read-only lookups useful when your application needs to mirror platform-side configuration or operational policy (e.g. no-fly zones, altitude limits) rather than hard-coding it.

MethodReturnsPurpose
getTechnicalConfigs(GetTechnicalConfigsRequest)ConnectorConfigResponseFetch technical configuration values
getActivePoliciesByType(GetPoliciesRequest)ConnectorPolicyResponseFetch active operational policies of a given type
getAllActivePolicies(GetAllActivePoliciesRequest)ConnectorPolicyResponseFetch every active operational policy

Asset monitoring and batch ingestion

Four methods with no javadoc and no confirmed real caller found anywhere in this SDK's own test suite or in edge-dji — documented here from their verified type signatures and implementation, not from any stated intent. Take the "purpose" column as inferred from behavior, not as a confirmed use case.

MethodReturnsBehavior
assetMonitoring(AssetMonitoringRequest, onData, onError)StreamHandleServer-streamed subscription: pushes a full List<AssetDTO> snapshot on onData every time the platform's asset set changes, using this SDK's own com.zqnt.sdk.client.livedata.domains.StreamHandle — the same reconnecting-handle class the SDK's Live Data telemetry streaming returns — call .stop()/.close() to cancel. No Java prose doc exists for that handle's start/stop/reconnect semantics yet; see the Python asyncio streaming pattern for the same paradigm (Python's own StreamHandle, not literally this class) worked through from the client side. Conceptually the org-scoped counterpart of the Python Edge SDK's ConnectorClient.watch_assets(), which does the equivalent at the edge.
storeTelemetryBatch()ConnectorBatchSession<StoreTelemetryRequest>Opens a client-streaming batch session: call send(...) repeatedly, then complete() for one aggregated ConnectorResponse. Each StoreTelemetryRequest carries a sourceType (ASSET/SUB_ASSET), assetId, sourceSystem, and a TelemetryData payload — this writes telemetry as if from an edge adapter, from client-side code instead
storeDetectionBatch()ConnectorBatchSession<StoreDetectionRequest>Same batch-session pattern; each request carries one DetectionDTO
storeNotificationBatch()ConnectorBatchSession<StoreNotificationRequest>Same batch-session pattern; each request carries one of an AssetStatusEvent, TaskEvent, or MissionEvent (discriminated by eventType), plus a Severity

ConnectorBatchSession<T> (send/complete/cancel/isCompleted, AutoCloseable) is the same client-streaming session shape across all three batch methods — open one, send() as many records as you have, then complete() once to get back a single ConnectorResponse for the whole batch.

Read these as a bulk/backfill ingestion path for telemetry, detections, and notifications that didn't originate from a normal edge-adapter Live Data stream — e.g. importing historical data or bridging a third-party data source — rather than something a typical real-time integration needs. If you're building a normal edge adapter, use Live Data instead; these three exist on the Client SDK, not the Edge SDK.

Capabilities

Capability discovery lives on client.remoteControl(), not client.connector() — see Remote Control — Capabilities & custom commands. What an asset reports comes from its edge adapter — see Edge SDK — Connector.

Was this page helpful?