---
title: "Create Diagnostic Action"
method: POST
path: "/api/v1/devices/{device_id}/diagnostic-actions"
tags: ["device actions"]
---

# Create Diagnostic Action

`POST /api/v1/devices/{device_id}/diagnostic-actions`

## Request

- Base URL: `https://api.brumby.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.brumby.com/api/v1/devices/{device_id}/diagnostic-actions`
- Auth: HTTP bearer

## Path parameters

- `device_id` string, required

## Headers

- `Idempotency-Key` string, nullable

## Request body

- DiagnosticActionCreate
  - `process` 'hello_world' | 'dock_cover' | 'dock_release' | 'dock_host' | 'mission' | 'sim_run'
  - `action` 'start' | 'stop' | 'status' | 'open' | 'close' | 'install' | 'reboot' | 'stage', required
  - `parameters` DockReleaseCreateParameters: Operator input: select an immutable, registered catalogue release.
    - `release_id` string, uuid, required
    - `updater_migration_authorization_id` string, uuid, nullable

## Response `201`

Successful Response

- DiagnosticActionResponse
  - `action_id` string, uuid, required
  - `device_id` string, required
  - `release_id` string, uuid, nullable, required
  - `updater_migration_authorization_id` string, uuid, nullable, required
  - `process` 'hello_world' | 'dock_cover' | 'dock_release' | 'dock_host' | 'mission' | 'sim_run', required
  - `action` 'start' | 'stop' | 'status' | 'open' | 'close' | 'install' | 'reboot' | 'stage', required
  - `state` string, required
  - `requested_by_actor` string, required
  - `issued_at` string, date-time, required
  - `expires_at` string, date-time, required
  - `accepted_at` string, date-time, nullable, required
  - `parameters` union, required
    - DockReleaseCreateParameters: Operator input: select an immutable, registered catalogue release.
      - `release_id` string, uuid, required
      - `updater_migration_authorization_id` string, uuid, nullable
    - LegacyDockReleaseParameters: Read compatibility for install actions created before the catalogue. New request bodies cannot use this model. It exists only on response models so historical rows remain inspectable while they are linked/backfilled.
      - `s3_key` string, required
      - `version` string, nullable
      - `sha256` string, nullable
    - MissionStageSummary: Redacted mission metadata safe for staff action history.
      - `farm_id` string, required
      - `mission_id` string, required
      - `config_sha256` string, required
    - SimRunActionParametersV1: Which scheduled simulated run a SITL bench is asked to start or stop. Only the run's identity crosses the wire. The command the bench executes is its operator's own configuration (dock-link `--sim-runner-command`); nothing in this contract names a program, a path or an argument.
      - `run_id` string, uuid, required
  - `result_status` string, nullable, required
  - `result_payload` object, nullable, required
  - `result_received_at` string, date-time, nullable, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/brumby/apis/brumby-platform-api.md) - [All operations](https://skmtc.dev/brumby/apis/brumby-platform-api/llms.txt) - [OpenAPI document](https://skmtc.dev/brumby/apis/brumby-platform-api/revisions/fe185e20813e?raw)
