Skip to content

List links of Recovery toolkit

GET
/v1/object-types/hospitality.recovery_toolkit/objects/{id}/links/{link_type}
curl --request GET \
--url 'https://api.aerandil.com/v1/object-types/hospitality.recovery_toolkit/objects/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/links/hospitality.link.philosophy_has_recovery_toolkit?direction=out' \
--header 'Authorization: Bearer <token>'

List the neighbours of an instance along a typed link. Direction is inferred when the source binds the link on exactly one side; symmetric links (same object type on both ends) require an explicit ?direction=out or ?direction=in.

The property’s comp-authority policy + recovery framework + top-cover principle. The policy_kind enum spans the observed-in-production patterns (Ritz flat_universal, USHG per_role_per_shift_cumulative, Aman training_and_tenure_based, the strict escalation_only); the role_authorities array carries per-role rules for the policies that need them (per-role-per-incident, per-role-mixed). The original sketch of ‘comp authority per role’ could not admit the universal, per-shift cumulative, training-based, or escalation-only shapes — the enum + array pair is the research-led correction. See products/forge/spec/proposals/0002-service-philosophy.md §3.3 and §10 open question 1 for reviewer context. Soft validators on over-limit recoveries warn but don’t block — over-limit recoveries are exactly the data the operator most needs and would otherwise hide (the literature is explicit that hard blocks produce ‘ghost recoveries’ where the front line works around the system).

id
required
string format: uuid

Object id (UUID v7, server-generated at create time).

link_type
required
Allowed values: hospitality.link.philosophy_has_recovery_toolkit

API name of the link type. Narrowed to link types that bind this source object type on at least one side.

direction
Allowed values: out in

Edge direction to follow. Optional when the link binds the source on exactly one side; required for symmetric links.

limit
integer
>= 1 <= 500
cursor
string
as_of
string format: date-time

RFC3339 temporal window: return neighbours whose edge was in effect at this instant ([effective_from, effective_to)) instead of now.

branch
string format: uuid

Read through an open branch’s copy-on-first-write overlay view instead of the canonical (main) plane. Does not compose with as_of (422). The branch must exist under the caller’s tenant.

Neighbours along the typed link.

Media typeapplication/json
object
data
required
Array<object>
object
created_at
required
string format: date-time
id
required
string format: uuid
object_type
required
string
properties
required
object
scope
required
One of: discriminator: level
object
level
required
string
Allowed value: tenant
Allowed values: tenant
tenant_id
required
string format: uuid
updated_at
required
string format: date-time
version
required
integer
>= 1
direction
required
Allowed values: out in
has_more
required
boolean
link_type
required
string
next_cursor
string
Example
{
"data": [
{
"scope": {
"level": "tenant"
}
}
],
"direction": "out"
}

No object with that id, or link type unknown.

Validation error — direction conflicts with the link’s binding.