Skip to content

Draft the name and label a system create would store

POST
/systems:renderLabel
curl --request POST \
--url https://example.com/api/v1/systems:renderLabel \
--header 'Content-Type: application/json' \
--data '{ "location": "example", "name": "example", "parent": "example", "standard_id": "example", "system_type_id": "example" }'

The system tier of :renderLabel on components. Drafts the name and the label a system create would stamp, allocating nothing: the ordinal is read from the placement bucket and the drafted name is posted back as expected_name on the create. A system suppresses the first ordinal in a bucket, so the first boardroom in a room drafts as boardroom and the second as boardroom-2. Omitting name drafts the name the platform would mint and refuses (422) an unclassified system, the same refusal a nameless create gives, since the stem lives on the system_type. Gated by system:create; the parent resolves within the caller’s system:create scope and the location ref within location:read, because a system’s label can carry its location’s. Omitting parent is the parentless bucket, refused (403) without an all-scoped create grant, exactly as the create refuses it.

Media type application/json
object
$schema

A URL to the JSON Schema for this object.

string format: uri
location

The location this system will sit at, by name or uuid. Resolved within the caller’s location:read scope.

string
name

The name the row will carry. Omit it to draft the name and label the platform would produce; supply it to draft the label an operator-named row would carry, which has no ordinal at all.

string
parent

The parent system, by name or uuid. Part of the placement bucket a generated name’s ordinal is read from. Resolved within the caller’s system:create scope.

string
standard_id

The standard this system conforms to, by name or uuid; omit for a one-off system

string
system_type_id

The system_type this system is classified by, by name or uuid. Required to render a generated name’s label: the stem lives on that registry row.

string

OK

Media type application/json
object
$schema

A URL to the JSON Schema for this object.

string format: uri
label
required

The label the create would store. Empty means no label is stored and the surface falls back to the name.

string
name
required

The name the create would stamp: the one you supplied, or the one the platform would mint. Generated names carry the ordinal that is free in the placement bucket right now.

string
ordinal

The ordinal that name was minted from, absent when you supplied the name (an operator-named row carries no ordinal). Informational: what a form posts back as the create’s precondition is the NAME above, since that carries the stem and the suppression rule as well as this number.

integer format: int64
rule
required

The label rule that produced it, resolved through the same tiers the create uses. Empty means no tier carries a rule for this classification.

string
Example
{
"$schema": "/api/v1/schemas/DraftLabelOutputBody.json"
}

Error

Media type application/problem+json
object
$schema

A URL to the JSON Schema for this object.

string format: uri
detail

A human-readable explanation specific to this occurrence of the problem.

string
errors

Optional list of individual error details

Array<object> | null
object
location

Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’

string
message

Error message text

string
value

The value at the given location

instance

A URI reference that identifies the specific occurrence of the problem.

string format: uri
status

HTTP status code

integer format: int64
title

A short, human-readable summary of the problem type. This value should not change between occurrences of the error.

string
type

A URI reference to human-readable documentation for the error.

string format: uri
default: about:blank
Example
{
"$schema": "/api/v1/schemas/ErrorModel.json",
"detail": "Property foo is required but is missing.",
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "about:blank"
}