List a system's effective roles
const url = 'https://example.com/api/v1/systems/example/roles';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/v1/systems/example/rolesEvery role this system needs filled: those its standard declares (from_standard true) plus those declared directly on it, each with the types it accepts (and products it pins, if any), the components filling it, and how many more it wants before quorum (understaffed). A one-off system shows only its own. Gated by system:read; an out-of-scope system is a non-disclosing 404.
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The system’s name, or a dotted address (e.g. boi.17c.$sys.av)
The system’s name, or a dotted address (e.g. boi.17c.$sys.av)
Responses
Section titled “ Responses ”OK
object
A URL to the JSON Schema for this object.
object
The component_types a filling component’s product must be classified within (self or a descendant); empty accepts any type
The choice/alternate this role joins, addressed as “choice-name/alternate-name” (#626); absent when the role is unconditional. The same form the write body takes, so a read round-trips into a write
How many components fill the role
The component names filling this role in this system
The most components the role will accept; null means no upper bound beyond quorum
True when the role is inherited from the system’s standard; false when declared on the system
What an impaired role means for its system: outage, degraded, or none
If set, a filling component’s product must be one of these; empty accepts any product of an accepted type
Human labels for each position within the role, by index; empty when unlabeled
AssignedTo’s own 1-based position, index for index; not necessarily i+1, since an unassign leaves a gap rather than compacting
How many more assignment rows the role wants before quorum, health-blind; zero when enough are assigned regardless of their own condition. See the health read’s short for the occupancy-aware figure
Example
{ "$schema": "/api/v1/schemas/ListSystemRolesOutputBody.json"}default
Section titled “default ”Error
object
A URL to the JSON Schema for this object.
A human-readable explanation specific to this occurrence of the problem.
Optional list of individual error details
object
Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’
Error message text
The value at the given location
A URI reference that identifies the specific occurrence of the problem.
HTTP status code
A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
A URI reference to human-readable documentation for the error.
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"}