Action

An Action is directed activity, a time-critical notification, an order, or a structured report shared through WDM. The same message can express an ISR collection task, fire mission, operations order, contact alert, SPOTREP, or status report.

The scope gives the broad category and type gives the integration-specific interpretation. Actions can stand alone, compose into parent/child hierarchies, link to other Actions, and link to Objects that are targets, assets, or related context.

Example

{
  "id": "isr-collect-alpha",
  "name": "ISR Collection Alpha",
  "type": "isr_collection",
  "scope": "ACTION_SCOPE_TASK",
  "state": "ACTION_STATE_ASSIGNED",
  "priority": "ACTION_PRIORITY_HIGH",
  "requestedBy": {
    "id": "ops-cell-alpha",
    "type": "PRINCIPAL_TYPE_USER"
  },
  "assignedTo": {
    "id": "uav-shadow-07",
    "type": "PRINCIPAL_TYPE_OBJECT"
  },
  "authorizedBy": {
    "id": "s2-battle-captain",
    "type": "PRINCIPAL_TYPE_USER"
  },
  "intent": {
    "purpose": "Observe NAI 3 before the convoy crosses phase line BLUE",
    "method": "Maintain a collection orbit with EO/IR coverage",
    "endState": "Report movement or changes near the route"
  },
  "objectLinks": [
    {
      "objectId": "link16-track-47210",
      "type": "OBJECT_LINK_TYPE_TARGET"
    }
  ],
  "provenance": {
    "name": "ops-center-01",
    "updatedAt": "2026-05-27T21:31:04Z"
  }
}

Discipline

  • Provide an id unless you intentionally want the service to generate one.

  • Set scope and type so consumers know how to interpret the Action.

  • Include provenance.updatedAt on create, and include it on state updates when reporting the update source.

  • Populate routing fields such as requestedBy, assignedTo, and authorizedBy when they apply.

  • Link related Objects with objectLinks instead of burying Object identifiers in free-form text.

  • Treat the Action content as immutable after creation; use UpdateActionState for state and progress.

Lifecycle

Use state to tell consumers where the Action is in execution. Use UpdateActionState to acknowledge, plan, execute, complete, fail, reject, or cancel the Action.

  • ACTION_STATE_DRAFT, ACTION_STATE_PENDING, and ACTION_STATE_APPROVED describe preparation and approval.

  • ACTION_STATE_ASSIGNED, ACTION_STATE_ACKNOWLEDGED, ACTION_STATE_PLANNED, and ACTION_STATE_IN_PROGRESS describe execution.

  • ACTION_STATE_COMPLETED, ACTION_STATE_FAILED, ACTION_STATE_CANCELLED, and ACTION_STATE_REJECTED are terminal.

  • Same-state updates are valid when only progress changes.

{
  "actionId": "isr-collect-alpha",
  "state": "ACTION_STATE_IN_PROGRESS",
  "progress": {
    "phase": "ON_STATION",
    "statusMessage": "Asset on station, commencing collection orbit"
  },
  "provenance": {
    "name": "uav-shadow-07",
    "updatedAt": "2026-05-27T21:31:04Z"
  }
}