Zones
- POST /infrastructure/zones/create
Create a new zone
Create a new zone in the infrastructure
- Status Codes:
201 Created – Success response
400 Bad Request – Invalid request payload
500 Internal Server Error – Internal server error
- POST /infrastructure/zones/disable
Disable a zone
Disable an active zone
- Status Codes:
201 Created – Success response
400 Bad Request – Invalid request payload
500 Internal Server Error – Internal server error
- GET /infrastructure/zones/dns/applies/{id}
List DNS applies for a zone
- Parameters:
id (string) – Zone ID
- Query Parameters:
status (string) – Filter: pending, running, completed, failed, cancelled
- GET /infrastructure/zones/dns/apply/{id}
Read a DNS apply’s progress and per-target outcome
- Parameters:
id (string) – Zone ID
- POST /infrastructure/zones/dns/apply/{id}
Apply the zone’s DNS to its routers and system VMs, now or scheduled
- Parameters:
id (string) – Zone ID
- Status Codes:
202 Accepted – Accepted
409 Conflict – An apply is already pending or running
- Response JSON Object:
created_at (string)
current_kind (string)
current_step (integer)
current_target (string) – The device being worked on right now, and how far through. Progress only moves when a device finishes, so without these a reader who arrives - or reloads - mid-device sees 0% and no name until the first one completes, which for a system VM rebuild is minutes. Live frames carry the same thing but only to whoever was already watching.
id (string)
is_scheduled (boolean) – IsScheduled separates a window a user chose from a run they asked for now. Stored rather than inferred from run_at, which stops meaning anything once the time passes.
log_path (string) – LogPath is where this run’s log was written, so it can be read back after the process that wrote it has gone.
note (string)
progress (integer)
requested_by (string)
run_at (string)
scope (string)
status (string)
total_targets (integer)
updated_at (string)
zone_id (string)
- GET /infrastructure/zones/dns/logs/{apply_id}
Read the log of a zone DNS apply
- Parameters:
apply_id (string) – Apply ID
- GET /infrastructure/zones/dns/status/{id}
Which devices are using the zone’s saved DNS
- Parameters:
id (string) – Zone ID
- Query Parameters:
verify (boolean) – Read each device directly instead of using list data
target (string) – Read only this device (its id), instead of the whole zone
- Status Codes:
200 OK – OK
- Response JSON Object:
activity[].account (string)
activity[].blocks (string)
activity[].id (string)
activity[].kind (string)
activity[].progress (integer)
activity[].source (string)
activity[].target (string)
blocking[].account (string)
blocking[].blocks (string)
blocking[].id (string)
blocking[].kind (string)
blocking[].progress (integer)
blocking[].source (string)
blocking[].target (string)
checked_at (string)
configured.dns1 (string)
configured.dns2 (string)
configured.internaldns1 (string)
configured.internaldns2 (string)
guests.checked (boolean)
guests.note (string)
guests.total (integer)
notes[] (string)
targets[].action.kind (string)
targets[].action.label (string)
targets[].action.target_id (string)
targets[].checked_at (string) – CheckedAt is when this device was last actually read, set only on rows filled from a stored reading. Absent means the row is what this request just observed.
targets[].detail (string)
targets[].expected[] (string)
targets[].handed_out[] (string)
targets[].id (string)
targets[].kind (string)
targets[].name (string)
targets[].network (string) – Network is the router’s guest network. A redundant pair shares one, and one restart serves both.
targets[].outage (string)
targets[].reason_code (string)
targets[].running[] (string)
targets[].state (string)
targets[].summary (string)
verified (boolean)
zone_id (string)
zone_name (string)
- POST /infrastructure/zones/enable
Enable a zone
Enable a disabled zone
- Status Codes:
201 Created – Success response
400 Bad Request – Invalid request payload
500 Internal Server Error – Internal server error
- POST /infrastructure/zones/get-by-id
Get zone by ID
Retrieve zone details by unique identifier
- Status Codes:
200 OK – Success response
400 Bad Request – Invalid request payload
500 Internal Server Error – Internal server error
- GET /infrastructure/zones/get-by-name
Get zone by name
Retrieve zone details by name
- Status Codes:
200 OK – Success response
400 Bad Request – Invalid request payload
500 Internal Server Error – Internal server error
- POST /infrastructure/zones/get-metrics
Get zone metrics with infrastructure details
Get zone metrics along with pods, clusters, and hosts information for a specific zone
- Status Codes:
200 OK – Success response
400 Bad Request – Invalid request payload
500 Internal Server Error – Internal server error
- GET /infrastructure/zones/list
List zones
Get a list of all zones with optional filters
- Status Codes:
200 OK – Success response
400 Bad Request – Invalid request payload
500 Internal Server Error – Internal server error
- GET /infrastructure/zones/metrics
List zones metrics
Get a list of all zones with resource metrics (CPU, memory, storage usage)
- Status Codes:
200 OK – Success response
400 Bad Request – Invalid request payload
500 Internal Server Error – Internal server error
- PUT /infrastructure/zones/update
Update zone configuration
Update the configuration of an existing zone
- Status Codes:
200 OK – Success response
400 Bad Request – Invalid request payload
500 Internal Server Error – Internal server error